Cartographer ROS Documentation
The Cartographer Authors
Dec 17, 2018
Contents
1 Compiling Cartographer ROS 3
1.1 System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Building & Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Running Cartographer ROS on a demo bag 5
2.1 Deutsches Museum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Pure localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Static landmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Revo LDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 PR2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6 Taurob Tracker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Running Cartographer ROS on your own bag 9
3.1 Validate your bag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Create a .lua configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 Create .launch files for your SLAM scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.4 Try your configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4 Algorithm walkthrough for tuning 13
4.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2 Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3 Local SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.4 Global SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5 Tuning methodology 21
5.1 Built-in tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2 Example: tuning local SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.3 Special Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.4 Still have a problem ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6 Exploiting the map generated by Cartographer ROS 25
6.1 Sample Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3 First-person visualization of point clouds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7 Going further 29
7.1 More input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
i
7.2 Localization only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.3 IMU Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.4 Multi-trajectories SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.5 Cloud integration with gRPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8 Getting involved 31
9 Lua configuration reference documentation 33
10 ROS API reference documentation 35
10.1 Cartographer Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
10.2 Offline Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
10.3 Occupancy grid Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
10.4 Pbstream Map Publisher Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
11 Public Data 39
11.1 2D Cartographer Backpack – Deutsches Museum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
11.2 3D Cartographer Backpack – Deutsches Museum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
11.3 MiR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
11.4 PR2 – Willow Garage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
11.5 Magazino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
12 Frequently asked questions 47
12.1 Why is laser data rate in the 3D bags higher than the maximum reported 20 Hz rotation speed of the
VLP-16? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
12.2 Why is IMU data required for 3D SLAM but not for 2D? . . . . . . . . . . . . . . . . . . . . . . . . 47
12.3 How do I build cartographer_ros without rviz support? . . . . . . . . . . . . . . . . . . . . . . . . . 48
12.4 How do I fix the “You called InitGoogleLogging() twice!” error? . . . . . . . . . . . . . . . . . . . 48
ii