|
Nav2 Navigation Stack - lyrical
lyrical
ROS 2 Navigation Stack
|
This class that smooths cmd_vel velocities for robot bases. More...
#include <nav2_velocity_smoother/include/nav2_velocity_smoother/velocity_smoother.hpp>


Public Member Functions | |
| VelocitySmoother (const rclcpp::NodeOptions &options=rclcpp::NodeOptions()) | |
| A constructor for nav2_velocity_smoother::VelocitySmoother. More... | |
| ~VelocitySmoother () | |
| Destructor for nav2_velocity_smoother::VelocitySmoother. | |
| double | findEtaConstraint (const double v_curr, const double v_cmd, const double accel, const double decel) |
| Find the scale factor, eta, which scales axis into acceleration range. More... | |
| double | applyConstraints (const double v_curr, const double v_cmd, const double accel, const double decel, const double eta) |
| Apply acceleration and scale factor constraints. More... | |
Public Member Functions inherited from nav2::LifecycleNode | |
| LifecycleNode (const std::string &node_name, const std::string &ns, const rclcpp::NodeOptions &options=rclcpp::NodeOptions()) | |
| A lifecycle node constructor. More... | |
| LifecycleNode (const std::string &node_name, const rclcpp::NodeOptions &options=rclcpp::NodeOptions()) | |
| A lifecycle node constructor with no namespace. More... | |
| template<typename ParameterT > | |
| ParameterT | declare_or_get_parameter (const std::string ¶meter_name, const ParameterDescriptor ¶meter_descriptor=ParameterDescriptor()) |
| Declares or gets a parameter with specified type (not value). If the parameter is already declared, returns its value; otherwise declares it with the specified type. More... | |
| template<typename ParamType > | |
| ParamType | declare_or_get_parameter (const std::string ¶meter_name, const ParamType &default_value, const ParameterDescriptor ¶meter_descriptor=ParameterDescriptor()) |
| Declares or gets a parameter. If the parameter is already declared, returns its value; otherwise declares it and returns the default value. More... | |
| template<typename MessageT , typename CallbackT > | |
| nav2::Subscription< MessageT >::SharedPtr | create_subscription (const std::string &topic_name, CallbackT &&callback, const rclcpp::QoS &qos=nav2::qos::StandardTopicQoS(), const rclcpp::CallbackGroup::SharedPtr &callback_group=nullptr) |
| Create a subscription to a topic using Nav2 QoS profiles and SubscriptionOptions. More... | |
| template<typename MessageT > | |
| nav2::Publisher< MessageT >::SharedPtr | create_publisher (const std::string &topic_name, const rclcpp::QoS &qos=nav2::qos::StandardTopicQoS(), const rclcpp::CallbackGroup::SharedPtr &callback_group=nullptr) |
| Create a publisher to a topic using Nav2 QoS profiles and PublisherOptions. More... | |
| template<typename ServiceT > | |
| nav2::ServiceClient< ServiceT >::SharedPtr | create_client (const std::string &service_name, bool use_internal_executor=false) |
| Create a ServiceClient to interface with a service. More... | |
| template<typename ServiceT > | |
| nav2::ServiceServer< ServiceT >::SharedPtr | create_service (const std::string &service_name, typename nav2::ServiceServer< ServiceT >::CallbackType cb, rclcpp::CallbackGroup::SharedPtr callback_group=nullptr) |
| Create a ServiceServer to host with a service. More... | |
| template<typename DurationRepT , typename DurationT , typename CallbackT > | |
| rclcpp::GenericTimer< CallbackT >::SharedPtr | create_timer (std::chrono::duration< DurationRepT, DurationT > period, CallbackT callback, rclcpp::CallbackGroup::SharedPtr group=nullptr) |
| Create a sim-time-aware timer for Nav2 lifecycle nodes. More... | |
| template<typename ActionT > | |
| nav2::SimpleActionServer< ActionT >::SharedPtr | create_action_server (const std::string &action_name, typename nav2::SimpleActionServer< ActionT >::ExecuteCallback execute_callback, typename nav2::SimpleActionServer< ActionT >::GoalReceivedCallback goal_received_callback=nullptr, typename nav2::SimpleActionServer< ActionT >::CompletionCallback compl_cb=nullptr, std::chrono::milliseconds server_timeout=std::chrono::milliseconds(500), bool spin_thread=false, const bool realtime=false) |
| Create a SimpleActionServer to host with an action. More... | |
| template<typename ActionT > | |
| nav2::ActionClient< ActionT >::SharedPtr | create_action_client (const std::string &action_name, rclcpp::CallbackGroup::SharedPtr callback_group=nullptr) |
| Create a ActionClient to call an action using. More... | |
| nav2::LifecycleNode::SharedPtr | shared_from_this () |
| Get a shared pointer of this. | |
| nav2::LifecycleNode::WeakPtr | weak_from_this () |
| Get a shared pointer of this. | |
| nav2::CallbackReturn | on_error (const rclcpp_lifecycle::State &) |
| Abstracted on_error state transition callback, since unimplemented as of 2020 in the managed ROS2 node state machine. More... | |
| void | autostart () |
| Automatically configure and active the node. | |
| virtual void | on_rcl_preshutdown () |
| Perform preshutdown activities before our Context is shutdown. Note that this is related to our Context's shutdown sequence, not the lifecycle node state machine. | |
| void | createBond () |
| Create bond connection to lifecycle manager. | |
| void | destroyBond () |
| Destroy bond connection to lifecycle manager. | |
Protected Member Functions | |
| nav2::CallbackReturn | on_configure (const rclcpp_lifecycle::State &state) override |
| Configures parameters and member variables. More... | |
| nav2::CallbackReturn | on_activate (const rclcpp_lifecycle::State &state) override |
| Activates member variables. More... | |
| nav2::CallbackReturn | on_deactivate (const rclcpp_lifecycle::State &state) override |
| Deactivates member variables. More... | |
| nav2::CallbackReturn | on_cleanup (const rclcpp_lifecycle::State &state) override |
| Calls clean up states and resets member variables. More... | |
| nav2::CallbackReturn | on_shutdown (const rclcpp_lifecycle::State &state) override |
| Called when in Shutdown state. More... | |
| void | inputCommandCallback (const geometry_msgs::msg::Twist::ConstSharedPtr &msg) |
| Callback for incoming velocity commands. More... | |
| void | inputCommandStampedCallback (const geometry_msgs::msg::TwistStamped::ConstSharedPtr &msg) |
| void | smootherTimer () |
| Main worker timer function. | |
| rcl_interfaces::msg::SetParametersResult | validateParameterUpdatesCallback (const std::vector< rclcpp::Parameter > ¶meters) |
| Validate incoming parameter updates before applying them. This callback is triggered when one or more parameters are about to be updated. It checks the validity of parameter values and rejects updates that would lead to invalid or inconsistent configurations. More... | |
| void | updateParametersCallback (const std::vector< rclcpp::Parameter > ¶meters) |
| Apply parameter updates after validation This callback is executed when parameters have been successfully updated. It updates the internal configuration of the node with the new parameter values. More... | |
Protected Member Functions inherited from nav2::LifecycleNode | |
| void | printLifecycleNodeNotification () |
| Print notifications for lifecycle node. | |
| void | register_rcl_preshutdown_callback () |
| void | runCleanups () |
Protected Attributes | |
| std::unique_ptr< nav2_util::OdomSmoother > | odom_smoother_ |
| std::unique_ptr< nav2_util::TwistPublisher > | smoothed_cmd_pub_ |
| std::unique_ptr< nav2_util::TwistSubscriber > | cmd_sub_ |
| rclcpp::TimerBase::SharedPtr | timer_ |
| rclcpp::Clock::SharedPtr | clock_ |
| geometry_msgs::msg::TwistStamped | last_cmd_ |
| geometry_msgs::msg::TwistStamped | command_ |
| double | smoothing_frequency_ |
| double | odom_duration_ |
| std::string | odom_topic_ |
| bool | open_loop_ |
| bool | stopped_ {true} |
| bool | scale_velocities_ |
| bool | is_6dof_ |
| bool | received_first_command_ |
| std::vector< double > | max_velocities_ |
| std::vector< double > | min_velocities_ |
| std::vector< double > | max_accels_ |
| std::vector< double > | max_decels_ |
| std::vector< double > | deadband_velocities_ |
| rclcpp::Duration | velocity_timeout_ {0, 0} |
| rclcpp::Time | last_command_time_ |
| std::mutex | mutex_ |
| rclcpp::node_interfaces::PostSetParametersCallbackHandle::SharedPtr | post_set_params_handler_ |
| rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr | on_set_params_handler_ |
Protected Attributes inherited from nav2::LifecycleNode | |
| std::unique_ptr< rclcpp::PreShutdownCallbackHandle > | rcl_preshutdown_cb_handle_ {nullptr} |
| std::shared_ptr< bond::Bond > | bond_ {nullptr} |
| double | bond_heartbeat_period {0.1} |
| rclcpp::TimerBase::SharedPtr | autostart_timer_ |
Additional Inherited Members | |
Public Types inherited from nav2::LifecycleNode | |
| using | SharedPtr = std::shared_ptr< nav2::LifecycleNode > |
| using | WeakPtr = std::weak_ptr< nav2::LifecycleNode > |
| using | SharedConstPointer = std::shared_ptr< const nav2::LifecycleNode > |
This class that smooths cmd_vel velocities for robot bases.
Definition at line 41 of file velocity_smoother.hpp.
|
explicit |
A constructor for nav2_velocity_smoother::VelocitySmoother.
| options | Additional options to control creation of the node. |
Definition at line 31 of file velocity_smoother.cpp.
| double nav2_velocity_smoother::VelocitySmoother::applyConstraints | ( | const double | v_curr, |
| const double | v_cmd, | ||
| const double | accel, | ||
| const double | decel, | ||
| const double | eta | ||
| ) |
Apply acceleration and scale factor constraints.
| v_curr | current velocity |
| v_cmd | commanded velocity |
| accel | maximum acceleration |
| decel | maximum deceleration |
| eta | Scale factor |
Definition at line 289 of file velocity_smoother.cpp.
Referenced by smootherTimer().

