0
$\begingroup$

Rosanswers logo

I am currently building a robot. The robot has two continuous spinning motors (wheels) and two servos. I plan on using the ros_control stack to control the operators.

In order to enhance have a nice separation between the two types of hardware I would like to have them in separate notes. Each of the nodes should implement hardware_interface::RobotHW. Since the hardware interface has to be registered in the controller_manager I need a controller_manager in both nodes.

Might is cause problems to spawn two instances of the controller_manager? Is there anything special to take care of in this case? Should the whole robot hardware be controlled with a single ros_control node or are two nodes preferable (one for each type of hardware used)?

Note: ros-noetic on Ubuntu 20.04


Originally posted by CoffeeKangaroo on ROS Answers with karma: 65 on 2022-09-12

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Apparently it can cause problems when spawning multiple controller_manager instances (multiple nodes which implement the hardware_interface::RobotHW interface and a control loop) as discussed here.

A solution to this problem seems to be the combined_robot_hw interface (see here). A guide how to use the combined_robot_hw interface can be found here.


Originally posted by CoffeeKangaroo with karma: 65 on 2022-09-12

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by gvdhoorn on 2022-09-12:
You mention you're thinking of using different nodes for each controller_manager. That will work, and is a different situation from what is described in the issues you link.

Note that using different nodes immediately makes synchronised motion across all targeted joints impossible.

Comment by CoffeeKangaroo on 2022-09-12:
@gvdhoorn Thank you for the hint, I edited my answer.

$\endgroup$

Your Answer

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