Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

CT-ICP: Real-time Elastic LiDAR Odometry with Loop Closure

저자: Pierre Dellenbach, Jean-Emmanuel Deschaud, Bastien Jacquet, François Goulette · ICRA 2022

라이선스

  • 오픈 액세스
  • 논문: CC BY 4.0

아래 내용은 모두 논문의 라이선스(CC BY 4.0)에 따라 논문 전문을 바탕으로 하며, 그림에는 저자를 표기했습니다.

요약

스캔마다 시작 자세와 끝 자세를 두고 스캔 사이의 도약을 허용하는 스캔-지도 ICP에 고도 이미지 기반 루프 클로저를 더했다. KITTI 리더보드에서 RTE 0.59%, 스캔당 60 ms.

중요한 이유

이 방법은 점 좌표와 점별 타임스탬프만 필요하며, 차량 탑재, Segway 탑재, 휴대형 LiDAR를 하나의 프레임워크 안에서 처리한다. 주행 프로파일 오도메트리는 단일 CPU 스레드에서 스캔당 60-80 ms로 실행되며, 전체 SLAM은 LiDAR 데이터만 사용한다.

문제

회전하는 멀티빔 LiDAR는 움직이는 동안 각 스캔을 기록하므로, 점들을 센서 움직임에 맞게 보정해야 한다. 대부분의 오도메트리 방법은 등속 모델로 스캔을 한 번 디스큐잉하는데, 이는 갑작스러운 방향 또는 가속도 변화에서 실패한다. 한편 매끄러운 궤적을 쓰는 연속 시간 방법은 실제 플랫폼의 고주파로 흔들리는 움직임을 따라가지 못한다.

제안 방법

CT-ICP는 각 스캔을 시작 자세와 끝 자세로 기술하고, 각 점의 타임스탬프로부터 자세를 보간하며(회전은 slerp, 병진은 선형), 시작 자세를 이전 끝 자세 가까이에 두고 가속도를 제한하는 약한 구속 조건과 함께 점-평면 스캔-지도 ICP를 푼다. 로컬 지도는 희소 복셀 격자 안의 조밀한 포인트 클라우드이며(복셀당 최대 20점), 루프 클로저 모듈은 집계된 로컬 지도의 고도 이미지에서 2D 특징을 매칭하고, ICP로 매칭을 정제한 뒤 g2o 포즈 그래프를 최적화한다.

핵심 통찰

  • 스캔의 시작 자세가 이전 스캔의 끝 자세와 달라도 되게 하면, 매끄러운 연속 시간 궤적으로는 표현할 수 없는 고주파 움직임을 흡수할 수 있다.
  • 스캔 내 탄성 왜곡은 원시 데이터에서 중요하다. 이를 등속 디스큐잉으로 바꾸면 RTE가 KITTI-raw에서 0.55%에서 0.79%로, KITTI-360에서 0.45%에서 0.60%로 오른다.
  • 법선과 평면성 가중치는 현재 스캔이 아니라 조밀한 로컬 지도에서 계산되어, 점-평면 잔차에 더 풍부한 이웃을 제공한다.
  • 희소 복셀 지도는 kd-트리의 로그 시간 접근 대신 상수 시간 이웃 접근을 제공하여, 조밀한 지도를 실시간으로 사용할 수 있게 한다.
  • 움직임이 보정된 KITTI 스캔에서는 비교한 모든 방법이 비슷하며, 차이는 보정되지 않은 원시 스캔에서 나타난다.

주요 결과

  • KITTI 오도메트리 리더보드(테스트 시퀀스 11-21): RTE 0.59%, 당시 공개 코드가 있는 방법 중 1위.
  • 정답이 있는 시퀀스의 평균 RTE: 움직임 보정된 KITTI에서 0.53%(60 ms/스캔), KITTI-raw에서 0.55%(65 ms), KITTI-360에서 0.45%(70 ms). IMLS-SLAM, MULLS, pyLiDAR F2M은 KITTI-raw에서 0.71-1.61%, KITTI-360에서 0.68-1.55%이다.
  • KITTI-CARLA(시뮬레이션): RTE 0.09%로, 다른 오도메트리 중 최고인 0.81%보다 낮다. ParisLuco: 1.11%로 IMLS-SLAM의 1.26%보다 낮다.
  • 고주파 움직임 프로파일: Newer College에서 RTE 0.55%(pyLiDAR F2M 2.20%), NCLT 2012-01-08에서 1.17%(pyLiDAR F2M 19.80%)이며, 스캔당 430 ms와 180 ms가 걸린다.
  • 루프 클로저는 ATE를 KITTI-raw 00에서 6.22 m에서 0.66 m로, KITTI-360 00에서 29.87 m에서 1.07 m로, ParisLuco에서 29.16 m에서 9.65 m로 낮춘다. KITTI-CARLA Town01에서는 0.2 m 근처에 머문다(0.21 m에서 0.26 m).
  • 고도 격자 하나를 만들고 매칭하는 데 평균 1.1 s가 걸리며, 루프가 발견되면 포즈 그래프 최적화에 1.2 s가 추가된다.

