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

Revision history [back]

Hi,

What do you mean with "switch_controllers" on the hardware_interface? Currently, there is no such a function.

Regarding start() and stop() methods for the hardware, they should change HW state to "able_to_move" and "not_able_to_move". In the configure method, you want to initialize port/communication interface and set-up robot if needed. start() method then takes care that the HW can receive commands using write() method.

Does this answers your question?

Hi,

What do you mean with "switch_controllers" on the hardware_interface? Currently, there is no such a function.

Regarding start() and stop() methods for the hardware, they should change HW state to "able_to_move" and "not_able_to_move". In the configure method, you want to initialize port/communication interface and set-up robot if needed. start() method then takes care that the HW can receive commands using write() method.

Does this answers Did I answer your question?question or I missed the point?

Hi,

What do you mean with "switch_controllers" on the hardware_interface? Currently, there is no such a function.

UPDATE: The controllers and hardware interfaces are completely independent component. Therefore, "switch_controlller" only call start() and stop() methods on the controllers and the hardware interface keeps running. The start()and stop() methods of the hardware are currently not used. They are added as part of the interface to enable hardware-recovery after emergency stop and tool changers (switching of tools). In the foreseeable future will add additional service to the Controller Manager to start and stop hardware.

Regarding start() and stop() methods for the hardware, they should change HW state to "able_to_move" and "not_able_to_move". In the configure configure() method, you want to initialize port/communication interface and set-up robot if needed. needed (closing is usually done in destructor). start() method then takes care that the HW can receive commands using write() method.

Did I answer your question or I missed the point?