用visual做网站乐陵森林覆盖率
目录
VINS-Fusion 简介
安装
VINS-Fusion 源码安装
运行数据集
双目模式
单目+IMU 模式
双目+IMU 模式
D455 相机实际运行
双目+IMU 模式
VINS-Fusion 简介
 VINS-Fusion 是继 VINS-Mono 和 VINS-Mobile(单目视觉惯导 SLAM 方案)后,香港科  
  技大学沈劭劼老师团队开源的双目视觉惯导 SLAM 方案,VINS-Fusion 是一种基于优化的  
  多传感器状态估计器,可实现自主应用(无人机,汽车和 AR / VR)的精确自定位。 VINS 
  Fusion 是 VINS-Mono 的扩展,支持多种视觉惯性传感器类型(单目摄像机+ IMU,双目摄  
  像机+ IMU,甚至仅限双目摄像机)。开源项目组还展示了将 VINS 与 GPS 融合的模组示例。 
  安装
 安装好 Ubuntu 及其对应的 ROS 版本,这里我们使用的是 Ubuntu18.04,ROS melodic 
   ceres 安装  
  1、先安装所有的依赖项  
  # CMake  
  sudo apt-get install cmake  
  # google-glog + gflags  
  sudo apt-get install libgoogle-glog-dev libgflags-dev  
  # Use ATLAS for BLAS & LAPACK  
  sudo apt-get install libatlas-base-dev  
  # Eigen3  
  sudo apt-get install libeigen3-dev  
  # SuiteSparse (optional)  
  sudo apt-get install libsuitesparse-dev  
  2、再下载、安装 Ceres  
  建议下载稳定版本 ceres  
  不要追求下载最新版本,因为最新版对编译器要求较高。比如 Ceres Solver 2.2 需要 C++17  
  编译器。我这里使用的是 ceres-solver-1.14.0  
  tar zxf ceres-solver-1.14.0.tar.gz  
  cd ceres-solver-1.14.0  
  mkdir build  
  cd build  
  cmake ..  
  make -j3  
  make test  # 可选,用于测试  
  sudo make install  
  3、测试是否正常  
  Ceres 自带有测试数据,我们在 build 目录输入 
  bin/simple_bundle_adjuster ../data/problem-16-22106-pre.txt 
   功能是用 DENSE_SCHUR 线性优化器迭代优化  
  成功运行后,输出如下所示,表示成功安装 ceres 
  
 VINS-Fusion 源码安装
 cd ~/vins_catkin_ws/src  
  git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git  
  cd ../  
  catkin_make  
  将工作空间添加到环境变量,这样就不用每次打开一个终端都要 source 一次了,可以一劳  
  永逸的解决环境问题  
  打开终端,执行  
  echo "source ~/vins_catkin_ws/devel/setup.bash" >> ~/.bashrc  
  #这样就不用每次打开一个新终端都要 source 一次了  
  相当于打开  gedit ~/.bashrc  在文件末尾添加  
  source ~/vins_catkin_ws/devel/setup.bash 
   然后在终端,输入  source ~/.bashrc 
  运行数据集
双目模式
 ROS 模式运行双目数据集,以 EuROC 为例  
  # 启动  
  roslaunch vins vins_rviz.launch  
  rosrun vins vins_node ~/vins_catkin_ws/src/VINS 
  Fusion/config/euroc/euroc_stereo_config.yaml  
  rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS 
  Fusion/config/euroc/euroc_stereo_config.yaml # 带闭环检测,可选  
  rosbag play ~/SLAM/DataSets/EuRoC/MH_03_medium.bag 
  单目+IMU 模式
 ROS 模式运行单目数据集,以 EuROC 为例  
  # 启动  
  roslaunch vins vins_rviz.launch  
  rosrun vins vins_node ~/vins_catkin_ws/src/VINS 
  Fusion/config/euroc/euroc_mono_imu_config.yaml  
  rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS 
  Fusion/config/euroc/euroc_mono_imu_config.yaml # 带闭环检测,可选  
  rosbag play ~/SLAM/DataSets/EuRoC/MH_03_medium.bag 
  双目+IMU 模式
 ROS 模式运行单目数据集,以 EuROC 为例  
  # 启动  
  roslaunch vins vins_rviz.launch  
  rosrun vins vins_node ~/vins_catkin_ws/src/VINS 
  Fusion/config/euroc/euroc_stereo_imu_config.yaml  
  rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS 
  Fusion/config/euroc/euroc_stereo_imu_config.yaml # 带闭环检测,可选  
  rosbag play ~/SLAM/DataSets/EuRoC/MH_03_medium.bag 
  D455 相机实际运行
 首先需要利用前面介绍的相机-IMU 标定方法提前标定好相机。  
  VINS-Fusion/config 文件夹下面有作者提供的很多配置文件,包括 realsense_d435i,我们复  
  制后改名为 realsense_d455 并修改其中的配置文件 
   
  cam0:T_cam_imu 表示的是 IMU 到相机 0 的变换矩阵,  
  body_T_cam0 表示相机 0 到 IMU 矩阵,所以它的值应该是 T_cam_imu 矩阵取逆  
  可以使用在线计算矩阵的逆 http://www.yunsuan.info/cgi-bin/matrix_inverse.py 
   
  source ~/realsense_catkin_ws/devel/setup.bash  
  标定参数数字和逗号之间不要有空格,否则可能会报错误  OpenCV Error: Parsing  
  error 
   准备好标定文件,路径改好,topic 改好 
  双目+IMU 模式
 启动相机  
  roslaunch realsense2_camera rs_camera.launch  
  #启动 rviz  
  roslaunch vins vins_rviz.launch  
  rosrun vins vins_node ~/vins_catkin_ws/src/VINS 
  Fusion/config/realsense_d455/realsense_stereo_imu_config.yaml  
  rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS 
  Fusion/config/realsense_d455/realsense_stereo_imu_config.yaml # 带闭  
  环检测,可选  
  参考:https://blog.csdn.net/qq_40186909/article/details/113104595 
  