LiDAR
: Light Detection and Ranging
근방에 있는 장애물을 탐지한다고 보면 된다. 레이저를 쏘고 물체에 반사되어 돌아오는데에 걸리는 시간을 계산하며 거리를 측정한다.
LiDAR는 일반적으로 Point Cloud 형식으로 값을 반환한다고 한다.(x, y z)
Point Cloud는 다음과 같이 레이저를 쏴서 물체의 부딪힌 부분에 점이 생기는 방식으로 만들어진 데이터이다.
3차원 공간 상에 보통 생기기 때문에 3차원 좌표로 Point Cloud를 표현한다.
그렇기 때문에 2D로 표현되는 이미지와 다르게 Point Cloud는 3D로 표현이 된다.
이런 데이터 형식을 다루기 위한 라이브러리로 PCL_Point Cloud Library 가 있다.
Point Cloud 데이터 다루기
1.
pcl-python
•
Python으로 작성된 PCL(Point Cloud Library)의 바인딩이다
•
PCL은 3D 포인트 클라우드 데이터 처리 및 시각화를 위한 라이브러리이다
•
PCL 라이브러리의 기능을 Python에서 사용할 수 있도록 하는 인터페이스를 제공한다
•
포인트 클라우드 데이터를 읽고 저장하고, 필터링하고, 특징을 추출하고, 시각화할 수 있다
1.
rviz
•
ROS에는 Rviz라는 멋진 툴이 있다. 이는 3차원에서 시각화를 도와주는 놈이다.
•
시각화 도구로, ROS 시스템에서 다양한 유형의 데이터를 시각화하기 위해 사용된다.
•
로봇의 센서 데이터, 로봇 모델, 토픽 메시지, 경로 등을 시각화할 수 있다,
•
GUI 기반으로 동작하며, 사용자가 데이터 시각화를 구성하고 조작할 수 있는 다양한 기능을 제공한다.
•
데이터를 수정하여 원하는 곳에 장애물을 설치하거나 뺄수도 있다.
1.
rosbag
•
데이터 레코딩 및 재생 도구
•
ROS 시스템에서 생성된 데이터를 기록하고, 저장된 데이터를 다시 재생하고, 데이터를 분석하고 검증할 수 있다.
•
데이터를 .bag 파일 형식으로 저장하며, .bag 파일은 ROS 메시지 데이터를 포함하는 바이너리 파일이다.
BAG 확장자
위에서 언급한 point cloud 데이터는 .bag 확장자 파일로 존재한다.
지금 당장 LiDAR가 없기에 인터넷에 있는 .bag파일을 사용해보려 했다.
해당 링크로 bag파일을 다운 받을 수 있는데 계속 rosbag을 통해 읽으려 했지만 데이터를 읽지 못했다.
여러 시도를 해보았지만 실패하고 나서 다시 찾아보니 bag 파일이 ros1에서 생성된 것이라면 ros2에서 읽을 수 없다는 것.
챠하
그래서 다시 찾아다니다가 OUSTER 홈페이지에서 bag파일이 필요하다면 메일을 달라는 것을 보았고 문의를 해보았으나
ROS2에서 사용할만한 bag파일은 LiDAR를 만드는 회사한테도 없다는 말을 듣고 살짝 충격.
ROS1으로 갈아타야겠다. 생각 도중
우리가 사용할 VLP-16 Puck을 사용하기 쉽게 지원해주는 라이브러리가 ROS에 있었는데 ROS1 버전만 있다.
갈아타야곘다.
Reference