This class stores a rawlog (robotic datasets) in one of two possible formats:
Refer to the wiki page about rawlog files.
See also the application RawLogViewer for the GUI program that visualizes and manages rawlogs.
This class also publishes a static helper method for loading rawlog files in format #1: see CRawlog::readActionObservationPair
There is a field for comments and blocks of parameters (in ini-like format) accessible through getCommentText and setCommentText (introduced in MRPT 0.6.4). When serialized to a rawlog file, the commens are saved as an additional observation of the type CObservationComments at the beginning of the file, but this observation does not appear after loading for clarity.
Definition at line 52 of file obs/CRawlog.h.
#include <mrpt/obs/CRawlog.h>
Classes | |
class | const_iterator |
A normal iterator, plus the extra method "getType" to determine the type of each entry in the sequence. More... | |
class | iterator |
A normal iterator, plus the extra method "getType" to determine the type of each entry in the sequence. More... | |
Public Types | |
enum | TEntryType { etSensoryFrame = 0, etActionCollection, etObservation } |
The type of each entry in a rawlog. More... | |
Public Member Functions | |
void * | operator new (size_t size) |
void * | operator new[] (size_t size) |
void | operator delete (void *ptr) throw () |
void | operator delete[] (void *ptr) throw () |
void | operator delete (void *memory, void *ptr) throw () |
void * | operator new (size_t size, const std::nothrow_t &) throw () |
void | operator delete (void *ptr, const std::nothrow_t &) throw () |
void | getCommentText (std::string &t) const |
Returns the block of comment text for the rawlog. More... | |
std::string | getCommentText () const |
Returns the block of comment text for the rawlog. More... | |
void | setCommentText (const std::string &t) |
Changes the block of comment text for the rawlog. More... | |
void | getCommentTextAsConfigFile (mrpt::utils::CConfigFileMemory &memCfg) const |
Saves the block of comment text for the rawlog into the passed config file object. More... | |
CRawlog () | |
Default constructor. More... | |
virtual | ~CRawlog () |
Destructor: More... | |
void | clear () |
Clear the sequence of actions/observations, freeing the memory of all the objects in the list. More... | |
void | clearWithoutDelete () |
Clear the sequence of actions/observations, without deleting the objects themselves (USE ONLY IF YOU KNOW WHAT YOU DO, NORMALLY YOU'LL CALL "clear" INSTEAD). More... | |
void | addAction (CAction &action) |
Add an action to the sequence: a collection of just one element is created. More... | |
void | addActions (CActionCollection &action) |
Add a set of actions to the sequence; the object is duplicated, so the original one can be free if desired. More... | |
void | addObservations (CSensoryFrame &observations) |
Add a set of observations to the sequence; the object is duplicated, so the original one can be free if desired. More... | |
void | addActionsMemoryReference (const CActionCollectionPtr &action) |
Add a set of actions to the sequence, using a smart pointer to the object to add. More... | |
void | addObservationsMemoryReference (const CSensoryFramePtr &observations) |
Add a set of observations to the sequence, using a smart pointer to the object to add. More... | |
void | addObservationMemoryReference (const CObservationPtr &observation) |
Add a single observation to the sequence, using a smart pointer to the object to add. More... | |
bool | loadFromRawLogFile (const std::string &fileName) |
Load the contents from a file containing one of these possibilities: More... | |
bool | saveToRawLogFile (const std::string &fileName) const |
Saves the contents to a rawlog-file, compatible with RawlogViewer (As the sequence of internal objects). More... | |
size_t | size () const |
Returns the number of actions / observations object in the sequence. More... | |
TEntryType | getType (size_t index) const |
Returns the type of a given element. More... | |
void | remove (size_t index) |
Delete the action or observation stored in the given index. More... | |
void | remove (size_t first_index, size_t last_index) |
Delete the elements stored in the given range of indices (including both the first and last one). More... | |
CActionCollectionPtr | getAsAction (size_t index) const |
Returns the i'th element in the sequence, as being actions, where index=0 is the first object. More... | |
CSensoryFramePtr | getAsObservations (size_t index) const |
Returns the i'th element in the sequence, as being an action, where index=0 is the first object. More... | |
mrpt::utils::CSerializablePtr | getAsGeneric (size_t index) const |
Returns the i'th element in the sequence, being its class whatever. More... | |
CObservationPtr | getAsObservation (size_t index) const |
Returns the i'th element in the sequence, as being an observation, where index=0 is the first object. More... | |
const_iterator | begin () const |
iterator | begin () |
const_iterator | end () const |
iterator | end () |
iterator | erase (const iterator &it) |
void | findObservationsByClassInRange (mrpt::system::TTimeStamp time_start, mrpt::system::TTimeStamp time_end, const mrpt::utils::TRuntimeClassId *class_type, TListTimeAndObservations &out_found, size_t guess_start_position=0) const |
Returns the sub-set of observations of a given class whose time-stamp t fulfills time_start <= t < time_end. More... | |
void | moveFrom (CRawlog &obj) |
Efficiently copy the contents from other existing object, and remove the data from the origin (after calling this, the original object will have no actions/observations). More... | |
void | swap (CRawlog &obj) |
Efficiently swap the contents of two existing objects. More... | |
bool | getActionObservationPair (CActionCollectionPtr &action, CSensoryFramePtr &observations, size_t &rawlogEntry) const |
Gets the next consecutive pair action / observation from the rawlog loaded into this object. More... | |
virtual mxArray * | writeToMatlab () const |
Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class. More... | |
mrpt::utils::CObjectPtr | duplicateGetSmartPtr () const |
Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer). More... | |
CObject * | clone () const |
Cloning interface for smart pointers. More... | |
Static Public Member Functions | |
static void * | operator new (size_t size, void *ptr) |
static bool | readActionObservationPair (mrpt::utils::CStream &inStream, CActionCollectionPtr &action, CSensoryFramePtr &observations, size_t &rawlogEntry) |
Reads a consecutive pair action / observation from the rawlog opened at some input stream. More... | |
static bool | getActionObservationPairOrObservation (mrpt::utils::CStream &inStream, CActionCollectionPtr &action, CSensoryFramePtr &observations, CObservationPtr &observation, size_t &rawlogEntry) |
Reads a consecutive pair action/sensory_frame OR an observation, depending of the rawlog format, from the rawlog opened at some input stream. More... | |
static std::string | detectImagesDirectory (const std::string &rawlogFilename) |
Tries to auto-detect the external-images directory of the given rawlog file. More... | |
Static Public Attributes | |
static const mrpt::utils::TRuntimeClassId | classCObject |
RTTI stuff | |
static const mrpt::utils::TRuntimeClassId | classCSerializable |
Protected Member Functions | |
CSerializable virtual methods | |
void | writeToStream (mrpt::utils::CStream &out, int *getVersion) const |
Introduces a pure virtual method responsible for writing to a CStream. More... | |
void | readFromStream (mrpt::utils::CStream &in, int version) |
Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori. More... | |
Private Types | |
typedef std::vector< mrpt::utils::CSerializablePtr > | TListObjects |
Private Attributes | |
TListObjects | m_seqOfActObs |
The list where the objects really are in. More... | |
CObservationComment | m_commentTexts |
Comments of the rawlog. More... | |
RTTI stuff | |
typedef CRawlogPtr | SmartPtr |
static mrpt::utils::CLASSINIT | _init_CRawlog |
static mrpt::utils::TRuntimeClassId | classCRawlog |
static const mrpt::utils::TRuntimeClassId * | classinfo |
static const mrpt::utils::TRuntimeClassId * | _GetBaseClass () |
virtual const mrpt::utils::TRuntimeClassId * | GetRuntimeClass () const |
Returns information about the class of an object in runtime. More... | |
virtual mrpt::utils::CObject * | duplicate () const |
Returns a copy of the object, indepently of its class. More... | |
static mrpt::utils::CObject * | CreateObject () |
static CRawlogPtr | Create () |
typedef CRawlogPtr mrpt::obs::CRawlog::SmartPtr |
A typedef for the associated smart pointer
Definition at line 55 of file obs/CRawlog.h.
|
private |
Definition at line 58 of file obs/CRawlog.h.
The type of each entry in a rawlog.
Enumerator | |
---|---|
etSensoryFrame | |
etActionCollection | |
etObservation |
Definition at line 72 of file obs/CRawlog.h.
mrpt::obs::CRawlog::CRawlog | ( | ) |
Default constructor.
|
virtual |
Destructor:
|
staticprotected |
void mrpt::obs::CRawlog::addAction | ( | CAction & | action | ) |
Add an action to the sequence: a collection of just one element is created.
The object is duplicated, so the original one can be free if desired.
void mrpt::obs::CRawlog::addActions | ( | CActionCollection & | action | ) |
Add a set of actions to the sequence; the object is duplicated, so the original one can be free if desired.
void mrpt::obs::CRawlog::addActionsMemoryReference | ( | const CActionCollectionPtr & | action | ) |
Add a set of actions to the sequence, using a smart pointer to the object to add.
void mrpt::obs::CRawlog::addObservationMemoryReference | ( | const CObservationPtr & | observation | ) |
Add a single observation to the sequence, using a smart pointer to the object to add.
void mrpt::obs::CRawlog::addObservations | ( | CSensoryFrame & | observations | ) |
Add a set of observations to the sequence; the object is duplicated, so the original one can be free if desired.
void mrpt::obs::CRawlog::addObservationsMemoryReference | ( | const CSensoryFramePtr & | observations | ) |
Add a set of observations to the sequence, using a smart pointer to the object to add.
|
inline |
Definition at line 252 of file obs/CRawlog.h.
|
inline |
Definition at line 253 of file obs/CRawlog.h.
void mrpt::obs::CRawlog::clear | ( | ) |
Clear the sequence of actions/observations, freeing the memory of all the objects in the list.
void mrpt::obs::CRawlog::clearWithoutDelete | ( | ) |
Clear the sequence of actions/observations, without deleting the objects themselves (USE ONLY IF YOU KNOW WHAT YOU DO, NORMALLY YOU'LL CALL "clear" INSTEAD).
|
inlineinherited |
|
static |
|
static |
|
static |
Tries to auto-detect the external-images directory of the given rawlog file.
This searches for the existence of the directories:
The results from this function should be written into mrpt::utils::CImage::IMAGES_PATH_BASE to enable automatic loading of extenrnally-stored images in rawlogs.
|
virtual |
Returns a copy of the object, indepently of its class.
Implements mrpt::utils::CObject.
|
inlineinherited |
|
inline |
Definition at line 254 of file obs/CRawlog.h.
|
inline |
Definition at line 255 of file obs/CRawlog.h.
Definition at line 257 of file obs/CRawlog.h.
References DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE, and OBS_IMPEXP.
void mrpt::obs::CRawlog::findObservationsByClassInRange | ( | mrpt::system::TTimeStamp | time_start, |
mrpt::system::TTimeStamp | time_end, | ||
const mrpt::utils::TRuntimeClassId * | class_type, | ||
TListTimeAndObservations & | out_found, | ||
size_t | guess_start_position = 0 |
||
) | const |
Returns the sub-set of observations of a given class whose time-stamp t fulfills time_start <= t < time_end.
This method requires the timestamps of the sensors to be in strict ascending order (which should be the normal situation). Otherwise, the output is undeterminate.
bool mrpt::obs::CRawlog::getActionObservationPair | ( | CActionCollectionPtr & | action, |
CSensoryFramePtr & | observations, | ||
size_t & | rawlogEntry | ||
) | const |
Gets the next consecutive pair action / observation from the rawlog loaded into this object.
Previous contents of action and observations are discarded (using stlplus::smart_ptr::clear_unique), and at exit they contain the new objects read from the rawlog file. The input/output variable "rawlogEntry" is just a counter of the last rawlog entry read, for logging or monitoring purposes.
|
static |
Reads a consecutive pair action/sensory_frame OR an observation, depending of the rawlog format, from the rawlog opened at some input stream.
Previous contents of action and observations are discarded (using stlplus::smart_ptr::clear_unique), and at exit they contain the new objects read from the rawlog file.
At return, one of this will happen:
The input/output variable "rawlogEntry" is just a counter of the last rawlog entry read, for logging or monitoring purposes.
CActionCollectionPtr mrpt::obs::CRawlog::getAsAction | ( | size_t | index | ) | const |
Returns the i'th element in the sequence, as being actions, where index=0 is the first object.
If it is not a CActionCollection, it throws an exception. Do neighter modify nor delete the returned pointer.
std::exception | If index is out of bounds |
mrpt::utils::CSerializablePtr mrpt::obs::CRawlog::getAsGeneric | ( | size_t | index | ) | const |
Returns the i'th element in the sequence, being its class whatever.
std::exception | If index is out of bounds |
CObservationPtr mrpt::obs::CRawlog::getAsObservation | ( | size_t | index | ) | const |
Returns the i'th element in the sequence, as being an observation, where index=0 is the first object.
If it is not an CObservation, it throws an exception. Do neighter modify nor delete the returned pointer. This is the proper method to obtain the objects stored in a "only observations"-rawlog file (named "format #2" above.
std::exception | If index is out of bounds |
CSensoryFramePtr mrpt::obs::CRawlog::getAsObservations | ( | size_t | index | ) | const |
Returns the i'th element in the sequence, as being an action, where index=0 is the first object.
If it is not an CSensoryFrame, it throws an exception. Do neighter modify nor delete the returned pointer.
std::exception | If index is out of bounds |
void mrpt::obs::CRawlog::getCommentText | ( | std::string & | t | ) | const |
Returns the block of comment text for the rawlog.
std::string mrpt::obs::CRawlog::getCommentText | ( | ) | const |
Returns the block of comment text for the rawlog.
void mrpt::obs::CRawlog::getCommentTextAsConfigFile | ( | mrpt::utils::CConfigFileMemory & | memCfg | ) | const |
Saves the block of comment text for the rawlog into the passed config file object.
|
virtual |
Returns information about the class of an object in runtime.
Reimplemented from mrpt::utils::CSerializable.
TEntryType mrpt::obs::CRawlog::getType | ( | size_t | index | ) | const |
Returns the type of a given element.
bool mrpt::obs::CRawlog::loadFromRawLogFile | ( | const std::string & | fileName | ) |
Load the contents from a file containing one of these possibilities:
void mrpt::obs::CRawlog::moveFrom | ( | CRawlog & | obj | ) |
Efficiently copy the contents from other existing object, and remove the data from the origin (after calling this, the original object will have no actions/observations).
|
inline |
Definition at line 55 of file obs/CRawlog.h.
|
inline |
Definition at line 55 of file obs/CRawlog.h.
|
inline |
Definition at line 55 of file obs/CRawlog.h.
|
inline |
Definition at line 55 of file obs/CRawlog.h.
|
inlinestatic |
Definition at line 55 of file obs/CRawlog.h.
|
inline |
Definition at line 55 of file obs/CRawlog.h.
|
inline |
Definition at line 55 of file obs/CRawlog.h.
|
inline |
Definition at line 55 of file obs/CRawlog.h.
|
static |
Reads a consecutive pair action / observation from the rawlog opened at some input stream.
Previous contents of action and observations are discarded (using stlplus::smart_ptr::clear_unique), and at exit they contain the new objects read from the rawlog file. The input/output variable "rawlogEntry" is just a counter of the last rawlog entry read, for logging or monitoring purposes.
|
protectedvirtual |
Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori.
in | The input binary stream where the object data must read from. |
version | The version of the object stored in the stream: use this version number in your code to know how to read the incoming data. |
std::exception | On any error, see CStream::ReadBuffer |
Implements mrpt::utils::CSerializable.
void mrpt::obs::CRawlog::remove | ( | size_t | index | ) |
Delete the action or observation stored in the given index.
std::exception | If index is out of bounds |
void mrpt::obs::CRawlog::remove | ( | size_t | first_index, |
size_t | last_index | ||
) |
Delete the elements stored in the given range of indices (including both the first and last one).
std::exception | If any index is out of bounds |
bool mrpt::obs::CRawlog::saveToRawLogFile | ( | const std::string & | fileName | ) | const |
Saves the contents to a rawlog-file, compatible with RawlogViewer (As the sequence of internal objects).
The file is saved with gz-commpressed if MRPT has gz-streams.
void mrpt::obs::CRawlog::setCommentText | ( | const std::string & | t | ) |
Changes the block of comment text for the rawlog.
size_t mrpt::obs::CRawlog::size | ( | ) | const |
Returns the number of actions / observations object in the sequence.
void mrpt::obs::CRawlog::swap | ( | CRawlog & | obj | ) |
Efficiently swap the contents of two existing objects.
|
inlinevirtualinherited |
Introduces a pure virtual method responsible for writing to a mxArray
Matlab object, typically a MATLAB struct
whose contents are documented in each derived class.
mxArray
(caller is responsible of memory freeing) or NULL is class does not support conversion to MATLAB. Definition at line 79 of file CSerializable.h.
References BASE_IMPEXP, DEFINE_MRPT_OBJECT_POST, mrpt::utils::ObjectToOctetVector(), mrpt::utils::ObjectToRawString(), mrpt::utils::ObjectToString(), mrpt::utils::OctetVectorToObject(), mrpt::utils::RawStringToObject(), and mrpt::utils::StringToObject().
|
protectedvirtual |
Introduces a pure virtual method responsible for writing to a CStream.
This can not be used directly be users, instead use "stream << object;" for writing it to a stream.
out | The output binary stream where object must be dumped. |
getVersion | If NULL, the object must be dumped. If not, only the version of the object dump must be returned in this pointer. This enables the versioning of objects dumping and backward compatibility with previously stored data. |
std::exception | On any error, see CStream::WriteBuffer |
Implements mrpt::utils::CSerializable.
|
staticprotected |
Definition at line 55 of file obs/CRawlog.h.
|
staticinherited |
|
static |
Definition at line 55 of file obs/CRawlog.h.
|
staticinherited |
Definition at line 42 of file CSerializable.h.
|
static |
Definition at line 55 of file obs/CRawlog.h.
|
private |
Comments of the rawlog.
Definition at line 61 of file obs/CRawlog.h.
|
private |
The list where the objects really are in.
Definition at line 59 of file obs/CRawlog.h.
Page generated by Doxygen 1.8.11 for MRPT 1.4.0 SVN:Unversioned directory at Sun Jul 10 11:38:36 UTC 2016 |