技术分享 | 带你具体部署VINS_FUSION_GPU版本

2023-05-16

前期准备工作已经完成,接下来我们就准备VINS在NX的落地。 1.下载源码编译 首先VINS_gpu版本需要引入OpenCV CUDA版本的加速,由于我们的NX镜像已经安装好CUDA,这里就不在赘叙,需要的自行google查找资料。下面开始安装VINS源码。 mkdir -p vins_gpu/src cd vins_gpu/src git clone https://github.com/pjrambo/VINS-Fusion-gpu.git 下载完之后,需要更改vins_estimator/CMakeLists.txt,20行左右需要把OpenCV路径改成你自己的路径。还需要更改的有 loop_fusion/CMakeLists.txt,同样也需要更改路径。更改完之后,开始编译。 cd .. catkin_make 如果OpenCV CUDA环境安装不对,这里就会报错。

2.更改配置参数 file 注意官方提供的参数里面没有D435i的配置参数,需要自己依葫芦画瓢。 1代表打开,0表示关闭。 那我就以我配置的yaml文件为例 需要更改自己实际订阅IMU以及双目图像发布话题以及输出路径。 file 这里的矩阵涉及IMU和相机的相对变换。可以由之前的联合标定得到。注意左右目的顺序。 file file IMU的数据可以由之前的标定得到。 file 下面的参数意思是在线估计IMU的相机之间的时间差,虽然说Intel说D435i已经做好硬件同步,但是用Kalibr标定出来还是有0.0015左右的时间误差。 file

3.启动VINS 前期的参数配置工作完成后,我们就可以启动VINS 3.1启动 D435i 需要修改一下D435i的发布频率,建议为15HZ,这样NX上不会有较大的延迟。路径还是你自己安装realsense_ros的路径。比如我自己是安装在桌面上。 file roslaunch realsense2_camera rs_camera.launch //启动D435i 需要查看下D435i是否发布IMU数据,这里主要是XYZ三个轴的线速度。 rostopic echo /camera/imu 3.2启动VINS rosrun vins vins_node +这里是你自己的D435i配置文件的路径 比如我自己是 rosrun vins vins_node
/home/amov/vins_gpu/src/VINS-Fusion-gpu-master/config/realsense/realsense1.yaml 可以显示出当前位姿信息。 file roslaunch vins vins_rviz.launch //启动RVIZ 启动完之后,我们可以拿着飞机跑一圈,看看定位精度以及延时。如果没有问题我们就可以接入Prometheus。

4.接入Prometheus 4.1在Prometheus/Modules/control/src文件夹中修改px4_pos_estimator.cpp,主要修改内容如下: 回调函数中,主要是VINS发布数据格式为YXZ,而Prometheus需要ENU,所以这里做一个变换。VINS的四元数虚部在前,这里也需要调整下。 file 4.2修改Amov_lab/src/P450_expriments/launch_basic 中的p450_vio_onboard.launch的启动文件。 这里主要是修改位姿数据来源,我们不再依赖T265。 file 4.3最后我们修改主函数里面的订阅话题 file

5.启动VINS和Prometheus roslaunch realsense2_camera rs_camera.launch rosrun vins vins_node + (配置文件路径,即我们放D435i配置文件的路径,具体应该是在VINS 包下面) roslaunch p230_expriments p230_vio_onboard.launch

我们查看下rqt_graph,可以看到VINS发布的位姿已经被px4_pos_estimator订阅,类似于之前的T265发布的 odom/sample,通信链路正常。 file 并且我们可以看到终端可以正确打印位姿数据,即代表VINS接入Prometheus成功。 file file 至此,我们已经成功把VINS接入到Prometheus中,那就开启我们的飞行之旅吧。 阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!

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

