I recently purchased Lego’s new NXT hobbyist robotics kit. After familiarizing myself with the basic layout of the command module, available hardware and sensors, and third-party programing languages by building several single-task robots, I decided to use the NXT as a forum for my studies in SLAM robotics. As I have previously quoted, Dr. John Leonard of MIT says,
The problem of SLAM is stated as follows: starting from an initial position, a mobile robot travels through a sequence of positions and obtains a set of sensor measurements at each position. The goal is for the mobile robot to process the sensor data to produce an estimate of its position while concurrently building a map of the environment.
My goal and new perspective on the problem is to design a system which is as simple as possible. I immediately realize that much of the complication in SLAM systems lays in the timeliness with which the system processes information in real time. I know that some compromise between speed and simplicity had to be established, and in pursuing the most simple system, I am willing to sacrifice a lot in speed. So I have created what I am calling the “slam five robot”. The real acronym is S.S.S.S.S.L.A.M. which stands for “super-simple, super-slow, simultaneous localization and mapping robot”.
The system consists of three components: the physical hardware of the robot, the control algorithm which guides the hardware and sensors, and the post processing algorithm which interprets the sensor data. I begin here by describing the hardware and sensor setup.
Front view of the SLAM-5 bot, showing ultrasonic range finder and wiring for the drive motors.