Nav2 Navigation Stack - rolling
main
ROS 2 Navigation Stack
|
An action server that uses behavior tree for navigating a robot to its goal position. More...
#include <nav2_waypoint_follower/include/nav2_waypoint_follower/waypoint_follower.hpp>
Public Types | |
using | ActionT = nav2_msgs::action::FollowWaypoints |
using | ClientT = nav2_msgs::action::NavigateToPose |
using | ActionServer = nav2::SimpleActionServer< ActionT > |
using | ActionClient = nav2::ActionClient< ClientT > |
using | ActionTGPS = nav2_msgs::action::FollowGPSWaypoints |
using | ActionServerGPS = nav2::SimpleActionServer< ActionTGPS > |
![]() | |
using | SharedPtr = std::shared_ptr< nav2::LifecycleNode > |
using | WeakPtr = std::weak_ptr< nav2::LifecycleNode > |
using | SharedConstPointer = std::shared_ptr< const nav2::LifecycleNode > |
Public Member Functions | |
WaypointFollower (const rclcpp::NodeOptions &options=rclcpp::NodeOptions()) | |
A constructor for nav2_waypoint_follower::WaypointFollower class. More... | |
~WaypointFollower () | |
A destructor for nav2_waypoint_follower::WaypointFollower class. | |
![]() | |
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 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 ActionT > | |
nav2::SimpleActionServer< ActionT >::SharedPtr | create_action_server (const std::string &action_name, typename nav2::SimpleActionServer< ActionT >::ExecuteCallback execute_callback, 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 member variables. More... | |
nav2::CallbackReturn | on_activate (const rclcpp_lifecycle::State &state) override |
Activates action server. More... | |
nav2::CallbackReturn | on_deactivate (const rclcpp_lifecycle::State &state) override |
Deactivates action server. More... | |
nav2::CallbackReturn | on_cleanup (const rclcpp_lifecycle::State &state) override |
Resets member variables. More... | |
nav2::CallbackReturn | on_shutdown (const rclcpp_lifecycle::State &state) override |
Called when in shutdown state. More... | |
template<typename T , typename V , typename Z > | |
void | followWaypointsHandler (const T &action_server, const V &feedback, const Z &result) |
Templated function to perform internal logic behind waypoint following, Both GPS and non GPS waypoint following callbacks makes use of this function when a client asked to do so. Callbacks fills in appropriate types for the templated types, see followWaypointCallback functions for details. More... | |
void | followWaypointsCallback () |
Action server callbacks. | |
void | followGPSWaypointsCallback () |
send robot through each of GPS point , which are converted to map frame first then using a client to FollowWaypoints action. More... | |
void | resultCallback (const rclcpp_action::ClientGoalHandle< ClientT >::WrappedResult &result) |
Action client result callback. More... | |
void | goalResponseCallback (const rclcpp_action::ClientGoalHandle< ClientT >::SharedPtr &goal) |
Action client goal response callback. More... | |
std::vector< geometry_msgs::msg::PoseStamped > | convertGPSPosesToMapPoses (const std::vector< geographic_msgs::msg::GeoPose > &gps_poses) |
given some gps_poses, converts them to map frame using robot_localization's service fromLL . Constructs a vector of stamped poses in map frame and returns them. More... | |
template<typename T > | |
std::vector< geometry_msgs::msg::PoseStamped > | getLatestGoalPoses (const T &action_server) |
get the latest poses on the action server goal. If they are GPS poses, convert them to the global cartesian frame using /fromLL robot localization server More... | |
rcl_interfaces::msg::SetParametersResult | dynamicParametersCallback (std::vector< rclcpp::Parameter > parameters) |
Callback executed when a parameter change is detected. More... | |
![]() | |
void | printLifecycleNodeNotification () |
Print notifications for lifecycle node. | |
void | register_rcl_preshutdown_callback () |
void | runCleanups () |
Protected Attributes | |
std::vector< int > | failed_ids_ |
std::string | global_frame_id_ {"map"} |
rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr | dyn_params_handler_ |
ActionServer::SharedPtr | xyz_action_server_ |
ActionClient::SharedPtr | nav_to_pose_client_ |
rclcpp::CallbackGroup::SharedPtr | callback_group_ |
rclcpp::executors::SingleThreadedExecutor | callback_group_executor_ |
std::shared_future< rclcpp_action::ClientGoalHandle< ClientT >::SharedPtr > | future_goal_handle_ |
ActionServerGPS::SharedPtr | gps_action_server_ |
nav2::ServiceClient< robot_localization::srv::FromLL >::SharedPtr | from_ll_to_map_client_ |
bool | stop_on_failure_ |
int | loop_rate_ |
GoalStatus | current_goal_status_ |
pluginlib::ClassLoader< nav2_core::WaypointTaskExecutor > | waypoint_task_executor_loader_ |
pluginlib::UniquePtr< nav2_core::WaypointTaskExecutor > | waypoint_task_executor_ |
std::string | waypoint_task_executor_id_ |
std::string | waypoint_task_executor_type_ |
![]() | |
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_ |
An action server that uses behavior tree for navigating a robot to its goal position.
Definition at line 67 of file waypoint_follower.hpp.
|
explicit |
A constructor for nav2_waypoint_follower::WaypointFollower class.
options | Additional options to control creation of the node. |
Definition at line 30 of file waypoint_follower.cpp.
|
protected |
given some gps_poses, converts them to map frame using robot_localization's service fromLL
. Constructs a vector of stamped poses in map frame and returns them.
gps_poses,from | the action server |
Definition at line 477 of file waypoint_follower.cpp.
References nav2::ServiceClient< ServiceT >::invoke(), and nav2::ServiceClient< ServiceT >::wait_for_service().
Referenced by getLatestGoalPoses().
|
protected |
Callback executed when a parameter change is detected.
event | ParameterEvent message |
Definition at line 449 of file waypoint_follower.cpp.
Referenced by on_activate().
|
protected |
send robot through each of GPS point , which are converted to map frame first then using a client to FollowWaypoints
action.
waypoints,acquired | from action client |
Definition at line 390 of file waypoint_follower.cpp.
References followWaypointsHandler().
Referenced by on_configure().
|
protected |
Templated function to perform internal logic behind waypoint following, Both GPS and non GPS waypoint following callbacks makes use of this function when a client asked to do so. Callbacks fills in appropriate types for the templated types, see followWaypointCallback functions for details.
T | action_server |
V | feedback |
Z | result |
action_server | |
poses | |
feedback | |
result |
Definition at line 190 of file waypoint_follower.cpp.
References goalResponseCallback(), and resultCallback().
Referenced by followGPSWaypointsCallback(), and followWaypointsCallback().
|
protected |
get the latest poses on the action server goal. If they are GPS poses, convert them to the global cartesian frame using /fromLL robot localization server
action_server,to | which the goal was sent |
Definition at line 166 of file waypoint_follower.cpp.
References convertGPSPosesToMapPoses().
|
protected |
Action client goal response callback.
goal | Response of action server updated asynchronously |
Definition at line 436 of file waypoint_follower.cpp.
Referenced by followWaypointsHandler().
|
overrideprotected |
Activates action server.
state | Reference to LifeCycle node state |
Definition at line 112 of file waypoint_follower.cpp.
References nav2::LifecycleNode::createBond(), dynamicParametersCallback(), and nav2::LifecycleNode::shared_from_this().
|
overrideprotected |
Resets member variables.
state | Reference to LifeCycle node state |
Definition at line 146 of file waypoint_follower.cpp.
Referenced by on_configure().
|
overrideprotected |
Configures member variables.
Initializes action server for "follow_waypoints"
state | Reference to LifeCycle node state |
Definition at line 55 of file waypoint_follower.cpp.
References followGPSWaypointsCallback(), followWaypointsCallback(), on_cleanup(), and nav2::LifecycleNode::shared_from_this().
|
overrideprotected |
Deactivates action server.
state | Reference to LifeCycle node state |
Definition at line 131 of file waypoint_follower.cpp.
References nav2::LifecycleNode::destroyBond().
|
overrideprotected |
Called when in shutdown state.
state | Reference to LifeCycle node state |
Definition at line 159 of file waypoint_follower.cpp.
|
protected |
Action client result callback.
result | Result of action server updated asynchronously |
Definition at line 403 of file waypoint_follower.cpp.
Referenced by followWaypointsHandler().