106         std::unique_ptr<TNavigationParams> 
clone()
 const override   108             return std::unique_ptr<TNavigationParams>(
   127         const std::string& logFileDirectory =
   128             std::string(
"./reactivenav.logs"));
   146         const std::string& method,
   227             const std::string& s) 
override;
   230             const std::string& s) 
const override;
   346         const size_t ptg_idx, std::vector<double>& out_TPObstacles,
   349         const bool eval_clearance) = 0;
   372         const std::vector<double>& in_TPObstacles,
   374         const std::vector<mrpt::math::TPose2D>& WS_Targets,
   375         const std::vector<PTGTarget>& TP_Targets,
   377         const bool this_is_PTG_continuation,
   379         const unsigned int ptg_idx4weights,
   389         const std::vector<mrpt::math::TPose2D>& relTargets, 
int nSelectedPTG,
   391         const bool best_is_NOP_cmdvel,
   394         const double executionTimeValue, 
const double tim_changeSpeed,
   428         const std::vector<mrpt::math::TPose2D>& relTargets,
   434         const TNavigationParams& navp = TNavigationParams(),
 double original_holo_eval
 
void saveToConfigFile(mrpt::config::CConfigFileBase &c, const std::string &s) const override
This method saves the options to a ".ini"-like file or memory-stored string list. ...
 
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
 
std::unique_ptr< mrpt::io::CStream > m_logFile
 
const mrpt::kinematics::CVehicleVelCmd::TVelCmdParams & getCurrentRobotSpeedLimits() const
Get the current, global (honored for all PTGs) robot speed limits. 
 
void setTargetApproachSlowDownDistance(const double dist)
Changes this parameter in all inner holonomic navigator instances [m]. 
 
std::recursive_mutex m_critZoneLastLog
Critical zones. 
 
double m_expr_var_num_paths
 
void getLastLogRecord(CLogFileRecord &o)
Provides a copy of the last log record with information about execution. 
 
TRobotPoseVel poseVel
Robot pose & velocities and timestamp of when it was queried. 
 
void initialize() override
Must be called for loading collision grids, or the first navigation command may last a long time to b...
 
Base for all high-level navigation commands. 
 
void setLogFileDirectory(const std::string &sDir)
Changes the prefix for new log files. 
 
A high-performance stopwatch, with typical resolution of nanoseconds. 
 
A base class for holonomic reactive navigation methods. 
 
void enableLogFile(bool enable)
Enables/disables saving log files. 
 
std::vector< CAbstractHolonomicReactiveMethod::Ptr > m_holonomicMethod
The holonomic navigation algorithm (one object per PTG, so internal states are maintained) ...
 
const mrpt::system::CTimeLogger & getTimeLogger() const
Gives access to a const-ref to the internal time logger. 
 
bool m_enableConsoleOutput
Enables / disables the console debug output. 
 
std::string holonomic_method
C++ class name of the holonomic navigation method to run in the transformed TP-Space. 
 
Clearance information for one particular PTG and one set of obstacles. 
 
std::vector< double > TP_Obstacles
One distance per discretized alpha value, describing the "polar plot" of TP obstacles. 
 
int target_k
The discrete version of target_alpha. 
 
mrpt::math::LowPassFilter_IIR1 meanExecutionPeriod
Runtime estimation of execution period of the method. 
 
mrpt::system::TTimeStamp m_WS_Obstacles_timestamp
 
This class extends CAbstractNavigator with the capability of following a list of waypoints. 
 
A class for storing, saving and loading a reactive navigation log record for the CReactiveNavigationS...
 
void setHolonomicMethod(const std::string &method, const mrpt::config::CConfigFileBase &cfgBase)
Selects which one from the set of available holonomic methods will be used into transformed TP-Space...
 
double target_alpha
TP-Target. 
 
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
 
mrpt::kinematics::CVehicleVelCmd::Ptr m_last_vel_cmd
Last velocity commands. 
 
bool STEP2_SenseObstacles()
 
std::string getAsText() const override
Gets navigation params as a human-readable format. 
 
The struct for configuring navigation requests to CWaypointsNavigator and derived classes...
 
mrpt::math::TPoint2D TP_Target
The Target, in TP-Space (x,y) 
 
void STEP8_GenerateLogRecord(CLogFileRecord &newLogRec, const std::vector< mrpt::math::TPose2D > &relTargets, int nSelectedPTG, const mrpt::kinematics::CVehicleVelCmd::Ptr &new_vel_cmd, int nPTGs, const bool best_is_NOP_cmdvel, const math::TPose2D &rel_cur_pose_wrt_last_vel_cmd_NOP, const math::TPose2D &rel_pose_PTG_origin_wrt_sense_NOP, const double executionTimeValue, const double tim_changeSpeed, const mrpt::system::TTimeStamp &tim_start_iteration)
 
mrpt::Clock::time_point TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1...
 
