Let's Make Robots!

What components for a navigation solution?

Hi All

It must be that my previous question http://letsmakerobots.com/node/28808 was wrongly phrased as I am sure there are plenty of knowledgable people here. Anyway, I will try re-phrase my question.

Could anyone be so kind as to tell me what components would make for a complete navigation module. ie. a module that knows where it is.

I am asking in terms of a small household or garden robot so GPS is probably not relevant.

I am thinking a compass/magnometer which will assist in maintaining a heading or in accurate turning of the bot.

I have found a link http://www.starlino.com/imu_guide.html which indicates the combination of an accelerometer and gyroscope would be good for determining the orientation and inclination of the bot, but I guess there must be more one could do with this? Would this combination be enough to calculate the bot's position and orientation relative to it's starting point?

What other components would be usefull?

What components would be redundant when others are included?

Any advice would be much appreciated. I am a noob after all so even basic information or links to tutorials would be appreciated.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hello AgeingHippy,

I assume that the reason why nobody has taken a shot at this, can be one of two:

1) There is not enough information in your post. Another way to say the same is: There is no question that the gurus that inhabit this place can answer to. What is your microcontroller of choice? What motors? What H-bridges? What power supplys, etc...

2) If you are indeed a noob, maybe "your eyes are bigger than your mouth". I am unaware of your electronics/robotics level, but, have you already considered or tackled building a bot that runs blind around your house? If not, that should be something to consider. Before you attempt to "navigate" your house, take a shot at having a moving platform. Deal with the complications of giving life to a still platform first, if you have not done that so far.

I hope my views shed some light on your no-replies concern.

Best of luck to you,


compass and weal encoders good start

  • compass will tell what direction your pointing
  • encoders will tell how far your weals have traveled
  • some kind of "you are hear info" a beacon that tell the bot what room it's in
  • distance measure to find out were in that room it is
  • door way indication (way out/ in )
  • then your bot will need to know were it is in relation to it's destination, ?
  • map to destination ,some way points
  • then getting to the destination, avoiding hazards were am i now ?
  • then complete some task you need done

there is alot to consider im not shour if i got them all . just ask your self what info do i need to get some were ,right that down and find some way of getting it to your bot

yes first things first get it moving :) good luck 


you will need to tell your bot every thing 

imagine your self in a large box with no holes cut in it, now go from your room to the fridge think about the info you need to get to the fridge ,you can't see, you don't know were you are,were is the fridge what's a fridge ,oh my god im in a box :).

things i think you would need just the basics

  • motor driver (stepper motors might be best you can count the steps you make ) or some kind of H bridge
  • weal encoders  (for counting steps when not using steppers )
  • object avoidance ,PING or a clone (ultrasonic distance measure) Sharp Inferred distance measure,inferred proximity ,cover as much of the bot as you can
  • compass ,
  • and beyond this point i get lost, this is the just the start i know nothing about mapping or navigating 

a step by step process will get you there ,object avoidance is hard enough good luck


http://letsmakerobots.com/node/2558      this might help

You could employ a computer that the robot could talk to. Meaning, you could have the robot gather some of the data and send it back to a computer that could crunch numbers to tell the robot where it is and how to get to where it wants to go. I can't offer any expertise at said option, but, it is an option.

I have been pondering the same question. I was planning to add a compass module to the robot I am working on so that I can get it to hold a straighter course and to get more precise turns. It got me wondering whether I could use the compass to help the robot determine where it is. The two options I can think of are: 1. Ir beacon + wheel encoder + compass + a map of the room. This looks to be the most complete solution but I am not planning to try it right away because it is a couple of levels above my current hardware knowedge. 2. Compass + map. This idea would be simpler for me as it would be software driven. Basically, I will select a compass direction and find a unique measurement in each room that corresponds to that point (eg. the length of all north walls). The robot will then travel north until it is satified that it has hit a wall and then measure it with its Ping. I will consider it a success at this point if the robot can tell what room it is in without knowing the particulars of that room. Anyway, this seems like a good idea at this time of night. I will be interested to see how you get on.

Hi peeps.

Thanks for all the responses. :)

@robr - It is an interesting journey isn't it :) I guess the only way we can do this is in small nibbles rather than a big jump. I think I will take a little time this weekend to document my bot and put what I have up here on LMR. My navigation code is a little messy, but it seems to work... when the IR is not returning dirty signals which tennds to be often in sunlight and also failures when the obstacles are low.

@birdmun - Currently I have to have a hard link (wire) from my bot to my PC which is a bit of a bugger given I then need to carry my laptop around following the bot. There is a recent innovation, http://www.raspberrypi.org/ , which I am looking foreward to. It is a PC on a board which will cost between $25 and $35 depending on the version you get. I am looking foreward to this as I think it will give affordable processing power for enhanced mapping and potentially vision processing... Apparantly the commercial product should be available in November.

@oddbot - I do think I would prefer to avoid encoders at this point as my bot is a tracked vehicle, and I do notice a lot of slippage, particularly when turning so I don't think they will work for me. Thats where I am hoping the compass will work. I have thought about various ir becons at specific points in the house, but I think that will be a later solution when the bot is expected to navigate in an environment where it has a priory info. First steps are to have a self contained solution without external assistance.

@Andres - I do in fact have a bot (tracked) which wanders around the house trying not to bump into things. It has a Sharp IR distance sensor (10cm - 80 cm range) mounted on a servo as it's eyes. It has no 'memory' as such so just operates on the current inputs. It was interesting developing the code for this and I made a few schoolboy errors in my code, but now it seems to be fairly competant unless the obstacle is lower then the wheels... in which case my IR does not detect it. I am waiting till I have further navigation components (gyro, compass, accelerometer etc)  before further tightening up my code as I think attempting to improve my navigation code right now will be a bit of a waste of time. I am trying to determine which components I should get so I can include it all in one order, reducing the shipping costs... I am trying to determine which components would give me an adequate and fairly accurate navigational self contained solution. ie: how an accelerometer or compass (fairly obvious) or gyro etc will benefit the process of knowing where the bot is in relation to the start position.

@ChuckCrunch - Thanks for the link to Crumb. I certainly think that is a pretty cool bot and does point to a potential navigation and mapping solution. You are right in advising me to think about what I would need to get from A to B. That is valuable and good advice. Still, I want to know how various components work together to provide a solution for what I guess is dead-reconing. Preferably accurate dead-reconing.