자율주행

Day 44: 3D SLAM 실습 (LiDAR 데이터 활용)

Tech Knowledge Note 2025. 10. 10. 21:00
반응형

1. 서론

이전 글에서는 2D SLAM 실습 (ROS bag 파일 사용)을 진행하며, 평면 지도 작성 과정을 살펴봤습니다.
이번 글에서는 한 단계 발전된 형태인 3D SLAM 실습을 진행해보겠습니다.

3D SLAM은 단순한 평면(2D) 지도가 아닌, 고도(Height) 정보까지 포함한 입체 공간을 인식하고 매핑합니다.
LiDAR 센서를 활용하면 이러한 3차원 환경 정보를 정밀하게 수집할 수 있습니다.

3D SLAM 실습 (LiDAR 데이터 활용)


2. 실습 목표

  • LiDAR 데이터를 이용해 3D SLAM을 실행하고 지도 작성
  • RViz를 통해 3D 포인트 클라우드 기반 지도를 시각화
  • 2D SLAM과의 차이를 비교

3. 실습 환경

(1) 권장 시스템

  • Ubuntu 20.04 + ROS Noetic
  • Google Cartographer 설치 완료
  • LiDAR 데이터셋 또는 실시간 센서 연결 가능

(2) 필요 패키지

bash
 
sudo apt install ros-noetic-cartographer-ros ros-noetic-tf2-eigen
sudo apt install ros-noetic-velodyne-simulator ros-noetic-velodyne-pointcloud

(3) 데이터 준비

테스트용으로 Google Cartographer에서 제공하는 3D Demo 데이터를 사용할 수 있습니다.

bash
 
cd ~/catkin_ws/src/cartographer_ros
roslaunch cartographer_ros demo_backpack_3d.launch

또는 Velodyne LiDAR 시뮬레이션 데이터를 이용할 수도 있습니다.

bash
 
roslaunch velodyne_pointcloud VLP16_points.launch

4. 3D SLAM 실행 단계

(1) Launch 파일 실행

Cartographer의 3D SLAM 설정 파일을 실행합니다.

bash
 
roslaunch cartographer_ros demo_backpack_3d.launch
  • RViz 창이 열리면, LiDAR 스캔 포인트(3D 점 구름)가 실시간으로 표시됩니다.
  • 로봇이 이동할수록 포인트들이 정렬되며, 입체적인 지도가 형성됩니다.

(2) ROS bag 파일 재생 (옵션)

이미 저장된 LiDAR 데이터를 이용할 수도 있습니다.

bash
 
rosbag play <bag파일경로> --clock
  • --clock 옵션을 통해 ROS의 시간 동기화를 유지
  • 실시간 LiDAR 센서 없이도 동일한 실습 가능

(3) RViz 시각화

RViz에서 다음 토픽을 활성화합니다.

  • /points2 : LiDAR의 3D 포인트 클라우드
  • /trajectory_node_list : 로봇의 경로
  • /submap_list : 부분 맵 (Submap) 시각화

💡 팁: View → Orbit으로 변경하면 3D 시점에서 맵을 자유롭게 회전하며 확인할 수 있습니다.


5. 결과 분석

(1) 3D 맵 구조

  • 벽, 기둥, 천장 등 입체 구조가 점 구름으로 표현됩니다.
  • 2D SLAM보다 훨씬 현실적인 공간 인식 가능

(2) 오차 보정

루프 클로징(Loop Closing)이 활성화되어 있으면,
지도의 왜곡이 자동으로 교정되며 완성도 높은 3D 맵이 생성됩니다.

(3) 지도 저장

bash
 
rosrun map_server map_saver -f ~/3d_slam_map

결과물은 .pbstream 또는 .ply 형태로 저장되어 3D 뷰어에서 열람할 수 있습니다.


6. 2D SLAM과 3D SLAM의 비교

항목 2D SLAM 3D SLAM
데이터 평면 좌표(x, y) 공간 좌표(x, y, z)
센서 2D LiDAR 3D LiDAR
지도 2D Occupancy Grid 3D Point Cloud
정확도 높음 매우 높음
계산량 중간 높음
활용 분야 실내 로봇, 경로 탐색 자율주행, 드론 매핑, 산업용 로봇

➡ 3D SLAM은 계산량이 많지만 정밀도와 현실 표현력에서 월등히 우수합니다.


7. 실습 팁

1. LiDAR 데이터 품질 확인
포인트 간격이 균일하지 않으면 맵 정합이 흔들릴 수 있습니다.

2. CPU/GPU 리소스 확인
3D SLAM은 실시간 연산량이 많으므로, GPU 사용 시 훨씬 안정적입니다.

3. RViz 시점 조정
시각화 시 “Orbit” 또는 “Top-down Orthographic” 모드를 병행하면 입체 구조 이해가 쉬워집니다.


8. 마무리

오늘은 LiDAR 데이터를 활용한 3D SLAM 실습을 진행했습니다.
3D SLAM은 단순한 평면 지도에서 벗어나, 실제 공간의 구조를 입체적으로 인식하고 표현할 수 있는 기술입니다.

이 실습을 통해 여러분은 LiDAR-SLAM의 원리와 작동 과정을 직접 체험할 수 있으며, 향후 자율주행·드론·로봇 내비게이션 분야로 확장할 수 있는 기초를 마련하게 됩니다.


반응형

🔜 다음 글 소개

다음 글에서는 [Day 45: Visual vs LiDAR SLAM 비교]를 다룹니다.
👉 카메라 기반 SLAM(Visual SLAM)과 LiDAR 기반 SLAM의 장단점을 비교하고, 실제 적용 분야에 따른 선택 기준을 정리하겠습니다.


반응형