LEGO NXT - Monte Carlo Localization

Loading...

Sign in or sign up now!
Alert icon
Upgrade to the latest Flash Player for improved playback performance. Upgrade now or more info.
4,616
Loading...
Alert icon
Sign in or sign up now!
Alert icon

Uploaded by on Mar 15, 2008

Please feel free to ask questions! I will answer them all. See below for more information.

This was part of our Robotics course at university. Each group was given a LEGO Mindstorms kit with the standard motors and sensors, and also a HiTechnic compass sensor.

Our objective would be to build a robot that could navigate its way around the given map and follow a series of waypoints, correcting itself when needed.

We built a standard tribot and mounted a sonar on the front to measure the distance to the wall in front. We did not use the compass.

We programmed the NXT using RobotC interface which is much the same as C. The technique used is called Monte Carlo Localization which probalistically determines where the robot it based on odometry and the sonar readings.

The map data was given at the start, and the waypoint data was given just before the challenge.

Our robot was the fastest, but not quite the most accurate. Our robot was, however, the only robot to manage Global Localization (not featured here).

Music is freely available from http://www.ocremix.org

  • likes, 2 dislikes

Link to this comment:

Share to:

Uploader Comments (BoffinbraiN)

  • Hi, how did you save the map in matlab???being a beginner to matlab pleaz explain it a simple as possible thx

  • @TheDevilnish Sorry, I can't help you with that. We did not use MatLab to do this project. Everything was calculated on the NXT.

  • @BoffinbraiN Thx for answering but how did you save the map on the NXT??If you hv used arrays how did you represent the map with it??thx

  • @TheDevilnish Like I said to 77sweetstar, the map is a hard-coded array of lines. The lines are simply a pair of points A and B, each with X and Y coordinates.

  • Hi your work was awesome, I am doing my dissertation in mobile robotics for that i am using Lego nxt for simulation result. I couldn't get an idea of how to store the environment map in nxt... How you stored the external map.. Could you tell me this. If so it would be great for my project. Thanks in advance

  • @77sweetstar The map in this particular project was simply a hard-coded array of integers specifying a series of lines i.e. points X1, Y1 to X2, Y2. Those lines are then used to estimate the distance to the wall in front of the robot. However, there are better ways of creating maps if you have more computational resources.

    You might want to get in touch with esmetaman, who is also working on a similar project using NXT and leJOS.

Video Responses

This video is a response to Lego NXT - Monte Carlo Localisation
see all

All Comments (15)

Sign In or Sign Up now to post a comment!
  • @eiiriikz The test map was designed by our lecturer so that no straight line drawn anywhere inside it could be more than 255cm, so we didn't have to deal with this issue.

    The source code is only useful for people programming in RobotC. If you are, then send me a PM.

  • How did you handle the problem with the ultrasonic sensor returning 255 if it hits the wall in the wrong angel? Is the source code freely available somewhere?

  • @ahmonjazeb All the navigating for this project was done on the NXT itself, but I don't think it would have the memory to handle SLAM, so you'd definitely need a NXT Bluetooth - PC interface and do your calculations there. I can't help you with that, but I did a quick search and found someone who has done something similar to what you want. I'll send you a link.

  • Hi Boffin, it is a great job. I actually have afew question for you.

    1-We know that it is possible to connect it to a pc (or a laptop) via the bluethooth usb. If I want to do slam (Simultaneous Localization and Mapping) with NXT, how is it possible to do the displacement graphs (x, y, Teta) on the laptop online or even offline?

    2- Does it somehow work with MATLAB or C++?

    3- how can I use a computer as a data acquisition system?

    thanks in advance

    Amir

Loading...

Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more