circuitcellar.com
Magazine Support   Digital Library   Products & Services   Suppliers Directory 
 
 





 

March 2006, Issue 188

Robot Localization and Control


by Ethan Leland, Kipp Bradford, & Odest Chadwicke Jenkins



LOCALIZATION

The localization process is fairly straightforward. The Robosapien node (R) frequently sends out packets containing accelerometer data. Both the computer node (C) and the third node (T) receive the packets. (The accelerometer data isn’t used in this implementation, but we’ll explain it later when we describe some possible improvements to the system.)

After a packet is successfully received, a signal strength reading is taken by calling the PLME_link_quality method, which is found in the simple_phy class of the Freescale support code. After the third node has accomplished this, it constructs a packet containing the resulting signal strength measurement and sends it to the computer node. At that point, C, which has both the signal strength reading from R/T and R/C, composes a packet with these measurements to be sent via the serial port to the computer.

When the computer receives both signal strength measurements, it can begin hypothesizing about the robot’s location. However, this can’t be done with a straightforward geometric calculation because of the uncertainty associated with noisy data and the signal strength’s nonlinearity.

This noise is such that if simple distance calculations were applied at each time step, the computer might find that the robot’s location would vary on the order of meters when it is standing still. To deal with this large degree of uncertainty in our data, we used a probabilistic Monte Carlo localization technique to implement a particle filter to localize the robot. Let’s take a look at how the particle filter reduces the uncertainty of the robot’s location.