关节(Joint)
PhysiX 关节(Joint)与 realvirtual.io 正向运动学介绍
关节使用 Unity PhysX 系统。由于物理关节的一些限制,仅在确实需要逆向运动学时使用此关节,不应将其用于正常的正向运动学。
realvirtual.io 中移动轴的默认概念是通过使用"运动学刚体(Kinematic Rigidbodies)"来移动游戏对象本身的位置。这意味着游戏对象层级定义了运动链,并且这些位置不由 Unity 的物理引擎控制。我们采用这种方法是因为纯 PhysX 控制的运动存在一些缺点。PhysX 关节由于物理求解器的原因总是存在一些弹性行为,很难实现非常精确的轴定位。例如,在机器人控制器计算的所有机器人轴角度设置完成后,机器人的 TCP 精确位于所需位置非常重要。
如果需要逆向运动学,即运动链跟随由驱动器控制的组件,则可以使用 PhysX 关节。但应始终牢记,这些位置是由 PhysX 引擎计算的,位置可能不精确。
仅当 PhysX 轴跟随驱动器时,才能将驱动器控制的轴与 PhysX 关节组合使用。由于 Unity PhysX 的限制,无法将驱动器控制的轴放在 PhysX 关节控制运动链的中间。realvirtual.io 驱动器(Drive)必须始终位于 PhysX 运动链的末端或起始处。PhysX 运动链仅跟随完全由 realvirtual.io 驱动器控制的轴。
有时标准的 Unity 关节(例如 Configurable Joint)非常难以理解且属性过多。因此我们实现了一个简单的 Joint 脚本。此 Joint 脚本将在仿真启动时自动创建标准的 Unity 关节。

关节(Joint)
使用 Joint 组件,您可以用与 realvirtual.io 驱动器中已知的轴和方向定义相同的方式来定义圆柱关节和线性关节。此外,连接的刚体(Rigidbody)将自动显示为黄色的网格辅助图标(参见上图)。

连接到(Connected To) 是通过此关节连接到该组件的刚体。
Delta 中心(Delta Center) 您可以通过定义的值移动关节轴的中心点。如果值为零,则此关节的中心点位于 Joint 脚本所附加的游戏对象的枢轴点。
对象 1 中心 / 对象 2 中心(Center On Object 1 / Center On Object 2) 可以定义外部游戏对象来确定轴的旋转点。如果定义了两个游戏对象,则两个游戏对象之间的中心即为该关节的中心点。
显示辅助图标(Show Gizmo) 如果设置为 true,则关节的轴用红线显示,连接的刚体用黄色网格显示。
© 2025 realvirtual GmbH https://realvirtual.io - 保留所有权利。未经出版商事先书面许可,不得以任何形式或任何方式(包括打印、保存、影印、录制或其他电子或机械方法)复制、分发或传播本出版物的任何部分。