该篇参考港科大的github: https://github.com/gaowenliang/imu_utils
https://blog.csdn.net/fang794735225/article/details/92804030

  1. 安装依赖项
sudo apt-get install libdw-dev
  1. 下载imu_utils和code_utils
    imu_utils下载地址为:https://github.com/gaowenliang/imu_utils

code_utils下载地址为: https://github.com/gaowenliang/code_utils

也有整合成一个仓库的:https://gitcode.net/mirrors/gaowenliang/imu_utils?utm_source=csdn_github_accelerator

在编译之前我们先注意三个问题,避免入坑

(1)全局安装ceres库,code_imu依赖ceres。

(2)不要同时把imu_utils和code_utils一起放到src下进行编译。

由于imu_utils 依赖 code_utils,所以先把code_utils放在工作空间的src下面,进行编译。然后再将imu_utils放到src下面,再编译。

否则会报如下错误:

Could not find a package configuration file provided by "code_utils" withany of the following names:code_utilsConfig.cmakecode_utils-config.cmakeAdd the installation prefix of "code_utils" to CMAKE_PREFIX_PATH or set"code_utils_DIR" to a directory containing one of the above files.  If "code_utils" provides a separate development packageor SDK, be sure it has been installed.

(3)编译报错:

code_utils-master/src/sumpixel_test.cpp:2:24: fatal error: backward.hpp:No such file or directory

填坑: 在code_utils下面找到sumpixel_test.cpp,修改#include "backward.hpp"为 #include “code_utils/backward.hpp”,再编译。

  1. 编译
    把code_utils放在工作空间的src下面,然后编译。
cd catkin_ws
catkin_make

编译成功以后,再把imu_utils放到工作空间的src下面,进行编译。

cd catkin_ws
catkin_make

4.录制imu.bag
让IMU静止不动两个小时,录制IMU的bag.

cd MYNT-EYE-D-SDK
source wrappers/ros/devel/setup.bash
roslaunch mynteye_wrapper_d display.launch
rosbag record /mynteye/imu/data_raw -O imu.bag

两个小时以后按Ctrl+C完成录制。

  1. 标定IMU
rosbag play -r 200 imu_utils/imu.bag (这里要写你录制的包的路径)
cd imu_ws
source ./devel/setup.bash
roslaunch imu_utils mynt_imu.launch

注意这里的launch文件,我用的是小觅相机,所以imu.launch的内容为:

<launch><node pkg="imu_utils" type="imu_an" name="imu_an" output="screen"><param name="imu_topic" type="string" value= "/mynteye/imu/data_raw"/>    #imu topic的名字<param name="imu_name" type="string" value= "mynteye"/>   <param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/><param name="max_time_min" type="int" value= "120"/>   #标定的时长<param name="max_cluster" type="int" value= "100"/></node>
</launch>

运行完之后,会在imu_utils/data文件夹下生产多个txt文件。

利用MATLAB和这几个txt文件便可以画出了Allan方差图

sudo /usr/local/MATLAB/R2016b/bin/matlab #需要用sudo,不然一直卡在启动界面
打开draw_allan.m,并对里面的文件路径进行修改,便可画出Allan方差图了。

错误解决方案:

wait for imu data.
  1. 首先检查launch文件中的imu_topic是否与bag包中的topic一致。两种方法查看bag包中的topic name:
    1.1 rosbag play XXXX.bag; 然后另开一个终端 rostopic list,检查输出的topic name;
    1.2 rosbag info XXXX.bag; 会直接给出bag包里的信息,包括包的时长等信息;
  2. 根据时长信息修改launch文件里的max_time_min参数值

