slam14讲-ch6-使用 g2o 拟合曲线编译问题记录

本文档记录了将g2o库从原版更新到最新版本后,使用g2o进行曲线拟合过程中遇到的问题,包括代码调整和CMakeLists.txt的修改。重点探讨了线性方程求解器和矩阵块求解器的更新,以及解决链接错误的方法。

slam14讲-ch6-使用 g2o 拟合曲线编译问题记录

g2o版本

g2o-20201223_git

问题1

书中代码-适用于原版

    // 线性方程求解器:稠密的增量方程
   Block::LinearSolverType* linearSolver = new g2o::LinearSolverDense<Block::PoseMatrixType>();
Block* solver_ptr = new Block(linearSolver);//矩阵块求解器
//梯度下降方法
g2o::OptimizationAlgorithmLevenberg* solver 
### 解决 SLAM14 Chapter 6 使用 g2o 在 Ubuntu 20.04 上遇到的错误 在处理 SLAM14 中第六章关于 g2o 的部分时,在 Ubuntu 20.04 平台上可能会遭遇多种编译或链接错误。为了有效解决问题,需确认环境配置无误并按照特定流程操作。 #### 环境准备 确保已安装必要的开发工具链,包括但不限于 CMake、Git 和 GCC 编译器套件[^2]: ```bash sudo apt update -y ``` 对于 Eigen 库而言,由于 Ubuntu 20.04 已预装了 Eigen3 版本,因此无需额外下载此依赖项[^1]。 #### 安装 DBoW2 和 g2o 针对 g2o 及其关联组件如 DBoW2 的部署,建议遵循官方文档指导完成源码构建过程。通常情况下,这些库可通过 Git 获取最新稳定版,并利用 CMake 进行本地化定制编译。具体命令如下所示: ```bash # 创建工作目录并进入其中 mkdir -p ~/slam_libs && cd ~/slam_libs # 下载 DBoW2 和 g2o 源代码仓库 git clone https://github.com/raulmur/DBoW2.git git clone https://github.com/RainerKuemmerle/g2o.git # 构建 DBoW2 cd DBoW2 mkdir build && cd build cmake .. make -j$(nproc) # 构建 g2o (返回到 slam_libs 文件夹下) cd ../../g2o mkdir build && cd build cmake .. make -j$(nproc) ``` 上述步骤有助于建立一个较为纯净且兼容性强的工作环境,从而减少因第三方包管理引入潜在冲突的可能性。 #### 错误排查指南 如果仍然存在编译失败的情况,则可能是由以下几个常见原因引起: - **路径问题**:确保所有外部库的位置已被正确加入至项目设置文件内; - **版本不匹配**:检查所使用的各软件模块间是否存在版本差异导致的功能缺失或接口变化; - **权限不足**:尝试以超级用户身份执行关键指令来排除权限障碍; 通过以上措施调整后再次尝试重新编译应能显著改善状况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值