1

背景

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

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

问题

构建我的 MIP 工厂后,plant.num_positions()返回8plant.num_velocities()返回7,即总continuous_state大小为15

  1. 我如何理解这么多的州?
  2. 我想其中一个代表杆与垂直线的角度。我怎么找到那个?
  3. 另外,为什么num_positions()不等于num_velocities()
4

2 回答 2

3

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

您可以在世界链接和您的基础之间添加一个关节(在 urdf/sdf 或您的代码中),以用例如基础的棱柱关节替换隐含的浮动关节。

有很多关于如何模拟它的例子,在德雷克,还有在http://underactuated.mit.edu

于 2019-04-16T16:58:45.013 回答
0

空间速度

空间速度是 6 元素量,它们是普通的 3 向量对。元素 0-2 是角速度分量,而元素 3-5 是平移速度。

来自QuaternionFloatingMobilizer

  // Note: In the context we store the quaternion's components first (q₀ to q₃),
  // followed by the position vector components (q₄ to q₆).
于 2020-07-18T06:10:20.327 回答