Nav2 Navigation Stack - kilted  kilted
ROS 2 Navigation Stack
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
nav2_velocity_smoother::VelocitySmoother Class Reference

This class that smooths cmd_vel velocities for robot bases. More...

#include <nav2_velocity_smoother/include/nav2_velocity_smoother/velocity_smoother.hpp>

Inheritance diagram for nav2_velocity_smoother::VelocitySmoother:
Inheritance graph
[legend]
Collaboration diagram for nav2_velocity_smoother::VelocitySmoother:
Collaboration graph
[legend]

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_util::LifecycleNode
 LifecycleNode (const std::string &node_name, const std::string &ns="", const rclcpp::NodeOptions &options=rclcpp::NodeOptions())
 A lifecycle node constructor. More...
 
void add_parameter (const std::string &name, const rclcpp::ParameterValue &default_value, const std::string &description="", const std::string &additional_constraints="", bool read_only=false)
 Declare a parameter that has no integer or floating point range constraints. More...
 
void add_parameter (const std::string &name, const rclcpp::ParameterValue &default_value, const floating_point_range fp_range, const std::string &description="", const std::string &additional_constraints="", bool read_only=false)
 Declare a parameter that has a floating point range constraint. More...
 
void add_parameter (const std::string &name, const rclcpp::ParameterValue &default_value, const integer_range int_range, const std::string &description="", const std::string &additional_constraints="", bool read_only=false)
 Declare a parameter that has an integer range constraint. More...
 
std::shared_ptr< nav2_util::LifecycleNodeshared_from_this ()
 Get a shared pointer of this.
 
nav2_util::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_util::CallbackReturn on_configure (const rclcpp_lifecycle::State &state) override
 Configures parameters and member variables. More...
 
nav2_util::CallbackReturn on_activate (const rclcpp_lifecycle::State &state) override
 Activates member variables. More...
 
nav2_util::CallbackReturn on_deactivate (const rclcpp_lifecycle::State &state) override
 Deactivates member variables. More...
 
nav2_util::CallbackReturn on_cleanup (const rclcpp_lifecycle::State &state) override
 Calls clean up states and resets member variables. More...
 
nav2_util::CallbackReturn on_shutdown (const rclcpp_lifecycle::State &state) override
 Called when in Shutdown state. More...
 
void inputCommandCallback (const geometry_msgs::msg::Twist::SharedPtr msg)
 Callback for incoming velocity commands. More...
 
void inputCommandStampedCallback (const geometry_msgs::msg::TwistStamped::SharedPtr msg)
 
void smootherTimer ()
 Main worker timer function.
 
rcl_interfaces::msg::SetParametersResult dynamicParametersCallback (std::vector< rclcpp::Parameter > parameters)
 Dynamic reconfigure callback. More...
 
- Protected Member Functions inherited from nav2_util::LifecycleNode
void printLifecycleNodeNotification ()
 Print notifications for lifecycle node.
 
void register_rcl_preshutdown_callback ()
 
void runCleanups ()
 

Protected Attributes

std::unique_ptr< nav2_util::OdomSmootherodom_smoother_
 
std::unique_ptr< nav2_util::TwistPublishersmoothed_cmd_pub_
 
std::unique_ptr< nav2_util::TwistSubscribercmd_sub_
 
rclcpp::TimerBase::SharedPtr timer_
 
rclcpp::Clock::SharedPtr clock_
 
geometry_msgs::msg::TwistStamped last_cmd_
 
geometry_msgs::msg::TwistStamped::SharedPtr command_
 
double smoothing_frequency_
 
double odom_duration_
 
std::string odom_topic_
 
bool open_loop_
 
bool stopped_ {true}
 
bool scale_velocities_
 
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_
 
rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr dyn_params_handler_
 
- Protected Attributes inherited from nav2_util::LifecycleNode
std::unique_ptr< rclcpp::PreShutdownCallbackHandle > rcl_preshutdown_cb_handle_ {nullptr}
 
std::shared_ptr< bond::Bond > bond_ {nullptr}
 
double bond_heartbeat_period
 
rclcpp::TimerBase::SharedPtr autostart_timer_
 

Detailed Description

This class that smooths cmd_vel velocities for robot bases.

