ROS刚刚度过了9岁生日,这九年以来,无论国外还是国内,越来越多机器人开发者或者机构选择ROS,同时也为社区贡献了更多更优秀的代码,从下边这张图我们可以看到,这种成长几乎是指数级的。
Image[6]1[6]
      2007年11月,Willow Garage公司孕育许久的一个宝宝终于诞生了,并且取名叫做ROS,Willow Garage 专门为他设计了一个机器人玩具——PR2,没想到,ROS宝宝悟性极强,很快就学会了怎么玩这个PR2,Willow Garage 发现ROS宝宝潜力很大,就继续教ROS宝宝学习更多通用机器人软件包的知识,让他学会了怎么去玩更多的机器人,就算遇到一个新的机器人,也可以将以前学到的知识运用到上边,继续愉快的玩起来。但是那个时代,毕竟ROS宝宝可以玩、会玩的机器人少,主要就是玩PR2,于是迫于局限,也存在一些性格上的不足:
  1. 只能同时玩一个机器人,多机器人就不会玩了。
  2. 脑力有限,只能依靠自身的资源做心算,如果要玩的功能太复杂,就心有余而力不足了。
  3. 脑子转的慢,没有实时性,有的时候会算不过来。
  4. 神经系统不发达 ,自身的各个关节部分都需要保持良好的连接,各部分通讯数据量有点大。
  5. 还只能在实验室或者研究机构里托管,不能让他带着机器人和大众玩。
Image(1)[6]
       但是 Willow Garage相信自己的孩子,并且把该上小学的ROS放到了社区这个学校里,接收世界各地开发者老师的培养和教育,这也让ROS接触到了众多资源,激发了他内心强大的学习欲望,并且一路从小学到初中到高中,成绩越来越好,最后以名列前茅的成绩考入了理想的大学
       在这段成长最重要的时光里,我们确实可以看到,ROS已经不是当年的宝宝,也不仅仅会玩PR2、TurtleBot等机器人,在轮式机器人、类人机器人、工业机械臂、自动驾驶汽车、探索飞船、救援车辆等领域,都已经可以看到这位ROS小朋友勤奋努力的身影。而且他已经不是当年那个会打碎花瓶的熊孩子,他逐渐成长为一个教养有佳的翩翩少年,他带着不少服务机器人走进了人类的日常生活,同时和农业机器人、工业机器人一起,为人类的生产生活贡献着力量,最酷的是,NASA的叔叔阿姨还让他搭乘 Robonaut 2去了国际空间站,曾经那些欺负他的小朋友( MSRDS等),不仅没有打倒他,还让他学会了吸星大法的内功,现在在机器人领域,几乎无人能敌。
Image(2)[6]
      但是ROS并没有骄傲,在上大学里,他发现了一个全新的世界。那里有很多课程需要他去学习,他第一次接触到那么多从来没听说过的新技术,而这些技术都是他的基础课程:
  1. Zeroconf: 零配置网络服务规范, 用于自动生成可用IP地址的网络技术,不需要额外的手动配置和专属的配置服务器。
  2. Protocol Buffers: Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面, 它不依赖于语言和平台并且可扩展性极强。
  3. ZeroMQ (and the other MQs): 一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。
  4. Redis: 一个高性能的key-value数据库
  5. WebSockets:HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。
  6. DDS (Data Distribution Service): 新一代分布式实时通信中间件技术规范,DDS采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。
H_ROS3[6]
   在学习以上这些基础技术课程的基础上,ROS需要灵活应用这些技能,并且在高年级的学习中修炼综合能力:
  1. 多机器人控制。这个能力厉害了,以后可以同时驾驭多个机器人,别提多炫酷了,必须好好修炼,说不定还能靠此技能吸引异性呢。
  2. 多平台应用支持。这个能力要求ROS要学会大丈夫能屈能伸,不仅要能在性能强劲的计算机上跑,还要能在资源有限的嵌入式平台上跑。
  3. 实时应用支持。这个需要好好修炼内功,让自己完善时间管理能力,说几点起就几点起,说几时完成任务就几时完成任务。
  4. 增强网络通信能力。这个能力正是ROS所需要的,原来上100楼,走到50楼还得缓冲一下,这门课就是教ROS如何上100楼大气不喘的,就算楼要倒,还能飞起来。
  5. 产品应用。这个能力要求ROS具备更强的可靠性,以后就可以带着更多机器人去到更多普通人的家里玩了。
  6. 灵活构建。这是个学习能力,要求ROS学习更多的新特性,无论面对多么复杂的机器人系统,都可以轻松应对。
     这么多的课程需要学习,这么多的能力需要修炼,这个大学生涯对于ROS可不轻松了。

     ROS就像一个孩子,在加速成长的过程中,也需要不断适应外部坏境的发展,吸收更多与时俱进的技术,从而使自己更加优秀强壮。相信等到他毕业之时,必将是一个全新的自我,我们可以使用全新的API与他交流,他也会变得更加优秀,不仅依然会玩曾经的机器人,还可以玩好更多机器人,甚至可以玩机器人领域之外的东东。他并不会在原有基础上查漏补缺,而是脱胎换骨的涅磐重生,从少年成长为青年,更加蓬勃也更加好强,带着多年所学,立志闯出大好未来 。
       所以,他也应该有一个全新的名字——ROS 2.0。
Image(3)[6]
 
 
注:
      ROS探索总结系列的文章从2013年开始发表,时过境迁,也要跟上技术进步的步伐。2016年12月19日,ROS2.0第一个beta版本正式发布,给ROS开发者又来了一剂强心针,我们就从此开始,从这篇文章开始,走近ROS2.0的时代,继续探索总结,至于什么时候能够“走进”,就让我们一起拭目以待吧。
 
参考资料:
ROS和ROS2.0现在到底该学习哪个呢?:https://zhuanlan.zhihu.com/p/24391444