| double nav2_velocity_smoother::VelocitySmoother::findEtaConstraint | ( | const double | v_curr, |
| const double | v_cmd, | ||
| const double | accel, | ||
| const double | decel | ||
| ) |
Find the scale factor, eta, which scales axis into acceleration range.
| v_curr | current velocity |
| v_cmd | commanded velocity |
| accel | maximum acceleration |
| decel | maximum deceleration |
Definition at line 258 of file velocity_smoother.cpp.
Referenced by smootherTimer().

|
protected |
Callback for incoming velocity commands.
| msg | Twist message |
Definition at line 250 of file velocity_smoother.cpp.
Referenced by on_configure().

|
overrideprotected |
Activates member variables.
| state | LifeCycle Node's state |
Definition at line 165 of file velocity_smoother.cpp.
References nav2::LifecycleNode::create_timer(), nav2::LifecycleNode::createBond(), nav2::LifecycleNode::shared_from_this(), smootherTimer(), updateParametersCallback(), and validateParameterUpdatesCallback().

|
overrideprotected |
Calls clean up states and resets member variables.
| state | LifeCycle Node's state |
Definition at line 216 of file velocity_smoother.cpp.
Referenced by on_configure().

|
overrideprotected |
Configures parameters and member variables.
| state | LifeCycle Node's state |
Definition at line 46 of file velocity_smoother.cpp.
References inputCommandCallback(), on_cleanup(), and nav2::LifecycleNode::shared_from_this().

|
overrideprotected |
Deactivates member variables.
| state | LifeCycle Node's state |
Definition at line 191 of file velocity_smoother.cpp.
References nav2::LifecycleNode::destroyBond(), and nav2::LifecycleNode::shared_from_this().

|
overrideprotected |
Called when in Shutdown state.
| state | LifeCycle Node's state |
Definition at line 226 of file velocity_smoother.cpp.
|
protected |
Apply parameter updates after validation This callback is executed when parameters have been successfully updated. It updates the internal configuration of the node with the new parameter values.
| parameters | List of parameters that have been updated. |
Definition at line 574 of file velocity_smoother.cpp.
References nav2::LifecycleNode::create_timer(), nav2::LifecycleNode::shared_from_this(), and smootherTimer().
Referenced by on_activate().


|
protected |
Validate incoming parameter updates before applying them. This callback is triggered when one or more parameters are about to be updated. It checks the validity of parameter values and rejects updates that would lead to invalid or inconsistent configurations.
| parameters | List of parameters that are being updated. |
Definition at line 499 of file velocity_smoother.cpp.
Referenced by on_activate().
