라이다 : 적외선 레이저를 쏘아 반사되어 돌아오는 시간을 측량하여 거리를 잴 수 있는 센서
< 라이다 센서 종류 >
2D 라이다 : 2차원 평면을 바탕으로 360 도를 스캔하는 라이다
3D 라이다 : 3차원 평면을 측정하는 라이다 -> 3D Lidar의 데이터를 Point Cloud라 부른다.
Point Cloud : 3차원 공간 상에 퍼져 있는 여러 포인트(Point)의 집합
-> "점들이 구름처럼 퍼져 있는 형태로 표현된 데이터"라고 해서 이렇게 이름이 지어지게 되었다.
< 측정 방법에 따른 3D Lidar 종류들>
- Mechanical Scanning 방식 (기계식 라이다) : 내부에 모터의 회전을 통해서 보통 360도의 FOV(Field Of View)를 만들어 내는 방식
-> 발광부와 수신부가 직접 회전하는 방식
-> 진동에 의한 내구성이 약하다
-> 발광부와 수신부의 개수에 따라 채널이 제한되고, 크기가 커진다.
- Solid State Scanning 방식 (고정형 라이다) : 특정한 반사물질을 이용해서 측정하는 방식(주로 거울 사용)
-> 두번째 반사 물질이 여러 각도로 빛을 퍼지게 만들어주어 여러 채널을 갖는 효과를 만들어 준다.
->회전하는 기계식 컴포넌트들(모터와 같은 것)이 없고, FOV는 줄어들기 때문에 더욱 저렴하다
-> 복잡한 작동 방식
- MEMS 라이다 : 전압에 따라 기울기가 달라지는 마이크로 미러(거울)을 사용하여 스캔하는 방식
-> 다차원으로 레이저 빔을 전달하기 위해 다수의 거울을 계단식으로 배열하는 구조
-> 반사물질이 상/하, 좌/우 반복운동을 하고, N개의 Laser를 사용할 수 있어 데이터 취득에 더욱 용이하다
-> Solid-state Lidar와 비슷하지만 두번째 반사 물질을 제거한 형태이다
- 플래시 라이다 (Flash Lidar) : 광학 플래시를 사용하는 표준 디지털 카메라와 매우 유사하다. 한 개의 대면적 레이저 펄스가 전방 환경에 빛을 비추고, 그 레이저에 가까이 위치한 광검출기의 초점면 어레이가 후방산란 광을 포착
- OPA(Optical phase array) Lidar : 위상 배열 레이더와 유사하며, 광학 위상 배열이 렌즈를 통과하는 빛의 속도와 파면의 형상을 제어하면서 빔을 투사하여 물체를 인식하는 방식의 라이다
-> 즉, 광학 위상 변조기가 렌즈를 통과하는 빛의 속도를 제어하여 전방으로 나가는 빛의 파면 형상을 제어하고, 빔을 여러 방향으로 쏘아 스캔하는 방식
-> 시야가 좁다.
- FMCW(Frequency-modulated continuous wave) 라이다 : 기본적으로 라이다는 광 펄스를 이용하지만 FMCW 라이다는 주파수 변조 연속파를 발사하고 돌아오는 파형으로 환경을 인식하는 방식의 라이다
-> 주파수 변조 레이저 광의 짧은 chirp 신호의 위상과 주파수를 활용하여 거리와 속도를 측정하는 방식
=> 솔직히 이런 방식의 라이다들이 있다는 것만 알지 모두 다 정확한 원리까지는 잘 모르겠다.
필자의 경우 2D Lidar와 Solid-State 방식의 3D Lidar를 사용해봤다.
4D 라이다 : 3차원 평면뿐만아니라 해당 물체에 대한 속도 값까지도 측정해서 데이터 값으로 주는 라이다
-> 최근 많이 개발되고 있는 라이다의 형태이다.
라이다의 장점
- 센서가 추정한 3D 구조가 타 센서에 비해 훨씬 정확한 편인다
- 센서마다 다르지만, 자율주행용 LIDAR의 경우 ~100m 정도 거리까지 커버가 가능하다.
- 특정 적외선 파장을 사용하기 때문에 빛의 파장 간섭 등이 잘 일어나지 않는다.
- Reflectance( 쏜 레이저와 돌아온 레이저의 신호 세기를 비교하여 반사량을 계산 가능)
-> reflectance를 이용하여 자율주행에서는 차선이나 횡단보도 패턴을 읽을 수도 있다.
라이다의 단점
- 비싸다(~몇 천만원 단위)
- Resolution의 한계
-> LIDAR 이미징 센서는 아직 카메라와 비교했을 때 센서 resolution이 많이 부족함 - 날씨 영향을 받는다
-> 눈이 오거나 비가 올때 레이저가 눈 / 비 에 막히기 때문에 작동하기 어렵다. - Solid-state의 경우 360도 방향을 커버하기 위해 여러 개의 센서가 필요하다
<Lidar 살때 고려해야 할 것>
- wavelength(파장) : 실외에서 라이다를 사용할 경우 태양의 광연 대역이 905nm ~1550nm 이기 때문에 라이다의 파장이 이 범위 안에 들어가는 라이다를 사용해야한다. -> 라이다 파장이 높아 질수록 가격이 기하 급수적으로 올라간다.
- FOV(Field Of View) : 라이다가 측정할 수 있는 시야각의 범위가 어느정도인지 데이터 시트를 참고해야한다.
- 작동 전압 : 데이터 시트 상에서 몇 V에서 작동되는지 확인해야한다. 왜냐하면 작동 전압이 너무 높을 경우 DC-DC 컨버터 등을 통해서 해당 전압을 맞춰줘야하는 번거러움이 발생하기 때문이다.
- Default Baud rate(bps) : 해당 라이다의 데이터 시트 상에 표기된 bps를 따라가는 것을 권장한다.
-> bps : "측정한 데이터를 얼마나 빠르게 받을 것인가"를 나타내는 특성으로 데이터 측정 속도와는 상관없이
"측정된 데이터를 몇 초간격으로 전송할 것인가"를 설정하는 것이라고 생각하면 이해가 될 것이다. - 통신 방식 : 통신 방식이 저가의 경우 UART 통신을 이용하는 경우가 많고, 고가의 경우 보낼 데이터의 양이 많고 안전하게 해당 데이터들을 전송하기 위해 랜선을 통해서 데이터를 받는 이더넷(Ethernet) 방식의 통신 방식을 가지는 것들이 많다.
자신이 구동시키고자 하는 보드가 해당 통신 방식을 지원하는지를 체크해봐야 한다. - 해당 센서의 라이브러리 제공 여부 : 라이다 제조사에서 해당 라이다에 관한 라이브러리들을 기본적으로 제공하기는 하지만 해당 라이브러리가 오래된 경우 잘 적용이 안되는 경우가 다반사다 그리고 내가 이 라이다를 사용하고자하는 보드에 적용된 라이브러리가 있는지도 더블 체크해봐야한다.
=> Github를 적극적으로 이용해서 해당 라이다를 사용한 프로젝트들을 찾아보는 것을 추천한다.
-> 필자의 경우 ST보드에 라이다 센서를 적용하려했지만 보드 버전에 맞는 라이브러리가 없어서 다른 예시 라이브러리를 Github를 통해서 분석하고 User Manual을 여러번 읽어가면서 힘들게 구현한 적이 있다. 물론 그 과정에서 많은 공부가 되기도 한다. - Resolution (해상도) : 한개의 레이저 포인트가 몇 도 간격으로 뿌려지고 있는지를 나타내는지를 알 수 있는 성질
-> 해상도가 작을 수록 좋다 왜냐하면 거리가 멀어질 수록 레이저 포인트 간의 간격은 계속해서 넓어져서 정밀한 분석이 불가한 경우도 있기 때문이다. - 측정 거리 : 몇 m까지 측정 가능한지 사용하는 목적에 알맞게 선택해야 한다. 보통 10m라고 나와 있어도 거리가 멀어짐에 따라 정확도가 떨어지기 때문에 데이터 시트 상에 거리에 따른 오차 범위가 어느 정도가 나는지 기입되어 있다.
- 측정 속도 or 스캐닝 주파수 : 몇 HZ(주파수 = Frequency)로 데이터 시트 상에 기입되어 있다. 한번 스캔하는데 걸리는 시간을 Hz로 나타낸 것으로 한 번 스캔하는데 정확하게 몇 초가 걸리는지 알고싶으면 1/주파수 하면 걸리는 시간을 알 수 있다.
=> *** 추가로 CheckSum(해당 데이터가 올바른 값인가를 검사하는 값) 검사를 무조건 해줘야한다. 왜냐하면 라이다 데이터들이 항상 올바른 값들만 배열로 들어오는 것이 아니라 노이즈가 낄 수도 있고, 측정된 데이터와 측정되지 않은 데이터(측정할 수 있는 범위를 넘는 등)가 반전되어 배열에 들어오는 경우 또는 데이터가 밀리는 경우 등이 많이 발생하기 때문이다.
Payload : 라이다의 데이터 값들을 담은 배열
-> 구성형태 : Header + Payload(실제 측정된 데이터들을 담은 배열) + CheckSum
=> 똑같은 상황에서 여러번 측정한 라이다 데이터 값이다.
=> CheckSum 검사를 안한 경우 위의 사진과 같이 잘못된 데이터들이 같이 들어오게 된다.
'STM32 정리' 카테고리의 다른 글
3D Lidar (CygLidar) (0) | 2025.01.13 |
---|---|
2D Lidar (Slamtec rplidar A1M8) (0) | 2025.01.13 |
Gobilda 엔코더 모터와 Roboclaw 모터 드라이버 (0) | 2025.01.12 |
모터 (0) | 2025.01.12 |
블루투스(HC-06) (0) | 2025.01.12 |