Welcome to Muto RS Robot repository
2.Constructing pose maps
2.Constructing pose maps
1. Course Content
1.Use slam_toolbox to build raster maps and pose maps
[!NOTE]
- The road network .geojson file must be preceded by at least one raster map.
- Pose maps are designed to enable rapid relocalization during waypoint marking and navigation, improving the accuracy of global positioning and waypoint marking.
2. Building a raster map
- Start the terminal of Humble version of Docker
start_muto_humble
- Terminal input command
xxxxxxxxxxros2 launch yahboomcar_nav map_slam_toolbox_launch.py
Open RVIZ in a virtual machine or terminal.
xxxxxxxxxxros2 launch yahboomcar_nav display_nav_launch.py
- Restart the keyboard control node (or use a gamepad).
xxxxxxxxxxros2 run yahboomcar_ctrl yahboom_keyboard- Controlling vehicle movement for mapping

- Save raster map
xxxxxxxxxxros2 service call /slam_toolbox/save_map slam_toolbox/srv/SaveMap "{name: {data: '/root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/road_map'}}"
[!TIP]
namis used to specify the map name of the saved raster map; in this case, it'sroad_map.
After execution, we can check if the save was successful (we can see that a road_map.pgm and a road_map.yaml file have been added).
xroot@raspberrypi:/# ros2 service call /slam_toolbox/save_map slam_toolbox/srv/SaveMap "{name: {data: '/root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/road_map'}}"requester: making request: slam_toolbox.srv.SaveMap_Request(name=std_msgs.msg.String(data='/root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/road_map'))response:slam_toolbox.srv.SaveMap_Response(result=0)root@raspberrypi:/# ll /root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/total 252drwxr-xr-x 2 1000 1000 4096 Jan 8 01:53 ./drwxr-xr-x 9 1000 1000 4096 Jan 4 13:14 ../-rw-r--r-- 1 root root 22763 Jan 8 01:53 road_map.pgm-rw-r--r-- 1 root root 125 Jan 8 01:53 road_map.yaml-rw-r--r-- 1 1000 1000 159459 Jan 4 13:14 test.pgm-rw-r--r-- 1 1000 1000 181 Jan 4 13:14 test.yaml-rw-r--r-- 1 1000 1000 51885 Jan 4 13:14 yahboomcar.pgm-rw-r--r-- 1 1000 1000 126 Jan 4 13:14 yahboomcar.yamlroot@raspberrypi:/#
- Save the slam_toolbox pose map
xxxxxxxxxxros2 service call /slam_toolbox/serialize_map slam_toolbox/srv/SerializePoseGraph "{filename: '/root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/road_map'}"[!TIP]
map_typestores the map type. The default isgridmap, which stores a raster map. Selectingposegraphstores a pose map, which is aslam_toolbox.
The terminal displays slam_toolbox.srv.SerializePoseGraph_Response(result=0), indicating that the pose map has been successfully saved.
The terminal content is as follows:
xxxxxxxxxxroot@raspberrypi:/# ros2 service call /slam_toolbox/serialize_map slam_toolbox/srv/SerializePoseGraph "{filename: '/root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/road_map'}"requester: making request: slam_toolbox.srv.SerializePoseGraph_Request(filename='/root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/road_map')response:slam_toolbox.srv.SerializePoseGraph_Response(result=0)root@raspberrypi:/# ll /root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/ total 18260drwxr-xr-x 2 1000 1000 4096 Jan 8 01:54 ./drwxr-xr-x 9 1000 1000 4096 Jan 4 13:14 ../-rw-r--r-- 1 root root 157945 Jan 8 01:54 road_map.data-rw-r--r-- 1 root root 22763 Jan 8 01:53 road_map.pgm-rw-r--r-- 1 root root 18278895 Jan 8 01:54 road_map.posegraph-rw-r--r-- 1 root root 125 Jan 8 01:53 road_map.yaml-rw-r--r-- 1 1000 1000 159459 Jan 4 13:14 test.pgm-rw-r--r-- 1 1000 1000 181 Jan 4 13:14 test.yaml-rw-r--r-- 1 1000 1000 51885 Jan 4 13:14 yahboomcar.pgm-rw-r--r-- 1 1000 1000 126 Jan 4 13:14 yahboomcar.yamlroot@raspberrypi:/#