Class TricycleController
Defined in File tricycle_controller.hpp
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public controller_interface::ControllerInterface
Class Documentation
-
class TricycleController : public controller_interface::ControllerInterface
Public Functions
-
TricycleController()
-
controller_interface::InterfaceConfiguration command_interface_configuration() const override
-
controller_interface::InterfaceConfiguration state_interface_configuration() const override
-
controller_interface::return_type update(const rclcpp::Time &time, const rclcpp::Duration &period) override
-
CallbackReturn on_init() override
-
CallbackReturn on_configure(const rclcpp_lifecycle::State &previous_state) override
-
CallbackReturn on_activate(const rclcpp_lifecycle::State &previous_state) override
-
CallbackReturn on_deactivate(const rclcpp_lifecycle::State &previous_state) override
-
CallbackReturn on_cleanup(const rclcpp_lifecycle::State &previous_state) override
-
CallbackReturn on_error(const rclcpp_lifecycle::State &previous_state) override
-
CallbackReturn on_shutdown(const rclcpp_lifecycle::State &previous_state) override
Protected Functions
-
CallbackReturn get_traction(const std::string &traction_joint_name, std::vector<TractionHandle> &joint)
-
CallbackReturn get_steering(const std::string &steering_joint_name, std::vector<SteeringHandle> &joint)
-
double convert_trans_rot_vel_to_steering_angle(double v, double omega, double wheelbase)
-
std::tuple<double, double> twist_to_ackermann(double linear_command, double angular_command)
-
bool reset()
-
void halt()
Protected Attributes
-
std::shared_ptr<ParamListener> param_listener_
-
Params params_
-
std::vector<TractionHandle> traction_joint_
-
std::vector<SteeringHandle> steering_joint_
-
std::shared_ptr<rclcpp::Publisher<AckermannDrive>> ackermann_command_publisher_ = nullptr
-
std::shared_ptr<realtime_tools::RealtimePublisher<AckermannDrive>> realtime_ackermann_command_publisher_ = nullptr
-
std::shared_ptr<rclcpp::Publisher<nav_msgs::msg::Odometry>> odometry_publisher_ = nullptr
-
std::shared_ptr<realtime_tools::RealtimePublisher<nav_msgs::msg::Odometry>> realtime_odometry_publisher_ = nullptr
-
std::shared_ptr<rclcpp::Publisher<tf2_msgs::msg::TFMessage>> odometry_transform_publisher_ = nullptr
-
std::shared_ptr<realtime_tools::RealtimePublisher<tf2_msgs::msg::TFMessage>> realtime_odometry_transform_publisher_ = nullptr
-
std::chrono::milliseconds cmd_vel_timeout_ = {500}
-
bool subscriber_is_active_ = false
-
rclcpp::Subscription<TwistStamped>::SharedPtr velocity_command_subscriber_ = nullptr
-
realtime_tools::RealtimeBox<std::shared_ptr<TwistStamped>> received_velocity_msg_ptr_ = {nullptr}
-
std::shared_ptr<TwistStamped> last_command_msg_
-
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr reset_odom_service_
-
std::queue<AckermannDrive> previous_commands_
-
TractionLimiter limiter_traction_
-
SteeringLimiter limiter_steering_
-
bool is_halted = false
-
struct SteeringHandle
-
struct TractionHandle
-
TricycleController()