9 #ifndef CAbstractReactiveNavigationSystem_H
10 #define CAbstractReactiveNavigationSystem_H
19 namespace slam {
class CSimplePointsMap; }
44 virtual bool getCurrentPoseAndSpeeds(
mrpt::poses::CPose2D &curPose,
float &curV,
float &curW) = 0;
51 virtual bool changeSpeeds(
float v,
float w ) = 0;
57 return changeSpeeds(0,0);
79 virtual void sendNavigationStartEvent () { std::cout <<
"[sendNavigationStartEvent] Not implemented by the user." << std::endl; }
80 virtual void sendNavigationEndEvent() { std::cout <<
"[sendNavigationEndEvent] Not implemented by the user." << std::endl; }
82 virtual void sendWaySeemsBlockedEvent() { std::cout <<
"[sendWaySeemsBlockedEvent] Not implemented by the user." << std::endl; }
120 virtual std::string getAsText()
const;
138 void navigationStep();
143 virtual void navigate(
const TNavigationParams *params )=0;
146 virtual void suspend();
165 virtual void performNavigationStep( )=0;
The pure virtual class that a user of CAbstractReactiveNavigationSystem-derived classes must implemen...
TState
The different states for the navigation system.
TNavigationParams * m_navigationParams
Current navigation parameters.
virtual bool startWatchdog(float T_ms)
Start the watchdog timer of the robot platform, if any.
#define MRPT_MAKE_ALIGNED_OPERATOR_NEW
virtual bool stop()
Stop the robot right now.
This namespace contains algorithms for SLAM, localization, map building, representation of robot's ac...
CReactiveInterfaceImplementation & m_robot
The navigator-robot interface.
virtual void sendNavigationEndEvent()
#define MRPT_UNUSED_PARAM(a)
Can be used to avoid "not used parameters" warnings from the compiler.
TState m_navigationState
Current internal state of navigator:
mrpt::math::TPoint2D target
Coordinates of desired target location.
virtual bool stopWatchdog()
Stop the watchdog timer.
The struct for configuring navigation requests.
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
bool targetIsRelative
(Default=false) Whether the target coordinates are in global coordinates (false) or are relative to t...
virtual ~TNavigationParams()
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A class used to store a 2D pose.
#define REACTIVENAV_IMPEXP
virtual void sendNavigationEndDueToErrorEvent()
virtual TNavigationParams * clone() const
TState m_lastNavigationState
Last internal state of navigator:
double targetHeading
Target location (heading, in radians).
This is the base class for any reactive navigation system.
float targetAllowedDistance
Allowed distance to target in order to end the navigation.
TState getCurrentState() const
Returns the current navigator state.
virtual void sendNavigationStartEvent()
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans. ...
virtual void notifyHeadingDirection(const double heading_dir_angle)
This base class provides a common printf-like method to send debug information to std::cout...
virtual void sendWaySeemsBlockedEvent()