如何理解continuous_state向量?

时间:2019-04-16 14:51:07

标签: drake

背景

我正在尝试平衡移动的倒立摆(即segway)。

为进行仿真,我创建了一个简单的机器人,该机器人的极点通过旋转关节连接到圆柱(车轮)上。

问题

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

  1. 我如何理解如此众多的州?
  2. 我假设其中之一代表杆与垂直线所成的角度。我怎么找到那个?
  3. 此外,为什么num_positions()不等于num_velocities()

2 个答案:

答案 0 :(得分:2)

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

您可以在世界链接和您的基地之间添加接缝(在urdf / sdf或代码中),以将隐含的浮动接缝替换为例如。底部的棱柱形接头。

有很多关于如何模拟它的示例,不仅在Drake中,而且在http://underactuated.mit.edu

答案 1 :(得分:0)

来自Spatial Velocity

空间速度是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₆).