nav2_map_server
패키지의 map_saver
노드 실행cartographer를 작동시키고 로봇을 주행하여 지도 작성
# bookstore world에 neuronbot2를 spawn하고 cartographer 수행 (이미 켜져있으면 skip)
ros2 launch neuronbot2_gazebo neuronbot2_world.launch.py
ros2 launch neuronbot2_slam cartographer_launch.py open_rviz:=true use_sim_time:=true
# 로봇 수동 제어
ros2 run teleop_twist_keyboard teleop_twist_keyboard
지도를 저장할 디렉토리로 이동 후 저장
cd ~/nav2_ws/src/neuronbot2/neuronbot2_nav/map
ros2 run nav2_map_server map_saver_cli -f bookstore
저장한 지도를 다음에 사용할 수 있도록, 빌드를 통해 워크스페이스의 install 디렉토리에 설치
cd ~/nav2_ws
colcon build --symlink-install --packages-select neuronbot2_nav
이미지 편집 툴 GIMP
설치
sudo apt install gimp
GIMP
를 실행하고 지도 파일인 *.pgm
파일 열어준 뒤 지도를 적절히 수정
map_saver
로 저장한 후에, 또 다른 지도를 만들려는 경우가 아니라면 mapping 작업을 다시 할 필요 없음Localization
시스템이나 Path Planner
와 같은 다른 내비게이션 애플리케이션(Nav2)에 제공할 때map_server
노드 사용Localization
이나 Path Planner
을 수행할 때 아래 2개 노드 실행하면서 지도 불러오기
map_server
nav2_lifecycle_manager
~/nav2_ws/src/neuronbot2/neuronbot2_nav/launch/localization_launch.py
~/nav2_ws/src/neuronbot2/neuronbot2_nav/launch/navigation_launch.py