slam十四讲ch3实践(遇到的各种问题及解决方法)

我是在遇到问题后参考了其他几篇博客进行了解决,参考博客会在最后附上链接,写此文章也是为了记录问题,以后需要就可以不用到处去找了。

1.安装Eigen

这个比较简单,按照书上的步骤就可以

打开终端,输入代码:

sudo apt-get install libeigen3-dev

2.安装pangolin

1:安装git工具

sudo apt-get install git

2:下载源码、安装依赖

apt-get install libglew-dev
apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
git clone http://github.com/stevenlovegrove/Pangolin

3:编译安装pongolin

cd Pangolin //path of source code
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j
sudo make install 

3.运行显示运动轨迹plotTrajectory.cpp

打开源码

在运行plotTrajectory程序出现报错cannot find trajectory file at ./examples/trajectory.txt,这是由于程序中相对路径./examples/trajectory.txt是基于目前软件运行的路径,软件是进入examples,在里面寻找trajectory.txt,而编译完成的软件是在build目录下。

针对上述plotTrajectory程序报错问题,我们用下面的办法进行解决,首先在VScode中打开终端,输入指令pwd后,显示文件所在路径,将路径复制替换掉程序中的./examples保存即可。

具体是类似于我截图的最后一行那里进行代码修改。

至此问题解决。

4.运行显示相机位姿 visualizeGeometry.cpp

对于这个在使用make编译时出现了一大堆的报错,类似与这样:

 最后发现可能是C++11的编译标准版本过低,在visualizeGeometry的CMakeList.txt文件中把C++11改为C++14或者C++17后编译成功。

对于visualizeGeometry.cpp文件的初次运行,会出现以下报错

./visualizeGeometry: error while loading shared libraries: libpango_image.so: cannot open shared object file: No such file or directory

这是因为系统不知道libpango_image.so放在哪个目录下,我们需要执行下面的指令,进行共享库的刷新

sudo ldconfig

接下来在进行编译执行程序就可以了。

参考博客:http://t.csdnimg.cn/YbwLF

                  http://t.csdnimg.cn/IKA7u

### 关于《视觉SLAM十四》第七章的实践指导与代码实现 对于《视觉SLAM十四》第七章中的实践部分,该章节主要围绕着直接法和特征点法进行深入探讨,并提供了相应的理论基础以及算法实现思路。为了帮助读者更好地理解和应用这些方法,在书籍配套资源中确实包含了丰富的代码实例。 #### 获取第七章相关代码示例的方法: 可以通过访问书籍官方提供的GitHub仓库来获取完整的源码包[^1]。具体来说,《视觉SLAM十四》第二版的所有实验代码都托管在这个地址:<https://github.com/gaoxiang12/slambook2>。此仓库不仅涵盖了书中提到的各种算法的具体实现细节,还包括了必要的依赖库安装指南和其他辅助工具。 针对第七章的内容,建议重点查看`chapter7`文件夹下的项目结构。这里通常会包含用于演示直接法和基于特征点的地图构建过程的相关脚本。通过阅读并运行这部分代码,可以加深对这两种不同SLAM技术的理解。 另外,如果遇到任何编译或环境配置方面的问题,可参照其他用户的笔记分享获得额外的帮助和支持[^2]。例如,有学习者记录下了如何正确设置开发环境的过程,这对于初学者尤其有用。 #### 示例代码片段展示: 以下是来自书中原生C++代码的一个简化版本,展示了如何初始化一个顶点(Vertex),它代表了一个位姿估计问题中的未知变量。注意这里的维度设定是为了适应特定的任务需求——即同时考虑到了旋转和平移的变化情况。 ```cpp // 定义一个具有九个自由度的姿态节点类 class VertexPose : public g2o::BaseVertex<9, Eigen::Matrix<double, 9, 1>> { protected: virtual void oplusImpl(const number_t* update_) override; public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW; // 构造函数 VertexPose() {} // 设置初始姿态参数(R,t,f,k0,k1) }; ``` 上述代码摘自实际案例研究的一部分,其中涉及到了g2o框架内的某些特性。更多详细的解释可以在原作者提供的文档里找到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值