多機器人的創新組合開發技術
作者 高煥堂 臺灣地區VR產業聯盟主席、廈門VR/AR協會榮譽會長兼總顧問
本文引用地址:http://www.104case.com/article/201810/393379.htm除了制造機器人產品之外,創造多臺機器人的協同合作,也是很有趣的、具有商業價值的。就如同花卉,我們不一定要自己當農夫種花卉,其實開花店、插花、賣捧花或花束等,可能更詩情畫意、美不勝收呢。
1 創新組合:多機器人的協同開發
大家都知道,目前最流行的手機是基于Android操作系統的手機。目前市場占有率大約高達 80%了。此外,Android是采取Apache軟件授權方式的開源軟件,成為人人可以免費使用及自行修改的軟件平臺系統。
UBOT的全名是:UBOTeam(Unified Framework for Robot Team)。它是高煥堂團隊基于Android平臺的擴充,而成為機器人的共享編程環境及整合運行平臺。它逐漸發展成為AIoT的共享程序開發及整合執行平臺。UBOT的上層是App(提供用戶接口),而UBOT的下層是插件(Plugin)來促進機器人硬設備的客制化特性。而UBOT則是位于中間層的軟件框架(Framework),它是開源的軟件系統(圖1)。
當第三方開發者基于UBOT而開發出上層App時,開發者可以自行決定其App是否開源或閉源,亦即該App可以不開源。同樣地,當開發者基于UBOT而開發出連接到硬設備的客制化插件(Plugin)時,仍由其開發者自行決定該插件程序是否開源或閉源,亦即該插件程序可以不開源。
如上所述,在UBOT里,其應用框架(App Framework)層是開源的,開發者可以將它匯入到Android Studio開發環境里使用,于是就可以使用您已經熟悉的Android SDK來開發多機器人的創新整合應用了,而不必花費心力于各機器人廠家的不同SDK,無論是學習或開發都會更加事半功倍了。
由于在開發多機器人的整合應用時,各機器人產品往往來自不同的廠商,各廠商也常推出針對自己產品的SDK(即 App開發環境)。此時,開發者面臨多個SDK,各自獨立、不能兼容,就會遭遇開發工作的復雜性,變得困難重重了。
其化解之道是:大家采用同一種SDK。在本文里,筆者建議采用Android SDK,讓大家都能使用多數人已經熟悉的Android Studio來進行App的開發工作,就可以省去學習各廠商SDK的時間和負擔了。
例如,一旦您使用Android Studio + UBOT(如藍牙模塊)開發出來一支針對Ironbot機器人的App,若想繼續整合另一廠牌的Dobot機器人時,就不必再花時間學習Android Studio和UBOT了,直接動手開發約20%產品定制化的部分程序代碼即可了,例如不同廠牌(或型號)的機器人,其傳遞信息的格式(Format)大多不相同,這就所謂的定制化部分。
以此類推,如果想繼續整合更多個(不同廠牌)的機器人時,一樣的不必花時間學習新的SDK,而迅速動手開發約20%產品定制化的部分程序代碼即可。因而,學生的學習效率提高了,學習信心也提升了。
2 整合通信:以藍牙技術為例
藍牙設備能以固定的周期持續發送廣播,手機端App掃描(接收)到廣播后,解析廣播包,然后可進行對設備的識別、配對、聯機和數據讀寫等。于是,您的手機就能掃描到周邊的藍牙設備所發出的藍牙信號了。接下來,就能進一步與這些設備建立聯機(Connection),才能對這些設備進行信息傳遞,例如從BLE設備讀取信息或把信息寫到BLE設備里,這些信息就包括了控制指令及相關的參數等。
在Android手機里的軟件結構里(圖2),由myActivity模塊提供UI畫面,例如讓用戶隨機選取一個RGB顏色,并依據該設備所能接受的信息格式,傳遞給myFacade去進行信息傳送的任務。此時,myFacade會通過Session來將信息傳送給BLEMessage,再轉送給IronbotBLEMsg。
這IronbotBLEMsg接到從myFacade傳來的訊息之后,就存入隊列(Queue)里,然后依據先后順序,逐一從隊列里取出訊息傳送給Android的BLE模塊,然后以無線方式傳送給藍牙設備,此時履帶車上的LED燈的顏色就改變了。
3 AI賦能:運用語音AI的多機協同合作
借助于UBOT/BLE框架的高度擴充能力,手機里的UBOT/BLE模塊更能同步發送藍牙訊息給多臺機器人(如手臂和履帶車),順利指揮多機的協同合作,展開團隊行動。
例如下圖里(如圖3),讓Zenbo透過WiFi來與UBOT手機通訊。這樣可以充分發揮Zenbo的AI語音功能,擔任迎賓服務者的角色。
從圖3里,可以看到人們通過語音AI來和Zenbo機器人(圖3左上角)對話,然后Zenbo沒有手,就拿Dobot手臂(圖3右下角)來搭配起來,便能聽從客人的指示而準確按下咖啡機(的按鈕),泡出客人想喝的咖啡了。
此時,如果再搭配匠客Ironbot機器人(圖3左下角)來端送咖啡給客人,將是更加體貼的服務了。也就是,經由同一支UBOT/Android手機來精準安排Dobot泡咖啡,并且把泡好的咖啡交給Ironbot機器人,然后端送到客人面前。
在這個咖啡館的范例里,是以Ironbot、Dobot和Zenbo三種機器人為主角,來進行創新組合,搭配語音AI的軟硬整合應用案例,其中闡述了AI機器人的軟硬整合技術,包括AI機器人的平臺(Platform)架構,并詳細說明其開源的軟件原始碼。這非常有助于學習AI時代的科技知識和體驗。隨著AI(人工智能)與機器學習能力的提升,與物聯網(IoT)結合機器人的創新應用,將會更上一層樓。而以Android開發環境來演練Java和Python程序設計語言,將形成一個先進的智能物聯網(AIoT)的程序設計學習環境。
4 穩定結構:善用Android的多進程機制
最簡單的情況是讓兩臺機器人(例如一臺Dobot機器手臂和一臺Ironbot履帶車)能隨時做創新組合、協同合作。當然也能進一步擴充為三或更多臺的機器人,并且讓它們進行更多花樣的創新組合、協同合作(圖5)。
為了兼顧擴充性和穩定性,在Android手機里可以把機器人的相關軟件模塊,各自安排在不同的進程(Process)里,例如這三只機器人的相關類別,各加載到不同的進程里執行(圖6)。
在這個架構里,它們各自的相關類別都在各自的進程里執行,可以提升整個App的穩定性、安全性、擴充性和并行性等。
5 打造生態:基于UBOT的開放API
目前的手機市場中,Android平臺的App數量已經超過400萬了。基于其龐大的客戶群,我們巧妙地從Android平臺延伸出UBOT共享平臺,將可替各種機器人產品,招來龐大的App開發者和使用群。同時,UBOT平臺也來支撐眾多的創客們來進行軟硬件產品的創新。
因此,UBOT可帶給App開發者許多幫助。就像Android平臺一樣迅速累積許多App開發者。這些App只要稍做調整,就能執行于新產品上,因而UBOT迅速為新產品帶來眾多的App,非常有助于創客的新產品迅速進入市場而獲利。
至于下層的機器人硬件廠商,為了能迅速獲得更多App,其機器人產品就會來支持這統一而開放的API。于是,上層累積愈多App,下層也會吸引愈多的機器人產品,上層和下層相互加乘,就形成一個蓬勃發展的生態(Ecosystem)了。
6 開放API:掌握API,才有話語權
在本文里,筆者拿UBOT機器人聯合平臺來做說明。并且拿Zenbo、Ironbot和Dobot三種機器人產品來組合創新,闡述最基礎的機器人(Robot)軟硬整合、共享平臺、開放API、以及App的開發技術。其中的核心要素就是:API。掌握平臺API的制定權,就能成為生態的盟主。此外,還要大膽開源軟件和開放API,就能促進生態蓬勃發展。最后,也歡迎您參閱筆者的新書:《AI機器人、藍牙與Android整合開發技術》。
本文來源于《電子產品世界》2018年第11期第81頁,歡迎您寫論文時引用,并注明出處。
評論