자료실
REFERENCE
기술 자료
포인트클라우드의 이해
라이다와 ToF 카메라가 내놓는 결과는 사진이 아니라 점군(point cloud)이다.
수만~수백만 개의 점이 각각 3차원 좌표를 가지고 공간에 흩어져 있는 데이터다.
처음 라이다를 다루면 이 데이터를 어떻게 읽고 저장하고 처리해야 하는지부터 막히기 쉽다.
이 글은 점군의 구조와 다루는 방법을 기초부터 정리한다.
점 하나에는 무엇이 들어 있나
가장 기본은 X, Y, Z 좌표다. 여기에 센서에 따라 다음 값이 붙는다.
- 세기(intensity) · 반사율 — 돌아온 빛의 세기. 차선 도색, 표지판처럼 반사율이 높은 표면을 구분하는 데 쓰인다.
- 타임스탬프 — 점이 측정된 시각. 회전형 라이다는 한 바퀴를 도는 동안 점마다 시각이 다르므로, 움직이는 차량에서는 이 값으로 왜곡을 보정한다.
- 채널 번호 — 몇 번째 레이저에서 나온 점인지. 지면 분리 등에 유용하다.
- 리턴 순서 — 듀얼 리턴 센서에서 첫 번째 반사인지 마지막 반사인지.
- 색상(RGB) — 카메라와 융합하거나 RGB-D 카메라를 쓸 때 붙는다.
정리된 점군과 정리되지 않은 점군
ToF 카메라나 일부 디지털 라이다는 점을 화소 격자처럼 행·열로 정리해 내보낸다(organized).
이웃한 점을 바로 찾을 수 있어 처리가 빠르고 영상 처리 기법을 그대로 쓸 수 있다.
회전형 라이다의 출력은 보통 순서 없는 점의 목록(unorganized)이며, 이웃 탐색을 위해 KD-트리나 복셀 격자 같은 자료 구조를 따로 만든다.
좌표계
점군의 좌표는 기본적으로 센서 좌표계(센서 중심이 원점)다. 여러 센서를 합치거나 지도 위에 올리려면 좌표계를 변환해야 한다.
| 센서 좌표계 | 센서 자체 기준. 원시 데이터가 이 좌표로 나온다. |
|---|---|
| 차량 · 로봇 좌표계 | 플랫폼 기준. 센서 장착 위치·각도(외부 보정값)로 변환한다. 센서가 여러 대면 모두 이 좌표계로 모은다. |
| 지도 · 세계 좌표계 | 고정된 기준점 기준. 위치 추정(로컬라이제이션)이나 GNSS/INS 값으로 변환한다. 매핑·측량은 최종적으로 이 좌표계를 쓴다. |
변환은 회전 행렬과 이동 벡터로 이루어진 4×4 변환 행렬로 표현하며, 변환 순서를 틀리면 점군이 어긋난다.
오른손 좌표계 기준으로 X가 전방, Y가 좌측, Z가 위쪽인 규약이 로봇 분야에서 흔하지만 센서마다 다를 수 있으니 데이터시트를 확인해야 한다.
파일 형식
| 형식 | 특징 |
|---|---|
| PCAP | 라이다가 내보낸 네트워크 패킷을 그대로 녹화한 것. 센서 원본에 가장 가깝고 재생 도구가 있지만, 점군으로 쓰려면 변환이 필요하다. |
| PCD | PCL(Point Cloud Library)의 표준 형식. 필드 구성을 자유롭게 정할 수 있고 ROS 생태계에서 널리 쓰인다. |
| PLY | 3D 그래픽 분야의 범용 형식. 색상·법선을 담기 좋고 대부분의 뷰어가 연다. |
| LAS / LAZ | 측량·항공 라이다 표준. 분류 코드, 좌표계 정보를 담으며 LAZ는 압축본이다. |
| ROS bag | ROS 메시지를 시각과 함께 녹화한 것. 여러 센서를 동기 상태로 다시 재생할 수 있다. |
기본 처리 흐름
- 전처리 — 범위 밖의 점, 센서 자체 반사, 노이즈 점을 걸러낸다. 통계적 이상치 제거 필터가 흔히 쓰인다.
- 다운샘플링 — 복셀 격자(예: 5 cm)마다 대표점 하나만 남겨 데이터 양을 줄인다. 실시간 처리에는 거의 필수다.
- 지면 분리 — 평면 피팅(RANSAC)이나 링 기반 기울기 판단으로 지면 점을 떼어 낸다. 이후 남는 점이 장애물 후보다.
- 군집화 — 가까운 점끼리 묶어 물체 단위로 만든다(유클리드 군집, DBSCAN 등).
- 분류 · 추적 — 군집의 크기·형태·움직임으로 차량·사람 등을 구분하고, 프레임 간에 같은 물체를 연결해 속도를 얻는다. 최근에는 점군을 직접 입력받는 신경망(PointPillars 등)이 이 단계를 대신한다.
- 정합(registration) — 여러 프레임이나 여러 센서의 점군을 하나로 맞춘다. ICP, NDT가 대표적이며 SLAM과 매핑의 핵심이다.
도구
C++ 라이브러리 PCL, 파이썬 Open3D가 가장 널리 쓰이고, 눈으로 확인할 때는 CloudCompare(무료 뷰어·편집기)나 각 제조사가 제공하는 뷰어를 쓴다.
ROS 환경이면 RViz로 실시간 점군을 볼 수 있다.
처음 다룰 때 자주 겪는 문제
- 점군이 기울어져 보인다 — 센서 장착 각도가 보정되지 않은 것. 외부 보정값을 적용한다.
- 움직일 때 물체가 늘어지거나 겹친다 — 한 바퀴 회전 중 차량이 이동한 왜곡(motion distortion). 점별 타임스탬프와 자세 정보로 보정한다.
- 가까운 곳에 점이 몰리고 멀리는 듬성하다 — 라이다의 본래 특성. 거리별로 다른 복셀 크기를 쓰거나 알고리즘이 이를 감안하도록 한다.
- 유리 · 검은 물체가 안 보인다 — 반사가 돌아오지 않는 재질. 다른 센서(레이더·초음파)로 보완한다.
| 이전글 | 라이다 사양표 읽는법 |
|---|---|
| 다음글 | 센서 캘리브레이션과 시간동기 |
