Skip to content
Snippets Groups Projects
Commit d754a078 authored by Sergi Pujol's avatar Sergi Pujol
Browse files

doxygen comments added

parent 24049139
No related branches found
No related tags found
1 merge request!4Resolve "Implementation of Falko lib"
...@@ -23,41 +23,41 @@ namespace laserscanutils { ...@@ -23,41 +23,41 @@ namespace laserscanutils {
/** \brief A 2base class for loop closure using falko library /** \brief A 2base class for loop closure using falko library
*/ */
class LoopClosureBase2d { class LoopClosureBase2d
private: {
public: private:
/** \brief Constructor public:
**/ /** \brief Constructor
LoopClosureBase2d(){}; **/
LoopClosureBase2d(){};
/** \brief Destructor /** \brief Destructor
**/ **/
~LoopClosureBase2d(){}; ~LoopClosureBase2d(){};
/** \brief update the scene struct with keypoints and descriptors /** \brief update the scene struct with keypoints and descriptors
**/ **/
virtual sceneBasePtr extractScene(const LaserScan &scan, virtual sceneBasePtr extractScene(const LaserScan &scan, const LaserScanParams &scanParams) = 0;
const LaserScanParams &scanParams) = 0;
/** \brief Create and update a matchLoopClosure struct with the info that is /** \brief Create and update a matchLoopClosure struct with the info that is
*produced when matching two given scenes *produced when matching two given scenes
**/ **/
virtual MatchLoopClosureScenePtr matchScene(sceneBasePtr _scene1, virtual MatchLoopClosureScenePtr matchScene(sceneBasePtr _scene1, sceneBasePtr _scene2) = 0;
sceneBasePtr _scene2) = 0;
/** \brief compare new scans against the trained set in order to find loop /** \brief It matches a target scene against a list of references scenes in order to find loop
*closures * closures
**/ **/
virtual std::map<double, MatchLoopClosureScenePtr> virtual std::map<double, MatchLoopClosureScenePtr> findLoopClosure(std::list<std::shared_ptr<SceneBase>> _l_scenes,
findLoopClosure(std::list<std::shared_ptr<SceneBase>> _l_scenes, const sceneBasePtr _new_scene)
const sceneBasePtr _new_scene) { {
std::map<double, MatchLoopClosureScenePtr> matchings; std::map<double, MatchLoopClosureScenePtr> matchings;
for (auto ref_scene : _l_scenes) { for (auto ref_scene : _l_scenes)
auto match = matchScene(ref_scene, _new_scene); {
matchings.emplace(match->score, match); auto match = matchScene(ref_scene, _new_scene);
matchings.emplace(match->score, match);
}
return matchings;
} }
return matchings;
}
}; };
} /* namespace laserscanutils */ } /* namespace laserscanutils */
......
...@@ -80,9 +80,18 @@ struct ParameterLoopClosureFalko ...@@ -80,9 +80,18 @@ struct ParameterLoopClosureFalko
double thetaAbsMax_ = 1.57; double thetaAbsMax_ = 1.57;
}; };
/** \brief A base class for loop closure using falko library /** \brief A class for loop closure using falko library
*
* The class is a wrapper of the falkolib that is designed to be used for loop closures in the wolf problem * The class is a wrapper of the falkolib that is designed to be used for loop closures in the wolf problem
*
* It extracts scenes from a laserscanutils::LaserScan. The scenes contain keypoints and descriptors
*
* It matches a target scene against a list of reference scenes.
*
* The reference scenes are found from a search of the previous captures
*
* Diferent types of descriptors can be used, and are specified as template parameters. * Diferent types of descriptors can be used, and are specified as template parameters.
*
* \tparam D Descriptor type. <bsc> or <cgh> * \tparam D Descriptor type. <bsc> or <cgh>
* \tparam Extr descriptor extractor type <bscExtractor> or <cghExtractor> * \tparam Extr descriptor extractor type <bscExtractor> or <cghExtractor>
* \tparam M Matcher type <nn_matcher> or <aht_matcher> * \tparam M Matcher type <nn_matcher> or <aht_matcher>
...@@ -198,7 +207,6 @@ class LoopClosureFalko : public LoopClosureBase2d, public falkolib::FALKOExtract ...@@ -198,7 +207,6 @@ class LoopClosureFalko : public LoopClosureBase2d, public falkolib::FALKOExtract
new_match->transform_vector.head(2) = new_match->transform.translation(); new_match->transform_vector.head(2) = new_match->transform.translation();
new_match->transform_vector(2) = Eigen::Rotation2Dd(new_match->transform.rotation()).angle(); new_match->transform_vector(2) = Eigen::Rotation2Dd(new_match->transform.rotation()).angle();
//}
return new_match; return new_match;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment