Error: eigenvalue of mesh inertia too small

Discussion in 'Simulation' started by cyril, Nov 24, 2018.

  1. Hello,

    I tried loading another mesh into an environment and got the following error. How do I rectify it and what exactly does it entail as I am not setting the inertia directly. Is there something I'm missing?

    mj_loadXML error: b'Error: eigenvalue of mesh inertia too small: tool0:knife_00\nObject name = tool0:knife_00, id = 12, line = 27, column = 5'


    Here is my code:
    <body name="object" pos="1 0.87 0.2" euler="-1 1 0">
    <geom size="0.025 0.025 0.025" mesh="tool0:knife_01" condim="4" name="object" material="materialobject" mass="2"></geom>
    <geom name="object" type="capsule" size="0.008 0.1" material="materialobject" condim="4"></geom>
    <site name="object:center" pos="0 0 0" rgba="1 0 0 0" size="0.01 0.01 0.01"></site>
    <site name="object:top" pos="0 0 0.1" rgba="1 0 0 1" size="0.0081"></site>
    <site name="object:bottom" pos="0 0 -0.1" rgba="0 1 0 1" size="0.0081"></site>
    <joint name="object:joint" type="free" damping="0.01"></joint>
    </body>

    Thanks.
     
  2. Emo Todorov

    Emo Todorov Administrator Staff Member

    The mesh may be flat or otherwise very small in one of the spatial dimensions. The model compiler appoximates the inertia of the body from the mesh faces and computes the eigenvalues of the resulting 3x3 matrix. For a 3D shape these eigenvalues should be all positive. Values that are very close to 0 are not allowed.

    Note that the size attribute does not do anything for mesh geoms. You should use mesh scaling instead; see <mesh> element under <asset>
     
    cyril likes this.