This is the base class for any user-defined PTG. 
 
This class allows loading and storing values and vectors of different types from a configuration text...
 
double speed_scale
[0,1] scale of the raw cmd_vel as generated by the PTG 
 
virtual size_t getPTG_count() const =0
Returns the number of different PTGs that have been setup. 
 
void loadConfigFile(const mrpt::config::CConfigFileBase &c) override
Loads all params from a file. 
 
~CAbstractPTGBasedReactive() override
 
void performNavigationStep() override
The main method for the navigator. 
 
double min_normalized_free_space_for_ptg_continuation
Min normalized dist [0,1] after current pose in a PTG continuation to allow it. 
 
virtual double generate_vel_cmd(const TCandidateMovementPTG &in_movement, mrpt::kinematics::CVehicleVelCmd::Ptr &new_vel_cmd)
Return the [0,1] velocity scale of raw PTG cmd_vel. 
 
mrpt::math::LowPassFilter_IIR1 timoff_sendVelCmd_avr
 
std::string motion_decider_method
C++ class name of the motion chooser. 
 
mrpt::nav::CMultiObjectiveMotionOptimizerBase::Ptr m_multiobjopt
 
double max_dist_for_timebased_path_prediction
Max dist [meters] to use time-based path prediction for NOP evaluation. 
 
Base class for reactive navigator systems based on TP-Space, with an arbitrary holonomic reactive met...
 
void onStartNewNavigation() override
Called whenever a new navigation has been started. 
 
std::string getLogFileDirectory() const
 
std::unique_ptr< TNavigationParams > m_copy_prev_navParams
A copy of last-iteration navparams, used to detect changes. 
 
mrpt::system::TTimeStamp m_infoPerPTG_timestamp
 
1-order low-pass IIR filter. 
 
CParameterizedTrajectoryGenerator::TNavDynamicState ptg_dynState
 
bool m_closing_navigator
Signal that the destructor has been called, so no more calls are accepted from other threads...
 
virtual void STEP3_WSpaceToTPSpace(const size_t ptg_idx, std::vector< double > &out_TPObstacles, mrpt::nav::ClearanceDiagram &out_clearance, const mrpt::math::TPose2D &rel_pose_PTG_origin_wrt_sense, const bool eval_clearance)=0
Builds TP-Obstacles from Workspace obstacles for the given PTG. 
 
mrpt::math::LowPassFilter_IIR1 timoff_obstacles_avr
 
double secure_distance_start
In normalized distances, the start and end of a ramp function that scales the velocity output from th...
 
bool enable_obstacle_filtering
 
virtual bool implementSenseObstacles(mrpt::system::TTimeStamp &obs_timestamp)=0
Return false on any fatal error. 
 
std::string ptg_cache_files_directory
(Default: ".") 
 
mrpt::system::CTicTac tictac
 
