BotLoc is a programmable robot armed with a wireless sniffer designed for both indoor and outdoor localization. BotLoc consists of two main components:
The robot subsystem drives the robot along a specified route by accepting velocity and heading commands from a software controller on a laptop, which steers the robot. The robot has an odometry coordinate system and returns its odometric pose to the controller program. The pose is represented as (x, y, θ), where x and y are the two-dimensional coordinates, and θ is the orientation of the robot with respect to its starting pose.
The positioning subsystem utilizes an antenna to sniff wireless packets, derives the RSS, and saves them on the laptop. The localization analyzer correlates the collected RSS to the robot's location over time. Therefore, when the surveillance is finished, the localization analyzer inspects the signal strength time series coupled with position information in order to compute the target's location. Once the computation is finished, the positioning subsystem sends the result to the robot subsystem via the software controller, which drives the robot to the derived position. During the surveillance running, the positioning system may also command the robot to adjust its speed and heading and cater to the target's transmission pattern.
The robot we choose is Pioneer P3-DX, a remotely operated and programmable robot. P3-DX can be controlled by either a joystick or a program. The robot is assembled with a laser rangefinder (LMS200), a sonar array, and installed with a laser mapping and navigation system, which enables the robot to map the environment such as a building floor. The robot controller runs on a Lenovo W500 laptop, and it uses an object-oriented, robot control applications-programming interface (ARIA) from the manufacturer to control the robot. A robot operator can launch a client program such as MobileEyes to set up a TCP connection to the robot.
The positioning subsystem uses a Ubiquiti 802.11a/b/g PCMCIA Cardbus with a clip on the antenna and runs tcpdump on the laptop for wireless sniffing. If we need to generate a map with AP positions marked, Kismet is started to collect wireless traffic of the whole spectrum via channel hopping.