... | ... | @@ -47,7 +47,7 @@ The **Non-systematic** involves variations in the surface and the internal uncer |
|
|
|
|
|
## Calibration of wheel diameter and the track width
|
|
|
|
|
|
The wheels diameter is calibrated by letting the car drive 50 cm and then adjusting the diameter according to where the car stops. Similarly the track width is calibrated by letting the car spin 360 degrees and again observing the stopping position and adjusting the track width accordingly. The calibration setup is shown in the following image.
|
|
|
The wheels diameter is calibrated by letting the car drive 50 cm - using the "travel()" function of the DifferentialPilot with 50 as parameter - and then adjusting the diameter according to where the car stops. Similarly the track width is calibrated by letting the car spin 360 degrees - using the "rotate()" function of the DifferentialPilot with 360 as parameter - and again observing the stopping position and adjusting the track width accordingly. The calibration setup is shown in the following image.
|
|
|
|
|
|
![Calibration of LEGO car parameters](https://gitlab.au.dk/rene2014/lego/raw/master/Lesson10/Images/Calibration.JPG)
|
|
|
|
... | ... | @@ -59,7 +59,7 @@ We found out that it was necessary to set the right wheel diameter a little high |
|
|
| Right wheel diameter | 5.544 cm |
|
|
|
| Track width | 16.27 cm |
|
|
|
|
|
|
To validate the calibrated values we let the LEGO car drive in a 50 x 50 cm square as shown in following image. The goal is after the trip to end back up in the start position.
|
|
|
To validate the calibrated values we let the LEGO car drive in a 50 x 50 cm square as shown in following image. The goal is, after the trip, to end back up in the starting position.
|
|
|
|
|
|
![Validation of LEGO car parameters - Left turns](https://gitlab.au.dk/rene2014/lego/raw/master/Lesson10/Images/PilotSquareLeftTurns.JPG)
|
|
|
|
... | ... | @@ -72,7 +72,7 @@ The result of 3 attempts are summarized in the following table. |
|
|
| 2 | -10.00 mm | -10.00 mm | 2.80 mm | -2.80 mm |
|
|
|
| 3 | -13.00 mm | -15.00 mm | 3.00 mm | -1.80 mm |
|
|
|
|
|
|
Despite what we expected the LEGO car did not end up the exact position as it started in. A clear sign of systematic errors is seen due to the x and y position always are negative.
|
|
|
Despite what we expected the LEGO car did not end up in the exact position as it started in. A clear sign of systematic errors is seen due to the x and y position always are negative.
|
|
|
We then tried to calibrate the parameters of the LEGO car according to the 50 x 50 cm square and ended up with the following parameters.
|
|
|
|
|
|
| Parameter | Value |
|
... | ... | @@ -109,7 +109,7 @@ Due to these poor results the original calibrated parameter values are used. |
|
|
| Right wheel diameter | 5.544 cm |
|
|
|
| Track width | 16.27 cm |
|
|
|
|
|
|
It seems like it is near impossible to calibrate the parameters so that the LEGO car is able to travel a given distance while performing a number of random turns. Multiple reason can cause this behavior. An obvious reason is the leJOS maximum precision of 2 %. So no matter how much calibration is performed some error will always exist. Other factors like the position of the back wheel could also be part of the explanation. If the back wheel is not aligned with the driving direction the car can be drawn out of course when pulling the back wheel into the correct direction.
|
|
|
It seems like it is near impossible to calibrate the parameters so that the LEGO car is able to travel a given distance while performing a number of random turns. Multiple reason can cause this behavior. An obvious reason is the leJOS maximum precision of 2 %. So no matter how much calibration is performed some error will always exist, even though this probably is non-systematic. Other factors like the position of the back wheel could also be part of the explanation. If the back wheel is not aligned with the driving direction the car can be drawn out of course when pulling the back wheel into the correct direction.
|
|
|
|
|
|
## Position tracking by means of particle filters
|
|
|
|
... | ... | @@ -175,13 +175,10 @@ As can be seen in the video in [3], the odometry was able to keep track of the c |
|
|
|
|
|
|
|
|
## Conclusion
|
|
|
Notes:
|
|
|
Heltals afrunding af tachometer ved start og stop af både travel og rotate.
|
|
|
Baghjulets påvirkning
|
|
|
|
|
|
|
|
|
Position tracking with obstacle avoidance:
|
|
|
Use travel and rotate with immediateReturn = true. Then the commands can be overridden by a avoidance behavior.
|
|
|
In this exercise we have performed experiments with odometry in a real world setting. For this to work a highly precise calibration of the wheel diameter and track width is required. We discovered that this is not a straight forward task when working with LEGO and the leJOS environment. The problems we encountered resulted in that we were not entirely able to remove systematic errors from the system.
|
|
|
Many factors will affect the driving and we were therefore not able to determine the exact cause of the calibration errors. Our best estimate is that the orientation of the back wheel plays an important role and should be aligned precisely according to the direction of driving.
|
|
|
When doing position tracking with the particle filter a distance and an angle noise factor needs to be determined in order to cope with the non-systematic errors. Here we found out that speed is a significant factor. When the speed is increased the different noise factors also needs to be increased due to a higher uncertainty of the end position.
|
|
|
|
|
|
|
|
|
## References
|
... | ... | |