This tutorial shows you how to use move_base with Google Cartographer to perform autonomous planning and movement with simultaneous localization and mapping (SLAM), on a simulated Jackal, or a factory-standard Jackal with a laser scanner publishing on the /front/scan topic.
To adapt this demo to your own Jackal, you may need to clone the jackal_cartographer_navigation repository, and modify the relevant parameters. To learn about move_base and the navigation stack, see the Navigation Tutorials. To learn more about Google Cartographer for ROS, see the Cartographer ROS documentation.
-
To get started with 2-D SLAM using Google Cartographer, clone this repository into your working directory (e.g. catkin_ws):
git clone http://github.com/jackal/jackal_cartographer_navigation.git
-
Install the dependencies in your workspace (e.g. catkin_ws):
rosdep install --from-paths src --ignore-src --rosdistro=$ROS_DISTRO -y
-
Build the workspace and open two new terminal/tabs, source the workspace for each terminal/tab:
source devel/setup.bash
-
Launch the Gazebo simulation with the front_laser config:
roslaunch jackal_gazebo jackal_world.launch config:=front_laser
-
Launch the Cartographer node to begin SLAM:
roslaunch jackal_cartographer_navigation cartographer_demo.launch
-
Launch Rviz:
roslaunch jackal_viz view_robot.launch
-
-
In the Rviz visualizer, make sure the visualizers in the Navigation group are enabled.
-
Use the 2D Nav Goal tool in the top toolbar to select a movement goal in the visualizer. Make sure to select an unoccupied (dark grey) or unexplored (light grey) location.
-
As the robot moves, you should see the grey static map (map topic) grow. There might be discrete jumps in the map as the Cartographer algorithm attempts to localize the robot.
-
To save the generated map, you can run the map_saver utility:
rosrun map_server map_saver -f <filename>
To tune Cartographer for low latency SLAM, edit the jackal.lua configuration file found in the jackal_cartographer_navigation/config directory.
For more information on tuning, click here