激光雷達(LiDAR)是激光探測及測距系統的簡稱,目前廣泛應用在無人駕駛和掃地機器人等領域。這種廣泛的應用一方面得益于激光雷達的性能提升,一方面也得益于其成本的下降。 根據掃描方式,激光雷達可分為 MEMS 型、Flash 型、相控陣型、機械旋轉型;根據線數,可分為單線型和多線型: ? 話說回來,有沒有可能自制一個激光雷達?B 站的一位硬核 UP 主「不想宅的技術宅」還真就把這個小目標實現了。
UP 主用了大半年的業余時間,用一個激光測距傳感器整出了一個單線機械旋轉式激光雷達,總共包括硬件設計、結構設計、FPGA 開發和 3D 打印幾個步驟。對于 UP 主來說,這不算是新的挑戰,只能算是「把以前學過的東西復習了一遍」: ? 雖然 UP 主很謙虛,但很多人播放完視頻之后,只能表示「不懂,但受到震撼」: ? ? 做一個激光雷達,需要哪些基本部件? UP 主選用了一款 FPGA 開發板,主芯片為 Xilinx ZYNQ7000,板上搭載了一個最高可輸出 1080p60 幀視頻的 HDMI 接口、32 個 GPIO(通用輸入輸出接口)等其他外設。在這塊開發板上,將要完成雷達數據的采集、運算和顯示。
此外還有一個直流減速機,額定電壓為 12V,減速比為 1:30,最大輸出轉速為 300 轉每分鐘,電機尾部安裝了 500 線的光電編碼器,通過光電編碼器可以獲知輸出軸的轉動角度。
最后,還有一個激光測距傳感器,測距精度為 1cm,量程為 12m,每秒鐘可以測量 1000 次,輸出接口為串口。 ? 這些就是自制激光雷達所需要的基本部件,然后就是結構設計的問題了。 ? 結構設計 UP 主表示,激光雷達在工作時,探頭需要連續旋轉,因此探頭和底座的信號傳輸無法用導線連接,否則會引發纏繞問題,他通過導電滑環解決了這個問題。導電滑環內部是一組電刷,可以解決信號線在旋轉情況下的纏繞問題: ? 如此,激光雷達就設計好了: ?
整個激光雷達分為底座和探頭,探頭和底座通過旋轉軸進行連接,激光測距傳感器通過螺絲固定在探頭基座上。
探頭基座內部還固定有轉子 PCB,底座部分固定有導電滑環、電機和定子 PCB。
在實際裝配時,電機輸出軸和導電滑環和旋轉中心因為誤差關系大概率不會處于同一軸心上,這里使用了一個彈性連軸器來補償軸向偏差: ? 探頭和底座之間設計了一對紅外對管,用來確定探頭轉動的初始位置: ?
至此,結構設計就完成了。隨后將設計好的結構件在 3D 打印軟件中添加支撐,然后切片,最后通過 3D 打印機打印出來。打印好的探頭基座、探頭蓋和底座就是這樣: ? 硬件電路設計 整體框架如圖所示,包含定子 PCB 和轉子 PCB: ? 下圖是整個電源以及隔離設計的框圖,整個電機控制部分和其他電路沒有實際的連接,電機在工作時不會干擾其他電路: ? ? 再之后是 PCB 設計: ? ? ? 一番裝配之后(此處省略一萬個步驟),激光雷達就做好了: ?
激光雷達和 FGPA 之間通過排線進行通信。在軟件設計上,分為兩部分:PS 側的嵌入式開發,以及 PL 側的 FPGA 開發,相比之下,PL 側的開發顯得比較復雜。整體框圖如下: ? 而主要的難度恰恰在于 FPGA 部分。UP 主表示:「要把雷達數據疊加在視頻數據流上,費了我不少腦細胞?!?? 最后,看下實際運行效果 受限于激光測距傳感器測量頻率,探頭轉動一圈采集 500 個點的數據,所以激光雷達的掃描頻率只能做到 2Hz 每秒。 為了視覺效果,UP 主加上了雷達掃描線,最終實現的效果還是不錯的:
目前,UP 主已經把視頻中激光雷達的結構和 pcb 設計文件上傳到 Github 平臺,想要做一個玩玩的小伙伴可以去下載。 項目傳送門:https://github.com/Messi-xiong/LiDAR.git
審核編輯 黃宇
-
傳感器
+關注
關注
2550文章
51035瀏覽量
753083 -
激光雷達
+關注
關注
968文章
3967瀏覽量
189825 -
LIDAR
+關注
關注
10文章
326瀏覽量
29414
發布評論請先 登錄
相關推薦
評論