tinySLAM : a SLAM Algorithm in less than 200 lines C-Language Program

Topics: Robotics, Algorithm, Simultaneous localization and mapping Pages: 18 (4284 words) Published: February 27, 2014
2010 11th Int. Conf. Control, Automation, Robotics and Vision Singapore, 7-10th December 2010

tinySLAM : a SLAM Algorithm in less than 200
lines C-Language Program
Robotics Center. Mines ParisTech
Abstract—This paper presents a Laser-SLAM algorithm which
can be programmed in less than 200 lines C-language program. The first idea aimed to develop and implement a simple SLAM algorithm providing good performances without exceeding 200
lines in a C-language program.
We use a robotic platform called MinesRover, a six wheels
robot with several sensors. We based our work and calculations on a laser sensor and the odometry of the robot. The article presents the different capabilities of the platform and the way we use them in order to improve our programs. We also illustrates the difficulties encountered during the programming and testing of the algorithm.

This work shows the possibility to perform complex tasks using simple and easily programmable algorithms.
Index Terms—SLAM, localization, mapping, particle filter

Several researches attempt to solve the problem of simultaneous localization and mapping, commonly called SLAM. The algorithms developed can be classified according to the types of sensors used or the calculation methods adopted.

There are SLAM algorithms based on the vision by one camera ([3]) or several cameras ([7]), using several technics such as SIFT([8]) or SURF([1]) keypoints, and other algorithms that use a laser sensor or sonar ([6]) .

On calculation methods, two large families exist. On the one hand, algorithms based on the use of Kalman filtering ([6]), and on the other hand, we find algorithms using particle filters ([4]). Other methods exist (for example [2]), but we didn’t include them in this study.

Some research has focused on comparison of these algorithms in performance and speed of calculation ([5]). This article focuses on a new algorithm that we based on
the use of particle filtering. We used a laser sensor to perform tasks of development and experimentation.
We will first present the reasons which led us to create
the tinySLAM algorithm, then we will introduce the robotic
platform used for tests and experiences.
The section IV of this article will be devoted to the description of the algorithm and explanation of the ideas it contains. This section will be followed by a presentation and discussion about the results obtained during experimentations.

November 18, 2002
Among SLAM algorithms based on the use of particle filters, the DP-SLAM is one of the best known([4]). DP-SLAM works

978-1-4244-7815-6/10/$26.00 ©2010 IEEE

Figure 1. The Mines Rover platform. We can see on the picture the dome for the camera, the steering servomotors, the HOKUYO URG-04 laser range scanner, the GPS receiver (grey square) and the emergency ultrasonic sensor in the front of the robot.

by maintaining a joint distribution over robot poses and maps via a particle filter. It uses a system of sub-maps.
Indeed, the algorithm creates a sub-map for each particle,
and then worked on the association of sub-maps to obtain a
complete map of the environment. This method consumes a lot
of memory to perform the computational tasks and the creation of the map. Moreover, it requires the use of a powerful laser sensor, which is quite expensive.
Most algorithms are tested on slow robots, compared to ours
(their speed does not exceed 1 m/s). The speed of our robot
(which reaches 3 m/s) creates major problems for the tasks of localization and mapping.
All SLAM algorithms developed so far use methods and
calculations requiring many lines of code, and so much effort to understand their operation and can be tested. We began our work with an important goal: making a simple algorithm, easy to understand and offers great performance.

Continue Reading

Please join StudyMode to read the full document

You May Also Find These Documents Helpful

  • C++ Programs Essay
  • Essay on C Program
  • C Program Essay
  • Interview Question on C Language Essay
  • C Language: Question Bank Research Paper
  • • Programming Languages • History of C • Problem Solving – Flowcharts – Algorithms – Programs Essay
  • Lab Assignment: C Language Program Essay
  • C++ Algorithm Essay

Become a StudyMode Member

Sign Up - It's Free