MRPT / srba

[Prefer the newer MOLAorg/mola project] C++ framework for relative SLAM: Sparser Relative Bundle Adjustment (SRBA)
http://mrpt.github.io/srba/
73 stars 37 forks source link

Enhancement: Allow multiple sensors #2

Open jlblancoc opened 8 years ago

jlblancoc commented 8 years ago

Expand the template patterns to allow multiple sensor observations.

jlblancoc commented 8 years ago

Some old comments about how to do this:

1) Study a lot about C++ templates!! In particular, one would need mastering the typelist pattern design. It's very well explained in the book "Modern C++ Design: Generic Programming and Design Patterns Applied" (Andrei Alexandrescu) http://www.amazon.com/dp/0201704315/

2) In RbaEngine<>, we must replace the observation type by a typelist. The list only may include 1 observation, or any amount.

3) The hard part: go thru all the lib and replace anything touching observations, Jacobians of observations and the like, by templatized types. Probably the typelist pattern should be used one or more times

As you can see, it's not an "average" coding task and would require really specialized and deep knowledge on C++ templates and capability of abstraction. In turn, the final product will be a metaprogramming device that generates code specifically suited to

each SLAM problem with a great flexibility.