小觅相机运行VINS-Fusion(一)
写在前面的话:
1.本文基于自己的另一篇博文win10+ubuntu16.04+ROS Kinetic
2.参考[4]是一篇非常好的帖子,但由于小觅托管在github的代码在不断更新,故需在某些步骤及语句做适当调整。
第一步:下载安装小觅的相机驱动
注1
注1
| 提示 | 处理 |
|---|---|
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例程源码
小觅将vins-fusion作为示例发布至github平台[2]。该平台包含两个主要分支:其中一个是docker_feat分支,在该分支中需配置docker运行环境;另一个是master主分支,在此主分支中无需额外配置即可使用。
对于编译操作而言,请参考[3]和[4]中的指导流程;不过需要注意的是,在此操作中可能需要稍作修改。
0.下载及编译
- 首先,在该VINS-Fusion Master分支的在线获取页面上直接下载压缩包。
- 在进行编译操作之前,请确保已正确安装ceres库(官方安装指南参考链接: ceres-solver 官方安装说明)。
- 最后步骤是创建一个新的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
注
注
注
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例程源码中的相机参数
第二步启动后发现出现异常运动轨迹!
这是正常现象因为还未对配置文件中的参数依据小觅相机进行相应的调整。
可参考文献[4]中有关相机参数获取方法及所需源文件的信息。
1 小型改动
使用./samples/_output/bin/tutorials/get_img_params获取左右相机的相关参数 并将这些参数分别保存至left_equ.yaml与right_equ.yaml两个配置文件中。
2. 大规模优化:Camera-IMU校准过程相关的帖子参考[5]-[7],此外下一篇文章《小觅相机VINS-Fusion(二)——Camera-IMU参数配置》。
参考文献及链接:
视觉SLAM技术——小觅相机对vins-mono算法的实践分析
https://github.com/slightech/MYNT-EYE-VINS-FUSION-Samples.git
知乎文章:一起快速上手 VINS-Fusion
使用小觅相机基础入门版本的VINS实现
Kalibr标定工具:基于Camera与IMU联合标定方法(MYNTEYE相机)
Kalibr方法论总结:聚焦于Camera-IMU标定问题
Kalibr详细指导:从理论到实践完成Camera-IMU标定
[5]. 小觅技术支持中心
小问题汇总
在尝试部署小觅相机时遇到问题(即执行./samples/_output/bin/api/camera_a), 报错提示未检测到设备。解决方案是插入小觅相机以解决问题。
注
注
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
在pip环境下遇到的问题是无法导入名为main的模块,请您尝试通过编辑位于usr/bin/目录中的pip文件来解决问题
处理固件安装问题
version of pandas 0.24 requires numpy version 1.6, but you will face numpy version 3 in your installation
