이 것이 라이라의 기본적인 원리이다.
레이저가 발사하고 복귀한 시간을 가지고 우린 거리를 구할 수 있다.
거리 = 시간 / 2 * 빛의 속도 - TOF
이렇게 구한 거리를 가지고 Point Cloud를 만들 수 있고, 그 정보를 ROS를 통해 Python이나 matlab에서 사용하고 있다.
우리는 32채널 라이다를 사용한다.
여기서부터 라바콘 인지에 대한 설명
각종 파라미터 들이다
roi - 내가 관심 있는 지역의 (x 시작 , x 끝, y 시작, y 끝, z 시작, z 끝 )이다.
NumClusterPoint는 몇 개 이상의 포인트가 모여야 하나의 클러스터로 보겠다는 뜻이다.
시뮬레이션에선 64채널 라이다를 사용하였으므로 'OS1Gen1-64'를 썼으나 실 사용에선 32로 바꾸고, 옆에 있는 포인트는 수평 방향으로 몇개를 사용할 것인지 이다.
rosReadXYZ에서 라이다 데이터를 받을 때 차량이 이동하는 변위를 imu로 계산하여 적절히 계산하여 준다.
포인트 클라우드!
전처리도 이러한 방식으로 진행하였다.
여기서 0.3은 최소거리로, 각 점이 0.3m마다 연결되어있어야 하나의 클러스터로 본다는 뜻이다.
그래서 여기서 아까 지정해준 NumClusterPoints 개수가 넘는 cluster 들만 인정해준다.!
이렇게 하여 전방에 있는 라바콘을 인지하였다.
최소 거리가 2m 인 경우 전부 하나의 cluster로 본다.
최소 거리가 0.5m인 경우 애매하게 나눠진 것을 볼 수 있다.
0.05m로 나눈 경우이다. 이제 거의 모든 객체를 분할하였다. 또한 그러면서 많은 물체들이 사라지기도 하였다.
라이다 딥러닝
Pre-trained(사전 학습 된) 네트워크를 가져와서 사용합니다.
네트워크는 Convolution으로 이루어진 이미지 네트워크와 비슷하며 Point Cloud 의 X,Y,Z좌표, Intensity, 거리 값이 들어갑니다.
Pre-trained 모델 사용 이유
1. 데이터 부족
2. 학습 리소스 부족
결과는 처참했습니다.....
차량도 제대로 잡지 못하고, 배경을 차라고 잡기도 하고...
64채널 라이다가 아니라서 그런 것 같네요 ㅎ....
이건 gazebo에서 진행한 segmentation인데.... 하필 intensity 데이터를 받지 않아서 할 수 있는게 없네요...
'자율주행 자동차 > 인지' 카테고리의 다른 글
Python Lidar - Morai와 연동하여 clustering하기 - 준비 중 (0) | 2024.07.30 |
---|---|
Lidar Point Cloud Segmentation - matlab (0) | 2024.07.02 |
NVIDIA의 생성형 AI를 통한 End to End 자율주행 (0) | 2024.06.30 |
차선, 정지선 Detection (0) | 2024.05.08 |
차선 인지 발표 준비 (0) | 2024.04.29 |