如何理解连续状态向量?

How to make sense of the continuous state vector?

背景

我正在尝试平衡移动倒立摆(即赛格威)。

为了模拟,我创建了一个简单的机器人,它包括一个通过旋转关节连接到圆柱体(轮子)上的杆。

问题

在构建我的 MIP 工厂后,plant.num_positions() returns 8plant.num_velocities() returns 7,即总共 continuous_state 尺寸是 15

  1. 我如何理解这么多的州?
  2. 我想其中之一代表杆子与垂直方向的角度。我怎么找到它?
  3. 还有,为什么num_positions()不等于num_velocities()

默认情况下,urdf/sdf 解析器为系统添加基于四元数的浮动基数。这个浮动基础关节有 7 个位置变量(x、y、z + 四元数)和 6 个速度(xdot、ydot、zdot,+ 空间速度)。您应该使用多体 API 以正确的顺序获取变量。

您可以在世界 link 和您的基地(在 urdf/sdf 或您的代码中)之间添加一个关节,以用例如底部的棱柱形接头。

有很多关于如何模拟它的例子,在 drake 中,也在 http://underactuated.mit.edu

来自Spatial Velocity

Spatial velocities are 6-element quantities that are pairs of ordinary 3-vectors. Elements 0-2 are the angular velocity component while elements 3-5 are the translational velocity.

来自QuaternionFloatingMobilizer

  // Note: In the context we store the quaternion's components first (q₀ to q₃),
  // followed by the position vector components (q₄ to q₆).