多机器人系统、人机交互与软件
机器人中间件
机器人中间件是处在“中间”的那一层软件——位于机器人众多彼此独立的程序,与它们下方的硬件之间——让所有这些部件能互相找到对方、彼此交谈。“中间件”这个词的意思,就是住在中间、负责“管道杂活”而不是干主角活儿的软件。可以把它想成一栋楼里的电线、水管和总配电盘:你从不会去欣赏水管,但少了它们,厨房、卫生间和暖气就没法共享水和电。中间件就是那条看不见的连接组织,被看得见的机器人程序所依赖。
它默默地包办了三件本来会很头疼的杂事。第一是消息传递:把数据从产生它的程序(比如摄像头)送到任何想要它的程序,并把每条消息打包、投递。第二是发现:当一个新程序启动时,中间件帮它自动找到那些已经在运行的其他程序,这样谁都不必手动把地址写死在代码里。第三是硬件抽象:它把某个具体电机或传感器那些杂乱、与品牌相关的细节,藏在一个干净、标准的接口背后,于是其余代码只要说“向前开”,而不必关心轮子是哪家公司造的。换上同一类的另一个传感器,上层程序几乎察觉不到。
正因为中间件包办了这些管道杂活,做机器人的人才能把精力放在“行为”上——感知、规划、执行——而不必每次都重新解决“字节如何在程序之间传输”这个问题。ROS 内部那个负责消息传递的核心,是机器人中间件最著名的例子,但这个理念是通用的,在整个领域里以许多不同的名字出现。
一名工程师把一台旧的激光扫描仪换成另一家厂商的新型号。由于中间件把这两者都藏在同一个“距离读取”接口背后,导航程序原封不动就能继续运行。
硬件抽象让你能更换零件,而不必重写“大脑”。
中间件天生就是“隐形”的:它工作正常时,你会忘了它的存在;只有当消息丢失、迟到,或两个程序互相找不到对方时,你才会注意到它。
又称
另见