Society of Robots - Robot Forum

Software => Software => Topic started by: LeftHandRobotics on July 21, 2010, 06:03:42 PM

Title: Self Navigating Algorithm
Post by: LeftHandRobotics on July 21, 2010, 06:03:42 PM
Hey guys,

I figured what I'm working on is a relatively common feat in robotics, and surely has been successfully attempted a number of times.  I basically just want to create a program that can use the distances that a robot is from 3 or 4 beacons as inputs for an algorithm that will produce an output of coordinates.  Of course when it knows it's coordinates it needs to be able to head toward NEW coordinates. 

This has been a daunting task as I first learned that GPS isn't that accurate (Gov. Homeland Security won't let it be accurate), and also GPS wouldn't likely work under a roof (indoors).  I then was inspired (by Robot Bonanza) to gear toward a Beacon system.  Basically it's a homemade GPS that uses beacons located around the home to help a robot navigate.  The bot measures it's distance from these beacons and gets its location.

I guess first:  An algorithm that uses distances to create coordinates
Second:  Thoughts or ideas to navigate from one coordinate to another
Third:  Thoughts or ideas on how to set up the beacons

I have seen a robot, I think its called Wowee or something like that.  It has a charging dock with 2 infrared lights shot at the ceiling, which bounces off and hits bot.  To purchase just the beacon and software it is 1,700 dollars, so that is NOT an option.

Thanks guys,

Lefty
Title: Re: Self Navigating Algorithm
Post by: macdad- on July 22, 2010, 03:54:37 PM
A number of factors would attribute to a nice algorithm:

I would recommend a 360 degree Directional IR Beacon and place it in a center location. You could then put on the Robot a 360 ring of IR receivers to get it's bering from the Directional IR Beacon then use a IR Distance Sensor mounted in the direction of the Beacon(Or have a rotating Distance sensor to rotate to that specific bering) operating on a different frequency to measure the distance between itself and the robot.

In the Robot's program set the Beacon as 0,0 for the point of origin(Just like in Geometry) and set each IR emitter on the robot's 360 ring of IR receivers to a specific degree. This is when trigonometry kicks in.

Think of the distance between the beacon and robot is the hypotenuse of a triangle. Take the distance measurement from the IR distance sensor and the bering from the 360 IR ring and put it into a Sine formula:

Sin <Bering from 360 IR Ring> = Y / <IR Distance Measurement>
Y is your robot's Y Coordinate value

Then take the Y coordinate and put it into this Tangent formula:

Tan 90 = Y / X
X is your robot's X coordinate value

You then have your Robot's X,Y coordinates, using only one Beacon.

However your robot must have a processor/MCU able to process the Trig functions or store a table of values for the Trig functions.

Find more info on Trig functions and triangles (I removed the URL as Avast had blocked a trojan horse from that site)

Hope this helps,
Nick(macdad-)
Title: Re: Self Navigating Algorithm
Post by: billhowl on July 28, 2010, 10:07:37 PM
I came across this system may help
The Cricket Indoor Location System (http://cricket.csail.mit.edu/)

Quote
In a nutshell, Cricket uses a combination of RF and ultrasound technologies to provide location information to attached host devices. Wall- and ceiling-mounted beacons placed through a building publish information on an RF channel. With each RF advertisement, the beacon transmits a concurrent ultrasonic pulse. Listeners attached to devices and mobiles listen for RF signals, and upon receipt of the first few bits, listen for the corresponding ultrasonic pulse. When this pulse arrives, the listener obtains a distance estimate for the corresponding beacon by taking advantage of the difference in propagation speeds between RF (speed of light) and ultrasound (speed of sound). The listener runs algorithms that correlate RF and ultrasound samples (the latter are simple pulses with no data encoded on them) and to pick the best correlation. Even in the presence of several competing beacon transmissions, Cricket achieves good precision and accuracy quickly.