机器人操作系统
机器人操作系统,几乎总是被简称为 ROS,是一套免费、开源的工具箱,用来构建驱动机器人的软件。尽管名字里有“操作系统”,它其实并不是像 Windows 或 Android 那样、负责启动你电脑的操作系统。它更像是一套共享的车间工具,外加一种大家约定好的“语言”,运行在普通操作系统之上,好让机器人体内众多的小程序能彼此交谈,并复用别人已经做好的工作。如果没有 ROS 这样的东西,每个团队都得一遍又一遍地重新发明:摄像头程序该怎么把一张图片交给导航程序。
它的核心思路,是把机器人的“大脑”拆成许多各司其职的小程序,称为节点:一个读摄像头,一个找障碍物,一个规划路径,一个驱动轮子。ROS 给这些节点提供了一个共同的“邮局”,让它们能互相传递消息,而每个程序都不必确切知道其他程序跑在哪里、是用什么写的。在这套“管道”之上,ROS 还打包了社区分享出来的成千上万个现成零件——真实电机和传感器的驱动、建图与导航的程序库,以及让你观察数据流动、或回放一段录制运行的工具。正因为可复用的东西如此之多,一个小团队几周就能搭起一台能用的机器人,而不必耗上几年。
ROS 经历了两个大时代:最初的 ROS 1,它让这些理念在科研实验室里流行起来;以及更新的 ROS 2,它被重新打造得更可靠,以适应真实产品、同时协调多台机器人,并满足安全与信息安全方面的要求。如今 ROS 是这个领域里最接近“公共地基”的存在,被大学讲授,也被用在从仓库机器人到科研人形机器人的方方面面。
一支学生团队在做送货机器人时,直接拿来一个现成的 ROS 导航软件包,接上他们自己写的摄像头节点,一个下午就让机器人沿着走廊跑了起来——而不必从零开始写路径规划的数学。
复用共享的 ROS 软件包,把几个月的工作变成一个下午。
ROS 本身主要是一个框架加中间件,再加上一大库共享软件包——它通常运行在 Linux 之上,所以它是机器人软件的一个“层”,而不是一个真正的操作系统。