Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
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
Archives
Today
Total
관리 메뉴

롤롤하

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

Isaac Sim

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

롤롤하 2025. 2. 19. 20:34

2025.02.12 - [Isaac Sim] - [Isaac Sim + ROS2] 2D LiDAR Cartographer SLAM에서 이어집니다.


안녕하세요! 이번에 Isaac Sim에서 SLAM을 진행하며 Odometry에 관한 스터디와 정리를 해봤습니다.

Wheel Slip이 있어도 Odometry가 정확?

 

 

2diff Robot이 이동하던 도중, 바퀴가 미끄러지는 Wheel Slip 상황에서도 odometry가 매우 정확하게 측정되는 것을 확인했습니다.

Isaac Sim Odometry는 센서 기반이 아니다.


Isaac Sim의 /odom은 센서 데이터를 활용한 것이 아니라, 시뮬레이터 내부의 좌표 변환을 기반으로 생성된 "GT Odometry(Ground Truth)" 입니다.

즉, 실제 환경에서 발생하는 오차 없이 정밀한 위치 정보를 제공하는 것이죠.

이러한 GT Odometry만으로는 실제 센서 기반이 아니므로, 실전에서 발생하는 문제점을 검증하기엔 한계가 있습니다.

Odometry 구현


기존 Isaac Sim의 GT Odometry와 비교하기 위해 직접 센서 기반 Odometry를 구현해 보았습니다.

1. GT

Isaac Sim이나 Gazebo에서 발행해주는 odometry는 기본적으로 로봇의 실제 위치를 제공해 줍니다.

로봇의 실제 위치(Reference) 제공 → 비교 분석용 데이터로 활용 가능

2. Wheel-Based Odometry

바퀴 크기와 바퀴 간 거리를 이용하여 이동 거리 계산

2-Wheel Differential(2diff) 기반 로봇에서 가장 많이 사용됨

2.1. Wheel Encoder : 바퀴의 회전수를 측정하여 이동 거리 계산

2.2. Joint State Topic : 로봇의 각관절 상태를 사용하여 이동 거리 계산

2.3. cmd_vel Topic : 주어진 속도 명령을 기반으로 위치 변화 예측

Wheel-Based Odometry는 Wheel Slip 및 기하학적 오차(Drift)가 누적되는 문제가 있습니다.

3. LiDAR-Based Odometry

라이다 /scan 또는 /scan_cloud 등을 이용하여 Odometry를 작성합니다.

3.1. ICP : 연속적인 LiDAR 스캔을 비교하여 상대 위치 변화를 계산합니다. 연산량 자체가 많다는 단점이 있습니다.

3.2. RF2O : 속도 모델 기반의 실시간 LiDAR Odometry 방식. ICP에 비해 빠른 반응성을 보여주지만 정밀도는 다소 낮을 수 있습니다.

4. Fusion-Based Odometry

1. EKF (Extended Kalman Filter) : IMU, Wheel Encoder, LiDAR 등의 데이터를 융합하여 보다 정확한 위치 추정을 수행합니다. ROS2에서 robot_localization 패키지를 통해 EKF를 쉽게 사용할 수 있습니다.

2. UKF : EKF 보다 비선형성이 강한 시스템에 강한 특징을 같습니다.

이 중 cmd_vel 기반 Wheel Odometry, ICP Odometry, Wheel Intertial Odometry (EKF)를 구현해 보았습니다.

환경 구성


Isaac Sim

 

기존환경을 바탕으로 Fusion을 위한 IMU만을 추가해주었습니다.

 

추가적으로 IMU Sensor의 Gravity Acc는 제거한 상태로 진행하였습니다.


ROS2

1. /cmd_vel 을 subscribe하여 /odom_wheel topic과 /tf를 발행하는 노드

2. /scan 데이터를 subscribe하여 /odom_icp를 발행하는 노드

3. /odom_wheel 과 /imu 를 subscribe하여 /odometry/filtered와 /tf를 발행하는 노드

를 사용하여 환경구축을 진행하였습니다.

Odometry 비교


wheel vs LiDAR vs EKF(Wheel+IMU)

 

영상을 보시면 다음과 같은 점들을 확인하실 수 있습니다.

1. Wheel-Based Odometry (Cmd Vel)

장점: 구현이 쉽고 실시간 반응이 빠름

단점: Wheel Slip으로 인해 Drift 발생 → 빠르게 오차가 누적됨

2. LiDAR 기반 ICP Odometry

장점: GT와 가장 유사한 움직임을 보여줌

단점: 회전 시 노이즈 발생, 연산량이 많아 반응 속도가 느림

3. Wheel + IMU Odometry (EKF)

장점: IMU 센서 덕분에 Wheel Slip으로 인한 Drift 보정 가능

단점: 초기 캘리브레이션이 중요

EVO를 활용한 Odometry 성능 비교

 

APE (Absolute Pose Error) 분석

GT(Ground Truth)와 비교했을 때, ICP Odometry가 가장 정확한 성능을 보여줌.

ICP 기반 Odometry는 다른 방식보다 절대적인 위치 오차가 적으며, GT와 가장 유사한 궤적을 따르는 경향이 나타남.

 

Trajectory 및 Velocity 분석

ICP Odometry의 한계

연산량이 많고, LiDAR Scan 데이터의 노이즈 영향을 크게 받음

특히 회전 시 심한 노이즈 발생 → 주행 경로가 회전시 엉켜버림

Wheel Odometry의 특징

Encoder 값이 아닌 cmd_vel을 기반으로 오도메트리를 구성했기 때문에, 실제 이동보다 먼저 반응하는 경향이 확인됨

Wheel Slip으로 인해 시간이 지날수록 점점 더 큰 오차가 발생

Wheel + IMU + EKF 조합(Wheel-Intertial Odometry) 적용

Wheel Odometry의 실시간 반응성

IMU 데이터를 활용하여 Wheel Slip에 의한 오차를 보정

EKF를 통해 센서 데이터 융합 및 안정적인 궤적 형성 가능

ICP Odometry는 단기적으로 성능이 좋아 보이지만,

좁은 통로나 특징(Feature)이 부족한 환경에서는 신뢰성이 급격히 저하될 수 있다는 점을 감안한다면

Wheel + IMU의 조합이나 ICP + IMU의 조합이 안정적인 결과를 보여줄 것 같습니다.