Raspberry Pi에서 Lidar를 사용하는 방법
자율주행차나 로봇과 근처 물체 사이의 거리를 저렴하면서도 정확하게 측정하는 능력은 해커들에게 어려운 문제입니다. 거리를 아는 것이 장애물 회피의 핵심입니다. 작은 로봇으로 무언가에 부딪히는 것은 사소한 문제일 수 있지만 자율주행차와 같은 큰 로봇의 경우 치명적일 수 있습니다.
장애물 회피를 위한 거리 측정에 대한 관심은 2013년 NASA 샘플 반송 로봇(SRR) 대회에 참가하면서부터 시작되었습니다. 저는 비전 처리를 위해 웹 카메라를 사용했고 측정을 위해 다양한 시각적 기술을 시도했지만 많은 성공을 거두지 못했습니다. 대회에서 두 명의 참가자가 스캐닝 라이더를 사용했는데, 이는 내 관심을 불러일으켰습니다.
LiDAR는 레이저 거리 측정 장치입니다. 이름은 LIght와 raDAR라는 용어의 조합이며 일반적으로 제안되는 것처럼 전신인 "RAdio 감지 및 범위 지정"과 유사한 방식으로 파생된 약어가 아닙니다. Merriam-Webster에 따르면 이 용어는 1963년에 처음 사용되었습니다. LiDAR의 초기 사용 중 일부는 Apollo 13에 의해 구름과 달 표면을 측정하는 것이었습니다. 레이저의 크기가 줄어들면서 군사 목적의 거리 측정기를 포함한 다른 용도가 발견되었습니다.
단일 레이저 빔은 단일 물체에만 범위를 제공할 수 있습니다. 항공기 제어 레이더가 하늘을 통해 빔을 휘두르는 것처럼 스캐닝 라이더는 레이저를 휩쓸고 있습니다. 자율 이동 장치에 LiDAR를 적용하려면 거리 측정의 포인트 클라우드를 제공하기 위해 수직 및 수평으로 넓은 영역을 스캐닝해야 합니다. 이전에 본 것처럼 적외선 센서를 사용하여 비슷한 작업을 수행할 수 있지만 정확도는 레이저만큼 좋지 않습니다.
거리 측정은 여러 가지 방법으로 수행할 수 있지만 두 가지 주요 방법이 사용됩니다. 하나는 레이저 펄스의 비행 시간을 측정하는 반면, 다른 하나는 레이저 빔의 편향 각도를 사용합니다.
기본 레이더와 소나가 어떻게 작동하는지 잘 알고 있습니다. 펄스를 보내고 반환 신호를 수신하는 데 걸리는 시간을 측정합니다. 시간을 빛이나 소리의 속도로 나눈 값을 통해 신호가 나가고 되돌아오는 거리를 알 수 있습니다. 이를 2로 나누어 물체까지의 거리를 구합니다. ToF(Time of Flight) 측정입니다.
빛의 속도로 인해 상황이 까다로워질 수도 있습니다. 컴퓨터 분야의 선구자인 그레이스 "어메이징 그레이스" 호퍼 소장은 빛이 진공에서 나노초 동안 이동하는 거리를 보여주기 위해 11.80인치 와이어 조각을 나눠주었습니다. 로봇을 사용하면 우리가 측정하려는 거리의 크기가 됩니다. 신호가 약 7나노초 내에 반환되기 때문에 펄스만 전송하고 반환 신호 타이밍을 맞추는 미터 미만을 측정하기가 어렵습니다.
이에 대한 한 가지 기술은 진폭이나 주파수를 기준으로 신호를 지속적으로 변조하는 것입니다. 송신 신호와 수신 신호의 위상차는 물체까지의 거리에 비례합니다. 변조를 사용하는 라이더는 센티미터까지 측정할 수 있습니다.
ToF 기반 스캐닝 라이더를 제공하는 상용 공급업체가 많이 있지만 가격은 대부분의 취미 사용자가 지출하는 것보다 약간 높습니다. 상대적으로 새로운 진입자인 PulsedLight는 해커 가격대 내에서 단일 빔 ToF LiDAR를 제공했지만 공급업체는 모두 이월 주문되었습니다.
삼각측량 라이더는 해커들이 수년 동안 사용해 온 샤프 적외선 거리 측정 센서와 동일한 기술을 사용합니다. 송신기는 단일 소스이지만 수신기는 1차원 또는 2차원 수신기 배열입니다. 송신기에서 수신기 요소의 오프셋은 삼각형의 기준선을 생성합니다. 나가는 신호와 돌아오는 신호는 삼각형의 다른 두 변입니다. 단순 삼각법은 기준선에서 객체까지의 거리를 제공합니다.
광학 협회(Optical Society)에서는 거리 측정에 사용되는 이러한 기술과 기타 기술을 설명합니다.
2013년 NASA SRR에 참가할 때 제가 몰랐던 사실은 Neato Robotics가 2010년에 진공청소기 주변을 감지하기 위해 스캐닝 라이더를 사용하는 진공청소기를 출시했다는 것입니다. 이를 통해 로봇은 이전 로봇 진공청소기처럼 장애물에 부딪히는 대신 장애물을 피할 수 있습니다.