惯导(IMU)的使用

2023-05-16

提示:和上一篇关于利用imu计算位移的文章相比,这篇我对imu的理解应该是更加深刻了。

目录

前言

一、imu调试

二、利用IMU计算旋转

1.引入库

2.读入数据

总结


前言

        这次使用的imu和上一篇文章中所提到的imu是同一款,时隔几个月再一次使用的时候发现有点错误,所以前来记录一下,附上一张使用的imu的图片。

         这次使用的时候出现了几个问题:

        1、imu的数据采集频率过低,需要在上位机调整。

        2、关于imu坐标系对采集的数据的影响。

        3、在 ROS 中对数据附加时间戳的问题。

        也有其他的一些小问题我会边写边说的。


一、imu调试

        距离上次调试是在几个月前,直接导致这一次的忘记如何调试,一直在问售后,所以一定要记录下来防止下次再忘。

        因为我使用的是100HZ的采样频率,但是上一次不知道为什么就改成了5HZ所以要改回来。如果你需要使用的是100HZ,那就可以不用修改因为这个imu默认的采样频率就是100HZ。

        如果想要修改的话,按如下图的步骤添加设备。

 ​​

         修改相关的配置参数。这里的采样频率和波特率也是有关系的,我之前设置的波特率是115200,但是采样频率设置的是100HZ,就会出现报警,设备时而连接时而断开的现象。就是因为波特率和采样频率不匹配的原因。100HZ的采样频率至少对应的波特率是230400。所以不同的采样频率要对应不同的波特率,否则影响采样结果。这里我就是直接使用的默认值。

 

对应的launch文件中的波特率也要做修改:

 

二、利用IMU计算旋转

1.引入库

        这里我使用了slam十四讲里提到的Sophus库、Eigen库,Eigen库是基于C++编写的矩阵库,Sophus是在Eigen的基础上编写的矩阵运算的库。非常好用!!

//安装Eigen
sudo apt-get install libeigen3-dev

Sophus可以去高博的slambook中搜索。 

2.读入数据

        要注意imu上的坐标系的标注,我见的多的坐标系都是Z轴向上的,这一款是Z轴向下的。所以在考虑重力的时候要格外注意一下。因为imu的加速度计的输出是 f=a-g 。因为重力是向下的并且该款imu的Z轴正方向也是向下的,所以g是正的。

        还有就是关于imu数据的时间戳的附加,我一开始使用的是ros中的纳秒,解算出来的数据很大,然后就采用了ros中的秒的函数结果就正确了。后来一想是因为用纳秒的时候没有换算单位哎。

        然后下面这个图就是我测试了一下代码的准确性,发现其旋转矩阵的计算精度还是比较可靠的。但是速度和位移就不是很好,目前我可以找到的原因有两个:其一是我没有进行Imu的内参标定也就是没有减去零偏,其二是Imu在求解速度和位移的时候都是要进行积分的,也就是说在这个过程中,误差也是会累计的,所以尽量不要用Imu来进行长距离的位移测量,误差会很大。


总结

        简单记录了一下该款imu的使用以及在编写程序中遇到的一些小问题。欢迎大家一起讨论~

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

