recently I added few classes to the registration module related to graph-based registration. I've already had a feedback from Jochen and now I'd want to hear your comments, so that I could correct what's wrong and add new features.
- First, a brief overview:
The core class is GraphRegistration, which adds a new vertex to the graph when the user calls addPointCloud (). Then, the registration of the graph is implemented in computeRegistration () by the concrete subclasses,
e.g. PairwiseGraphRegistration. I think that now ELCH and LUM could derive from GraphRegistration.
1) GraphRegistration doesn't subclass PCLBase, mainly because the latter works on one single input, while the former on a sequence of clouds.
Possible solutions: * make a lighter version of PCLBase w/o members and derive both PCLBase and GraphRegistration from that * don't care about that - GraphRegistration is somehow the "PCLBase" class
for graph-based registration classes.
2) Do we need GraphOptimizer? Could we perform all the numerical stuffs into GraphRegistration? Actually, I think that GraphOptimizer could be use to better define how the numerical optimization should be performed:
for instance, a user-defined graph could be populated by GraphRegistration, but you need a user-defined GraphOptimizer to optimize it!
3) Do we need GraphHandler? Could we simply typedef the required boost::graph
functions into the PCL namespace?