28using ::cl_nav2z::odom_tracker::CpOdomTracker;
29using ::cl_nav2z::odom_tracker::WorkingMode;
31using namespace std::chrono_literals;
41 listener = std::make_shared<tf2_ros::Buffer>(this->
getNode()->get_clock());
54 nav2_msgs::action::NavigateToPose::Goal goal;
61 if (forwardpath.poses.size() > 0)
63 goal.pose = forwardpath.poses.front();
65 goal.pose.header.stamp = rclcpp::Time(0);
72 "[" <<
getName() <<
"] Undoing path with controller: " << *
options_->undoControllerName_);
87 <<
"] Waiting for 5 seconds to get planer/controller and wait goal checker "
91 RCLCPP_ERROR_STREAM(
getLogger(),
"[" <<
getName() <<
"] activating undo navigation planner");
108 RCLCPP_INFO_STREAM(
getLogger(),
"[" <<
getName() <<
"] Exiting: undo navigation ");
113 getLogger(),
getName() <<
" - [CbUndoPathBackwards] Exiting: undo navigation successful, "
114 "popping odom tracker path");
124 getLogger(),
getName() <<
" - [CbUndoPathBackwards] Exiting: undo navigation abort, avoiding "
125 "popping current path");
void sendGoal(nav2_msgs::action::NavigateToPose::Goal &goal)
rclcpp_action::ResultCode navigationResult_
std::optional< CbUndoPathBackwardsOptions > options_
CpOdomTracker * odomTracker
std::shared_ptr< tf2_ros::Buffer > listener
CbUndoPathBackwards(std::optional< CbUndoPathBackwardsOptions > options=std::nullopt)
void setGoalCheckerId(std::string goal_checker_id)
void setUndoPathBackwardPlanner(bool commit=true)
void setDesiredController(std::string)
void popPath(int pathCount=1, bool keepPreviousPath=false)
nav_msgs::msg::Path getPath()
void setWorkingMode(WorkingMode workingMode)
void logStateString(bool debug=true)
std::string getName() const
virtual rclcpp::Logger getLogger() const
virtual rclcpp::Node::SharedPtr getNode() const
void requiresComponent(SmaccComponentType *&storage, ComponentRequirement requirementType=ComponentRequirement::SOFT)