IMU使用系列------imu_util标定imu的方法及wait for imu data 的bug解决相关推荐

  1. 村田 IMU SCC2000系列芯片驱动

    村田 IMU SCC2000系列芯片驱动 ​ 文章目录 村田 IMU SCC2000系列芯片驱动 一.总体特点 二.启动时序和逻辑 三.SPI通信和数据读取 四.数据处理 一.总体特点 1.本次具体的 ...

  2. IMU使用系列------imu_tools验证数据是否准确及安装是否准确

    1 前言 imu_filter_madgwick:一种滤波器,可将来自常规IMU设备的角速度,加速度和磁力计读数(可选)融合到一个方向中.基于工作: imu_complementary_filter: ...

  3. 惯性测量单元(IMU)系列介绍(1)——加速度计简介

    引言 惯性测量单元(Inertial Measurement Unit, IMU)主要用来检测和测量加速度.倾斜.冲击.振动.旋转和多自由度运动.通常是指使用加速度计和陀螺仪来测量物体单轴.双轴或三轴 ...

  4. 三维重建15:最近遇到的-标定-EKF-优化方法等

    时间是最好的敌人,再辛苦的东西复盘的时候总是会艮住..... 0.    ICP算法 参考:三维重建10-点云配准和点云匹配--https://blog.csdn.net/wishchin/artic ...

  5. Caffe学习系列(8):solver优化方法

    Caffe学习系列(8):solver优化方法 上文提到,到目前为止,caffe总共提供了六种优化方法: Stochastic Gradient Descent (type: "SGD&qu ...

  6. STM32L0系列串口重定义的方法

    STM32L0系列串口重定义的方法 芯片型号:STM32L071RBT6 本篇重点:将printf( ) 函数重定义到USART1 集成开发工具(IDE):IAR 在uart已经配置好情况下,重定义f ...

  7. 机器人点焊枪接线_用于焊接机器人焊枪工具点及工件坐标系标定装置及方法与流程...

    本发明属于机器人焊接技术领域,涉及一种用于焊接机器人焊枪工具点及工件坐标系标定的装置及方法. 背景技术: 工业机器人是实施自动化生产线.工业4.0.智能制造车间.数字化工厂.智能工厂的重要基础装备之一 ...

  8. 这是小小本周的第六篇,本篇小小将会介绍一个很古老很古老很古老的为什么系列之不能重写service方法。...

    这是小小本周的第六篇,本篇小小将会介绍一个很古老很古老很古老的为什么系列之不能重写service方法. 小小最近看到一年一度的考研,心生感慨,不过,作为一个专科,没法参与今年的考研,但是没关系,小小明 ...

  9. HP/Aruba 2620系列交换机DHCP中继配置方法

    组网及说明 配置需求或说明 1.1 适用产品系列 本案例适用于如:HP/Aruba 2620 24/48 Switch.HP/Aruba 2620 24/48 PoE+ Switch. HP/Arub ...

最新文章

  1. PostgreSQL可视化客户端工具
  2. 面试中Handler这些必备知识点你都知道吗?面试真题解析
  3. [转] FFmpeg常用基本命令
  4. C#图片处理之:图片缩放和剪裁
  5. 33. 深入解析互联网协议的原理
  6. jmp怎么做合并的箱线图_JMP和Minitab的图形分析
  7. 淘宝网的架构演化分析
  8. 换IP软件能保证我们的网络安全吗
  9. 怎样搬运视频不侵权,王者剪辑的指纹检测如何检测原创度
  10. ChinaSkills-网络系统管理001(网络应用赛项改革)
  11. [c#]删除PDF权限密码
  12. Unity Scene视图介绍
  13. AF(操作者框架)系列(1)-LabVIEW中的模块化应用概述
  14. 智能名片为什么使用场景都是微信小程序?哪些新玩法值得一试?
  15. 鸿蒙试炼多少可以单挑,知己知彼《灭神》单挑虚无之地大BOSS
  16. SwiftUI 动态岛开发教程之 07 Live Activities实时活动的要求和限制
  17. 无心剑中译奥修《错在您》
  18. matlab调用maple数据画图,Matlab调用Maple
  19. 医院“移动”不起来软肋在数据安全?
  20. Flutter Card使用

热门文章

  1. 应届生数据分析求职记
  2. 浅析票据贴现、承兑和托收的区别和流程
  3. Web GIS (网络地理信息系统)开发入门
  4. 51单片机入学第五课——蜂鸣器的原理与应用
  5. WRF | WRF的基础介绍
  6. 天天加班996,看完这3点,立刻提升工作效率
  7. C# 全局热键设置 与 窗体热键设置
  8. 忠计算机学校,花利忠
  9. 2011年度中国优秀CIO获奖名单
  10. java--手动输入人数随机抽查班级同学名字的班级点名器