成本僅100美元的激光雷達:這個項目教你零基礎DIY

激光雷達能夠幫助機器人快速獲取其周圍環境信息,且具有探測范圍廣、精度高、抗干擾能力強等優勢,是自動駕駛汽車、掃地機器人、倉儲機器人等一系列地面自主移動機器人的重要組成部分。

  • DIY
Image placeholder
管理員 2021-03-06 00:37

從 PCB 到上位機軟件全開源,項目中所有材料均能買到,不怕你做不出來。

55a43f3626d545429b188d8ecd83fa6d.gif

激光雷達能夠幫助機器人快速獲取其周圍環境信息,且具有探測范圍廣、精度高、抗干擾能力強等優勢,是自動駕駛汽車、掃地機器人、倉儲機器人等一系列地面自主移動機器人的重要組成部分。然而,目前工業級激光雷達往往造價高昂,像谷歌、百度造的那些無人車,其激光雷達的造價甚至超過了車輛本身的價值,讓普通人望而卻步。即使是探測范圍僅有 25m 的單線激光雷達,在某寶上也賣到了千元級別。

想入坑自動駕駛卻無法承受激光雷達高昂的價格?這個由俄羅斯的一位 Github 主近期開源的項目也許非常適合你,讓你也能低成本自制激光雷達。

項目地址:
https://github.com/iliasam/OpenTOFLidar

效果演示

我們先來看看該項目制作完成后激光雷達的參數,這也許是大家最關心的問題,畢竟拋開精度談價格都是在耍流氓!

  • 掃描速度:每秒 15 次

  • 分辨率:大約檢測距離的 1%,但不會優于±2 cm

  • 最小檢測距離:5 cm

  • 最大檢測距離:大約 25 米(白色反射平面)

  • 角分辨率:0.5 度

  • 掃描頻率:大約 11 kHz

  • 掃描角度范圍:大約 230 度,改變相應結構還有一定提升空間

  • 功率:5 V/0.1 A(也就是 0.5 瓦),剛啟動時電壓可能會超過 0.8A

  • 尺寸:50x50x120 mm

下圖為該激光雷達的 CAD 模型與成品圖。

786f221834ac46edb66e68c044721444.jpeg

在作者公寓的檢測效果如下圖所示

437a84f727b64c5693e90f7725b2be98.jpeg

項目作者表示制作該激光雷達大零部件總成本大約只需要 114 美元,且激光發射器與接收器所使用的光學透鏡均為監控相機標準鏡頭。看到這里你是不是已經忍不住想要自己上手試一試了呢?下面我們逐一為大家道來其制作過程。

激光雷達測距原理及其制作流程

該激光雷達采用的是 TOF(Time-of-Flight)測距原理。由于之后的鏡頭選型、安裝調試與校準均涉及到 TOF 原理的知識,這里我們簡要介紹一下它。

測距原理

如下圖所示,激光器發射出一系列光脈沖,遇到物體反射后被感光元件捕獲,感光元件產生的電信號經過放大器后,使用運算電路捕捉其上升沿或下降沿計算出光脈沖在空中的飛行時間,結合光速即可得到被測物體距離激光雷達的距離。

bac280991a9b41ea82115a6fb51e91f2.png

TOP 測距原理示意圖(圖片來源:維基百科)

我們從 TOP 測距的原理可以看出,以下幾個因素決定了激光雷達的測量性能:

1. 環境中物體的顏色及其反射表面

由于 TOP 測距是通過計算光脈沖信號發射與接收前后的時間差來工作的,假如發射出的光脈沖被環境中物體吸收,或反射到感光元件測量范圍之外,此時激光雷達是無法收集到正確測量數據的。這里舉一個極端的,隱形戰斗機就是通過使用能夠吸收雷達的涂層以及較小的雷達反射面積來實現「隱身」的。

ba08fb08965c4319bb3d39c8489ccc23.jpeg

當然由于室內的墻大多以白色或淺色為主,大可不必擔心。需要注意的是當環境中存在鏡子或顏色較深的物體時,激光雷達的測量精度會受到較大影響。

2. 激光器與感光元件的相對位置及其鏡頭焦距

為有效捕捉到激光器發出的脈沖信號,感光元件需要安放在距離激光器合適的位置。并且需要根據測量需求,為激光器和感光元件安裝合適焦距的鏡頭。下圖為該項目中激光雷達鏡頭安裝完成后的圖片。

