第三章:机器人基础与坐标系
大家好,我是老张。今天咱们聊聊机器人视觉引导里最绕不开的一个话题——坐标系。说实话,我带过不少新人,十有八九第一次做手眼标定时都会栽在坐标系的理解上。我自己当年也踩过坑,有一次在产线上折腾了整整两天,最后发现是工具坐标系没设对。嗯,咱们今天就把这块彻底讲透。
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毫米啊,在精密装配里就是天壤之别。
标定工具坐标系常用的方法:
- 四点法:让机器人以不同姿态对准一个固定尖点,记录4组数据,系统自动算出TCP
- 六点法:在四点法基础上,再加两个点确定工具姿态
- 直接输入法:如果你知道工具的具体尺寸,可以直接输入偏移量
我个人推荐用四点法,简单可靠。但要注意,四个点的姿态差异要大一些,否则算法会不稳定。
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 标定流程(简化版)
- 安装好相机和标定板
- 控制机器人移动到多个不同姿态
- 在每个姿态下,记录机器人位姿和相机看到的标定板位姿
- 用算法求解AX=XB
- 验证标定精度
避坑指南:我曾经在标定时,标定板放得太靠近工作台边缘,结果机器人运动到某些姿态时,相机拍不到完整的标定板。嗯,这导致采集的数据有一半是废的。所以标定板的摆放位置一定要提前规划好,确保在所有姿态下都能被完整拍到。
3.4 小结
这一章咱们聊了三个核心内容:
- 机器人运动学基础——正解和逆解
- 关节坐标系与工具坐标系——怎么定义机器人的「身体」和「手」
- 手眼标定概念——让机器人的眼睛和手对齐
下一章我们会深入讲手眼标定的具体实现,包括代码和实操步骤。到时候我会分享一个我实际项目中用过的标定脚本,大家可以参考。
记住一句话:坐标系搞不清楚,视觉引导就是空中楼阁。别嫌基础,多动手练练,自然就通了。