第三章:机器人基础与坐标系

大家好,我是老张。今天咱们聊聊机器人视觉引导里最绕不开的一个话题——坐标系。说实话,我带过不少新人,十有八九第一次做手眼标定时都会栽在坐标系的理解上。我自己当年也踩过坑,有一次在产线上折腾了整整两天,最后发现是工具坐标系没设对。嗯,咱们今天就把这块彻底讲透。

3.1 机器人运动学基础

先说说运动学。说白了,就是研究机器人怎么动。你给机器人发个指令,它怎么从A点走到B点?这背后就是运动学在起作用。

运动学分两块:

  • 正运动学:知道每个关节的角度,算出末端在哪。比如你让机器人六个关节各转一个角度,末端执行器会停在什么位置?这就是正解。
  • 逆运动学:反过来,知道末端要到达某个位置,反推每个关节该转多少度。这个在实际项目中用得更多——你告诉机器人「去抓那个零件」,它得自己算出关节怎么动。

我个人的习惯是,做视觉引导项目时,先搞清楚正运动学,再搞逆运动学。为什么?因为视觉系统给的是末端位姿,你得先理解机器人怎么从关节空间映射到笛卡尔空间,才能反过来做标定。

核心概念:机器人运动学本质是空间变换的数学描述。每个关节就是一个自由度,6轴机器人就是6个自由度。你想想看,6个旋转轴组合起来,末端能到达的空间范围有多大?这就是机器人的工作空间。

3.2 关节坐标系与工具坐标系

坐标系这东西,我刚开始学的时候也觉得抽象。后来在项目里摸爬滚打,慢慢就明白了——坐标系就是给机器人一个「参考系」,告诉它「你在哪」、「要去哪」。

3.2.1 关节坐标系

关节坐标系是最直观的。每个关节都有自己的坐标系,原点在关节轴线上。你让机器人动,其实就是改变各个关节的角度值。

举个例子:

  • J1轴(基座旋转):控制机器人整体左右转
  • J2轴(大臂):控制大臂前后摆动
  • J3轴(小臂):控制小臂上下运动
  • J4、J5、J6(腕部):控制末端姿态

我在项目中遇到过一件事:有个同事手动拖动机器人时,一直用关节坐标系单轴运动,结果调了半天位置都不对。后来我一看,他应该用工具坐标系才对。关节坐标系适合做粗调,但做精确定位时,工具坐标系才是王道。

3.2.2 工具坐标系

工具坐标系(TCP,Tool Center Point)是机器人末端执行器上的坐标系。说白了,就是告诉机器人「你的手在哪、朝哪个方向」。

为什么要定义工具坐标系?

  • 机器人默认的末端坐标系在法兰盘中心
  • 但你实际装了个夹爪、焊枪或相机
  • 工具中心点(TCP)变了,坐标系就得跟着变

我的经验:做视觉引导时,工具坐标系一定要标定准确。我曾经有个项目,视觉系统给出的抓取点明明是对的,但机器人就是抓偏。查了两天,发现是TCP标定差了2毫米。2毫米啊,在精密装配里就是天壤之别。

标定工具坐标系常用的方法:

  1. 四点法:让机器人以不同姿态对准一个固定尖点,记录4组数据,系统自动算出TCP
  2. 六点法:在四点法基础上,再加两个点确定工具姿态
  3. 直接输入法:如果你知道工具的具体尺寸,可以直接输入偏移量

我个人推荐用四点法,简单可靠。但要注意,四个点的姿态差异要大一些,否则算法会不稳定。

3.3 手眼标定概念引入

好,终于到重头戏了。手眼标定,说白了就是让机器人「看见」东西后,知道「手」该往哪伸。

你想想看,相机看到的是一张2D或3D图像,图像里的坐标是像素坐标。机器人要抓取物体,需要的是机器人基坐标系下的坐标。这两者之间怎么转换?就是靠手眼标定。

3.3.1 两种常见配置

配置方式 相机安装位置 特点 适用场景
Eye-to-Hand(眼在手外) 固定安装在机器人外部 相机不动,机器人动 大范围、高精度要求
Eye-in-Hand(眼在手上) 安装在机器人末端 相机随机器人移动 小范围、灵活抓取

这两种方式我都用过。Eye-to-Hand适合做定位精度要求高的场景,比如PCB板装配。Eye-in-Hand则更灵活,适合做散乱零件的抓取。

注意:手眼标定不是一次性的。每次更换相机、更换工具、或者机器人本体有碰撞后,都需要重新标定。我曾经吃过这个亏,以为标定一次就一劳永逸了,结果换了个夹爪后,抓取精度直接崩了。

3.3.2 标定的数学本质

手眼标定要解的是一个矩阵方程:

AX = XB

其中:

  • A:机器人末端在基坐标系下的变换矩阵(从机器人控制器读取)
  • B:标定板在相机坐标系下的变换矩阵(从视觉系统计算)
  • X:相机与机器人末端之间的变换关系(这就是我们要找的)

这个方程看着简单,但实际求解时有很多坑。比如数据采集时,机器人姿态变化要足够大,否则解出来的X会不稳定。我一般会采集15-20组数据,覆盖机器人的工作空间。

3.3.3 标定流程(简化版)

  1. 安装好相机和标定板
  2. 控制机器人移动到多个不同姿态
  3. 在每个姿态下,记录机器人位姿和相机看到的标定板位姿
  4. 用算法求解AX=XB
  5. 验证标定精度

避坑指南:我曾经在标定时,标定板放得太靠近工作台边缘,结果机器人运动到某些姿态时,相机拍不到完整的标定板。嗯,这导致采集的数据有一半是废的。所以标定板的摆放位置一定要提前规划好,确保在所有姿态下都能被完整拍到。

3.4 小结

这一章咱们聊了三个核心内容:

  • 机器人运动学基础——正解和逆解
  • 关节坐标系与工具坐标系——怎么定义机器人的「身体」和「手」
  • 手眼标定概念——让机器人的眼睛和手对齐

下一章我们会深入讲手眼标定的具体实现,包括代码和实操步骤。到时候我会分享一个我实际项目中用过的标定脚本,大家可以参考。

记住一句话:坐标系搞不清楚,视觉引导就是空中楼阁。别嫌基础,多动手练练,自然就通了。