Google has released open-sourced Cartographer, a real-time simultaneous localization and mapping (SLAM) library in 2D and 3D with ROS (Robot Operating System) support. This technology which works with the open source ROS can be used by developers for many things, such as robots, drones and self-driving cars.
SLAM algorithms combine data from various sensors (e.g. LIDAR, IMU and cameras) to simultaneously compute the position of the sensor and a map of the sensor’s surroundings. For example, consider this approach to drawing a floor plan of your living room:
- Grab a laser rangefinder, stand in the middle of the room, and draw an X on a piece of paper.
- Measure the distance from where you’re standing to any wall.
- Draw a line on the paper where the wall is and write down the distance between the X (your position) and the wall.
- Measure the distance from where you’re standing to another wall and add it to the drawing as well.
- Now, move to another part of the room.
- Since the walls (hopefully) haven’t moved, you can measure your distance to the same two walls to determine your new position.
SLAM is an essential component of autonomous platforms such as self driving cars, automated forklifts in warehouses, robotic vacuum cleaners, and UAVs.
Cartographer builds globally consistent maps in real-time across a broad range of sensor configurations common in academia and industry. The following video is a demonstration of Cartographer’s real-time loop closure:
At Google, Cartographer has enabled a range of applications from mapping museums and transit hubs to enabling new visualizations of famous buildings.
A detailed description of Cartographer’s 2D algorithms can be found in our ICRA 2016 paper.
Source: Google Blog