slam 선정과정

김민준·2025년 6월 5일

🛠️ Ouster LiDAR 128채널 SLAM 시스템 구축기 – 왜 LIO-SAM을 선택했는가?

📌 프로젝트 배경

Ubuntu 20.04 + ROS Noetic 환경에서 Ouster OS1-128 LiDAR를 사용해 자율주행 플랫폼의 SLAM 시스템을 구축하고자 했다. 이 시스템은 정확한 위치 추정을 통해 자율주행 경로 생성 및 주행까지 확장하는 것이 목표였다.


🔍 후보 SLAM 알고리즘 비교

항목LeGO-LOAMFAST-LIO2LIO-SAM (최종 선택)
채널 지원16~32 채널 최적화모든 채널 (128 포함)모든 채널 (128 포함)
IMU 필요 여부선택적 (9축 권장)필수9축 IMU 필수
Ouster 호환성❌ 별도 수정 필요 (utility.h, imageProjection.cpp)⚠️ 수정 필요✅ 공식 가이드 및 파라미터 제공
실외 주행 적합성⚠️ Ground 기반 한정 (특히 평지)✅ 고속 연산으로 적합✅ GPS, loop closure로 장거리 실외에 강함
GPS 통합 기능❌ 없음❌ 없음✅ 있음 (pose 보정 기능)
루프 클로저ICP 기반 (성능 제한적)❌ 없음✅ 가능 (Scan Context 연동도 가능)
처리 속도보통 (낮은 채널 기준 실시간)✅ 매우 빠름보통 (~실시간)
설정 난이도낮음중간~높음중간 (설정 항목 다수, 공식 문서 있음)
활용된 논문IROS 2018MARS Lab (HKU)IROS 2020

🧪 각 알고리즘 분석

1. LeGO-LOAM

  • 저채널(LP-16, HDL-32) 기반의 UGV에 특화
  • groundScanInd, ring 등 파라미터를 수정해야 128채널 지원 가능
  • IMU는 필수는 아니나, 정확도 향상에 도움 됨
  • 내부 IMU 사용 불가, 외부 9축 IMU 필요
  • 실외 환경(경사, 비정형 지형 등)에는 비추천

2. FAST-LIO2

  • IMU 필수
  • 매우 빠르고 효율적이며, 실시간성이 뛰어남
  • GPS 통합 불가 → 누적 드리프트 가능성 존재
  • 고정밀 자이로 기반 환경에서 고성능
  • 내부 구조가 복잡하여 커스터마이징은 어려움

3. LIO-SAM (최종 선택)

  • Ouster OS1-128 공식 지원 (N_SCAN=128, Horizon_SCAN=1024)
  • IMU + LiDAR + GPS 통합을 통한 정밀한 위치 추정 가능
  • 루프 클로저, 시각화, 맵 저장, 외부 연동까지 다양하게 지원
  • 외부 9축 IMU만 연동되며, Ouster 내장 IMU(6축)는 사용 불가
  • 실외 장거리 경로 주행에 매우 적합

✅ 최종 선택: LIO-SAM

다양한 조건을 고려한 결과, 다음과 같은 이유로 LIO-SAM을 선정하였다:

  • Ouster 128채널 공식 샘플과 파라미터 제공
  • 실외 주행에서 GPS 기반 보정 및 loop closure로 오차 누적 방지
  • ROS 기반 자율주행 시스템과 높은 호환성
  • 이후 Scan Context, map server 연동 등 확장이 용이

🔧 향후 작업 예정

  • 외부 9축 IMU 설치 및 ROS topic 매핑 (/imu/data/imu_correct)
  • params.yaml 내 파라미터 수정 (N_SCAN, extrinsicRot 등)
  • 실측 데이터 기반으로 GPS 보정 파라미터 튜닝
  • RViz에서 trajectory 및 맵 실시간 시각화

✍️ 마무리

128채널 LiDAR와 실외 주행이 핵심이라면, LIO-SAM은 매우 실용적인 선택이다. 향후 실측 데이터를 기반으로 튜닝을 거치며 자율주행 경로 생성 및 주행 테스트를 진행할 계획이다.

profile
지금까지 해온 여러 활동들을 간략하게라도 정리해보고자 합니다.

0개의 댓글