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

What is the difference between the gazebo differential drive plugin and a differential drive controller spawned by controller_spawner?

asked 2015-05-17 21:44:36 -0600

nodge gravatar image

updated 2015-05-17 21:45:57 -0600

What's the difference between

  • a controller specified by <plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so"> in a <gazebo> tag, in an URDF file, and

  • a controller spawned by a controller_manager spawner node of type "diff_drive_controller/DiffDriveController" ?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
6

answered 2015-05-19 08:30:58 -0600

Adolfo Rodriguez T gravatar image
  • a controller specified by <plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so"> in a <gazebo> tag, in an URDF file, and

This is a Gazebo plugin, and hence will work only in Gazebo (doc).

  • a controller spawned by a controller_manager spawner node of type "diff_drive_controller/DiffDriveController"

This is a ros_control plugin, and will work with any supported robot backend, and includes not only Gazebo, but ros_control-enabled hardware, and potentially other simulators as well (doc).

Feature-wise they seem roughly similar: take twist commands, publish odometry. I would suggest you to look at the documentation of each alternative and figure out which works best for your setup.

edit flag offensive delete link more

Comments

It seems that now these two behaves quite differently by default. On my current setup (ros-kinetic-desktop-full with Gazebo7), the gazebo plugin works well with joint defined with EffortJointInterface. But the ros_control plugin seems to be requiring VelocityJointInterface.

Zheng gravatar image Zheng  ( 2018-07-13 19:36:29 -0600 )edit

Question Tools

3 followers

Stats

Asked: 2015-05-17 21:44:36 -0600

Seen: 3,915 times

Last updated: May 19 '15