|
31 | 31 | #include "controller_interface/chainable_controller_interface.hpp" |
32 | 32 | #include "controller_interface/controller_interface.hpp" |
33 | 33 | #include "geometry_msgs/msg/twist_stamped.hpp" |
34 | | -<<<<<<< HEAD |
35 | | -#include "hydrodynamics/eigen.hpp" |
36 | | - == == == |
37 | | - = |
38 | | ->>>>>>> origin/main |
39 | 34 | #include "hydrodynamics/hydrodynamics.hpp" |
40 | 35 | #include "nav_msgs/msg/odometry.hpp" |
41 | 36 | #include "rclcpp/rclcpp.hpp" |
|
50 | 45 | // auto-generated by generate_parameter_library |
51 | 46 | #include <velocity_controllers/integral_sliding_mode_controller_parameters.hpp> |
52 | 47 |
|
53 | | - namespace velocity_controllers |
| 48 | +namespace velocity_controllers |
54 | 49 | { |
55 | | - class IntegralSlidingModeController : public controller_interface::ChainableControllerInterface |
56 | | - { |
57 | | - public: |
58 | | - IntegralSlidingModeController() = default; |
| 50 | +class IntegralSlidingModeController : public controller_interface::ChainableControllerInterface |
| 51 | +{ |
| 52 | +public: |
| 53 | + IntegralSlidingModeController() = default; |
59 | 54 |
|
60 | | - auto on_init() -> controller_interface::CallbackReturn override; |
| 55 | + auto on_init() -> controller_interface::CallbackReturn override; |
61 | 56 |
|
62 | | - auto on_configure(const rclcpp_lifecycle::State & previous_state) -> controller_interface::CallbackReturn override; |
| 57 | + auto on_configure(const rclcpp_lifecycle::State & previous_state) -> controller_interface::CallbackReturn override; |
63 | 58 |
|
64 | | - auto on_activate(const rclcpp_lifecycle::State & previous_state) -> controller_interface::CallbackReturn override; |
| 59 | + auto on_activate(const rclcpp_lifecycle::State & previous_state) -> controller_interface::CallbackReturn override; |
65 | 60 |
|
66 | | - auto command_interface_configuration() const -> controller_interface::InterfaceConfiguration override; |
| 61 | + auto command_interface_configuration() const -> controller_interface::InterfaceConfiguration override; |
67 | 62 |
|
68 | | - auto state_interface_configuration() const -> controller_interface::InterfaceConfiguration override; |
| 63 | + auto state_interface_configuration() const -> controller_interface::InterfaceConfiguration override; |
69 | 64 |
|
70 | | - auto update_and_write_commands(const rclcpp::Time & time, const rclcpp::Duration & period) |
71 | | - -> controller_interface::return_type override; |
| 65 | + auto update_and_write_commands(const rclcpp::Time & time, const rclcpp::Duration & period) |
| 66 | + -> controller_interface::return_type override; |
72 | 67 |
|
73 | | - protected: |
74 | | - auto on_export_reference_interfaces() -> std::vector<hardware_interface::CommandInterface> override; |
| 68 | +protected: |
| 69 | + auto on_export_reference_interfaces() -> std::vector<hardware_interface::CommandInterface> override; |
75 | 70 |
|
76 | | - auto update_reference_from_subscribers(const rclcpp::Time & time, const rclcpp::Duration & period) |
77 | | - -> controller_interface::return_type override; |
| 71 | + auto update_reference_from_subscribers(const rclcpp::Time & time, const rclcpp::Duration & period) |
| 72 | + -> controller_interface::return_type override; |
78 | 73 |
|
79 | | - auto update_system_state_values() -> controller_interface::return_type; |
| 74 | + auto update_system_state_values() -> controller_interface::return_type; |
80 | 75 |
|
81 | | - auto update_parameters() -> void; |
| 76 | + auto update_parameters() -> void; |
82 | 77 |
|
83 | | - auto configure_parameters() -> controller_interface::CallbackReturn; |
| 78 | + auto configure_parameters() -> controller_interface::CallbackReturn; |
84 | 79 |
|
85 | | - auto update_and_validate_interfaces() -> controller_interface::return_type; |
| 80 | + auto update_and_validate_interfaces() -> controller_interface::return_type; |
86 | 81 |
|
87 | | - realtime_tools::RealtimeBuffer<geometry_msgs::msg::Twist> reference_; |
88 | | - std::shared_ptr<rclcpp::Subscription<geometry_msgs::msg::Twist>> reference_sub_; |
| 82 | + realtime_tools::RealtimeBuffer<geometry_msgs::msg::Twist> reference_; |
| 83 | + std::shared_ptr<rclcpp::Subscription<geometry_msgs::msg::Twist>> reference_sub_; |
89 | 84 |
|
90 | | - realtime_tools::RealtimeBuffer<nav_msgs::msg::Odometry> system_state_; |
91 | | - std::shared_ptr<rclcpp::Subscription<nav_msgs::msg::Odometry>> system_state_sub_; |
92 | | - std::vector<double> system_state_values_; |
| 85 | + realtime_tools::RealtimeBuffer<nav_msgs::msg::Odometry> system_state_; |
| 86 | + std::shared_ptr<rclcpp::Subscription<nav_msgs::msg::Odometry>> system_state_sub_; |
| 87 | + std::vector<double> system_state_values_; |
93 | 88 |
|
94 | | - // we need the system rotation from the inertial frame to the vehicle frame for the hydrodynamic model |
95 | | - std::unique_ptr<tf2_ros::Buffer> tf_buffer_; |
96 | | - std::shared_ptr<tf2_ros::TransformListener> tf_listener_; |
| 89 | + // we need the system rotation from the inertial frame to the vehicle frame for the hydrodynamic model |
| 90 | + std::unique_ptr<tf2_ros::Buffer> tf_buffer_; |
| 91 | + std::shared_ptr<tf2_ros::TransformListener> tf_listener_; |
97 | 92 |
|
98 | | - std::string inertial_frame_id_, vehicle_frame_id_; |
99 | | - realtime_tools::RealtimeBuffer<Eigen::Quaterniond> system_rotation_; |
| 93 | + std::string inertial_frame_id_, vehicle_frame_id_; |
| 94 | + realtime_tools::RealtimeBuffer<Eigen::Quaterniond> system_rotation_; |
100 | 95 |
|
101 | | - using ControllerState = control_msgs::msg::MultiDOFStateStamped; |
102 | | - std::shared_ptr<rclcpp::Publisher<ControllerState>> controller_state_pub_; |
103 | | - std::unique_ptr<realtime_tools::RealtimePublisher<ControllerState>> rt_controller_state_pub_; |
104 | | - ControllerState controller_state_; |
| 96 | + using ControllerState = control_msgs::msg::MultiDOFStateStamped; |
| 97 | + std::shared_ptr<rclcpp::Publisher<ControllerState>> controller_state_pub_; |
| 98 | + std::unique_ptr<realtime_tools::RealtimePublisher<ControllerState>> rt_controller_state_pub_; |
| 99 | + ControllerState controller_state_; |
105 | 100 |
|
106 | | - std::shared_ptr<integral_sliding_mode_controller::ParamListener> param_listener_; |
107 | | - integral_sliding_mode_controller::Params params_; |
| 101 | + std::shared_ptr<integral_sliding_mode_controller::ParamListener> param_listener_; |
| 102 | + integral_sliding_mode_controller::Params params_; |
108 | 103 |
|
109 | | - // the dofs will always be of order six, but we make it configurable to allow for renaming |
110 | | - std::vector<std::string> dofs_; |
111 | | - std::size_t n_dofs_; |
| 104 | + // the dofs will always be of order six, but we make it configurable to allow for renaming |
| 105 | + std::vector<std::string> dofs_; |
| 106 | + std::size_t n_dofs_; |
112 | 107 |
|
113 | | - // controller gains/parameters |
114 | | - Eigen::Matrix6d kp_, rho_; |
115 | | - double boundary_thickness_; |
| 108 | + // controller gains/parameters |
| 109 | + Eigen::Matrix6d kp_, rho_; |
| 110 | + double boundary_thickness_; |
116 | 111 |
|
117 | | - // controller state |
118 | | - bool first_update_{true}; |
119 | | - Eigen::Vector6d init_error_, total_error_; |
| 112 | + // controller state |
| 113 | + bool first_update_{true}; |
| 114 | + Eigen::Vector6d init_error_, total_error_; |
120 | 115 |
|
121 | | - std::unique_ptr<hydrodynamics::Params> model_; |
| 116 | + std::unique_ptr<hydrodynamics::Params> model_; |
122 | 117 |
|
123 | | - rclcpp::Logger logger_{rclcpp::get_logger("integral_sliding_mode_controller")}; |
124 | | - }; |
| 118 | + rclcpp::Logger logger_{rclcpp::get_logger("integral_sliding_mode_controller")}; |
| 119 | +}; |
125 | 120 |
|
126 | 121 | } // namespace velocity_controllers |
0 commit comments