User Tools

Site Tools


marvin:lab9

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
marvin:lab9 [2008/11/14 12:06] riepermarvin:lab9 [2009/01/12 09:04] (current) deva
Line 20: Line 20:
 **Marvin**\\ **Marvin**\\
 {{marvin:lab9-2.jpg?300}} {{marvin:lab9-2.jpg?300}}
 +
  
 ====Tacho counter==== ====Tacho counter====
 The use of the tacho counter is an integrated part of the navigator class. The function TachoNavigator() uses the tacho readings together with the measures of the wheel diameter and distance between the centres of the wheel to navigate in a cartesian coordinate system. Another function goTo() enables the car to move to any point in the coordinate system. This function automatically rotates the robot in the direction specified by the coordinates. The command goTo(100,100) will turn the car in a 45 degree angle and travel the distance dictated by the laws of Pythagoras. These functions form an easy basis for the navigation program. The use of the tacho counter is an integrated part of the navigator class. The function TachoNavigator() uses the tacho readings together with the measures of the wheel diameter and distance between the centres of the wheel to navigate in a cartesian coordinate system. Another function goTo() enables the car to move to any point in the coordinate system. This function automatically rotates the robot in the direction specified by the coordinates. The command goTo(100,100) will turn the car in a 45 degree angle and travel the distance dictated by the laws of Pythagoras. These functions form an easy basis for the navigation program.
-  +
 ====Execution==== ====Execution====
 CompassNavigator(([[http://lejos.sourceforge.net/nxt/nxj/api/lejos/navigation/CompassNavigator.html]])) CompassNavigator(([[http://lejos.sourceforge.net/nxt/nxj/api/lejos/navigation/CompassNavigator.html]]))
Line 33: Line 34:
  
 ====Test Drive==== ====Test Drive====
 +If both calibrations were precise the robot should be able to navigate precisely around in a cartesian coordinate system. The testrun is shown on the figure below together with a video of the performance. There seems to be a weakness in the rotations, but the distance is very accurate. One way to improve the precision during rotations could be to add a compass.   
 +
 {{marvin:lab9-3.gif?300}} {{marvin:lab9-3.gif?300}}
 [[http://www.youtube.com/v/kQWv8H6lPtM|{{marvin:lab9-1.jpg}}]] [[http://www.youtube.com/v/kQWv8H6lPtM|{{marvin:lab9-1.jpg}}]]
  
 ====Adding the Compas==== ====Adding the Compas====
 +We do not know much about the compass as to how it measures and whether the readings from 0 to 360 degrees are truly linear. But we assume the compass has a higher precision than the tachometer readings and we also assume the output readings from the compass to be a linear function of the sensor input.
 +
 +
 +There were magnetic disturbances at the test area, which of course made the compass inaccurate.
 +
 +The precision of the compass was tested by placing a marker on the robot. In this way we can simply measure the deviation by letting the robot turn on a whiteboard and measuring the angle. A little noise was added to these measurements as the slippery surface of the whiteboard caused the wheels to spin a little. The acceleration was too high for this surface and one could have reduced the motor power.
 +
 {{marvin:lab9-4.jpg?300}} {{marvin:lab9-4.jpg?300}}
 +
 +====Conclusion====
 +Due to problems with the compass which comprised both magnetic disturbances and a misinterpretation of the compass directions in the given coordinate system we did not reach a satisfactory implementation of the combined navigation system. The best performance was achieved without the compass, but we do not conclude on the precision of the compass, as it may still improve the overall precision when properly implemented in a suitable environment. Neither did we experiment with avoiding obstacles when travelling from point A to B. This may be achieved through a behaviour based program using the goto() function as it provides an easy way to store the alternations on the initial path and thereby finding the correct final destination anyhow.   
 +
 +The final code: {{:marvin:navigatingcar.tar.gz}}
marvin/lab9.1226660807.txt.gz · Last modified: 2008/11/14 12:06 by rieper