小觅相机运行VINS-Fusion(一)

写在前面的话:
1.本文基于另一篇文章win10+ubuntu16.04+ROS Kinetic
2.参考[4]是一篇非常好的帖子,但由于小觅托管在github的代码在不断更新,故需在某些步骤及语句做适当调整。

第一步:下载安装小觅的相机驱动

1. 安装opencv:官方链接–OpenCV Installation in Linux
【注1】:卡在IPPICV下载。解决方法是先离线下载,然后修改cmake文件并指出文件的保存位置。具体步骤参考帖子:opencv 解决ippicv下载问题
"file:///home/changshenxu/"
【注2】:编译中的一些提示及处理(尽可能地解决了大部分提示,并未全部解决)

提示 处理
looking for ccache --not found sudo apt-get install ccache
Looking for linux/videodev2.h - not found sudo apt-get install libv4l-dev
No package 'gstreamer-video-1.0' found sudo apt-get install libgstreamer-plugins-base1.0-dev
sudo apt-get install libgstreamer1.0-dev
Looking for sys/videoio.h - not found 待解决(据说这个不是错误,且opencv会根据依赖自动调整自己的功能)
No package 'libavresample' found sudo apt-get install libavresample-dev
No package 'gtk+-3.0' found sudo apt-get install libgtk-3-dev

2. 安装驱动
参考[1]的步骤进行即可(仅参考驱动安装部分)。

git clone https://github.com/slightech/MYNT-EYE-S-SDK.git
cd   //  是指MYNT-EYE-S-SDK路径
make init
make install  //最终,默认会安装在 /usr/local 目录
make samples
make tools

./samples/_output/bin/api/camera_a // 测试!

同时,接下来需要使用ROS的接口,继续进行如下编译:

make ros

source wrappers/ros/devel/setup.bash
echo "source ~/MYNT-EYE-S-SDK-2.3.8/wrappers/ros/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

roslaunch mynt_eye_ros_wrapper display.launch  // 测试!

第二步:下载编译小觅的vins-fusion例程源码

小觅将vins-fusion作为例程(samles)托管在了github上[2]。这里有两个分支,分支docker_feat需要安装docker,分支master则不需要(使用该分支)。
下载编译使用分支master,可以参考[3],[4]流程,命令需要略作调整。

0.下载及编译

  • 首先,在该VINS-Fusion Master分支链接直接通过网页下载方式,下载压缩包。
  • 在编译之前,安装依赖ceres。官方ceres-solver-installation链接
  • 最后,新建一个ROS工作空间,并将VINS_Fusion解压缩放在~/MYNT-EYE_ws/src目录下。使用如下命令编译:
cd ~/MYNT-EYE_ws
catkin_make

source devel/setup.bash
echo "source ~/MYNT-EYE_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

【注】:catkin_make提示Could not find a package configuration file provided by "cv_bridge"以及Could not find a package configuration file provided by "image_geometry",(虽然我是安装了完整版ROS)。
解决方法:使用如下命令再安装提示中的两个包,

sudo apt-get install ros-kinetic-cv-bridge 
sudo apt-get install ros-kinetic-image-geometry

1.运行MYNT-EYE-S-SDK驱动中的 mynteye 节点

cd (local path of MYNT-EYE-S-SDK)
source ./wrappers/ros/devel/setup.bash //如果已添加到`./bashrc`,此句可省略
roslaunch mynt_eye_ros_wrapper vins_fusion.launch

2.开另一个终端,运行例程MYNT-EYE-FUSION-Sample的vins节点

cd (local path of MYNT-EYE-Fusion-Sample)
source ./devel/setup.bash //同理,此句可省略
roslaunch vins mynteye-s-stereo-imu.launch 

第三步:修改vins-fusion例程源码中的相机参数

第二步运行起来后,发现轨迹跑飞了!
这是正常现象,因为我们还未将config文件中的参数依据自己的小觅相机做修改。
相机参数的获取方法以及所需修改的源文件,参考[4]!
1.小修改
使用./samples/_output/bin/tutorials/get_img_params获取左右相机的k2,k3,k4,k5,mu,mv,u0,v0参数,并修改left_equ.yamlright_equ.yaml

2.大修改:Camera-IMU重新标定
相关的帖子参考[5]-[7],及下一篇文章小觅相机运行VINS-Fusion(二)——Camera-IMU参数标定

参考文献及链接:

[1]. 视觉SLAM——小觅相机实测vins-mono步骤
[2]. https://github.com/slightech/MYNT-EYE-VINS-FUSION-Samples.git
[3]. 小觅在知乎上的帖子一起快速上手 VINS-Fusion
[4]. 使用小觅相机标准入门版运行vins
[5]. Kalibr标定工具:Camera+IMU联合标定(MYNTEYE相机)
[6]. Kalibr 之 Camera-IMU 标定 (总结)
[7]. Kalibr标定camera-IMU详细步骤

[5]. 小觅技术支持中心

小问题汇总

1.测试小觅相机(即执行./samples/_output/bin/api/camera_a)时报错,未检测到设备。
解决:要插上小觅相机!

2.git clone下载Ceres库时没有速度。
【注】:该Ceres库是VINS的依赖;小觅相机的驱动仅依赖OpenCV,并不依赖此项。
解决:使用浏览器在它的官网上下载release版本1.14.0;再继续后续步骤即可。

3.git clone下载VINS-Fusion时,总是出现如下错误提示:
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
解决:出现此问题原因 http缓存不够或者网络不稳定等。使用如下命令加大缓存。
git config --global http.postBuffer 524288000

4.pip问题,ImportError: cannot import name main
解决:修改 usr/bin/ 目录下的pip文件

5.固件安装问题。
解决:下载缺失的固件(网址如下),并拷贝到相应位置。
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
sudo cp **.bin /lib/firewarm/…

6.pandas 0.24.2 has requirement numpy>=1.12.0, but you’ll have numpy 1.11.0
解决:更新到指定版本 sudo pip install numpy==1.12.0

你可能感兴趣的:(----------小觅相机)