This is an old revision of the document!
Table of Contents
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.
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
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.