g2o小记

本文记录了在g2o中遇到的耗时问题,对比了Dense和Cholmod Solver的性能,发现Cholmod显著提高效率,并介绍了在CMakeLists中添加Cholmod库的方法。此外,探讨了优化方法,实验表明,对于闭环优化,Levenberg-Marquardt(LM)方法仅调整局部节点,而Gauss-Newton(GN)方法能更好地全局平摊误差。
摘要由CSDN通过智能技术生成

1耗时问题

在g2o中有许多Solver可以选择。
实测发现Dense非常非常的慢,慢到不能用。
后面改成Cholmod就非常快。
在使用Cholmod时还需要在cmakelists里加一个lib的依赖 cholmod
这个cmakelists比较乱,可以做很多精简,这里仅仅做个记录

cmake_minimum_required( VERSION 2.8 )
cmake_policy(VERSION 2.8)
project ( g2o_test )

set( CMAKE_CXX_COMPILER "g++" )
set( CMAKE_CXX_FLAGS "-std=c++11 -O3 " )

list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
############### dependencies ######################
# Eigen
include_directories( "/usr/include/eigen3" )

# G2O
find_package( G2O REQUIRED )
find_package( Cholmod REQUIRED )
include_directories( ${G2O_INCLUDE_DIRS} )
find_package( CSparse REQUIRED )

include_directories(
    ${G2O_INCLUDE_DIRS}
    ${CSPARSE_INCLUDE_DIR}
    ${Cholmod_INCLUDE_DIR}
    )
message("include_dir = " ${G2O_CORE_LIBRARY_DEBUG})
message("include_dir = " ${Cholmod_INCLUDE_DIR})
set( THIRD_PARTY_LIBS 
    ${Cholmod_LIBRARIES}
  #  ${G2O_CORE_LIBRARY_DEBUG}
 #   ${G2O_STUFF_LIBRARY_DEBUG}
  #  ${G2O_TYPES_SLAM3D_DEBUG}
  #  ${G2O_TYPES_SBA_DEBUG}
    cholmod

    g2o_types_slam3d
    g2o_types_sba
    g2o_core
    g2o_stuff
    g2o_s
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值