技术分享 | 带你具体部署VINS_FUSION_GPU版本 的相关文章

  • 二叉树(C语言实现)——链式存储结构

    include lt stdio h gt include lt stdlib h gt include lt stdbool h gt define QueueSize 200 typedef char DataType typedef
  • 栈,堆,常量区都放什么

    1 寄存器 xff1a 最快的存储区 由编译器根据需求进行分配 我们在程序中无法控制 xff1b 1 栈 xff1a 存放基本类型的变量数据和对象的引用 xff0c 但对象本身不存放在栈中 xff0c 而是存放在堆 xff08 new 出来
  • Windows10安装Docker并创建本地Ubuntu环境

    安装Docker参考文章 xff1a https www cnblogs com Can daydayup p 15468591 html label0 安装本地Ubuntu环境 xff1a windows10下安装docker xff0c
  • 机器人操作系统ROS是什么?

    目录 1 什么是ROS 2 ROS的许可协议 3 ROS的主要发行版本 4 ROS的主要功能 5 ROS的应用 6 ROS开发的常用工具 7 ROS的优点 8 ROS的缺点 1 什么是ROS ROS是机器人操作系统 xff08 Robot
  • 【教程】如何移植FPGA关于HDMI例程

    教程 如何移植FPGA关于HDMI例程 时钟IP核约束条件 在完成EDA作业后 xff0c 抽空分享一下如何移植FPGA的例程 我EDA作业用的板子型号是Zybo Z7 xff0c 然后移植的是原子哥的HDMI实现方块移动例程 故本教程是基
  • 【MATLAB UAV Toolbox】使用指南(三)

    可视化自定义飞行日志 通过配置flightLogSignalMapping可从自定义的飞行日志中可视化数据 加载自定义的飞行日志 在本例中 xff0c 假设飞行数据已经被解析到MATLAB 中 xff0c 并存储为M文件 本示例重点介绍如何
  • matplotlib学习笔记

    matplotlib第一章 matplotlib通常有两种绘图接口 xff1a 显示创建figure和axes 依赖pyplot自动创建figure和axes 并绘图 matplotlib环境 本文是在jupyter notebook下运行
  • OPNET 修改节点图标大小

    老是记不住在哪修改图标 xff0c 有一天看急眼了 xff0c 经过半小时的斗争 xff0c 终于找到了 xff0c 这次一定要把它记下来 View gt Layout gt Scale Node icons Interactively
  • 自定义msg使用C++

    在之前创建talker的src文件夹中创建person cpp并编写如下 include 34 ros ros h 34 include 34 learning communication Person h 34 include lt ss
  • GPIO的八种模式分析

    GPIO是general purpose input output 即通用输入输出端口 xff0c 作用是负责外部器件的信息和控制外部器件工作 GPIO有如下几个特点 xff1a 1 不同型号的IO口数量不同 xff1b 2 xff0c 反
  • 关于STM32_IWDG独立看门狗的一些笔记

    独立看门狗 IWDG xff0c Independent watchdog xff0c 本质是一个可以定时产生系统复位信号 并且可以通过 喂狗 复位的计时器 它由独立的RC振荡器 低速时钟 LSI 驱动 xff0c 即使主时钟发生故障它也仍
  • 关于MPU的笔记

    MPU xff08 memory protection unit xff09 内存保护单元 这些系统必须提供一种机制来保证正在运行的任务不破坏其他任务的操作 即要防止系统资源和其他一些任务不受非法访问 嵌入式系统有专门的硬件来检测和限制系统
  • 关于OLED屏的笔记

    OLED即有机发光管 Organic Light Emitting Diode OLED OLED显示技术具有自发光 广视角 几乎无穷高的对比度 较低功耗 极高反应速度 可用于绕曲性面板 使用温度范围广 构造及制程简单等有点 xff0c 被
  • Ubuntu 上 Let‘s Encrypt 生成泛域名证书

    安装生成工具certbot xff1a apt install certbot 查看安装在哪 xff1a which certbot 使用certbot xff08 位置在 usr bin certbot xff09 生成证书 xff1a
  • DMA的补充笔记

    DMA有两个总线 xff1a 1 DMA存储器总线 xff1a DMA通过该总线来执行存储器数据的传入和传出 2 DMA外设总线 xff1a DMA通过该总线访问AHB外设 xff08 AHB主要是针对高效率 高频宽以及快速系统模块所设计的
  • 关于ADC的笔记1

    ADC xff0c 全称Anlog to Digital Converter xff0c 模拟 数字转换器 是指将连续变量的模拟信号转换为离散的数字信号的器件 xff0c 我们能通过ADC将外界的电压值读入我们的单片机中 常见的ADC有两种
  • STM32-ADC单通道采集实验

    实验要求 xff1a 通过ADC1通道 xff08 PA1 xff09 采集电位器的电压 xff0c 并显示ADC转换的数字量及换算后的电压值 首先要确定最小刻度 Vref 61 3 3V xff0c 所以输入电压有效范围在0V lt 61
  • jetson xavier nx安装ROS Melodic

    1 前期准备 打开系统设置 软件和更新 xff0c 确保图示的选项已选中 点击close xff0c 选择reload 在不同的教程里搜到的这一步都不同 xff0c 似乎没什么影响 xff0c 就很迷 2 设置你的源文件列表 设置计算机以接
  • sylixos标准工程移植到Lite版本

    1 概述 针对低端处理器 xff08 如ARM M系列处理器 xff09 的开发工作 xff0c 翼辉信息推出了SylixOS Lite工程版本 SylixOS Lite版本工程属于SylixOS轻量级工程 xff0c 与标准的SylixO
  • Linux下TCP/IP网络编程示例——实现服务器/客户端通信(一)

    一 说明 最近梳理网络编程的一些知识点时 xff0c 整理了一些笔记 xff0c 写了一些demo例程 xff0c 主要包含下面几部分 xff0c 后面会陆续完成 1 Linux下TCP IP网络编程示例 实现服务器 客户端通信 xff08

