Ask Your Question

ros_control without gazebo?

asked 2016-06-23 18:03:27 -0500

lucasw gravatar image

updated 2020-11-21 12:09:00 -0500

I've used ros control multiple times for commanding joint positions in gazebo mainly following the rrbot example, but never in a real robot or a stripped down non-gazebo simulation. How is it done, and is there an example?

As I understand it libgazebo_ros_control is loaded as a plugin into gazebo, then the controller_manager spawner asks it to create a controller for each joint specified. Is there a generic non-gazebo service provider of controller_manager/load_controller that subscribes to joint feedback (derived from encoders) and desired joint position/velocity/effort and publishes joint commands according to the controller type and gain parameters?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-06-24 04:02:19 -0500

gvdhoorn gravatar image

updated 2016-06-24 04:02:43 -0500

This is only a partial answer, but have a look at Dave Coleman's ros_control_boilerplate.

The gazebo_ros_control package is essentially just one implementation of a ros_control hardware_interface subclass/plugin, which together with a node running the read()/write() loop (which may be run from a hard real-time task, or from a regular pthread, or something else) forms the bulk of a ros_control setup.

For a real piece of hardware, the process to setup ros_control is exactly the same, apart from the fact that you'll have to provide a hardware_interface implementation for your platform. After that, (almost) everything else is the same.

I highly recommend to view the presentation Adolfo gave at ROSCon14 if you haven't already.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2016-06-23 18:03:27 -0500

Seen: 424 times

Last updated: Jun 24 '16