OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 2712|回复: 1

INDEMIND双目视觉惯性模组运行VINS示例

[复制链接]
发表于 2019-1-7 17:03:03 | 显示全部楼层 |阅读模式
本帖最后由 INDEMIND 于 2019-1-7 17:12 编辑

一.VINS 系统

1.    VINS简介


VINS是香港科技大学开源的一个单目视觉惯导SLAM方案,2017年发表于《IEEETransactions on Robotics》。该方案是基于优化和滑动窗口的VIO系统,使用IMU预积分构建紧耦合框架,并且具备自动初始化,在线外参标定,重定位,闭环检测,以及全局位姿图优化功能。


2.    系统架构


系统主要分为五个部分:

1)     Measurement Preprocessing:

观测值数据预处理,包含图像数据跟踪IMU数据预积分

2)     Initialization 初始化:

包含单纯的视觉初始化和视觉惯性联合初始化

3)     Local Visual-Inertia BA and Relocalization:

局部BA联合优化和重定位,包含一个基于滑动窗口的BA优化模型

4)     Global Pose Graph Optimization:

全局图优化,只对全局的位姿进行优化

5)     Loop detection回环检测


具体系统框架如下:


3.     特性分析

VINS的精髓在于视觉与IMU的融合,规避了单一传感器的局限性,拓展了方案的场景适用性,并且视觉+IMU传感器优势互补,可以提供更好的定位惯导效果,其定位精度可以媲美OKVIS,并支持LINUX、ROS等平台。


VINS代码十分清晰,主要包含在两个文件中,分别是feature_tracker和vins_estimate,feature_tracker就像文件的名字一样,总体的作用是接收图像,使用KLT光流算法跟踪;vins_estimate包含相机和IMU数据的前端预处理(也就是预积分过程)、单目惯性联合初始化(在线的标定过程)、基于滑动窗口的BA联合优化、全局的图优化和回环检测等。


4.     依赖库


主要依赖的库只有OpenCV、Eigen、Ceres Solver、boost、Pangolin。


二.安装及调用


本次实例依然选用INDEMIND双目视觉惯性模组,该模组采用视觉+IMU的多传感器融合架构,可获取精准的图像及IMU数据,并依赖于微秒级时间同步机制与高精度的传感器标定方法,可为多种开源算法提供精准稳定的前端数据获取能力。


说明:本次Demo是基于INDEMIND双目视觉惯性模组采集的数据,离线运行而来。安装及调试教程基于Ubuntu 16,各位老兵可略过。


1.     下载VINS


说明:由于是离线运行在Ubuntu系统中,因此我们选用的是去除ROS平台支持的VINS系统,小伙伴们可按需下载。



2.     下载INDEMIND双目视觉惯性模组SDK


INDEMIND双目视觉惯性模组的SDK为开发者提供了丰富的开发工具与辅助,省去了开发者对相机的标定、数据同步等开发工作,加速开发进程。因此,我们直接根据自身操作系统直接下载INDEMIND双目视觉惯性模组的SDK即可,下载地址请浏览INDEMIND官方网站。


3.     使用SDK

创建SDK对象
  1. CIMRSDK* pSDK = new
  2. CIMRSDK();
复制代码
设置使用的 SLAM
  1. <blockquote>MRCONFIG config = { 0 };
复制代码
//获取模组标定信息
  1. CameraCalibrationParameter
  2. param;
复制代码
获取模组图像数据
  1. pSDK->RegistModuleCameraCallback(SdkCameraCallBack,NULL);
复制代码
获取 SLAM 结果
  1. pSDK->RegistModulePoseCallback(sdkSLAMResult,NULL);
复制代码
将param的参数写入文件中
  1. <blockquote>ofstream out("./datafile.txt");
复制代码
如上,写入相机内外参

释放资源
  1. pSDK->Release();delete pSDK;
复制代码


编译

安装 cmake
  1. sudo apt-get install cmake
复制代码
安装 google-glog +gflags
  1. sudo apt-get install libgoogle-glog-dev
复制代码
安装 BLAS & LAPACK
  1. sudo apt-get install libatlas-base-dev
复制代码
安装 SuiteSparse andCXSparse
  1. sudo apt-get install libsuitesparse-dev
复制代码
       编译器
       使用 Ubuntu 16.04 编译demo 程序需要使用 GCC5.4 版本,否则可能链接失败。
       使用 Ubuntu 18.04 编译 demo 程序需要使用 GCC7.3 版本,否则可能链接失败。

编译
  1. <p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US">cd build<o:p></o:p></span></p>

  2. <p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US">cmake ..<o:p></o:p></span></p>

  3. <p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US">make<o:p></o:p></span></p>
复制代码


执行

把刚才编译的可执行文件TestIndem 拷贝到刚才解压 SDK 的 lib 目录下的 1604 目录下,在 lib/1604 目录下使用 sudo ./TestIndem.sh 命令启动程序。

TestIndem和 TestIndem.sh 需要可执行权限。 使用命令chmod 777 TestIndem 和 chmod777 TestIndem.sh 进行修改。


为了提高系统稳定性,请运行时使用超级用户(root 权限)运行,或者使用 “sudo ./程序名” 运行,例如 DEMO 运行“sudo./TestIndem.sh”。


*注意:在 Ubuntu 18.04 上使用 GCC7.3 编译 demo 的时候,需要把 demo 里的 CMakeLists.txt 的1604 改成 1804 才能编译成功,编译成功后把
TestIndem 拷贝到 lib/1804 下运行。



回复

使用道具 举报

 楼主| 发表于 2019-1-7 17:05:01 | 显示全部楼层
4.     VINS参数设置及矫正
在estimator_node.cpp中添加去畸变命令
cv::fisheye::initUndistortRectifyMap(K_l,D_l,R_l,P_l.rowRange(0,3).colRange(0,3),cv::Size(cols_l,rows_l),CV_32FC1,M1l,M2l);

将去畸变后,获取到的P_l值传给/home/indemind/SDKbackup/indem/u/vins/src/config/euroc/euroc_config.yaml中的fx、fy、cx和cy
编译前要下载的库
  1.Ceres Solver
  2.Opencv 3.1
  3.Eigen 3.2.0
  4.boost
  5.Pangolin
编译
1. mv Remove_ROS_VINS src
2. ./generate.sh
执行
1.cd VINS_Workspace
2. ./src/vins_estimator/build/vins_estimator./src/config/euroc/euroc_config.yaml ./data/mav1/cam0/data./data/mav1/filename.txt ./data/mav1/imu0/data.csv

三.Demo演示

INDEMIND双目视觉惯性模组是专为计算机视觉技术研发应用而研发的双目惯性相机,模组采用“双目+IMU”多传感器融合架构,拥有微秒级时间同步机制,减少了传感器数据同步误差,可提供精准实时的1280*800@50FPS图像源与高频率IMU数据,为SLAM研发奠定了良好的前端数据基础。

在出厂时,INDEMIND还对双目视觉惯性模组进行了高精度的专业标定,减少了传感器装配误差,提升精度。并且,INDEMIND双目视觉惯性模组拥有完备的SDK开发工具及丰富的开发文档,无缝支持多种开源项目,节省开发者开发工作,详细SDK信息。
福利时间:

【双目惯性模组免费试用】,开发者可获得15天双目惯性模组免费试用期,反馈精彩内容(包括并不限于模组性能、项目体验、项目效果等),可将免费试用期延长至30天。更多活动信息关注INDEMIND微信公众号。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-3-28 16:43 , Processed in 0.013982 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表