Putting it all together...
Billy from United States  [26 posts]
13 years
Okay, so, I've selected Roborealm to use on my robot.  I want to write the controller program in either vb or python.  My Robot has the following sensors, a magnetic compass, a few ultrasonic sensors, bump sensors, IR beacons, and of course the Camera.  I want to be able to load up a map in the robot, give it a specific location to go to.. and it be able to get there using the magnetic compass,  sonar, bump sensors, and camera to look for obstacles and navigate from one point to another.  I planned on using the IR beacons to tell the robot what room it was in...  is there a way to use "landmarks" with the camera calculate it's specific location on the map?  I guess what I'm asking is, now that I have all these sensors.. how do I tie it all together with Roborealm and another language like python or vb.  I even want to add speech recognition and maybe something like ultra hal for a added personality.. Here is a list of the goals I'm trying to achieve with this robot.

Follow Me
    Heat / Movement / Color ?

    Move around from Room to Room avoiding Walls and objects.
Navigate to / Goto
    Move to specific navigation point locations based on landmark navigation, mapping, beacons and compass readings.

Track Color
    Track a specific color moving camera up and down, and moving entire chassis left/right and forward backwards. (already achieved this while stationary, I.E Robot does not drive toward the object)

Stand guard
    Look for changes in image, report if one occurs

Report Location
   Robot Says what location it believes it is in.

Voice / Person Recognition
    Be able to recognize a person based on face and/or voice.

Object Recognition
    Be able to recognize objects that have been trained into the database and report what the object is.

Movement Commands
    Move Forward/Backward, x feet
    Turn Left/Right x degrees
    Go Home

Turn On / Off lights (X10)
    Turn On/Off lights based on voice commands

Specialized Pre-programmed tasks (with Arm)
    Have specific tasks involving the above basic functions.

Now, the magnitude of these goals is not lost on me.. I realize this is a large amount of tasks, and with current software, some of these simply may not be obtainable at this time.  Any help you all can offer would be appreciated.

Thanks, Billy
from United States  [214 posts] 13 years
Hi Billy,

Sounds like a great project!  As it turns out, I am working on robot navigation as well.  I am not planning on using any active sensors like IR beacons but I can comment a little on using visual landmarks.

I initially thought I would use a single forward looking camera to detect and remember landmarks.  However, it quickly became apparent how hard this is.  Landmarks have to be visual features that your camera and vision software can reliably detect from many different angles, occluding objects and possible lighting changes.  And since a typical camera only sees a small part of the visual scene at any one time, you also have to deal with scanning for a landmark when one isn't visible.

So now I am working on an omnidirectional vision setup using a half-spherical mirror and a webcam.  RoboRealm is great at unwrapping this image into a 360-degree panoramic image of the robot's current location.  Rotations of the robot become left-right shifts of this image which are easy to measure.  Matching the current image to a stored image is also an easy matter of doing a cross-correlation or vector difference between the two images.  Objects and people coming into and out of a scene only have minor effects on matching since they represent only a small proportion of the entire image.

For navigation, I'm using a simple graph structure to connect the rooms at a topological level; i.e. the hallway connects to the kitchen which connects to the dining room etc.  Then, for each room, I allow the robot to create a subgraph connecting one omnidirectional snapshot to the next.  You can even store the wheel encoder information as the robot initially takes the pictures.  Once exploration is done, the robot then has all the information it needs to know where it is and how to get somewhere else.  Of course, the details are a little tedious but I think it should work fairly well.

There is quite a bit of information on the web regarding omnidirectional vision and robot navigation.  Try a Google search if you are interested!


Anonymous 13 years

That's quite a list! But each is possible to some degree. The best way to get started is to pick one and focus on that for a period of time. Depending on your level of experience with software development you'd probably want to start off with some of the easier items.

You probably also want to have a look at the http://www.leafproject.org/ project as their goal is similar to yours with vision being a component. (they also use RR).

Which task would you want to work on first? Do you have the physical robot built or is it still in planning stages?

Billy from United States  [26 posts] 13 years
Navigation is what I want to get working first.  The bot is mostly built.. I'm waiting on the sonar and compass to arive so I can install them.. (Christmas presents).. You can look at the bot here.


Phase II was to be power and charging.. however, I can't get my battery pack till sometime in January, so, I'm going to use some other battery packs and charge them manually till then, so, Phase II is now the sensors.

Phase III will be the battery and chargering..

Phase IV  will be the arm.  Once I get it moving around from point-to-point and doing some of the other stuff.. then I'll proceed with construction of the arm.

So, at this point, I want to get started on the basic control and navigation system.. Since this robot is based on the iRobot Create, I figured I would start with python and the pycreate package to interface with it.  Also, someone has made some IR beacons which I think would be very usefull..


Combined with the vision, sonar, and the compass, I would think I could get the robot to navigate around my house without much issue..

Thanks, Billy

This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index