drake - 如何理解连续状态向量?
问题描述
背景
我正在尝试平衡移动倒立摆(即赛格威)。
对于模拟,我创建了一个简单的机器人,该机器人包括一个通过旋转关节连接到圆柱体(轮子)的杆。
问题
构建我的 MIP 工厂后,plant.num_positions()
返回8
和plant.num_velocities()
返回7
,即总continuous_state
大小为15
- 我如何理解这么多的州?
- 我想其中一个代表杆与垂直线的角度。我怎么找到那个?
- 另外,为什么
num_positions()
不等于num_velocities()
?
解决方案
默认情况下,urdf/sdf 解析器为系统添加基于四元数的浮动基数。这个浮动基础关节有 7 个位置变量(x,y,z + 四元数)和 6 个速度(xdot, ydot, zdot, + 空间速度)。您应该使用多体 API 以正确的顺序获取变量。
您可以在世界链接和您的基础之间添加一个关节(在 urdf/sdf 或您的代码中),以用例如基础的棱柱关节替换隐含的浮动关节。
有很多关于如何模拟它的例子,在德雷克,还有在http://underactuated.mit.edu
推荐阅读
- php - 从一页到下一页的 PHP 值
- angular - Angular - angular6 中 web 工作者的 webpack 配置
- file - 将原来的第 2 列替换为新的第 2 列
- c# - 在面板 C# 中自动调整调用进程的大小
- java - 带有 rollbackFor 的 TransactionTemplate
- c# - 如何在特定位置添加 SharpShell 扩展
- circleci - 我应该向 CircleCi 使用的服务帐户添加哪些角色?
- azure-cosmosdb - Cosmos DB 图像/文件附件
- angular - 从反应角度形式中删除字段的最佳方法
- c# - 当我想发布项目时:“指定的路径、文件名或两者都太长”