Let's Make Robots!

IR navigation beacons

There have been several previous blogs and forums on LMR concerning different methods of robot navigation and room recognition. I have decided to make some IR beacons for experimenting with.

My theory is that if each room has at least 3 beacons spaced around it then the robot can not only triangulate it's position within the room but also determine what angle it is facing. Each beacon sends out a different identification code. This allows the robot to know which room it is in.

The advantage of the IR beacons is they can be cheaper and more accurate than a GPS and compass module.
The disadvantage is that you need to place these beacons through out the house and they all need power.

Because you need at least 3 beacons per room I wanted to make them as cheap as possible. I also wanted to make them so that their code could be changed easily. I could have just bought some picaxe 08M's or some other cheap MCU but to me that is a waste of a good MCU. Instead I have made some beacons using a 74HC4017 decade counter, a 74HC02 quad NOR gate and a few other bits and pieces.

These beacons transmit 7 data bits using the Sony IR protocol. They dont transmit the 5 bit device ID but that is not neccessary. The library I wrote for the Micro Magician only looks at the 7 data bits and I think the picaxe software is similar so these becons should work fine with picaxe as well as arduino.

7 data bits give me 128 individual beacon IDs. if each room has 3 beacons then effectively each room is identified by a 21bit address so there is no practical limit to the number of rooms you can identify.

For my first test I want to use a very simple robot with no encoders. to determine it's position it will simply turn to face a beacon then spin 360 degrees until it is facing that beacon again. By noting the time to make 1 rotation and the time at which each beacon was detected it is posible to measure the angle of all beacons relative to the robot. from these angles the robots position can be triangulated. By following the walls and doing a position check regularly the robot can build up a map of the room.

 


 

Out of date Update:

I actually had this PCB made months ago and have used one in a customer project for a homing beacon (see the video). The board here is shown without the IR LEDs installed.

The advantage of this design is the code it sends can be changed without programming. Simply use the dip switch to set the code from 0-127 (7bit binary). Switch 8 is an on/off switch.

 

 

Comment viewing options

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

I didn't find any more updates regarding this experiment.  How did it work out in the end?

To be honest I still haven't got around to a full scale test using triangulation.

I did use a single beacon for this project: http://letsmakerobots.com/node/32504

After the robot picks up the piece of pipe it follows the IR beacon to the corner of the arena. 
I suspect the biggest problem with triangulation is the IR signal can bounce off of some surfaces so it may be necessary to add a pot in series with the LEDs to adjust brightness.

You wouldn't happen to have a design for a PCB for that circuit? I would like to give this a try. If you can have the PCB's made in China I'm willing to buy a dozen (if the price is right). I think other people might also be interested...

I have had some PCBs made for testing.

If I can get this idea to work well in practice then I will write an Arduino library and it will become a new DAGU product.

I was thinking about something similar, but outdoors...

Do you have an idea, how far could one sense these beacons indoors and out?

These won't work outside. The IR from sunlight completely blinds them. You would need an ultrasonic equivalent.

and the noise won't deafen the ultrasonic stuff?

Their physical design makes them only sensitive to 40KHz frequencies.

It seems that you are using quite some components there, have you tried to sum it up? I would expect you to spend more on your semi discrete circuit than a cheap uC costs. (these days the ATmega8 goes for $1.5 on ebay)

Yes if I was in Australia then it would not be practical. The SMD resistors and capacitors only cost me $0.00014 USD. The logic chips combined cost $0.95 and transistors are about $0.036.

The most expensive components are the IR LEDs and SMD DIP switch which I would still need if I was using an MCU. I could possibly make it cheaper using a pic processor but I am not cuurently set up to program them and can't be bothered for some IR beacons.

The fact is I enjoyed using old school logic. I haven't done a project like this since I was a teenager.