写在前面的话:
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 <sdk> // <sdk> 是指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作为例程(samles)托管在了github上[2]。这里有两个分支,分支docker_feat需要安装docker,分支master则不需要(使用该分支)。
下载编译使用分支master,可以参考[3],[4]流程,命令需要略作调整。
0.下载及编译
~/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
第二步运行起来后,发现轨迹跑飞了!
这是正常现象,因为我们还未将config文件中的参数依据自己的小觅相机做修改。
相机参数的获取方法以及所需修改的源文件,参考[4]!
1.小修改
使用./samples/_output/bin/tutorials/get_img_params
获取左右相机的k2,k3,k4,k5,mu,mv,u0,v0
参数,并修改left_equ.yaml
和right_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