目录
[1 学习目标](#1 学习目标)
[2 内容](#2 内容)
[2.1 笛卡尔坐标系与关节坐标系](#2.1 笛卡尔坐标系与关节坐标系)
[2.2 平移与旋转](#2.2 平移与旋转)
[2.2.1 平移](#2.2.1 平移)
[2.2.2 旋转](#2.2.2 旋转)
[2.3 机器人正运动学](#2.3 机器人正运动学)
[2.3.1 正运动学建模](#2.3.1 正运动学建模)
[① 建立连杆坐标系](#① 建立连杆坐标系)
[② 计算单步变换矩阵](#② 计算单步变换矩阵)
[③ 链式法则相乘(总变换)](#③ 链式法则相乘(总变换))
[2.3.2 MDH参数法](#2.3.2 MDH参数法)
[2.3.3 齐次变换矩阵](#2.3.3 齐次变换矩阵)
[2.3.4 坐标变换](#2.3.4 坐标变换)
[2.4 机器人逆运动学](#2.4 机器人逆运动学)
[2.4.1 解析法](#2.4.1 解析法)
[2.4.2 数值迭代法](#2.4.2 数值迭代法)
Sim2Sim (Simulation-to-Simulation) 指的是在不同的仿真环境之间进行知识迁移或验证的过程。
在具身智能的开发流程中,它通常位于Sim2Real(仿真到现实)之前,具有以下几层含义:
跨平台验证:在动力学仿真器 A(如Isaac Gym(即现在的Isaac Lab),适合大规模强化学习)中训练出的算法,在不经过任何修改的情况下,直接放到仿真器 B(如MuJoCo 或Gazebo,物理特性更精细)中去跑。如果效果一致,说明你的算法具有较好的泛化性。
从高层到低层的映射: 在具身智能中,我们常在"视觉仿真器"(如 AI2-THOR)中训练感知和逻辑决策,然后将动作指令传递给"物理仿真器"(如PyBullet)来执行精细的抓取动作。这个对接过程就是Sim2Sim。
模型精简与蒸馏: 有时我们在一个极其理想的仿真环境中训练一个复杂的模型,然后将其迁移到一个模拟了更多噪声(传感器误差、延迟)的仿真环境中进行压力测试。
直接从仿真环境跳到真机(Sim2Real)代价极高且容易损坏硬件。Sim2Sim是一个低成本的"中间站",用来排查坐标系不统一、物理参数不匹配等问题。
1 学习目标
理解机器人运动的空间表示,掌握齐次变换矩阵的使用。
(1)笛卡尔坐标系与关节坐标系
(2)齐次矩阵(4×4)表示位姿
(3)平移、旋转(欧拉角、四元数)
(4)坐标系之间的转换与链式计算
2 内容
2.1笛卡尔坐标系与关节坐标系
在机器人世界里,所有的任务都可以简化为:把一个点A坐标系转换到B坐标系。
(1)笛卡尔坐标系
描述物体在三维空间的位置(x, y, z)
(2)关节坐标系
描述机器人每个电机转了多少度
(3)学习目标
建立一套数学公式,让电脑知道:当电机转动30度时,机器人的手指尖在空间中具体哪个(x, y, z)位置。
2.2 平移与旋转
2.2.1 平移
(1)定义
物体在空间中的位置变化,即物体在某个方向上移动而不改变其形状和姿态。
(2)数学表示
通常用一个3x1的列向量P=[x, y, z]^T表示
2.2.2 旋转
(1)物体绕某固定点或轴的转动,即位置、方向变化,形状大小不变。旋转有三种表达式,分别为旋转矩阵、欧拉角、四元数
(2)旋转矩阵
定义:一个3x3的正交矩阵(行列式为 1)
核心特性:
用途:最适合进行数学推导和坐标变换
(3)欧拉角
定义:将旋转拆分为绕三个轴的顺序旋转(如 Roll-Pitch-Yaw)
致命伤:万向节死锁(Gimbal Lock)。当第二个旋转角为90°时,第一轴和第三轴会重合,丢失一个自由度
注意点:必须搞清楚旋转顺序(是ZYX还是XYZ)以及是绕"固定轴"还是"转动轴"旋转
(4)四元数(Quaternions)
定义:用4个数q= (w, x, y, z)表达旋转。
优势:没有奇异性(不会死锁),插值平滑(适合动画和轨迹规划),计算量比矩阵小。
Sim2Sim必备:在Isaac Lab或MuJoCo的代码里,物体姿态通常直接以四元数形式存储。
齐次矩阵(4×4)表示位姿平移、旋转(欧拉角、四元数)坐标系之间的转换与链式计算(Python中可以使用
PyTransform3D)
2.3 机器人正运动学
由关节转角、连杆等参数计算机器人末端相对基坐标系位姿。
2.3.1 正运动学建模
① 建立连杆坐标系
我们需要在机器人的每一个关节上定义一个坐标系。目前工业界和学术界最通用的方法是D-H参数法 (Denavit-Hartenberg Convention)。
它通过4个参数(连杆长度
、连杆转角
、连杆偏移
、关节角
来唯一确定两个相邻关节之间的关系。
Sim2Sim注意点:虽然D-H很经典,但在Isaac Lab或MuJoCo中,通常直接使用URDF (Unified Robot Description Format),软件直接算好了。URDF更加直观,直接定义了子坐标系相对于父坐标系的
偏移和旋转。
② 计算单步变换矩阵
对于每一个关节i,根据其当前的旋转角度
,写出它相对于前一个关节i-1的齐次变换矩阵
。
这个矩阵里包含了:
这一段机械臂的物理长度。
当前电机转动的角度。
③ 链式法则相乘(总变换)
最终得到的矩阵的右上角3x1部分就是末端的位置,左上角3x3部分就是末端的姿态。
2.3.2 MDH参数法
2.3.3 齐次变换矩阵
联系平移和旋转。需要掌握如何构建这个4*4矩阵。
左上角 (R):旋转部分
右上角 (P):平移部分
左下角 (0):透视缩放(机器人学中固定为 0)
核心意义:将"旋转乘法 + 平移加法"的混合运算,统一成了单一的矩阵乘法
2.3.4 坐标变换
左乘(相对固定参考系):如果物体的变换是相对于"世界坐标系(Static Frame)"发生的,连续变换时矩阵从左边往右乘。
右乘(相对自身当前系):如果物体的变换是相对于"当前自身坐标系(Body Frame)"发生的,矩阵从右边往左乘。
2.4 机器人逆运动学
已知末端相对于机器人基坐标系位姿,求解各关节角(结果不唯一)。主要求解方式两种:解析法 和数值迭代法。
2.4.1 解析法
通过建立逆运动学方程,直接求解关节角度。这种方法通常适用于结构较简单的机器人,如具有较少自由度的机械臂。解析法的优点是计算速度快,且能得到精确解,但在某些情况下可能会有多个解或无解的情况
2.4.2 数值迭代法
通过迭代优化算法逐步逼近目标姿态。这种方法适用于结构复杂或自由度较高的机器人,能够处理较为复杂的逆运动学问题。常见的数值方法包括牛顿-拉夫森法和梯度下降法。尽管数值迭代法灵活性更高,但其收敛速度和计算时间通常较慢,并且可能陷入局部最优解。
在机器人逆运动学求解中,常用的库包括KDL、Track-IK(数值迭代法)和IKFast(解析算法库),它们各自具有不同的优势和应用场景,为机器人运动控制提供了强有力的支持。


