0
$\begingroup$

I am currently working on simulating a mobile manipulator in Gazebo using ROS 2, where I am facing this issue. The wheels of the mobile base are being submerged into the ground when I am using kp and kd parameters on the wheels(works fine in Rviz btw), as shown below: enter image description here

enter image description here

and this is how it looks when the kp & kd parameters are removed:

enter image description here

I am trying to use frictional parameters because of robot's instability, jerky motion, occasional jumps during teleoperation and slipping sideways when left alone in gazebo. Please suggest any improvements to enhance the overall smoothness of the mobile base's movement and to address the issue of wheel submersion. The below is the gazebo's URDF ref for the wheels:

<gazebo reference="wheel_1">
  <material>${fblack}</material>
  <mu1>1000</mu1>
  <mu2>1000</mu2>
  <kp>1000000</kp>
  <kd>20</kd>
  <minDepth>0.001</minDepth>
</gazebo>

and wheel's joint dynamics

  <limit effort="300" velocity="10"/>
  <dynamics damping="0.5" friction="5.0"/>

Edit: As per the comment, here is the contact force for two of the wheels:

contact {
  collision1: "mel_proto::wheel_4::wheel_4_collision"
  collision2: "ground_plane::link::collision"
  position {
    x: 1.6741880156358819
    y: -0.35122546463136889
    z: -2.3031886548785518e-06
  }
  position {
    x: 1.674282102154439
    y: -0.48172543046196931
    z: -1.0423482406179962e-05
  }
  normal {
    x: 0
    y: 0
    z: 1
  }
  normal {
    x: 0
    y: 0
    z: 1
  }
  depth: 2.3031886548785518e-06
  depth: 1.0423482406179962e-05
  wrench {
    body_1_name: "mel_proto::wheel_4::wheel_4_collision"
    body_1_id: 128
    body_2_name: "ground_plane::link::collision"
    body_2_id: 46
    body_1_wrench {
      force {
        x: -9.5521750702652088
        y: -14.154173645085809
        z: 405.77810333994626
      }
      torque {
        x: 0.12717986459088593
        y: 35.114699674102724
        z: 1.2278494007274463
      }
    }
    body_2_wrench {
      force {
        x: 0
        y: 0
        z: 0
      }
      torque {
        x: 0
        y: 0
        z: 0
      }
    }
  }
  wrench {
    body_1_name: "mel_proto::wheel_4::wheel_4_collision"
    body_1_id: 128
    body_2_name: "ground_plane::link::collision"
    body_2_id: 46
    body_1_wrench {
      force {
        x: -14.100549241022634
        y: 8.9298945343806722
        z: 46.951892415157118
      }
      torque {
        x: 1.3928399020116071
        y: -0.369446244961562
        z: 0.48856228038638821
      }
    }
    body_2_wrench {
      force {
        x: 0
        y: 0
        z: 0
      }
      torque {
        x: 0
        y: 0
        z: 0
      }
    }
  }
  time {
    sec: 32
    nsec: 46000000
  }
  world: "empty_world"
}
contact {
  collision1: "mel_proto::wheel_3::wheel_3_collision"
  collision2: "ground_plane::link::collision"
  position {
    x: 2.30367188651479
    y: 0.34871472693124789
    z: -2.3050664404722365e-06
  }
  normal {
    x: 0
    y: 0
    z: 1
  }
  depth: 2.3050664404722365e-06
  wrench {
    body_1_name: "mel_proto::wheel_3::wheel_3_collision"
    body_1_id: 123
    body_2_name: "ground_plane::link::collision"
    body_2_id: 46
    body_1_wrench {
      force {
        x: 6.3601394562013471
        y: -23.592151076317091
        z: 405.82178193891048
      }
      torque {
        x: -1.5688176076316314
        y: -19.916750899158028
        z: -1.1332587797509088
      }
    }
    body_2_wrench {
      force {
        x: 0
        y: 0
        z: 0
      }
      torque {
        x: 0
        y: 0
        z: 0
      }
    }
  }
  time {
    sec: 32
    nsec: 46000000
  }
  world: "empty_world"
}
time {
  sec: 32
  nsec: 46000000
}

The other two wheels aren't fully touching the ground due to some tilting of my base ( i have another robot attached to the mobile base at the front) enter image description here

$\endgroup$
4
  • $\begingroup$ which version of gazebo and which physics engine are you using? $\endgroup$ Feb 6 at 18:09
  • $\begingroup$ @StevenPeters Using Gazebo Classic 11.10.2, with ROS 2 humble. The physics engine should be the default ODE, didn't make any modifications to the configuration (not sure how to see the which physics engine I am using though) $\endgroup$
    – Vishaal
    Feb 7 at 5:57
  • $\begingroup$ What kind of collision shape are you using for the ground? Is it a plane or a box? From one perspective, it looks like a very thin box. Also, what is the total mass of the robot / contact force at each wheel? The contact depth depends on both stiffness parameter and the contact force magnitude. $\endgroup$ Feb 8 at 7:02
  • $\begingroup$ @StevenPeters The ground is just a plane. I have edited the post, please take a look $\endgroup$
    – Vishaal
    Feb 8 at 13:08

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.