惯导(IMU)的使用 的相关文章

  • ROS入门:IMU&GPS融合定位实例

    1 声明 xff1a a 本文主要针对IMU amp GPS融合定位仿真环境的搭建过程进行讲解 xff0c 而没有对具体原理的介绍 b 本人作为技术小白 xff0c 完全参考了https zhuanlan zhihu com p 15266
  • ros中的message filters时间同步--> 用于image和imu的结合

    转载自 xff1a https blog csdn net He3he3he article details 109643391 xff11 xff0e message filters介绍 message filters用于对齐多种传感信息
  • VIO标定工具kalibr和imu_utils的使用

    0 参考资料 Kalibr进行IMU 43 相机的标定 xff1a 这个步骤写的非常好 xff0c 应该是目前看到的最符合的步骤了 使用ROS功能包标定相机内参 Kalibr标定camera IMU详细步骤 xff1a 这篇博客里给出了它的
  • STM32—驱动GY85-IMU模块

    GY85是一个惯性测量模块 xff0c 内部集成了三轴加速度计 三轴陀螺仪 电子罗盘 气压传感器等芯片 xff0c 用于测量和报告设备速度 方向 重力 xff0c 模块可以将加速度计 陀螺仪 电子罗盘等传感器的数据进行综合 xff0c 在上
  • Mavros读取PixHawk硬件的IMU数据

    Ubuntu18 04 读取PixHawk硬件的IMU数据 实现方式 使用mavros话题读取到Pixhawk飞控的IMU数据 实现步骤 安装ros 检查是否安装cmake xff08 未安装根据提示安装 xff09 cmake span
  • 在PX4下更换pixhawk的IMU

    写在前面 出于一些原因 xff0c 这篇文章不给出具体的源码 xff0c 因此博主试着将这篇写成了一篇科普性质的文章 xff0c 如果你认真读的话 xff0c 应该会有收获的 为什么要更换pixhawk的传感器 xff1f 大多数的玩家拿到
  • realsense D435i双目IMU 数据集

    realsense D435i 双目IMU数据集 使用双目 43 IMU的数据双目内参双目IMU外参 使用双目 43 IMU的数据 双目内参 model type PINHOLE camera name camera image width
  • VINS slam , imu fusion

    VINS 基本介绍 VINS Mono 和 VINS Mobile 是香港科技大学沈劭劼老师开源的单目视觉惯导 SLAM 方案 2017年发表于 IEEE Transactions on Robotics 另外 xff0c VINS 的最新
  • Kalibr 之 Camera-IMU 标定 (总结)

    Overview 欢迎访问 持续更新 xff1a https cgabc xyz posts db22c2e6 ethz asl kalibr is a toolbox that solves the following calibrati
  • ROS2中IMU话题的发布及可视化

    环境 xff1a Ubuntu 20 04 xff0c ROS2 Foxy 传感器 xff1a 维特智能BWT901CL 代码是从维特智能的示例代码修改的 xff0c 实现基本的加速度 角速度和角度读取 xff0c 发布IMU消息 这个传感
  • 在ROS下Intel RealSense D435i 驱动的安装,避免踩坑,避免缺少imu话题等各种问题(适用于D400系列、SR300和T265跟踪模块等)

    版权声明 本文为博主原创文章 未经博主允许不得转载 https blog csdn net AnChenliang 1002 article details 109454465 目录 背景 方法1 使用apt安装 不建议使用此方法 了解一下
  • MAG02 IMU传感器模块替代MPU6050模块介绍

    MAG02模块内置TDK高精度6轴IMU 惯性测量单元 xff09 传感器芯片 xff0c 通过处理器读取传感器数据 xff0c 并经过内部复杂运算后通过串口输出加速度 xff0c 角速度 xff0c 角度等数据 xff0c 大大减轻了用户
  • 飞控IMU数据进阶处理(FFT,滤波器)

    前面的文章 xff08 知乎专栏 https zhuanlan zhihu com c 60591778 xff09 曾简单讲过IMU数据 xff08 陀螺仪 加速度数据 xff09 的校准以及一阶低通滤波 本文在此基础上更进一步讲一下数据
  • Camera-IMU联合标定原理

    Camera IMU联合标定原理 一 相机投影模型二 IMU 模型三 Camera IMU标定模型 一 相机 IMU旋转 二 相机 IMU平移 三 视觉惯性代价函数 四 camera imu联合标定 一 粗略估计camera与imu之间时间
  • 常见IMU的性能比较

    型号gyr零偏稳定性gyr量程acc零偏稳定性acc量程HZ价格其他说明 EG320N xff08 epson xff09 http www canalgeomatics com wp content uploads 2020 06 oem
  • 最小的IMU模组——DETA10系列

    性能全面升级 飞迪航空 xff08 FDISYSTEMS xff09 DETA10系列产品目前出货已达十万量级 xff0c 广泛应用于机器人 可穿戴设备 人工智能教育套件 自动驾驶小车 智慧农业 扫地机器人 稳定平台 无人系统等相关领域 D
  • 一文了解IMU原理、误差模型、标定、惯性传感器选型以及IMU产品调研(含IMU、AHRS、VRU和INS区别)

    在此记录一下测试IMU过程中的其它文章 xff0c 便于以后查看 xff1a IMU的误差标定以及姿态解算ROS下通过USB端口读取摄像头数据 包括笔记本自带摄像头 激光 摄像头 IMU等传感器数据同步方法 message filters
  • 武汉大学研究生组合导航课程合集【2022年春】

    第四公式中kk是权重 zk hx 为innovation新息 即真实的观测 估计的观测 前者包含观测误差 gps的电离层 多径 后者包含估计误差 kk近似1 则无限相信新观测 kk 0 相信估计
  • 无人机姿态融合——EKF

    联系方式 860122112 qq com 一 实验目的 使用惯性测量单元IMU和磁场传感器 磁力计 的信息 通过EKF对四旋翼无人机进行姿态融合 二 实验环境 ROS机器人操作系统 三 实验步骤 1 安装hector quadrotor
  • IMU用于上肢功能评估

    来自日本团队牵头研究揭示了利用九轴运动传感器评估上肢Fugl Meyer FMA 的潜力 该探索侧重于将惯性测量单元 IMU 集成到 FMA 的方法中 并探究是否可以出现标准化和更客观的测量 从而解决动态运动评估中的一个紧迫问题 九轴 IM

