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

ros2_control implement job such as homing, alarm clear, etc.

asked 2021-10-06 02:59:00 -0500

byeongkyu gravatar image

Hi,

I implemented ros2_control hardware_interface for my differential_drive wheeled robot that has lift up/turn joint. The motor controller for lift up/turn joint needs the functions such as homing (search origin point) and alarm clear, etc. And, these joints should respond to the emergency button.

I can't find the way interact with hardware_interface by using topic or service or actions.

How can I implement that functions?

edit retag flag offensive close merge delete

Comments

Hi, its not clear to me what you mean by "lift up/turn joint". Also functions like "homing" arent clear. In my ros1 setup its the base_controller (diff_drive) that gets the geometry_msg/Twist and interprets it for the joints which then are sent out direct via hw_interface. See this answer for clarification maybe ros2 hw

Dragonslayer gravatar image Dragonslayer  ( 2021-10-06 06:52:44 -0500 )edit

“Lift up/turn joint” are joint name of my robot. Some joints are need to find origin. This procedure is called “homing”. I already implement hardware_interface uing ros2_control. But, I need some functions that are called from anotherl nodes.

byeongkyu gravatar image byeongkyu  ( 2021-10-06 06:58:33 -0500 )edit
1

Please also check this issue: https://github.com/ros-controls/ros2_...

destogl gravatar image destogl  ( 2021-11-17 12:58:14 -0500 )edit

1 Answer

Sort by » oldest newest most voted
0

answered 2022-03-04 10:48:47 -0500

updated 2022-03-04 10:49:01 -0500

Communication to hardware using topics, services, or actions is not and will not be possibly off-the-shelf. If you really need them, you can initialize a node in your hardware interface implementation. But this is not recommended.

Hardware interfaces now (end Feb 2022) implement lifecycle from lifecycle node interfaces. Those can be controlled externally from services of controller manager. For more details, check this comment.

This means that you should implement those actions to be triggered by additional command interfaces or lifecycle methods. An example for using additional commanding interface can be seen in UR driver:

edit flag offensive delete link more

Question Tools

5 followers

Stats

Asked: 2021-10-06 02:59:00 -0500

Seen: 200 times

Last updated: Mar 04 '22