世界坐标系与本体坐标系
这是机器人里最重要的两个坐标系,关键全在于:一个静止不动,另一个跟着动。世界坐标系(也叫全局坐标系或固定坐标系)被牢牢钉在环境上——比如房间里固定的一个角,或者地图上的某个点——无论机器人做什么,它都纹丝不动。本体坐标系(也叫局部坐标系或运动坐标系)则被粘在机器人自己身上,机器人走到哪它就跟到哪,机器人一转身它也跟着转。它们只是描述同一个场景的两个不同视角。
一旦机器人下达指令,这种区别立刻显现出来。“开到门口”是一句世界坐标系的话——门在地图上有个固定的位置。但“向左转,再往前走两米”却是一句本体坐标系的话——“左”和“前”指的是机器人此刻面朝的方向,所以同一条指令,会因为机器人起初朝向不同,把它送到不同的地方去。这正是“到北门口见我”(世界系)和“它就在你右手边”(本体系)之间的差别:一个锚定在地图上,另一个锚定在你身上。
好的机器人能在两者之间流畅地来回翻译,每秒钟翻译几十次。机器人身上的相机天然是在本体坐标系里看世界(杯子在镜头的左上方),而规划器通常在世界坐标系里思考(杯子位于地图上一个固定位置)。把一个测量值从一个坐标系换算到另一个,是整个机器人领域最常见的操作之一;而忘记自己当前身处哪个坐标系,则是最常见的错误之一——一台把“在我左边”和“地图上的西边”弄混的机器人,会满怀信心地朝着完全错误的方向走开。
一架在阵风中悬停的无人机报告它相对地面的速度在世界坐标系下为 (0, 0, 0)——它稳稳停在地面上方某一点——可它的空速却远不为零:在本体坐标系里能感到空气呼啸而过,电机正拼命抵消每一阵风,好让无人机原地不动。
在世界坐标系里相对地面速度为零,在本体坐标系里却感到强劲气流:同一架无人机,两个视角。
许多系统会同时使用好几个本体坐标系——底座一个、机械臂手腕一个、相机一个——它们全都在动,并且全都相对那唯一固定的世界坐标系被追踪记录。