2626#include " angles/angles.h"
2727#include " builtin_interfaces/msg/duration.hpp"
2828#include " builtin_interfaces/msg/time.hpp"
29+ #include " controller_interface/helpers.hpp"
2930#include " hardware_interface/types/hardware_interface_return_values.hpp"
3031#include " hardware_interface/types/hardware_interface_type_values.hpp"
3132#include " joint_trajectory_controller/trajectory.hpp"
@@ -697,28 +698,6 @@ CallbackReturn JointTrajectoryController::on_configure(const rclcpp_lifecycle::S
697698 return CallbackReturn::SUCCESS;
698699}
699700
700- // Fill ordered_interfaces with references to the matching interfaces
701- // in the same order as in joint_names
702- template <typename T>
703- bool get_ordered_interfaces (
704- std::vector<T> & unordered_interfaces, const std::vector<std::string> & joint_names,
705- const std::string & interface_type, std::vector<std::reference_wrapper<T>> & ordered_interfaces)
706- {
707- for (const auto & joint_name : joint_names)
708- {
709- for (auto & interface : unordered_interfaces)
710- {
711- if (
712- (interface.get_name () == joint_name) && (interface.get_interface_name () == interface_type))
713- {
714- ordered_interfaces.emplace_back (std::ref (interface));
715- }
716- }
717- }
718-
719- return joint_names.size () == ordered_interfaces.size ();
720- }
721-
722701CallbackReturn JointTrajectoryController::on_activate (const rclcpp_lifecycle::State &)
723702{
724703 // order all joints in the storage
@@ -727,7 +706,7 @@ CallbackReturn JointTrajectoryController::on_activate(const rclcpp_lifecycle::St
727706 auto it =
728707 std::find (allowed_interface_types_.begin (), allowed_interface_types_.end (), interface);
729708 auto index = std::distance (allowed_interface_types_.begin (), it);
730- if (!get_ordered_interfaces (
709+ if (!controller_interface:: get_ordered_interfaces (
731710 command_interfaces_, joint_names_, interface, joint_command_interface_[index]))
732711 {
733712 RCLCPP_ERROR (
@@ -741,7 +720,7 @@ CallbackReturn JointTrajectoryController::on_activate(const rclcpp_lifecycle::St
741720 auto it =
742721 std::find (allowed_interface_types_.begin (), allowed_interface_types_.end (), interface);
743722 auto index = std::distance (allowed_interface_types_.begin (), it);
744- if (!get_ordered_interfaces (
723+ if (!controller_interface:: get_ordered_interfaces (
745724 state_interfaces_, joint_names_, interface, joint_state_interface_[index]))
746725 {
747726 RCLCPP_ERROR (
0 commit comments