Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pose Graph rewritten without Ceres #2892

Merged
merged 51 commits into from
Apr 1, 2021
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
9ff635e
Works well on g2o dataset, cumulative:
savuor Mar 8, 2021
69d05df
g2o dataset reading added to PoseGraph
savuor Mar 9, 2021
f89247d
sparse solver fixes from DynaFu draft
savuor Mar 11, 2021
92834f8
Eigen cost function and parametrization removed + g2o reading fixed
savuor Mar 11, 2021
fdd92ce
refactored: pose error, pose graph edge, pose graph node
savuor Mar 11, 2021
f71f862
sparse solve: templated
savuor Mar 11, 2021
01b1608
MyOptimize(): 1st version
savuor Mar 11, 2021
ff782d1
several fixes and TODOs for future
savuor Mar 12, 2021
9b2fa9d
sparse block matrix: val functions, template type
savuor Mar 19, 2021
ccb4262
works at Ceres quality (cleanup needed)
savuor Mar 19, 2021
7a2126c
MyOptimize() is set to default optimizer
savuor Mar 21, 2021
638b8d7
Ceres thrown away, PoseGraph class and header/source code reorganized
savuor Mar 21, 2021
91b0b27
pose, node, edge -> nested for PoseGraph
savuor Mar 21, 2021
264ccbf
warnings fixed
savuor Mar 22, 2021
c3bb3a6
jacobiScaling disabled for better performance + minors
savuor Mar 22, 2021
512b40f
trailing whitespace fixed
savuor Mar 22, 2021
155e3eb
more warnings fixed
savuor Mar 22, 2021
e90100f
message added: Eigen is required for build + minors
savuor Mar 22, 2021
7c1a205
trying to fix warning
savuor Mar 22, 2021
87c959f
try to fix "unreachable code" warning
savuor Mar 23, 2021
2d5bd7e
trying to fix unreachable code, pt.3
savuor Mar 23, 2021
8d64f2a
trying to fix unreachable code, pt. 5
savuor Mar 23, 2021
a37c1ba
trying to fix unreachable code, pt. the worst + minors
savuor Mar 23, 2021
54264ba
try to fix unreachable code, pt. the ugliest
savuor Mar 24, 2021
25d67f8
trying to fix unreachable code, pt. the grumpiest
savuor Mar 24, 2021
170f1f3
cout -> CV_LOG_INFO
savuor Mar 24, 2021
ca6eef2
quat matrix functions moved outside cv and kinfu namespaces
savuor Mar 24, 2021
a718ade
unused function fix
savuor Mar 24, 2021
ae792cf
pose graph made public (but in detail namespace) + test for pose graph
savuor Mar 28, 2021
afd11f3
minor: prints
savuor Mar 28, 2021
6f4da67
Pose Graph interface settled
savuor Mar 28, 2021
c6f730f
Pose graph interface and its use updated
savuor Mar 29, 2021
9969c10
cos -> std::cos
savuor Mar 29, 2021
38a9b29
cout -> CV_LOG_INFO
savuor Mar 29, 2021
0be999d
pose graph interface updated: implementation
savuor Mar 29, 2021
de7a39c
Pose Graph Node and Edge: extra fields dropped
savuor Mar 29, 2021
c8d3c6e
more minor refactor-like fixes
savuor Mar 29, 2021
d31536f
return and finish condition fixed
savuor Mar 29, 2021
a3d6741
more updates to test
savuor Mar 29, 2021
f53b44c
test disabled for Debug builds because 400 sec is too much
savuor Mar 29, 2021
5c6c126
whitespace
savuor Mar 29, 2021
f9adf77
Disable pose graph test if there's no Eigen
savuor Mar 30, 2021
1e67e3c
more unused vars
savuor Mar 30, 2021
5527997
fixing unused function warning
savuor Mar 30, 2021
2756e62
less includes
savuor Mar 30, 2021
5d13e84
"verbose" removed
savuor Mar 31, 2021
8fcf78b
write obj to file only when debug level is raised
savuor Mar 31, 2021
a99db27
License + include guard
savuor Mar 31, 2021
c30d23c
skip test using tags and SkipTestException
savuor Mar 31, 2021
ebed66b
suppress "unused function" warning
savuor Mar 31, 2021
e1e5ff7
minor
savuor Apr 1, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 2 additions & 10 deletions modules/rgbd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,7 @@
set(the_description "RGBD algorithms")

find_package(Ceres QUIET)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make sense to keep both implementations (to compare results) for some timeframe (e.g., until we have robust tests)?

ocv_define_module(rgbd opencv_core opencv_calib3d opencv_imgproc OPTIONAL opencv_viz WRAP python)

if(Ceres_FOUND)
ocv_target_compile_definitions(${the_module} PUBLIC CERES_FOUND)
ocv_target_link_libraries(${the_module} ${CERES_LIBRARIES})
if(Ceres_VERSION VERSION_LESS 2.0.0)
ocv_include_directories("${CERES_INCLUDE_DIRS}")
endif()
add_definitions(/DGLOG_NO_ABBREVIATED_SEVERITIES) # avoid ERROR macro conflict in glog (ceres dependency)
else()
message(STATUS "rgbd: CERES support is disabled. Ceres Solver is Required for Posegraph optimization")
if(NOT HAVE_EIGEN)
message(STATUS "rgbd: Eigen support is disabled. Eigen is Required for Posegraph optimization")
endif()
3 changes: 2 additions & 1 deletion modules/rgbd/src/large_kinfu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ bool LargeKinfuImpl<UMat>::update(InputArray _depth)
}
}


template<typename MatType>
bool LargeKinfuImpl<MatType>::updateT(const MatType& _depth)
{
Expand Down Expand Up @@ -279,7 +280,7 @@ bool LargeKinfuImpl<MatType>::updateT(const MatType& _depth)
// TODO: Convert constraints to posegraph
PoseGraph poseGraph = submapMgr->MapToPoseGraph();
std::cout << "Created posegraph\n";
Optimizer::optimize(poseGraph);
poseGraph.optimize();
submapMgr->PoseGraphToMap(poseGraph);

}
Expand Down
Loading