Figs.
ODOMETRY
Abstract
The lab is composed of making some
design changes to the previous robot
to implement an Odometry system
that provides a robot's position and
orientation. The robot is required to
move autonomously in a square
trajectory on a 3x3 grid wooden field.
Using a light sensor, a simple
correction is made to improve the
odometer results and display values
relative to the defined origin. The
objective is to make the display values
as accurate as possible to the
physically measured readings.
Group: 22
Tanbin Tahsin Chowdhury
Michel AbdelnourDesign Evaluation
Four main components make up the robot: the two motors,
the EV3 brick and a light sensor. Everything is held together
using arrangements of pillars. The light sensor and motors are
connected to the brick via ethernet cables. The purpose of the
light sensor is to detect grid lines and correct the odometer.
The odometer's y position value is corrected by taking
difference between the light sensors calculated position and
the nearest grid line. Similarly, when the light sensor crosses a
vertical grid line, x position of the robot is corrected.
The light sensor gives the count of number of lines it has
detected and multiplying that with the length of each tile, the
robot is able to understand every time it crosses three squares,
thus the robot rotates in 2 90-degree angle. This is,
implemented by a formula that uses the width and the radius
of the wheels to determine the number of turns needed to
travel 91.44 cm and then rotate in a 90-degree angle, hence
through this procedure the Square driver makes the robot
complete the square trajectory.
Fig:1.2 The odometer in the robot shows the number of turns both
wheels make and uses Tacho-count to determine the position
of x and y. Moreover, it measures the angle of rotation, which
is then used to determine the position of the robot by
comparing the angle of the initial position and current position.
When theta goes to 360 degrees, it would wrap to zero and
vice-versa.
‘The Flow chart below illustrates it:
Sen ren)
Move wheels Detect the grid lines
‘Take values from Tacho meter
ene Correct the values of X and YTest Data
Odometer without correction:
Odometer
Odometer reading Starting Starting Final Final FX-SX_FY-SY_ Error
reading fory x(sx) (SY) X(FX) (FY)
for x
046-067-139 102-17 a7 3.63)
ost “13.9 115-119 2.76|
oss 032-139 92-126 47 4s7|
0.16 05-139 134-124 0s 252|
04-042 13.9 129-136 1 3.83]
o4s 058-139 125-127 1a 2.88|
03-025 13.9 93-25 46 3A 5.16]
035-017-139 24) -a2|—as|__-2.6) 2.69]
06 04-139 131-125 08 31 2m
0.67 07-139 119-129 235i 3.10]
Table: 1.0
Odometer with correction:
Odometre OMe starting Starting Final__FinalY
x fers even Mal in ty RSX FYSY Error
113-139 oa| -37[ 17] 02] 23) 2.04
47139 a) 27) 417) 12) 23 3.50
136-139 94 135-136 0D 0.70
137-139 94-14-8725 AB 178
125 139 ‘oa[ -a7[ 12s] 22) al 3.03
117-139 94 129-17 a 2a) 1.80
“139-139 o4| -117| 139/22] a5) 0.08
B4 139 $4 135) B44 1.85
412-139 94-1478 1122218 192
138-139 94 1279-138 11a 141
Table: 1.1Test Analysis
Euclidean distance error is calculated in the tables
Mean Standard Deviation
Odometer X with Correction _| -13.29 119
Odometer X without Correction | 0.465 0.159
Odometer ¥ without correction | -0.441 0.165
Odometer Ywith correction _| -12.98 1.16
Error with correction 181 0.99
Error without correction 3.43 0.96
Table 12
The value of standard deviation of X and Y with correction is larger compared to without correction
Moreover, the standard deviation of error without correction is lower than with correction. This indicates that
the readings found from odometer are not correct enough
Reasons for variations
* A few things can be modifying the center point as well as parallelism of the wheels from
that point. The assumption of the wheels being parallel and equidistant from the center
point of the robot and having the same radius over time may not be true because the
tires of the wheels can stretch and contract, changing the radius, and also the axels of
the wheels can flex.
* The assumption of the robot being proficient of sampling the wheels tachometer swiftly,
and the motion of the wheels is constant between trials.
The error in the X position is expected to be smaller for the following reason:
The error in the Y-axis is smaller than X-axis. This maybe because of the drifting of wheels on
the floor. Therefore, the error due to this drift adds more in X, since the Y value comes before
X. The lower standard deviation of Y also implies the same thing.Observation and Conclusion
Error observed in the odometer without correction is not acceptable for larger distances. The
most notable source of error was the angle of rotation (theta) being calculated incorrectly by
the odometer. Hence, the robot will deviate from its path if it travels larger distances, e.g., 5
times 3 by 3 grid's distance. Error is also observed to increase proportionally to the distance
travelled, therefore, it can be resolved that error grows linearly with respect to travel
distance,
Further Improvements
Preventing robot's wheels from slipping:
Qa) Decreasing the speed and acceleration, especially when the robot is making a turn. When
moving too fast, it is difficult for the robot to have a good grip to the surface. Decreasing the
acceleration means the rotation of the wheels will be slower allowing a better grip to the
surface.
Theta Correction:
Qb) Two sensors can be positioned parallel to each other to correct the angle shown by the
odometer. If the robot travels perpendicular to a grid line, those two sensors will pass the grid
line at the same time thus give us the correct value of the angle. Otherwise, the robot will
measure the time difference between the two sensors crossing the line, and calculate the
angle by that difference.
Provided only one sensor, one way to correct the angle would be to know the distance
between two lines. The robot constantly measures the distance between the line it crossed
and the next one. Using these values, theta can be corrected by performing the following
trigonometric identity.
Know Distance
39 =—___Anow Distance _
°°S° = Distance measured by the robot