0
$\begingroup$

Rosanswers logo

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?


Originally posted by lucasw on ROS Answers with karma: 8729 on 2016-06-23

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by gvdhoorn with karma: 86574 on 2016-06-24

This answer was ACCEPTED on the original site

Post score: 2

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.