Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

What type of hardware interface did you specify in your URDF file? PositionJointInterface? EffortJointInterface? If you are using PositionJointInterface, try specifying PID controller gains in a file similar to this:

# gazebo_ros_control_params.yaml
  shoulder_joint: {p: 1.0, i: 0.0, d: 1.0}
  # More joints...

In your launch file, load the PID gains in a manner similar to this:

<rosparam file="$(find yourrobot_gazebo)/config/gazebo_ros_control_params.yaml" command="load"/>

Using PositionJointInterface without a PID controller works sometimes, but not always. In particular, friction does not work well without a PID controller. This problem is discussed in the comments for pull request #135, which you mentioned above.