OpenVINS 配置,并用自己的设备跑起来~

2023-05-16

OpenVINS 下载编译

mkdir -p ~/workspace/catkin_ws_ov/src/
cd ~/workspace/catkin_ws_ov/src/
git clone https://github.com/rpng/open_vins/
cd ..
catkin build

如果提示: catkin command not found 那么安装:

sudo apt-get install python-catkin-tools

接着catkin build
提示找不到 Eigen/Eigen,具体提示如下:

In file included from /home/damon/workspace/catkin_ws_ov/src/open_vins/ov_core/src/sim/BsplineSE3.cpp:21:0:
/home/damon/workspace/catkin_ws_ov/src/open_vins/ov_core/src/sim/BsplineSE3.h:26:23: fatal error: Eigen/Eigen: No such file or directory

可能是我的Eigen版本太老了,于是去Eigen官网下载最新版本,解压到OpenVINS路径下,我这里的路径是"/home/damon/workspace/catkin_ws_ov/src/open_vins/Eigen"
然后依次修改ov_core ,ov_eval,ov_msckf等包的CMakelists.txt

具体是将${Eigen_INCLUDE_DIRS}替换成"/home/damon/workspace/catkin_ws_ov/src/open_vins/Eigen"

弄完之后catkin build
看到这里,你就编译成功了!
在这里插入图片描述

现在,跑跑数据集

修改launch文件

vim ~/workspace/catkin_ws_ov/src/open_vins/ov_msckf/launch/pgeneva_eth.launch

修改两处,一个是.bag文件路径,另一个是Ground truth文件的路径

 <param name="path_bag"    type="string" value="/media/damon/Data/EuRoC/MH_01_easy.bag" />
 <param name="path_gt"     type="string" value="/media/damon/Data/EuRoC/MH_01_easy/mav0/state_groundtruth_estimate0/data.csv" />
~/workspace/catkin_ws_ov
source devel/setup.bash
#开一终端
roscore
#再开一终端
rosrun rviz rviz #在左上角Open config 选择~/workspace/catkin_ws_ov/src/open_vins/ov_msckf/launch/display.rviz
#还开一终端
roslaunch ov_msckf pgeneva_eth.launch 

也可以在launch文件下加一行

<node type="rviz" name="rviz" pkg="rviz" args="-d $(find ov_msckf)/launch/display.rviz" />

这样就不用rosrun rviz了

这是双目msckf在MH_01_easy的结果,蓝线Ground truth,绿线是msckf
在这里插入图片描述

用Realsense D435i跑起来

在open_vins/ov_msckf/launch 文件夹下创建一个.launch文件,我这里创建一个d35i.launch,具体内容如下(参考官网做更改):

