INDEMIND_TECH
泡芙2级
泡芙2级
  • UID346
  • 粉丝5
  • 关注0
  • 发帖数7
阅读:590回复:0

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

楼主#
更多 发布于:2019-01-07 17:19
一.VINS 系统

1. VINS简介

VINS是香港科技大学开源的一个单目视觉惯导SLAM方案,2017年发表于《IEEE Transactions 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回环检测

具体系统框架如下:

图片:969375-20170618123111056-957906457.png



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

下载地址:https://github.com/heguixiang/Remove_ROS_VINS

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

VINS-Mono下载地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono

VINS-Mobile下载地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mobile

图片:微信截图_20190107120747.png


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

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

下载地址:http://indemind.cn/sdk.html

图片:微信截图_20181213144325.png



3.使用SDK

创建SDK对象
CIMRSDK* pSDK = new CIMRSDK();

设置使用的 SLAM
MRCONFIG config = { 0 };
config.bSlam = true; //true 开启 SLAM,false 不开启 SLAM

//获取模组标定信息
CameraCalibrationParameter param;

获取模组图像数据
pSDK->RegistModuleCameraCallback(SdkCameraCallBack,NULL);

获取 SLAM 结果
pSDK->RegistModulePoseCallback(sdkSLAMResult,NULL);

将param的参数写入文件中
ofstream out("./datafile.txt");
param = pSDK->GetModuleParams();//查询模组标定信息
out<<"param.width: "<<param._width<<std::endl; //图像宽
out<<"param.width: "<<param._height<<std::endl; //图像高
out<<"param.width: "<<param._channel<<std::endl;//通道数

如上,写入相机内外参

释放资源
pSDK->Release();delete pSDK;

编译

安装 cmake
sudo apt-get install cmake

安装 google-glog + gflags
sudo apt-get install libgoogle-glog-dev

安装 BLAS & LAPACK
sudo apt-get install libatlas-base-dev

安装 SuiteSparse and CXSparse
sudo apt-get install libsuitesparse-dev

编译器
使用 Ubuntu 16.04 编译 demo 程序需要使用 GCC5.4 版本,否则可能链接失败。
使用 Ubuntu 18.04 编译 demo 程序需要使用 GCC7.3 版本,否则可能链接失败。

编译
cd build
cmake ..
make

执行
把刚才编译的可执行文件 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 下运行。

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信息,请参考:http://indemind.cn/sdk.html

福利时间:

图片:微信图片_20190107152034.jpg

【双目惯性模组免费试用】,开发者可获得15天双目惯性模组免费试用期,反馈精彩内容(包括并不限于模组性能、项目体验、项目效果等),可将免费试用期延长至30天。更多活动信息关注INDEMIND微信公众号或戳:https://u.eqxiu.com/s/GIfts1hn

最新喜欢:

happybaolianghappyb...
游客

返回顶部