大家都知道,目前最流行的手機(jī)是基於 Android 作業(yè)系統(tǒng)的手機(jī),市場佔有率高達(dá)約80%;此外,Android採取Apache軟體授權(quán)方式的開源軟體,成為人人可以免費使用及自行修改的軟體平臺系統(tǒng)。UBOT的全名是:UBOTeam Unified Framework for Ro-bot Team)。它是高煥堂團(tuán)隊基於Android平臺的擴(kuò)充,而成為機(jī)器人的共用程式設(shè)計環(huán)境及整合運行平臺,它逐漸發(fā)展成為AIoT的共用程式開發(fā)及整合執(zhí)行平臺。UBOT的上層是App(提供使用者介面);下層是外掛程式(Plugin)來促進(jìn)機(jī)器人硬體設(shè)備的客制化特性;而UBOT則是位於中間層 的軟體框架(Framework),它是開源的軟體系統(tǒng)(圖1)。
當(dāng)協(xié)力廠商開發(fā)者基於UBOT而開發(fā)出上層App時,開發(fā)者可以自行決定其 App是否開源或閉源,亦即該App可以不開源;同樣地,當(dāng)開發(fā)者基於UBOT 而開發(fā)出連接到硬體設(shè)備的客制化外掛程式(Plugin)時,仍由其開發(fā)者自行決定該外掛程式是否開源或閉源,亦即該外掛程式可以不開源。
如上所述,在UBOT裡,其應(yīng)用框架(App Framework)層是開源的,開發(fā)者可以將它匯入到Android Studio開發(fā)環(huán)境裡使用,於是就可以使用您已經(jīng)熟悉的Android SDK來開發(fā)多機(jī)器人的創(chuàng)新整合應(yīng)用了,而不必花費心力於各機(jī)器人廠家的不同SDK,無論是學(xué)習(xí)或開發(fā)都將更加事半功倍。
由於在開發(fā)多機(jī)器人的整合應(yīng)用時,各機(jī)器人產(chǎn)品往往來自不同的廠商,各廠商也常推出針對自己產(chǎn)品的 SDK(即App開發(fā)環(huán)境)。此時,開發(fā)者面臨多個SDK,各自獨立、不能相容,就會遭遇開發(fā)工作的複雜性,而變得困難重重。
其化解之道是:大家採用同一種SDK。在本文裡,筆者建議採用Android SDK,讓大家 都能使用多數(shù)人已經(jīng)熟悉的Android Studio來進(jìn)行App的開發(fā)工作,就可以省去學(xué)習(xí)各廠商SDK的時間和負(fù)擔(dān)。
例如,一旦使用Android Studio +UBOT(如藍(lán)牙模組)開發(fā)出來一支針對Ironbot機(jī)器人的 App。若想繼續(xù)整合另一廠牌的Dobot機(jī)器人時,就不必再花時間學(xué)習(xí)Android Studio和 UBOT,直接動手開發(fā)約 20% 產(chǎn)品客制化的部分程式碼即可,例如不同廠牌(或型號)的機(jī)器人,其傳遞訊息的格式(Format)大多不相同,這就是所謂的客製化部分。
以此類推,如果想繼續(xù)整合更多個(不同廠牌)的機(jī)器人時,一樣不必花時間學(xué)習(xí)新的 SDK,而迅速動手開發(fā)約 20% 產(chǎn)品客客製化的部分程式碼即可。因而,學(xué)生的學(xué)習(xí)效率提高、學(xué)習(xí)信心也提升了。
整合通信:以藍(lán)牙技術(shù)為例
藍(lán)牙設(shè)備能以固定的週期持續(xù)發(fā)送廣播,手機(jī)端App掃瞄(接收)到廣播後,解析廣播包,然後可進(jìn)行以設(shè)備的識別、配對,連線和資料讀寫等。
於是,使用者的手機(jī)就能掃瞄到周邊的藍(lán)牙設(shè)備所發(fā)出的藍(lán)牙訊號。接下來,就能進(jìn)一步與這些設(shè)備建立連線(Connection),才能對這些設(shè)備進(jìn)行訊息傳遞,例如從BLE設(shè)備讀取資訊或把資訊寫到BLE設(shè)備裡,這些資訊就包括了控制指令及相關(guān)的參數(shù)等。
在Android手機(jī)裡的軟體結(jié)構(gòu)裡(圖2),由myActivity模組提供 UI畫面,例如讓使用者隨機(jī)地選取一個RGB顏色,並依據(jù)該設(shè)備所能接受的訊息格式,傳遞給myFa-cade去進(jìn)行訊息傳送的任務(wù)。此時,myFacade會透過Session來將訊息傳送給BLEMessage,再轉(zhuǎn)送給IronbotBLEMsg。
IronbotBLEMsg接到從myFacade傳來的訊息之後,就將訊息存入佇列(Queue)裡,然後依據(jù)先後順序,逐一從佇列裡取出訊息傳送給Android的BLE模組,然後以無線方式傳送給藍(lán)牙設(shè)備,此時履帶車上的LED燈的顏色就改變了。
AI賦能:運用語音AI的多機(jī)協(xié)同合作
藉助於UBOT/BLE框架的高度擴(kuò)充能力,手機(jī)裡的UBOT/BLE模組更能同步發(fā)送藍(lán)牙訊息給多臺機(jī)器人(如手臂和履帶車),順利指揮多機(jī)的協(xié)同合作,展開團(tuán)隊行動。
例如圖3裡,讓 Zenbo 透過Wi-Fi來與 UBOT手機(jī)通訊,這樣可以充分發(fā)揮 Zenbo的AI語音功能,擔(dān)任迎賓服務(wù)者的角色。
從圖3裡,可以看人們透過語音AI來和Zenbo機(jī)器人(在此圖的左上角)對話,然後Zenbo沒有手,就拿Dobot手臂(右下角)來搭配起來,便能聽從客人的指示而準(zhǔn)確按下咖啡機(jī)(的按鈕),泡出客人想喝的咖啡了。
此時,如果再搭配匠客Ironbot機(jī)器人(左下角)來端送咖啡給客人,將是更加體貼的服務(wù)了。也就是,經(jīng)由同一支UBOT/Android手機(jī)來精準(zhǔn)安排Dobot泡咖啡,並且把泡好的咖啡交給Ironbot機(jī)器人,然後端送到客人面前。
在這個咖啡館的範(fàn)例裡,是以 Ironbot、Dobot和 Zenbo三種機(jī)器人為主角,來進(jìn)行創(chuàng)新組合,搭配語音AI的軟硬整合應(yīng)用案例,其中闡述了AI機(jī)器人的軟硬整合技術(shù),包括AI機(jī)器人的平臺(Platform)架構(gòu),並詳細(xì)說明其開源的軟體原始碼。這非常有助於學(xué)習(xí)AI時代的科技知識和體驗。隨著AI(人工智慧)與機(jī)器學(xué)習(xí)能力的提升,與物聯(lián)網(wǎng)(IoT)結(jié)合機(jī)器人的創(chuàng)新 應(yīng)用,將會更上一層樓。而以Android開發(fā)環(huán)境來演練 Java和Python程式設(shè)計語言,將形成一個先進(jìn)的智慧物聯(lián)網(wǎng)(AIoT)的程式設(shè)計學(xué)習(xí)環(huán)境。
穩(wěn)定結(jié)構(gòu):善用Android的多進(jìn)程機(jī)制
最簡單的情況是讓兩臺機(jī)器人(例如,一臺Dobot機(jī) 器手臂和一臺Ironbot履帶車)能隨時做創(chuàng)新組合、協(xié)同合作。當(dāng)然也能進(jìn)一步擴(kuò)充為三或更多臺的機(jī)器人,並且讓它們進(jìn)行更多花樣的創(chuàng)新組合、協(xié)同合作。

