~欢迎关注~
微信公众号:古月居
新浪微博:古月春旭
知乎专栏:古月居
2019年4月19日,古月君受邀参加了中国自动化学会主办的——国家机器人发展论坛,并做了题为《ROS加速机器人智能化变革》的主题报告,以下是报告的主要内容,和大家分享学习。
各位好,很荣幸能够分享我们在机器人操作系统ROS方面的研究,我来自一家新创公司——武汉精锋微控,目前主要做机器人的驱控系统。我们从2011年开始,就一直基于ROS做机器人的相关研究和开发,我们相信ROS是加速机器人智能化变革的重要工具之一,目前也已经看到了很多相关成果。
我们认为机器人的智能化需要全面发展,不仅要利用云计算等工具,为机器人配备一个超强大脑,还需要全面发展,充分提高本地的计算能力,让机器人成为一个头脑发达、四肢也发达的智能体。近年来我们一直围绕这两个主题在展开工作,ROS也为加速我们的研究和实现提供了强有力的工具支撑。
在机器人智能化进程中,机器人操作系统ROS作为一种重要的软件框架,大大提高了工作人员的开发效率,在分工协作、软件维护和系统扩展中具有重要意义。
2007年,斯坦福大学诞生了ROS的原型,2008年后由机器人孵化企业——Willow Garage公司接手维护,2010年正式开源,2013年建立开源机器人基金会,之后推出长期支持版Indigo、Kinetic、Melodic,保持和Ubuntu LTS的周期一致。
为了提高ROS在产品中的可用性,2017年还推出了完全重新设计的ROS 2。在不到12年的时间中,ROS已经发展成为机器人领域的普遍标准,各大公司也纷纷投入到ROS社区,不断推进下阶段ROS 2的进程。
ROS虽然意为机器人操作系统,但它本质上是一个针对机器人的软件框架,核心目标是提高机器人研发中的软件复用率,可以在通信机制、开发工具、应用功能和生态系统四大模块中减少开发者各自造轮子的重复工作。
ROS目前已经广泛应用于各种类型的机器人,涉及的应用功能也非常丰富,我们可以在友好的开源社区中找到很多高质量的项目,并且再次基础上二次开发,快速实现自己的应用功能。
在不到12年的时间里,ROS社区中的功能包数量、下载量、wiki的访问量,以及相关的学术文章,都在大幅度的逐年增长,据2018年7月份的数据统计,ROS wiki每个月的访问量近20万,功能包下载量有30多万。
以上为大家介绍了ROS的概况,接下来,我将从机器人的云端大脑和本地运动能力两个方面,汇报下我们基于ROS的一些工作。
云计算是一个强大的技术工具,可以为机器人的快速成熟提供强有力的推动。在2010年的Humanoids会议上,卡耐基梅隆大学的James Kuffner教授首次将云计算与机器人技术结合,提出“云机器人”的概念,这也引起了业界广泛的讨论与研究。云机器人作为机器人学术领域的一个新概念,其重要意义在于借助互联网与云计算,帮助机器 人相互学习和知识共享,解决单个机器自我学习的局限性。
RoboEarth是欧盟在2011年初资助的一个基于ROS的云机器人项目,由埃因霍温等大学和飞利浦公司的35位科学家共同合作研发,目标是建立面向机器人的万维网。RoboEarth是专门为机器人服务的一个网站,提供一个巨大的网络数据库系统,机器人在这里可以分享信息、互相学习彼此的行为与环境 。
由RoboEarth项目衍生了明星创业公司——Rapyuta。他们在Roboearth庞大数据库的基础上,将机器人的大脑也放入了云端,而且基于ROS提供了一系列基于web的开发工具,开发者可以在浏览器中完成机器人从设计、仿真到实现的全部过程。
云计算是很多大公司的优势,他们有庞大的计算能力和工具集群,所以他们也逐渐将触角延伸到机器人领域。2018年11月,最大的云计算平台厂商——亚马逊,推出了RoboMaker云机器人平台,同样是基于ROS框架,集成了自身在机器学习、图像语音处理和平台方面的优势,可以帮助开发者在云端快速实现大规模的机器人开发、测试和部署,还可以支持未来机器人软件的持续更新。
可参考:亚马逊云机器人平台RoboMaker,借助ROS重定义机器人开发方式
这些云机器人工具和平台都将提高机器人的可用性和易用性,而他们实现的核心也都是机器人操作系统ROS。
这是我们在2014年发表论文中提出的基于ROS的云机器人架构,设计理念是机器人即服务,可以将不同种类的机器人实现松耦合的连接,通过统一的服务单元,为用户提供丰富的应用功能。在本地云中实现以密集型计算为主的应用服务,比如机器人SLAM和视觉处理等,而在全局云中基于RoboEarth实现机器人全局数据的存储,共享学习和交互。
我们的主要创新工作是将传统云切分成了全局云和本地云两个部分,全局云是全局范围内的资源共享平台,包括世界各地的机器人可共享资源,同时对这些资源进行处理分析,以提供进一步基于数据的服务。
密集计算任务就交由本地云负责,这样可以释放全局云的计算压力,提高网络稳定性,本地云也可以根据局部需求做个性化定制,比如一个酒店组成的的本地云,其中的机器人主要以轮式移动型服务机器人为主,本地云就可以主力提供slam、导航、图像方面的服务,系统更加灵活,安全性也可以进一步提高。
这是我们基于全局云实现的知识分享演示,机器人对物体建模后分享至全局云端,所有可访问云端的设备都可以下载该模型,并作为物体识别的目标。
本地云为机器人提供SLAM与导航服务,利用ROS标准的接口封装统一的机器人功能。SLAM建立的地图可以在全局云端分享,如果有敏感信息的话,也可以在本地云端分享,提高安全性。
我们还可以通过手机、浏览器远程访问并监控机器人。
智能机器人的成熟不能只靠大脑方面的增强,机器人自身也需要有强健的筋骨,能够更好得完成大脑下达的指令,很多情况下还需要在机器人上搭配一个小脑,完成实时性较高的控制工作。所以我们进一步设计开发了新一代片上驱控系统,类似于手机中高通、华为各家争抢的SoC芯片,我们希望给机器人本身安装一个足够强大的“芯”脏,提高机器人控制系统自身的能力。
以工业机器人为例,通用的控制系统中包含不同厂家声场的驱动器、控制器和IO设备,其中包含20颗左右的可编程芯片,接线部署繁杂,体积大,而且产品间的兼容性问题不能充分发挥控制系统的性能。所以我们设计了一款全新架构的片上驱控系统,可广泛应用于多种机器人系统中,在体积大幅度减小的同时,整体性能和成本控制也更好。
该设计的核心是使用一颗SoC芯片,解决之前20颗芯片的问题,不再需要复杂的连线和通信。这颗SoC芯片是一款ARM+FPGA异构平台,我们在FPGA中使用硬件逻辑实现了常用电机类型的通用驱动和同步控制算法,ARM端嵌入了机器人控制算法和通信协议栈的支持,部分功能是基于ROS社区中的资源二次开发而来,整个系统支持ROS及其工业分支ROS-I接口。
我们设计的片上驱控系统,可以兼容多种机器人结构,并且提供机器人自底向上的软硬件支持。借助片上系统中的FPGA,很多基于模型的计算和机器学习算法可以高速运行,提升机器人的本地处理和认知能力,在此之上,我们也封装了很多机器人的通用算法,以ROS为原型提供标准API和通信协议,提供类似操作系统的功能。
我们也相信,随着机器人的广泛应用,机器人也将会成为生活、生产中重要的数据入口,利用片上系统可以拿到庞大的高速数据,再配合云端强大的计算能力,可以为未来智能制造提供强有力的支持。
未来我们希望在SoC平台的基础上不断延伸,结合云机器人架构,打造从端到云的智能机器人解决方案。而在这个方案的设计、实现过程中,都离不开ROS提供的众多工具和开源社区的支持。
这就是我们在利用ROS加速机器人智能化变革之路上的探索实践,欢迎各位专家批评指正。
更多内容欢迎关注:
微信公众号:古月居 (guyue_home)
新浪微博:古月春旭
知乎专栏:古月居