自1961年发明家George Devol将第一台工业机器人Unimate出售给通用汽车(GM)以来的数十年间,机器人操作系统(OS)有了飞跃式的进步,它们从创造者所工作的制造领域开始,后来变成学术界的关注焦点,然后又回归了工业领域。
“在过去,有一段时间在操作系统技术领域有深入且活跃的研究,”美国俄亥俄州立大学(The Ohio State University,OSU)工程学院院长Ayanna Howard接受《EE Times》采访时表示,“但我想说的是,大多数人现在认为较难解决的问题已经解决了,这也是为什么会有更多的专有OS,因为就是要针对特定应用让它更好、更快。”
Ayanna Howard (右二)是美国俄亥俄州立大学工程学院院长。(来源:OSU)
Howard指出,在操作系统,特别是支持机器人系统的操作系统中,较难解决的问题与应用中处理数据和指令的部分有关,包括并行处理、将数据从RAM传送到微处理器,以及处理来自传感器数据的各种片上计算等等。
工业自动化和电子元器件供货商欧姆龙(Omron)就是为特定应用而开发专有操作系统的厂商之一。该公司机器人与安全技术部门首席软件工程师Luke Broyer对《EE Times》表示:“我们在所有的操作系统中大量使用Linux。”
Luke Broyer,Omron机器人与安全技术部门首席软件工程师(来源:Omron)
来自Broyer及其团队的一些OS软件,是为Omron的自主移动机器人(AMR)所开发。该公司AMR的硬件包括一台x86计算机,用于高级路径规划,以及一般自主功能。该机器人还配备了微控制器(MCU),负责更需要实时回馈的功能,像是与放大器通信、获取反馈还有进行几何运算。
计算机与微处理器通过不同的通信方法沟通,包括串口通信,以及MQTT协议,但Broyer表示他们打算改用DDS协议──这是一种特别适合生产质量数据的中间件标准。
“DDS更适合控制,以及时序(timing)相关的东西,”他解释,“这也是我们要改用DDS的原因,那将会很强大,能让我们所有的传感器将数据馈入总线,而且如果有人想看那些数据,都能够读取…而且我们不需要单独发送数据。”
Broyer指出,Omron以往习惯在AMR的MCU采用实时操作系统(RTOS),但对于他们的目的来说并非必须:“因此,我们转向一些更强大的Arm处理器,让我们可以利用名为Yocto的工具打造自己的定制Linux变体。”
Arm处理器是一个以精简指令集计算机架构为基础的CPU系列,利用Yocto,Omron可以只使用所需的Linux部分,从而保留AMR的处理能力给需要的地方。
另一个专有OS则是在Dusty Robotics的建筑布线机器人上使用。一开始该公司是使用被称为ROS (Robot Operating System)的开源中间件。
“让我们很惊讶的是,很多机器人公司都喜欢ROS,它几乎无所不在。”Dusty Robotics首席执行官Tessa Lau接受《EE Times》采访时表示,“对我们来说,放弃它是一个非常具争议性的决定,因为我们有点是逆势而行。”
Tessa Lau,Dusty Robotics首席执行官(来源: Dusty Robotics)
全球科技情报公司ABI Research战略性技术副总裁Malik Saadi接受《EE Times》采访时表示,目前有超过740家公司采用以ROS为基础的机器人,“包括知名的OEM厂商如Bear Robotics、Canvas、Clearpath Robotics、Fetch Robotics、Gideon、John Deere、Locus Robotics、MiR、Ocado与 Vecna Robotics。”
他进一步指出:“最近几年,像是Amazon、Google、Microsoft等大公司,也开始对系统业务显露兴趣,并对ROS表示支持。这些趋势让ABI Research认为,到2030年,全球将有四分之三的商用机器人会内含某种形式的ROS套件。”
ROS在2017年被更新到ROS2,每年发布新的更新。ROS-Industrial (ROS-I)将ROS的功能延伸到制造领域,并于2012年在GitHub上发布。
Lau并未对Saadi的看法,即ROS的强大提出异议,但她家的机器人并不需要ROS。她指出,ROS源自于美国斯坦福大学(Stanford University),以及机器人公司Willow Garage,很适合原型设计与研发。
“但当你要打造一款产品,就像Dusty,我们的产品如同一辆车子,”Lau形容,“如果你的汽车工作不正常,你不会发动它,而会重启它,或者你也不会想烦恼得花多少时间才能初始化操作系统。这些都是ROS固有的特性。”
Dusty Robotics在建筑工地现场印制施工布线图。(来源:Dusty Robotics)
Lau和她的团队已经完成以自有定制软件堆栈取代ROS的工作:“我们的机器人只做一件事情,那就是做一台打印机。当你开启打印机,它就会开始打印,其实有95%的ROS功能我们都用不到,但那些东西还是会被加载到你的系统,占据内存空间,拖慢运行速度。”
Lau所言并未触及ROS具有争议性的本质,有一篇概述该开源软件的论文指出,ROS其实并不是“传统概念上”的机器人OS,而ROS-I美洲项目经理Matt Robinson也这样认为。
Robinson接受《EE Times》采访时表示:“那是一个中间件框架,能让不同的部件可以异步交互,以实现某些目标动作,像是拾取物品,或是在我们的案例中通常是喷涂、打磨或焊接。”
他指出,在Linux系统之上,ROS-I能协助机器人实现分析、工具路径规划、碰撞检测等任务。ROS即插即用以及无所不在的特性,已经为程序设计师建立了一些事实上的标准化。
“一开始,ROS的价值在于能够连接不同的传感器。”先进机器人制造(Advanced Robotics for Manufacturing,ARM)研究所工程总监 Larry Sweet对《EE Times》表示,“也因为如此,每一个系统集成商不用一次次重复编写接口代码。”
Lau总结了她的观点:“在一个典型的机器人中,会有硬件,有Linux操作系统,而在那之上则有ROS,所以你可以将之视为操作系统的一部分,那也是它为何被叫做Robot Operating System(机器人操作系统),而你也能把它看成是在Linux操作系统之上的中间件,就像你可以把Tomato(西红柿)叫成‘toh-mah-toh’那样。”
(原文刊登于EDN姊妹网站EE Times,参考原文:Robot Operating System Advances Left Up to Industry。)