Vins-fusion gps融合 KITTY数据集测试
下載kitti數據集
下載kitti數據集和真值poses的00.txt以及sequences文件00序列的times.txt,(全網找了好久,最后不得已翻墻從官網down下來的)
代碼修改,保存輸出數據
先指定輸出路徑:打開vins-fusion/config/kitti_raw/kitti_10_03_config.yaml或者kitti_raw/kitti_09_30_config.yaml(根據數據集選擇具體參數文件),第十行
output_path: “/home/tony-ws1/output/”
這里指明自己需要保存到的地址.
第二步接下來是修改代碼使其輸出軌跡文件,原本的vins_fusion是無軌跡文件輸出的.
globalOptNode.cpp中vio_callback函數
改成如下:
std::ofstream foutC("/home/tony-ws1/output/vio_global.txt", ios::app);//這里還是文件輸出位置,最好和前面位置一樣foutC.setf(ios::fixed, ios::floatfield);foutC.precision(0);foutC << pose_msg->header.stamp.toSec() << " ";foutC.precision(5);foutC << global_t.x() << " "<< global_t.y() << " "<< global_t.z() << " "<< global_q.x() << " "<< global_q.y() << " "<< global_q.z() << " "<< global_q.w() << endl;foutC.close();將輸出數據格式改成tum文件格式的
運行global_fusion節點
按照github上面來,三個終端,分別是下面三個指令(可能要加上source ~/(你的目錄)/devel/setup.bash).
roslaunch vins vins_rviz.launch rosrun vins kitti_gps_test ~/catkin_ws/src/VINS-Fusion/config/kitti_raw/kitti_10_03_config.yaml YOUR_DATASET_FOLDER/2011_10_03_drive_0027_sync/ rosrun global_fusion global_fusion_node可看到如下顯示結果:
EVO顯示及評測
指定的文件夾下找到vio_global文件.使用evo分析結果,這里是tum數據格式,故使用
evo_traj tum vio_global.txt -p
也可同時顯示出來:
接下來是對比真值,(kitti的真值來自與衛星定位,這里視覺融合衛星定位的結果還與之前kitti的真值對比是不是不合適?,這里暫且參照對比吧)
因為真值是12列的kitti軌跡格式,所以要將真值轉換成8列格式的tum軌跡格式
evo里給出了可轉換的代碼
通過該指令完成轉換,詳細見原博文,轉換得到tum格式的真值后,我們可以進行評定,將我們得到的vio_global.txt 與這里的真值進行對比
evo_ape tum vio_global.csv KITTI_00_gt.txt -a -p
為了對比,把vio.csv的也與真值做個對比
總結
以上是生活随笔為你收集整理的Vins-fusion gps融合 KITTY数据集测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win10安装Nek5000
- 下一篇: 【GNN】图嵌入之 node2vec:网