Contents — find the section you need
로봇이 "오른쪽으로 1m, 앞으로 2m 이동했다"는 것을 아는 가장 기본적인 방법은 자체 변위를 계속 누적하는 것입니다. 바퀴 회전 수, 모터 속도, IMU 각속도를 시간에 따라 통합하여 현재 위치를 추정합니다. 이 방법을 추측 항법이라고 합니다. GPS나 카메라를 일시적으로 사용할 수 없는 경우에도 계속 작동하지만, 작은 바퀴 미끄러짐이나 센서 오차가 누적되어 시간이 지남에 따라 위치 오차가 커집니다.
절대 GNSS 관측
저가형 IMU 예시이미지: Surveyor RTK 솔루션으로 GNSS 수신기 사용 (SweetCanadianMullet, CC BY 4.0) / GY-521 MPU-6050 모듈 (Nevit) (Dilmen, CC BY-SA 3.0), Wikimedia Commons. 대표적인 센서 이미지이며, 필수적인 하드웨어 조합은 아닙니다.
30초 요약
-
데드 레코닝은 "이전 상태에 측정된 변위를 더한 값"으로 현재 상태를 예측합니다. 관측 데이터 없이도 높은 속도로 업데이트할 수 있습니다.
-
차동 구동 로봇에서 좌우 바퀴의 변위 차이가 회전 각도를 결정하고, 이들의 평균값이 전진 거리를 결정합니다. 바퀴 반경과 트레드 폭의 오차는 체계적인 곡선으로 나타납니다.
-
주행 거리 측정 오차는 적분을 통해 누적됩니다. 절대 위치를 얻으려면 GNSS, LiDAR, 카메라 또는 반사 마커와 같은 관측 데이터를 사용하여 보정해야 합니다.
-
IMU는 단기적인 자세 변화에는 강하지만, 가속도를 이중으로 적분하면 위치가 빠르게 드리프트됩니다. 확장 칼만 필터(EKF) 또는 팩터 그래프를 통해 바퀴와 IMU를 융합하는 것이 일반적인 접근 방식입니다.
-
구현 시 타임스탬프, 좌표계, 좌우 부호 규칙, 휠 반경, 슬립 감지 및 공분산은 모두 처음부터 정확하게 정의되어야 합니다. 이 부분을 잘못 정의하면 아무리 고가의 센서를 사용하더라도 문제를 해결할 수 없습니다.
1. 차동 구동 운동학
좌측 및 우측 휠 반경을 각각 r, 휠 간 거리(트레드)를 b, 좌우 각속도를 \omega_L,\omega_R이라고 합시다. 바퀴의 선형 속도는 각각 v_L=r\omega_L과 v_R=r\omega_R이므로, 차량 중심의 병진 속도 v와 요각률 \dot{\theta}은 다음과 같습니다.
시간 k에서의 자세를 (x_k,y_k,\theta_k), 샘플링 주기를 \Delta t라고 하면, 간단한 오일러 적분을 통해 다음과 같은 결과를 얻습니다.
일정한 속도로 호를 주행할 때, 정확한 적분(차체 좌표계에서의 지수 함수적 변환)을 사용하면 저속 및 고회전률에서도 오차를 최소화할 수 있습니다.
그림 1 — 차동 구동에서 좌우 속도 차이가 요율(yaw rate)을 생성합니다. 한쪽 바퀴를 정지시키면 로봇이 그 바퀴를 중심으로 회전할 수 있습니다.
2. 주행 거리 측정값이 오차를 발생시키는 이유
바퀴 반경에 1%의 오차가 있고 주행 중 좌우 속도가 같다고 가정하면 직진한다고 생각할 때에도 실제로는 회전하게 됩니다. 좌우 엔코더 해상도, 기어 백래시, 바닥 불규칙성, 타이어 마모, 하중으로 인한 변형 등이 모두 시스템 오차가 됩니다. 젖은 바닥이나 자갈밭에서 바퀴가 미끄러지면 측정된 회전과 실제 변위가 더 이상 일치하지 않습니다.
자세 오차 \delta\theta는 측면 위치 오차를 발생시킵니다. 전방 거리 s에 대한 단시간 근사치는 다음과 같습니다.
0.5도 각도 오차로 1km를 주행하면 측면 오프셋은 약 8.7m에 달합니다. 위치 오차를 단순히 "초당 몇 cm"로 표현하는 것만으로는 직진, 회전, 미끄러짐 주행 시 발생하는 다양한 오차 구조를 제대로 반영할 수 없습니다.
휠 오도메트리의 공분산은 좌우 변위의 불확실성을 자세에 반영하고 그에 따라 자세를 업데이트합니다. 구현 시, 회전 중이나 미끄러짐이 감지될 때 공분산이 증가되어 후속 센서 융합 과정에서 오도메트리를 과도하게 신뢰하지 않도록 합니다.
3. IMU 추가
IMU의 자이로스코프에서 얻은 각속도 \omega_z를 적분하면 다음과 같습니다.
여기서 b_g는 자이로 바이어스이고 n_g는 노이즈입니다. 바퀴가 미끄러지는 순간에도 각속도의 단기적인 변화를 측정할 수 있으므로 바퀴만 사용하는 경우보다 더 부드러운 자세 추정값을 얻을 수 있습니다. 가속도를 이중 적분하여 속도와 위치를 얻을 때, 바이어스 b_a로 인한 오차는 다음과 같이 증가합니다.
따라서 IMU만으로는 장시간 위치 센서로 사용할 수 없습니다.
바퀴와 IMU를 결합하면 바퀴는 저주파 변위를 처리하고 IMU는 고주파 각속도와 가속도를 처리합니다. 롤/피치는 중력 방향을 기준으로 초기화되며, 자력계 또는 GNSS를 사용할 수 있는 경우 절대 요 기준값도 추가됩니다.
4. EKF 또는 팩터 그래프를 이용한 보정
한 가지 예시 상태 벡터는 다음과 같습니다.
예측 단계에서는 바퀴와 IMU 데이터를 이용하여 비선형 모션 모델 f을 계산합니다. 관측값이 도착하면 잔차를 사용하여 보정합니다.
확장 칼만 필터(EKF)는 야코비 행렬을 통해 비선형 모델을 국소적으로 선형화합니다. GNSS 위치, LiDAR 스캔 매칭, 카메라 특징점, 알려진 마커의 자세 등을 모두 관측값 \mathbf{z}으로 사용할 수 있습니다. 반복 횟수가 많거나 재방문 시에는 과거 자세와 관측값을 팩터 그래프에 저장하고 전체 시스템을 다시 최적화합니다.
ROS 2(여기서는 Jazzy 표준 메시지 정의를 가정)의 경우, 휠의 nav_msgs/msg/Odometry, IMU의 sensor_msgs/msg/Imu, 그리고 TF 변환 odom → base_link는 공통 시간 기준을 사용해야 합니다. 이러한 메시지 유형은 ROS 1의 nav_msgs/Odometry 및 sensor_msgs/Imu에 해당하지만, ROS 2 구현 세부 사항, QoS 및 배포 설정은 별도로 확인해야 합니다. robot_localization의 확장 칼만 필터(EKF)는 구현을 위한 적절한 시작점이지만, 공분산을 0으로 만들거나 동일한 정보를 두 번 입력하면 추정치가 비정상적으로 딱딱해집니다.
5. 현재 로봇에서의 활용
실내 자율 이동 로봇(AMR)은 휠 엔코더와 IMU를 지속적으로 사용하며, LiDAR 또는 카메라 맵 매칭을 통해 드리프트를 재설정합니다. 자율 주행에서는 휠 속도, 조향각, IMU, GNSS 및 LiDAR 데이터를 융합하여 터널이나 고가 구조물 아래에서 GNSS 신호가 끊기더라도 수초에서 수십 초 동안 정확한 추정값을 유지할 수 있습니다. 농업용 로봇의 경우, 진흙, 바퀴 자국, 경사면으로 인해 바퀴 미끄러짐이 발생하므로 RTK-GNSS, IMU 및 작업기 힘 센서를 결합하여 사용합니다.
수중 로봇과 우주선은 GNSS 신호 없이 장시간 주행해야 합니다. 이러한 경우, 저속 절대 관측 자료로 도플러 속도 기록계(DVL), 항성 추적기 또는 지형 매칭을 추가하여 추측 항법의 공분산을 제어합니다. 중요한 것은 추정값을 계획 및 제어 시스템에 전달하는 것과 함께 "이 추정값에 대한 신뢰도"를 판단하는 것입니다.
6. 구현 체크리스트
-
센서 타임스탬프를 공통 시계로 변환하고 지연 시간을 측정합니다.
-
base_link,odom,map좌표계와 해당 좌표계의 오른손 부호 규칙을 그리시오. -
실제 주행 테스트를 통해 휠 반경, 트레드, 엔코더 해상도를 확인하시오.
-
직선 주행, 안정적인 회전, 8자형 주행, 요철, 저마찰 노면 등 다양한 주행 조건에 대한 오차를 각각 평가하시오.
-
슬립이나 데이터 손실이 감지되면 공분산을 증가시키고, 정확한 관측값이 나오면 보정하시오.
-
동일한 입력값이 동일한 추정값을 생성하는지 확인하기 위해 로그를 재생하시오.
테스트 시에는 종점 위치 오차뿐만 아니라 자세 오차, 최대 오차, 95번째 백분위수, 데이터 손실 발생 시 드리프트율도 기록하시오. 일반적으로는 정확하지만 가끔씩 크게 벗어나는 추정값은 안전한 경로 계획에 사용할 수 없소.
요약
추측항법은 로봇의 움직임을 가능한 한 가장 짧은 지연 시간으로 추정하는 기본 기술입니다. 이 기술은 바퀴 변위와 IMU 각속도를 통합하고, GNSS, LiDAR 또는 카메라에서 얻은 절대 관측값을 사용하여 드리프트를 억제합니다. 센서를 추가하기 전에 동작 모델, 타임스탬프, 좌표계 및 공분산을 정확하게 설정하는 것이 정확도와 반복성을 결정하는 핵심입니다.
정밀한 바퀴 회전이 위치 오차를 제거합니까?
미끄러짐 및 바퀴 또는 장착 형상 오차는 여전히 남아 있습니다.
센서 정밀도와 모션 모델의 유효성은 별개의 문제입니다.
댓글
먼저 로그인해 주세요.
아직 데이터가 없습니다.