double speedfilter_tau
Time constant (in seconds) for the low-pass filter applied to kinematic velocity commands (default=0:...
 
mrpt::kinematics::CVehicleVelCmd::TVelCmdParams robot_absolute_speed_limits
Params related to speed limits. 
 
void enable(bool enabled=true)
 
ClearanceDiagram clearance
Clearance for each path. 
 
virtual void loggingGetWSObstaclesAndShape(CLogFileRecord &out_log)=0
Generates a pointcloud of obstacles, and the robot shape, to be saved in the logging record for the c...
 
mrpt::system::CTicTac timerForExecutionPeriod
 
void saveConfigFile(mrpt::config::CConfigFileBase &c) const override
Saves all current options to a config file. 
 
mrpt::io::CStream * m_prev_logfile
The current log file stream, or nullptr if not being used. 
 
int ptg_index
0-based index of used PTG 
 
double colfreedist_move_k
TP-Obstacles in the move direction at the instant of picking this movement. 
 
std::vector< PTGTarget > targets
 
A versatile "profiler" that logs the time spent within each pair of calls to enter(X)-leave(X), among other stats. 
 
std::vector< TInfoPerPTG > m_infoPerPTG
Temporary buffers for working with each PTG during a navigationStep() 
 
TAbstractPTGNavigatorParams params_abstract_ptg_navigator
 
void deleteHolonomicObjects()
Delete m_holonomicMethod. 
 
CLogFileRecord lastLogRecord
The last log. 
 
void build_movement_candidate(CParameterizedTrajectoryGenerator *ptg, const size_t indexPTG, const std::vector< mrpt::math::TPose2D > &relTargets, const mrpt::math::TPose2D &rel_pose_PTG_origin_wrt_sense, TInfoPerPTG &ipf, TCandidateMovementPTG &holonomicMovement, CLogFileRecord &newLogRec, const bool this_is_PTG_continuation, mrpt::nav::CAbstractHolonomicReactiveMethod &holoMethod, const mrpt::system::TTimeStamp tim_start_iteration, const TNavigationParams &navp=TNavigationParams(), const mrpt::math::TPose2D &relPoseVelCmd_NOP=mrpt::math::TPose2D(0, 0, 0))
 
void enableKeepLogRecords(bool enable=true)
Enables keeping an internal registry of navigation logs that can be queried with getLastLogRecord() ...
 
CAbstractPTGBasedReactive(CRobot2NavInterface &react_iterf_impl, bool enableConsoleOutput=true, bool enableLogFile=false, const std::string &logFileDirectory=std::string("./reactivenav.logs"))
Constructor. 
 
bool m_init_done
Whether loadConfigFile() has been called or not. 
 
mrpt::math::LowPassFilter_IIR1 meanTotalExecutionTime
 
void loadFromConfigFile(const mrpt::config::CConfigFileBase &c, const std::string &s) override
This method load the options from a ".ini"-like file or memory-stored string list. 
 
bool impl_waypoint_is_reachable(const mrpt::math::TPoint2D &wp_local_wrt_robot) const override
Implements the way to waypoint is free function in children classes: true must be returned if...
 
std::string m_navlogfiles_dir
Default: "./reactivenav.logs". 
 
virtual CParameterizedTrajectoryGenerator * getPTG(size_t i)=0
Gets the i'th PTG. 
 
mrpt::system::CTicTac executionTime
 
mrpt::math::LowPassFilter_IIR1 meanExecutionTime
 
mrpt::kinematics::CVehicleVelCmd::TVelCmdParams & changeCurrentRobotSpeedLimits()
Changes the current, global (honored for all PTGs) robot speed limits, via returning a reference to a...
 
void enableTimeLog(bool enable=true)
Enables/disables the detailed time logger (default:disabled upon construction) When enabled...
 
double m_expr_var_k_target
 
TAbstractPTGNavigatorParams()
 
double ref_distance
Maximum distance up to obstacles will be considered (D_{max} in papers). 
 
bool valid_TP
For each PTG, whether target falls into the PTG domain. 
 
The struct for configuring navigation requests to CAbstractPTGBasedReactive and derived classes...
 
double max_distance_predicted_actual_path
Max distance [meters] to discard current PTG and issue a new vel cmd (default= 0.05) ...
 
bool isEqual(const CAbstractNavigator::TNavigationParamsBase &o) const override
 
TSentVelCmd m_lastSentVelCmd
 
The pure virtual interface between a real or simulated robot and any CAbstractNavigator-derived class...
 
virtual void STEP1_InitPTGs()=0
 
int ptg_alpha_index
Path index for selected PTG. 
 
double secure_distance_end
 
mrpt::system::TTimeStamp tim_send_cmd_vel
Timestamp of when the cmd was sent. 
 
Parameters that may be used by cmdVel_limits() in any derived classes. 
 
bool m_PTGsMustBeReInitialized
 
Dynamic state that may affect the PTG path parameterization. 
 
virtual CAbstractHolonomicReactiveMethod * getHoloMethod(int idx)
 
void calc_move_candidate_scores(TCandidateMovementPTG &holonomicMovement, const std::vector< double > &in_TPObstacles, const mrpt::nav::ClearanceDiagram &in_clearance, const std::vector< mrpt::math::TPose2D > &WS_Targets, const std::vector< PTGTarget > &TP_Targets, CLogFileRecord::TInfoPerPTG &log, CLogFileRecord &newLogRec, const bool this_is_PTG_continuation, const mrpt::math::TPose2D &relPoseVelCmd_NOP, const unsigned int ptg_idx4weights, const mrpt::system::TTimeStamp tim_start_iteration, const mrpt::nav::CHolonomicLogFileRecord::Ptr &hlfr)
Scores holonomicMovement. 
 
mrpt::system::CTimeLogger m_timelogger
A complete time logger. 
 
#define INVALID_TIMESTAMP
Represents an invalid timestamp, where applicable. 
 
The structure used to store all relevant information about each transformation into TP-Space...
 
mrpt::math::LowPassFilter_IIR1 tim_changeSpeed_avr
 
bool evaluate_clearance
Default: false. 
 
std::vector< size_t > restrict_PTG_indices
(Default=empty) Optionally, a list of PTG indices can be sent such that the navigator will restrict i...
 
bool m_enableKeepLogRecords
See enableKeepLogRecords. 
 
mrpt::math::LowPassFilter_IIR1 timoff_curPoseAndSpeed_avr
 
double getTargetApproachSlowDownDistance() const
Returns this parameter for the first inner holonomic navigator instances [m] (should be the same in a...
 
mrpt::system::CTicTac totalExecutionTime
 
mrpt::maps::CPointCloudFilterBase::Ptr m_WS_filter
Default: none. 
 
void preDestructor()
To be called during children destructors to assure thread-safe destruction, and free of shared object...
 
Stores a candidate movement in TP-Space-based navigation. 
 
std::unique_ptr< TNavigationParams > clone() const override