Robotics/Navigation/Localization
From Wikibooks, the open-content textbooks collection
Localization involves one question: Where is the robot now? Or, robo-centrically, where am I? Keeping in mind that "here" is relative to some landmark; usually the point of origin or the destination. And that you are never lost if you don't care where you are.
Although a simple question, answering it isn't easy, as the answer is different depending on the characteristics of your robot. Localization techniques that work fine on an outdoor robot wouldn't work very good or even at all for an indoor robot.
All localization techniques have to provide 2 pieces of information:
- what is the current position of the robot?
- where is it heading to?
The first could be in the form of Cartesian or Polar coordinates. The latter as compas headings.
Contents |
[edit] Current Position
The current position of a robot can be determined in several very different ways:
[edit] Dead Reckoning
Dead reckoning uses odometry to measure how far the robot moves. Trigonometry and the equations of kinematics are all that is needed to calculate its new position.
This method has 2 flaws:
- It needs a way to determine its initial position.
- its accuracy decreases over time as every measurement has an error, and all the inaccuracies add up.
Dead reckoning is often used with other methods to increase their accuracy.
[edit] GPS Global Positioning System
On large terrains GPS can provide more or less accurate coordinates, dead reckoning and the data from its other sensors can fill in the gaps. However on small terrains or indoors the GPS's inaccuracy becomes a problem and the dead reckoning and sensor data becomes the dominant factor in determining the location.
[edit] GPS-like Systems
Although GPS isn't very useful indoors, similar techniques as those used in GPS can be used indoors. All a robot needs is to measure it's distance to 3 fixed beacons. Each of these distances describe a circle with the beacon in its center. 3 circles will only intersect in one point.
[edit] Line following
Probably the easiest way: Draw a line on the ground and use IR reflection sensors to follow it. Useful as a track or to mark the edges of the robot's work area.
This can also be done by putting an electric cable in the ground and sending a modulated signal through it. The robot can detect this cable with magnetic sensors (Hall-sensors or coils).
The complex versions of line-following involves using sensors like vision (camera) which helps reducing overall cost of sensors and implementation and also provides versatility to detect lines of various colours. It allows a great scope for autonomy in the system too.
[edit] Landmarks
Placing landmarks is another way to help your robot to navigate through its environment. Landmarks can be active beacons (IR or sound) or passive (reflectors). Using bar code scanners is another possibility.
A special trick, if the environment is known beforehand, is to use collision detection (i.e. sensor bumpers or similar) with known objects. Together with dead reckoning the precision can be extraordinary even when using cheap equipment.
In new environments landmarks often need to be determined by the robot itself. Through the use of sensor data collected by laser, sonar or camera, specific landmark types (e.g. walls, doors, corridors) can be recognised and used for localization.
[edit] Current Heading
Determining a robot's heading can be done with a compass sensor. These sensors usually consist of 2 magnetic field sensors placed at a 90° angle.
These sensors measure the earth's magnetic field and can be influenced by other magnetic fields. Speakers, transformers, electric cables and refrigerator magnets can reduce the accuracy of the compass. Compass sensor modules can have built-in filtering for the magnetic fields of AC.