这里的相机内外参需要自己标定,有很多种标定方法.google去吧~


    <node name="run_serial_msckf" pkg="ov_msckf" type="run_serial_msckf" output="screen">
    
        <!-- bag topics -->
        <!-- 数据topic,包含两个相机和一个imu数据topic -->
        <param name="topic_imu"      type="string" value="/camera/imu" />        
        <param name="topic_camera0"  type="string" value="/camera/infra1/image_rect_raw" />
        <param name="topic_camera1"  type="string" value="/camera/infra2/image_rect_raw" />
    
        <!-- bag parameters -->
        <!-- 修改数据集的路径,bag_start是开始时间,bag_durr是持续时间,-1是到最后 -->
        <param name="path_bag"    type="string" value="/home/damon/d435i1.bag" />
        <param name="bag_start"   type="int"    value="0" />
        <param name="bag_durr"    type="int"    value="-1" />
    
        <!-- world/filter parameters -->
        <!-- 修改 max_cameras可以转换成单目或者双目 -->
        <param name="max_clones"             type="int"    value="11" />
        <param name="max_slam"               type="int"    value="0" />
        <param name="max_cameras"            type="int"    value="2" />
        <param name="feat_representation"    type="string" value="GLOBAL_3D" />
        <param name="init_window_time"       type="double" value="0.5" />
        <param name="init_imu_thresh"        type="double" value="2.0" />
        <rosparam param="gravity">[0.0,0.0,9.81]</rosparam>
    
        <!-- tracker/extractor parameters -->
        <param name="use_klt"          type="bool"   value="true" />
        <param name="fast_threshold"   type="int"    value="10" />
        <param name="grid_x"           type="int"    value="5" />
        <param name="grid_y"           type="int"    value="3" />
        <param name="min_px_dist"      type="int"    value="10" />
        <param name="num_pts"          type="int"    value="400" />
    
        <!-- sensor noise values / update -->
        <param name="up_msckf_sigma_px"            type="double"   value="1" />
        <param name="up_msckf_chi2_multipler"      type="double"   value="1" />
        <param name="gyroscope_noise_density"      type="double"   value="1.6968e-04" />
        <param name="gyroscope_random_walk"        type="double"   value="1.9393e-05" />
        <param name="accelerometer_noise_density"  type="double"   value="2.0000e-3" />
        <param name="accelerometer_random_walk"    type="double"   value="3.0000e-3" />
    
        <!-- camera intrinsics -->
        <param name="cam0_is_fisheye" type="bool" value="false" />
        <param name="cam1_is_fisheye" type="bool" value="false" />
        <rosparam param="cam0_k">[458.654,457.296,367.215,248.375]</rosparam>
        <rosparam param="cam0_d">[-0.28340811,0.07395907,0.00019359,1.76187114e-05]</rosparam>
        <rosparam param="cam1_k">[457.587,456.134,379.999,255.238]</rosparam>
        <rosparam param="cam1_d">[-0.28368365,0.07451284,-0.00010473,-3.55590700e-05]</rosparam>
    
        <!-- camera extrinsics -->
        <rosparam param="T_C0toI">
            [
            0.0148655429818, -0.999880929698, 0.00414029679422, -0.0216401454975,
            0.999557249008, 0.0149672133247, 0.025715529948, -0.064676986768,
            -0.0257744366974, 0.00375618835797, 0.999660727178, 0.00981073058949,
            0.0, 0.0, 0.0, 1.0
            ]
        </rosparam>
        <rosparam param="T_C1toI">
            [
            0.0125552670891, -0.999755099723, 0.0182237714554, -0.0198435579556,
            0.999598781151, 0.0130119051815, 0.0251588363115, 0.0453689425024,
            -0.0253898008918, 0.0179005838253, 0.999517347078, 0.00786212447038,
            0.0, 0.0, 0.0, 1.0
            ]
        </rosparam>
    
    </node>
    
    <node type="rviz" name="rviz" pkg="rviz" args="-d $(find ov_msckf)/launch/display.rviz" />
    
</launch>

录制.bag文件

