4、基准轴与坐标系的建立:在SolidWorks中创建必要的基准轴、参考点、坐标系,为关节定义做准备

好,我们继续往下走。上一章我们把模型拆成了零件,也检查了装配体层级。但光有零件还不够——URDF 要的是「关节怎么转、往哪个方向转、转轴在哪」。这些信息,SolidWorks 不会自动给你。

你得手动告诉它:轴在哪,原点在哪,方向朝哪。

说白了,这一步就是给每个关节「立规矩」。我刚开始做的时候,觉得这步可有可无,直接在装配体里瞎对位置。结果导出 URDF 后,机器人要么原地打转,要么关节方向反了……嗯,从那以后,我再也不敢跳过基准定义了。

核心原则:一个关节 = 一个坐标系 + 一根基准轴。坐标系定位置,基准轴定旋转方向。两者缺一不可。

4.1 为什么不能直接用零件默认坐标系?

你可能会问:零件本身不是有坐标系吗?为什么还要新建?

原因很简单——默认坐标系通常不在关节旋转中心上。

举个例子,一个机械臂的肩关节,旋转轴穿过电机输出轴的中心。但零件建模时的原点可能在法兰盘的角落,或者某个安装孔的圆心。如果你直接用那个原点做关节,URDF 里的关节位置就偏了,整个运动学链都会错位。

我在项目里遇到过:一个六轴机器人,肩关节偏了 2mm,结果末端执行器在仿真里画了个大圆弧,根本没法用。查了两天才发现是基准轴没对齐。

坐标系来源 是否推荐 原因
零件默认坐标系 ❌ 不推荐 原点通常不在关节中心,方向也不对齐旋转轴
新建基准轴 + 参考点 ✅ 推荐 精确定位到旋转中心,方向可控
装配体坐标系 ⚠️ 视情况 适合基座固定坐标系,不适合运动关节

4.2 基准轴:关节旋转的「脊梁」

基准轴就是关节的旋转轴。URDF 里的 <joint> 标签中,axis 参数就是靠这根轴来定义的。

4.2.1 创建基准轴的三种方法

我个人习惯用「圆柱面/圆锥面」法,因为大多数关节轴都是圆柱形的。但其他方法也很有用,看情况选。

  1. 圆柱面/圆锥面法:选中电机输出轴或关节销轴的圆柱面,SolidWorks 自动生成通过轴心的基准轴。最常用,也最准。
  2. 两点法:选中两个参考点(比如圆心或顶点),生成穿过这两点的轴。适合没有圆柱面的情况。
  3. 平面交点法:选中两个平面,生成它们的交线作为轴。适合用基准面定位的场景。
我的经验:优先用圆柱面法。因为圆柱面的轴线天然就是旋转轴,不会出现方向偏差。我曾经用两点法,结果两个点没选准,轴偏了 0.5°,整个运动学链都歪了。

4.2.2 基准轴命名规范

命名这件事,看似小事,但后面 URDF 导出时你会感谢我的。我见过有人叫「Axis1」「轴1」「aaaa」,结果自己都分不清哪个是哪个。

关节类型 推荐命名 示例
旋转关节 Axis_<关节名> Axis_shoulder_pitch
棱柱关节 Axis_<关节名> Axis_slider_x
固定关节 不需要 —

4.3 参考点:坐标系的「锚」

基准轴定方向,参考点定位置。参考点就是坐标系的原点候选。

创建参考点的方法也很直接:

  • 圆心点:选中圆形边线或圆柱端面,生成圆心点。最常用。
  • 交点:选中基准轴和某个平面,生成交点。适合轴与安装面的交点。
  • 投影点:把一个点投影到另一个平面上。偶尔用到。

我个人建议:每个关节至少创建一个参考点,位置就在关节旋转中心。这样后面建坐标系时,直接「点 + 轴」就能搞定,不用再临时找位置。

注意:参考点必须在零件或装配体里创建,不要在工程图里搞。我见过有人把参考点建在工程图里,结果导出 URDF 时根本识别不到。

4.4 坐标系:URDF 关节的「身份证」

坐标系是基准轴和参考点的组合体。URDF 里每个关节都需要一个坐标系,用来描述子连杆相对于父连杆的位置和方向。

4.4.1 创建坐标系的步骤

  1. 点击「参考几何体」→「坐标系」。
  2. 选择参考点作为原点。
  3. 选择基准轴作为 Z 轴(URDF 默认旋转轴是 Z 轴)。
  4. 选择另一个平面或边线作为 X 轴方向。
  5. Y 轴自动生成,检查方向是否正确。

嗯,这里要注意:URDF 的关节旋转轴默认是 Z 轴。所以你在 SolidWorks 里建坐标系时,一定要把基准轴对齐到 Z 轴方向。如果搞反了,导出的 URDF 里关节方向就是错的。

黄金法则:Z 轴 = 关节旋转轴。X 轴指向下一个关节方向。Y 轴用右手定则确定。

4.4.2 坐标系命名规范

命名要跟 URDF 里的连杆名对应。我习惯用 CS_<连杆名> 的格式。

连杆名 坐标系名 说明
base_link CS_base_link 基座固定坐标系
upper_arm CS_upper_arm 上臂关节坐标系
forearm CS_forearm 前臂关节坐标系

4.5 知识体系总览

下面这张图把基准轴、参考点、坐标系的关系画清楚了。你可以对照着看,心里有个谱。

基准轴与坐标系建立流程 零件/装配体模型 创建基准轴 圆柱面/两点/平面交点 创建参考点 圆心/交点/投影 创建坐标系 原点+Z轴+X轴 关节定义就绪 可导出URDF 关键提醒 Z轴=旋转轴 原点=关节中心 命名要规范

4.6 实战避坑指南

我做了这么多年,踩过的坑不少。挑几个典型的跟你说说:

  • 坐标系方向搞反:URDF 的旋转轴是 Z 轴,但 SolidWorks 默认坐标系可能把 Z 轴当成竖直方向。如果你关节是水平旋转的,一定要手动调整坐标系方向。
  • 参考点不在关节中心:选圆心时,一定要确认是关节旋转的圆心,不是安装孔的圆心。我犯过这个错,结果仿真时关节位置偏了 5mm。
  • 忘记命名规范:后面导出 URDF 时,SolidWorks 插件会按名称匹配坐标系。如果你命名乱七八糟,插件根本认不出来。
  • 基准轴和坐标系建在装配体里:我个人建议建在零件里。因为装配体里的参考几何体容易随配合变化而失效,零件里的更稳定。
一个小技巧:建完坐标系后,用「测量」工具检查一下原点位置和轴方向。确保 Z 轴指向关节旋转方向,原点在旋转中心。这一步花不了 1 分钟,但能省后面 1 小时的排查时间。

4.7 本章小结

基准轴、参考点、坐标系,这三样东西是 URDF 关节定义的基石。你想想看,如果没有它们,SolidWorks 怎么知道关节往哪转、转轴在哪?

所以,别嫌麻烦。每个关节都老老实实建好基准轴和坐标系,后面导出 URDF 时你会感谢自己的。