How to enable bounce with DART engine?

asked 2020-01-29 00:56:43 -0500

hued gravatar image

updated 2020-02-11 00:17:50 -0500

Hi all,

I want to simulate bounce with the DART engine. I set restitution_coefficient and threshold under the bounce tag, however, it does not work.

This answer says that max_vel value under the ode tag must be also set. However, max_vel is valid only when ODE is set as the physics engine.

In addition, when max_vel is set, restitution_coefficient and threshold are ignored, then kp and kd under the ode tag are referred (This answer's last comment mentions it).

Is there any way to set a restitution coefficient with DART engine?

Here is my world.sdf and I run it Gazebo 9 on Ubuntu18.04.

Thank you.

<?xml version="1.0" ?>
<sdf version="1.6">
  <world name="world">
    <gravity>0 0 -9.80665</gravity>
    <physics default="true" type="dart">
      <dart>
        <solver>
          <solver_type>dantzig</solver_type>
        </solver>
      </dart>
    </physics>
    <!-- <physics type="ode">
    </physics> -->

    <!-- A global light source -->
    <include>
      <uri>model://sun</uri>
    </include>

    <!-- Ground -->
    <include>
      <uri>model://ground_plane</uri>
    </include>

    <!-- Ball -->
    <model name="Ball">
      <static>false</static>
      <pose>0 0 2 0 0 0</pose>
      <link name="Ball">
        <pose>0 0 0 0 0 0</pose>
        <inertial>
          <pose>0 0 0 0 0 0</pose>
          <mass>8</mass>
          <inertia>
            <ixx>3.2</ixx>
            <ixy>0.0</ixy>
            <ixz>0.0</ixz>
            <iyy>3.2</iyy>
            <iyz>0.0</iyz>
            <izz>3.2</izz>
          </inertia>
        </inertial>
        <visual name="vis_Ball">
          <geometry>
            <sphere>
              <radius>1</radius>
            </sphere>
          </geometry>
        </visual>
        <collision name="coll_Ball">
          <pose>0 0 0</pose>
          <geometry>
            <sphere>
              <radius>1</radius>
            </sphere>
          </geometry>
          <surface>
            <bounce>
              <restitution_coefficient>1</restitution_coefficient>
              <threshold>0</threshold>
            </bounce>
            <!-- <contact>
              <ode>
                <kp>1e+12</kp>
                <kd>1</kd>
                <max_vel>1000</max_vel>
              </ode>
            </contact> -->
            <friction>
              <ode>
                <mu>0</mu>
                <mu2>0</mu2>
              </ode>
            </friction>
          </surface>
        </collision>
      </link>
    </model>

  </world>
</sdf>
edit retag flag offensive close merge delete