Wishlist
- The WindowsAPI gives direct access to the new Windows 7 libraries, including Windows Imaging Component (WIC) APIs. It seems that the new GDI libraries are 30% faster. To be seen if the new GDI libraries are part of this new WindowsAPI code pack.
- Visual recognition of free space (done, to be integrated with navigation)
- Traversibility estimation by moving (study finished)
- Learning of optimal search strategies (in progress)
- Cooperation between a ground and air-robot (study finished)
- Coupling with Nomad (accomplished, to be tested)
- 3D user-interface (open)
- Traversibility estimate from stereo vision (open)
- Map Stitching (open
- Automated Rough Terrain Navigation (starts in May)
- 3D-Mapping (open
- Joint Rescue Forces list of tasks
- small tasks
- Reconnect when in range
- Use status message to select view.
- Constrained teleoperation is not working with WSS.
- Speed up the conversation, to get faster robot responses.
Started
2010 Labbook.
December 11, 2009
- Found a CMU dataset from an outdoor experiment with omnicam and SICK laserscanner.
November 27, 2009
- Read an article about visual effects in computer games. Three effects are distinguished:
- Sensor effectmotion blur, depth of field, bloom, glare, afterimage, tone mapping, color correction, lens distortion, vignetting, chromatic abbreviation, film grain, night vision, thermal vision.
- Environmntal effectsfog, sun shaft, rain, snow, heat distortion, smoke, fire, water, clouds, explotions.
- Illimination effectsambient occlusion, reflection, shadows, refraction, color bleeding.
Seems enough work for a Msc. Saved pdf(accessible from TU Delft) on nb-unreal in projects/roboresc.
November 20, 2009
November 18, 2009
- Tried to if test BufferLayer warnings are gone now, but UT3 is in an intermediate state. Committed experimental rev. 2053 when it compiled again.
- Updated UT3 wiki with list of commands.
November 17, 2009
- Installed WSS-0.6.1 on pc-unreal (in D:\UT3\usarsim\Tools). WSS complains about "QtCore4.dll" is not a valid Qt plugin, but seems to work fine.
- Spawing the ComStation is a bit of a problem (no such Bot exists), yet GETPOS detects that something is spawned at location 0,0,0 and starts calculating the distances from that position. Because of the battery-state, both robots are kicked out of the WSS.
- In a second attempt, the configuration works better. Yet, no connection is established. This was due to the wrong culture for the WSSDevice thread.
- The GetStartPoses in AgentConfiguration works, although also the RobotType is reset.
- Agent is spawned in UsarCommander and two errors in UsarClient (not serializable in WssConversation.SendMessage (line 455) and BufferedLayer (Not valid parameter for New Bitmap)).
- Did a merge with UsarLib\Team\Config and Agent\Map\Rendering\Layers. BufferedLayer warning is still there! Is this due to the parent (ManifoldImage)?
- Crash in WssListener line 31 (two programs on same socket). No BufferedLayer problem with competition branch. Latest revisions for experimental are 1722, 1799 and 1909. Latest revisions on competition are 1885, 1883, 1856, 1823, 1819. Also merged Agent\Map\Rendering.
November 12, 2009
- Added converter to BotConnection:InitRecieved. Start position -1,1,-0.44 is converted to -250,250,110. GetStartPoses is still without converter.
- Also complains about ProcessDrive without theBot.
- Copied Maze.upk and maze6x6.t3d to UsarSimMaps. No complaints anymore, although still default textures.
- GetStartPoses gives now 16 poses (Robot_0 -2.752, -2.752, 0.7040).
- The static converter puts the bot at -0.01, -0.01, -0.00. Convertion FromUU insteat of ToUU. Now works, committed rev. 122.
- Turned the P3AT, but no change in GroundTruth orientation.
- Strange enough, after starting at a orientation of 90deg, the laserscanner works (but no orientation displayed in AgentController). GroundTruth in logfile indicates correct orientation.
- Got two error message (Tachometer:ClientTimer divided by zero)?
November 3, 2009
- Updated UT3 to rev 117 (repaired GroundTruth and Odometry).
- Maze6x6 only available on nb-unreal, so using TestGroundVehicle1 for test on pc-unreal.
- P3AT doesn't lock camera-view (camera still not mounted?), and I do not see any lasermeasurements.
- All sensors where commented out on P3AT. Merged Sensor/Data from experimental to 2009/assistance, so now the INF in Odometry are handled.
- Now also display rotation in AgentController. Added timeDiff protection to Odometry.uc.
- Added specs for SICK to UTUSAR.ini:
[USARSensor.SICK]
MaxRange = 32.0
Resolution=0.01745
- Added ProcessOdometryData to ManifoldSlam (from assistance).
- Odometry is quite bad. Starting at (0.75,-7.28,-0.44). Driving straight, indicates that I have driven 6m instead of 3m. Turning indicates that I have already turned 360 deg, while I am only turned 90 deg.
- Starting at (4,-7.28,-0.44) still gives GroundTruth (0.11,-0.03,0.00). Camera shows 13.5 patches. Saw in the log nothing about spawning location (only rotation). Changing the spawning location to (0,0,1.57) gives Rotation (0,1,0). This seems the same bug as the GroundTruth bug.
- SpawnPlayer takes place in USARBotAPI/BotDeathMatch.uc. Spawn is done with a Rotator, not a Vector! Reading in of location and rotation is done in BotConnection (set debug to true).
- This is the logOutput from the Spawn:
- Both the SpawnPosition and the MaxRange seems to be in UUs. Without MaxRange-property the lms200 give correct maps for Maze6x6. The difference between Odometry and GroundTruth is still 3.6m on a straight stretch of 1.7m for the P3AT.
October 19, 2009
- Updated experimental-branch, to allow a connection to UT3. Problem was due to missing status-message, which report the MultiView window. Commited revision 1980.
October 16, 2009
- Starting P3AT @ UT3 failed from experimental-branch (maybe due to not starting in Live mode).
- Previous successful spawning was with 2009/assistance (Aug 26).
- Could still successful spawn P3AT. Had to make some minor modifications to process odometry and laserscans. Scans seems to be scarce (and 1000m range?). Turning is not correctly handled by UsarCommander. Should check logfile.
- In UT3 Odometry returns orientation in deg, previously it was rad. Check can be made on the existance of Time-key (only in UT3). Still wrong orientation :-( -90 seems to be -9.35).
- Camera is there, but not mounted in UTUSAR.ini. Will try:
Sensors=(ItemClass=class'USARSensor.Camera', Parent="USARbot.P3AT", ItemName="WebCam",Position=(X=52.125,Y=0.0,Z=105),Direction=(x=0.0,y=0.0,z=0.0))
- Turned 90 deg CCW from start position.
- Ground Truth gave Pitch 5 (Roll and Yaw 0). Only element 5 of GroundTruth changes (not 6 as expected).
- Made a protection for too small TimeDiff (test indicate that the INF measurements are gone).
- Mounted a camera. Got multiview?! Multiview with 2 panels gives nearly good view (small additional tile at the bottom).
Tried to change resolution 640x480 and 3 panels works nearly.
For omnicam we need 1024x768.
- Turned only 10 degrees. OdometryAngle went from 4.69 till -2.00 and kept increasing while robot stopped.
- Value's in logfile where different, so put NormalizeAngle in Odometry.Load
- Moved a little bit to back to turn without problems. Turning had no effect, but Odometry reported a turn from 0.88 to -41.
- The logmessages inbetween are from SkidSteeredRobot.uc: outStr = TheTime $ "," $ wheels[0].MotorTorque $ "," $ wheels[0].spinVel;
- The SpinVel in Odometry seems to be right.
October 15, 2009
- Updated ut3 to rev. 114 (Kuka KR3 arm package). Src\Make.bat still gives 100 warnings, but no errors.
- Made USAR_UI, generated 4x4 Maze. Could not find Maze4x4.ut3 with explorer, and couldn't find Maxe4x4.t3d with Editor->Import. Generated Maze5x5.t3d, still not visible. Restarted computer and went to bed.
- There seems to be something new on cvs:Tools/ImageServer (2 month olds), but need VS2008.
October 9, 2009
- Installed UT3Patch5 on nb-unreal.
- Checked out revision 112 from usarsim.
- Made the game. Many warnings, no errors.
- It seems that they current release has a camera.
October 2, 2009
- error.h is part of the GNU C library. Installed glib and glib2 of cygwin (even the develop versions), but error.h is not found. Error.h is also not needed. Only error_t is used, but that type is not defined by error.h. This type is defined by errno.h, which is loaded by argp.h (the other missing file).
- argp.h is also part of the GNU C library (and not of the glib or glib2 cygwin-packages). As the gnulib community warns: This header file is missing on all non-glibc platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.. The source of catgets has a , with both the code and header of argp. Did . The library is code is part of the catgets-library (/usr/lib/libcatgets.a).
- Next problem is wordexp.h, also part of the GNU C library (and not of the glib or glib2 cygwin-packages) and POSIX standard. As the gnulib community warns: This header file is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
September 30, 2009
- Checked MADP Toolbox v0.2 under Cygwin.
- I have a much older version of gcc (3.4.4) on nb-unreal, but still same problems.
- Downloaded autoconf-2.64. Made a link to this version in $(HOME)/bin/sh/autoconf.
- Added AC_CHECK_HEADERS(error.h argp.h) and AC_CHECK_FUNCS([powl) to configure.ac.
- ./configure --prefix=/home/robolab/packages gives now a nice warning, but still crashes.
- Added protection around powl's (#ifdef __USE_ISOC99) in two files.
- Compilation than crashes on missing error.h and argp.h.
September 27, 2009
- Solved small bug in WeightedScanMatcher (estimate orientation from a single correlated point). Got a nasty bug back (OutOfMemory after 90 minutes and most of the measurements from set10000). Switching the camera-images off solves this, which could indicate that the some memory is not released in this branch. Tried to clean up code on several places, without success.
September 25, 2009
- Merged experimental Tools/QuadTree with 2009/competition, to get exception-handling. newBounds is a RectangleF, which stores 4 floating-point numbers, but returns Bottom,Height etc as Singles. Can also use Rectangle, which stores 4 integers.
September 24, 2009
- Made the code to synchronize the different logfiles (laser, odometry, sonar and images) from the long tour. Commited revision 1961.
- .
- The result looks nice, but the map is mirrored. Switch off reverse in laserscan parsing?
- Corrected the reverse for the Hokuyo. Result is much nicer. Good results for the Nikhef dataset until the expedition. Loop closure is required after that. Program crashes after 44minutes in QuadTree:Insert (Center.X is Inf, but other values are also completely out of bound.
September 21, 2009
- Looked at the Predictive Bayesian model in the Belief Box code of Christos Dimitrakakis. A BayesianPredictiveState inherits from BayesianMarkovChain, MarkovChain and Vector. Should be possible to port this to .Net framework. The idea is too optimize the communication with this Predictive Bayesian model, as studied in Tim Doolan's Bsc Thesis.
- Observations are now implicitly represented in the history. They should be explicitly represented with a DiscretePolyaTree.h, which inherits from SparseGraph, Graph (and also DiscreteVariable and Matrix).
- Changed the configuration from the sonar sensors from the base just below the propelors:
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F1",Position=(Y=-0.1912,X=-0.1928,Z=-0.0),Direction=(Y=0.0,Z=-1.40,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F2",Position=(Y=-0.1952,X=+0.1928,Z=-0.0),Direction=(Y=0.0,Z=-.4,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F3",Position=(Y=+0.1952,X=+0.1928,Z=-0.0),Direction=(Y=0.0,Z=+0.4,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F4",Position=(Y=+0.1952,X=-0.1928,Z=-0.0),Direction=(Y=0.0,Z=+1.40,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F5",Position=(X=0.0,Y=0.0,Z=-0.15),Direction=(Y=1.5707964,Z=0.0,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F6",Position=(X=0.0,Y=0.0,Z=+0.15),Direction=(Y=-1.5707964,Z=0.0,X=0.0))
batteryLife=840
September 17, 2009
- Tested ConstrainedTeleOp for AirRobot with sonar. The MaxRange is 5m, but got several readings of 3.9 in open air. Put a threshold on (MaxRange - 1m2), which was just enough to stop in time for a wall straight ahead on default speed (2m/s).
- Found OpenTK, which contains a managed interface to OpenCL (Generic Calculations on GPUs) and a quite extensive mathematical library. Could try to replace our own Math-lib with this library.
- Library contains most functions already available in our Math-library, but no Invert :-). Nice is the Equals and EqualsApprox. Also matrix4 available!
September 15, 2009
- Configuration as used by SPQR in the semi-final at RoboCup2008 (batterylife of 14 minutes).
[USARBot.AirRobot]
bDebug=False
Weight=50
Payload=25
ChassisMass=1
bMountByUU=False
JointParts=(PartName="Counter_Propeller_1",PartClass=class'USARModels.AirRobotPropeller',DrawScale3D=(X=1.0,Y=1.0,Z=1.0),bSuspensionLocked=true,Parent="",JointClass=class'KCarWheelJoint',ParentPos=(Y=0.1952,X=-0.1928,Z=-0.12588),ParentAxis=(X=1.0),ParentAxis2=(Z=1.0),SelfPos=(X=0.0,Y=0.0,Z=0.0),SelfAxis=(X=1.0),SelfAxis2=(Z=1.0))
JointParts=(PartName="Counter_Propeller_2",PartClass=class'USARModels.AirRobotPropeller',DrawScale3D=(X=1.0,Y=1.0,Z=1.0),bSuspensionLocked=true,Parent="",JointClass=class'KCarWheelJoint',ParentPos=(Y=-0.1912,X=-0.1928,Z=-0.12588),ParentAxis=(X=1.0),ParentAxis2=(Z=1.0),SelfPos=(X=0.0,Y=0.0,Z=0.0),SelfAxis=(X=1.0),SelfAxis2=(Z=1.0))
JointParts=(PartName="Propeller_1",PartClass=class'USARModels.AirRobotPropeller',DrawScale3D=(X=1.0,Y=1.0,Z=1.0),bSuspensionLocked=true,Parent="",JointClass=class'KCarWheelJoint',ParentPos=(Y=-0.1912,X=0.1928,Z=-0.12588),ParentAxis=(X=1.0),ParentAxis2=(Z=1.0),SelfPos=(X=0.0,Y=0.0,Z=0.0),SelfAxis=(X=1.0),SelfAxis2=(Z=1.0))
JointParts=(PartName="Propeller_2",PartClass=class'USARModels.AirRobotPropeller',DrawScale3D=(X=1.0,Y=1.0,Z=1.0),bSuspensionLocked=true,Parent="",JointClass=class'KCarWheelJoint',ParentPos=(Y=0.1952,X=0.1928,Z=-0.12588),ParentAxis=(X=1.0),ParentAxis2=(Z=1.0),SelfPos=(X=0.0,Y=0.0,Z=0.0),SelfAxis=(X=1.0),SelfAxis2=(Z=1.0))
Cameras=(ItemClass=class'USARBot.RobotCamera',ItemName="Camera",Position=(Y=0.008,X=0.024,Z=-0.0008),Direction=(X=0.0,Z=0.0,Y=-1.5707964))
Sensors=(ItemClass=class'USARBot.INSSensor',ItemName="INS",Position=(X=0.0,Y=0.0,Z=-0.0),Direction=(x=0.0,y=0.0,z=0.0))
Sensors=(ItemClass=class'USARBot.VictSensor',ItemName="VictSensor",Position=(Y=0.0,X=0.06,Z=-0.0088),Direction=(Y=-1.5707,Z=0,X=0))
;Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F1",Position=(X=0.14499985,Y=-0.12999986,Z=-0.0),Direction=(Y=0.0,Z=-1.5707964,X=0.0))
;Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F2",Position=(X=0.1849998,Y=-0.114999875,Z=-0.0),Direction=(Y=0.0,Z=-1.0477,X=0.0))
;Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F3",Position=(X=0.1849998,Y=-0.000,Z=-0.0),Direction=(Y=0.0,Z=0.0000,X=0.0))
;Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F4",Position=(X=0.1849998,Y=0.114999875,Z=-0.0),Direction=(Y=0.0,Z=1.0477,X=0.0))
;Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F5",Position=(X=0.14499985,Y=0.12999986,Z=-0.0),Direction=(Y=0.0,Z=1.5707964,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F1",Position=(X=0.0,Y=0.0,Z=-0.0),Direction=(Y=0.0,Z=-1.5707964,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F2",Position=(X=0.0,Y=0.0,Z=-0.0),Direction=(Y=0.0,Z=-1.0477,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F3",Position=(X=0.0,Y=0.0,Z=-0.0),Direction=(Y=0.0,Z=0.0000,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F4",Position=(X=0.0,Y=0.0,Z=-0.0),Direction=(Y=0.0,Z=1.0477,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F5",Position=(X=0.0,Y=0.0,Z=-0.0),Direction=(Y=0.0,Z=1.5707964,X=0.0))
Sensors=(ItemClass=class'USARBot.SonarSensor',ItemName="F6",Position=(X=0.0,Y=0.0,Z=-0.15),Direction=(Y=1.5707964.0,Z=0,X=0.0))
;Sensors=(ItemClass=class'USARModels.SICKLMS',ItemName="Scanner1",Position=(X=0.14399984,Y=0.0,Z=-0.0919999),Direction=(Y=0.0,Z=0.0,X=0.0))
;Sensors=(ItemClass=class'USARModels.Hokuyo',ItemName="Scanner1",Position=(X=0.14399984,Y=0.0,Z=-0.0919999),Direction=(Y=0.0,Z=0.0,X=0.0))
batteryLife=840
September 2, 2009
- Found out that Patch 3369 is not installed on the system-group maintained computers. This patch is a prerequisite for the ut2004-ecebonuspack1-1.exe.
- The Unreal Editor is not working due to UT2004.ini or User.ini. Copying those from pc-unreal solved the issue (but introduced the no-escape bug).
- Some RunClientOnly-scripts of the RoboCup09 Map are wrong. Working scripts are available here.
- DM-RoboCup09Mapping_Elemental.ut2 still doesn't start at my desktop, also not after installing (unwheel_ec.exe.
- Only copying UT2004.ini allows UnrealEd to start. Loading DM-RoboCup09Mapping_Elemental.ut2 crashes on loading USARSim_Vehicles_Textures.utx. Reinstalling USARSimBaseFiles_3.37, which contains USARSim_Vehicles_Textures.utx doesn't help. Strange.
August 27, 2009
- Looked at the problems with RoboCup09 Map. Loaded DM-RoboCup2009Outdoor2V2.ut2 in UnrealEdit. No complains about BenTropical (dependence on ut2004-ecebonuspack1-1.exe), but complains about UnWheel. Downloaded unwheel_msu.exe. This version is nearly OK. No missing files, only missing resources (CubeMap AW-Cubes, StaticMesh UW_SMDecoMesh02, TexEnvMap AW-Cubes and Texture UnWheelColors). Could be one version earlier (unwheel_ec.exe) or later (unwheel_r5.exe).
- With unwheel_ec.exe I got one error less (Texture UnWheelColors is now known).
- Strange enough, the error a missing file is back after installing r5, but reinstalling ec or msu doesn't help. DM-RoboCup2009Indoor2.ut2 is working. UnWheelSkins was really missing, but this was the file I put in a backup directory because unwheel_r5.exe crashed on this file.
- Repeated process on u013153. Unwheel_ec.zip (Textures and StaticMeshes) is enough for Indoor2. Outdoor1 is missing Unwheel_vehicles (can be found in Animations). unwheel_ec seems to be correct version (1 extra complaint in msu, 8 extra complaints in r5).
- Repeated process on u013154. Machine has problems with core.dll.
- Installation finally worked at 152, but couldn't play. Did an uninstall and removed manually all three directories. Machine has problem with reading CD.
August 26, 2009
- Installing UT3 works on pc-unreal.
- Patch-5 works on pc-unreal.
- Src\make.bat works (only 100 warnings)
- Unpublished\UsarSimRunMaps\TestGroundVehicle1.bat gives a room with chess-tiles.
- Made SimpleUI, and spawning a P3AT at 0.76,2.3,1.8 gives a robot with a arm.
- Could also control the robot from UsarCommander, although I see only GroundTruth sensor updates. Robot has a quite rubber behavior with stopping and driving.
- Also spawning a ATRV worked quite well. Downloaded upis-2009-05-28-beta, and modified the bat to start UT3. UT3 starts, but doesn't seem to receive the commandline options.
- Already copied major parts of UTGame. Should first copy engine and binaries, because usarsim needs those.
August 25, 2009
- The beta-version of UsarSim for UT3 is coming. UT3 itself is not longer installed on pc-unreal.
- Will install UT3 on one of the U-machines. Instructions can be found here.
- Should create an usarsim-directory in the UT3, and checkout from svn.
- Installing UT3 on D:\UT3 on u013152, to save space. Downloading Patch-5.
- svn log http://usarsim.svn.sourceforge.net/viewvc/usarsim gives the answer: Repository moved temporary to '/viewvc/usarsim'; please relocate.
- TurtoiseSVN to 'https://usarsim.svn.sourceforge.net/svnroot/usarsim' works. 'svn log https://usarsim.svn.sourceforge.net/svnroot/usarsim' works also.
- Installing UT3 fails. Clean up disk.
August 24, 2009
- Tested LightFX version on a non-XPS machine. Updated protection.
August 19, 2009
- theta=arccos(z/sqrt(x^2+y^2+z^2)) and theta=arccos(h/ro-1), so z^2=(x^2+y^2)(h-ro)^2/(2hro-h^2). So what is the z used for the bird-eye view by Roebert?
- Roebert gebruikt de eerste formule, met z=40 voor 640x480. HRadius wordt geschaald met de width (0.185625x480=89). Misschien zou z ook moeten schalen met de width, maar welke (die van de camera of van de birdeye 500x500).
- theta=45 means z/sqrt(x^2+y^2+z^2)=sqrt(2)/2, dus sqrt(x^2+y^2+1600)=80/sqrt(2), x^2+y^2+1600=6400/sqrt(2), x^2+y^2=2925.5, r=54, dus de bird-eye van 500x500 bedekt een oppervlak van 500/54 van de hoogte van de omnicam.
- theta=45 means z/sqrt(0.85^2+z^2)=sqrt(2)/2, (0.85^2+z^2)=4z^2/2, z=0.85, as it should.
August 17, 2009
- Found a wrapper around the lightfx sdk which gives .Net support. Latest version of the sdk seems to be version 1.1.1, A02 (5/11/2007).
- The sample C-code provided by the SDK worked on my XPS m1730. Now incorporate the color change in UsarCommander :-).
August 13, 2009
- Leo had the solution for the inverse of sin(theta)/(1+cos(theta)) = tan(theta/2). See also eq. 4.3.22 from the Handbook of Mathematical Function of Abramowitz et al..
- Tried today to introduce a more detailed polar-scan, by introducing a factor in j, but this resulted an inverse dependence on the found widths ?!
- Checked HORIZON on victims in the center of the maze (mirror is just above head sitting victim). HORIZON is for 1024x768 190 pixels (maybe 192).
- Results only match with lasers for a GROUNDHEIGTH of 0.7 (a difference of 20%). Committed version 1921.
August 12, 2009
- The height of 1.2 meters of the viewpoint seems to be based on a wrong assumtion. (Pillar mounted 21cm above the center of the robot + 1 meter for the pillar). The pillar is not 1m long, Quang confused it with the drawing scale Z=1.
- Strange enough, the ESC doesn't work any more for UT2004 on pc-unreal, and I cannot telnet to the game anymore. Moved to u152.
- The results with my theta seems to be off by a factor of 2.
- The MAXRADIUS is much too large. Should be Horizon+NONFREEPIXELS. Result is much better. Still the factor of 2. 178 works fine with 0.5 meter, 204 with 0.7.
- Modified the ValidationWorld and the line of 85mm is straight in the mirror.
Horizon 222 pixels works fine for this height.
- Tomorrow some experiments with ScanMatching instead of Deadreackoning. Also some larger values for GROUPEDPIXELS and smaller values for NONFREEPIXELS. Maybe also some experiments with higher MAXRANGES.
August 11, 2009
- Back from my holiday in Wales.
- Iros workshop paper is accepted. Tried to get a nicer solution for equation (6) d = h tan (ro / alpha). With the inverse of equation 3.2 from Tijn's thesis, you can calculate theta directly. Unfortunatelly, tan (theta) is not equivalent with tan (ro / alpha). I get theta=0.929rad/53deg for Memoradius 70/119. This would mean a Tan(theta)*Height 1.33 * 1.2 instead of 0.73 * 0.85.
- Strange bug in code with SetDriver property, introduced in rev. 1917.
- Could teleoperate in SlamAgent, not yet in SkinAgent.
July 4, 2009
- Results for WSM are OK for the first 200 patches. Afterwards the map is corrupted by two rotation errors.
- Lets try IDC.
July 3, 2009
- Results for WSM looked greath, lets try QWSM. Result is less.
July 2, 2009
- Looked at the Inter League Challenge. Logfile directly starts with a jump, so I removed the first K5. That gives a better result.
- Modified the code, because the INS only gives compass information (i.e. an IMU). The result is not bad, but the localization sometimes jumps back to 0,0.
- Using the current position as seed solves this issue.
-
- Now as to add MeasuredTime to Patch, to reproduce a file containing each line the estimated pose of the robot and timestamp.
- Can now write mif and mid. Mid has precisely the right format, I only need to add theta and a time-reference.
- The symbols are black stars, much to big and not correctly georeferenced (should exchange x,y in mif).
- I should add the WritePathFile to the SaveMap dialoog (including to be rendered patches), but I can better wait until the theta and time are added to the routine.
June 30, 2009
- Made a script /home/robolab/bin/sh/ssh-tunnel.sh. Script not longer needed, they opened up the firewall at the venue.
- Run MapEvaluator.exe -x -16.968 -y -17.460 -m DM-Mapping_Elemental.tif -tp Mifs\DM-Mapping_Elemental.mif. Failed on creating a bitmap from that image. Maybe just too big (18 Mb).
- MapEvaluator.exe -x 58 -y 42.5 -tp "D:\svn\2008\honours\maps\GermanOpen2009\Jacobs\JacobsMap_Paths.mif" -m "D:\svn\2008\honours\maps\GermanOpen2009\Jacobs\JacobsMap.png. (18 Kb).
- Tried the simplest MapEvaluator.exe -x 4.9 -y 4.9 -tp "D:\svn\2008\honours\maps\GermanOpen2009\MappingChallenge\Jacobs\Victims.mif" -m "D:\svn\2008\honours\maps\GermanOpen2009\Jacobs\JacobsMap.png. (6 Kb).
- Finally, I could plan from (4.9,4.9) to (-2,2) and (-8,8):
- Tomorrow, run in the MappingWorld, and look if I can evaluate an smaller map than 18 Mb.
June 29, 2009
- After downloading the latest UsarSim release, Matilda does work. Only, Matilda has a Sick ?! and thinks that she is spawned at 0,0,0. Is this also thruth for other robots, or only in experimental branch?
- Installed an Hokuyo on the Matilda: Sensors=(ItemClass=class'USARModels.BoxedHokuyo',ItemName="scanner1",Position=(X=0.055,Y=0.0,Z=-.3),Direction=(Y=0.0,Z=0.0,X=0.0)) '-0.37 too high, -0.27 slightly too low,
- Found a specification of measurement accuracy of encoders. German quality is +/- 5", so for the Mapping challenge double. The error on the EncoderSensor is already 18", so that is enough.
- The noise in the odometry is due to slippage. No additional noise is added. The resolution is set on 0.01, while for a wheel of radius 12.5 cm and 500 encoders it should be 0.0016. No reason to decrease the resolution.
- Could use the svn-server via ssh-tunneling.
- First redefined the u013154 as localhost in C:\WINNT\system32\drivers\etc\hosts
127.0.0.1 u013154.science.uva.nl # to allow ssh-tunneling
- After that, I should use only use u013154 direct ip-adress (146.50.1.238). Further I need a host that accepts ssh request on port 22 (staff.science.uva.nl). Then typed in the cygwin-shell:
ssh -L 3690:146.50.1.238:3690 arnoud@staff.science.uva.nl
- Setup was test with the command in another cygwin-shell:
svn list svn://u013154.science.uva.nl:3690/Roboresc
June 28, 2009
- In .Net applications, you can have multiple Assemblies inside a process. Each Assembly has its own memory-space (seems interesting for Agents spawn in the GUI)
- Tried the example in H28 of the VB-book, but the MainForm doesn't react on MouseClicks or KeyBoard. Is this due to DockStyle or added controllers?
- Tried to validate the ATRVJr3D, but this robot (and the Matilda) doesn't show up in UsarSim (ATRV, kenaf, TeleMax, Rugbot do fine). The ATRVJr reaches 35 deg in the ValidationWorld, Rugbot 40, TeleMax and kenaf 45 deg.
June 27, 2009
- Added Noise to the RangeScanner. Default Noise was from Sensor.uc (1mm). Tried Noise 1cm (discretization error 80m / outdoor statistical error), Noise 3cm5 (outdoor systematic error), Noise 4cm5 (both outdoor errors) and Noise 2cm (both indoor errors).
- Collected logfile without Reset. Couldn't drive on that map. Maybe I should reduce the precision and noise of the INS a bit. Even with Precision 100 and Sigma 0.2 it is difficult to make good maps (without Reset).
- Run with ICP-INS with Reset on BetterINS. Perfect map. Also with BadINS still Perfect map.
June 24, 2009
- Found this page indicating that the LMS 200 can be used in two settings. A range of 8.1 meters with a accuracy of 1mm, or a range of 82 meters with a accuracy of 1cm. Currently no default Noise is specified for the LMS, so it inherits this parameter from the Sensor class (1mm). Should be 10 times as high.
- The Specs of Sick specify a statistical error of 5mm, and a systematic error of 15 mm. The manual indicates that the LMS 200 can be configured in four measurement ranges (8m, 16m, 32m, 80m). Up to 32m the ranges are given in [mm], at measurement range 80m in [cm]. So the previous values are not noise, but discretisation errors. The statistical error of 5mm should be added.
- The LMS 200 is the indoor Mid-Range scanner, the LMS 221 and 291 are the outdoor versions. Both outdoor scanners have a systematic error of 35 mm and a statistical error of 10mm.
- When used as standalone sensor, the LMS 2xx use 10mm resolution for the measured distance. The supplement indicates that 13 bits are used for the 8m [mm]/80m [cm] configuration, 14 bits for the 16m [mm] /160m [cm] configuration and 15 bits for the 32m [mm] / 320m [cm] configuration. The Telegram listing indicates that always 15 bits are sent, but that for the configuration 8/80 two bytes are thrown away.
- This page indicates that the LMS 291 gained its fame in the DARPA grand challenge, because the LMS 200 is dazzled by sunlight. The downside of the LMS 291 is the greater error of the measurements. They also indicated that the statistical error should be interpreted as 1 sigma.
- The article about the older PLS101-112 laser range finder, indicated three systematic errors; an systematic error due to warming up (3 cm), a linear dependence on distance (from 0 to 5cm at 2m) and a cot(angle) incidence angle dependence (5 cm at 60deg incidence). The technical data doesn't give a systematic error, only a range precision of 50 mm.
June 16, 2009
, and looked into our implementation.
The key step of Generalized-ICP is T = argmin_T Sum_i d_i(T) (C_i^B + TC_i^AT)^{-1})d_i(T), the key-step of the Weighted Scan mather T = argmin_T Sum_i d_i(T) (TQ_i^BT + TRS_i^ART)^{-1})d_i(T). The main difference is that Q_i^B also includes the correspondance error, and Q_i^B is also translated because both point-clouds are transformed from the midpoint. For Generalized-ICP C_i^A is initiated as R'(...)R' with (...) the I-matrix, one diagonal element replaced by a small eta term to represent the uncertainty along the surface normal, in S_i^A the diagonal elements are sigma_dist and sigma_angle, and a rotation is applied. For Generalized-ICP C_i^B is initialized with R''(..)R'', but R'' is a different rotation than R'. Q_i^B is equivalent calculated as S_i^A, so R'' is something like R' * R. In Generalized-ICP PCA is used to estimate rotations R' and R'' relative the nearest 20 scanpoints. Both algorithms should become standard ICP if the I-matrix is used for the covariance matrix between the d_i (..) d_i.
Modified the QuadWSM into QuadICP, by using the I-matrix. Result on the noisy Mapping run is as good as WSM. So much for complicated covariance calculations.
Also made a pure ICP-version. Luckely this version makes some orientation errors:
Without INSsensor.Reset the map looks even worse. Two times the robot jumps to another corridor. Algorithm is also much slower (more difficult to find a match). QICP gives much sharper results, but once in the V-shaped room QICP also makes several localization errors (jumps of a meter):
June 11, 2009
- Partly merged qnguyen with competition branch. Testing was extremely slow.
- Tried to run latest sroebert commit, because Quang experiences a GDI-crash in a save routine. TestCenter expects that results are present in
ImageAnalysis\results\scores\normalizeColors = False\GMM\noMixtureComponents = 1\thresHold = 1E-05\result001.csv'." Should get that from pc-unreal.
- The new CameraData made the UsarAgent of the sroebert-branch extremely slow.
June 10, 2009
- Found that ComputeArea in ManifoldImage:RenderPatch is a real performance killer. Moved the routine to RedrawMap in SaveMapDialog. For more details, see bugs.
June 4, 2009
June 3, 2009
- Enabled port for Skype on U3-stick, by running C:\WINNT\system32\netsh.exe as Admin, going to firewall and typing add allowedprogram G:\System\Apps\0DE4F643-C398-46ec-9339-2362F2311932\Skype(2.5.14.140)(u3)(1427)release_candidate.u3p. No complains any more from Skype.
- Discussion with Frans Oliehoek about Reviewers comments.
May 29, 2009
- Did the conversion to tab and back to mif. Only error was the number of fields (5 -> 3). Also the bound is now gone. 0-layer bug is still there, also on tab.
May 28, 2009
- Tried to add a directory to usarsim/Tools, but even with this suggestion, it fails.
- The trick is to set CVSROOT, to prevent path-problems (cvs add and cvs update/commit use different path syntax). export CVSROOT=:ext:physar@usarsim.cvs.sourceforge.net:/cvsroot/usarsim; cd usarsim/Tools; cvs -z3 add ScoreTeleOp; cd ScoreTeleOp; cvs -z3 add ScoreTeleOp.java; etc.
- Found the specification of the PowerCube Pan/tilt module. Axis 2 has endless rotations, Axis 1 rotation +/- 120 deg.
- Committed ScoreTeleOp to sourceforge. Found instructions how to build the native libraries for Unix/Linux. Again from Frank Warmerdam, I start to become a fan from this man.
- Unfortunatelly, I specified that I like to have the source-code of all my installed packages, but gdal-1.5.*/swig/java is not part of this distribution (only the java.opt as mentioned in the BuildInstructions).
- Found the source-code in this distribution.
- Followed the instructions: configure --without-libtool in ~/packages/gdal-1.5.4/. Update of java.opt to my jdk1.6.0 (linux). make failed, because libgdal was not available.
- Typing make in ~/packages/gdal-1.5.4/, because of an compilation error in port. Switched from gcc-2.95.3 to gcc-4.1.2.
- This make is able to generate ~/packages/gdal-1.5.4/libgdal.so, although making libinfo didn't succeed because some references where missing.
- Now a make in swig/java succeeds, which resulted in libgdalconstjni.so, libgdaljni.so, libogrjni.so, libosrjni.so.
- Solved the issue of not reading logfiles (Teleop and twice /\). Program now breaks on libogrjni.so. Adding -Djava.library.path=. to the command helps. libogrjni.so cannot find libgdal.so. The command setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:. settles this issue. Now libgdal.so complains about endl, which is defined in . Compiled libgdal.so again, after a standard configure.
- Now the complete make succeeds. libgdal.so is in .libs. Running fails on Could not get layer '0'.. Alternatives (layer '1' or GetLayerByName) also fails!?. Check tutorial again. Strange, time to give up for the Linux-port.
- Tried to make an official installation in ~/packages/gdal-1.5.4
- swig/java is not part of the installation. Making failed in this directory. Changed back to gcc-3.4.3, but also this failed (try again in the main-directory).
- Current hypothesis: many supported formats are options. Tried to activate all formats indicated by *.dlls. Should be the 20 ogr-formats. Some need a path instead of yes. Typed configure --prefix=/home/arnoud/packages/gdal-1.5.4 --with-java --with-geos=yes --with-xerces=yes --with-hdf5=yes --with-geotiff=yes --with-libtiff=yes --with-mysql=yes --with-ogdi=yes. Xerces and cURL seem to be most important. Result:
LIBZ support: external
GRASS support: no (should be, ogr-format) direct make fails
CFITSIO support: no
PCRaster support: internal
NetCDF support: no
LIBPNG support: external
LIBTIFF support: external (BigTIFF=no)
LIBGEOTIFF support: internal
LIBJPEG support: external
LIBGIF support: external
OGDI support: no
HDF4 support: no
HDF5 support: no
Kakadu support: no
JasPer support: no
ECW support: no
MrSID support: no
GRIB support: no
cURL support (wms/wcs/...):yes
PostgreSQL support: no
MySQL support: yes
Xerces-C support: yes
Expat support: yes
ODBC support: no (should be, ogr-format) direct make fails
PGeo support: no (should be, ogr-format) direct make fails
OCI support: no (should be, ogr-format) direct make fails
SDE support: no (should be, ogr-format) direct make fails
DODS support: no
SQLite support: yes
DWGdirect support no
PANORAMA GIS support: no
INFORMIX DataBlade support:no
GEOS support: no
Old-gen python no
SWIG Bindings: no (should be yes)
- ogr formats:
avc/ generic/ grass/ mitab/ ogdi/ pgeo/ sqlite/
bna/ geojson/ idb/ mysql/ rec/ tiger/
csv/ gml/ ili/ ntf/ s57/ vrt/
dgn/ gmt/ kml/ o/ sde/
dods/ oci/ sdts/
fme/ gpx/ mem/ odbc/ pg/ shape/
- make in swig/java has now many libraries which are included. Build didn't succeed, but configured without-libtools and gcc-4.1.2 (build fails on storing objects in library with libtools). Build still fails in a different way, and could be repaired by adding ~/packages/gdal-1.5.3/lib to the library-path. Still, same 'Layer '0' not found error. Not clear which driver is used for MapInfo Interchange format. Seems to be shape. Couldn't find the configuration option.
- Here is the list of OGR Vector formats compiled by default. MapInfo is on the default list.
- Maybe try to make a conversion to MapInfo tab format and try again.
- ogr2ogr GermanOpen2009/Teleop/Waterfrontc_targets.tab -f "MapInfo File" GermanOpen2009/Teleop/Waterfrontc_targets.mif, works. Try the conversion tomorrow in OSGeo4W.
May 27, 2009
- Installed gdal-java-1.5.11 package inside the OSGeo4W environment. The package consisted of bin/gdalconstjni.dll, bin/gdaljni.dll, bin/ogrjni.dll, bin/osrjni.dll, lib/gdal.jar, share/gdal/gdalinfo.class, share/gdal/gdalinfo.java.
- gdalinfo.java gives a good example of the org.gdal.osr.* package. Documentation can be found at projet-SIGLE.
- Compiling with javac -classpath gdal.jar:. ScoreTeleOp.java and running with java -classpath gdal.jar:. ScoreTeleOp Config.txt gives Registered OGR drivers. The jar has to be explictely added to the classpath.
- Downloaded Depedency Finder to inspect the public methods of gdal.jar. Unzipped gdal.jar with WinZip. Typeing ClassReader.bat org\gdal\ogr\DataSource.class > org\gdal\ogr\IDataSource.java worked.
- ScoreTeleOp is ready. Tried to introduce Point25D in mif file, but this is not supported (checked up to version 650). The gdal website indicates that wkbPoint25D 2.5D extension as per 99-402. The ogr library is ready for (Geometry.GetZ), only MapInfo not. Workaround is to put Z in the Mid section.
- Workaround works fine.
- Further needed from OSGeo4W: zlib_osgeo.dll, xerces-c_2_7.dll, szlibdll.dll, ssleay32.dll, sqlite3.dll, proj.dll, ogdi_32b1.dll, net.dll, nio.dll, netcdf.dll, libpq.dll, libtiff.dll, libmysql.dll, libeay32.dll, libcurl.dll, jpeg_osgeo.dll, hdf_fw.dll, hdf5dll.dll, geotiff.dll, geos_c.dll and gdal15.dll.
- Not needed from the package: gdaljni.dll.
May 26, 2009
- Worked on the Release candidate of the rules.
- When maps are produced according to the obligatory color scheme, I should inspect the green channel (traversable), which should be 255 for both Green (Cleared) and White (Uncleared) instead of the red channel.
- Looked at the graphviz format suggested by Max. Looks like a nice format for topological maps, but still a MIF-file will be necessary to make a connection between tags in the graph and regions on the map.
- Modified ScoreRadio to ScoreRadio. Logfiles are read for start and end-points. Now only the target-positions from a mapinfo file.
May 25, 2009
- Reading does the occupancy-grid works now a bit (with format Argb you should read four bytes :-)). In most cases the pixels have the values (A=255,R=255,G=0,B=0), although I saw some other values printed (to much information, should do a conditional print).
- It seems that the blue channel is printed. All other pixel values have equal values for rgb (i.e. (A=255,R=250,G=250,B=250), (A=255,R=142,G=142,B=142), (A=255,R=3,G=3,B=3)).
- I am able to save the found path in MapInfo format. As can be seen, two path travel through obstacles, while the third takes an unnecessary and impossible detour. It is clear that the pathplanning works, and some obstacle are seen on the map. It are only wrong obstacles on wrong locations.
- Committed version 1873.
- Have to look carefully at the routine which accesses the bytes in the occupancy image.
May 20, 2009
- Committed a version which could read paths (LineStrings). Executed MapEvaluator with '-x 58 -y 42.5 -tp "D:\svn\2008\honours\maps\GermanOpen2009\Jacobs\JacobsMap_Paths.mif" -m "D:\svn\2008\honours\maps\GermanOpen2009\Jacobs\JacobsMap.png"'.
- All three target-points are not reachable, because the green in the official map.
- Run again, with '-x -8.84 -y 0.76 -v "D:\svn\2008\honours\maps\GermanOpen2009\MappingChallenge\Jacobs\JacobsMap_targets.txt" -m "D:\svn\2008\honours\maps\GermanOpen2009\MappingChallenge\Jacobs\JacobsMap.png"'. The txt file contains three targets (-7.78,8.12),(-2.89,9.18) and (-3.0,3.5), which are easy reachable from startposition (-8.84,0.76). Still no path found!
.
- Have to look more carefully to the bits (next week).
May 19, 2009
- Used a queue to store all points. Had to switch x and y in Jacobs.mif file (?!)
- I used as x,y one of the false victims. Path-planning with source and destination the same gives an endless loop.
May 18, 2009
- Able to read the features inside a mif-file. Can discriminate between points, lines, and other GeometryTypes. Can also read the information inside the mid-file (fields), which allows to discriminate between points with different meanings. But how should I discriminate? Are victim-points points with a BodyPart-field. Is the name of the layer important?
- Should I store all features in a MapInfo object, and let the manifold search for vicim-points, or do I access from the MapInfo code the manifold-methods?
May 16, 2009
- Testing world/Lakes.MIF. local=0 and projected=0. Should ask for Geometric representation GetAngularUnits, DATUM (including SPHERIOD, PRIMEM).
May 15, 2009
- MapInfoTrialData doesn't contain mif/mid examples.
- Found example data at xyzmaps. The world-example is in Earth Projection 1, 104. The Aberdeen and Britisch postcode example is Earth Projection 8, 79, "m", -2, 49, 0.9996012717, 400000, -100000 Bounds (-7845061.1011, -15524202.1641) (8645061.1011, 4470074.53373).
May 14, 2009
- Found another package to create MapInfo mif/mid files, from this article.
- The official MapInfo Data Interchange Format is currently not available, but there is a cached html version.
- There is also another (more recent) version elsewhere available.
- The MapInfo Universal Translator is part of the MapInfo Professional v9.5 Evaluation Download (30 days). The translator can be found in the the directory UT. The commandline options are quite extensive (no help-option found, use pdf to understand parameters), so I used instead imutgui.exe. This program could read and translate the sample from the robocuprescue wiki. This can be used to test the mif-format.
- MapInfo itself could not read mif files?!. It could read rasterimages such as map in tif format, but it didn't read the tfw information. As long as you don't use MapInfo, the 30 days period is not started (seems to be handy for the Universal Translator.
- The free programming environment MapBasic contains samples. One of the samples is how to integrate with the unmanaged libraries of MapInfo professional (a dll of the COM-type, see project->references).
- The files JacobsMap_Paths.mif and JacobsMap_Victims.mif are good examples in to try loading. In the Waterfront map, Jacobs found four true victims at the points ((79.753,35.259),(56.424,46.867), (56.265,50.983), (49.128,37.044))m and two false victims at points ((56.132,45.414),(51.119,48.956))m. Note that the xand y are interchanged in the mif-file.
- Max's GeoTiffViewer uses four different methods to load a file:
- loadGDALFile <- reads ImageMapItems (only when GeoTransform is correctly read, indicated with CE_None as defined in cpl_error.h)
- loadOGRFile <- reads VectorMapItem
- loadOccupancyGrid <- reads an OccupancyGrid as a single item
- loadGroundTruthFile <- reads GroundTruthCell
- Downloaded OSGeo4W Installer, did an express install of Gdal and OpenEV (express was maybe not so good idea, default location is C:\OSGeo4W).
- Created a Tools/MapInfo class, which also used GDAL to read in the data.
- Run with '-x 56.132 -y 45.414 -v "D:\svn\2008\honours\maps\GermanOpen2009\Jacobs\JacobsMap_Victims.txt" -tp "D:\svn\2008\honours\maps\GermanOpen2009\Jacobs\JacobsMap_Victims.mif" -m "D:\svn\2008\honours\maps\GermanOpen2009\Jacobs\JacobsMap.png"'
- Mif is not recognized as an supported format. gdal_info from the OSGeo4W shell says the same. Still, GeoTiffViewer can read it (because it is a ogr file stupid!). ogrinfo can open the file succesfully.
- Looking at VectorMapItem:read, I could inspect the contents. This file seem to follow the instructions in the tutorial.
- There is not much information available for the SpatialReference, but this seems to be implied by "NonEarth" and the IsLocal flag. More details about spatial references in another tutorial.
- Committed the code, should test tomorrow with another mif file with a projection.
May 13, 2009
- Tried to get one of the 5 example controllers working. According to my labbook of 31 May 2007, a have a working SimpleUI at pc-unreal, which I could control with a joystick.
- The SimpleUI executable in Tools section of sourceforge works, also with the new ugis-server working in legacy mode. This interface has a camera-interface, but no longer a joystick interface.
- Maybe the first one is a nice screenshot for the manual.
- Moast should be downloaded from another link than given in the manual.
- Instead of Install for all cygwin-packages (as specified in step 1 of the Moast-CD (version 1.3 (22 Jan 2009)), I only changed the package X11 from default to install. Still, due to dependencies many other packages are installed (such as python and gtk3).
- This doesn't work. Moast is depending on x11-packages that are known obsolete. Followed the Readme.pdf of step 1 to the letter, run the setup of the CD, specified the package-directory of the CD (this was not in the Readme.pdf). The installation is now downgraded to Moast-versions. A new directory is available in Windows start-menu: Cygwin-X.
- Could make moast-3.36 from its src. To start moast, type ./run in the directory /usr/local/src/moast-3.36/bin in the xterm started by /usr/X11R6/bin/startxwin.bat. When I do run, I see a moment a X-window with the moast-logo, but this window disappears. A P2AT is spawned in the UsarSim world, and I only get a command prompt. Typing help shows the options. Seems to be intended, according to the Presentations Part 4 measurements are displayed by typing primSpPlot | gnuplot or spPlot | gnuplot.
- RoboJoy works (after creating two copies of directories at the required places). Robot only goes back and forward (not to the side).
May 12, 2009
May 11, 2009
April 24, 2009
- In search of the All-Auto bug, I corrected PoseUpdates of the AirRobot. Did we fly in the outdoor-final with ground-truth still available?
April 23, 2009
- Tested honours rev. 1812-1831. Rev. 1825 was a partial commit, in rev. 1826 an other image-processing routine is chosen for the occupancy-map. With the original routine revision 1827-1831 are still working. Committed 1832.
- Concentrated on the getting the vision working for the finals tomorrow.
- Julian and Hanne created a new behavior, which autonomous explores until the communication boundary. With this behavior the AOJRF also won the deployment challenge.
- Each proxy had a full functional LiveDriver. No LiveDriver resulted in no longer updating the AgentControllers, so I made a LiveProxyDriver which only does CamReq.
- Had to clean up the CamReq->CamRepl chain. Result is a 2 Hz multiview video.
- Finalized the FollowAirTargets behavior which locations relayed over the WSS connection.
April 22, 2009
- Solved the GDAL.AllRegister bug. MapEvaluator was missing a postbuild event, which copies the gdal-libraries into the project-directory.
- Copying the libraries into the distribution results in three new end-points: the map is read.
- The current version of the honours-branch still crashes on out-of-memory. The clone-operation in ExtractGaussianMobImage complains about GetThumbnailImage in BufferedLayer.
Just before ExtractGaussianMobImage the program did a image.Draw(gfx, ManifoldRenderingMode.GdiPlus) with the loaded GeoTiff file.
- Maarten was quite strict about the file format 24bbp instead of the current 32bbp. Was there a reason for it?
- Should go back to distribution, and test again (when I have internet access again).
- All three sandboxes have this problem. Changed the commandline of honours to the command used for the distribution (no change). Tried directly from the command-line (no change).
- Revision 1812 is now working. Needed to unset the one-click security to be able to run with the commandline argument '-x -1.54 -y 11.6 -v "D:\svn\2008\honours\maps\RoboCup2008\WednesDay_Preliminary Mapping\Amsterdam Oxford Joint Rescue Forces\Result\Victim.txt" -m "D:\svn\2008\honours\maps\RoboCup2008\WednesDay_Preliminary Mapping\Amsterdam Oxford Joint Rescue Forces\Result\AOJRF_Prelim_Full-1-[jury].tif"'. This saved in personal MapEvaluator.suo file (not versioned). Two points moved.
- The MappingChallenge of today was a success. The Precision of 10 and the Sigma of 0.3 introduced a lot of uncertainty in the INS sensorUsarBot.ini. Deadreckoning purely on the INS would have produced the following map:
while we produced the following map:
April 21, 2009
- Arrived at the German Open. Hanne had a succesfull first challenge; two AirRobot were directed to their goal-positions, the time run out for the P2ATs to reach their positions (detours are needed).
- Installed FWTools2.3.1. Couldn't couple the GeoTiff code with this library, because the ogr-interface has changed.
- The documentation html/frmt_gtiff.html describes the GeoTiff File Format, the html/drv_shapefile.html describes the ESRI shapesfile.
- Need the ogr-interface only for saving. Commenting this part out allows to run MapEvaluator, but the precisely the same error occurs.
April 20, 2009
- Solved the GeoReference bug (committed honours 1822 and merged with competition 1823).
- The VictPathFile.gpx of this morning (8h36) contains 5 paths (24wp,30wp,276wp,290wp,218wp), the VictPathFile.txt only the path to VictimZone-0 (24wp). In debugging I have seen that the cooperation between the pathplanners works well. This should be integrated with the MapEvaluator.
- Downloaded OSGeo4W Installer, which is a comparable interface as Cygwin setup. Many packages can be downloaded (including Qt), concentrated on gdal, libtiff and openev.
- OpenEV 1.9.0 is started via D:\Programs\OSGeo4W\bin\setoeenv.bat;openenv.bat and is able to load my gpx-file. Unfortunatelly, the paths are really small compared to all maps. No csharp interface to gdal in this distribution.
- OSGeo4W-shell is very handy. listgeo AOJRF_Prelim_Full-1-[jury].tif reported ... unable to transform points between pixel/line and PCS space. gdalinfo report-1-[jury].tifreported the information also visible in openev. ogrinfo route_pointscould read VictPathFile.gpx.
April 19, 2009
- Switched InsSensor.Reset out in honours-branch.
- Even with the Reset off, the first part of the map still looks very good (with Precision 100). The map (11h50) was distorted, but mainly due to a collision in one of the small corridors.
- Tried again, with Precision10 and IDC. First part of the map (12h35) looks nicely distorted.
- The Garage is much better with WSM, but afterwards the errors are even worse (12h57). No map was saved, due to GPX-bug (solved).
- Tried Precision10 again, with Reset. IDC still had a lot of problems (13h37).
- Run last logfile with same IDC. No map was saved, due to another GPX-bug (FirstVictim = False). The same orientation error was made in the Garage.
- Run last logfile with WSM. No orientation error was made in the Garage.
- Increased INS.sigma from 0.1 to 0.2. Difference was not spectular. Map was not saved due to NoAgent-bug in AgentController (CamReq at end of run).
- Increased INS.sigma to 0.3. Difference was still not spectular, but map (15h35) was nicely distorted. AgentController bug is solved (commited revision 1820 to honours). VictPathFile.gpx is quite empty, but VictPathFile.txt contains several paths. Quad-IDC produced the same map.
- Run last logfile with WSM.
- Repeating the experiment with QuadWSM gives even better results as WSM. Look at the sharpness of the pillars!
- Repeating the experiment with Multi-IPC. In nearly all cases WSM was used (3796/45).
- Repeating the experiment with MbIPC. Algorithm is remarkely slow. So slow, that the reporting phase has started before Hercules returns to the pillars. Result is a bit noisy, an error of half a meter in the room next to the Garage, but clearly better than pure IDC.
- This are the UsarBot.ini and config-file used in these experiments.
- The map of 13h37 produced a path to VictimZone-0 with 12 waypoints. Yet, the GPX-file only contains a path to VictimZone-6, with 0-waypoints.
- Solved the problem, multiple paths are now saved. GlobalMapper could load the file, when I removed the empty one. Yet, only the name to VictimZone-0 was displayed, not the path.
- The GeoTiff Viewer has no driver for GPX-files. Strange enough, the maps are not overlaid over the apriori-files and the ground-truth. The map from the prelimaninaries of RoboCup2008 do overlay.
- The difference of the tfw's is not that big, a factor two. Yet, the difference in size is much larger. Is the MapResolution taken in account?:
< 0.0333333350718021
< -0.0333333350718021
< -11
< 14.3339996337891
---
> 0.0666666701436043
> -0.0666666701436043
> -13.3330001831055
> 14.6669998168945
- Julian changed the SaveMapDialog in edu rev 1333. Made some relevant modifications in 1335 and 1722. Revision 1335 is included, 1722 not.
- Merged UsarLib/Dialogs of both branches. Result is better, only twice too large. The 20 februari map next to competition and experimental is as large.
- First pictures from Hanne from the GermanOpen.
April 17, 2009
- Started a buglist for the German Open 2009.
- In ManifoldImage.vb, a number of Handlers are direct invoked, instead of delegated to a background thread. Delegating would have the advantage that the agent is able to continue processing incoming rangescans.
- Made a 20 minuted run true the MappingWorld, with WSM and GroundTruth. Recorded logfile 10h52. Made some collisions, so some additional walls and free space.
- Repeated experiment on logfile with WSM_INS (11h6) and IDC_INS (11h12). Several orientation errors in the map of IDC.
- Adding 50 cm random noise (on the laserscans) is too much (11h14). Tried 5 cm for IDC (11h34). WSM is even more sensitive to this noise (12h2).
- Thumbnails is still on true (7% slower according to Bas on March 24). Solved this in rev. 1819.
April 16, 2009
- Downloaded Java SDK, to be able to run the ScoreRadioDistanceOnly program.
- Program expects that the robots are numbered, with a fixed namedprefix (default Robot). Should add a new naming scheme to the competition-code.
- Added a number naming scheme to the competition-code. Program still fails, because it expects a CommStation in the map. First have to download the map. It is not the Deployment training. This map contains the following GETSTARTPOSES 'RobotStart1 -4.51,4.00,4.81 0.00,0.00,0.00 RobotStart2 -4.49,2.84,4.81 0.00,0.00,0.00 RobotStart3 -3.38,4.01,4.81 0.00,0.00,0.00 RobotStart4 -3.39,2.89,4.81 0.00,0.00,0.00 Position1 -4.32,-4.69,4.81 0.00,0.00,0.00 Position2 4.27,4.04,4.81 0.00,0.00,0.00 Position3 8.04,-8.34,4.81 0.00,0.00,0.00 Position3 5.15,-5.30,4.81 0.00,0.00,0.00'. For CommOverhead I need DM-CommExample.ut2.
- Finalized the use GETSTARTPOS in both experimental and competition.
April 15, 2009
- Added cboStartPoseName to AgentConfigDialog. Not yet fully functionally, but commited as disabled combobox as version 1814.
April 14, 2009
- Did 'cvs -z3 -d :ext:physar@usarsim.cvs.sourceforge.net:/cvsroot/usarsim checkout usarsim/Tools/ScoreRadioDistanceOnly' on 'D:\cvs' on u015305.
April 9, 2009
- Tested the experimental-branch v1799, which is the merge with sroebert1323. Started an OmniP2DX at location -35.64,-11.1,-4.0 in the Labyrinth, as indicated on 24 January 2007.
- Sonar complains about unknown yaw (which is true, no default values for a P2DX or OmniP2DX).
- Complains about an unknown INS message (set a breakpoint).
- SyncDelay is reported, and is as large as it feels.
- System crashes after a few minutes on System.InvalidOperationException in System.Drawings.dll.
- Also two System.Format.Exceptions in mcorlib.dll.
- Added P2DX and OmniP2DX in SonarSensor. Put breakpoint in LineParser. At startup, directly a number of .Net exceptions:
- A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
- [RegularThread] Nameless Thread Started by Thread UI
- [RegularThread] UI Stopped Thread Zeus
- A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
- [RegularThread] Nameless Thread Started by Thread UI
- A first chance exception of type 'System.InvalidOperationException' occurred in System.Drawing.dll
- ...
- A first chance exception of type 'System.Collections.Generic.KeyNotFoundException' occurred in mscorlib.dll
- The logfile contains the INS every time twice. Some additional logging in UsarSim?
- SEN {Type INS} {Name INS} {Location -35.64,-11.10,-4.00} {Orientation 0.00,0.00,0.00}
- {Name INS} {Location -35.64,-11.10,-4.00} {Orientation 0.00,0.00,0.00}
- The Sonar of OmniP2DX seems to work. Only two behaviors are dependend on the rear sonar (which the P2DX doesn't have). Committed version 1813.
- Tested the same code on nb-unreal. Better response. Spawned on -35.64,-10.10,-4.00. Strange, now I get constantly a double RFID message:
- SEN {Time 840.8883} {Type RFID} {Name RFID} {ID 10188} {ID 10189}
- {Name RFID} {ID 10188} {ID 10189}
- Also, it looks like the omnicam-image is used as texture, instead of the bird-eye view transformation.
April 7, 2009
- Reading the Springer book Pro VB 2008 and the .NET 3.5 Platform, by Andrew Troelsen.
- With ildasm.exe you could inspect a .Net library in a simple GUI.
- Downloaded the .Net Reflector, which can dissambly CIL-code (when containing debug-information) back to Visual Basic (or C#).
April 3, 2009
April 1, 2009
- Tested the distribution on a machine without .Net or Visual Studio.
- Installing the .Net redistribution is needed. The executable correctly prints its usage, but fails when a image is processed.
- The code fails on a Marshall-call from Imports System.Runtime.InteropServices (and works fine on the development machine).
- The call access bitmap data, which is part of the GDI+ com interop.
- Installed the GDI+ redistribution at the empty machine, but didn't help.
- The development machine has .Net Framework 2.0 Configuration, the empty machine only .Net Framework 1.1 Configuration. Couldn't find GDI+ as a component on the development machine.
- gdiplus.dll is on both machines at the same location (C:\WINNT\system32), and the same version (5.1.3102.5581).
- Looking for other directories/files named gdiplus (gdiplus.man, gdiplus.cat)
- Com+ services are located in C:\WINNT\WinSxS. Copied manifest and policy to memory stick.
- Start->Programs->Accesoires->SystemTools->SoftwareEnvironment->LoadedModules shows that the gdiplus.dll in C:\WINNT\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.2600.5581_x-ww_dfbc4fc4 is loaded. WinSxS not only has backups from old services!
- The empty machine had SP2. Upgrading to SP3.
- The empty machine has gdi32.dll as loaded module, but not gdiplus.dll
- Starting Internet Explorer 8 (which uses gdiplus), solves this issue. Both machines have now the same version of gdiplus running.
- Next option: the Visual Studio 2005 Command Prompt versus the normal Command Prompt!
- Visual Studio calls tge command prompt with this script %comspec% /k ""C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"" x86
- This script points to "%VS80COMNTOOLS%vsvars32.bat".
- Running this scripts set some interesting environment variables (check SET FRAMEWORKDIR), but the program still crashes.
- Running the MapEvaluator (version 0.1.1) on pc-unreal is no problem.
- Running on my daughters laptop is.
- Should check SP1 version of the Visual Studio redistribution.
- Read this cominterop document.
- Try the dotnetfx35setup.exe /q /norestart from .Net 3.5 (which contains .Net 2.0)
31 March 2009
- Reduced the dependency of MapEvaluator. Remaining dependency:
- Tools -> GDAL, Math
- Agent -> Tools, Math, Communication
- Maybe I can reduce the dependency on Agent. Dependence on three classes:
- Manifold, WorldView, VictimObservation
- TraversibilityTool, FrontierTool
30 March 2009
- Implemented a first 'working' version of MapEvaluator. The version plans a path to the reported victims instead of a random set of points. Unfortunatelly, not the correct occupancy information is used, although the path-planner finds some points outside the victims. Should check tomorrow the extractor function.
24 March 2009
- Moved Mappoint Spatial data Import to C:\WINNT\profiles\software\Application Data\Microsoft\AddIns. Still not visible in Tools->Add-in Manager.
- The add-in seems to be too old. One possibility is to make a new add-in from it by the Visual Studio Wizard (tutorial)
- Found an interesting discussion about drawing on a background bitmap.
23 March 2009
20 March 2009
19 March 2009
- Download MapPoint Spatial Data Import COM Add-in, which should contain Visual Basic code to read MIF vector files.
- The C:\Program Files\Microsoft Visual Studio 8\Add-in\MapPoint Spatial Data Import\SpatialDataImportCode\SpatialDataImport.vbp is a Visual Basic 6 project file, which couldnot be upgraded to Visual Basic 2005.
- Later versions of Microsoft MapPoint software (2004, 2006, 2009) don't seem to support MIF-files anymore. There is information how to load a COM add-in.
- There are several predefined addin directories. With Tools->Options I added my addin directory.
2 March 2009
- Georeferenced the map of our 1th floor. Scaled with the depth of the robot-lab around 7 meter. The Shear.X and Shear.Y are the off-diagonal elements in pixels/meter. Setting the on-diagonal elements to zero resulted in a crash. Had to rotate the map 90 deg ccw with PhotoShop.
20 February 2009
- Did some cleaning of the code (Nomad Sonar's are counterclockwise!).
- Performed a run on the logfile (with Odometry as seed!): also on the logfile the Nomad makes a strange jump.
- Analysis of the logfile shows the following line 12857:
SEN {Type Odometry} {Name Odometry} {Pose -0.248920,-0.180340,-0.148353}
NFO {Gametype BotDeathMatch} {Level DM-Mapping_250} {TimeLimit 0}
SEN {Type Odometry} {Name Odometry} {Pose 1.000000,1.000000,0.000000}
How can this occur?
19 February 2009
- Made a merge from experimental to competition, and committed the changes to rev. 1722. Test with P2AT in MappingWorld-garage looked fine.
- Added SendGeometryRequest for LaserScanner and Camera.
- The offset of the LaserScanner should be used in the localization.
- The Camera is typically mounted on a MisPkg. Its position should be queried by SendGeometryRequest to its mount. This requires the creation of a MisPkg-class. The CameraSensor.New should be called with an extra argument for the MisPkg, because this can only be indirectly queried from the simulator. The link could be queried with the GetGeo from the camera, you only should find the MisPkg which has that link. So the Agent should mount the MisPkg, and call the CameraSensor with a reference to that MisPkg.
- The sonar messages from the Nomad are now correctly read, and the GETGEO is correct handled (Double name key was depended on Mount HARD).
- Should use the GEO Sonar values in the log for the default location and orientations of the Nomad-sonars. Also should add MinRange and MaxRange to Sonar CONF message.
18 February 2009
- Today the first run with the Nomad. Robot listens to drive commands and the laserdata is processed.
- The Nomad sends every tick 769 range-measurements. According to the specifications the resolution is 360 deg / 1024 steps = 0.0061359 rad. The FOV is 768 x resolution=4.7131392. The points close to the edge will see the robot itself, but this is filtered by the min_range of 20cm in our code. According to the specs the frequency of the scans is 10Hz. In UsarBot.ini a resolution of 0.0174533 is used (three times larger), and a scaninterval of 0.4 (4 times as slow).
- Strange observations:
- the OnAgentSpawned is called after the first click on teleoperation-buttons.
- when the motors were activated a localization error of 90 deg was made. Should check the log.
- Nice observation: also the mobility layer worked!
16 February 2009
- This afternoon finally the discussion with Bas Terwijn about the connection to the Nomad.
- Looked at the UsarCommander-code around the first experiments between 5 and 10 December 2007. No modifications have been committed, all developments have been done in the code in projects/roboresc/NomadUsarServer: select.c, command_exec.c, sensor_update.c, csapp.c
- Looked at the code. Before the program nomad_usar_server, the X11-application Nserver/host/server/Nserver. Nserver needed some libraries from /usr/X11R6/lib, so I started this server on arena.
- Modified the call to the Nserver in select.c. Could compile the code with gcc-3.3, but only on arena (missing libiconv.so.2). Strange enough, that library is not part of the executable, and I can run ./nomad_usar_server 3000 on faro.
- Tested it with the edu-branch (rev. 1598). Connection was made:
Nclient version 2.7
Copyright 1991-1998, Nomadic Technologies, Inc.
Starting simulated Robot
SEN {Type Odometry} {Name Odometry} {Pose 0.2415,0.0029,-0.5157}
......
SEN {Type Odometry} {Name Odometry} {Pose 0.2415,0.0029,-0.5157}
- UsarCommander fails in UvARescue.Tools.TcpMessagingConnection.ReceiveMessages(Integer maxLength = 4096) Line 61
- Corrected the bug, and now the Odometry-messages SEN {Type Odometry} {Name Odometry} {Pose 0.2415,0.0029,-0.5157} is received in OdometryData.Load. Commited it to edu-branch rev 1699.
- Bas will continue this work, see his labbook.
3 February 2009
- Inspected the DOAS-branch. Currently there are 20 targets, and each is followed in sequence. Made preparations for a list of targets, and an automatic selection of the nearest targets when multiple robots are present.
2 February 2009
- Tried to run the sroebert-branch. Run it is with UsarCommander Startup-project, and UsarAgent. Unfortunatelly, the GDI+ is back on nb-unreal (previously this was related with the TortoiseCVS version).
- Run it as ImageAnalysis-project, but this requires the presence of Normalized images in the Results directory.
- Tried the directory sroebert1343 on nb-unreal. No teleoperation as robot 0. No movement when I push the buttons as robot 1 (OmniP2DX).
- Tried the directory sroebert on nb-unreal. Moving OmniP2DX as robot 1. No OmniCam-layer!
- Downloaded sroebert1323 (Final commit). This code works fine.
-
13 January 2009
- Downloaded the new image-server upis. Running it in Legacy mode (-l) with a small frame skip (-s 1) worked fine on a XP-machine with .NET 2005.
13 January 2009
- Downloaded the latest version of bird-eye view branch. Removed all specific references to Gideon's working directory to String.Concat(My.Application.Info.DirectoryPath, "\..\..\..\..\").
- Version is working, but when a logfile is read, no images are processed. To be checked.
- Gideon runs with ImageAnalysis as startup project.
- Updated cygwin on u015305 with cvs and openssh. cvs browse doesn't work anymore, but 'cvs -z3 -d :ext:physar@usarsim.cvs.sourceforge.net:/cvsroot/usarsim log usarsim/System/USARBot.ini' worked after a checkout. Last revision is still my own 1.97.
- Moved the camera from link1 to link2, but I couldn't detect any movement. MisPkg command is correctly sent, and results in (a small) movement from the camera on the Zerg.
- The camera of the AirRobot has only a tilt, so one link less. Changed the code to change the angle of link 1 instead of link 2, but this doesn't work. Tried to add some log-statements in KRobot.uc (for KDHinge joints, no result. Tried to mount a PGPanTiltCamera instead of an AirRobotPanTiltCamera. Result is camera on top of the AirRobot, which could be moved. No idea what I am doing wrong. Hanne had the same problem, which seems to be just back luck (second time it worked).
Labbook 2008
Labbook 2007
Labbook 2006
Labbook 2005
Labbook 2004
Formatting Help?