第一章:机器人运动学概述
1.1 什么是机器人运动学
机器人运动学,说白了就是研究机器人怎么动的一门学问。但注意,它只关心位置、速度、加速度这些几何关系,完全不考虑力和力矩。我刚开始接触这个领域时,总觉得这有点「纸上谈兵」——光算位置有什么用?后来在项目里吃过亏才明白,运动学是机器人控制的地基,地基不稳,后面全是白搭。
举个例子,你让机械臂去抓一个杯子。运动学要回答的是:「各个关节转多少度,手爪才能到那个位置?」至于电机需要多大扭矩、会不会把杯子捏碎——那是动力学和控制的活。所以,运动学是机器人学的「几何学」,它把机械结构抽象成纯粹的数学关系。
核心定义:机器人运动学是研究机器人各连杆之间位置、速度、加速度关系的学科,不考虑产生运动的力和力矩。
1.2 位姿描述与空间变换
要描述一个机器人的状态,你得先回答两个问题:「它在哪?」和「它朝哪?」。这就是位姿——位置+姿态。
位置好办,三维空间里用 (x, y, z) 三个坐标就行。但姿态就有点绕了。我记得第一次做六轴机器人标定时,被欧拉角和四元数搞得晕头转向。后来我习惯用旋转矩阵,虽然计算量大点,但直观、不容易出错。
空间变换,其实就是坐标系之间的转换。你想想看,机器人每个关节都有自己的坐标系,手爪也有自己的坐标系。要让手爪去抓东西,就得把目标位置从世界坐标系一路变换到手爪坐标系。这个过程,数学上就是矩阵乘法。
我的习惯:做运动学分析时,先把所有坐标系画出来,标清楚每个变换矩阵。这一步做扎实了,后面推导公式会顺畅很多。
常用的变换矩阵是 4x4 的齐次变换矩阵:
| R t |
| 0 1 |
其中 R 是 3x3 的旋转矩阵,t 是 3x1 的平移向量。这个矩阵能把一个点从一个坐标系映射到另一个坐标系。
1.3 刚体的自由度
自由度,就是描述一个物体运动所需的最少独立参数个数。一个自由刚体在三维空间里,有 6 个自由度:3 个平移(沿 x、y、z 轴移动)+ 3 个旋转(绕 x、y、z 轴转动)。
但机器人不一样。每个关节会限制或允许某些运动。比如:
- 旋转关节:1 个自由度(绕关节轴旋转)
- 移动关节:1 个自由度(沿关节轴平移)
- 球关节:3 个自由度(绕三个轴旋转)
我曾经犯过一个低级错误:设计一个七轴协作机器人时,想当然地认为自由度越多越好。结果发现冗余自由度导致逆运动学求解极其复杂,控制器的算力根本跟不上。嗯,这里要注意——自由度不是越多越好,够用就行。
避坑指南:我曾经在项目里遇到过一个情况——机械臂末端明明有 6 个自由度,但某些姿态下会「丢失」一个自由度,变成 5 个。这就是奇异位形。做轨迹规划时一定要避开这些位置,否则关节速度会突然变得极大,甚至损坏电机。
1.4 运动学在机器人学中的位置
整个机器人学可以分成几大块:运动学、动力学、控制、感知、规划。运动学是基础中的基础。没有运动学,你连机器人该往哪走都不知道,更别提怎么走了。
我个人的理解是:运动学解决「能不能到」的问题,动力学解决「能不能稳」的问题,控制解决「能不能准」的问题。这三者层层递进,缺一不可。
在实际工程中,运动学最常见的应用场景包括:
- 正运动学:给定关节角度,求末端位姿。这个相对简单,有固定公式可套。
- 逆运动学:给定末端位姿,求关节角度。这个就复杂了,可能有多个解、无解、甚至无穷多解。
- 速度运动学:也就是雅可比矩阵,描述关节速度和末端速度之间的关系。
你想想看,一个焊接机器人要沿着焊缝走,你得先算出来每个时刻手爪该在哪、朝哪,然后反算出关节怎么动。这就是运动学在干活。
一句话总结:运动学是机器人的「骨架」,动力学是「肌肉」,控制是「大脑」。骨架歪了,肌肉再强也白搭。
本章知识体系
下面这张图展示了本章的核心逻辑:
这张图把本章的四个核心模块串起来了。从定义出发,到具体的描述方法(位姿变换),再到核心概念(自由度),最后落脚到它在整个机器人学中的位置。后面的章节,我们会逐一深入每个模块。