Skip to content

실물 TurtleBot3 SLAM·지도 저장·다중 waypoint Nav2 검증 - #16

Draft
Alpenj wants to merge 4 commits into
mainfrom
docs/jetson-nano-turtlebot3-runbook
Draft

Alpenj wants to merge 4 commits into
mainfrom
docs/jetson-nano-turtlebot3-runbook

Conversation

@Alpenj

@Alpenj Alpenj commented Aug 12, 2026

Copy link
Copy Markdown
Owner

변경 내용

  • Jetson Nano(Humble)와 노트북(Jazzy)을 ROS domain 73으로 격리한 실물 TurtleBot3 환경을 추가했습니다.
  • 빠른 준비 검사와 장애 후 정밀 검사, wheel test, teleop, SLAM, 지도 저장, Nav2 검사/감시 명령을 추가했습니다.
  • tb3-waypoints에 경로계획 전용 모드와 명시적 --execute 실물 구동 모드를 추가했습니다.
  • Nav2 goal tolerance를 실물 검증값(0.08m / 0.15rad)으로 조정했습니다.
  • 터미널별 복붙 명령, 각 명령의 작성 이유, RViz 초기 자세/Waypoint Following 조작을 한국어 Quickstart와 상세 런북에 기록했습니다.
  • 실제 공간 PGM/YAML 지도는 건물 구조를 드러낼 수 있어 포함하지 않았습니다.

원인과 판단

공유 ROS domain에서 다른 participant의 /odom이 섞여 timestamp가 역행하면서 Cartographer가 fatal 종료됐습니다. 실물 전용 domain 73으로 격리한 뒤 odometry 중복/역행이 0인 것을 확인해 공식 use_odometry=true 구성을 유지했습니다.

첫 0.30m Nav2 목표는 기본 0.25m goal tolerance 때문에 약 0.11m만 움직여도 성공 처리됐습니다. 이를 성공으로 기록하지 않고 tolerance를 줄인 뒤 장거리 multi-waypoint로 다시 검증했습니다.

실물 검증

  • 지도: 887×206 cells, 0.05m/cell
  • AMCL/LiDAR 정렬: scan endpoint 82.3%가 지도 벽 10cm 이내
  • 계획: 6 waypoints, 757 path poses, 19.52m
  • 결과: status=4, error_code=0, missed=[]
  • odometry 누적 이동: 21.69m
  • 속도 전달: Nav2 → smoother → collision monitor → robot 모두 최대 0.18m/s, 1.0rad/s

검사

  • Python unit tests: 39/39 통과
  • 모든 shell script: bash -n 통과
  • dapier_turtlebot3_real: colcon build --symlink-install --packages-select dapier_turtlebot3_real 통과
  • git diff --check 통과

Alpenj and others added 4 commits August 11, 2026 17:04
- Docker Humble(dustynv/ros:humble-desktop-l4t-r32.7.1)로 Nano ROS2 우회 구성
- SD카드 플래싱, WiFi/SSH, sudo NOPASSWD 세팅 절차 기록
- ROS2 apt 키 만료, bionic용 ros-humble-* 데비안 부재, GCC7 std::variant
  버그, docker cp 심볼릭 링크 문제, ModemManager 포트 점유 등 실제로
  겪은 트러블슈팅 상세 기록
- turtlebot3 humble 워크스페이스 빌드 완료, OpenCR(burger) 펌웨어 플래시
  완료까지 반영

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- ros2 topic pub timeout이 너무 짧아 DDS discovery 전에 죽어서 명령이
  아예 노드까지 도달 안 했던 게 진짜 원인 (하드웨어/펌웨어 문제 아니었음)
- RCLCPP_DEBUG로만 로깅되는 쓰기 실패 메시지를 보려고 launch 우회해서
  turtlebot3_ros 바이너리 직접 실행한 과정 기록
- odom 0->0.35m 실측 변화 + 사용자 육안 확인으로 완료 판정

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- 전진/제자리회전 둘 다 odom+육안으로 확인
- hlds_laser_publisher가 계속 죽던 원인: 컨테이너 생성 시
  --device=/dev/ttyUSB0을 안 넣어서 라이다 나중 연결해도 컨테이너
  안에서 장치 노드 자체가 안 보였던 것. 컨테이너 재생성으로 해결
- /scan ~4.99Hz 안정 발행, ranges 실측치 확인

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant