Sonictl, Ang 2015
本文按照目标路径、需求、资源、方法、计划为提纲,根据本人对市场、技术、商业模式等的经验理解,梳理总结 ROS 和机器人技术对于机器人研发团队来讲,可能的发展方向、可行性分析、前景展望等。
据我sonictl了解及调研, ROS 已经逐渐占据了机器人开源控制软件平台领域几乎用户量最大的地位。原因主要是:1. ROS 的维护团队比较强大。 2. ROS的架构相对科学。 3. ROS 核心团队针对目前主流的机器人硬件,比如ABB, Kuka, UR, iRobot, Kinect等,提供了相对丰富和成熟的应用案例。4. ROS开源的特点可挑战传统厂商的封闭昂贵的软件工具。
结合我们sonictl对机器人行业的理解,它是一个应用复杂多样的学科。为了降低机器人的生产成本,需要使用ROS这样架构的软件平台来实现代码复用和模块化封装。目前包括Mathworks在内的算法软件研发巨头[1]及国外的致力于机器人IMU传感器模块研发的初创公司[2]等,都纷纷开始在自己产品的软硬件开发接口上支持ROS。
所以,我sonictl认为,随着机器人技术的广泛应用,ROS是最有可能成长为一个赢得更多用户和开发者,获得更广泛的硬件厂商和产品支持,具有更强大的功能,覆盖机器人上下游产业链,最终形成以ROS为线索的繁荣的机器人产学研生态。
作为一个机器人开发团队,应该把握ROS目前还处在探索,含苞待放的时机,以特定的用户群的需求为导向、以核心技术为竞争力,积累、试验和开发自己的ROS机器人产品。
工业机器人是机器人在产生自身价值方面最直接、最直观、应用方式和产品模式最清晰的领域。工业上相对固定和可控的生产工作环境降低了机器人的应用难度。
在满足工业生产中的可靠、实用等要求的基础上,工业机器人在未来还应该朝着低成本和智能化方向发展。
ROS应如何降低工业机器人的成本和提高智能性:
相对于传统的机械运动轨迹的实现,ROS很难降低工业机器人的应用成本,而在需要智能算法的工业机器人开发上,可在机器人进行传感和决策的部分,使用ROS提供的低廉免费的算法模块,甚至在ROS原有的模块上进行定制化开发和移植、甚至分发给全球的算法用户。
1.ROS在工业机器人领域的应用目标
开发ROS在搬运、分拣、装配、等领域的算法模块及在ABB、UR等机器人本体上运行的整体解决方案。比如,ROS的视觉识别解决方案的开发及应用,就被我认为是很好的方向。
2.ROS在工业机器人领域的应用需求
这个需求即是工业界对工业机器人智能化的需求,机械往复运动的机器人已经无法满足工业需求,比如柔性生产线、不同型号的PCB搬运、计数线等。
3.ROS在工业机器人领域的应用资源和战略分析
借助团队c++开发人才,通过团队内部培训,完成对ROS的知识覆盖。
根据研发目标,讨论确定ros在工业领域的应用开发路线图。
初步的路线图:
在ABB或kuka机器人上,基于ROS架构,仿造ROS官方例程,利用kinect辅助,完成对平面上物体的自动定位和搬运任务。
总结和封装上个任务的ROS节点,形成ROS节点使用手册,目标是使其易于分发和使用,甚至使用户零代码完成软硬件组装。
在ABB或kuka机器人上开发更多ROS Industrial的案例,比如相机智能校准等,并对案例模块进行分拆,将各个模块进行产品化封装,形成包含宣传及参展、市场营销、产品研发、售后服务的产品线。
最终的产品形态应该是一个能生产ROS nodes的软件工具,比如对于图像识别来讲,用户加入训练的图片或图像,可以训练成一个具有图像识别能力的节点(node)。用户傻瓜式生成它之后,便可直接使用这个ROS节点加入到自己的机器人架构中。
实时地图建模与导航,是按照机器人的功能模块进行scope观察角度进行划分的一个用途较为广泛的功能。这项功能对应英文为人们熟知的SLAM(Simutaneously Localization andMapping). SLAM技术主要是对特种或服务机器人、四旋翼无人机等来讲,当它们在实际陌生地理环境中进行工作时,要想实现自主导航,主动蔽障等功能,都需要有SLAM或类似SLAM的技术作为支撑。所以SLAM技术在未来智能机器人领域的应用应该是一个基础和必须的地位。SLAM技术也成为过去10年来,移动机器人技术研究中最吸引研究资源的领域之一。在机器人领域有大量的学术论文阐述了很多研究人员对于SLAM的研究成果,SLAM已经成为智能机器人必须的几项技术中,相对成熟的一项技术。
ROS核心团队和广大的应用开发者也在SLAM技术上投入和很多,产出了一套完整的ROS的应用架构,有了很多成熟的案例。无论是地图建模还是智能蔽障,我都看到大量的应用案例和视频等在Internet上传播。ROS的PR2机器人以及TurtleBot移动平台,都能够对ROS社区提供的有关SLAM的功能模块提供很好的兼容性。从ROS社区的大量文章、案例、软件工具集、教材等可以看出,ROS社区在SLAM技术上相对其他技术来讲,有更多的积累和经验,所以,ROS对于SLAM技术的实现和支持上具有一个很好的基础。我们可以在这个方向上做一些提升智能性、稳定性和产品化的工作。
我想,ROS之于SLAM,应该是使得SLAM的应用变得像插入一个U盘一样简单的事情。终极的产品形态可以是基于ROS接口的,具备SLAM功能的激光或3D传感器及配套软件服务包,让用户接入3D扫描设备即可享用设备所提供的地图建模服务。
1.ROS在SLAM领域的应用目标:
提供基于ROS协议和软硬件环境的SLAM技术服务,产品形态可以是纯软件包或者软硬件结合的产品或服务。比如,指定kinect和turtlebot/iRobot/ExBot等传感器和平台,提供一条龙式的地图建模与应用的软件节点与使用教程,再扩展对更多的硬件支持,以满足不同场景的需求。目标是要形成全国甚至全球ROS+SLAM领域用户量最大的产品,成长为在机器人SLAM技术领域的技术和服务提供方。可能的愿景是通过云SLAM服务搜集室内数据,建立起一个庞大的公共服务机器人地图建模和室内地图数据运营商。数据服务可应用在如学校、商场、运动场馆、博物馆等地点的服务机器人上,且具有跨场景能力,无需重复建模,类似车载导航使用的地图数据服务。
2.ROS在SLAM领域的应用需求:
当自主移动机器人、四旋翼无人机等在实际地理环境中进行工作时,要想实现自主导航,主动蔽障等功能,都需要有SLAM或类似SLAM的技术作为支撑。所以SLAM技术在未来智能机器人领域的应用应该是一个基础和必须的地位。易用的SLAM技术,将成为机器人开发和生产者得心应手的工具,让开发者可以专心自己的核心模块开发,而不用担心在地图建模模块部分花费太多精力。所以基础技术模块的易用性将取得广泛的市场需求,赢得客户。
3.ROS在SLAM领域的应用资源和战略分析:
稳定的SLAM节点软件服务应该是合适的产品方向。
首先在成熟的、用户量大、应用场景典型的移动平台上,借助ROS社区提供的基础包,实现2-3种传感器信号下的SLAM及导航功能。再将SLAM软件包进行优化。
优化后的软件服务打包成产品级的服务,典型的应用方案,详细的使用手册,供用户免费使用并利用反馈不断改进。
目标是通过易用的SLAM解决方案首先完成对高校和科研院所市场的占领,因为高校和科研院所目前应是SLAM技术应用最广泛的地方。
探索通过云服务的方式,进一步简化SLAM应用的开发周期和配置难度,使有wifi的地方就能使用云SLAM技术,完善云端建模、驱动、控制等算法。
高级目标是通过云SLAM服务搜集室内数据,建立起一个庞大的自主移动机器人地图建模和室内地图数据。
4. 终极目标
终极目标是ROS架构的云机器人实现了大部分智能模块都通过云服务的方式提供算法服务,让机器人的下游应用开发在ROS的协议下,通过简单的积木式搭建即可建成自己的智能机器人,服务于各行各业,走进各家客厅。
嵌入式设备在21世纪的井喷式发展是人们有目共睹的,嵌入式计算组件在汽车、消费电子、航空等各领域都占据了绝对的数量和重要性。无论在工业或服务机器人领域,嵌入式设备同样占据重要地位。ROS作为一种为机器人打造的软件工具平台,发源于基于PC的软硬件系统,随着机器人应用的普及和机器人开发需求的扩大,嵌入式的机器人开发模块和解决方案必将层出不穷,而ROS将以其先天的模块化、代码复用、节点协议统一等优点,一旦和嵌入式系统的可定制化、小型化、低成本、实时性等优势结合,必将带来机器人开发和应用方式的革命。注意关注ROS社区的新闻即可发现,负责运营ROS的”开源机器人基金”已经于2014年宣布着手支持高通骁龙600型arm处理器[3],和被人们广泛使用的树莓派嵌入式计算平台[4]。BOSCH公司已经有人在2015年8月发布了基于嵌入式 STM32F4Discovery 平台的实时ROS中间件开发项目。
1.ROS的嵌入式应用发展目标:
利用现有的被用户广泛使用的嵌入式平台,比如STM32F4Discovery,开发基于ROS协议中间件。
选取几种典型的机器人本体、移动平台等进行嵌入式ROS改造,或者开发自有的嵌入式ROS产品,产品可包括:运动控制板卡,电机驱动板卡,智能传感器,智能执行器,等等。
另一条路即发展基于ROS的嵌入式软件服务,开发易用、跨平台、可靠的、基于ROS协议的嵌入式app,覆盖电机控制、图像识别等机器人功能,这条路比较长远,不过等ros生态发展起来之后,可能会有这样的模式,短期内不太可行。
2.ROS的嵌入式应用需求:
由于嵌入式系统的巨大需求量已经被验证,而ROS平台的应用价值一旦被市场验证和接受到一定程度,毋庸置疑,ROS的嵌入式应用需求随之就会呈现爆发式增长。
3.ROS的嵌入式应用资源和战略分析
ROS的嵌入式应用在全球来讲,还处在发展的萌芽阶段,但涉及的技术仍是计算机工程领域比较成熟的技术。研发团队在了解了ROS的核心架构以后,便可开展ROS的嵌入化、裁剪、定制等工作。
我想,ROS的嵌入式应用应该落地到某个设备上,比如基于ROS的嵌入式智能3D传感器,或支持ROS协议的驱动器、实时控制器等等。可以简单低廉的IMU传感器开始着手。
既然ROS的嵌入式应用最终落地的产品形态是:支持ROS协议的嵌入式机器人模块器件,那么ROS在这一领域扮演的角色就应该是使模块复用ROS已有的包,实现更加智能化的角色,核心部件还是传统的模块和器件制造。可以探索的一条路子是解决这样一个问题的方案:如何使传统部件快速支持ROS平台。是安装一个软件包?升级固件?还是加装一个控制器模块?可以在这方面做一些探索,比如基于现有的Arduino平台、arm平台等进行ROS化开发,形成快速ROS化的软硬件工具和解决方案,并将此解决方案形成产品进行市场推广。
相信随着ROS对目前主流的机器人平台支持越来越多[5],反过来,主流的算法研发软件、计算平台、传感平台[6]越来越多地支持ROS. ROS即将迎来一个爆发的时代。当然,ROS以及机器人产业的发展,并不一定按照以上所述的三种路线进行。本文只是在作者粗浅的认识、浅薄的知识基础上,基于作者对产业界发展的观察心得,和作者对ROS新闻及机器人业界动态的关注和调研,尽最大努力所作的判断。希望能对读者有所启发,抛砖引玉。
[1] Mathworks releases Robot Operating System (ROS) Support from MATLAB
[2] Pozyx Accurate positioning
[3] Robot Operating System ToOfficially Support ARM Processors
[4] ROS on Raspberry Pi
[5] Robots Using ROS
[6] RPLIDAR now supports ROS and Arduino