photo-slam调试踩坑记录pass ‘Combine redundant instructions‘ is not initialized.
关于photo-slam的安装过程,参考github项目中的readme和以下配置流程:
报错时服务器环境配置如下:
ubuntu20.04(在pve虚拟系统中)、英伟达驱动535.183.06、cuda11.8+cudnn8.9.3.28、cmake3.22.6、opencv+opencv_contrib4.7.0、pangolin0.5(readme中未指定明确版本)、libtorch2.0.1-cu118
本人目前在尝试跑通photo-slam的可视化版本时,运行以下命令;
./bin/euroc_stereo ./ORB-SLAM3/Vocabulary/ORBvoc.txt ./cfg/ORB_SLAM3/Stereo/EuRoC/EuRoC.yaml ./cfg/gaussian_mapper/Stereo/EuRoC/EuRoC.yaml ./data/EuRoC/MH_01_easy ./cfg/ORB_SLAM3/Stereo/EuRoC/EuRoC_TimeStamps/MH01.txt ./result/euroc_stereo_1/MH_01_easy/
遇到了如下报错:
可以看到在终端中显示:
Pass 'Combine redundant instructions' is not initialized.
Verify if there is a pass dependency cycle.
Required Passes:
段错误 (核心已转储)
之后通过gdb进行调试,发现错误发生在第二次for循环中的176行之后,如图下所示:
可以看到,是在进入ORBSLAM3的system中时出现的报错,初步推断是ORBSLAM3中的可视化界面出现问题,导致内存冲突问题。
在经过网上的搜索后发现,可能由于特定版本的pangolin和libtorch之间存在冲突,这个问题在github上的issue中也有人提到类似问题:
I'm having some problems compiling your code. · Issue #2 · HuajianUP/Photo-SLAM · GitHub
An error occured while compiling your code. · Issue #12 · HuajianUP/Photo-SLAM · GitHub
An Error in imgui_viewer · Issue #5 · HuajianUP/Photo-SLAM · GitHub
编译通过但运行报错 · Issue #12 · YWL0720/YOLO_ORB_SLAM3 · GitHub
经过多次测试,发现在其他配置不变情况下,更改libtorch版本为2.1.0-cu118,可以正常运行带可视化界面的photo-slam,目前测试的tum-rgbd和euroc数据集都可以跑通,效果如下:


总结:
目前猜测是pangolin0.5版本中存在于libtorch2.0.1-cu118的部分冲突问题,导致无法运行可视化界面,而官方在readme中没有指定pangolin版本,有可能是使用了更高的版本,没有此项冲突问题。但此猜想具体没有做进一步验证,感兴趣的同学可以进一步验证。
更多推荐


所有评论(0)