IT 개발/LiDAR-SLAM

LIO-SAM 설치 및 실행 (feat. Livox Lidar)

KimDol2 2024. 2. 16. 17:33

 

 

LIO (LiDAR-Inertial Odometry) 알고리즘 중 IROS 2020 에 발표된 LIO-SAM 을 설치하고 실행해보자. 먼저 Git 레포지토리에 들어가보자. 

 

 

GitHub - TixiaoShan/LIO-SAM: LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping

LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping - TixiaoShan/LIO-SAM

github.com

 

위 페이지에 들어가면 System Architecture 와 Dependencies 그리고 Install 항목이 있다. System Architecture 추후 코드 분석을 하면서 좀더 자세히 살펴보자. 

 

우선은 설치를 하기 위해서는 Dependencies 항목을 따라 필요한 ros 패키지와 GTSAM 라이브러리를 설치해야 한다.  아래는 위 레포지토리에 나와 있는 Dependency 를 설치하는 명령이다. 

$ sudo apt-get install -y ros-kinetic-navigation
$ sudo apt-get install -y ros-kinetic-robot-localization
$ sudo apt-get install -y ros-kinetic-robot-state-publisher

 

위의 세개의 ros 패키지를 우선 설치하고, 다음으로는 gtsam 라이브러리를 설치한다.

$ sudo add-apt-repository ppa:borglab/gtsam-release-4.0
$ sudo apt install libgtsam-dev libgtsam-unstable-dev

 

이제 lio_sam 패키지를 설치한다. 

$ cd ~/catkin_ws/src
$ git clone https://github.com/TixiaoShan/LIO-SAM.git
$ cd ..
$ catkin_make

 

이제 설치는 끝났다. 아래는 샘플 데이터를 (walking_dataset.bag) 실행시킨 결과이다.

 

 

lio_sam 의 노드와 메세지가 어떻게 구성되어 있는지 rqt_graph를 통해 보면 아래와 같다.

 

 

상당히 복잡하다 -_-?

 

lio_sam은 velodyne 라이다와 같은 스캐닝 라이다 뿐 아니라 Livox 라이다 데이터를 사용할 수 도 있는데, Livox 라이다를 사용하려면 몇 가지 설정을 변경해 줘야 한다.

 

먼저  LIO-SAM 패키지의 catkin_ws/src/LIO-SAM/config/params.yaml 파일을 보면 Sensor Setting 과 관련된 설정이 있다.

  # Sensor Settings
  sensor: livox             # lidar sensor type, 'velodyne' or 'ouster' or 'livox'
  N_SCAN: 6                 # number of lidar channel (i.e., Velodyne/Ouster: 16, 32, 64, 128, Livox Horizon: 6)
  Horizon_SCAN: 4000        # lidar horizontal resolution (Velodyne: 1800, Ouster: 512, 1024, 2048, Livox Horizon: 4000)
  downsampleRate: 1         # default: 1. Downsample your data if too many points. i.e., 16 = 64 / 4, 16 = 16 / 1
  lidarMinRange: 1.0        # default: 1.0, minimum lidar range to be used
  lidarMaxRange: 1000.0     # default: 1000.0, maximum lidar range to be used
  
  ...
  
  edgeFeatureMinValidNum: 1

 

Sensor Settings을 Livox 센서에 맞게 변경한다. 그리고 LOAM Feature Threshold 파라미터 중 edgeFeatureMinValidNum 을 1로 변경한다. 

 

이제 Livox Horizon 센서 데이터를 (livox_horizon.bag 파일) 사용하여 LIO-SAM 을 실행해 보자.

 

 

Livox 라이다 데이터도 잘 되는 것을 확인 할 수 있다.

 

 

반응형

'IT 개발 > LiDAR-SLAM' 카테고리의 다른 글

IMU Preintegration 문서 정리  (1) 2024.11.12
20241021_1fl 데이터 LIO-SAM 테스트  (0) 2024.10.22
loam_livox 빌드 (feat. Ceres 버전)  (1) 2024.01.24
FAST-LIO2 설치하기  (0) 2024.01.11
LeGO-LOAM 코드 분석하기 (1)  (0) 2023.08.17