Contents — find the section you need

Change parameters and verify

Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.

Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.

The experiment controls are in English.

Open experiment panel in a new tab

Download reproduction source

Nav2를 처음 실험할 때는 공식 TurtleBot 시뮬레이션을 사용하여 저장된 지도에서 지도 표시와 내비게이션 기능을 분리합니다. 이 절차는 2026년 9월 7일에 확인한 Jazzy 문서를 따릅니다. 작성 환경에서는 Gazebo를 실행하지 않았습니다.

환경 기록

GUI가 포함된 Ubuntu 24.04, ROS 2 Jazzy 및 호환되는 Gazebo 환경을 사용합니다. ROS 2가 이미 설치되어 있는 경우, Nav2 빠른 시작에 따라 패키지를 준비합니다. Humble 시절의 Gazebo Classic 설치 지침을 이 설정에 혼합하여 사용하지 마십시오.

source /opt/ros/jazzy/setup.bash
sudo apt update
sudo apt install ros-jazzy-navigation2 ros-jazzy-nav2-bringup ros-jazzy-slam-toolbox ros-jazzy-nav2-minimal-tb3-sim
dpkg-query -W ros-jazzy-navigation2 ros-jazzy-nav2-bringup ros-jazzy-slam-toolbox ros-jazzy-nav2-minimal-tb3-sim
ros2 launch nav2_bringup tb3_simulation_launch.py --show-args

설치된 버전을 저장하고 slam , map 및 use_sim_time 인수를 Jazzy 실행 소스와 비교하여 확인합니다.

매핑 모드 시작

Gazebo, SLAM Toolbox 및 Nav2를 연결하고 맵을 저장한 다음 AMCL로 다시 시작

실제 로봇이 없는 전용 ROS 환경을 사용하십시오. 아래 도메인 ID는 예시이며, 실제 로봇이 동일한 도메인을 사용하지 않는지 확인하십시오. 새 터미널을 열 때마다 동일한 설정을 사용하십시오.

source /opt/ros/jazzy/setup.bash
export ROS_DOMAIN_ID=73
ros2 launch nav2_bringup tb3_simulation_launch.py slam:=True headless:=False use_sim_time:=True

공식 SLAM 절차에서 SLAM은 /map 및 map → odom을 제공합니다. 매핑 중에 해당 변환의 두 번째 퍼블리셔로 AMCL을 추가하지 마십시오.

근처 목표물 시도

다른 터미널에서 환경을 소싱하고 export ROS_DOMAIN_ID=73을 설정한 다음 인터페이스를 검사하십시오.

ros2 topic list
ros2 topic hz /scan
ros2 run tf2_ros tf2_echo map base_link

RViz에서 맵, LaserScan 및 로봇 포즈가 일치하는지 확인하십시오. 관측된 인근 자유 공간에 Nav2 목표를 설정한 다음 다음 영역으로 이동합니다. SLAM이 정상적으로 작동하더라도 미지의 공간 깊숙한 곳에 목표를 설정하면 경로 계획이 실패할 수 있습니다.

지도 저장 및 재시작

동일한 환경의 다른 터미널에서 새 작업 디렉터리에 저장합니다. 필요한 지도를 덮어쓰지 않도록 파일 이름을 지정하세요.

mkdir -p nav2-map-lab
cd nav2-map-lab
ros2 run nav2_map_server map_saver_cli -f map --ros-args -p use_sim_time:=true

map.yaml 파일과 참조된 이미지를 모두 유지합니다. Ctrl+C를 눌러 원래 실행을 종료하고 종료될 때까지 기다립니다. nav2-map-lab 디렉터리에서 저장된 지도를 사용하여 재시작합니다.

ros2 launch nav2_bringup tb3_simulation_launch.py slam:=False map:="$PWD/map.yaml" headless:=False use_sim_time:=True

RViz의 2D 포즈 추정 기능을 사용하여 로봇의 현재 시뮬레이션 위치와 방향을 설정합니다. 인근 목표를 요청하고 경로 생성 및 도착 여부를 확인합니다. 저장된 지도 위치 추정은 SLAM을 사용하여 지도를 업데이트하는 것과는 다른 용도로 사용됩니다.

인터페이스를 통한 오류 진단

증상 첫 번째 확인
로봇 또는 월드 누락 시뮬레이터 로그 및 설치된 모델
맵 누락 /scan , SLAM 노드 및 시뮬레이션 클록
TF 누락 공유 도메인, 타임스탬프 및 프레임 이름
저장된 맵 정렬 오류 YAML 이미지 참조 및 초기 포즈
경로 없음 알려진 자유 공간 목표 및 로봇 발자국 간격

각 단계의 버전, 명령, 맵 및 성공/실패 로그를 보관하십시오. newbot 구현 기록에는 3D LiDAR 및 다른 오도메트리 소스가 포함되어 있으므로, 이 최소 설정에서 변경된 사항을 기록해 두십시오.

Related reading

Evaluate accuracy after bringupSLAM 평가 방법 — ATE, RPE, 런타임 및 실패율Explore another aspect of this fieldICP가 실패하는 이유: 초기화, 이상치 및 대칭 기하학적 구조Explore another aspect of this field로봇 좌표 변환: 행렬, 쿼터니언 및 TF