|
|
Odin,
a robot for odometry
Odin is a robot that estimates its own
position while it moves using odometry.
In order to do that it measures as precisely as possible distances
travelled and orientation of displacement. Its mechanical structure
is well suited for that: when travelling it rolls on four parallel
wheel so it is able to go very straight. For turning, it raises
itself on a central pivot, turns around it and goes down, ready
for the next move.
Of course odometry has limitations: Odin must
roll on flat, smooth ground (preferably a hard one), and it
is not cat proof... Any collision will make it loose its position.
Even without hitting something, after a round
trip Odin will come back at its starting position with some
position and bearing offset. A light sensor placed below Odin
enables it to return home guided by a L-shaped mark on the floor.
|
Side views of Odin. |
|
Bottom view. You can see the central
pivot, the light sensor and the motor that drives
travelling wheels. |
|
Odin raised on its central pivot.
The pivot is equipped with rubber feet that prevent
slipping. |
|
Bottom side view, showing attachment
of the light sensor. Tilting it slightly this way
minimizes sensitivity to specular reflection on
shiny surfaces. |
|
Close-up of the light sensor. |
|
The touch sensor is pressed when
the central pivot is at its highest position (Odin
is resting on its wheels). |
|
Close-up of the rotation motor, showing
the routing of the cable. |
Movies
|
Pivot raises and turn (Divx5, 500kb). |
|
Odin moving along a square path (Divx5,
500kb). |
|
Odin performing several moves and
turns while resetting to its startup position (Divx5,
3Mb). |
|
10x accelerated movie showing Odin
make a round trip, reset its position and orientation,
and make again the same trip. (Divx5, 3Mb). |
|
Overhead movie of Odin while it detects
the L-shape to return to startup position (Divx5,
1.6Mb). |
Building
instructions
Programs
|
SquareDance
is a very simple program to test mechanical functions
of Odin. It instructs Odin to follow a square-shaped
path. |
|
SquareDanceStar
is the same program with different parameters. This
time the path shape is a 5 branches star.
Odin goes forward for Fwd_Distance,
turns Turn_Angle degrees to the left or right according
to Turn_Right, and repeats that Turn# times. |
|
This archive
contains the odometry programs.
Important:
these programs require Square
Root and Atan2
block written by Claude
Baumann. These blocks need to be installed in
LEGO NXT programming environment using the Tools
> Block Import Export Wizard.
- Odometry2.rbt moves Odin along a path described
by the file xycoord.txt that must be downloaded
in the NXT. Use NXT control panel, Memory pane,
Download button.
- raz_test.rbt tests the alignment of Odin
along a mark on ground. This mark is a black
inverted L shape. Thickness 5 cm, long branch
1 meter (Odin will align with this direction),
short branch 30 cm (Odin will align its rear
wheels on this mark). See this image.
- Odometry3.rbt combines the path following
of odometry2 and re-alignment on L mark and
loops forever.
Format of xycoord.txt :
- each group of two lines contains the
coordinates of the next point to reach, expressed
in millimeters.
- Startup position of Odin has coordinates
(0,0)
- Initial direction is Y direction (Y positive
when Odin goes forward). X direction is positive
to the right of Odin, negative to the left
- First line of each group of 2 lines is the
X coordinate, second one is Y coordinate.
|
|