a8fdcb3b8c494790ba384955a96dd0cc.jpeg

3. 激光信號發生器脈寬以及放大電流與運算單元分辨率

還有一個對傳感器性能影響至關重要的是激光信號發射器的脈寬,它決定了激光雷達能夠測量的最大距離。假設光速為 c = 300,000,000 m/s,當光脈沖寬度為 50 ns 時,其最遠測量距離為 7.5 m。

55e16407aa6140dda8677eca703e5b7b.png

由于感光元件產生的電信號需要經過放大處理,相應放大元件的增益、帶寬、噪聲、電源抑制比、共模抑制比、線性度、輸出阻抗等關鍵指標,在制作過程中也是需要考慮的因素。最后就是運算單元的分辨率,其決定著傳感器能否準確計算出激光脈沖往返的時間差。

制作流程

首先是激光脈沖電路的制作。作者選用了價格相對便宜但功能強大的脈沖激光二極管「SPL PL90_3」,其工作在 905 nm 的波長下,能夠產生高達 75 瓦功率的激光脈沖,對應驅動電路圖如左下所示。在檢測電路部分,作者選用雪崩光電二極管(APD)作為光電探測元件,同時設計了 DC-DC 轉換器為其產生足夠高的偏置電壓。激光脈沖探測需要信號帶寬大且輸入電容低的運算放大器,于是作者選用 MAX3658 作為運放。該芯片專門設計用于光電二極管,放大倍數為 18000,帶寬為 580 MHz。此外,該芯片還包含一個內置濾波器,可削減低頻噪聲。檢測電路圖如圖所示:

dc87882f5ac24b5f97766d141040107c.jpeg

ce6eb21bfca84004bd23c069ec87cba4.jpeg

脈沖激光驅動電路圖;脈沖檢測單位電路圖。

在時間節點測量部分,作者選用了用于超聲波液體流量計的現成芯片 TDC-GP21。該微電路的時間分辨率為 90 ps 左右,MCU 可通過 SPI 總線對其進行控制。作者選用 STM32F303CBT6 作為微控制器,以實現對激光脈沖的發送與接收、測量數據讀取與校準、反光鏡電機轉速的控制以及與上位機的通訊。制作完成的 PCB 如下圖所示。

7a959f22b9584b5a89dc0093ff43610f.jpeg

正面示意圖+背面示意圖。

在光學元件方面,選用標準的 M12 鏡頭作為激光透鏡,發散角約為 0.45 度。并選用焦距為 25 mm 的鏡頭用于感光元件,該鏡頭具有較大的光圈,能夠盡可能多地讓反射光落在光電二極管上,以獲得更高的信噪比。如果要在強光照射條件下(例如戶外)使用激光雷達,作者建議在光電二極管和透鏡之間安裝專為 905 nm 波長設計的干涉濾光片。由于本項目是在室內照明條件下進行測試,所以沒有安裝。

旋轉類型的激光雷達有兩種方式來實現對周圍環境的探測,分別是通過旋轉整個測距儀或通過旋轉相對于激光雷達光軸傾斜 45 度的反射鏡來完成掃描,其對應工作方式如下圖所示。

46fbbd15ea244dfcb91a2d80b384c295.gif


02b269d23e0b4fcaa8116c72ad07ef93.gif

這兩種方法各有優缺點,由于第二種方法僅需旋轉反射鏡,而第一種方法需要考慮測距儀在旋轉時的供電與通信問題,所以這里采用僅旋轉反射鏡的掃描方法。待裝好反射鏡和驅動電機后,就完成了整個激光雷達硬件部分的制作工作。下面就可以使用項目作者提供的上位機軟件進行調試與測量了。

280036d529c54283adbae2e8bd86dbb2.jpeg

上位機軟件軟件示意圖。

將激光雷達用于 SLAM 可以說是如今比較成熟的技術,其具有精度高、速度快、抗干擾能力強等優勢。然而目前由于其高昂的造價限制了它在民用無人駕駛領域的普及,哪怕是售價高達 100 余萬人民幣的特斯拉 Model S,使用的檢測方案仍然以攝像頭為主。或許此類低成本的激光雷達開源項目能對我們了解這一技術提供便利。

評論1

Image placeholder

超級大可愛

03-07 11:30
我會持續關注電子趴