Class ReroutingService

Inheritance Relationships

Base Type

Class Documentation

class ReroutingService : public nav2_route::RouteOperation

A route operation to process requests from an external server for rerouting.

Public Functions

ReroutingService() = default

Constructor.

virtual ~ReroutingService() = default

destructor

virtual void configure(const rclcpp_lifecycle::LifecycleNode::SharedPtr node, std::shared_ptr<nav2_costmap_2d::CostmapSubscriber> costmap_subscriber, const std::string &name) override

Configure.

inline virtual std::string getName() override

Get name of the plugin for parameter scope mapping.

Returns:

Name

inline virtual RouteOperationType processType() override

Indication that the adjust speed limit route operation is performed on all state changes.

Returns:

The type of operation (on graph call, on status changes, or constantly)

virtual OperationResult perform(NodePtr node, EdgePtr edge_entered, EdgePtr edge_exited, const Route &route, const geometry_msgs::msg::PoseStamped &curr_pose, const Metadata *mdata = nullptr) override

The main speed limit operation to adjust the maximum speed of the vehicle.

Parameters:
  • mdataMetadata corresponding to the operation in the navigation graph. If metadata is invalid or irrelevant, a nullptr is given

  • node_achievedNode achieved, for additional context

  • edge_entered – Edge entered by node achievement, for additional context

  • edge_exited – Edge exited by node achievement, for additional context

  • route – Current route being tracked in full, for additional context

  • curr_pose – Current robot pose in the route frame, for additional context

Returns:

Whether to perform rerouting and report blocked edges in that case

void serviceCb(const std::shared_ptr<rmw_request_id_t> request_header, const std::shared_ptr<std_srvs::srv::Trigger::Request> request, std::shared_ptr<std_srvs::srv::Trigger::Response> response)

Service callback to trigger a reroute externally.

Parameters:
  • request, empty

  • response, returns – success

Protected Attributes

std::string name_
std::atomic_bool reroute_
rclcpp::Logger logger_ = {rclcpp::get_logger("ReroutingService")}
rclcpp::Service<std_srvs::srv::Trigger>::SharedPtr service_