IR navigation beacons
April 27, 2012
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.