用華為、小米手機DIY自主導航機器人:只需三百塊,教程已開源,人人可上手
本文轉自雷鋒網,如需轉載請至雷鋒網官網申請授權。
如上所示,總共需要花費清單如下:一個3D打印的底座:5美元;四個輪子:3.5美元;三節電池:7美元;兩個速度傳感器:2美元;一個馬達驅動器:3美元;一個微控制器:8美元。
之所以使用手機作為Bobo的大腦,是因為如今智能手機的功能越來越強大,手機的相機質量和處理器速度等方面也正在不斷提高。即使是商業手機也配有慣性測量單元(inertial measurement units)、GPS、Wi-Fi、藍牙、蜂窩調制解調器以及專門用于AI神經網絡模型Inference的芯片。有些手機配件的性能比電腦處理器(desktop processor)還要出色!
研究者將智能手機插入一個電機體(electromechanical body)內,主要用于傳感、數據融合和計算。此外,底盤最多可容納四臺馬達(motor),還留有一些空位用于安裝控制器、微控制器、LED燈、智能手機安裝座(smartphone mount)和USB數據線。
在充電方面,電池組與專門的充電端口連接,向馬達供電,并有一塊Andruino Nano板(一個基于易用硬件和軟件的開源電子平臺)通過USB與智能手機配對,向機器人提供串行通信鏈路(serial communication link)和電量(power)。
機器人的兩個前輪還配備了能夠傳送測距信號的傳感器,以及與馬達連接的引腳(pin)實時調整速度和方向。
Bobo的軟件堆層也較為簡易,僅包含兩個通過串行鏈接進行通信的組件。操作人員可以在智能手機上安裝一個安卓app,然后通過app的界面,在運行更高級別的感知和把控工作量的同時進行數據集的收集。此外,在Arduino上運行的程序能夠進行簡單的驅動,并測量里程計與電池電壓等等。
安裝了安卓app之后,OpenBot還能通過你們現有的兼容了藍牙設備的PS4、Xbox和Switch等游戲控制器進行操控。控制器上的按鈕可以設定功能,在尋找路徑的模型(path-finding model)中進行數據收集和交換。這些模型包括方便上手的自動導航模型,可以檢測并跟蹤機器人視線內的人員。
整個組裝過程也很簡單,只需坐在桌子前“動手”即可,即使沒那么心靈手巧的人,只要拿出拼圖的耐心,想必就能完成。
這樣一臺簡單的機器人,效果究竟如何呢?
研究人員用中端手機小米Note 8、華為P30 Lite和小米Poco F1等設備進行了測試,如上圖所示,可以實現以每秒10幀或更快的速度跟蹤人員活動,因為這些手機裝備了專門的AI加速器。即使是配置最差的諾基亞2.2,也能成功檢測到目標人員,并跟蹤目標對象長達約一半測試時長。
在自主導航任務中,它還能夠巧妙地躲避辦公區走廊的盆栽植物。
2. 手把手教程已開源
前面也提到,整個機器人的成本,除去手機之外,不到50美元(350元人民幣)。機器人的身體采用的是3D 打印零件,以及一臺智能手機(二手舊手機也可)。
上圖為作者5量車的零件批發價格
機器人背后的技術已經用論文的形式進行公布,而制作步驟,作者也在GitHub上進行了開源。相關零件也給出了購買渠道。就連3D打印圖紙也良心放出,甚至還給出了3D打印機的參數設置。
GitHub地址:https://github.com/intel-isl/OpenBot/tree/master/body
論文地址:https://arxiv.org/pdf/2008.10631.pdf
同時還給出了20個安裝過程的注意事項,可以說的良心手把手教程了:例如,如有必要,將電線連接到馬達上;將速度傳感器和超聲波傳感器連接到5V和GND等等。
在論文中,作者也介紹了利用智能手機的原由,即智能手機的優勢不止快速提升的硬件能力,它們還具備蓬勃發展的軟件生態系統。
智能手機在相機質量和處理器速度上不斷提高,配備GPS、Wi-Fi、藍牙、蜂窩調制解調器以及用于AI推理的專用芯片,有些性能甚至優于臺式處理器。
整個小型電動車(機器人)分為兩個部分,第一部分是硬件,也就是50美元就能搞定的那些零件;第二部分是軟件堆棧,其功能是讓智能手機將小車作為機身,并實現實時感知和計算的移動導航。
硬件的構造包括機械設計和電路設計兩部分,機械設計如下圖所示:
電路設計如下圖所示:頂部包括電池、電機控制器、微控制器、速度傳感器、指示燈LED和智能手機;底部包括,可選定制PCB以減少布線。
而軟件堆棧也包含兩部分:安卓應用和 Arduino 程序。其中,安卓應用在智能手機上運行,可以提供操作界面,收集數據集,運行高階的感知和控制任務。Arduino 程序負責低階的驅動和度量,如度量車輪里程、監控電池電壓等等。
軟件和硬件完備之后,英特爾的研究人員訓練機器人,期望能夠完成兩個任務,一個是行人跟蹤,另一個是自動導航。
駕駛策略的訓練流程
在自主導航任務中,研究人員用了一個類似于“條件模仿學習的命令輸入變體(command-input variant of Conditional Imitation Learning)”的神經網絡,訓練了一個在大多數智能手機上都能實時運行的駕駛策略。另外,研究人員將其與現有的駕駛策略進行比較,并獲得與基線相似的性能,而所需參數減少了大約一個數量級。