Robot maps obstacles and returns them to processing...?

edited October 2014 in Arduino

Dear all,

I just built a robot with arduino and arduino motorshield and obstacle detection.

It's similar to

http://blog.miguelgrinberg.com/post/building-an-arduino-robot-part-v-avoiding-obstacles

I am now planning to do a mapping of the obstacles he finds.

There a few problems:

  • 1st : he doesn't have gps or so, so there is no absolute reference frame for the robot in my flat. The reference is that he would take his own starting point as a reference (0,0) and then measure how far he goes and the angles he's turning. There could be some maths be involved here.

  • 2nd: Let's say he found 10 obstacles in a row in 10 cm distance. He could then say "wall" and store one obstacle with width 100 (and delete to last 10 points from the array / point cloud). Everything over 50 cm dist could be a door. There could be some maths be involved here as well. To explore the room or flat he would go towards doors and check if they really are doors. He would also go into unexplored areas of the room / flat in general.

  • 3rd: Let's say he stores the obstacles in an array. My question is, when I re-connect the robot to the PC (usb / serial), can the robot detect this event "usb is now plugged in" and switch his state to "All motors stop, send obstacle array". What would be the code to detect this event (on the arduino side; if (pluggedIntoPC()) { )?

Has anyone tackled the 3 problems and came up with some nice findings?

Later I could instead of usb use an additional bluetooth or wlan shield to send the floor plan to the PC for displaying it using processing throughout.

Also he could have different patterns of movement like

  • one long line

  • spiral

  • radial pattern, a radial pattern is one that appears to radiate from a point, like the spokes from the hub of a wheel.

  • go along a wall parallel to the wall

Thank you!

Best wishes, Chrisir ;-)

Sign In or Register to comment.