jessvi created page: Lab10 authored by Jesper Kurtzmann Svith's avatar Jesper Kurtzmann Svith
...@@ -111,3 +111,65 @@ To calibrate the robots travel distance according to the wheel diameter we modif ...@@ -111,3 +111,65 @@ To calibrate the robots travel distance according to the wheel diameter we modif
This code should drive the robot forward 50 cm’s. In order to get accurate results the robot was placed on a paper with a grid layout and markers for each 25 cm’s. By doing this we know that if the robot is calibrated correctly it will stop after two lines corresponding to 50 cm. This code should drive the robot forward 50 cm’s. In order to get accurate results the robot was placed on a paper with a grid layout and markers for each 25 cm’s. By doing this we know that if the robot is calibrated correctly it will stop after two lines corresponding to 50 cm.
![IMG_0677](http://gitlab.au.dk/uploads/group-22/lego/c6c2a8e30e/IMG_0677.JPG)
##### Fig. 12 - The robot starting position.
### Initial drive (diameter 3.0):
The initial drive revealed a traveled distance of 51 cm which is 1 cm more than targeted. This result is also proved by the pose() values showed below which indicates a value larger than 50.
![IMG_0679](http://gitlab.au.dk/uploads/group-22/lego/299f6cf5de/IMG_0679.JPG)
##### Fig. 13 - Ending position of the robot after test run.
![Skærmbillede 2015-06-01 kl. 09.59.50](http://gitlab.au.dk/uploads/group-22/lego/08b4fb0c39/Sk%C3%A6rmbillede_2015-06-01_kl._09.59.50.png)
##### Fig. 14 - Screendump of the robot after test run.
As the robot drove too far, we modified the wheelDiameter value from 3.0 to 3.1 (cm) and observed the change in travelled distance.
#### Wheel diameter at 3.1:
With this value the robot travelled too short (see fig. 15).
![IMG_0678](http://gitlab.au.dk/uploads/group-22/lego/2c9eeb3955/IMG_0678.JPG)
##### Fig. 15 - The robot endpoint with 3.1 Wheel diameter.
#### Wheel diameter at 3.025:
After some fine tuning we discovered that a wheelDiameter value of 3.025 revealed a correct travel in distance (see fig. 16).
![Skærmbillede 2015-06-01 kl. 10.04.44](http://gitlab.au.dk/uploads/group-22/lego/33822843f2/Sk%C3%A6rmbillede_2015-06-01_kl._10.04.44.png)
##### Fig. 16 - Screendump of the Robot with values.
![IMG_0681](http://gitlab.au.dk/uploads/group-22/lego/ca29af600f/IMG_0681.JPG)
##### Fig. 17 - Ending position with wheel diameter at 3.025.
### Causes for different Odometry (forklar i forhold til teorien generelle fejlkilder)
In [7] causes for different odometry errors are described, both systematic errors e.g. caused by unequal wheel diameters and non-systematic errors e.g. caused by wheel-slippage due to irregularities of the surface or over-acceleration. According to [7] the non-systematic errors can be reduced significantly by adjusting the wheel diameters and track width used in the software. In [7] a method is given that reduces the systematic odometry errors. We will, however, in the following use a more ad hoc method.
Vi observerede også at den altid drejer til den samme side. Derfor prøvede vi at bytte rundt på hjulene for at se om den drejede til modsatte side.
### Adjusting trackWidth through rotation
* After having adjusted the wheel diameters then make the vehicle rotate a given angle e.g. 180 degrees and adjust the trackWidth until the vehicle rotates as close to the given angle as possible.
To make the robot turn 180 degrees we modified the for-loop in PilotSquare.java. The initial trackWidth value was set to 3.
```
pilot.rotate(180);
show(poseProvider.getPose());
```
##### Fig. 18 - Codesnippet from PilotSquare.java
With the value trackWidth correctly calibrated we expect the robot to turn exactly 180 degrees.
### Results
The results showed the robot turn 180 degrees and stop with the pointer touching the line. When looking at the pose result V we see that it is practically as close to 180 degrees as itcan be, meaning that the trackWidth value is calibrated properly from the start.
![Skærmbillede 2015-06-01 kl. 10.15.35](http://gitlab.au.dk/uploads/group-22/lego/53ebbb1e9d/Sk%C3%A6rmbillede_2015-06-01_kl._10.15.35.png)
##### Fig. 19 - Screendump from the robot screen with values.
![90 turn start](http://gitlab.au.dk/uploads/group-22/lego/88f4af5140/90_turn_start.JPG)
Fig. 20 - Starting position of the robot before 90 degree turn.
![90 turn finished](http://gitlab.au.dk/uploads/group-22/lego/2f3dfa8f34/90_turn_finished.JPG)
Fig. 21 - Finish position of the robot after 90 degree turn.
In [4] it is described that "With proper adjustment of these parameters, errors in distance traveled and angle of rotation can be held to 2% or perhaps less". See if this can be achieved.
Our values and test drives reveals an error of less than…. (50.8 cm / 50 cm * 100 ) - 100 = 1.8 % error
\ No newline at end of file