rosbag record -O ~/d435i1.bag /camera/imu /camera/infra1/image_rect_raw /camera/infra2/image_rect_raw
roslaunch ov_msckf euroc.launch 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenVINS 配置,并用自己的设备跑起来~ 的相关文章

  • ROS下运行ORB-SLAM2双目Stereo(官方数据集)

    写在前面 xff1a Ubuntu版本 ROS版本 opencv版本一定要对应 xff01 xff01 xff01 否则后边编译和运行过程中会有许多问题 xff0c 配环境配到怀疑人生 xff01 我的实验环境为 xff1a ubuntu1
  • Arduino学习总结(未完待续)

    文章目录 Arduino 学习硬件认识Arduino UNO 主要元器件Arduino 端口 软件认识Arduino IDEArduino 程序架构程序基础内容简述数据类型时间控制 计时函数延时函数 串口通信 x1f4de 端口间通信的类型
  • rosdep update 超时问题解决

    span class token operator lt span br span class token operator gt span reading span class token keyword in span sources
  • gRPC学习入门

    grpc框架 参考资料 xff1a 官方文档教学grpc go入门https www cnblogs com hongjijun p 13724738 html GRPC是Google公司基于Protobuf开发的跨语言的 高性能的 通用的
  • 学习随笔#13 模型预测控制(MPC)

    MPC基本概念 模型预测控制 xff08 MPC xff09 是指通过模型来预测系统在某一未来时间段内的表现来进行优化控制 MPC多用于数位控制 xff0c 因此使用系统的离散型状态空间表达形式 xff0c 即 x k 43 1
  • C++ 关于编译期的优化处理

    C 43 43 关于编译期的优化处理 一 define WIN32 LEAN AND MEAN 的作用 1 xff1a 为什么要 define WIN32 LEAN AND MEAN 答案很简单 xff0c 因为要包含尽量精简的内容 xff
  • 数据结构与算法(一)复杂度分析(上):时间复杂度和空间复杂度

    复杂度分析是整个算法学习的精髓 xff0c 只要掌握了它 xff0c 数据结构和算法的内容基本上就掌握了一半 为什么需要复杂度分析 xff1f 你可能会有些疑惑 xff0c 我把代码跑一遍 xff0c 通过统计 监控 xff0c 就能得到算
  • 输入和输出缓冲区更新(试过成功)

    原文 xff1a http blog csdn net u010064842 article details 8769229 1 区分概念 什么是缓冲区 缓冲区又称为缓存 xff0c 它是内存空间的一部分 也就是说 xff0c 在内存空间中
  • 数据结构与算法(一)复杂度分析(下):不同情况下的复杂度变化

    最好 最坏情况时间复杂度 span class token comment n表示数组array的长度 span span class token keyword int span span class token function fin
  • Windows开发:鼠标操作

    本文为作者原创 xff0c 转载请注明出处 一般情况下 xff0c Windows平台下可以使用mouse event函数实现鼠标操作 我们这里使用更新后的SendInput函数 span class token keyword bool
  • RawInput 输入流程【Windows操作系统】

    转载请注明出处 除了键盘和鼠标以外 xff0c 还有很多其他的用户输入设备 xff0c 比如手柄 触摸屏 麦克风等等 xff0c 这些设备统称为人机接口设备HID xff08 Human Interface Device xff09 xff
  • Win10 键盘输入法消失后如何恢复

    原创文章允许转载 xff0c 转载请著明出处 xff0c 不得用于商业用途 xff0c 否则保留法律追责权力 一般Win10 系统在不断地更新过程中 xff0c 会造成一部分数据不同步的问题 xff0c 有时候会发现设置好的英文输入法不见了
  • Windows10安装WDK

    安装包下载 xff08 5 11 2022 xff09 官网地址 xff1a 下载 Windows 驱动程序工具包 WDK Windows drivers Microsoft Docs 点击蓝体字样即可下载 问题汇总 问题1 xff1a 安
  • Windows 无法打开启动配置数据存储拒绝访问

    在我们输入一些命令时会遇到如下报错 xff0c 一般情况下是由于运行cmd的账户权限导致的 方法1 xff1a 1 在系统盘C windows system32 xff08 当前系统安装所在磁盘盘符 xff09 下查找到cmd命令提示符可执
  • 人机交互设备(HID)

    人机交互设备 xff08 HID xff09 是一个设备类型 xff0c 为了使用通用USB接口支持HID设备来代替PS 2接口类型的设备 xff0c 例如键盘 鼠标和游戏控制器等等 在 HID 之前 xff0c 设备只能使用规定好的鼠标或
  • ubuntu服务器安装可视化桌面(Gnome)

    作者 xff1a 锕琅 原文链接ubuntu服务器安装可视化桌面 xff08 Gnome xff09 知乎 目录 基础环境配置和安装 1 切换用户为Root 2 更新获取软件及版本信息 3 安装VNC4Server 4 启动VNC Gnom
  • CocosCreator新手教程——cc.Node基础常用接口(API)

    CocosCreator开发笔记 cc Node基础常用接口 xff08 API xff09 一 常用属性 cc Class extends cc Component properties sprite default null type
  • 终端命令行新手教程——shell脚本

    终端命令基础 摘自 xff1a 菜鸟教程 本文精简自原文章 xff0c 总结了常用部分 xff0c 如需深入学习请点击上方链接 一 运行环境 打开文本编辑器 可以使用 vi vim 命令来创建文件 xff0c 新建一个文件 test sh
  • 面试:如果程序崩溃,可能的原因是什么?

    You are given the source to an application which crashes when it is run After running it ten times in a debugger you fin
  • Mac 安装 nodejs方法——新手教程

    访问nodejs官网 xff0c 点击蓝色选框区域稳定版 xff0c 并下载官网链接 我们这里选择了右面的12 8 1 current xff0c 点击下载 双击刚下载的文件 xff0c 按步骤默认安装就行 安装完成后打开终端 xff0c

