27 November 2008
- Tested the unique key pair in UsarAgent.vb. It works, and also removed the double call to ProcessGeoMessage.
- Should add example in ClearLayer, and merge it with the students-groups.
21 November 2008
- Downloaded gmapping.
- The package consist of several directories, most relevant is gridfastslam.
- GridFastSlam is called from gsp_thread.cpp.
- GridSlamProcessorThread::init can readin a config file, or handle 45 arguments.
- Jacobs access gridfastslam with a simple UpdateMap(x, y, theta, lrfData,planeData), after the initiation. UpdateMap is grisetti-base\src\gmapper.c, which refers to grisetti-lib (from openslam.org).
- Looked at Platform Invocation Services (PInvoke), which allows managed code to call unmanaged functions that are implemented in a DLL.
- Also downloaded the TilePuzzle sample, which combines a C# interface with managed C++.
- Unfortunately, the permission seems to be wrong from this package.
- Best way to proceed, is to try to compile the Jacobs grisetti-base\test in VisualStudio, before it is included in VisualBasic.
18 November 2008
- Implemented GETGEO request for Sensors.
- Unfortunatelly, GETGEO requests are not queued. Only the last request is answered.
- Unfortunatelly, a sensor has to request GETGEO for each of its instances, and cannot query the systems for the name of its instances. Maybe a nice request for the UsarSim track-list.
7 November 2008
- Tried to modify the compWorldDay1. Followed the instruction of the Dutch manual.
- Made a new world, DM-cubicleWorldDay1_250.ut2.
- Explored the new World, and made the following map:
- Reading in the mobility channel, should give a map which could be compared with local map.
15 October 2008
- Checked the latest code of Math.Net, to experiment with the Kalman filter provided in the Neodym library. Had to add a RootPath to my Windows Environment to get it working.
- There is a KalmanFilterTest with examples how to use the filter.
24 September 2008
- Added GetGeo message (rev 1440), but doesn't seem to get response.
- Added log-message to KRobot.uc and GroundRobot.uc, but no effect. Is CarInput overloaded by Zerg.uc?
- Worked with fixed WheelRadius (of Zerg), but it is clear that the omega is zero case should be handled.
24 September 2008
- Looked at a way to estimate the wheel-radius. The Drive command is handled in UsarBotConnection, but accept the turning speed in rad/s. Also the Speed-definition is in rad/s.
- We need to have vl and vr from sheet 4 of wheeled locomotion. The dimenstion of vl and vr = rad*m/s. So we have to estimate the wheel-radius.
- The WheelRadius, WheelSeparation and WheelBase can be asked with a GEO-message.
- Added Agent:ReceiveGeoMessage(ByVal msgtype As MessageType, ByVal parts As Specialized.StringCollection) as stub.
This function should handle the Response of a "GETGEO {Type Robot}"-message. Best strategy seems to define an actuator-base with specialisation body and wheels. The body and wheels should be mounted, and the messages handled by the corresponding data classes.
12 September 2008
- Prepaired the Error Variance assignment.
- When driving at the middle of the street of the DM-compWorldDay1_250, the GPS sees typically 4 to 5 satellites. I changed the location to UCMerced, hoping to see more satellites, but I only saw 0 to 1 satellite. Requested Ben for a location where more satellites are visible.
- Had now several times an 'out-of-memory' exception, the latest in CameraData:Load. Maybe I should put a Try around this function.
10 September 2008
- Removed the encoders on the CameraPanTilt for the OmniP2DX. This extra encoders seems to be the source of the additional non-sensor lines with encoder ticks. Commited revision 1.97.
- Finished the EncoderSensor (revision 1390). What is still missing is code to handle this information at the Agent-level.
- For the DM-compWorldDay1_250, at the start position in the Park (-85,102,-1) the robot sees only a few satellites.
- Retry at (13.0,5.0,-4.0) (0.0,0.0,1.57). At the SideWalk the Zerg drives on INS, at the street (8.0,5.0,-4.0) the Zerg jumps around on the GPS data.
9 September 2008
- Missing updates:
- Problem seems to be that UsarSim wasn't compiled after installing.
- UsarSim didn't want to be installed, because there was still a OmniCamPillar in USARModels. After deleting this old file, compilation worked.
- Also solved the overflow of SoccerBal.timer-warnings, by adding the line if(SensorList.length == 0 && MisPkgs.length == 0) { return;} to the timer-function of KRobot.uc.
- Remaining is the USARHud.DrawLCDWeapon-warning, but according to beyondunreal this bug only occurs at my machine with a G15-gamepad.
- Committed KRobot.uc 1.77, after installing openssh for cygwin, and creating a symbolic link from UT2004 to usarsim.
5 September 2008
- Tested version 1368 on nb-unreal, and all behaviors worked fine.
- Tested the different buttons (for instance, the screen button saves a picture at D:\USARSim\Results). Activate the camera-picture in the AgentController.
- Made a distinction between the controlling and controlled thread (Me.Wrapped) in the debug-information.
- Committed version 1368.
4 September 2008
- Fresh install from edu (rev 1366)
- Tried to set the solution to use UsarCommander as StartUp Project by changing the order of the projects, but the initial selection seems to be alphabetic.
- The students will get problems with overwritting the UserLogs from their Predicesors. Changed the name of Operator to Zeus.
-
Find all "Operator", Match case, Whole word, Subfolders, Find Results 1, "Entire Solution"
- D:\svn\Roboresc\edu\Agent\Actors\Comm\CommActor.vb(897): Me.SendBroadcastMessage(New CamReplMessage(fromRobot, "Operator", camIm))
- D:\svn\Roboresc\edu\Agent\Agent\Agent.vb(821):#Region " Signal Strength to Operator "
- D:\svn\Roboresc\edu\Agent\Agent\BehaviorAgent.vb(154):#Region " Connection To Operator "
- D:\svn\Roboresc\edu\Agent\Agent\BehaviorAgent.vb(185): Console.WriteLine(String.Format("[{0}] - Established connectivity with Operator, awaiting command", Me.Name))
- D:\svn\Roboresc\edu\Agent\Agent\BehaviorAgent.vb(190): Console.WriteLine(String.Format("[{0}] - Lost connectivity with Operator, initiated retreat", Me.Name))
- D:\svn\Roboresc\edu\Agent\Agent\OperatorAgent.vb(73): 'If agentName = "Operator" Then
- D:\svn\Roboresc\edu\Agent\Agent\OperatorAgent.vb(141): Console.WriteLine(String.Format("[Operator] - Camera image received from {0}", fromRobot))
- D:\svn\Roboresc\edu\Agent\Agent\ProxyAgent.vb(12):#Region " Operator "
- D:\svn\Roboresc\edu\Agent\Agent\ProxyAgent.vb(15): Public ReadOnly Property [Operator]() As OperatorAgent
- D:\svn\Roboresc\edu\Agent\Agent\ProxyAgent.vb(65): ''' commands through the Operator.
- D:\svn\Roboresc\edu\Agent\app.config(51): Operator
- D:\svn\Roboresc\edu\Agent\Behavior\Behaviors\ConservativeTeleOp.vb(4):''' - try to get back in range of the ComStation as soon as the connection with the Operator is lost
- D:\svn\Roboresc\edu\Agent\Behavior\Behaviors\TeleOperation.vb(4):''' as soon as the connection with the Operator is lost.
- Installed openssh package for cygwin (and updated many packages on the fly).
- Committed KRobot.uc version 1.77, after creating a symbolic link from UT2004 to usarsim.
- D:\svn\Roboresc\edu\Agent\Behavior\Motions\CorridorWalk.vb(62): If (._TeamMembers(i).Equals("Operator")) Then
- D:\svn\Roboresc\edu\Agent\Behavior\Motions\FrontierExploration.vb(136): If (._TeamMembers(i).Equals("Operator")) Then
- D:\svn\Roboresc\edu\Agent\Behavior\Motions\RandomWalk.vb(58): If (._TeamMembers(i).Equals("Operator")) Then
- D:\svn\Roboresc\edu\Agent\My Project\Settings.settings(24): Operator
- D:\svn\Roboresc\edu\Agent\My Project\Settings.Designer.vb(113): Global.System.Configuration.DefaultSettingValueAttribute("Operator")> _
- D:\svn\Roboresc\edu\Usar\UsarLib\Dialogs\AgentConfigDialog.Designer.vb(428): Me.optUsarOperator.Text = "Usar Operator"
- D:\svn\Roboresc\edu\Usar\UsarLib\Dialogs\SaveMapDialog.vb(36): ' Initialize list of team members (excluding Operator)
- D:\svn\Roboresc\edu\Usar\UsarLib\Dialogs\SaveMapDialog.vb(111): If Not (memberName = "Operator") Then
- D:\svn\Roboresc\edu\Usar\UsarLib\Dialogs\TeamConfigDialog.Designer.vb(255): Me.lblOperatorName.Text = "Operator Name:"
- D:\svn\Roboresc\edu\Usar\UsarLib\Views\AgentController.vb(160): If Me._AgentConfig.AgentName = "Operator" Then
- D:\svn\Roboresc\edu\Usar\UsarLib\Views\AgentController.vb(520): If Me._AgentConfig.AgentName = "Operator" Then
- D:\svn\Roboresc\edu\Usar\UsarLib\Views\TeamController.vb(110): 'the first name (index=0) should be the Operator name
- D:\svn\Roboresc\edu\Usar\UsarLib\Views\TeamController.vb(114): names = New String() {"Operator", "Neo", "Morpheus", "Trinity", "Tank", "Dozer", "Apoc", "Mouse", "Cypher"}
- D:\svn\Roboresc\edu\Usar\UsarLib\Views\TeamController.vb(116): names = New String() {"Operator", "Sean", "George", "Roger", "Timothy", "Pierce", "Daniel"}
- D:\svn\Roboresc\edu\Usar\UsarLib\Views\TeamController.vb(118): names = New String() {"Operator", "Hercules", "Achilles", "Theseus", "Odysseus", "Perseus"}
- D:\svn\Roboresc\edu\Usar\UsarLib\Views\TeamController.vb(120): names = New String() {"Operator", "Mercury", "Venus", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"}
- D:\svn\Roboresc\edu\Communication\Messages\CamReqMessage.vb(8): MyBase.New("Operator", toRobot, Communication.MessageID.CamReq)
- Matching lines: 128 Matching files: 27 Total files searched: 415
Unfortunatelly, Julian has removed the drive-buttons for the operator (should be related with AgentType or even teleoperation behavior).
- More disturbing, is that the robot does not moves (both for DriveSquare and TeleOperator).
- Changing the behavior while running leads to a crash.
- Me._UsarOperator.CommActor.RelayBehaviorChangeCommand is called, without check if the _UsarOperator has a CommActor or if this Agent is a CommAgent or ProxyAgent.
- Solved with following line of code in AgentController:BehaviorDisplay_SelectedIndexChanged
- If Not IsNothing(Me._Agent) Then
- If Not IsNothing(Me._UsarOperator) AndAlso Not IsNothing(Me._UsarOperator.CommActor) AndAlso TypeOf Me._Agent Is UsarProxyAgent Then
- Me._UsarOperator.CommActor.RelayBehaviorChangeCommand(Me._UsarOperator.Name, Me._Agent.Name, newBehavior)
- Else
- Me._Agent.ChangeBehaviour(newBehavior)
- End If
- End If
Code seems to work. Relay-branch should move to ProxyAgent:ChangeBehaviour.
- Still, no movement, put a trace on the DriveButtons.
- Replicated the BufferLayer with the Parameter not valid method. Exception seems to occurr when the System.Drawing.Image is for a moment disposed. Couldn't get the code threath-safe. Try again tomorrow.
- Committed the changes not related to the BufferLayerBug.
Labbook 2007