Definition at line 41 of file velocity_smoother.hpp.

Constructor & Destructor Documentation

◆ VelocitySmoother()

nav2_velocity_smoother::VelocitySmoother::VelocitySmoother ( const rclcpp::NodeOptions &  options = rclcpp::NodeOptions())
explicit

A constructor for nav2_velocity_smoother::VelocitySmoother.

Parameters
optionsAdditional options to control creation of the node.

Definition at line 32 of file velocity_smoother.cpp.

Member Function Documentation

◆ applyConstraints()

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.

Parameters
v_currcurrent velocity
v_cmdcommanded velocity
accelmaximum acceleration
decelmaximum deceleration
etaScale factor
Returns
Velocity command

Definition at line 282 of file velocity_smoother.cpp.

Referenced by smootherTimer().

Here is the caller graph for this function:

◆ dynamicParametersCallback()

rcl_interfaces::msg::SetParametersResult nav2_velocity_smoother::VelocitySmoother::dynamicParametersCallback ( std::vector< rclcpp::Parameter >  parameters)
protected

Dynamic reconfigure callback.

Parameters
parametersParameter list to change

Definition at line 394 of file velocity_smoother.cpp.

References nav2_util::LifecycleNode::shared_from_this(), and smootherTimer().

Referenced by on_activate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findEtaConstraint()

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.

Parameters
v_currcurrent velocity
v_cmdcommanded velocity
accelmaximum acceleration
decelmaximum deceleration
Returns
Scale factor, eta

Definition at line 251 of file velocity_smoother.cpp.

Referenced by smootherTimer().

Here is the caller graph for this function:

◆ inputCommandCallback()

void nav2_velocity_smoother::VelocitySmoother::inputCommandCallback ( const geometry_msgs::msg::Twist::SharedPtr  msg)
protected

Callback for incoming velocity commands.

Parameters
msgTwist message

Definition at line 243 of file velocity_smoother.cpp.

Referenced by on_configure().

Here is the caller graph for this function:

◆ on_activate()

nav2_util::CallbackReturn nav2_velocity_smoother::VelocitySmoother::on_activate ( const rclcpp_lifecycle::State &  state)
overrideprotected

Activates member variables.

Parameters
stateLifeCycle Node's state
Returns
Success or Failure

Definition at line 174 of file velocity_smoother.cpp.

References nav2_util::LifecycleNode::createBond(), dynamicParametersCallback(), and smootherTimer().

Here is the call graph for this function:

◆ on_cleanup()

nav2_util::CallbackReturn nav2_velocity_smoother::VelocitySmoother::on_cleanup ( const rclcpp_lifecycle::State &  state)
overrideprotected

Calls clean up states and resets member variables.

Parameters
stateLifeCycle Node's state
Returns
Success or Failure

Definition at line 210 of file velocity_smoother.cpp.

Referenced by on_configure().

Here is the caller graph for this function:

◆ on_configure()

nav2_util::CallbackReturn nav2_velocity_smoother::VelocitySmoother::on_configure ( const rclcpp_lifecycle::State &  state)
overrideprotected

Configures parameters and member variables.

Parameters
stateLifeCycle Node's state
Returns
Success or Failure

Definition at line 47 of file velocity_smoother.cpp.

References inputCommandCallback(), on_cleanup(), and nav2_util::LifecycleNode::shared_from_this().

Here is the call graph for this function:

◆ on_deactivate()

nav2_util::CallbackReturn nav2_velocity_smoother::VelocitySmoother::on_deactivate ( const rclcpp_lifecycle::State &  state)
overrideprotected

Deactivates member variables.

Parameters
stateLifeCycle Node's state
Returns
Success or Failure

Definition at line 192 of file velocity_smoother.cpp.

References nav2_util::LifecycleNode::destroyBond().

Here is the call graph for this function:

◆ on_shutdown()

nav2_util::CallbackReturn nav2_velocity_smoother::VelocitySmoother::on_shutdown ( const rclcpp_lifecycle::State &  state)
overrideprotected

Called when in Shutdown state.

Parameters
stateLifeCycle Node's state
Returns
Success or Failure

Definition at line 220 of file velocity_smoother.cpp.


The documentation for this class was generated from the following files: