LIO-SAM 맨땅에 머리박기 (ROS1 noetic)
분야
- *프로그래밍/소프트웨어 개발**
대상자
ROS 개발자, LIO-SAM 설치 및 실행에 어려움을 겪는 초보자
난이도: 중급~고급 (ROS noetic 버전 및 라이브러리 호환성 문제 해결 필요)
핵심 요약
- * ROS Noetic 버전을 필수적으로 사용해야 하는 환경에서 LIO-SAM 설치 및 실행
- * OpenCV 4.x 버전 호환 문제 해결을 위해
opencv2/opencv.hpp
로 수정 - * PCL 라이브러리 C++14 표준 지원을 위해
CMakeLists.txt
수정 - * Ouster 라이다 데이터 처리 시
is_dense
값 필터링을 통해 NaN 값 제거
섹션별 세부 요약
- ROS Noetic 설치 및 환경 설정
- Ubuntu 20.04 기반으로 ROS Noetic 설치 필수 (Ubuntu 18.04 호환성 문제 발생)
lsb_release
패키지 미설치 시apt
명령어 오류 발생 (부팅 USB 재사용 권장)- 환경 변수 설정:
source /opt/ros/noetic/setup.bash
및.bashrc
에 등록 - 작업공간 생성:
mkdir -p ~/catkin_ws/src
및catkin_make
실행 (빌드 결과 확인)
- LIO-SAM 설치 및 빌드 문제 해결
ros-noetic-navigation
,ros-noetic-robot-localization
패키지 설치 필수- GTSAM 라이브러리 설치 시 버전 충돌 발생 (추후 빌드 문제 유발 가능성)
- OpenCV 3.x → 4.x 호환성 문제:
utility.h
파일의#include
→opencv2/opencv.hpp
수정 - PCL C++14 표준 지원:
CMakeLists.txt
의-std=c++11
→-std=c++14
변경 imageProjection.cpp
에서is_dense
값 NaN 필터링 처리 (라이다 데이터 문제 해결)
- 데이터셋 테스트 및 실행
Park Dataset
,Campus Dataset
,Rooftop Ouster Dataset
사용Campus
데이터셋:imuTopic
→imu_correct
변경 및extrinsicRot
/extrinsicRPY
단위행렬 설정Rooftop Ouster Dataset
:sensor
→ouster
,N_SCAN
→32
,Horizon_SCAN
→1024
설정rosbag play
명령어로 데이터셋 재생 및rviz
시각화 확인
- 센서 데이터 수집 및 설정
- Ouster LiDAR 드라이버 설치:
roslaunch ouster_ros sensor.launch
실행 - IMU 센서 설정:
pointCloudTopic
→ouster/points
,imuTopic
→imu/data
변경 is_dense
값 필터링: NaN 값을 0으로 대체 (라이다 데이터 정밀도 개선)
결론
- *ROS Noetic 환경에서 LIO-SAM 설치 및 실행 시 주요 고려사항:**
- 버전 호환성 체크: ROS Noetic 및 라이브러리 버전을 공식 문서에 명시된 범위 내 유지
- 코드 수정 필수: OpenCV 4.x, PCL C++14 표준 호환을 위해
utility.h
및CMakeLists.txt
수정 - 데이터 전처리: 라이다
is_dense
값 필터링을 통해 NaN 오류 방지 - 실무 팁: 센서 데이터 수집 시
rviz
시각화 및rosbag play
테스트로 문제 조기 발견 권장
- *실무 적용 시 주의사항**:
- Ubuntu 20.04 기반 시 lsb_release
패키지 설치 필수
- 빌드 오류 발생 시 catkin_make
재실행 및 코드 수정 검토
- 데이터셋 테스트 후 센서 설정을 동일하게 적용하여 일관성 유지