转自:
你知道市面上的机器人都采用了哪些操作系统吗?
估计大多数人给出的答案就是Android了。从市面上的产品来看,基于Android系统开发的机器人确实是主流,但是还有一种操作系统却鲜为人知,它叫ROS(机器人操作系统,Robot Operating System),是专门为机器人设计的一套开源操作系统,时至今日已经诞生八年时间了。
ROS究竟为何物?
ROS的前身是斯坦福人工智能实验室为了支持STAIR(斯坦福大学人工智能机器人项目)而建立的交换庭(Switchyard)项目。要了解ROS的发展历程,则要从2007年开始谈起。
当时,Morgan Quigley,Eric Berger和Andrew Ng发布了一纸有关STAIR的论文,该文件讲述的就是用Switchyard可以在各软件程序之间传递信息,进而帮助机器人有效的完成一些复杂的任务。起初,这个项目是斯坦福大学和机器人技术公司Willow Garage的个人机器人项目(Personal Robots Program)合作进行的,2008年后完全由这家公司推广。到2009年,相关文件提到Switchyard可以让机器人编译模块化,而且不需要重新设计框架,ROS操作系统也就随之问世了。
2012年,ROS团队从Willow Garage独立出来,并且成立了一个非盈利组织(OSRF)。经过这几年的发展,ROS从最初的无人问津的小众操作系统,到现在已是主流的机器人操作系统之一。
根据市场调查,目前已经有很多机器人公司采用了ROS系统来开发一些应用于全新市场的产品,如ClearPath,Rethink,Unbounded,Neurala,Blue River,最典型的就是Willow Garage的PR2机器人。还有数据显示,仅2015年,相关风险投资机构就在基于ROS操作系统的机器人公司投资了超过1.5亿美元。
除此之外,还有不少大型公司开始注意到了这个操作系统,例如,Nvidia、博世、高通、英特尔、宝马以及大疆等。
当然,ROS要普及离不开开发者的支持。据不完全统计,今年5月全球共有70000多个独立IP下载了900万次ROS程序包。另外,在ROS开发者社区里面的1840位成员一共写出了1000万行代码。
ROS有何特点?
事实上,ROS和Android一样是开源的,功能上也是相差无几,它可以提供硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。其独特之处在于,能够支持多种语言,如C++、Python、Octave和LISP,甚至支持多种语言混合使用,这可以简化开发者的工作。因为它是基于Linux的系统,其可靠性也会更高,体积可以做到更小,适合嵌入式设备。
另外,ROS是一种分布式处理框架,开发者可以单独设计可执行文件。不同节点的进程能接收、发布各种信息(例如传感,控制,状态,规划等等)。
但是就目前来看,在业界公认的机器人三大操作系统——Ubuntu,Android和ROS中 ,就目前来看,使用Android操作系统的企业居多