圖5 : 兼具擴(kuò)充性和穩(wěn)定性的架構(gòu) |
|
為了兼顧擴(kuò)充性和穩(wěn)定性,在Android手機(jī)裡可以把數(shù)臺機(jī)器人的相關(guān)軟體模組,各自安排在不同的進(jìn)程(Process)裡,例如這三隻機(jī)器人的相關(guān)類別,各載入到不同的進(jìn)程裡執(zhí)行(圖5)。在這個架構(gòu)裡,它們各自的相關(guān)類別都在各自的進(jìn)程裡執(zhí)行,可以提升整個App的穩(wěn)定性、安全性、擴(kuò)充性和並行性等。
打造生態(tài):基於UBOT的開放API
目前的手機(jī)市場中,Android平臺的App數(shù)量已經(jīng)超過4百萬了。基於其龐大的客戶群,我們巧妙地從An-droid平臺延伸出UBOT共用平臺,將可替各種機(jī)器人產(chǎn)品,招來龐大的App開發(fā)者和使用群。
同時,UBOT平臺也來支撐眾多的創(chuàng)客們來進(jìn)行軟硬 體產(chǎn)品的創(chuàng)新。因此,UBOT可帶給App開發(fā)者許多幫助。就像Android平臺一樣迅速累積許多App開發(fā)者。這些App只要稍做調(diào)整,就能執(zhí)行於新產(chǎn)品上,因而 UBOT迅速為新產(chǎn)品帶來眾多的App,非常有助於創(chuàng)客的新產(chǎn)品迅速進(jìn)入市場而獲利。
至於下層的機(jī)器人硬體廠商,為了能迅速獲得更多 App,其機(jī)器人產(chǎn)品就會來支援這統(tǒng)一而開放的API。於是,上層累積愈多App,下層也會吸引愈多的機(jī)器人產(chǎn)品,上層和下層相互加乘,就形成一個蓬勃發(fā)展的「生態(tài)(Ecosystem)」了。
開放API:掌握API,才有話語權(quán)
在本文裡,筆者拿UBOT機(jī)器人聯(lián)合平臺來做說明,並且拿Zenbo、Ironbot和Dobot三種機(jī)器人產(chǎn)品來組合創(chuàng)新,闡述最基礎(chǔ)的機(jī)器人(Robot)軟硬整合、共用平臺、開放API、以及App的開發(fā)技術(shù)。
其中的核心要素就是:API。掌握平臺API的制定權(quán),就能成為生態(tài)的盟主。此外,還要大膽開源軟體和開放API,就能促進(jìn)生態(tài)蓬勃發(fā)展。