随机推荐

  • Jetson Xavier gpio编程 (8)

    GPIO lines are attached to gpiochips Look in sys class gpio and you should see gpiochip240 248 and 288 I haven t yet det
  • curl 函数

    1 curl close 关闭一个cURL会话 语法 xff1a curl close span class hljs variable ch span span class hljs variable ch span 由 curl ini
  • CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):

    出现了这样的情况的话如 xff1a CMake Error at opt ros kinetic share catkin cmake catkinConfig cmake 83 find package Could not find a
  • Rails Digest认证实现和原理

    优势 Http Digest是一种Http 不仅限于Web页面 认证框架 xff0c 相比通常使用的基本认证 xff0c Digest认证的优点是相对安全 基于网络标准和简单 xff0c 它不需要编写登录表单页面 xff0c 对登录信息进行
  • 【目标检测】修改YOLO标注索引,批量修改txt文件指定内容

    假设需要将原索引 0 xff0c 1 xff0c 2 xff0c 3 都修改为 0 xff1a import os path 61 39 train 39 total txt 61 os listdir path deleteList 61
  • 《C语言中分配了动态内存后一定要释放吗?》

    问 xff1a 比如main函数里有一句 malloc 后面没有free 1 那么当main结束后 xff0c 动态分配的内存不会随之释放吗 xff1f 2 如果程序结束能自动释放 xff0c 那么还加上free xff08 xff09 x
  • 串口通讯的延时问题

    串口编程涉及很多问题 xff0c 对于实时采集系统 xff0c 串口编程必须服从系统定时器采集节拍 xff0c 这样通过事件方式接收串口然后延时就会带来很多问题 串口数据通常不是一次到来 xff0c 对于一个较为长的数据 xff0c 可能分
  • linux下从源代码编译安装软件的一般步骤

    1 下载并解压文件 如果下的压缩文件的后缀是 tar gz 解压用 tar xzvf xxx tar gz tar b2 解压用 tar xjvf xxx tar b2 tar 解压用 tar xvf xxx tar 2 配置安装路径 在
  • 单精度浮点数(float)与双精度浮点数(double)的区别

    单精度浮点数 xff08 float xff09 与双精度浮点数 xff08 double xff09 的区别如下 xff1a xff08 1 xff09 在内存中占有的字节数不同 单精度浮点数在机内占4个字节 双精度浮点数在机内占8个字节
  • /dev/ttyUSB0 permission denied 解决办法:永久有可操作权限

    一般使用USB口 无论USB转什么口 xff0c 串口之类的 xff0c 启动时容易出现 dev ttyUSB0 permission denied 因为一般情况下不是root用户 xff0c 对端口没有权限 xff0e 遇到这种情况 xf
  • 三种继承的方法:public 继承/private继承/protected继承详解及区别

    公有继承 public 私有继承 private 保护继承 protected 是常用的三种继承方式 1 公有继承 public 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时 xff0c 它们都保持原有的状态 xff0c 而基
  • [C/C++] const 详解(修饰变量、输入参数、返回值、成员函数)

    看到const关键字 xff0c 程序员首先想到的可能是const 常量 const 更大的魅力是它可以修饰函数的参数 返回值 xff0c 甚至函数的定义体 const 是constant 的缩写 xff0c 恒定不变 的意思 被const
  • 怎么理解矩阵的秩

    首先来想一个问题 xff0c 最初的那个人为什么为什么要叫他为 秩 xff0c 为什么不叫 猪 牛 马 xff1f 举个例子就很容易理解 xff0c 大家排队买票 如果大家互相不认识 xff0c 那就会一个排一个 xff0c 非常有秩序 然
  • javascript中的sort()方法

    现在在学习javascript中 xff0c 发现sort 函数是有点奇怪的东西 xff08 可能是本人水平的问题 xff01 xff09 xff0c 于是就在这里记录一下自己找到的东西吧 sort 这个方法的参数很奇怪 xff0c 必须是
  • 【ROS读书笔记】--- 7.参数(parameters)

    时间见证一切 xff01 一 简述二 通过命令行操作参数 查看参数列表 查询参数 设置参数 删除参数 创建和加载参数文件 三 在C 43 43 代码中操作参数 设置参数 读取参数 四 在启动文件中操作参数 设置参数 设置私有参数 从yaml
  • 高位字节与低位字节简单介绍

    一般一个16位 xff08 双字节 xff09 的数据 xff0c 比如 FF1A xff08 16进制 xff09 那么高位字节就是FF xff0c 低位是1A 如果是32位的数据 xff0c 比如 3F68415B 高位字 xff08
  • STL常用容器详细解析

    STL容器的实现原理 STL共有六大组件 1 容器 2 算法 3 迭代器 4 仿函数 6 适配器 STL容器的实现原理 STL来管理数据十分方便 省去了我们自己构建数据结构的时间 其实 STL的实现也是基于我们常见的数据结构 序列式容器 x
  • 相机内参的标定

    最近刚刚开始学习相机的标定 xff0c 也是在师兄的帮助下完成的 过程还是值得记录的 xff0c 于是决定写在自己的第一篇CSDN上 xff0c 便于之后的复习 xff0c 同时也希望能够和大家进行交流 xff0c 相互学习 xff0c 相
  • 利用IMU数据来计算位移

    目标 xff1a 利用IMU测得的加速度信息来计算位移 xff0c 很简单假设是匀加速运动或是匀速运动都可以 xff0c 主要是看问题的背景来具体去确定运动模型 xff0c 这里我就取个简单的匀加速运动模型 学习过程 xff1a 1 了解I
  • 惯导(IMU)的使用

    提示 xff1a 和上一篇关于利用imu计算位移的文章相比 xff0c 这篇我对imu的理解应该是更加深刻了 目录 前言 一 imu调试 二 利用IMU计算旋转 1 引入库 2 读入数据 总结 前言 这次使用的imu和上一篇文章中所提到的i