Skip to content

Conversation

christophfroehlich
Copy link

See ros-controls/ros2_control#2323
needed for ros-controls/ros2_control#2589

Please release it to kilted and rolling, thanks :)
Note: This API is not available on humble.

@MarcosZ
Copy link

MarcosZ commented Oct 6, 2025

I also found another error when building for Jazzy along these lines:

--- stderr: hardware_interface                                                                                                                             
In file included from /root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/actuator_interface.hpp:18,
                 from /root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/actuator.hpp:18,
                 from /root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/resource_manager.hpp:23,
                 from /root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/src/resource_manager.cpp:15:
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp: In member function ‘rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn hardware_interface::HardwareComponentInterface::init(const hardware_interface::HardwareComponentParams&)’:
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp:138:23: error: ‘AsyncFunctionHandlerParams’ is not a member of ‘realtime_tools’; did you mean ‘AsyncFunctionHandler’?
  138 |       realtime_tools::AsyncFunctionHandlerParams async_thread_params;
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                       AsyncFunctionHandler
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp:139:7: error: ‘async_thread_params’ was not declared in this scope
  139 |       async_thread_params.thread_priority = info_.async_params.thread_priority;
      |       ^~~~~~~~~~~~~~~~~~~
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp:141:25: error: ‘AsyncSchedulingPolicy’ is not a member of ‘realtime_tools’
  141 |         realtime_tools::AsyncSchedulingPolicy(info_.async_params.scheduling_policy);
      |                         ^~~~~~~~~~~~~~~~~~~~~
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp: In member function ‘void hardware_interface::HardwareComponentInterface::pause_async_operations()’:
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp:892:23: error: ‘class realtime_tools::AsyncFunctionHandler<hardware_interface::return_type>’ has no member named ‘pause_execution’
  892 |       async_handler_->pause_execution();
      |                       ^~~~~~~~~~~~~~~
In file included from /root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component.hpp:23,
                 from /root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/src/hardware_component.cpp:15:
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp: In member function ‘rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn hardware_interface::HardwareComponentInterface::init(const hardware_interface::HardwareComponentParams&)’:
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp:138:23: error: ‘AsyncFunctionHandlerParams’ is not a member of ‘realtime_tools’; did you mean ‘AsyncFunctionHandler’?
  138 |       realtime_tools::AsyncFunctionHandlerParams async_thread_params;
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                       AsyncFunctionHandler
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp:139:7: error: ‘async_thread_params’ was not declared in this scope
  139 |       async_thread_params.thread_priority = info_.async_params.thread_priority;
      |       ^~~~~~~~~~~~~~~~~~~
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp:141:25: error: ‘AsyncSchedulingPolicy’ is not a member of ‘realtime_tools’
  141 |         realtime_tools::AsyncSchedulingPolicy(info_.async_params.scheduling_policy);
      |                         ^~~~~~~~~~~~~~~~~~~~~
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp: In member function ‘void hardware_interface::HardwareComponentInterface::pause_async_operations()’:
/root/workspace/ros2_kortex_ws/src/ros2_control/hardware_interface/include/hardware_interface/hardware_component_interface.hpp:892:23: error: ‘class realtime_tools::AsyncFunctionHandler<hardware_interface::return_type>’ has no member named ‘pause_execution’
  892 |       async_handler_->pause_execution();
      |                       ^~~~~~~~~~~~~~~
gmake[2]: *** [CMakeFiles/hardware_interface.dir/build.make:104: CMakeFiles/hardware_interface.dir/src/hardware_component.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/hardware_interface.dir/build.make:90: CMakeFiles/hardware_interface.dir/src/resource_manager.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:198: CMakeFiles/hardware_interface.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< hardware_interface [17.3s, exited with code 2]
Aborted  <<< control_toolbox [56.2s]                                                                                            
Aborted  <<< ros_gz_bridge [2min 58s]                                           
                                        
Summary: 18 packages finished [3min 41s]
  1 package failed: hardware_interface
  2 packages aborted: control_toolbox ros_gz_bridge
  5 packages had stderr output: control_toolbox generate_parameter_library_example hardware_interface kortex_api ros_gz_bridge
  52 packages not processed

@christophfroehlich
Copy link
Author

we released realtime_tools recently with the new asynchandler. you either have to use ros2-testing or compile realtime_tools from source

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants