Robotics StackExchange | Archived questions

Gazebo Plugin vs Ros Control

Hello Everybody,

I was wondering what the community’s opinion on some standards regarding when to create a gazebo plugin vs using ros control. Currently I can see the value in having a gazebo plugin for sensors/physics usage. And one would use ROS control for actuating any joints using the built in controllers. The question is: Why have a gazebo plugin for diff_drive/tricycle drive/skid steer when ros control would work just the same? The only advantage I see would be for calculating odometry because you can access the joint/link information directly from gazebo. My next question on top of that would be then why not have a seperate gazebo plugin just for calculating odometry.

Thanks for your input in advance.

Asked by Akashjinandra on 2019-08-30 09:47:05 UTC

Comments

I won't comment on everything, but:

The question is: Why have a gazebo plugin for diff_drive/tricycle drive/skid steer when ros control would work just the same?

if you're asking why there is both a diff_drive_controller (in ros_control) and a Gazebo plugin then the answer is essentially that it's historical: the Gazebo plugin was created first, before ros_control existed. Then ros_control was created, and some users thought it would be nice to have a Gazebo version of it. That allowed them to use ros_control controllers with Gazebo simulated robots.

Then the ros_control diff_drive_controller was written, which, because there is Gazebo integration for ros_control, can be used with both 'real' hardware_interfaces, as well as with Gazebo. You cannot use the Gazebo plugin with a real robot.

As you can see, it 'just happened'. There wasn't any (iiuc) analysis of advantages of disadvantages.

Asked by gvdhoorn on 2019-08-30 10:25:06 UTC

Thanks for the answer. I was thinking it was something like that. To be more specific I was thinking that the tricycle drive and diff drive plugin of gazebo could be replaced by a ros control implementation of them for gazebo.

Asked by Akashjinandra on 2019-08-30 10:49:08 UTC

Answers