1#ifndef _PDLA_PLANNER_HPP
2#define _PDLA_PLANNER_HPP
5#include <localization_msgs/msg/odometry.hpp>
8#include <planner_msgs/action/pdla.hpp>
9#include <planner_msgs/msg/wrench_plan.hpp>
10#include <rclcpp/rclcpp.hpp>
11#include <rclcpp_action/rclcpp_action.hpp>
12#include <rclcpp_action/server_goal_handle.hpp>
15#include "planner_msgs/action/pdla.hpp"
32 explicit PDLAPlanner(
const rclcpp::NodeOptions & options);
35 uint64_t fine_timer_ms_;
36 double look_ahead_scale;
37 Tolerance reach_tolerance, waypoint_tolerance;
39 rclcpp::CallbackGroup::SharedPtr callback_group_;
41 rclcpp::Publisher<planner_msgs::msg::WrenchPlan>::SharedPtr pub_;
42 rclcpp::Subscription<localization_msgs::msg::Odometry>::SharedPtr sub_;
43 rclcpp_action::Server<planner_msgs::action::PDLA>::SharedPtr action_server_;
45 rclcpp::TimerBase::SharedPtr timer_;
46 std::shared_ptr<timer::Timeout> timeout_;
49 rclcpp_action::GoalResponse handle_goal(
50 const rclcpp_action::GoalUUID & uuid,
51 std::shared_ptr<const planner_msgs::action::PDLA::Goal> goal);
52 rclcpp_action::CancelResponse handle_cancel(
53 const std::shared_ptr<rclcpp_action::ServerGoalHandle<planner_msgs::action::PDLA>> goal_handle);
55 const std::shared_ptr<rclcpp_action::ServerGoalHandle<planner_msgs::action::PDLA>> goal_handle);
57 void odometryCallback(
const localization_msgs::msg::Odometry::SharedPtr msg);
59 void _runPlannerLogic(
60 const std::shared_ptr<rclcpp_action::ServerGoalHandle<planner_msgs::action::PDLA>> &
63 PoseData & target, localization_msgs::msg::Odometry::SharedPtr & odom_copy,
Tolerance tol);
64 void _print_waypoint(std::string label,
size_t step_idx);
68 bool fine_flag_ =
false;
69 std::vector<PoseData> target_pose_;
71 bool last_reached_ =
false;
72 rclcpp::Time fine_reached_time_;
74 bool first_reached_ =
true;
75 rclcpp::Time first_reached_time_;
77 std::string file_path_;
78 uint8_t step_state_ = planner_msgs::action::PDLA::Feedback::RUNNING;
80 std::mutex odom_mutex_;
81 std::mutex goal_mutex_;
82 std::shared_ptr<localization_msgs::msg::Odometry> current_odom_;
83 std::shared_ptr<rclcpp_action::ServerGoalHandle<planner_msgs::action::PDLA>> active_goal_handle_;
Definition: path_csv_loader.hpp:53
Definition: pdla_planner.hpp:30
Definition: pdla_feedback_repub.hpp:19
Definition: pdla_planner.hpp:21
double roll
Definition: pdla_planner.hpp:25
double z
Definition: pdla_planner.hpp:24
double x
Definition: pdla_planner.hpp:22
double yaw
Definition: pdla_planner.hpp:26
double y
Definition: pdla_planner.hpp:23