15 #ifndef ERROR_CODES__PLANNER__PLANNER_ERROR_PLUGIN_HPP_
16 #define ERROR_CODES__PLANNER__PLANNER_ERROR_PLUGIN_HPP_
22 #include "rclcpp/rclcpp.hpp"
23 #include "geometry_msgs/msg/point.hpp"
24 #include "geometry_msgs/msg/pose_stamped.hpp"
26 #include "nav2_core/global_planner.hpp"
27 #include "nav_msgs/msg/path.hpp"
28 #include "nav2_util/robot_utils.hpp"
29 #include "nav2_ros_common/lifecycle_node.hpp"
30 #include "nav2_costmap_2d/costmap_2d_ros.hpp"
31 #include "nav2_core/planner_exceptions.hpp"
32 #include "nav2_ros_common/tf2_factories.hpp"
34 namespace nav2_system_tests
44 const nav2::LifecycleNode::WeakPtr &,
45 std::string, nav2::TransformBuffer::SharedPtr,
46 std::shared_ptr<nav2_costmap_2d::Costmap2DROS>)
override {}
55 const geometry_msgs::msg::PoseStamped &,
56 const geometry_msgs::msg::PoseStamped &,
57 const std::vector<geometry_msgs::msg::PoseStamped> &,
58 std::function<
bool()>)
override
66 nav_msgs::msg::Path createPlan(
67 const geometry_msgs::msg::PoseStamped &,
68 const geometry_msgs::msg::PoseStamped &,
69 const std::vector<geometry_msgs::msg::PoseStamped> &,
70 std::function<
bool()>)
override
78 nav_msgs::msg::Path createPlan(
79 const geometry_msgs::msg::PoseStamped &,
80 const geometry_msgs::msg::PoseStamped &,
81 const std::vector<geometry_msgs::msg::PoseStamped> &,
82 std::function<
bool()>)
override
90 nav_msgs::msg::Path createPlan(
91 const geometry_msgs::msg::PoseStamped &,
92 const geometry_msgs::msg::PoseStamped &,
93 const std::vector<geometry_msgs::msg::PoseStamped> &,
94 std::function<
bool()>)
override
102 nav_msgs::msg::Path createPlan(
103 const geometry_msgs::msg::PoseStamped &,
104 const geometry_msgs::msg::PoseStamped &,
105 const std::vector<geometry_msgs::msg::PoseStamped> &,
106 std::function<
bool()>)
override
114 nav_msgs::msg::Path createPlan(
115 const geometry_msgs::msg::PoseStamped &,
116 const geometry_msgs::msg::PoseStamped &,
117 const std::vector<geometry_msgs::msg::PoseStamped> &,
118 std::function<
bool()>)
override
120 return nav_msgs::msg::Path();
127 nav_msgs::msg::Path createPlan(
128 const geometry_msgs::msg::PoseStamped &,
129 const geometry_msgs::msg::PoseStamped &,
130 const std::vector<geometry_msgs::msg::PoseStamped> &,
131 std::function<
bool()>)
override
139 nav_msgs::msg::Path createPlan(
140 const geometry_msgs::msg::PoseStamped &,
141 const geometry_msgs::msg::PoseStamped &,
142 const std::vector<geometry_msgs::msg::PoseStamped> &,
143 std::function<
bool()>)
override
151 nav_msgs::msg::Path createPlan(
152 const geometry_msgs::msg::PoseStamped &,
153 const geometry_msgs::msg::PoseStamped &,
154 const std::vector<geometry_msgs::msg::PoseStamped> &,
155 std::function<
bool()>)
override
163 nav_msgs::msg::Path createPlan(
164 const geometry_msgs::msg::PoseStamped &,
165 const geometry_msgs::msg::PoseStamped &,
166 const std::vector<geometry_msgs::msg::PoseStamped> &,
167 std::function<
bool()> cancel_checker)
override
169 auto start_time = std::chrono::steady_clock::now();
170 while (rclcpp::ok() &&
171 std::chrono::steady_clock::now() - start_time < std::chrono::seconds(5))
173 if (cancel_checker()) {
176 rclcpp::sleep_for(std::chrono::milliseconds(100));
Abstract interface for global planners to adhere to with pluginlib.
void cleanup() override
Method to cleanup resources used on shutdown.
void configure(const nav2::LifecycleNode::WeakPtr &, std::string, nav2::TransformBuffer::SharedPtr, std::shared_ptr< nav2_costmap_2d::Costmap2DROS >) override
void deactivate() override
Method to deactivate planner and any threads involved in execution.
nav_msgs::msg::Path createPlan(const geometry_msgs::msg::PoseStamped &, const geometry_msgs::msg::PoseStamped &, const std::vector< geometry_msgs::msg::PoseStamped > &, std::function< bool()>) override
Method to create the plan from a starting pose, a goal pose, and intermediate viapoints.
void activate() override
Method to active planner and any threads involved in execution.