... | @@ -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 |