[GSoC] Add Submaps and PoseGraph optimization for Large Scale Depth Fusion
* - Add HashTSDF class
- Implement Integrate function (untested)
* Integration seems to be working, raycasting does not
* Update integration code
* Integration and Raycasting fixes, (both work now)
* - Format code
- Clean up comments and few fixes
* Add Kinect Fusion backup file
* - Add interpolation for vertices and normals (slow and unreliable!)
- Format code
- Delete kinfu_back.cpp
* Bug fix for integration and noisy odometry
* - Create volume abstract class
- Address Review comments
* - Add getPoints and getNormals function
- Fix formatting according to comments
- Move volume abstract class to include/opencv2/rgbd/
- Write factory method for creating TSDFVolumes
- Small bug fixes
- Minor fixes according to comments
* - Add tests for hashTSDF
- Fix raycasting bug causing to loop forever
- Suppress warnings by explicit conversion
- Disable hashTsdf test until we figure out memory leak
- style changes
- Add missing license in a few files, correct precomp.hpp usage
* - Use CRTP based static polymorphism to choose between CPU and GPU for
HashTSDF volume
* Create submap and submapMgr
Implement overlap_ratio check to create new submaps
* Early draft of posegraph and submaps (Doesn't even compile)
* Minor cleanup (no compilation)
* Track all submaps (no posegraph update yet)
* Return inliers from ICP for weighting the constraints
(Huber threshold based inliers pending)
* Add updating constraints between submaps and retain same current map
* Fix constraints creation between submaps and allow for switching between
submaps
* - Fix bug in allocate volumeUnits
- Simplify calculation of visibleBlocks
* Remove inlier calculation in fast_icp (not required)
* Modify readFile to allow reading other datasets easily
* - Implement posegraph update, Gauss newton is unstable
- Minor changes to Gauss newton and Sparse matrix. Residual still
increases slightly over iterations
* Implement simplified levenberg marquardt
* Bug fixes for Levenberg Marquardt and minor changes
* minor changes
* Fixes, but Optimizer is still not well behaved
* Working Ceres optimizer
* - Reorganize IO code for samples in a separate file
- Minor fix for Ceres preprocessor definition
- Remove unused generatorJacobian, will be used for opencv implementation
of levenberg marquardt
- Doxygen docs fix
- Minor preprocessor fixes
* - Reorganize IO code for samples in a separate file
- Minor fix for Ceres preprocessor definition
- Remove unused generatorJacobian, will be used for opencv implementation
of levenberg marquardt
- Doxygen docs fix
- Minor preprocessor fixes
- Move inline functions to header, and make function params const
references
* - Add Python bindings for volume struct
- Remove makeVolume(const VolumeParams&) Python binding due to compilation
issues
- Minor changes according to comments
* - Remove dynafu::Params() since it is identical to kinfu::Params()
- Use common functions for dynafu_demo
- Suppress "unreachable code" in volume.cpp
* Minor API changes
* Minor
* Remove CRTP for HashTSDF class
* Bug fixes for HashTSDF integration