한계

  • 루프 클로저는 센서 움직임이 대체로 평면적이고 외부 캘리브레이션이 z축을 지면 법선에 정렬할 것을 요구하므로, 지원되는 센서 구성과 움직임이 제한된다.
  • 루프 클로저는 메인 스레드에서 실행되므로(고도 격자당 1.1 s와 포즈 그래프 최적화당 1.2 s), 전체 SLAM은 아직 실시간이 아니다. 저자들은 별도 스레드를 쓰면 실시간이 될 것이라고 밝힌다.
  • 로컬 지도는 슬라이딩 윈도우 방식으로 점을 잊지 않으므로 잘못된 정합이 지도를 오염시킨다. 이를 막는 강인 프로파일은 실행 시간을 늘린다(Newer College에서 스캔당 430 ms, NCLT에서 180 ms).
  • 모든 실험에 사용된 Gauss-Newton 솔버는 손으로 계산한 야코비안을 사용하므로 구속 조건을 바꿀 수 없다. 더 유연한 Ceres 옵션은 실시간 사용을 위해 여러 스레드가 필요하다.
  • 루프 클로저 후보 수(10)는 예상 드리프트에 맞게 조정해야 하며, KITTI-CARLA에서는 루프 클로저 후 ATE가 개선되지 않았다.

분야에 미친 영향

ICRA 2022 Outstanding Paper 최종 후보이며, 인용 수는 301회이다. 논문은 CT-ICP 오도메트리를 C++로 공개하며(github.com/jedeschaud/ct_icp), 이를 공개되고 허용적인 오픈 소스 코드라고 설명한다. 루프 검출과 포즈 그래프 백엔드는 pyLiDAR-SLAM(github.com/Kitware/pyLiDAR-SLAM)에 넣었고, 사용한 데이터셋을 논문이 설명하는 형태로 온라인에 공개한다.

초록

멀티빔 LiDAR 센서는 로봇 공학에서, 특히 자율 주행 차량의 위치 추정과 인식 작업에 점점 더 많이 사용되며, 두 작업 모두 환경의 정밀한 지도를 구축하는 능력에 의존한다. 이를 위해 우리는 CT-ICP(Continuous-Time ICP)라는 새로운 실시간 LiDAR 전용 오도메트리 방법을 제안하며, 새로운 루프 검출 절차를 더해 완전한 SLAM으로 완성한다. 이 방법의 핵심은 스캔 매칭 내의 연속성과 스캔 사이의 불연속성을 결합하여 도입한 것이다. 이를 통해 정합 중 스캔의 탄성 왜곡을 허용하여 정밀도를 높이는 동시에, 불연속성 덕분에 고주파 움직임에 대한 강인성도 높인다.

우리는 이 오도메트리 위에 완전한 SLAM을 구축하며, 고도 이미지 2D 매칭에 기반한 빠른 순수 LiDAR 루프 검출을 사용해 루프 구속을 갖는 포즈 그래프를 제공한다. 방법의 강인성을 보이기 위해 주행 및 고주파 움직임 시나리오에서 KITTI, KITTI-raw, KITTI-360, KITTI-CARLA, ParisLuco, Newer College, NCLT의 일곱 개 데이터셋으로 시험했다. CT-ICP 오도메트리와 루프 검출은 모두 온라인으로 공개되어 있다. CT-ICP는 현재 KITTI 오도메트리 리더보드에서 공개 코드를 제공하는 방법 중 1위이며, 평균 상대 병진 오차(Relative Translation Error, RTE)는 0.59%, 단일 스레드 CPU에서 스캔당 평균 시간은 60ms이다.

링크

  • arXiv 2109.12979: https://arxiv.org/abs/2109.12979
  • DOI 10.48550/arXiv.2109.12979: https://doi.org/10.48550/arXiv.2109.12979
  • PDF: https://arxiv.org/pdf/2109.12979v1
  • 코드: https://github.com/jedeschaud/ct_icp

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.