50 const std::string & filePath,
52 const std::map<int, Transform> & poses,
53 const std::multimap<int, Link> & constraints = std::multimap<int, Link>(),
54 const std::map<int, double> & stamps = std::map<int, double>(),
58 const std::string & filePath,
60 std::map<int, Transform> & poses,
61 std::multimap<int, Link> * constraints = 0,
62 std::map<int, double> * stamps = 0);
65 const std::string & filePath,
66 const std::map<int, GPS> & gpsValues,
67 unsigned int rgba = 0xFFFFFFFF);
78 const std::vector<Transform> &poses_gt,
79 const std::vector<Transform> &poses_result,
91 const std::vector<Transform> &poses_gt,
92 const std::vector<Transform> &poses_result,
105 const std::map<int, Transform> &groundTruth,
106 const std::map<int, Transform> &poses,
107 float & translational_rmse,
108 float & translational_mean,
109 float & translational_median,
110 float & translational_std,
111 float & translational_min,
112 float & translational_max,
113 float & rotational_rmse,
114 float & rotational_mean,
115 float & rotational_median,
116 float & rotational_std,
117 float & rotational_min,
118 float & rotational_max);
121 const std::map<int, Transform> & poses,
122 const std::multimap<int, Link> & links,
123 float & maxLinearErrorRatio,
124 float & maxAngularErrorRatio,
125 float & maxLinearError,
126 float & maxAngularError,
127 const Link ** maxLinearErrorLink = 0,
128 const Link ** maxAngularErrorLink = 0,
129 bool for3DoF =
false);
134 std::multimap<int, Link> & links,
137 bool checkBothWays =
true,
140 std::multimap<int, int> & links,
143 bool checkBothWays =
true);
145 const std::multimap<int, Link> & links,
148 bool checkBothWays =
true,
151 const std::multimap<int, int> & links,
154 bool checkBothWays =
true);
156 const std::multimap<int, Link> & links,
160 const std::multimap<int, Link> & links);
165 const std::multimap<int, Link> & links,
167 bool inverted =
false);
172 const std::map<int, Link> & links,
174 bool inverted =
false);
178 const std::map<int, Transform> & poses,
180 float horizontalFOV = 45.0
f,
181 float verticalFOV = 45.0
f,
182 float nearClipPlaneDistance = 0.1
f,
183 float farClipPlaneDistance = 100.0
f,
184 bool negative =
false);
195 const std::map<int, Transform> & poses,
198 bool keepLatest =
true);
208 const std::map<int, Transform> & poses,
213 const std::map<int, Transform> & poses,
214 const std::multimap<int, Link> & links,
215 std::multimap<int, int> & hyperNodes,
216 std::multimap<int, Link> & hyperLinks);
228 const std::map<int, rtabmap::Transform> & poses,
229 const std::multimap<int, int> & links,
232 bool updateNewCosts =
false);
245 const std::multimap<int, Link> & links,
248 bool updateNewCosts =
false,
249 bool useSameCostForAllLinks =
false);
264 bool lookInDatabase =
true,
265 bool updateNewCosts =
false,
266 float linearVelocity = 0.0
f,
267 float angularVelocity = 0.0
f);
277 const std::map<int, rtabmap::Transform> & poses,
291 const std::map<int, Transform> & poses,
297 const std::map<int, Transform> & poses,
303 const std::map<int, Transform> & poses,
309 const std::map<int, Transform> & poses,
324 const std::vector<std::pair<int, Transform> > & path,
325 unsigned int fromIndex = 0,
326 unsigned int toIndex = 0);
330 const std::map<int, Transform> & path);
333 std::map<int, Transform> poses,
334 const std::multimap<int, Link> & links);
std::list< Link > RTABMAP_EXP findLinks(const std::multimap< int, Link > &links, int from)
void reduceGraph(const std::map< int, Transform > &poses, const std::multimap< int, Link > &links, std::multimap< int, int > &hyperNodes, std::multimap< int, Link > &hyperLinks)
std::map< int, Transform > RTABMAP_EXP radiusPosesFiltering(const std::map< int, Transform > &poses, float radius, float angle, bool keepLatest=true)
std::multimap< int, Link >::iterator RTABMAP_EXP findLink(std::multimap< int, Link > &links, int from, int to, bool checkBothWays=true, Link::Type type=Link::kUndef)
void RTABMAP_EXP computeMaxGraphErrors(const std::map< int, Transform > &poses, const std::multimap< int, Link > &links, float &maxLinearErrorRatio, float &maxAngularErrorRatio, float &maxLinearError, float &maxAngularError, const Link **maxLinearErrorLink=0, const Link **maxAngularErrorLink=0, bool for3DoF=false)
GLM_FUNC_DECL genType min(genType const &x, genType const &y)
bool RTABMAP_EXP exportGPS(const std::string &filePath, const std::map< int, GPS > &gpsValues, unsigned int rgba=0xFFFFFFFF)
int RTABMAP_EXP findNearestNode(const std::map< int, rtabmap::Transform > &poses, const rtabmap::Transform &targetPose, float *distance=0)
std::map< std::string, std::string > ParametersMap
GLM_FUNC_DECL genType::value_type distance(genType const &p0, genType const &p1)
std::multimap< int, Link > RTABMAP_EXP filterLinks(const std::multimap< int, Link > &links, Link::Type filteredType, bool inverted=false)
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
std::multimap< int, Link > RTABMAP_EXP filterDuplicateLinks(const std::multimap< int, Link > &links)
std::map< int, float > _mapIntFloat
std::map< int, float > getNodesInRadius(int nodeId, const std::map< int, Transform > &nodes, float radius)
Transform RTABMAP_EXP calcRMSE(const std::map< int, Transform > &groundTruth, const std::map< int, Transform > &poses, float &translational_rmse, float &translational_mean, float &translational_median, float &translational_std, float &translational_min, float &translational_max, float &rotational_rmse, float &rotational_mean, float &rotational_median, float &rotational_std, float &rotational_min, float &rotational_max)
std::vector< double > RTABMAP_EXP getMaxOdomInf(const std::multimap< int, Link > &links)
std::map< int, Transform > getPosesInRadius(int nodeId, const std::map< int, Transform > &nodes, float radius, float angle)
std::list< std::pair< int, Transform > > RTABMAP_EXP computePath(const std::map< int, rtabmap::Transform > &poses, const std::multimap< int, int > &links, int from, int to, bool updateNewCosts=false)
std::multimap< int, int > RTABMAP_EXP radiusPosesClustering(const std::map< int, Transform > &poses, float radius, float angle)
bool RTABMAP_EXP exportPoses(const std::string &filePath, int format, const std::map< int, Transform > &poses, const std::multimap< int, Link > &constraints=std::multimap< int, Link >(), const std::map< int, double > &stamps=std::map< int, double >(), const ParametersMap ¶meters=ParametersMap())
void RTABMAP_EXP computeMinMax(const std::map< int, Transform > &poses, cv::Vec3f &min, cv::Vec3f &max)
GLM_FUNC_DECL genType max(genType const &x, genType const &y)
void RTABMAP_EXP calcRelativeErrors(const std::vector< Transform > &poses_gt, const std::vector< Transform > &poses_result, float &t_err, float &r_err)
std::map< int, Transform > RTABMAP_EXP findNearestPoses(int nodeId, const std::map< int, Transform > &poses, float radius, float angle=0.0f, int k=0)
bool RTABMAP_EXP importPoses(const std::string &filePath, int format, std::map< int, Transform > &poses, std::multimap< int, Link > *constraints=0, std::map< int, double > *stamps=0)
std::list< std::map< int, Transform > > RTABMAP_EXP getPaths(std::map< int, Transform > poses, const std::multimap< int, Link > &links)
RTABMAP_DEPRECATED(_mapIntFloat RTABMAP_EXP findNearestNodes(const std::map< int, rtabmap::Transform > &nodes, const rtabmap::Transform &targetPose, int k), "Use new findNearestNodes() interface with radius=0, angle=0.")
float RTABMAP_EXP computePathLength(const std::vector< std::pair< int, Transform > > &path, unsigned int fromIndex=0, unsigned int toIndex=0)
std::map< int, float > RTABMAP_EXP findNearestNodes(int nodeId, const std::map< int, Transform > &poses, float radius, float angle=0.0f, int k=0)
std::map< int, Transform > RTABMAP_EXP frustumPosesFiltering(const std::map< int, Transform > &poses, const Transform &cameraPose, float horizontalFOV=45.0f, float verticalFOV=45.0f, float nearClipPlaneDistance=0.1f, float farClipPlaneDistance=100.0f, bool negative=false)
void RTABMAP_EXP calcKittiSequenceErrors(const std::vector< Transform > &poses_gt, const std::vector< Transform > &poses_result, float &t_err, float &r_err)
std::map< int, Transform > _mapIntTransform