文章目录
在使用KITTI数据集运行orb_slam3的单目和双目的例子时,出现运行不了直接中断程序的情况,这里提供了一种解决办法。
问题分析
出现这个问题的原因是因为orb_slam3在显示配置文件中出现了错误,网上其他博客说出现Process finished with exit code 139报错的原因是指针指向不明确的问题,我在debug的过程中也确实发现了这个问题,但是没有得到解决,考虑到这段代码也只是起到显示配置参数的功能,也没有太大的必要留着,因此直接注释调可以省掉很多麻烦,因此我就找到了这段出现问题的代码然后注释掉,问题就解决了。
解决办法
在ORB_SLAM3的工程文件下的src文件夹中找到setting.cc文件并打开,找到以下代码(大概在553行左右)并注释掉就可以了。
if(settings.sensor_ == System::STEREO || settings.sensor_ == System::IMU_STEREO){
output << "\t-Camera 2 parameters (";
if(settings.cameraType_ == Settings::PinHole || settings.cameraType_ == Settings::Rectified){
output << "Pinhole";
}
else{
output << "Kannala-Brandt";
}
output << "" << ": [";
for(size_t i = 0; i < settings.originalCalib2_->size(); i++){
output << " " << settings.originalCalib2_->getParameter(i);
}
output << " ]" << endl;
if(!settings.vPinHoleDistorsion2_.empty()){
output << "\t-Camera 1 distortion parameters: [ ";
for(float d : settings.vPinHoleDistorsion2_){
output << " " << d;
}
output << " ]" << endl;
}
}
output << "\t-Original image size: [ " << settings.originalImSize_.width << " , " << settings.originalImSize_.height << " ]" << endl;
output << "\t-Current image size: [ " << settings.newImSize_.width << " , " << settings.newImSize_.height << " ]" << endl;
变更为
// if(settings.sensor_ == System::STEREO || settings.sensor_ == System::IMU_STEREO){
// output << "\t-Camera 2 parameters (";
// if(settings.cameraType_ == Settings::PinHole || settings.cameraType_ == Settings::Rectified){
// output << "Pinhole";
// }
// else{
// output << "Kannala-Brandt";
// }
// output << "" << ": [";
// for(size_t i = 0; i < settings.originalCalib2_->size(); i++){
// output << " " << settings.originalCalib2_->getParameter(i);
// }
// output << " ]" << endl;
//
// if(!settings.vPinHoleDistorsion2_.empty()){
// output << "\t-Camera 1 distortion parameters: [ ";
// for(float d : settings.vPinHoleDistorsion2_){
// output << " " << d;
// }
// output << " ]" << endl;
// }
// }
//
// output << "\t-Original image size: [ " << settings.originalImSize_.width << " , " << settings.originalImSize_.height << " ]" << endl;
// output << "\t-Current image size: [ " << settings.newImSize_.width << " , " << settings.newImSize_.height << " ]" << endl;