5.4 Nav2 연동
AntBot은 ROS 2의 공식 네비게이션 프레임워크인 Nav2를 연동하여 자율주행을 수행할 수 있습니다. 시뮬레이션에서 실행하려면 5.3 시뮬레이션 환경 구축이 완료된 상태여야 합니다.

의존성 설치
섹션 제목: “의존성 설치”antbot_navigation/package.xml에 Nav2, SLAM Toolbox, robot localization, MPPI, RPP controller 의존성이 선언되어 있으므로 워크스페이스 루트에서 rosdep으로 설치할 수 있습니다.
rosdep install --from-paths src --ignore-src -r -y수동으로 설치하려면 다음 패키지를 설치합니다.
sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup \ ros-humble-slam-toolbox ros-humble-robot-localization \ ros-humble-nav2-mppi-controller \ ros-humble-nav2-regulated-pure-pursuit-controllercd ~/ros2_wscolcon build --symlink-install --packages-up-to antbot_navigationsource install/setup.bashLaunch 종류
섹션 제목: “Launch 종류”| Launch 파일 | 용도 | 특징 |
|---|---|---|
navigation.launch.py | 저장된 맵으로 자율주행 | AMCL + Nav2 전체 스택 |
slam.launch.py | 맵 생성과 동시에 네비게이션 | SLAM Toolbox (사전 맵 불필요) |
localization.launch.py | 위치 추정 전용 | 경로 계획 없음 |
모든 launch 파일은 mode 인자로 시뮬레이션과 실제 로봇을 전환합니다:
ros2 launch antbot_navigation slam.launch.py mode:=sim # 시뮬레이션ros2 launch antbot_navigation slam.launch.py mode:=real # 실제 로봇시뮬레이션 모드
섹션 제목: “시뮬레이션 모드”-
Gazebo 시뮬레이션 실행
Terminal window # Terminal 1ros2 launch antbot_gazebo gazebo.launch.py world:=depot -
Nav2 네비게이션 실행
Terminal window # Terminal 2ros2 launch antbot_navigation navigation.launch.py mode:=sim world:=depot -
RViz 시각화
Terminal window # Terminal 3rviz2 -d $(ros2 pkg prefix antbot_navigation --share)/rviz/navigation.rviz \--ros-args -p use_sim_time:=true
맵 저장
섹션 제목: “맵 저장”SLAM 모드에서 생성한 맵을 파일로 저장합니다:
ros2 run nav2_map_server map_saver_cli -f ~/maps/my_map저장된 맵으로 자율주행하려면:
ros2 launch antbot_navigation navigation.launch.py mode:=sim \ map:=/path/to/my_map.yaml실제 로봇 모드
섹션 제목: “실제 로봇 모드”-
AntBot bringup 실행
Terminal window # Terminal 1ros2 launch antbot_bringup bringup.launch.py -
Nav2 네비게이션 실행
Terminal window # Terminal 2ros2 launch antbot_navigation navigation.launch.py mode:=real -
RViz 시각화
Terminal window # Terminal 3rviz2 -d $(ros2 pkg prefix antbot_navigation --share)/rviz/navigation.rviz
맵 저장
섹션 제목: “맵 저장”SLAM 모드에서 생성한 맵을 파일로 저장합니다:
ros2 run nav2_map_server map_saver_cli -f ~/maps/my_map저장된 맵으로 자율주행하려면:
ros2 launch antbot_navigation navigation.launch.py mode:=real \ map:=/path/to/my_map.yaml네비게이션 목표 지점 설정
섹션 제목: “네비게이션 목표 지점 설정”단일 목표 지점
-
RViz에서 2D Pose Estimate를 클릭하여 초기 위치를 설정합니다
-
Nav2 Goal을 클릭하여 목표 지점을 지정합니다
다중 웨이포인트 순회
-
RViz 실행
-
Panels → Add New Panel →
nav2_rviz_plugins/Navigation2선택 -
Waypoint Mode 체크 후 맵에서 여러 목표 지점 클릭
-
Start Waypoint Following 클릭
CLI를 통한 목표 설정
# map 프레임 기준 좌표 (x: 5.0, y: 3.0)로 목표 전송ros2 action send_goal /navigate_to_pose nav2_msgs/action/NavigateToPose \ "{pose: {header: {frame_id: 'map'}, pose: {position: {x: 5.0, y: 3.0}}}}"© 2026 ROBOTIS AI. All rights reserved.