SMACC2
|
#include <cp_odom_tracker.hpp>
Classes | |
struct | PathInfo |
Public Member Functions | |
CpOdomTracker (std::string odomtopicName="/odom", std::string odomFrame="odom", OdomTrackerStrategy strategy=OdomTrackerStrategy::ODOMETRY_SUBSCRIBER) | |
virtual void | processNewPose (const geometry_msgs::msg::PoseStamped &odom) |
odom callback: Updates the path - this must be called periodically for each odometry message. | |
virtual void | odomMessageCallback (const nav_msgs::msg::Odometry::SharedPtr odom) |
virtual void | update () |
void | setWorkingMode (WorkingMode workingMode) |
void | setPublishMessages (bool value) |
void | pushPath () |
void | pushPath (std::string pathname) |
void | popPath (int pathCount=1, bool keepPreviousPath=false) |
void | clearPath () |
void | setStartPoint (const geometry_msgs::msg::PoseStamped &pose) |
void | setStartPoint (const geometry_msgs::msg::Pose &pose) |
void | setCurrentMotionGoal (const geometry_msgs::msg::PoseStamped &pose) |
void | setCurrentPathName (const std::string ¤tPathName) |
std::optional< geometry_msgs::msg::PoseStamped > | getCurrentMotionGoal () |
nav_msgs::msg::Path | getPath () |
void | logStateString (bool debug=true) |
void | updateParameters () |
void | setOdomFrame (std::string odomFrame) |
CpOdomTracker (std::string odomtopicName="/odom", std::string odomFrame="odom", OdomTrackerStrategy strategy=OdomTrackerStrategy::ODOMETRY_SUBSCRIBER) | |
virtual void | processNewPose (const geometry_msgs::msg::PoseStamped &odom) |
odom callback: Updates the path - this must be called periodically for each odometry message. | |
virtual void | odomMessageCallback (const nav_msgs::msg::Odometry::SharedPtr odom) |
virtual void | update () |
void | setWorkingMode (WorkingMode workingMode) |
void | setPublishMessages (bool value) |
void | pushPath () |
void | pushPath (std::string pathname) |
void | popPath (int pathCount=1, bool keepPreviousPath=false) |
void | clearPath () |
void | setStartPoint (const geometry_msgs::msg::PoseStamped &pose) |
void | setStartPoint (const geometry_msgs::msg::Pose &pose) |
void | setCurrentMotionGoal (const geometry_msgs::msg::PoseStamped &pose) |
void | setCurrentPathName (const std::string ¤tPathName) |
std::optional< geometry_msgs::msg::PoseStamped > | getCurrentMotionGoal () |
nav_msgs::msg::Path | getPath () |
void | logStateString (bool debug=true) |
void | updateParameters () |
void | setOdomFrame (std::string odomFrame) |
![]() | |
ISmaccComponent () | |
virtual | ~ISmaccComponent () |
virtual std::string | getName () const |
Protected Member Functions | |
void | onInitialize () override |
void | updateConfiguration () |
virtual void | rtPublishPaths (rclcpp::Time timestamp) |
virtual bool | updateRecordPath (const geometry_msgs::msg::PoseStamped &odom) |
virtual bool | updateClearPath (const geometry_msgs::msg::PoseStamped &odom) |
void | updateAggregatedStackPath () |
rcl_interfaces::msg::SetParametersResult | parametersCallback (const std::vector< rclcpp::Parameter > ¶meters) |
void | onInitialize () override |
void | updateConfiguration () |
virtual void | rtPublishPaths (rclcpp::Time timestamp) |
virtual bool | updateRecordPath (const geometry_msgs::msg::PoseStamped &odom) |
virtual bool | updateClearPath (const geometry_msgs::msg::PoseStamped &odom) |
void | updateAggregatedStackPath () |
rcl_interfaces::msg::SetParametersResult | parametersCallback (const std::vector< rclcpp::Parameter > ¶meters) |
![]() | |
template<typename TOrthogonal , typename TClient > | |
void | onComponentInitialization () |
template<typename EventType > | |
void | postEvent (const EventType &ev) |
template<typename EventType > | |
void | postEvent () |
template<typename TOrthogonal , typename TSourceObject > | |
void | onOrthogonalAllocation () |
template<typename TOrthogonal , typename TSourceObject > | |
void | onStateOrthogonalAllocation () |
template<typename TComponent > | |
void | requiresComponent (TComponent *&requiredComponentStorage, bool throwExceptionIfNotExist) |
template<typename TComponent > | |
void | requiresComponent (std::string name, TComponent *&requiredComponentStorage, bool throwExceptionIfNotExist) |
template<typename TComponent > | |
void | requiresComponent (TComponent *&requiredComponentStorage, ComponentRequirement requirementType=ComponentRequirement::SOFT) |
template<typename TComponent > | |
void | requiresComponent (std::string name, TComponent *&requiredComponentStorage, ComponentRequirement requirementType=ComponentRequirement::SOFT) |
template<typename TClient > | |
void | requiresClient (TClient *&requiredClientStorage) |
template<typename SmaccComponentType , typename TOrthogonal , typename TClient , typename... TArgs> | |
SmaccComponentType * | createSiblingComponent (TArgs... targs) |
template<typename SmaccComponentType , typename TOrthogonal , typename TClient , typename... TArgs> | |
SmaccComponentType * | createSiblingNamedComponent (std::string name, TArgs... targs) |
rclcpp::Node::SharedPtr | getNode () |
rclcpp::Logger | getLogger () const |
ISmaccStateMachine * | getStateMachine () |
Protected Attributes | |
rclcpp::Publisher< nav_msgs::msg::Path >::SharedPtr | robotBasePathPub_ |
rclcpp::Publisher< nav_msgs::msg::Path >::SharedPtr | robotBasePathStackedPub_ |
rclcpp::Subscription< nav_msgs::msg::Odometry >::SharedPtr | odomSub_ |
cl_nav2z::CpPose * | robotPose_ |
rclcpp::TimerBase::SharedPtr | robotPoseTimer_ |
double | recordPointDistanceThreshold_ |
How much distance there is between two points of the path. | |
double | recordAngularDistanceThreshold_ |
Meters. | |
double | clearPointDistanceThreshold_ |
rads | |
double | clearAngularDistanceThreshold_ |
rads | |
std::string | odomFrame_ |
std::string | odomTopicName_ |
bool | publishMessages |
nav_msgs::msg::Path | baseTrajectory_ |
Processed path for the mouth of the reel. | |
WorkingMode | workingMode_ |
std::vector< nav_msgs::msg::Path > | pathStack_ |
std::vector< PathInfo > | pathInfos_ |
nav_msgs::msg::Path | aggregatedStackPathMsg_ |
OdomTrackerStrategy | strategy_ |
std::optional< geometry_msgs::msg::PoseStamped > | currentMotionGoal_ |
std::string | currentPathName_ |
rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr | param_callback_handle_ |
std::mutex | m_mutex_ |
cl_nav2z::Pose * | robotPose_ |
![]() | |
ISmaccStateMachine * | stateMachine_ |
ISmaccClient * | owner_ |
This object tracks and saves the trajectories performed by the vehicle so that they can be used later to execute operations such as "undo motions"
Definition at line 60 of file cp_odom_tracker.hpp.
cl_nav2z::odom_tracker::CpOdomTracker::CpOdomTracker | ( | std::string | odomtopicName = "/odom", |
std::string | odomFrame = "odom", | ||
OdomTrackerStrategy | strategy = OdomTrackerStrategy::ODOMETRY_SUBSCRIBER ) |
Definition at line 36 of file cp_odom_tracker.cpp.
References odomFrame_, odomTopicName_, publishMessages, cl_nav2z::odom_tracker::RECORD_PATH, and workingMode_.
cl_nav2z::odom_tracker::CpOdomTracker::CpOdomTracker | ( | std::string | odomtopicName = "/odom", |
std::string | odomFrame = "odom", | ||
OdomTrackerStrategy | strategy = OdomTrackerStrategy::ODOMETRY_SUBSCRIBER ) |
void cl_nav2z::odom_tracker::CpOdomTracker::clearPath | ( | ) |
Definition at line 340 of file cp_odom_tracker.cpp.
References baseTrajectory_, currentMotionGoal_, smacc2::ISmaccComponent::getLogger(), smacc2::ISmaccComponent::getNode(), logStateString(), m_mutex_, rtPublishPaths(), and updateAggregatedStackPath().
Referenced by cl_nav2z::CbNavigateBackwards::onEntry(), cl_nav2z::CbTrackPathOdometry::onEntry(), and cl_nav2z::CbTrackPathSLAM::onEntry().
void cl_nav2z::odom_tracker::CpOdomTracker::clearPath | ( | ) |
std::optional< geometry_msgs::msg::PoseStamped > cl_nav2z::odom_tracker::CpOdomTracker::getCurrentMotionGoal | ( | ) |
Definition at line 400 of file cp_odom_tracker.cpp.
References currentMotionGoal_, and m_mutex_.
Referenced by cl_nav2z::CbRetry< TCbRelativeMotion >::onEntry().
std::optional< geometry_msgs::msg::PoseStamped > cl_nav2z::odom_tracker::CpOdomTracker::getCurrentMotionGoal | ( | ) |
nav_msgs::msg::Path cl_nav2z::odom_tracker::CpOdomTracker::getPath | ( | ) |
Definition at line 406 of file cp_odom_tracker.cpp.
References baseTrajectory_, and m_mutex_.
Referenced by cl_nav2z::CbUndoPathBackwards::onEntry().
nav_msgs::msg::Path cl_nav2z::odom_tracker::CpOdomTracker::getPath | ( | ) |
void cl_nav2z::odom_tracker::CpOdomTracker::logStateString | ( | bool | debug = true | ) |
Definition at line 298 of file cp_odom_tracker.cpp.
References baseTrajectory_, currentPathName_, smacc2::ISmaccComponent::getLogger(), odomSub_, pathInfos_, and pathStack_.
Referenced by clearPath(), cl_nav2z::CbUndoPathBackwards::onEntry(), cl_nav2z::CbUndoPathBackwards::onExit(), popPath(), and pushPath().
void cl_nav2z::odom_tracker::CpOdomTracker::logStateString | ( | bool | debug = true | ) |
|
virtual |
Definition at line 619 of file cp_odom_tracker.cpp.
References processNewPose().
Referenced by onInitialize().
|
virtual |
|
overrideprotectedvirtual |
Reimplemented from smacc2::ISmaccComponent.
Definition at line 62 of file cp_odom_tracker.cpp.
References clearAngularDistanceThreshold_, clearPointDistanceThreshold_, smacc2::ISmaccComponent::getLogger(), smacc2::ISmaccComponent::getNode(), cl_nav2z::odom_tracker::ODOMETRY_SUBSCRIBER, odomFrame_, odomMessageCallback(), odomSub_, odomTopicName_, param_callback_handle_, cl_nav2z::odom_tracker::parameterDeclareAndtryGetOrSet(), parametersCallback(), cl_nav2z::odom_tracker::POSE_COMPONENT, recordAngularDistanceThreshold_, recordPointDistanceThreshold_, smacc2::ISmaccComponent::requiresComponent(), robotBasePathPub_, robotBasePathStackedPub_, robotPose_, robotPoseTimer_, strategy_, and update().
|
overrideprotectedvirtual |
Reimplemented from smacc2::ISmaccComponent.
|
protected |
Definition at line 120 of file cp_odom_tracker.cpp.
References clearAngularDistanceThreshold_, clearPointDistanceThreshold_, smacc2::ISmaccComponent::getLogger(), m_mutex_, odomFrame_, recordAngularDistanceThreshold_, and recordPointDistanceThreshold_.
Referenced by onInitialize().
|
protected |
void cl_nav2z::odom_tracker::CpOdomTracker::popPath | ( | int | pathCount = 1, |
bool | keepPreviousPath = false ) |
Definition at line 253 of file cp_odom_tracker.cpp.
References baseTrajectory_, currentMotionGoal_, smacc2::ISmaccComponent::getLogger(), logStateString(), m_mutex_, odomSub_, pathInfos_, pathStack_, and updateAggregatedStackPath().
Referenced by CpOdomTrackerActionServer::execute(), and cl_nav2z::CbUndoPathBackwards::onExit().
void cl_nav2z::odom_tracker::CpOdomTracker::popPath | ( | int | pathCount = 1, |
bool | keepPreviousPath = false ) |
|
virtual |
odom callback: Updates the path - this must be called periodically for each odometry message.
Definition at line 633 of file cp_odom_tracker.cpp.
References cl_nav2z::odom_tracker::CLEAR_PATH, smacc2::ISmaccComponent::getLogger(), smacc2::ISmaccComponent::getNode(), m_mutex_, publishMessages, cl_nav2z::odom_tracker::RECORD_PATH, rtPublishPaths(), updateClearPath(), updateConfiguration(), updateRecordPath(), and workingMode_.
Referenced by odomMessageCallback(), and update().
|
virtual |
odom callback: Updates the path - this must be called periodically for each odometry message.
void cl_nav2z::odom_tracker::CpOdomTracker::pushPath | ( | ) |
Definition at line 215 of file cp_odom_tracker.cpp.
References pushPath().
Referenced by CpOdomTrackerActionServer::execute(), cl_nav2z::CbAbsoluteRotate::onEntry(), cl_nav2z::CbNavigateForward::onEntry(), cl_nav2z::CbNavigateGlobalPosition::onEntry(), cl_nav2z::CbRotate::onEntry(), pushPath(), and cl_nav2z::CpWaypointNavigator::sendNextGoal().
void cl_nav2z::odom_tracker::CpOdomTracker::pushPath | ( | ) |
void cl_nav2z::odom_tracker::CpOdomTracker::pushPath | ( | std::string | pathname | ) |
Definition at line 217 of file cp_odom_tracker.cpp.
References baseTrajectory_, currentMotionGoal_, currentPathName_, smacc2::ISmaccComponent::getLogger(), logStateString(), m_mutex_, odomSub_, pathInfos_, pathStack_, and updateAggregatedStackPath().
void cl_nav2z::odom_tracker::CpOdomTracker::pushPath | ( | std::string | pathname | ) |
|
protectedvirtual |
Definition at line 417 of file cp_odom_tracker.cpp.
References aggregatedStackPathMsg_, baseTrajectory_, robotBasePathPub_, and robotBasePathStackedPub_.
Referenced by clearPath(), and processNewPose().
|
protectedvirtual |
void cl_nav2z::odom_tracker::CpOdomTracker::setCurrentMotionGoal | ( | const geometry_msgs::msg::PoseStamped & | pose | ) |
Definition at line 394 of file cp_odom_tracker.cpp.
References currentMotionGoal_, and m_mutex_.
Referenced by cl_nav2z::CbAbsoluteRotate::onEntry(), and cl_nav2z::CbNavigateForward::onEntry().
void cl_nav2z::odom_tracker::CpOdomTracker::setCurrentMotionGoal | ( | const geometry_msgs::msg::PoseStamped & | pose | ) |
void cl_nav2z::odom_tracker::CpOdomTracker::setCurrentPathName | ( | const std::string & | currentPathName | ) |
Definition at line 353 of file cp_odom_tracker.cpp.
References currentPathName_, and smacc2::ISmaccComponent::getLogger().
void cl_nav2z::odom_tracker::CpOdomTracker::setCurrentPathName | ( | const std::string & | currentPathName | ) |
|
inline |
Definition at line 119 of file cp_odom_tracker.hpp.
References smacc2::ISmaccComponent::getNode(), and odomFrame_.
|
inline |
Definition at line 119 of file cp_odom_tracker.hpp.
References smacc2::ISmaccComponent::getNode(), and odomFrame_.
void cl_nav2z::odom_tracker::CpOdomTracker::setPublishMessages | ( | bool | value | ) |
Definition at line 206 of file cp_odom_tracker.cpp.
References m_mutex_, publishMessages, and updateAggregatedStackPath().
Referenced by CpOdomTrackerActionServer::execute().
void cl_nav2z::odom_tracker::CpOdomTracker::setPublishMessages | ( | bool | value | ) |
void cl_nav2z::odom_tracker::CpOdomTracker::setStartPoint | ( | const geometry_msgs::msg::Pose & | pose | ) |
Definition at line 374 of file cp_odom_tracker.cpp.
References baseTrajectory_, smacc2::ISmaccComponent::getLogger(), smacc2::ISmaccComponent::getNode(), m_mutex_, odomFrame_, and updateAggregatedStackPath().
void cl_nav2z::odom_tracker::CpOdomTracker::setStartPoint | ( | const geometry_msgs::msg::Pose & | pose | ) |
void cl_nav2z::odom_tracker::CpOdomTracker::setStartPoint | ( | const geometry_msgs::msg::PoseStamped & | pose | ) |
Definition at line 359 of file cp_odom_tracker.cpp.
References baseTrajectory_, smacc2::ISmaccComponent::getLogger(), m_mutex_, and updateAggregatedStackPath().
Referenced by cl_nav2z::CbAbsoluteRotate::onEntry(), cl_nav2z::CbNavigateBackwards::onEntry(), cl_nav2z::CbNavigateForward::onEntry(), cl_nav2z::CbNavigateGlobalPosition::onEntry(), cl_nav2z::CbRotate::onEntry(), and cl_nav2z::CpWaypointNavigator::sendNextGoal().
void cl_nav2z::odom_tracker::CpOdomTracker::setStartPoint | ( | const geometry_msgs::msg::PoseStamped & | pose | ) |
void cl_nav2z::odom_tracker::CpOdomTracker::setWorkingMode | ( | WorkingMode | workingMode | ) |
Definition at line 161 of file cp_odom_tracker.cpp.
References cl_nav2z::odom_tracker::CLEAR_PATH, clearAngularDistanceThreshold_, clearPointDistanceThreshold_, smacc2::ISmaccComponent::getLogger(), cl_nav2z::odom_tracker::IDLE, m_mutex_, odomSub_, cl_nav2z::odom_tracker::RECORD_PATH, recordAngularDistanceThreshold_, recordPointDistanceThreshold_, and workingMode_.
Referenced by CpOdomTrackerActionServer::execute(), cl_nav2z::CbAbsoluteRotate::onEntry(), cl_nav2z::CbNavigateBackwards::onEntry(), cl_nav2z::CbNavigateForward::onEntry(), cl_nav2z::CbNavigateGlobalPosition::onEntry(), cl_nav2z::CbRotate::onEntry(), cl_nav2z::CbUndoPathBackwards::onEntry(), cl_nav2z::CbNavigateBackwards::onExit(), cl_nav2z::CbNavigateForward::onExit(), and cl_nav2z::CpWaypointNavigator::sendNextGoal().
void cl_nav2z::odom_tracker::CpOdomTracker::setWorkingMode | ( | WorkingMode | workingMode | ) |
|
virtual |
Definition at line 605 of file cp_odom_tracker.cpp.
References smacc2::ISmaccComponent::getLogger(), processNewPose(), robotPose_, and cl_nav2z::CpPose::toPoseStampedMsg().
Referenced by onInitialize().
|
virtual |
|
protected |
Definition at line 426 of file cp_odom_tracker.cpp.
References aggregatedStackPathMsg_, odomFrame_, and pathStack_.
Referenced by clearPath(), popPath(), pushPath(), setPublishMessages(), setStartPoint(), and setStartPoint().
|
protected |
|
protectedvirtual |
updateBackward()
Track robot base pose
Not removing point because it is enough far from the last cord point
Track robot base pose
Not removing point because it is enough far from the last cord point
Definition at line 443 of file cp_odom_tracker.cpp.
References baseTrajectory_, clearAngularDistanceThreshold_, clearPointDistanceThreshold_, smacc2::ISmaccComponent::getLogger(), and cl_nav2z::odom_tracker::p2pDistance().
Referenced by processNewPose().
|
protectedvirtual |
|
protected |
reconfigCB()
Definition at line 574 of file cp_odom_tracker.cpp.
References clearAngularDistanceThreshold_, clearPointDistanceThreshold_, smacc2::ISmaccComponent::getNode(), odomFrame_, recordAngularDistanceThreshold_, and recordPointDistanceThreshold_.
Referenced by processNewPose().
|
protected |
void cl_nav2z::odom_tracker::CpOdomTracker::updateParameters | ( | ) |
void cl_nav2z::odom_tracker::CpOdomTracker::updateParameters | ( | ) |
|
protectedvirtual |
Track robot base pose
Track robot base pose
Definition at line 519 of file cp_odom_tracker.cpp.
References baseTrajectory_, smacc2::ISmaccComponent::getLogger(), smacc2::ISmaccComponent::getNode(), cl_nav2z::odom_tracker::p2pDistance(), recordAngularDistanceThreshold_, and recordPointDistanceThreshold_.
Referenced by processNewPose().
|
protectedvirtual |
|
protected |
Definition at line 188 of file cp_odom_tracker.hpp.
Referenced by rtPublishPaths(), and updateAggregatedStackPath().
|
protected |
Processed path for the mouth of the reel.
Definition at line 174 of file cp_odom_tracker.hpp.
Referenced by clearPath(), getPath(), logStateString(), popPath(), pushPath(), rtPublishPaths(), setStartPoint(), setStartPoint(), updateClearPath(), and updateRecordPath().
|
protected |
rads
Definition at line 163 of file cp_odom_tracker.hpp.
Referenced by onInitialize(), parametersCallback(), setWorkingMode(), updateClearPath(), and updateConfiguration().
|
protected |
rads
Definition at line 160 of file cp_odom_tracker.hpp.
Referenced by onInitialize(), parametersCallback(), setWorkingMode(), updateClearPath(), and updateConfiguration().
|
protected |
Definition at line 192 of file cp_odom_tracker.hpp.
Referenced by clearPath(), getCurrentMotionGoal(), popPath(), pushPath(), and setCurrentMotionGoal().
|
protected |
Definition at line 193 of file cp_odom_tracker.hpp.
Referenced by logStateString(), pushPath(), and setCurrentPathName().
|
protected |
Definition at line 200 of file cp_odom_tracker.hpp.
Referenced by clearPath(), getCurrentMotionGoal(), getPath(), parametersCallback(), popPath(), processNewPose(), pushPath(), setCurrentMotionGoal(), setPublishMessages(), setStartPoint(), setStartPoint(), and setWorkingMode().
|
protected |
Definition at line 165 of file cp_odom_tracker.hpp.
Referenced by CpOdomTracker(), onInitialize(), parametersCallback(), setOdomFrame(), setStartPoint(), updateAggregatedStackPath(), and updateConfiguration().
|
protected |
Definition at line 147 of file cp_odom_tracker.hpp.
Referenced by logStateString(), onInitialize(), popPath(), pushPath(), and setWorkingMode().
|
protected |
Definition at line 167 of file cp_odom_tracker.hpp.
Referenced by CpOdomTracker(), and onInitialize().
|
protected |
Definition at line 198 of file cp_odom_tracker.hpp.
Referenced by onInitialize().
|
protected |
Definition at line 186 of file cp_odom_tracker.hpp.
Referenced by logStateString(), popPath(), and pushPath().
|
protected |
Definition at line 178 of file cp_odom_tracker.hpp.
Referenced by logStateString(), popPath(), pushPath(), and updateAggregatedStackPath().
|
protected |
Definition at line 171 of file cp_odom_tracker.hpp.
Referenced by CpOdomTracker(), processNewPose(), and setPublishMessages().
|
protected |
Meters.
Definition at line 157 of file cp_odom_tracker.hpp.
Referenced by onInitialize(), parametersCallback(), setWorkingMode(), updateConfiguration(), and updateRecordPath().
|
protected |
How much distance there is between two points of the path.
Definition at line 154 of file cp_odom_tracker.hpp.
Referenced by onInitialize(), parametersCallback(), setWorkingMode(), updateConfiguration(), and updateRecordPath().
|
protected |
Definition at line 141 of file cp_odom_tracker.hpp.
Referenced by onInitialize(), and rtPublishPaths().
|
protected |
Definition at line 142 of file cp_odom_tracker.hpp.
Referenced by onInitialize(), and rtPublishPaths().
|
protected |
Definition at line 149 of file cp_odom_tracker.hpp.
Referenced by onInitialize(), and update().
|
protected |
Definition at line 149 of file cp_odom_tracker.hpp.
|
protected |
Definition at line 150 of file cp_odom_tracker.hpp.
Referenced by onInitialize().
|
protected |
Definition at line 190 of file cp_odom_tracker.hpp.
Referenced by onInitialize().
|
protected |
Definition at line 176 of file cp_odom_tracker.hpp.
Referenced by CpOdomTracker(), processNewPose(), and setWorkingMode().