Robotics-机器人建模中的原点选取
引言
在机器人建模中,"坐标系原点该放在哪里"是一个看似基础、却极易混淆的问题。有人说是质心,有人说是几何中心,有人说是关节交点——这些答案其实都对,但都只对了一半。
真正的问题是:你在做哪一层建模?
本文试图把机器人建模中坐标系建立的完整逻辑讲清楚,包括 D-H 法则的强制约定、运动学与动力学坐标系的分离、以及 ROS 中的工程实践。
一、坐标系建立的三个层次
在讨论原点选取之前,必须先分清三个层次:
位姿描述与建模 │ ├── 一、位姿表示层(一个位姿怎么用数字写出来) │ ├── 旋转:旋转矩阵 R / 欧拉角 / RPY / 四元数 │ └── 平移:位置向量 p │ ├── 二、统一运算层(多个变换怎么连乘) │ └── 齐次变换矩阵 T = [ R p ] │ [ 0 1 ] │ └── 三、机器人建模层(串联连杆的 T 怎么系统化生成) ├── D-H 法则(θ, d, a, α) ├── 旋量 / POE └── URDF(ROS 工程格式)
这三个层次的关系是:
-
表示层回答"一个位姿长什么样"。
-
运算层回答"多个变换怎么算"。
-
建模层回答"从机械结构到矩阵怎么生成"。
坐标系原点的选取,主要发生在建模层,并受到运算层的约束。不同的建模方法,对原点的约定完全不同。
二、D-H 法则:原点由关节轴线强制决定
2.1 D-H 包含位置关系吗?
包含。D-H 的四个参数中,两个管姿态,两个管位置:

D-H 用 4 个参数描述 6 自由度位姿变换,靠的是利用串联连杆的几何约束进行压缩。
2.2 原点选取规则
D-H 坐标系的原点既不是质心,也不是几何中心,而是由关节轴线决定。


三、不用 D-H 时,原点由目的决定
一旦离开 D-H 体系,原点选取就不再唯一,而是由建模目的驱动:

四、运动学与动力学坐标系:通常不一致
4.1 为什么不一致

4.2 两者如何关联
连杆是刚体,质心相对关节坐标系的位置固定,所以两者之间是一个常数齐次变换:

4.3 动力学建模的处理方式
牛顿-欧拉递推:
-
在 D-H 坐标系做运动学递推。
-
在质心坐标系算惯量力和力矩。
-
用固定变换把力/力矩搬回关节坐标系。

4.4 什么情况下会一致
-
简化模型:连杆当质点,质心在关节轴线上。
-
人为约定:动力学系也建在 D-H 原点,质心偏移写进惯量张量(平行轴定理)。
-
单一刚体:怎么建都行。
多连杆实际系统中,两套坐标系通常分开。
五、ROS 中的工程实践
5.1 ROS 用 URDF,不直接用 D-H
ROS 中描述机器人运动学结构的是 URDF,通过 link 和 joint 构建运动学树。URDF 描述物理连接关系,原点可灵活定义,不强制遵循 D-H。
这种方式对用户更友好,也避免了 D-H 在某些构型下的奇异问题。
5.2 D-H 在 ROS 中的两个角色
角色一:作为建模输入
DH2URDF 等工具可以把 D-H 参数表自动转成 URDF。UR 机器人的 ROS 驱动包底层使用 D-H 参数,但通过转换算法最终生成 URDF。
角色二:作为算法参考
许多经典运动学算法基于 D-H 推导。研究者会实现基于 D-H 的 ROS 节点,或从 URDF 反向推导 D-H 参数。
5.3 DH → URDF 的转换逻辑
核心思想是拆解:把每个 D-H 段(theta, d, a, alpha)拆成多个 joint 和 link 的组合。
例如 UR 驱动包把每个 D-H 段拆成两个物理连杆:一个负责 d 和 theta(旋转部分),另一个负责 a 和 alpha(被动位移部分)。
5.4 URDF 如何同时容纳运动学和动力学
<link name="link1"> <!-- 运动学:视觉/碰撞几何 --> <visual>...</visual> <collision>...</collision> <!-- 动力学:质心、质量、惯量 --> <inertial> <origin xyz="0.01 0 0.05"/> <!-- 质心相对 link 原点的偏移 --> <mass value="1.5"/> <inertia ixx="..." ixy="..." .../> </inertial> </link>
-
link原点由joint决定,是运动学坐标系。 -
<inertial>里的origin描述质心相对 link 原点的偏移,即两套坐标系之间的固定变换。
ROS 的做法:统一用 link 坐标系做运动学,质心偏移和惯量作为附加参数写在 <inertial> 里。

6.2 核心结论
-
D-H 同时包含姿态和位置关系:θ,αθ,α 管姿态,d,ad,a 管位置。
-
D-H 原点由关节轴线强制决定,与质心、几何中心无关。
-
不用 D-H 时,原点由建模目的决定:动力学选质心,仿真选几何中心,旋量法可不选。
-
运动学和动力学坐标系通常不一致,靠固定变换关联。
-
ROS 用 URDF 建模,D-H 作为输入或算法参考,通过转换工具集成。
-
齐次变换矩阵是统一运算载体,所有表示法最终都要转成它。

结语
坐标系选取看似是细节,实则决定了整个建模流程的清晰度与可维护性。
原点放在哪里,不取决于习惯,而取决于你在回答哪个问题。
-
回答"末端在哪" → 运动学坐标系,由关节轴线决定。
-
回答"转起来多费劲" → 动力学坐标系,由质心决定。
-
回答"怎么在 ROS 里跑起来" → URDF,原点由结构决定。
理解了这几套坐标系的层次关系和转换逻辑,"原点放哪里"就不再是困惑,而是一个有明确答案的工程决策。

浙公网安备 33010602011771号