라이다 포인트 클라우드의 segmentation
을 위한 self-supervised 학습 접근법을 제안해 (아래 그림)annotation
과정PointRay
를 이용하여, initial map에서 movables를 지웁니다.라이다 프레임의 semantic segmentation
을 위한 self-supervised learning 접근 방법을 제시 이런 복잡한 환경에서도 위 2가지의 성능을 더 견고하게 만들려면, 각각의 알고리즘이 semantic information를 사용할 수 있어.
PointMap
: ICP 기반의 3D SLAM 방법으로 서버에 pointcloud 맵을 구축하거나 localize할 수 있고, PointRay
알고리즘: 레이-트레이싱(frustum 형태)을 사용하여, 서버의 pointcloud 맵에서 occupancy 확률을 추정해.바닥
영구적인 것(벽처럼 절대 움직이지 않는 객체들의 포인트)
단기(사람처럼 단기적으로 움직이는 것)
장기(세션 사이에 재배치될 수 있지만 여전히 있는 가구 같은 장기적으로 움직이는 것)
우리는 localization algorithm에 영구적인 것과 바닥 포인트만을 사용.
포인트 클라우드와 normal을 맵으로 사용
우리는 이 노멀을 서버 맵에 직접 업데이트하는데, 이때 '구면 좌표 neighbor' 방식을 사용
여기서 '구면 좌표 neighbor'이란, 어떤 점 주변의 다른 점들을 이 구면 좌표를 기반으로 식별하는 방식
lidar 센서로부터 얻은 3D 포인트 클라우드 데이터에서 주변 점들을 찾아내기 위해
사용점들의 normal 벡터(표면의 방향을 나타내는 벡터)를 계산하거나 업데이트할 때 유용
normal 벡터는 표면의 형태를 이해하고, 객체 간의 경계를 식별하는 데 필수적
각 점의 위치를 더 잘 이해하기 위해, 주변 점들과의 관계를 구면 좌표계를 통해 계산하고 업데이트
pose graph 를 유지하지 않고, lidar frame-맵 정렬에만 의존
포즈 그래프는 로봇이 이동하면서 취한 포즈(위치와 방향)들을 노드로 하고,
이 포즈들 사이의 상대적인 움직임을 edge로 나타내는 그래프
새로운 라이다 데이터 프레임이 우리가 이미 가지고 있는 3차원 map에 어떻게 맞는지를 보며 내 위치를 추정
단기적이고 장기적으로 움직이는 물체들을 구분
하는 개념 도입ICP 기반 SLAM 알고리즘을 설계
pointcloud frame에서 선택된 포인트
와, 서버의 map pointcloud에서의 해당 포인트
를 서로 매칭시키는 과정600개의 랜덤 포인트만을 선택하고, 각 포인트에 대해 가장 가까운 이웃을 찾아 매칭
이는 plane에 가깝게 분포하는 포인트들이 더 신뢰할 수 있는 매치를 제공한다는 가정하에 설정
특히 건축 환경과 같이 평면적인 특성이 두드러진 곳에서 효과적으로 사용
서버에 저장된 맵 point cloud는 sparse 3D grid(hashmap으로 구현된)와 짝
을 이룸각 포인트(또는 voxel)는 키
로 사용되며, 관련 메타데이터(예: 법선 벡터, 점수, 포인트의 실제 좌표)는 값
으로 저장x_origin = (0,0,0) ∈ R3
과 셀 크기 dlmap = 3cm
에 의해 정의하나의 점
+ 점의 법선
+ score s ∈ [0, 2] ⊂ R
각 voxel에서 처음 기록된 점
을 계속 유지 구면 좌표에서 반경 neighbors을 사용
스캔의 3개 연속 라인의 점들
을 포함하도록 1.5 × θres
(센서 각도 해상도)의 반경을 사용우리는 가장 높은 점수를 가진 법선을 선택
(법선마다 점수가 있음)법선이 라이다 센서를 향하도록 방향을 조정
라이다가 대상 표면을 '정면으로 바라보고(facing)' 있을 때
라이다로부터 대상 표면까지의 거리가 가까울 때 더 높아짐
θ는 법선과 라이다 광선 사이의 각도
θ₀는 라이다가 대상 표면을 바라보고 있다고 간주되는 최소 각도(74도나 됨)
휴리스틱 score(0~2점 사이)
는 두 가지 아이디어를 전달지도상에 존재하는 특정 위치가, online 세션 내내 점유되지 않았다면, 지도상의 특정 위치는 이동 가능한 객체에 속한다는 의미
서버 global 지도를 프레임의 구면 좌표에 투영하여, 라이다 광선을 모델링하는 방법을 사용
movable 확률은 프레임 점들과 지도 점들 간의 거리 차이에서 유추
잘라진 맵의 각 점의 반지름 ρ
을 해당 lidar frame 프러스텀의 깊이 ρ0
과 비교할 수 있습니다. 우리는 극단적인 입사 값에 대해 업데이트하고 싶지 않지만, 테이블 같은 경우는 (표면이 거의 라이다 광선과 평행하므로) 법선이 수직일 때만 업데이트
p_i^ni = 1
(free space)을 할당, ni가 1만큼 증가모든 세션에 걸쳐 이동하지 않는 것으로 남아 있는 영구적인 점들을 분류
지면 라벨도 추가
세션 정렬
annotation
과정PointRay
를 이용하여, initial map에서 movables를 지웁니다.초기 지도를 알고리즘의 시작점으로 사용
합니다. 초기 지도는 지면과 영구적인 점들의 수신자가 될 것 τ_refine = 0.9보다 높은 이동 가능 확률을 가진 점들을 제거
이 정제된 지도는 이 시점부터에서 초기 지도를 대체하며, 모든 미래 세션에서도 이 정제된 지도를 씁니다.
nearest-neighbor interpolation
을 통해 그 annotaiton을 프레임으로 전송하는 것pmov > τshort인 경우 shortT
, pmov < τlong인 경우 longT
로 두 남은 클래스에 매핑(단계 5). 위치 추정을 위해, 우리는 또한 지도에 포함되지 않은 장기 이동 가능 물체도 제거
초당 2프레임만 처리할 수 있다는 사실
을 강조하고 싶습니다. 온라인 세션 동안, 우리는 위치 추정 알고리즘으로 PointMap을 사용