机器人操作系统 除了Android还有一个ROS
文/程弢
你知道市面上的机器人都采用了哪些操作系统吗?
估计大多数人给出的答案就是 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 操作系统的企业居多。