如何解决Drake中如何将多体植物的广义坐标向量映射到刚体树的广义坐标向量?
类人机器人可以用 URDF 文件中的运动树来描述。我发现刚体树和多体植物的广义坐标向量中元素的顺序是不同的。网上有一段代码片段展示了实现映射的方式。
# q_rbt = X*q_mbp
# rigid_body_tree is an instance of RigidBodyTree()
# multi_body_plant is an instance of MultibodyPlant()
B_rbt = rigid_body_tree.B
B_mbp = multi_body_plant.MakeActuationMatrix()
X = np.dot(B_rbt[6:,:],B_mbp[6:,:].T)
然而,刚体树在新的 Drake 中已被弃用。因此,我现在如何实现映射?另外,我很好奇为什么 Drake 对广义坐标向量不使用相同的顺序。
解决方法
您可能会喜欢我在此 littledog example 中使用的工作流程。我有一个 PR 可以直接在 Drake 中启用该工作流程。您可以使用 this issue 跟踪进度。
总的来说,即使我们没有在 Drake 中以特定方式实现它,我也会推荐的建议是,如果您有像类人一样复杂的东西,不要尝试使用基于索引的向量.找到一种通过名称访问元素的方法,或者通过它们的联合访问器在 Drake 中访问元素。使用原始向量非常容易出错。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。