也許大家已經(jīng)熟悉了現(xiàn)在的計(jì)算機(jī)的界面。通過(guò)屏幕、鍵盤(pán)、鼠標(biāo)、手寫(xiě)筆、觸摸屏、語(yǔ)言甚至?
VR、AR等設(shè)備與計(jì)算機(jī)進(jìn)行溝通。但蟻群用戶界面也許大家并不太熟悉。
蟻群用戶界面[1] 是由一些獨(dú)立運(yùn)動(dòng)的小型機(jī)器人組成,它們可以協(xié)同工作提供顯示信息,并能夠感知對(duì)用戶手的輸入信號(hào)。
甚至它們還可以協(xié)同來(lái)搬運(yùn)桌面上的一些小型物件,敲擊鈴鐺等。
面對(duì)這群可以移動(dòng)的小機(jī)器人,你拿起其中的一個(gè),隨意的在桌面上滑動(dòng)。在旁邊站成一排的機(jī)器人就自動(dòng)跟蹤過(guò)來(lái),根據(jù)第一個(gè)機(jī)器人走過(guò)的路線排成一個(gè)完整的軌跡曲線。
當(dāng)所有的機(jī)器人都加入到軌跡排列之后,它們就會(huì)像 貪吃蛇[2] 一樣隨著第一個(gè)機(jī)器人進(jìn)行游動(dòng)。
甚至你揪動(dòng)這個(gè)隊(duì)列的中任意兩個(gè),整個(gè)隊(duì)列就像一個(gè)有彈性的橡膠帶一樣伸縮扭動(dòng)。
它們還可以組成各種時(shí)間序列的圖像,完成動(dòng)態(tài)信號(hào)和演示,或者在坐標(biāo)紙上進(jìn)行多重散點(diǎn)坐標(biāo)顯示。甚至,通過(guò)它們的運(yùn)動(dòng),可以為動(dòng)畫(huà)制作人員提供關(guān)鍵鏡頭之間的動(dòng)態(tài)演示。
似乎只有這群獨(dú)立移動(dòng)的機(jī)器人足夠多的,再加上足夠的想象力,使用它們可以做很多有趣的事情。
對(duì)于工程師來(lái)說(shuō),更想知道它們究竟是如何工作的?
?
Zooid是根據(jù)用戶需要定制的微型機(jī)器人,它的內(nèi)部結(jié)構(gòu)如下圖所示。它的體型高21毫米,直徑26毫米的圓柱體,使用3D打印制作外殼結(jié)構(gòu)。每個(gè)Zooid內(nèi)部安裝有100mAh的鋰聚合物電池。
使用微型電機(jī)直接帶著兩個(gè)主動(dòng)輪來(lái)驅(qū)動(dòng)機(jī)器人運(yùn)動(dòng)。為了減少機(jī)器人的直徑,兩個(gè)輪子并不是共軸的,運(yùn)行起來(lái)并不會(huì)使得機(jī)器人旋轉(zhuǎn)。
它的外部安裝有電容感應(yīng)電極,通過(guò) AT42QT1070[3] 電容觸摸傳感器芯片來(lái)感知用戶觸碰。
在PCB板上集成有48MHz ARM MCU(STM32F051C8)完成機(jī)器人的控制、以及通過(guò)2.4GHz nRF24L01+芯片與主控計(jì)算機(jī)進(jìn)行通訊。
為了能夠完成定位,在PCB板上還安裝有兩個(gè)光電管來(lái)識(shí)別投影跟蹤系統(tǒng)發(fā)射的不同亮光。中央固定一個(gè)彩色LED用于表明機(jī)器人身份,作為系統(tǒng)反饋。
Zooid在靜止時(shí),耗電40mA,運(yùn)動(dòng)時(shí)消耗100mA電流。在100mAh的電池供電下,可以連續(xù)運(yùn)動(dòng)1個(gè)小時(shí),如果有靜止時(shí)間段,可以工作更長(zhǎng)的時(shí)間。
?
為了保證整群機(jī)器人準(zhǔn)確完成任務(wù),組成精確的隊(duì)列,需要每個(gè)Zooid可以實(shí)時(shí)感知自己當(dāng)前的精確2D位置,并按照指令進(jìn)行移動(dòng)。在演示桌面上面,使用TI公司的DLP Light Crafter 投影儀發(fā)送的每秒3000幀編碼圖像。每個(gè)Zooid機(jī)器人通過(guò)頂部電路板上的兩個(gè)光電管接收的信號(hào)序列編碼來(lái)確定兩點(diǎn)的位置。進(jìn)而可以計(jì)算出機(jī)器人的中心位置和方向了。
每個(gè)光電管的信號(hào)通過(guò)41個(gè)采樣信號(hào)序列編碼來(lái)得到對(duì)應(yīng)的位置,因此位置更新速率就是73Hz(3000Hz / 41),這可以滿足機(jī)器人在桌面上以44厘米/秒的速度行進(jìn)控制需要。
根據(jù)DLP投影儀的像素和投影面積,在投影的1米×0.63米的范圍內(nèi),可以達(dá)到水平1.15mm,垂直1.12mm的定位精度。
那么每個(gè)Zooid如何知道自己去哪兒呢? 這是通過(guò)電路板上的nRF24L01+無(wú)線通訊芯片與外部的無(wú)線接收器進(jìn)行通訊的。無(wú)線接收器所使用的控制板包括有Teensy 3.1和Arduino Pro mini。
下圖給出了系統(tǒng)軟件結(jié)構(gòu)。頂層應(yīng)用軟件根據(jù)需要確定每個(gè)機(jī)器人的目標(biāo)位置、方向以及顯示的顏色。然后通過(guò)仿真層對(duì)所有機(jī)器人進(jìn)行最優(yōu)路徑規(guī)劃,在避免相互之間碰撞的前提下使得機(jī)器人移動(dòng)的距離最短。
在服務(wù)器層用于機(jī)器人運(yùn)動(dòng)指令的發(fā)送,接收機(jī)器人返回來(lái)的位置,方向以及是否用戶觸摸燈信息。這些交互信息通過(guò)無(wú)線通訊模塊與每個(gè)機(jī)器人進(jìn)行通信。
?
現(xiàn)在這款開(kāi)源Zooids蜂群用戶界面,還有很多需要進(jìn)一步發(fā)展改進(jìn)的方面。
-
最主要的一個(gè)限制就是這款機(jī)器人還不屬于全向自由運(yùn)動(dòng)機(jī)器人。在拐彎時(shí),它需要向汽車(chē)一樣有一個(gè)拐彎半徑。這就限制了它在小范圍內(nèi)運(yùn)行的自由度; -
它在感知用戶輸入時(shí)還僅僅依靠觸摸傳感器。當(dāng)多個(gè)機(jī)器人被拿起時(shí),之后被直接接觸的機(jī)器人才能夠感知被觸摸。其它沒(méi)有白直接觸碰的就無(wú)法得到正確的輸入信號(hào); -
在機(jī)器人等位方面還需要使用外部的DLP投影,不僅增加了系統(tǒng)成本,而且限制系統(tǒng)所使用的范圍,并對(duì)環(huán)境光線有要求。 -
這款Zooid中沒(méi)有安裝無(wú)線充電電路,對(duì)他們充電還需要手工逐個(gè)進(jìn)行。
當(dāng)然,它們還不足夠小,這樣在完成顯示功能時(shí),顯得過(guò)于粗糙。
也許上述各種限制,在不久的將來(lái)會(huì)逐步得到改善。
?
參考資料
蟻群用戶界面: https://hal.inria.fr/hal-01391281/document
[2]貪吃蛇: https://baike.baidu.com/item/%E8%B4%AA%E5%90%83%E8%9B%87/9510203
[3]AT42QT1070: http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-9596-AT42-QTouch-BSW-AT42QT1070_Datasheet.pdf
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!