Go to the documentation of this file.
34 #ifndef GRAPHSLAM_HPP_
35 #define GRAPHSLAM_HPP_
41 #include <Eigen/SparseCore>
56 bool findCloseScans(
const std::vector<SLAMScanPtr>& scans,
size_t scan,
const SLAMOptions&
options, std::vector<size_t>& output);
67 using Graph = std::vector<std::pair<int, int>>;
80 void doGraphSLAM(
const std::vector<SLAMScanPtr>& scans,
size_t last,
const std::vector<bool>& new_scans = std::vector<bool>())
const;
89 void createGraph(
const std::vector<SLAMScanPtr>& scans,
size_t last,
Graph& graph)
const;
Eigen::Matrix< double, 6, 6 > Matrix6d
6D matrix double precision
void fillEquation(const std::vector< SLAMScanPtr > &scans, const Graph &graph, GraphMatrix &mat, GraphVector &vec) const
A function to fill the linear system mat * x = vec.
GraphSLAM(const SLAMOptions *options)
void eulerCovariance(KDTreePtr tree, SLAMScanPtr scan, Matrix6d &outMat, Vector6d &outVec) const
std::vector< std::pair< int, int > > Graph
Eigen::VectorXd GraphVector
const kaboom::Options * options
void doGraphSLAM(const std::vector< SLAMScanPtr > &scans, size_t last, const std::vector< bool > &new_scans=std::vector< bool >()) const
runs the GraphSLAM algorithm
const SLAMOptions * m_options
std::shared_ptr< KDTree > KDTreePtr
virtual ~GraphSLAM()=default
std::shared_ptr< SLAMScanWrapper > SLAMScanPtr
Eigen::Matrix< double, 6, 1 > Vector6d
6D vector double precision
Eigen::SparseMatrix< double > GraphMatrix
void createGraph(const std::vector< SLAMScanPtr > &scans, size_t last, Graph &graph) const
Creates a graph. An edge between nodes(scans) means posible overlap.
A struct to configure SLAMAlign.
bool findCloseScans(const std::vector< SLAMScanPtr > &scans, size_t scan, const SLAMOptions &options, std::vector< size_t > &output)
finds Scans that are "close" to a Scan as determined by a Loopclosing strategy
Wrapper class for running GraphSLAM on Scans.
lvr2
Author(s): Thomas Wiemann
, Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Wed Mar 2 2022 00:37:23