关注于机器人行业的人,大抵或多或少地了解过ROS。ROS是机器人操作系统的简称,是目前世界上最火的开源机器人研发框架,已经被成功部署到了许多的机器人产品当中。
ROS社区是ROS开发者、使用者、学习者等等ROSer们在线互动的平台,其中主要包括如下几个网站:
ROS Answers: Open Source Q&A Forum
对于开源项目来说,社区的热度直接反映了项目的流行程度。我们来通过ROS社区的状态分析来判断ROS的活跃度。
活跃用户分析
从数据上看, 2019年,ROS继续维持了告诉扩展。活跃用户数持续维持了高于22%的年增长率。今年的数据更猛,超过了25%(从2018.10.19的27492,到2019.10.21的34417)。
如上图所示,用户数(图上蓝线)在2019年6,7月份发生了一次较大的跃迁。这次跃迁不是因为某个重大事件的激发,而是由于黑客的攻击。因此排除这个因素,22%这个往年的增长率会更接近现实一点。然而即使是22%这个数据,也已经相当惊人了,毕竟这是连续维持了8年之多的记录。
另一个喜人的数据是,在这些用户数中,活跃的能够高质量回答问题的人数在逐年增加,占总用户数的比率也比较稳定。
而从用户访问的时间上来看,也存在明显的规律。随机选取2019年7月份的answers.ros.org站点的访问数据来分析,大家都是周六、周日休息,周一到周四狠命干活,周五半干活半休息,日子还是相当惬意的。(^,^, //dog-head)。
从软件包的活跃程度上来看,ROS2(以及多机协作)成为了2019年的最热门方向。
如上图所示,rosbridge是2019年迄今为止最热门的一个软件包,该包实现了ROS跟ROS2之间数据通信的桥梁,是部署ROS2跟ROS混搭系统的必要模块。当然rosbridge也被应用在ROS系统中跨平台时的信息中继,这个功能常被用来支持非标准Linux系统的人机界面子系统或者其他的机器人操作框架。
从趋势讲,2015年重点在移动机器人,2016、2017年重点在人工智能、计算机视觉,2018年重点在机械臂集成以及协作机器人(cobot),2019年重点在ROS2(新一代的机器人操作系统)以及多机协作。当然,这些重点体现在研发的投入跟产出上,而不一定会反馈在用户的真实体验上。
ROS版本应用趋势
从使用的ROS版本上,一个稳定的趋势还是大家都是优先选择使用长期维护的版本的,譬如indigo、kinetic、melodic等等。截止到发稿前,Melodic版本正以快速的增长速度试图取代Kinetic的主导地位。而Kinetic的优势地位,还得益于目前已经部署的软件的维护工作,可以猜测的是,新入手ROS的人们以及搞科研的个人或团体都在大概率使用新版本Melodic。另一个明显的趋势是,虽然使用的人还在少数,但是ROS2的应用已被触发,其蓬勃发展的趋势已初露端倪。笔者也建议从事机器人开发与应用的各位玩家们,不要忽视了这个趋势,早做准备,不至于到时措手不及,失了先机。
而如果从软件包维护的活跃度(反映开发的活跃程度)上来看,这个趋势更明显。
从开发的活跃程度上来看,ROS2(主要以已经发布的Dashing版本和即将发布的Eloquent为代表)占了主力,超过了60%。而ROS的新版本的开发仅占区区4%。因此可以得出明显的结论:由于开发周期以及产品维护的因素影响,ROS还是目前使用最广的机器人操作系统,然而ROS2正吸引了绝对的开发主力,ROS2正在期待在合适时机引来机器人操作系统的另一次爆发。而机器人操作系统的更新换代将有可能触发机器人行业的新的一轮的螺旋式上升。
硬件架构和软件操作系统选择趋势
在硬件架构的选择上,X86架构还是一贯维持了它的绝对主导地位,截止发稿的一年时间内,X86架构的占有率稍有下降,但还是维持在95%以上。ARM架构不具备明显的增长趋势,维持在5%一下。而X86架构中,64位系统的占有率表现出明显的增长趋势。
从操作系统的角度来看,Ubuntu还是理所当然的王者。这个也符合预期,Ubuntu是ROS/ROS2官方指定的操作系统,相关的工具最为完备,测试也更全面,软件包的质量自然也是最高最稳定的。在过去的一年内,Ubuntu 16.04(Xenial)完成了自己的峰值应用阶段,Ubuntu 18.04(Bionic)正快速地抢占16.04的天下。
ROS/ROS2的不足之处
这里的不足不涉及机器人技术方面的困难与不足,只从ROS社区的统计数据上来分析宏观趋势上的颓势与不足。
毋庸置疑,ROS以及ROS2在总体上还是处于健康的发展状态。然而也有一些数据,表现出来在一个开源社区发展壮大到一定程度之后的疲态与鱼龙混杂。
以answers.ros.org站点为例,活跃程度确实是越来越高(上图中的红色、青色和紫色曲线所代表的问题(Questions)与回答(Answers)总量),然而,所提出问题被正确回答的比例确实连年下降的。这个现象一方面反映了站点吸引的新手比较多,因此问题总是比回答要多,另一方面也反映了具备帮助别人解决问题的意愿和能力的人在所有会员中的比率在逐年下降。
一方面,这是所有的流行的开源框架的一个通病。由于入门门槛低,免费而且托收可得,因此有一部分一时兴起、或者因为一时的需求而接触,而过段时间之后,这类用户就会变得很不活跃。
而另一方面,这个统计数据也会影响到整个论坛的Karma得分。
Karma得分也常常被用来分析一些论坛的水平,也渐渐被大家所认可。Karma通过“因果报应”的响应程度来分析被影响的人的幸福感指数。举个例子来说,你在一个系统里做了一个A,你期望得到B,但是你迟迟得不到B,你就不会太happy,也会认为这个系统不够好。同样,你在一个论坛里问了个问题,迟迟得不到回答,你可能就会想,是不是别人都把我当成猪啊,这会很伤我的心啊!因此对于那些问了问题急切需要答案的人来说就是一种打击,因此论坛对用户的粘度就不够高。同时,由于不能得到有效的良性互动,就很难发生井喷时的爆发。
从上图可以看出,answers.ros.org论坛的Karma得分还是偏低的,大多数用户的得分小于10.
当然这些不足,我们可以期待随着高学识的人类以及高回报的项目的加入,ROS/ROS2系统能够帮助推动机器人技术与行业的发展。这个是可以期待的,因为单单是发表在2009年的一篇基本论文《ROS:an Open Source Robot Operating System》,在过去的一年内,被引用的次数就环比增长了22%,这是一个很好的趋势。
中国在ROS社区的地位
单独分析一下中国。中国一直是ROS社区的顶级活跃国家,在2019年也不负众望地成为了No.1。当然,这仅仅是从数量上来看的。从2019年7月份的社区用户数据看,中国已经超越第二名美国好大一块啦。
从质量上来说,中国跟美国相比,还是要稍逊一筹的。且不从每个包的重要性,单从接触模块的广度上来说,中国也不是第一名,而且跟美国的差距甚远。当然,从涨势来说,还是很喜人的。如下图所示,在过去的4年中,已经稳定地从第5名上升到第2名啦。
台湾前几年发力不少,也曾经达到排名11的地位,然而毕竟人少底子薄,中气不足,也终究不能持续,在2019年跌到了第13位。
让我们共同期待这个世界会更好!!!