MRPT  2.0.4
CObservation6DFeatures.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
10 #include "obs-precomp.h" // Precompiled headers
11 
15 #include <mrpt/system/os.h>
16 
17 using namespace mrpt::obs;
18 using namespace mrpt::poses;
19 
20 // This must be added to any CSerializable class implementation file.
22 
23 /** Default constructor */
25 
26  = default;
27 
29 {
30 }
31 
32 uint8_t CObservation6DFeatures::serializeGetVersion() const { return 0; }
35 {
37 
38  const uint32_t n = sensedFeatures.size();
39  out << n;
40  for (uint32_t i = 0; i < n; i++)
41  {
42  const TMeasurement& m = sensedFeatures[i];
43  out << m.pose << m.id << m.inf_matrix;
44  }
45 
47 }
48 
50  mrpt::serialization::CArchive& in, uint8_t version)
51 {
52  switch (version)
53  {
54  case 0:
55  {
57 
58  uint32_t n;
59  in >> n;
60  sensedFeatures.clear();
61  sensedFeatures.resize(n);
62  for (uint32_t i = 0; i < n; i++)
63  {
65  in >> m.pose >> m.id >> m.inf_matrix;
66  }
67 
68  in >> sensorLabel >> timestamp;
69  }
70  break;
71  default:
73  };
74 }
75 
77 {
78  out_sensorPose = sensorPose;
79 }
80 
82 {
83  sensorPose = newSensorPose;
84 }
85 
87 {
88  using namespace std;
90 
91  o << "Sensor pose: " << sensorPose << endl;
92  o << "Min range : " << minSensorDistance << endl;
93  o << "Max range : " << maxSensorDistance << endl << endl;
94 
95  o << "Observation count : " << sensedFeatures.size() << endl << endl;
96 
97  for (size_t k = 0; k < sensedFeatures.size(); k++)
98  {
100  o << "#" << k << ": ID=" << m.id << "; value=" << m.pose
101  << "; inf=" << m.inf_matrix.inMatlabFormat() << endl;
102  }
103 }
os.h
mrpt::obs::CObservation::sensorLabel
std::string sensorLabel
An arbitrary label that can be used to identify the sensor.
Definition: CObservation.h:62
mrpt::obs::CObservation6DFeatures::CObservation6DFeatures
CObservation6DFeatures()
Default ctor.
matrix_serialization.h
mrpt::obs::CObservation6DFeatures::sensorPose
mrpt::poses::CPose3D sensorPose
The pose of the sensor on the robot/vehicle.
Definition: CObservation6DFeatures.h:56
INVALID_LANDMARK_ID
#define INVALID_LANDMARK_ID
Used for CObservationBearingRange::TMeasurement::beaconID and others.
Definition: CObservation.h:27
mrpt::obs::CObservation6DFeatures::getDescriptionAsText
void getDescriptionAsText(std::ostream &o) const override
Build a detailed, multi-line textual description of the observation contents and dump it to the outpu...
Definition: CObservation6DFeatures.cpp:86
mrpt::math::MatrixVectorBase::inMatlabFormat
std::string inMatlabFormat(const std::size_t decimal_digits=6) const
Exports the matrix as a string compatible with Matlab/Octave.
Definition: MatrixVectorBase_impl.h:141
mrpt::obs::CObservation6DFeatures::TMeasurement::pose
mrpt::poses::CPose3D pose
The observed feature SE(3) pose with respect to the sensor.
Definition: CObservation6DFeatures.h:39
out
mrpt::vision::TStereoCalibResults out
Definition: chessboard_stereo_camera_calib_unittest.cpp:25
obs-precomp.h
mrpt::obs::CObservation6DFeatures::getSensorPose
void getSensorPose(mrpt::poses::CPose3D &out_sensorPose) const override
A general method to retrieve the sensor pose on the robot.
Definition: CObservation6DFeatures.cpp:76
mrpt::poses
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
Definition: CHierarchicalMapMHPartition.h:23
mrpt::obs::CObservation6DFeatures::maxSensorDistance
float maxSensorDistance
Definition: CObservation6DFeatures.h:33
mrpt::obs
This namespace contains representation of robot actions and observations.
Definition: CParticleFilter.h:18
mrpt::obs::CObservation6DFeatures::serializeGetVersion
uint8_t serializeGetVersion() const override
Must return the current versioning number of the object.
Definition: CObservation6DFeatures.cpp:32
mrpt::obs::CObservation::timestamp
mrpt::system::TTimeStamp timestamp
The associated UTC time-stamp.
Definition: CObservation.h:60
mrpt::serialization::CArchive
Virtual base class for "archives": classes abstracting I/O streams.
Definition: CArchive.h:55
mrpt::obs::CObservation6DFeatures::serializeFrom
void serializeFrom(mrpt::serialization::CArchive &in, uint8_t serial_version) override
Pure virtual method for reading (deserializing) from an abstract archive.
Definition: CObservation6DFeatures.cpp:49
mrpt::obs::CObservation6DFeatures::setSensorPose
void setSensorPose(const mrpt::poses::CPose3D &newSensorPose) override
A general method to change the sensor pose on the robot.
Definition: CObservation6DFeatures.cpp:81
mrpt::obs::CObservation::getDescriptionAsText
virtual void getDescriptionAsText(std::ostream &o) const
Build a detailed, multi-line textual description of the observation contents and dump it to the outpu...
Definition: CObservation.cpp:42
mrpt::poses::CPose3D
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:87
mrpt::obs::CObservation6DFeatures
An observation of one or more "features" or "objects", possibly identified with a unique ID,...
Definition: CObservation6DFeatures.h:26
mrpt::obs::CObservation6DFeatures::TMeasurement
Each one of the measurements.
Definition: CObservation6DFeatures.h:37
IMPLEMENTS_SERIALIZABLE
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
To be added to all CSerializable-classes implementation files.
Definition: CSerializable.h:166
mrpt::obs::CObservation6DFeatures::minSensorDistance
float minSensorDistance
Information about the sensor.
Definition: CObservation6DFeatures.h:33
mrpt::obs::CObservation6DFeatures::TMeasurement::inf_matrix
mrpt::math::CMatrixDouble66 inf_matrix
The inverse of the observation covariance matrix (default:all zeros)
Definition: CObservation6DFeatures.h:44
mrpt::obs::CObservation6DFeatures::serializeTo
void serializeTo(mrpt::serialization::CArchive &out) const override
Pure virtual method for writing (serializing) to an abstract archive.
Definition: CObservation6DFeatures.cpp:33
mrpt::obs::CObservation6DFeatures::sensedFeatures
std::deque< TMeasurement > sensedFeatures
The list of observed features.
Definition: CObservation6DFeatures.h:53
mrpt::obs::CObservation6DFeatures::TMeasurement::TMeasurement
TMeasurement()
Ctor with default values.
Definition: CObservation6DFeatures.cpp:28
mrpt::obs::CObservation
Declares a class that represents any robot's observation.
Definition: CObservation.h:44
CArchive.h
MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
Definition: exceptions.h:97
CObservation6DFeatures.h
mrpt::obs::CObservation6DFeatures::TMeasurement::id
int32_t id
The feature ID, or INVALID_LANDMARK_ID if unidentified (default)
Definition: CObservation6DFeatures.h:41



Page generated by Doxygen 1.8.18 for MRPT 2.0.4 at Thu Sep 24 07:14:18 UTC 2020