00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CLogFileRecord_H
00029 #define CLogFileRecord_H
00030
00031 #include <mrpt/utils/CSerializable.h>
00032 #include <mrpt/slam/CSimplePointsMap.h>
00033
00034 #include "CHolonomicLogFileRecord.h"
00035
00036
00037 namespace mrpt
00038 {
00039 namespace reactivenav
00040 {
00041 using namespace mrpt::utils;
00042
00043 DEFINE_SERIALIZABLE_PRE_CUSTOM_LINKAGE( CLogFileRecord, RNAVDLLIMPEXP )
00044
00045
00049 class RNAVDLLIMPEXP CLogFileRecord : public CSerializable
00050 {
00051 DEFINE_SERIALIZABLE( CLogFileRecord )
00052
00053
00054 public:
00057 CLogFileRecord();
00058
00061 void operator =( CLogFileRecord &);
00062
00065 virtual ~CLogFileRecord();
00066
00070 struct TInfoPerPTG
00071 {
00074 std::string PTG_desc;
00075
00078 vector_float TP_Obstacles;
00079
00082 mrpt::poses::CPoint2D TP_Target;
00083
00086 float timeForTPObsTransformation,timeForHolonomicMethod;
00087
00090 float desiredDirection,desiredSpeed, evaluation;
00091
00094 vector_float evalFactors;
00095
00098 CHolonomicLogFileRecordPtr HLFR;
00099 };
00100
00103 uint32_t nPTGs;
00104
00107 vector_float securityDistances;
00108
00111 std::vector<TInfoPerPTG> infoPerPTG;
00112
00115 int32_t nSelectedPTG;
00116
00119 float executionTime;
00120
00123 float estimatedExecutionPeriod;
00124
00127 mrpt::slam::CSimplePointsMap WS_Obstacles;
00128
00131 mrpt::poses::CPose2D robotOdometryPose;
00132
00135 mrpt::poses::CPoint2D WS_target_relative;
00136
00139 float v,w;
00140
00143 float actual_v,actual_w;
00144
00147 vector_float prevV,prevW,prevSelPTG;
00148
00151 vector_float robotShape_x,robotShape_y;
00152
00155 int32_t navigatorBehavior;
00156
00159 mrpt::poses::CPoint2D doorCrossing_P1,doorCrossing_P2;
00160
00161 private:
00164 void freeInfoPerPTGs();
00165
00166
00167 };
00168
00169 }
00170 }
00171
00172
00173 #endif
00174