如何定义新的参考系

How to define a new reference frame

我想定义一个参考系,它不一定附加到 Drake 中的 body,但仍然可以在使用 LeafSystem 进行模拟期间更新。我尝试使用此处描述的 AddFrame 方法 (https://drake.mit.edu/pydrake/pydrake.multibody.parsing.html),但这返回了 AddFrame(): incompatible function arguments 错误。我可以通过首先实例化 FixedOffsetFrame 来消除此错误,但不知道 if/how 在创建框架后更新框架的姿势。如何创建可在模拟过程中更新的参考系?

另请注意:我认为它需要是一个框架而不仅仅是一个 RigidTransform,因为我想将它与 CalcJacobianSpatialVelocity 函数一起使用

MultibodyPlant 中的一个框架应该(严格地)附加到某个 body 框架。您可以指定例如手相对于手腕的框架。随着关节角度的变化,框架的位置也会发生变化(在模拟过程中)。正如您所说,这将通过 FixedOffsetFrame.

来完成

听起来你想要一个可以在模拟过程中独立于任何 body/link 移动的框架?那么你将如何指定它的姿势呢?如果你想让 MultibodyPlant 运动学引擎为你做这件事,那么你可以通过添加一个 body,带有关节或浮动底座(kinematics/dynamics 引擎使用)并使用那是你的框架。或者,您可以通过在 controller/perception system/etc.

中设置姿势(相对于 body 或世界)来自己跟踪帧