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