This project implements a software application to control a small, semi-autonomous robot.
The SLAM package uses a Hokuyo UTM30-LX 2D laser scanner as input sensor. Its current data is matched against a reconstructed frame from the last known pose using an implementation of the Iterative Closest Point (ICP) algorithm. The new pose is generated by applying the scan matching result to the last known pose.
The laser data is used to update a distance function based representation. This implementation is derived from the well known KinectFusion al-
gorithm. In order to benefit from the multi-core architecture of the UDOO, major parts of the algorithm use multi-threading. The localization, map-
ping and map generation are implemented in separated threads, localization and representation update are parallelized as well. These measures allow a
pose update at a rate of 4.7 Hz on the UDOO quad core.
Using a A* algorithm for the path planning, the robot creates a collision free route into a known static environment and follows it until he finds a
dynamic obstacle. Then the robot waits until the object is removed or it generates a new route that avoids the obstacle. In order to avoid collision
with the obstacles, the robot inflates the obstacles. This inflation depends on the robots sizes.
As a moving base, a Yujin Robotics Kobuki is used. The controller and sensor are mounted on the unit and connected to its power supply and data interfaces. The necessary software to communicate with its motors and sensors is open source and available on ROS.
Philipp Koch and Jon Martin
Comments