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

2023-05-16

写在前面的话:
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 foundsudo apt-get install ccache
Looking for linux/videodev2.h - not foundsudo apt-get install libv4l-dev
No package 'gstreamer-video-1.0' foundsudo 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' foundsudo apt-get install libavresample-dev
No package 'gtk+-3.0' foundsudo 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作为例程(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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小觅相机运行VINS-Fusion(一) 的相关文章

  • 第十篇,STM32串口蓝牙编程

    1 串口蓝牙概念 串口蓝牙是一个蓝牙模块 xff0c 内部有蓝牙模块和程序 xff0c 可以进行蓝牙通信 xff0c 同时提供一个串口接口 xff0c 通过串口可以配置蓝牙模块进行数据传输 2 使用串口3连接蓝牙模块 3 手机上安装蓝牙调试
  • LeetCode岛屿问题通用解决模板

    文章目录 前言第一题 xff1a 求岛屿的周长模板整理遍历方向确定边界重复遍历问题处理 模板解第一题第二题 xff1a 求岛屿数量第三题 xff1a 岛屿的最大面积第四题 xff1a 统计子岛屿第五题 xff1a 统计封闭岛屿的数目第六题
  • 第十四篇,STM32的CAN总线通信

    1 CAN总线的概念 CAN指的是控制器局域网网络 Controller Area Network xff0c 由德国博世汽车电子厂商开发出来 CAN使用差分信号 xff0c 具有较强的抗干扰能力和传输稳定性 CAN属于多主通信 xff0c
  • OpenCV图像处理学习十九,像素重映射cv::remap

    一 像素重映射概念 重映射就是把输入图像中各个像素按照制定的规则顺序映射到另外一张图像的对应位置上去 xff0c 形成一张新的图像 二 像素映射API函数接口 cv remap xff08 InputArray src 输入图像 Outpu
  • OpenCV图像处理学习二十一,直方图比较方法

    一 直方图比较 直方图比较是对输入的两张图像进行计算得到直方图H1与H2 xff0c 归一化到相同的尺度空间 xff0c 然后可以通过计算H1与H2的之间的距离得到两个直方图的相似程度 xff08 每张图像都有唯一的直方图与之对应 xff0
  • 嵌入式FreeRTOS学习九,任务链表的构成,TICK时间中断和任务状态切换调度

    一 tskTaskControlBlock 函数结构体 在tskTaskControlBlock 任务控制块结构体中 xff0c 其中有任务状态链表和事件链表两个链表成员 xff0c 首先介绍任务状态链表这个结构 xff0c 这个链表通常用
  • SOAP传输协议

    一 HTTP传输协议 超文本传输协议 xff08 HyperText Transfer Protocol xff0c 缩写 xff1a HTTP xff09 xff0c 它是基于请求 响应的模式协议 xff0c 客户端发出请求 xff0c
  • ONVIF简介

    一 什么是ONVIF ONVIF规范描述了网络视频的模型 接口 数据类型以及数据交互的模式 并复用了一些现有的标准 xff0c 如WS系列标准等 ONVIF规范的目标是实现一个网络视频框架协议 xff0c 使不同厂商所生产的网络视频产品 x
  • gsoap工具生成onvif设备搜索(remotediscovery)代码框架

    什么是gsoap工具 xff1f gSOAP 提供了两个工具来方便开发人员使用 C C 43 43 语言快速开发Web 服务应用 xff0c 通过 gSOAP 提供的这两个工具 xff0c 开发人员可以快速生成服务端与客户端代码框架 xff
  • Latex之给字符上加横线、波浪等

    Latex 前几天想在 x x x 上加波浪号 xff0c 一时间忘记怎么打 xff0c 现在记录下来 xff0c 以后好查阅 加 号 xff1a hat x 加横线 xff1a overline x 加宽 xff1a widehat x
  • 数据结构笔记-2(线性表)

    线性表 2 1 线性表 1 定义 是零个或多个具有相同类型的数据元素的有序数列 xff1b xff08 长度等于零的线性表为空表 xff09 非空线性表通常记为 xff1a L xff1d a 1 xff0c a 2 xff0c xff0c
  • 数据结构-6(图)

    图 图的逻辑结构 图的定义 xff1a 图是由顶点的有穷非空集合和顶点之间边的集合组成 xff0c 通常表示为 xff1a G 61 V xff0c E 其中 xff1a G表示一个图 xff0c V是图G中顶点的集合 xff0c E是图G
  • 【leetcode常见面试题】螺旋矩阵解题思路

    文章目录 螺旋矩阵解题思路先找行进路线找每条路线的结束位置再找每条路线的结束位置模拟行走 螺旋矩阵 II总结 螺旋矩阵 解题思路 本题可以采用模拟的方式 xff0c 设4种行走方向 xff0c 如下图 xff1a 先找行进路线 4个方向的行
  • C++面向对象程序设计学习心得

    C 43 43 面向对象程序设计学习心得 经过几周c 43 43 面向对象程序设计的学习 xff0c 对面向对象程序设计有了一些了解 递归 简单地讲 xff0c 递归就是程序直接或间接调用本身的编程技巧 xff0c 通过把一个不能或不好解决
  • STL学习心得

    STL概述 STL组件 1 容器 xff08 Container xff09 xff0d 管理某类对象的集合 2 迭代器 xff08 Iterator xff09 xff0d 在对象集合上进行遍历 xff08 注意 xff1a 这些集合可能
  • 安装nodejs和vue出现问题

    安装nodejs国内镜像时报错 npm install g cnpm registry 61 https registry npm taobao org不知道这是啥错误 xff0c 怎么改啊 xff1f 安装vue 从官网点击下载 下载后点
  • Jetson nano/nx通过网线连接电脑实现远程控制

    Jetson nano nx通过网线连接电脑实现远程控制 摘要1 nano nx桌面共享设置2 安装dconf editor解除加密3 自启VNC server4 网络共享5 获取IP地址6 安装PuTTy7 安装VNC Viewwer8
  • 一文解决MySQL突击面试,关键知识点总结

    文章目录 MySQL重要知识点回顾一 索引1 为什么需要索引2 索引的结构3 避免索引失效3 1 联合索引不满足最左匹配原则3 2 隐式转换3 3 like查询3 4 索引列存在运算或者使用函数3 5 优化器 4 执行计划4 1 type4
  • 51单片机应用篇-- --数码管60秒计时,独立按键可调

    开篇先说一句废话 本旺名字叫萨摩耶 xff0c xff0c Please 叫我旺财 xff0c xff0c xff0c 哈哈 xff0c 招财进宝嘛 xff01 缘由 本来按照我的学习计划 xff0c 我现在应该是单片机的学习过程 xff0
  • 【ESP32+freeRTOS学习笔记之“ESP32环境下使用freeRTOS的特性分析(3-多核环境下的调度)”】

    目录 1 不同核心上分别调度2 tick中断3 关于抢占4 关于同优级的任务按时间片调度5 空闲任务6 调度程序暂停7 启动和终止8 禁用中断9 总结 Vanilla FreeRTOS调度器是具有时间切片的固定优先级抢占调度器 xff0c

随机推荐