LEGO® MINDSTORMS® and Technic®MINDSTORMS® EV3/NXTMINDSTORMS SensorsLEGO® technical dataLDrawMiscellaneous LEGO®LEGO® & PhotographyPanoramic PhotographyPhoto GalleryHome

 

 

     
    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

    Printable building instructions (PDF, 1.7Mb).

    LDraw/MLCad MPD file.

       

    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.

 

    Description of Odin homing process

     

    1. Odin moves inside the L-shape.
       
    2. It turns 90° right and moves till it finds the black line. Doing so it measures d1.
       
    3. Odin goes backwards by distance d1.
       
    4. It turns 90° left and moves in its initial direction by distance l.
       
    5. It turns 90° right and moves till it finds the black line again. Doing so it measures d2.
      Odin now know its original heading: a = atan(d2-d1) / l. It turns by this angle.
       
    6. It goes backwards inside L, and turns left 90°, it is now aligned with the long branch of the L.
       
    7. Odin finally goes backwards till it finds the short branch L black line. It is now aligned and in the home position, ready to start a new trip.

 

LEGO® MINDSTORMS® and Technic®MINDSTORMS® EV3/NXTMINDSTORMS SensorsLEGO® technical dataLDrawMiscellaneous LEGO®LEGO® & PhotographyPanoramic PhotographyPhoto GalleryHome