Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

롤롤하

[Isaac Sim + ROS2] LIO-SAM (LiDAR Inertial Odometry SLAM) 구현 본문

Isaac Sim

[Isaac Sim + ROS2] LIO-SAM (LiDAR Inertial Odometry SLAM) 구현

롤롤하 2025. 2. 23. 23:37

LIO-SAM

 

안녕하세요. 이번 글은 이전 게시글에 이어서 LiDAR + Inertail Odometry SLAM 중 하나인 LIO-SAM을 다루어 보았습니다.

 

[Isaac Sim + ROS2] Wheel Slip과 2D Odometry

2025.02.12 - [Isaac Sim] - [Isaac Sim + ROS2] 2D LiDAR Cartographer SLAM에서 이어집니다.안녕하세요! 이번에 Isaac Sim에서 SLAM을 진행하며 Odometry에 관한 스터디와 정리를 해봤습니다.​Wheel Slip이 있어도 Odometry가

786studio.tistory.com

 

1. LIO-SAM

1.1. LIO-SAM 이란

LIO-SAM은 LiDAR와 IMU를 결합하여 실시간으로 SLAM을 수행하는 알고리즘입니다. 기존 LiDAR-SLAM (LOAM)에 비하여 빠르고 정밀한 위치추정이 가능하며, GPS 없이도 꽤나 높은 정확도를 유지할 수 있는 SLAM 기법입니다.

1.2. LIO-SAM의 특징

- IMU Pre-integration : IMU 데이터를 통하여 LiDAR 프레임 간의 움직임 보정

- LiDAR-IMU Fusion : LiDAR 데이터를 IMU와 결합하여 더 정확한 SLAM 수행

- Loop Closure : 루프 클로저 기능을 제공하며 그래프 최적화 기반으로 진행됩니다.

- iSAM2 알고리즘 사용

더욱 자세한 내용은 논문을 참고하시면 좋을 것 같습니다.

 

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

We propose a framework for tightly-coupled lidar inertial odometry via smoothing and mapping, LIO-SAM, that achieves highly accurate, real-time mobile robot trajectory estimation and map-building. LIO-SAM formulates lidar-inertial odometry atop a factor gr

arxiv.org

 

2. Isaac Sim

 

[Isaac Sim + ROS2] Wheel Slip과 2D Odometry

2025.02.12 - [Isaac Sim] - [Isaac Sim + ROS2] 2D LiDAR Cartographer SLAM에서 이어집니다.안녕하세요! 이번에 Isaac Sim에서 SLAM을 진행하며 Odometry에 관한 스터디와 정리를 해봤습니다.​Wheel Slip이 있어도 Odometry가

786studio.tistory.com

(기존 글의 셋팅에서 이어집니다.)

2.1. 3D LiDAR 추가

2.1.1. 기존에 사용하던 2D LiDAR와 그래프를 삭제해줍니다.

2.1.2. odom 그래프 또한 수정해줍니다.

- odom 그래프에서 odom-base_link tf publisher를 삭제합니다. (base_link는 LIO-SAM의 odom과 연결되어야 합니다.)

- odom publisher와 tf_static은 그대로 유지해줍니다.

2.1.3. rtx-LiDAR 추가

 

- Create - Isaac- Sensors - RTX LiDAR -HESAI XT-32 10hz 를 추가해 주었습니다. (추가 후 payloads로 변경)

- 추가한 HESAI 라이다를 base_scan xForm에 추가해줍니다.

- base_scan의 위치를 재조정해줍니다.

2.1.4. ROS RTX LiDAR 그래프 추가

 

- Isaac - Utils -Common Omnigraph - ROS RTX LiDAR 클릭

- Parameter 설정 (Lidar Prim, Frame ID, Point Cloud Topic명)

- 모든 데이터 발행을 체크해줍니다.

이후 Rviz에서 데어터와 tf가 정상적으로 발행되는지 확인해줍니다.

 

3. LIO-SAM 설치 및 실행

3.1. Git Clone 및 build

https://github.com/TixiaoShan/LIO-SAM/tree/ros2 참조하여 설치하시면 됩니다.

 
sudo apt install ros-<ros2-version>-perception-pcl \
  	   ros-<ros2-version>-pcl-msgs \
  	   ros-<ros2-version>-vision-opencv \
  	   ros-<ros2-version>-xacro
# Add GTSAM-PPA
sudo add-apt-repository ppa:borglab/gtsam-release-4.1
sudo apt install libgtsam-dev libgtsam-unstable-dev
cd ~/ros2_ws/src
git clone -b ros2 https://github.com/TixiaoShan/LIO-SAM.git
cd LIO-SAM
git checkout ros2
cd ..
colcon build

3.2. launch 파일 및 params 수정

- launch 파일

xacro 및 robot state publisher 삭제 (isaac sim tf_statci에서 이미 발행)

param file 부분의 params.yaml isaac_params.yaml 로 수정

- isaac_params.yaml 작성

기존 config폴더 안의 params.yaml을 복사하여 isaac_params.yaml을 추가해주고 사용하는 센서 스펙에 맞게 수정해줍니다.

프레임 이름 및 topic 이름 변경, GPS 주석처리

참고) 사용하는 HESAI 라이다의 센서 특성은 isaac sim의 json 파일에서 확인하실 수 있습니다.

 

 

변경 내용 (전 isaac sim에서 imu 데이터에 중력을 포함시키지 않아 imuGravity를 0.0으로 설정하였습니다.)

N_SCAN : 32 Horizon_SCAN : 2000 lidarMinRange : 0.05 lidarMaxRange : 120.0 imuGravity : 0.0

이후 다시 빌드를 진행해주시면 됩니다.

 

 

LIO-SAM이 확실히 좋은 성능을 보여주네요.

 

트래젝터리를 보더라도 yaw와 pitch가 크게 흔들리는 상황을 제외하고는 GT와 가장 비슷한걸 확일 할 수 있습니다.