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 | getCommentText (std::string &t) const |
Returns the block of comment text for the rawlog. | |
std::string | getCommentText () const |
Returns the block of comment text for the rawlog. | |
void | setCommentText (const std::string &t) |
Changes the block of comment text for the rawlog. | |
void | getCommentTextAsConfigFile (mrpt::utils::CConfigFileMemory &memCfg) const |
Saves the block of comment text for the rawlog into the passed config file object. | |
CRawlog () | |
Default constructor. | |
virtual | ~CRawlog () |
Destructor: | |
void | clear () |
Clear the sequence of actions/observations, freeing the memory of all the objects in the list. | |
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). | |
void | addAction (CAction &action) |
Add an action to the sequence: a collection of just one element is created. | |
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. | |
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. | |
void | addActionsMemoryReference (const CActionCollectionPtr &action) |
Add a set of actions to the sequence, using a smart pointer to the object to add. | |
void | addObservationsMemoryReference (const CSensoryFramePtr &observations) |
Add a set of observations to the sequence, using a smart pointer to the object to add. | |
void | addObservationMemoryReference (const CObservationPtr &observation) |
Add a single observation to the sequence, using a smart pointer to the object to add. | |
bool | loadFromRawLogFile (const std::string &fileName) |
Load the contents from a file containing one of these possibilities: | |
bool | saveToRawLogFile (const std::string &fileName) const |
Saves the contents to a rawlog-file, compatible with RawlogViewer (As the sequence of internal objects). | |
size_t | size () const |
Returns the number of actions / observations object in the sequence. | |
TEntryType | getType (size_t index) const |
Returns the type of a given element. | |
void | remove (size_t index) |
Delete the action or observation stored in the given index. | |
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). | |
CActionCollectionPtr | getAsAction (size_t index) const |
Returns the i'th element in the sequence, as being actions, where index=0 is the first object. | |
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. | |
mrpt::utils::CSerializablePtr | getAsGeneric (size_t index) const |
Returns the i'th element in the sequence, being its class whatever. | |
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. | |
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. | |
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). | |
void | swap (CRawlog &obj) |
Efficiently swap the contents of two existing objects. | |
bool | getActionObservationPair (CActionCollectionPtr &action, CSensoryFramePtr &observations, size_t &rawlogEntry) const |
Gets the next consecutive pair action / observation from the rawlog loaded into this object. | |
Static Public Member Functions | |
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. | |
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. | |
static std::string | detectImagesDirectory (const std::string &rawlogFilename) |
Tries to auto-detect the external-images directory of the given rawlog file. | |
Protected Member Functions | |
CSerializable virtual methods | |
void | writeToStream (mrpt::utils::CStream &out, int *getVersion) const MRPT_OVERRIDE |
void | readFromStream (mrpt::utils::CStream &in, int version) MRPT_OVERRIDE |
Private Types | |
typedef std::vector< mrpt::utils::CSerializablePtr > | TListObjects |
Private Attributes | |
TListObjects | m_seqOfActObs |
The list where the objects really are in. | |
CObservationComment | m_commentTexts |
Comments of the rawlog. | |
RTTI stuff <br> | |
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 MRPT_OVERRIDE |
virtual mrpt::utils::CObject * | duplicate () const MRPT_OVERRIDE |
static mrpt::utils::CObject * | CreateObject () |
static CRawlogPtr | Create () |
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 253 of file obs/CRawlog.h.
|
inline |
Definition at line 252 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).
|
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 |
|
inline |
Definition at line 255 of file obs/CRawlog.h.
|
inline |
Definition at line 254 of file obs/CRawlog.h.
Definition at line 257 of file obs/CRawlog.h.
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 |
std::string mrpt::obs::CRawlog::getCommentText | ( | ) | const |
Returns the block of comment text for the rawlog.
void mrpt::obs::CRawlog::getCommentText | ( | std::string & | t | ) | 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 |
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).
|
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.
|
protected |
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 |
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 |
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.
|
protected |
|
staticprotected |
Definition at line 55 of file obs/CRawlog.h.
|
static |
Definition at line 55 of file obs/CRawlog.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.9.8 for MRPT 1.4.0 SVN: at Thu Dec 14 16:41:50 UTC 2023 |