随机推荐

  • module.exports用法

    module exports 对象是由模块系统创建的 在我们自己写模块的时候 xff0c 需要在模块最后写好模块接口 xff0c 声明这个模块对外暴露什么内容 xff0c module exports 提供了暴露接口的方法 转自博客 1 返
  • 八 关于电机驱动芯片L298N使用心得

    车模套件的选择 当时由于是第一次做某个东西 xff0c 所以购买车模的时候不是很有信心 xff0c 就买了一个比较廉价一点的 xff0c 事实证明一分价钱一分货 xff0c 组装的时候发现轮子有点松动 xff0c 这就意味着跑的时候 xff
  • 解决Ubuntu网络调试助手安装后无法打开问题

    通常很多初学者在学习和开发网络相关程序时 xff0c 基本上都会用到NetAssist这个网络调节助手 xff0c 该工具简洁实用 xff0c 对于初学网络编程的人员特别友好 xff0c windows系统下该调节助手在任何系统版本中都能正
  • IP地址与二进制的转换

    以192为例 以192 168 100 7为例 192的二进制为11000000 168的二进制为10101000 100的二进制为01100100 7的二进制为00000111 192 168 100 7的二进制为11000000 101
  • 根据子网掩码求最大主机数(面试被问过)

    如子网掩码255 255 240 0 化成二进制11111111 11111111 11110000 00000000 子网号中里面的1代表网络号 xff0c 0代表主机号 xff0c 有12个0 xff0c 即最大主机数为2的12次方 又
  • 麒麟系统安装bin类型文件

    在终端 xff08 windows的cmd xff09 运作命令修改文件属性 xff0c 使其可以被执行 chmod a 43 x file bin 运行 sudo file bin
  • 深度和追踪最好use the D415 and the T265 in parallel.

    All SLAM solutions and there are many good ones are limited by the information they receive It is possible to run host b
  • 树莓派上编译安装realsense经验

    1 树莓派系统一定要用realsense官方指定的ubuntu mate xff0c 树莓派B3 43 只能装18 0 4 xff0c 树莓派B3和以前的只能装16 0 4 2 不要妄想装realsense的非编译版本 xff08 官网说打
  • 树莓派安装realsense自己的步骤梳理

    树莓派3B 43 装上ubuntu 18 0 4的内核亲测是 4 15的 xff0c 跟ubuntu官网一致 目前最新的也就是4 15 xff0c 不知道realsense官网瞎扯什么4 16啥的干啥 xff1f 都还没有的东西 xff0c
  • Opencv快速入门(C++版)

    Opencv快速入门 C 43 43 版 Excerpt Opencv快速入门 C 43 43 版 xff09 前言1 图像的读取与显示所使用的API接口 xff1a 代码演示 xff1a 2 图像色彩空间转换所使用的API接口 xff1a
  • 搭建elsticsearch集群遇到的错误

    错误一 xff1a 报错with the same id but is a different node instance解决办法 原因 xff1a 是因为复制虚拟机时 xff0c elsticsearch时 xff0c 将elsticse
  • PX4无人机控制

    1 PX4安装 安装主要是配置环境 xff0c 我是按照官网配置的 xff1a PX4 自动驾驶用户指南 特别是对于英语不好的我来讲 xff0c 配置了好几天也没有配置成功 找到了比较靠谱的参考文献 xff1a Ubuntu18 04配置搭
  • 吃透计算机组成原理

    文章目录 博主杂谈计算机概论计算机发展历程计算机的分类计算机的结构体系冯诺依曼体系现代计算机体系 计算机的层次与编程语言程序翻译与程序解释计算机层次 计算机计算单位与字符编码计算机计算单位计算机字符编码字符编码种类与历程 计算机内部结构计算
  • 远程显示docker运行结果

    查找本地IP 服务器中的docker环境操作步骤 xff1a span class token function export span DISPLAY span class token operator 61 span 10 100 12
  • 笔试——Linux操作系统

    1 Linux内核的组成部分 Linux内核主要由五个子系统组成 xff1a 进程调度 内存管理 虚拟文件系统 网络接口 进程间通信 xff1b 2 Linux系统的组成部分 主要是4个部分 xff1a 内核 shell 文件系统和应用程序
  • WIN11打开照片 浏览器 office等软件启用硬件加速后总黑屏

    解决 WIN11打开照片 浏览器 office等软件启用硬件加速后总黑屏 问题描述 xff1a 电脑为暗影精灵6 xff08 OMEN 6 xff0c 在更新intel显卡驱动程序后或者更新win11后 xff08 自动更新最新驱动 xff
  • linux执行程序运行命令失败,提示找不到命令

    安装虚拟机时提示找不到命令 sudo VMware Workstation Full 17 0 0 20800274 x86 64 bundle xff1a 找不到命令 经检查 xff0c sudo命令正常 xff0c 该脚本文件的确存在于
  • 用自己的设备(realsense d435i)跑VINS-Fusion 还是有一些坑

    操作环境 设备 xff1a MacBook pro 2019 xff0c realsense d435i 系统 xff1a Ubuntu 16 04 lts 准备工作 标定 首先标定摄像头 xff0c 这里用kalibr对摄像头和imu进行
  • realsense d435i获取与rgb图像对应的深度值

    设置 realsense ros 的rs camera launch文件 lt arg name 61 34 align depth 34 default 61 34 true 34 gt 就能得到与图像对应的深度图 比如rgb对应的深度图
  • OpenVINS 配置,并用自己的设备跑起来~

    OpenVINS 下载编译 span class token function mkdir span p workspace catkin ws ov src span class token function cd span worksp