User Tools

Site Tools


marvin:lab9

This is an old revision of the document!


Lab report 9

Date: November 14th 2008
Duration of activity: 8-13
Participants: Kasper, Bent and Johnny

Project Goal

Make a robot that drives from one point to another, using (x,y) coordinates, while avoiding obstacles.

Plan

  • Build a car fit for navigation.
  • Find out how to use the tacho counter.
  • Write and test navigation program.
  • Calibrate the navigator, using the wheel size and track width.
  • Find out how to use the compass.
  • Find out how to use the two navigator classes, and decide on which one to use.

Car design

The car was build using the instructions from 1) since this design is very suitable for this purpose as it has a relative long distance between the centres of the left and right wheel - thus resulting in higher resolution from the tacho-counters on 360 degrees. We decided to use very flat wheels with a higher diameter than suggested in the design in order to eliminate bouncing from the wheels. The higher diameter will reduce the number of tacho-readings and hence the precision. We argue that the change in tacho readings due to the small difference in diameter is negligible.

Marvin
lab9-2.jpg

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.

Execution

CompassNavigator2) TachoNavigator3)

Calibration

As a starting point we measured the wheel diameter and the distance between the centre of the two wheels. These distances are measured in cm and the values are parameters of the function TachoNavigator(). To calibrate the first parameter, wheelDiameter, we tested Marvin to travel 2.00m on a straight line. If he goes beyond this distance, the program uses too many rotations, which indicates the wheelDiameter is set too small compared to reality. After some tests the wheeldiamter was set to 6.9cm. Thereafter we can calibrate the distance between the centre of each wheel by choosing Marvin to make N rotations around its own axis. We decided to make 4 rotations and experimenting with the parameter, trackWidth, while keeping wheelDiameter constant. The calibrated value was set to 17.68cm.

Test Drive

lab9-1.jpg

1)
Brian Bagnall, Maximum Lego NXTBuilding Robots with Java Brains, Chapter 12, Localization, p.285 - p.302.
marvin/lab9.1226659791.txt.gz · Last modified: 2008/11/14 11:49 by rieper