随机推荐

  • OpenMV色块寻找

    OpenMV入门 xff0c 从入门到入坟 gt lt 此文章大部分内容取自OpenMV官方中文参考文档 详情看OpenMV官方中文参考文档 文章目录 一 sensor snapshot 拍一张照片二 image find blogs 查找
  • 四轴 PID 调试

    四轴 PID 用到了串级 PID xff0c 即两个闭环 xff0c 分别为 角速度环 xff08 内环 xff09 和角度环 xff08 外环 xff09 调试时 xff0c 先整定内环PID xff0c 再整定外环 P 内环 P xff
  • bind:address already in use的深刻教训以及解决办法

    今天在linux下 xff0c 编写了一个简单的回射客户 服务器 xff08 就是客户机从控制台标准输入并发送数据 xff0c 服务端接受数据 xff0c 但是不对数据进行处理 xff0c 然后将数据返回 xff0c 交由客户机标准输出 x
  • stm32简说步进电机(有代码)!!!

    步进电机 xff08 也称脉冲电机 xff09 xff08 将电脉冲转换为相应的角位移或线位移的电磁机械装置 xff0c 具有快速启动 xff0c 停能力 xff0c 在电机的负荷不超过它能提供的动态转矩时 xff0c 可以通过输入脉冲来控
  • 阿里云Linux Ubentu16.04 安装 Nginx 并配置 https,后续升级openssl和Nginx

    一 准备工作 进入安装目录 cd usr local 下载nginx xff08 官网选择版本稳定版即可 xff1a http nginx org en download html xff09 wget http nginx org dow
  • C++多线程面向对象封装

    相信很多人都读过 C 43 43 沉思录 这本经典著作 xff0c 在我艰难地读完整本书后 xff0c 留给我印象最深的只有一句话 xff1a 用类表示概念 xff0c 用类解决问题 关 于多线程编程 xff0c 如果不是特别需要 xff0
  • stm32(寄存器)超声波程序

    我们是基于stm32f103系列 xff0c 超声波模块用的是 xff1a HC SR04 寄存器版的代码 编译器用的是 xff1a keil5 在此 xff1a 输入捕获用的是TIM2 CH1 用的是PA0 xff0c 可以从开发板原理图
  • 127.0.0.1和localhost和本机IP三者的区别!!!

    1 xff0c 什么是环回地址 xff1f xff1f 与127 0 0 1的区别呢 xff1f xff1f 环回地址是主机用于向自身发送通信的一个特殊地址 xff08 也就是一个特殊的目的地址 xff09 可以这么说 xff1a 同一台主
  • malloc函数,大大的详解

    很多学过C的人对malloc都不是很了解 xff0c 知道使用malloc要加头文件 知道malloc是分配一块连续的内存 xff0c 知道和free函数是一起用的 但是但是 xff1a 一部分人还是将 xff1a malloc当作系统所提
  • Windows程序内部运行原理

    本文大部分内容都是摘自孙鑫老师 xff0c 在下就是一个简单的总结 xff0c 归纳 xff0c 希望对大家有用 xff01 xff01 xff01 xff01 Windows操作系统是一种完全不同于传统的dos方式的程序设计方法 xff0
  • the english of the simple view

    自述 xff1a 我的英语很差 xff0c 四级至今没有过 xff0c 在新东方报班学的一些东西 xff0c 只是想着简单的记录下来 xff0c 权当做新一次的整理笔记 xff0c 归纳 xff0c 希望也能帮助大家 1 200个核心词汇
  • 小小鉴赏(闹着玩)

    when you believe xff1a 作曲 Stephen Schwartz 作词 Stephen Schwartz Many xff08 span class hljs attribute 39 meni span xff09 n
  • 技术分享 | GPS无人机集群

    随着人工智能的发展 xff0c 机器人行业也进入了高速发展的阶段 xff0c 在今年春晚 xff0c 也出现了无人机的身影 xff0c 在高速发展的同时 xff0c 也让人们逐渐体会到单机器人能做的事情是有限的 xff0c 多机器人 编队
  • 技术分享 | 开源不稳?试试DJI N3飞控呢

    原创阿木实验室 1 DJI N3飞控简介 N3内置双IMU冗余设置 xff0c 结合在线故障检测算法 xff0c 可实现双IMU数据实时互为备份 xff0c 极大地提高了飞行器可靠性 集成8GB工业级SD卡的 黑匣子 数据记录系统 xff0
  • 技术分享 | P450-详解室内外指点飞行来啦

    原理说明 PX4飞控控制系统图 定点飞行就是由传感器 xff08 T265 GPS xff09 获得当前位置数据 xff0c 并且把当前位置作为期望位置 xff0c 即可实现定点飞行 xff0c 此时飞控处于position模式 指点飞行为
  • 技术分享 | P450-圆框跟踪的干货分享

    圆检测流程 xff1a 1 xff0c 利用高斯滤波做预处理 2 xff0c 边界检测部分用到了自适应Canny检测 3 xff0c 将边界分为凹弧和凸弧 xff0c 根据输入参数筛选弧段 4 xff0c 利用弧段来估计椭圆参数 xff0c
  • Linux Xampp 下安装PHP Redis扩展

    cd usr local wget http pecl php net get redis 4 0 1 tgz tar zxvf redis 4 0 1 tgz cd usr local wget http mirrors kernel o
  • 技术分享 | Prometheus(P450)-室内外避障

    原理说明 Astar进行全局路径规划 全局路径规划 1 全局算法和局部算法 全局路径规划是在已知的环境中 xff0c 给机器人规划一条路径 xff0c 路径规划的精度取决于环境获取的准确度 xff0c 全局路径规划可以找到最优解 xff0c
  • PX4官方动态 | 基于FPGA和px4的精准自主降落

    近期Ramon Roche在Twitter上发布了关于使用FPGA实现无人机在目标物体上能够进行精准自主着陆的推文 这次的功能实现是一个在读博士的学生所做的项目 xff0c 希望能在开源社区中得到推广并吸引其余有意向的开发者能一起进行研究
  • 技术分享 | 带你具体部署VINS_FUSION_GPU版本

    前期准备工作已经完成 xff0c 接下来我们就准备VINS在NX的落地 1 下载源码编译 首先VINS gpu版本需要引入OpenCV CUDA版本的加速 xff0c 由于我们的NX镜像已经安装好CUDA xff0c 这里就不在赘叙 xff