Skip to content

如何使用 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 模型,整体计算,这种极容易出现抖动的问题

image-20240413201440958

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

image-20240403170542166

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

image-20240403170214047

常见问题

Segmentation Fault

导入 .dae格式的 mesh,软件直接segmentation fault,最后发现是应为该.dae文件包含了有重叠部分的文件,删除一个,再次导出 .dae 即可

没有惯性矩阵

没有计算出惯性矩阵,检查你的模型是否是一个封闭的实体