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;
59 if (forwardpath.poses.size() > 0)
61 goal.pose = forwardpath.poses.front();
62 goal.pose.header.stamp = rclcpp::Time(0);
69 "[" <<
getName() <<
"] Undoing path with controller: " << *
options_->undoControllerName_);
84 <<
"] Waiting for 5 seconds to get planer/controller and wait goal checker "
87 RCLCPP_ERROR_STREAM(
getLogger(),
"[" <<
getName() <<
"] activating undo navigation planner");
104 RCLCPP_INFO_STREAM(
getLogger(),
"[" <<
getName() <<
"] Exiting: undo navigation ");
109 getLogger(),
getName() <<
" - [CbUndoPathBackwards] Exiting: undo navigation successful, "
110 "popping odom tracker path");
120 getLogger(),
getName() <<
" - [CbUndoPathBackwards] Exiting: undo navigation abort, avoiding "
121 "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)