Stacked object gives incorrect accerlerometer reading

asked 2022-03-01 08:01:09 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

I have attached an accelerometer (use the gazebo plugin) to a cylinder, when the cylinder is on the ground plane, the accelerometer works fine. But when I stack the cylinder on top of another cylinder, the accelerometer gives very large and noisy readings.

The following is the physics paratmers:

<physics name='default_physics' default='0' type='ode'>
  <gravity>0 0 -9.8066</gravity>
  <ode>
    <solver>
      <type>quick</type>
      <iters>10</iters>
      <sor>1.3</sor>
      <use_dynamic_moi_rescaling>0</use_dynamic_moi_rescaling>
    </solver>
    <constraints>
      <cfm>0</cfm>
      <erp>0.2</erp>
      <contact_max_correcting_vel>100</contact_max_correcting_vel>
      <contact_surface_layer>0.001</contact_surface_layer>
    </constraints>
  </ode>
  <max_step_size>0.002</max_step_size>
  <real_time_factor>1</real_time_factor>
  <real_time_update_rate>500</real_time_update_rate>
  <magnetic_field>6.0e-6 2.3e-5 -4.2e-5</magnetic_field>
</physics>

and the cylinder parameters:

<model name='unit_cylinder'>
  <pose frame=''>-4.35932 0.783543 0.5 0 -0 0</pose>
  <link name='link'>
    <inertial>
      <mass>1</mass>
      <inertia>
        <ixx>0.145833</ixx>
        <ixy>0</ixy>
        <ixz>0</ixz>
        <iyy>0.145833</iyy>
        <iyz>0</iyz>
        <izz>0.125</izz>
      </inertia>
      <pose frame=''>0 0 0 0 -0 0</pose>
    </inertial>
    <collision name='collision'>
      <geometry>
        <cylinder>
          <radius>0.5</radius>
          <length>1</length>
        </cylinder>
      </geometry>
      <max_contacts>10</max_contacts>
      <surface>
        <contact>
          <ode/>
        </contact>
        <bounce/>
        <friction>
          <torsional>
            <ode/>
          </torsional>
          <ode/>
        </friction>
      </surface>
    </collision>
    <visual name='visual'>
      <geometry>
        <cylinder>
          <radius>0.5</radius>
          <length>1</length>
        </cylinder>
      </geometry>
      <material>
        <script>
          <name>Gazebo/Grey</name>
          <uri>file://media/materials/scripts/gazebo.material</uri>
        </script>
      </material>
    </visual>
    <self_collide>0</self_collide>
    <enable_wind>0</enable_wind>
    <kinematic>0</kinematic>
  </link>
</model>

Is there any way to adjust the underlying physics to deal with the problem?

edit retag flag offensive close merge delete