Operating Systems and Networks Lab (OSNET)
Mint-2 Project



Mint-2 Localization


The iRobot Create has two built-in sensors to track the robot's movement. These sensors can be queried via the serial interface, and return both distance traveled by the robot since the last query (in mm) and angle the robot has rotated through since the last query (in degrees). However, the accumulated sensor measurements may grow inaccurate due to rounding errors, wheel slippage, and encoder inaccuracy, over time. In addition, a node may be manually picked up and moved to a new location. Thus, we used an RFID based system to periodically re-calibrate the node's position and orientation in the testbed space.

An array of fixed RFID tags deployed on the floor of the testbed allows each robot to determine its absolute location with an uncertainty equal to the maximum tag-sensing radius of the RFID reader (2.25cm). When a robot crosses an RFID tag, the tag value is used to determine the node's absolute (x, y) position within the testbed.

The heart of the localization algorithm is a section of code running periodically every 50ms that is in charge of acquisition and processing of data from movement sensors and the RFID reader. The following presents a more structured view of the localization algorithm.

Every time the localization tick runs, it reads the delta change in distance and orientation since the last sensor access, adds the changes to the last known position and orientation respectively, and clears the sensors. In addition, more precise position and orientation calibration is performed when passing over RFID tags to remove accumulated error from the Create’s sensors feedback. Once at least two tags have been read, the node can determine its orientation from the coordinates of each tag (say (x1, y1) and (x2, y2)) as:

If the node travels in a straight line, then is 0. However, if it traveled in a constant-radius arc, its deviation from the straight line path between the two tags is equal in magnitude at both the tags. Thus the effective change in angle, /2 is added to the net angle. The following image elaborates more the robot's orientation calculation for the constant-radius arc movement.

In order to account for the situations, where researchers or testbed operators manually drop the robot anywhere in the testbed area, the robots are programmed to initialize themselves with correct coordinates and orientation informa- tion. The position initialization process is only considered successful if the node reads two RFID tags over a straight line movement.