Main MRPT website > C++ reference for MRPT 1.9.9
CRobotPosesGraph.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
10 #include "hmtslam-precomp.h" // Precomp header
11 
13 
14 using namespace mrpt::slam;
15 using namespace mrpt::maps;
16 using namespace mrpt::poses;
17 using namespace mrpt::hmtslam;
18 using namespace std;
19 
21 
22 uint8_t CRobotPosesGraph::serializeGetVersion() const { return 0; }
23 void CRobotPosesGraph::serializeTo(mrpt::serialization::CArchive& out) const
24 {
25  uint32_t N = static_cast<uint32_t>(size());
26  out << N;
27  for (const auto& e : *this) out << e.first << e.second.sf << e.second.pdf;
28 }
29 
30 void CRobotPosesGraph::serializeFrom(
32 {
33  switch (version)
34  {
35  case 0:
36  {
37  uint32_t i, N;
38  in >> N;
39  clear();
40 
41  for (i = 0; i < N; i++)
42  {
43  TPoseID poseid;
44  in >> poseid;
45 
46  TPoseInfo& info = (*this)[poseid];
47 
48  in >> info.sf >> info.pdf;
49  }
50  }
51  break;
52  default:
54  };
55 }
56 
57 /*---------------------------------------------------------------
58  insertIntoMetricMap
59  ---------------------------------------------------------------*/
60 void CRobotPosesGraph::insertIntoMetricMap(CMultiMetricMap& metricMap) const
61 {
62  CPose3D meanPose;
64  ++it)
65  {
66  it->second.pdf.getMean(meanPose);
67  it->second.sf.insertObservationsInto(&metricMap, &meanPose);
68  }
69 }
70 
71 /*---------------------------------------------------------------
72  convertIntoSimplemap
73  ---------------------------------------------------------------*/
74 void CRobotPosesGraph::convertIntoSimplemap(CSimpleMap& out_simplemap) const
75 {
76  out_simplemap.clear();
78  ++it)
79  out_simplemap.insert(&it->second.pdf, it->second.sf);
80 }
CRobotPosesGraph.h
begin
EIGEN_STRONG_INLINE iterator begin()
Definition: eigen_plugins.h:29
mrpt::containers::clear
void clear()
Clear the contents of this container.
Definition: ts_hash_map.h:188
const_iterator
const Scalar * const_iterator
Definition: eigen_plugins.h:27
end
GLuint GLuint end
Definition: glext.h:3528
mrpt::hmtslam::TPoseInfo
Information kept for each robot pose used in CRobotPosesGraph.
Definition: CRobotPosesGraph.h:25
uint8_t
unsigned char uint8_t
Definition: rptypes.h:41
mrpt::poses
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
Definition: CHierarchicalMapMHPartition.h:25
hmtslam-precomp.h
mrpt::serialization::CArchive
Virtual base class for "archives": classes abstracting I/O streams.
Definition: CArchive.h:48
mrpt::hmtslam::CRobotPosesGraph
Auxiliary class used in mrpt::slam::CLocalMetricHypothesis for HMT-SLAM; this class stores a set of r...
Definition: CRobotPosesGraph.h:39
mrpt::hmtslam
Classes related to the implementation of Hybrid Metric Topological (HMT) SLAM.
Definition: CHierarchicalMapMHPartition.h:30
mrpt::maps::CMultiMetricMap
This class stores any customizable set of metric maps.
Definition: CMultiMetricMap.h:141
mrpt::poses::CPose3D
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:88
IMPLEMENTS_SERIALIZABLE
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
This must be inserted in all CSerializable classes implementation files.
Definition: CSerializable.h:114
mrpt::hmtslam::TPoseID
uint64_t TPoseID
An integer number uniquely identifying each robot pose stored in HMT-SLAM.
Definition: HMT_SLAM_common.h:66
mrpt::maps::CSimpleMap
This class stores a sequence of <Probabilistic Pose,SensoryFrame> pairs, thus a "metric map" can be t...
Definition: CSimpleMap.h:35
in
GLuint in
Definition: glext.h:7274
mrpt::maps::CSimpleMap::insert
void insert(const mrpt::poses::CPose3DPDF *in_posePDF, const mrpt::obs::CSensoryFrame &in_SF)
Add a new pair to the sequence.
Definition: CSimpleMap.cpp:136
mrpt::maps
Definition: CBeacon.h:24
MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
Definition: exceptions.h:90
mrpt::maps::CSimpleMap::clear
void clear()
Remove all stored pairs.
Definition: CSimpleMap.cpp:55
mrpt::slam
Definition: CMultiMetricMapPDF.h:27
mrpt::hmtslam::TPoseInfo::sf
mrpt::obs::CSensoryFrame sf
The observations.
Definition: CRobotPosesGraph.h:28
size
GLsizeiptr size
Definition: glext.h:3923
uint32_t
unsigned __int32 uint32_t
Definition: rptypes.h:47
mrpt::hmtslam::TPoseInfo::pdf
mrpt::poses::CPose3DPDFParticles pdf
The robot pose PDF.
Definition: CRobotPosesGraph.h:30



Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST