一、机器人“看见了”,为什么还是抓不到?

用一个直观案例引入:

摄像头已经识别出桌上的水瓶,也画出了准确的检测框,但机器人却走偏了,或者机械臂伸向了错误的位置。

问题可能不在识别模型,而在于:

  • 检测框表示的是图像中的像素位置;

  • 水瓶的三维位置需要在相机坐标系中计算;

  • 机器人移动时使用本体、里程计或地图坐标系;

  • 机械臂抓取时还要使用机械臂基座和末端执行器坐标系。

核心观点:同一个目标,在不同坐标系中的数字完全不同。机器人行动前,必须先回答“这个位置是相对于谁而言的”。

二、坐标系到底是什么?

通俗解释:坐标系就是机器人描述位置和方向时使用的“参照物”。

重点说明:

  • 位置通常用x、y、z表示;

  • 姿态可用欧拉角、旋转矩阵或四元数表示;

  • 坐标数据需要同时说明所属坐标系;

  • 机器人运动场景中的数据通常还要带有时间戳;

  • 单独给出“目标在(1,2,3)”没有实际意义。

建议配图:同一个水瓶分别在地图、机器人本体、摄像头和机械臂视角下,对应不同坐标值。

三、机器人常见的6个坐标系

1. 地图坐标系:机器人在整个环境中的位置

在ROS系统中常见名称为map;仿真或其他系统也可能使用world,但两者的定义不一定完全相同。

地图坐标系用于描述机器人、目标点和障碍物在全局环境中的位置,是全局导航和任务规划的基础。

map通常由SLAM、定位系统或外部定位设备建立,并不等于真实世界中的经纬度坐标。

2. 里程计坐标系:机器人从哪里走到了哪里

在ROS系统中常见名称为odom

它通常根据轮式里程计、视觉惯性里程计等信息估计机器人的连续运动,短时间内比较平滑,适合运动控制和局部规划。

重点说明:

  • map追求全局位置正确,但可能因重定位发生修正;

  • odom追求局部连续,但会因轮胎打滑和传感器误差产生长期漂移。

3. 机器人本体坐标系:前后左右以谁为准

常见名称为base_linkbody

它通常固定在机器人底盘或机身上,机器人的前进、后退、左右移动和旋转方向都以它为参照。

例如,“向前移动1米”通常描述的是机器人本体方向,而不是地图中的固定方向。

4. 传感器坐标系:摄像头看到的位置

相机、深度相机、LiDAR和IMU等设备都有各自的坐标系。

不同传感器的轴方向可能不同。例如,相机光学坐标通常以z轴指向镜头前方,而机器人本体坐标通常以x轴表示前方,二者不能直接混用。

这里引出三个关键概念:

  • 相机内参:描述像素位置与相机成像之间的关系;

  • 传感器外参:描述传感器相对于机器人本体的位置和姿态;

  • 深度信息:检测框只提供二维像素区域,还需要深度图或点云,才能估计目标的三维位置。

5. 末端执行器坐标系:机械臂真正从哪里抓

常见名称为tool0toolend_effector

它通常固定在夹爪、吸盘或工具中心点上。即使已经知道目标在机器人旁边的三维位置,也必须进一步计算末端执行器应以什么位置和姿态接近目标。

这里可以带出:

  • 机械臂基座与相机之间的标定;

  • 手眼标定;

  • 工具中心点和抓取姿态。

目标识别正确但外参、工具中心点或抓取方向错误,仍然可能导致抓偏或抓空。

6. 目标或任务坐标系:机器人最终要去哪里、操作什么

目标坐标系可以以目标物体、导航目标或操作区域为参照建立。

例如:

  • “走到椅子前方1米”;

  • “抓住杯柄,而不是杯身”;

  • “移动到目标左侧”;

  • “找到离机器人最近的工具箱”。

这类任务不仅需要目标类别,还需要区分具体实例、局部区域、空间关系和相对位置。

四、6个坐标系如何串起来?

以“机器人找到桌上的水瓶并靠近”为例:

二维目标区域 → 结合深度或点云恢复三维位置 → 相机坐标 → base_link → odom/map → 生成导航目标 → 局部规划与控制

如果还需要机械臂抓取,则继续经过:

目标三维位姿 → 机械臂基座坐标 → 末端执行器目标位姿 → 轨迹规划 → 夹爪执行

强调:

  • 二维检测框不能直接作为机器人的三维行动坐标;

  • 坐标转换需要使用同一时间点对应的位姿关系;

  • 标定、时间同步或轴方向错误会沿转换链路传递,最终造成定位、导航或抓取偏差。

建议配一张完整转换流程图,分别用颜色区分视觉感知、坐标转换、规划决策和底层控制。

五、最常见的5类“坐标坑”

1. 轴方向混用

相机、机器人、地图和机械臂对前方、上方的定义可能不同,直接混用容易导致方向完全错误。

2. 单位混用

像素、毫米和米属于不同量纲,不能直接放在一起计算。

3. 时间戳错位

机器人已经移动,却仍然使用旧图像对应的位姿,会造成目标位置偏移。

4. 标定参数不准确

相机位置变化、安装松动或外参标定不准,都会影响最终的三维定位和抓取结果。

5. 坐标正确,但目标选错

模型可能识别到了同类物体,却没有选中自然语言指令真正指向的目标实例。坐标转换再准确,也会让机器人走向错误目标。

六、从坐标转换进一步走向“理解后行动”

传统视觉链路通常先检测固定类别,再通过规则筛选目标。面对“拿着手机的人”“离机器人最近的箱子”“位于门口左侧的椅子”等指令,仅有检测框和坐标转换还不够。

面向真实机器人,还需要三类能力协同:

  • 持续理解环境变化,而不是只处理单张静态图片;

  • 根据自然语言完成细粒度目标选择、区域定位,并在目标不存在时拒绝输出错误结果;

  • 将感知结果转化为规划与控制模块能够使用的局部目标、空间锚点或短时行动建议。

这里可以自然带出端侧流式理解、细粒度定位和局部行动规划等技术方向,但不将视觉模型表述为能够独立完成完整机器人系统。

七、结尾

机器人真正需要的,不只是知道“画面里有什么”,而是持续回答四个问题:

“目标是谁?”

“目标在哪里?”

“它的位置是相对于谁?”

“下一步应该往哪里走?”

坐标系负责建立空间基础,语义感知负责选对目标,规划模块负责把目标转化为行动,控制器负责真正执行。只有这些环节正确协同,机器人才能从“看见目标”真正走向“理解并行动”。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