
터미널 1에서 실행:
cd ~/ouster_ws
source devel/setup.bash
roslaunch lio_sam run.launch
이 단계에서 실행되는 것들:
1단계 확인사항:
# 새 터미널에서 확인
# 1) LIO-SAM 토픽들이 정상적으로 발행되는지 확인
rostopic list | grep lio_sam
# 예상 출력: /lio_sam/mapping/odometry, /lio_sam/mapping/path, /lio_sam/mapping/map_local 등
# 2) TF tree가 올바르게 구성되었는지 확인
rosrun tf view_frames
# 예상 구조: map → odom → base_link(=imu_link) → os_sensor
# 3) IMU와 라이다 데이터가 들어오는지 확인
rostopic hz /imu/data_synced
rostopic hz /points_synced
# 4) LIO-SAM이 정상 작동하는지 확인
rostopic echo /lio_sam/mapping/odometry --clear
RViz에서 확인할 것들:
⚠️ 1단계 문제 해결:
# LIO-SAM 노드가 죽는 경우
rosnode list | grep lio_sam
# IMU 초기화 문제 시
# → 차량을 10-30초간 완전 정지 상태로 유지
# 포인트클라우드가 안 보이는 경우
rostopic echo /points_synced | head -20
1단계가 안정적으로 실행된 후, 터미널 2에서:
cd ~/ouster_ws
source devel/setup.bash
roslaunch lio_sam navigation_only.launch
이 단계에서 추가로 실행되는 것들:
2단계 확인사항:
# 1) 레이저스캔 변환이 정상인지 확인
rostopic echo /scan --clear
rostopic hz /scan
# 2) Move Base가 실행되었는지 확인
rosnode list | grep move_base
# 예상 출력: /move_base
# 3) Costmap이 생성되는지 확인
rostopic list | grep costmap
# 예상 출력: /move_base/global_costmap/costmap, /move_base/local_costmap/costmap
# 4) Move Base 상태 확인
rostopic echo /move_base/status
Navigation RViz에서 확인할 것들:
두 시스템이 모두 안정적으로 실행된 후:
3-1) 초기 상태 확인:
# TF 연결 상태 최종 확인
rosrun tf tf_echo map imu_link
# Navigation 준비 상태 확인
rostopic echo /move_base/status
# 출력에서 status: 0 (PENDING) 이면 정상
3-2) 첫 번째 목적지 설정:
3-3) 실시간 모니터링:
# 터미널 3: cmd_vel 명령 모니터링
rostopic echo /cmd_vel
# 터미널 4: 현재 위치 모니터링
rostopic echo /lio_sam/mapping/odometry | grep -A3 position
# 터미널 5: Navigation 상태 모니터링
rostopic echo /move_base/status
기본 이동이 성공하면:
4-1) 복잡한 경로 테스트:
# 장애물 주변으로 목적지 설정
# 코너를 돌아가는 경로 테스트
# 긴 거리 이동 테스트
4-2) 맵 저장 (선택사항):
# 현재 생성된 맵 저장
rosservice call /lio_sam/save_map 0.2 "/home/$(whoami)/hunter_test_maps/"
/lio_sam/mapping/odometry 토픽 정상 발행 (10Hz)/scan 토픽 정상 발행 (10Hz)/cmd_vel 토픽에 속도 명령 발행1단계 문제:
# LIO-SAM 크래시 시
killall -9 lio_sam_imuPreintegration lio_sam_imageProjection lio_sam_featureExtraction lio_sam_mapOptmization
# 재시작
roslaunch lio_sam run.launch
2단계 문제:
# pointcloud_to_laserscan 실패 시
rosnode kill pointcloud_to_laserscan
rosrun pointcloud_to_laserscan pointcloud_to_laserscan_node cloud_in:=/lio_sam/mapping/cloud_registered _target_frame:=imu_link
# move_base 실패 시
rosnode kill move_base
# navigation_only.launch 재실행
3단계 문제:
# 목적지 설정해도 움직이지 않는 경우
rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped "header: {frame_id: 'map'} pose: {position: {x: 1.0, y: 0.0, z: 0.0}, orientation: {w: 1.0}}"
# 비상 정지
rostopic pub /cmd_vel geometry_msgs/Twist "linear: {x: 0.0} angular: {z: 0.0}"