Generic placeholder thumbnail

Abstract

Mapping large environments using mobile ground based robots is becoming increasingly popular with the recent improvements in the efficiency and accuracy of realtime Simulatenous Localizatin and Mapping (SLAM) algorithms. In most situations it is lucrative to have multiple robots simultaneously map different regions of the environment for faster exploration. The most popular algorithm for merging the individual maps is the Bundle Adjustment (BA) or the landmark based GraphSLAM. In this project I use a simplified offline GraphSLAM algorithm for merging the individual 2D maps generated by any number of robots. The robots are assumed to have implemented some form of SLAM so that in a small region the maps generated are accurate. I utilize scan matching with LIDAR sensors and replacing landmark features in the BA algorithm with smaller sub maps of the map created by each robot. The optimization problem is formulated as a least square error minimization by employing a graph structure. The optimization in this paper is performed into two parts: (1) the correction of the heading angle followed by (2) the correction of the X and Y positions of the local maps. The results show that though the problem is quadratic in time in the total number of smaller sub maps, it produces robust results and therefore is a very attractive option.

Methodology

  • Merge all the individual robot maps to create a dead reckoning map. Generic placeholder thumbnail

  • Combine pose positions together to create submaps for each robot. Generic placeholder thumbnail

Problem definition

The dataset used in this project was obtained from the General Robotics, Automation, Sensing and Perception Lab (GRASP) team of the University of Pennylvania from the data collected in their participation in the Magic 2010 challenge. The competition required the participants to design and deploy a team of field robots that could explore and map a large dynamic urban environment while simultaneously localizing, identifying and responding to threats in the environment. The data is obtained from five robots exploring different regions of the environment with a fair amount of overlap in the regions explored. This enables merging of the maps using loop-closures (when the robots comes back to the same position it has or another robot has been before). The robots are equipped with a vertical and a horizontal lidar sensor, an IMU and a GPS tracking system. The robots performed a highly optimized scan matching technique for SLAM, to build a probabilistic grid map. The data provided include the poses of the robots in the global reference frame including their x,y positions and the yaw, pitch and roll angles. Also included is the horizontal and the vertical LIDAR hits in the global reference frame, along with a specification of which LIDAR hit corresponds to an obstacle. This obstacle information is important especially in the case of the vertical LIDAR. This information could be used to find ditches or pits which could otherwise be confused with obstacles. The GPS information provided has a low resolution and could not be used in the SLAM algorithm with any suitable benefits. For the purposes of this project we are only interested in the x,y positions and the LIDAR data, other informations are irrelevant.

  • Try to find if the same part of the map (or close to the same region)is revisited by comparing the submaps. Find the peak hough angles for each submap and rotate each pair of submap through the peak hough angles and find the scan matching. If the maximum is above a threshold accept as a loop closure and use the shift from the center in scan matching as a virtual measurement which should correct the initial pose estimates assumed as odometry.
    Generic placeholder thumbnail Generic placeholder thumbnail

  • Find all the matches in the submaps and plot the graph connections to build the information matrix and the information vector for the angle alone.
    Generic placeholder thumbnail

  • Now solve the least squares to get all the submaps to the right rotated angles. We can fix the x,y later. This avoids bringing the difficulty of building a covariance matrix which is dependant on x,y and the rotation angle, and making only a variance for the angle.
    Generic placeholder thumbnail

  • Now with the corrected graph and submaps build the information matrix and the information vector for the x,y positions with the covariance matrix. And solve the least square problem to solve the map merging problem and the final log probability map. Do some post processing to make the map look better.
    Generic placeholder thumbnail