"SLAM" (a) Google cartographer initial attempt _ Google

Source: Internet
Author: User

Recently set a graduation design topic, probably to do slam direction, just Google recently open source of his indoor slam library cartographer, I took to use the laboratory robot tried, the overall effect is very good.

Cartographer's Github:https://github.com/googlecartographer

The official document of Google's paper:http://download.csdn.net/detail/jsgaobiao/9678941 cartographer: https:// google-cartographer-ros.readthedocs.io/en/latest/

Cartographer is Google's open source Slam library, and contains the Ros interface, the main sensors are laser radar (Lidar) and inertial Navigation (IMU) for 2d and 3D indoor slam.
Its design goal is to achieve low computational resource consumption, real-time optimization, not the pursuit of high-precision (can achieve r=5cm level of precision)
Paper said, its main contribution is not in the algorithmic level, but provides engineering efficient, robust code implementation (so more to run it code to try ~). A key point of it is to introduce the branch and bound (branch-bound algorithm) into the loop closure process and improve the efficiency compared with the previous submap.

The basic idea of the algorithm can be seen in this diagram:

Scan is a laser-scanned single frame data, which is constructed by adding scan to the local map (SUBMAP). The implementation of cartographer does not adopt the filtering method, but uses the similar graph optimization model to carry on the pose estimation, the concrete realization is uses the Ceres scan matching (Ceres is the Google own library).
Many of the submap that are constructed in this way will generate cumulative errors and, finally, loop closing to eliminate these errors and complete the closed loop.

Cartographer's official documentation provides many demos, and the basic ROS framework is shown in the following illustration:

Among them, Cartographer_node is its main module, it subscribes to a lot of topic (ROS operating system concept, if not familiar with Ros can refer to its tutorial:http://wiki.ros.org/ros/tutorials), /scan is the LIDAR data,/imu is the IMU data, my main job is to refer to Google's demo to implement the laser Publisher and Imu Publisher, and do some testing.

Our robot uses the Hokuyo lidar, which provides a ready-made Ros node, called Urg_node, that you can use to query on the Ros wiki.
Imu's publisher uses the Python implementation, which publish the data type is Sensor_msgs/imu. At the moment I'm only exporting orientation, and this publisher is not perfect, but it's basically available. Publisher's implementation and so on and then put it up.

I tested the algorithm indoors and outdoors separately:
Indoor test video can be seen here: Baidu Network disk

In the outdoor testing time is very card, do not know because our robot on the CPU is not enough or the memory footprint is too large, this I will continue to study (because running the Google data offline very fluent), in addition to the next to add slam theoretical knowledge, and continue to understand the other slam algorithms.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.