多机器人的创新组合开发技术
作者 高焕堂 台湾地区VR产业联盟主席、厦门VR/AR协会荣誉会长兼总顾问
本文引用地址:http://www.amcfsurvey.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页,欢迎您写论文时引用,并注明出处。
评论