如何使用 Meshlab 计算 inertia Matrix
导入 DAE 模型
根据gazebo的官方文档,惯性系数矩阵需要借助meshlab工具来进行计算
- 使用import mesh功能时,导入
.stl这种网格实体格式,或者.dae格式 (这个文件是将平面的stl网格模型导入,贴图后,再导出.dae后得到的)
如果遇到这种报错,则需要注意你导出的DAE文件存在问题
bash
'vcount'
****** LoadTriangularMesh (initial mesh size 8 0)
****** material id 'Material_002-material' -> '#Material_002-material'
====== searching among library_effects the effect with id 'Material_002-effect'
****** but we were not able to find the corresponding image node
****** LoadTriangularMesh (final mesh size 8 8 - 12 12)
**** Loading a Geometry Mesh **** (final mesh size 8 8 - 12 12)
Segmentation fault (core dumped) 'vcount'
****** LoadTriangularMesh (initial mesh size 8 0)
****** material id 'Material_002-material' -> '#Material_002-material'
====== searching among library_effects the effect with id 'Material_002-effect'
****** but we were not able to find the corresponding image node
****** LoadTriangularMesh (final mesh size 8 8 - 12 12)
**** Loading a Geometry Mesh **** (final mesh size 8 8 - 12 12)
Segmentation fault (core dumped)- 导入的
.stl文件应为闭合的网格文件,否则会触发waterlight的不防水问题,导致无法正确计算惯性系数矩阵。解决方法为,将未封闭的网格封闭后重新导出。 - Issue with volume calculation
惯性矩阵各自计算
- 每个实体模型 (
stl) 导出各自的惯性矩阵,不要图省事,导入一个.dae模型,整体计算,这种极容易出现抖动的问题

- 使用Filter下的Quilty Measure and Computations中的compute Geometric Measures功能

- 得到惯性张量矩阵即可使用

常见问题
Segmentation Fault
导入 .dae格式的 mesh,软件直接segmentation fault,最后发现是应为该.dae文件包含了有重叠部分的文件,删除一个,再次导出 .dae 即可
没有惯性矩阵
没有计算出惯性矩阵,检查你的模型是否是一个封闭的实体
sujie-168