@@ -61,11 +61,8 @@ TestChainableController::state_interface_configuration() const
6161 }
6262}
6363
64- controller_interface::return_type TestChainableController::update (
65- const rclcpp::Time & /* time*/ , const rclcpp::Duration & /* period*/ )
64+ controller_interface::return_type TestChainableController::update_reference_from_subscribers ()
6665{
67- ++internal_counter;
68-
6966 for (size_t i = 0 ; i < reference_interfaces_.size (); ++i)
7067 {
7168 RCLCPP_INFO (
@@ -75,20 +72,25 @@ controller_interface::return_type TestChainableController::update(
7572 reference_interfaces_[i]);
7673 }
7774
78- if (!is_in_chained_mode ())
75+ auto joint_commands = rt_command_ptr_.readFromRT ();
76+ reference_interfaces_ = (*joint_commands)->data ;
77+ for (size_t i = 0 ; i < reference_interfaces_.size (); ++i)
7978 {
80- auto joint_commands = rt_command_ptr_.readFromRT ();
81- reference_interfaces_ = (*joint_commands)->data ;
82- for (size_t i = 0 ; i < reference_interfaces_.size (); ++i)
83- {
84- RCLCPP_INFO (
85- get_node ()->get_logger (),
86- " Updated value of reference interface '%s' after applying external input is %f" ,
87- (std::string (get_node ()->get_name ()) + " /" + reference_interface_names_[i]).c_str (),
88- reference_interfaces_[i]);
89- }
79+ RCLCPP_INFO (
80+ get_node ()->get_logger (),
81+ " Updated value of reference interface '%s' after applying external input is %f" ,
82+ (std::string (get_node ()->get_name ()) + " /" + reference_interface_names_[i]).c_str (),
83+ reference_interfaces_[i]);
9084 }
9185
86+ return controller_interface::return_type::OK;
87+ }
88+
89+ controller_interface::return_type TestChainableController::update_and_write_commands (
90+ const rclcpp::Time & /* time*/ , const rclcpp::Duration & /* period*/ )
91+ {
92+ ++internal_counter;
93+
9294 for (size_t i = 0 ; i < command_interfaces_.size (); ++i)
9395 {
9496 command_interfaces_[i].set_value (reference_interfaces_[i] - state_interfaces_[i].get_value ());
0 commit comments