跑通VINS-Fusion全流程

常规安装步骤详见官方

https://github.com/HKUST-Aerial-Robotics/VINS-Fusion

我用的ubuntu18.04

1.ROS安装

我写的博文记录了我的安装过程:https://blog.youkuaiyun.com/haner27/article/details/103955408

安装ros后,安装需要补充的ROS 功能包:

sudo apt-get install ros-melodic-cv-bridge ros-melodic-tf ros-melodic-message-filters ros-melodic-image-transport

2.ceres solver安装

官方给的源是国外源,下载不了,这里是国内的下载链接
https://github.com/ceres-solver/ceres-solver.git

#14.04
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libeigen3-dev libgtest-dev
#18.04
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libeigen3-dev libgtest-dev

git clone https://github.com/ceres-solver/ceres-solver.git
cd ceres-solver/
mkdir build
cd build
cmake ..
make
sudo make install

记得安装依赖项,记得最后的make install

18.04报错“无法定位软件包 libcxsparse3.1.2”改成: libcxsparse3
(参考https://blog.youkuaiyun.com/weixin_42744670/article/details/82797586

3.VINS_Fusion安装

创建ros空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source devel/setup.bash

安装VINS_Fusion

cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git

注:直接git获取VINS_Fusion,由于网络原因获取不成功,换了个电脑在github网站下载后,放到/catkin_ws/src文件夹中即可。

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

catkin_make的时候遇到报错: c++ internal compiler error program cc1plus
之前报错查找catkin_make的原因找了好久,以为是各种相关项版本的问题,结果是因为虚拟机分配的内存不足,采用博文提到的https://blog.youkuaiyun.com/fenquegong2126/article/details/80988452的方法,报错前用的4G内存,改成8G内存,跑通了。

[XXX] is neither a launch file in package [XXX] nor is [XXX] a launch file name报错信息解决方法

catkin_make
source ~/catkin_ws/devel/setup.bash

跑通实例:使用EuRoc数据集MH_02_easy.bag

roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 
rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag

报错opencv没有安装

报错缺少cv_bridge,补充安装包 sudo apt-get install ros-melodic-cv-bridge

4.KITTI数据集下载

http://www.cvlibs.net/datasets/kitti/raw_data.php
国外源打不开,感谢这个博主提供的国内源下载:https://blog.youkuaiyun.com/weixin_43599336/article/details/86533572
(刚开始可以下载,后来中断了,网页打不开,等一会再下就可以)

泡泡链接(百度网盘):https://www.sohu.com/a/219232053_715754

这两个链接都没能成功下载,最后找到了下面的链接:
https://www.dalipan.com/detail/40c8f99ba2120a493a148f8332094668

终于成功下载了。。

5.跑通KITTI数据集

1.KITTI Odometry (Stereo):使用sequences 00数据集

roslaunch vins vins_rviz.launch
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml
rosrun vins kitti_odom_test ~/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml YOUR_DATASET_FOLDER/sequences/00/ 

KITTI Odometry (Stereo):使用sequences 00数据集

2.KITTI GPS Fusion (Stereo + GPS):使用 2011_10_03_drive_0027_synced 数据集

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

KITTI GPS Fusion (Stereo + GPS):使用 2011_10_03_drive_0027_synced 数据集
Green path is VIO odometry; blue path is odometry under GPS global fusion
绿色路径是VIO里程计结果,蓝色路径是GPS+odometry全局融合后的结果。

注:开多个终端,跑上面的语句,如果rosrun的时候找不到包,重新运行一下:

 source ~/catkin_ws/devel/setup.bash

rostopic list
在这里插入图片描述

问题:这里GPS数据与Stereo方向不一致?
答:感谢博友“贵在坚持,不忘初心”的解答,这里的GPS数据与Stereo都是原始数据,没有进行对齐以及坐标转换,所以垂直是正常的,而vins-fusion所做的就是将两者对齐,得到融合的结果。

补充说明:
若运行roscore提示已经有一个在运行,但实际上并没有打开,那么可以在终端执行下面的命令:
killall -9 roscore
killall -9 rosmaster

### 如何使用自定义数据集运行 VINS-Fusion 要使用自己的数据集运行 VINS-Fusion SLAM 系统,需完成以下几个方面的准备工作和操作: #### 1. 数据采集与预处理 为了使 VINS-Fusion 能够正常工作,需要确保所使用的数据集中包含必要的传感器信息(如双目/单目相机图像以及 IMU 数据),并按照 ROS bag 文件的标准格式存储。如果数据来自其他设备而非标准 Euroc 数据集,则可能需要额外的数据转换步骤。 - **摄像头校准**: 如果未提供现成的相机参数文件,可以利用 OpenCV 或 Kalibr 工具包对相机进行内外参标定[^3]。 - **时间同步**: 对于多源异构传感器(例如双目相机与惯性测量单元 IMU),必须保证其采样频率一致或者经过严格的时间戳匹配处理[^4]。 #### 2. 配置 YAML 参数文件 创建一个新的配置文件用于描述当前实验场景下的硬件特性及其初始化设置。此文件常位于 `~/catkin_ws/src/VINS-Fusion/config` 下面的一个子目录里,比如命名为 `custom_dataset.yaml`: ```yaml camera: fx: 707.0912 # Focal length (pixels) fy: 707.0912 cx: 601.887 # Principal point coordinates cy: 183.110 ... imu: noise_acc: 0.05 # Accelerometer measurement noise standard deviation [m/s^2] noise_gyro: 0.0004 # Gyroscope measurement noise standard deviation [rad/s] ``` 上述字段应依据实际测试平台调整至最接近真实情况为止[^2]。 #### 3. 启动节点流程 启动多个终端窗口分别执行如下命令序列以加载相应功能模块: - 终端一:播放录制好的 ROS Bag 文件作为输入源。 ```bash rosbag play /path/to/custom_data.bag --clock ``` - 终端二:激活核心算法逻辑部分。 ```bash source ~/catkin_ws/devel/setup.bash roslaunch vins vins_rviz.launch rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/custom_dataset.yaml ``` - 可选地开启回环检测服务。 ```bash rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/custom_dataset.yaml ``` 以上每一步都需要确认无误后再继续下一步骤[^1]。 --- ### 注意事项 在整个过程中可能会遇到各种各样的兼容性和性能问题,因此建议仔细阅读官方文档说明,并参照已有成功案例逐步排查错误原因。此外还可以过调试工具观察中间变量的变化趋势以便更好地理解整个系统的运作机制[^5]。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值