1. 课程导入与工程全景
在工业现场,机器人“看见”一个零件并把它抓起来,看似只是一个动作,背后却是一条从像素到关节的完整信息链。视觉系统给出的是图像坐标,机器人执行的是关节角度,两者之间隔着相机标定、手眼关系、坐标系变换、抓取位姿生成、逆运动学求解等多道环节。本课程要解决的,正是这条链路上最容易出错、也最考验工程能力的一环——位姿转换。
先建立整体图景。一个典型的机器人视觉引导抓取系统,通常由五类对象构成:
- 感知端:2D 相机或 3D 相机(结构光、ToF、双目),负责采集图像或点云,输出目标在相机坐标系下的位置与姿态。
- 计算端:工控机或视觉控制器,运行目标检测、位姿估计、手眼标定与坐标变换程序。
- 执行端:六轴机械臂(如 UR5、节卡 Zu3、埃斯顿 ER3)及其末端夹爪或吸盘。
- 标定物:标定板(棋盘格、圆点阵列)或标定球,用于建立相机与机器人之间的空间关系。
- 通信链路:以太网、EtherCAT 或 ROS/ROS2 话题,负责把抓取位姿从计算端送到控制器。
这些对象之间不是简单串联,而是通过坐标系层层嵌套。理解这一点,是理解整门课的关键。下面这张图给出从“相机看到目标”到“机器人抓取目标”的完整位姿转换链路,也是本课程后续各章节的骨架。
图中最值得注意的是“手眼标定”这一环。它决定了相机坐标系与机器人基座坐标系之间的固定变换关系 T_cam_to_base。没有它,相机给出的目标位置对机器人毫无意义。手眼标定分两种典型构型:眼在手外(相机固定在支架上,不随臂运动)和眼在手上(相机安装在末端法兰上)。前者标定的是相机到基座的固定变换,后者标定的是相机到末端法兰的固定变换,再结合当前末端位姿推算目标在基座下的位置。两种构型的标定方程不同,但目标一致:建立可复用的坐标映射。
位姿转换在整条链路中处于“承上启下”的位置。承上,它接收视觉端输出的目标位姿;启下,它输出机器人可直接执行的抓取位姿。如果这一环出错,典型表现是:机器人朝着目标附近运动,但总是偏几厘米,或者夹爪姿态歪斜导致抓不住。很多现场问题并非视觉检测不准,而是坐标系定义不一致、旋转顺序写错、单位混用(毫米与米)或手眼矩阵方向搞反。因此,本课程把位姿转换作为主线,而不是把它当作一个孤立公式来讲。
为了把这条链路讲透,课程将围绕一个贯穿式实战项目展开:“桌面零件视觉引导抓取”。设定场景如下:一台六轴机械臂安装在工作台上,一台 3D 相机固定在机械臂侧上方(眼在手外),工作台面上散落若干金属零件。系统需要识别指定零件,计算其抓取位姿,并驱动机械臂完成抓取与放置。示例参数可设为:工作范围约 600 mm × 400 mm,零件尺寸约 40 mm,相机分辨率 1280 × 1024,标定板为 9 × 6 棋盘格、方格边长 20 mm。这些参数属于教学示例,实际项目需按现场情况调整。
课程目标分三个层次。第一层是概念清晰:能说清相机坐标系、基座坐标系、末端坐标系、工具坐标系各自的定义与关系,能画出位姿转换链路。第二层是会算会写:能根据标定数据构造齐次变换矩阵,能完成 T_base_obj = T_base_cam · T_cam_obj 这类复合变换,能理解旋转矩阵、欧拉角、四元数之间的转换与常见陷阱。第三层是能调能判:能在实际系统里定位“抓偏了”的原因,能通过标定残差、重投影误差、抓取成功率等指标判断系统是否达标。
从工程全景看,视觉引导抓取系统并不是“相机 + 机器人”的简单叠加,而是一条包含感知、标定、变换、规划、执行、反馈的闭环链路。位姿转换是这条链路的“翻译器”,把视觉语言翻译成机器人语言。接下来的章节将沿着这条链路逐段展开:先讲坐标系与位姿表示,再讲手眼标定,然后讲抓取位姿生成与逆运动学,最后落到误差分析与工程调试。每一段都会给出可操作的参数、计算过程和判断依据,而不是停留在概念层面。
在进入具体计算之前,先记住一个判断标准:如果机器人抓取位置稳定地偏一个固定方向和距离,优先怀疑手眼标定或坐标系定义;如果偏差随机、时大时小,优先怀疑视觉检测稳定性或标定数据质量;如果姿态歪斜但位置正确,优先检查旋转顺序与工具坐标系定义。这条经验规则会在后续排障章节反复用到,也是本课程从工程视角切入位姿转换的起点。