ORB-SLAM2執行資料集時Pangolin介面卡住,不能生成軌跡以及用攝像頭執行非ROS版程式時如何退出的方法
阿新 • • 發佈:2018-12-22
問題1
最近用ORB-SLAM2執行KITTI資料集,最後Pangolin和ORB-SLAM2:Current Frame視窗卡住,無法儲存軌跡檔案。
看程式碼發現是SLAM.Shoutdown()
的問題。
方法一:
如果想得到軌跡檔案,將SLAM.Shoutdown()
移到SALM.SaveTrajectoryKITTI(CameraTrajectory.txt)
後面即可,但是還要在終端輸入ctrl+c
,才能退出卡住的視窗。
方法二:
在System.cc
的SLAM.Shoutdown()
中將以下程式碼註釋掉:
if(mpViewer) pangolin::BindToContext("ORB-SLAM2: Map Viewer");
以前沒有遇到這個問題,猜測是Pangolin更新後存在bug。
注意:對程式碼做修改後,都要重新編譯。
問題2
以前在用小覓相機執行非ROS介面的程式時,如果直接在終端輸入ctrl+c
,程式將直接退出,不會儲存軌跡檔案。
我當時在stereo_mynt.cc
的while(true)
最後新增:
char c = cvWaitKey(1);
if(c == 27)
break;
然後在視訊視窗按ESC
鍵即可正常結束程式,最後儲存軌跡檔案。
不過後來Github有過幾次更新,變化如下:
bool flag = true; void exit_while(int sig) { flag = false; } while (flag)
我沒測試,看樣子應該是為了解決這個bug。