参考的是:Ubuntu20.04下运行VINS系列:VINS-Mono、VINS-Fusion和GVINS_github vins-CSDN博客
一、下载EuRoC数据集
建议先下载rosbag包,因为下得真的很慢
链接:kmavvisualinertialdatasets – ASL Datasets
我下载的是Vicon Room1 01 的rosbag,并且放到新建文件夹dataset中
二、安装VINS-Mono
我的电脑环境配置的是ROS noetic、Eigen3.3.7、Ceres1.14.0,当时参考了几篇不同的文章,感觉我的这个配置应该也可以编译,就先尝试了一下。
1、下载VINS-Mono
地址:
https://github.com/HKUST-Aerial-Robotics/VINS-Mono/tree/master
备注:直接下可能因为包太大下不下来,我是下载的zip,再解压,将VINS-Mono-master重命名为VINS-Mono
2、按参考博客要求修改代码。
Ubuntu20.04下运行VINS系列:VINS-Mono、VINS-Fusion和GVINS_github vins-CSDN博客
备注1:vins_estiamtor包头文件我没有替换,编译也没有报错。
备注2:指定OpenCV的版本那里,有几个CMakeLists.txt中没有
find_package(OpenCV REQUIRED)
我只修改了有这行代码的 CMakeLists.txt文件
。
3、按要求放入工作空间/src/中,并编译。
时间可能较长,编译成功:
记得将工作空间放入.bashrc文件中,这样就不用每次source
source ~/vinsmono_ws/devel/setup.bash
4、修改配置文件内容
在VINS-Mono主工程目录下的config子目录中找到euroc文件夹,并打开其中的euroc_config.yaml文件,将其中结果输出保存路径修改为本地的绝对路径或相对路径
output_path: "/home/xxx/output/VinsMono/" #修改为本地的输出目录
pose_graph_save_path: "/home/xxx/output/VinsMono/pose_graph/" #修改为本地的姿态地图保存目录 save and load path
三、运行VINS-Mono
以EuRoC数据集为例,打开三个终端,分别输入
# 运行feature_tracker节点和estimator节点, 订阅图像和IMU数据, 发布位姿, 3D特征点等消息给RVIZ显示
roslaunch vins_estimator euroc.launch
roslaunch vins_estimator vins_rviz.launch
rosbag play ~/dataset/V1_01_easy.bag#路径根据自己下载的数据集而定
备注:在输入第一行命令时出现错误:
参考:VINS-Mono安装、编译、报错[pose_graph-3],以及cv_brige编译报错boost_python-CSDN博客
定位错误到pose_graph/src/pose_graph_node.cpp中的第485行左右:
std::string pkg_path=ros::package::getPath("pose_graph");
应该是这个功能包路径没有成功得到,直接注释了这一行,改成你电脑中安装的vins_mono的pose_graph这个功能包路径,
即修改后为:
std::string pkg_path = "/home/xxx/vinsmono_ws/src/VINS-Mono/pose_graph";
再重新分别输入三行命令即可。