17 #ifndef FREESPACE_PLANNER_NODES__FREESPACE_PLANNER_NODE_HPP_
18 #define FREESPACE_PLANNER_NODES__FREESPACE_PLANNER_NODE_HPP_
20 #include <tf2_geometry_msgs/tf2_geometry_msgs.h>
21 #include <tf2_ros/buffer.h>
22 #include <tf2_ros/transform_listener.h>
27 #include <rclcpp/rclcpp.hpp>
28 #include <rclcpp_action/rclcpp_action.hpp>
31 #include <autoware_auto_planning_msgs/action/plan_trajectory.hpp>
32 #include <autoware_auto_planning_msgs/action/planner_costmap.hpp>
33 #include <autoware_auto_planning_msgs/msg/trajectory.hpp>
34 #include <geometry_msgs/msg/pose_array.hpp>
35 #include <geometry_msgs/msg/pose_stamped.hpp>
36 #include <nav_msgs/msg/occupancy_grid.hpp>
68 using PlanTrajectoryAction = autoware_auto_planning_msgs::action::PlanTrajectory;
69 using GoalHandle = rclcpp_action::ServerGoalHandle<PlanTrajectoryAction>;
70 using PlannerCostmapAction = autoware_auto_planning_msgs::action::PlannerCostmap;
71 using PlannerCostmapGoalHandle = rclcpp_action::ClientGoalHandle<PlannerCostmapAction>;
74 rclcpp_action::Client<PlannerCostmapAction>::SharedPtr map_client_;
75 rclcpp_action::Server<PlanTrajectoryAction>::SharedPtr plan_trajectory_srv_;
76 rclcpp::Publisher<autoware_auto_planning_msgs::msg::Trajectory>::SharedPtr trajectory_debug_pub_;
77 rclcpp::Publisher<geometry_msgs::msg::PoseArray>::SharedPtr pose_array_trajectory_debug_pub_;
79 std::shared_ptr<tf2_ros::Buffer> tf_buffer_;
80 std::shared_ptr<tf2_ros::TransformListener> tf_listener_;
88 std::unique_ptr<BasePlanningAlgorithm> algo_;
89 std::shared_ptr<GoalHandle> planning_goal_handle_{
nullptr};
90 geometry_msgs::msg::PoseStamped start_pose_;
91 geometry_msgs::msg::PoseStamped goal_pose_;
93 nav_msgs::msg::OccupancyGrid::SharedPtr occupancy_grid_;
96 rclcpp_action::GoalResponse handleGoal(
97 const rclcpp_action::GoalUUID &,
const std::shared_ptr<const PlanTrajectoryAction::Goal>);
98 rclcpp_action::CancelResponse handleCancel(
const std::shared_ptr<GoalHandle> goal_handle);
99 void handleAccepted(
const std::shared_ptr<GoalHandle> goal_handle);
101 void goalResponseCallback(std::shared_future<PlannerCostmapGoalHandle::SharedPtr> future);
102 void feedbackCallback(
103 PlannerCostmapGoalHandle::SharedPtr,
104 const std::shared_ptr<const PlannerCostmapAction::Feedback>)
107 void resultCallback(
const PlannerCostmapGoalHandle::WrappedResult & result);
111 bool isPlanning()
const;
112 void startPlanning();
114 bool planTrajectory();
116 const std::string & from,
const std::string & to);
118 void visualizeTrajectory();
119 void initializePlanningAlgorithm();
127 #endif // FREESPACE_PLANNER_NODES__FREESPACE_PLANNER_NODE_HPP_