首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以从6x6矩阵构造SpatialInertia对象吗?

可以从6x6矩阵构造SpatialInertia对象吗?
EN

Stack Overflow用户
提问于 2021-07-06 05:56:53
回答 1查看 25关注 0票数 2

Drake中的SpatialInertia对象有一个名为CopyToFullMatrix6()的方法,该方法输出SpatialInertia对象的6x6表示形式。有没有一个函数可以做相反的事情?也就是说,我有一个6x6的矩阵,我想把它变成一个SpatialInertia对象。(我在Ubuntu 18.04中本地使用Pydrake。)

上下文是这样的:我正在使用一些流体动力学建模。由于附加质量的模型,我的空间惯性矩阵的“质量”子矩阵,通常在对角线上有三个相同的质量值,如下所示:

代码语言:javascript
复制
---------
| m 0 0 |
| 0 m 0 |
| 0 0 m |
---------

实际上在不同的方向上有不同的“质量”,就像这样:

代码语言:javascript
复制
------------
| m1 0  0  |
| 0  m2 0  |
| 0  0  m3 |
------------

其结果是,通常的构造函数(MakeFromCentralInertia()或仅仅是SpatialInertia())将不起作用,因为它们接受一个质量值作为输入。

我现在的过程是查询body的SpatialInertia,获得6x6表示,并将添加的质量空间惯性矩阵作为numpy数组添加到其中。现在,我需要一种方法将该矩阵再次转换为SpatialInertia,这样我就可以将其应用回body。

任何关于过程或转换的想法都是值得赞赏的。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-06 08:37:56

SpatialInertia只能有一个标量质量(它实际上是以这种方式表示的,而不是一个6x6矩阵)。也就是说,该类本质上是刚体的质量属性,不能用于更一般的东西。多体系统确实有一个更通用的类,ArticulatedBodyInertia,它表示由于关节连接而在不同方向上出现不同的质量。我不清楚它如何用于流体动力学,但至少它可以表示不同的质量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68262453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档