ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Assuming this is Gazebo Classic (as opposed to the new Gazebo, formerly Ignition) I suspect this is the same as https://github.com/UniversalRobots/Universal_Robots_ROS2_Gazebo_Simulation/issues/19

There's a lot of detail there but I'll briefly summarize for the forum here.

In ROS 1, gazebo_ros_control set the Open Dynamics Engine dParamFmax parameter here. This parameter is used in ODE joint motors:

http://ode.org/wiki/index.php/Manual#Stops_and_motor_parameters

Joint motors solve all these problems: they bring the body up to speed in one time step, provided that does not take more force than is allowed

The gazebo_ros2_control plugin, as far as I can tell, does not set this parameter right now and IIRC it defaults to zero.

Because of the way passive joint friction is implemented in ODE, a joint motor with zero speed and a max force, a workaround for active joints without building gazebo_ros2_control from source is to add a joint <dynamics> tag to your URDF with the friction parameter set to some suitable value for this maximum joint motor force parameter.

gazebo_ros_control set the dParamFmax or fmax parameter to the joint effort limit. IMO, theoretically, it should probably be higher than that with joint effort limits enforced in some other way, but practically either should work fine for simulation.