栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Ubuntu20.04编译并运行imu

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Ubuntu20.04编译并运行imu

Ubuntu20.04编译并运行imu_utils,并且标定IMU
  • 一、编译并运行imu_utils
    • 1、安装依赖项
    • 2、下载imu_utils和code_utils
      • 2.1、code_utils编译
        • 2.1.1、CMakeLists.txt文件下
        • 2.1.2、sumpixel_test.cpp文件下:
        • 2.1.3、mat_io_test.cpp文件下:
      • 2.2、imu_utils编译
        • 2.2.1、CMakeLists.txt文件下
        • 2.2.2、imu_an.cpp文件下
  • 二、标定IMU


前言:imu_utils是用于求取IMU随机误差的开源工具。

一、编译并运行imu_utils 1、安装依赖项
sudo apt-get install libdw-dev
2、下载imu_utils和code_utils

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

注意:
1、全局安装ceres库,code_imu依赖ceres;
2、不要同时把imu_utils和code_utils一起放到src下进行编译。由于imu_utils依赖code_utils,所以先把code_utils放在工作空间的src下面,进行编译。然后再将imu_utils放到src下面,再编译。

2.1、code_utils编译

编译时出现的问题,解决如下:

2.1.1、CMakeLists.txt文件下

代码修改如下:

修改set(CMAKE_CXX_FLAGS "-std=c++11")为set(CMAKE_CXX_FLAGS "-std=c++14")
2.1.2、sumpixel_test.cpp文件下:

代码修改如下:

问题1:

修改#include "backward.hpp"为 #include “code_utils/backward.hpp”

问题2:

修改:

添加头文件:#include"opencv2/imgcodecs/legacy/constants_c.h"

问题3:

修改:

CV_MINMAX 改为 NORM_MINMAX
2.1.3、mat_io_test.cpp文件下:

代码修改如下:

问题:

opencv4.x以上,有些宏,API名字改了,需要改为新的:
CV_LOAD_IMAGE_UNCHANGED 改为 cv::IMREAD_UNCHANGED
CV_LOAD_IMAGE_GRAYSCALE 改为 cv::IMREAD_GRAYSCALE
CV_LOAD_IMAGE_COLOR 改为 cv::IMREAD_COLOR
CV_LOAD_IMAGE_ANYDEPTH 改为 cv::IMREAD_ANYDEPTH

修改:

CV_LOAD_IMAGE_UNCHANGED 改为 cv::IMREAD_UNCHANGED
2.2、imu_utils编译

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

编译时出现的问题,解决如下:

2.2.1、CMakeLists.txt文件下

代码修改如下:

修改set(CMAKE_CXX_FLAGS "-std=c++11")为set(CMAKE_CXX_FLAGS "-std=c++14")
2.2.2、imu_an.cpp文件下

代码修改如下:

问题:

修改:

添加头文件:#include 
二、标定IMU

IMU需要标定的参数主要是确定性误差(系统误差)和随机误差。
确定性误差主要标定bias(零偏误差),scale(刻度系数误差,标度因数)和misalignment(安装误差,小量);
随机误差主要标定bias instability(零偏不稳定性误差:会使陀螺仪和加速度计的零偏随时间慢慢变化,逐渐偏离开机时校准的零偏误差,同时还会造成一部分随机行走误差的效果;另一种说法是它表示在一段时间内零偏bias的变化量)和random walk(陀螺仪与加速度计的随机游走误差,又叫:传感器的高斯白噪声,详细解释为:陀螺仪测量的角速度,加速度计测量的加速度的噪声是高斯白噪声)。
【注】:一般文献中的 IMU 随机误差模型是高斯白噪声和维纳过程的叠加,IMU 的随机误差的参数可以通过艾伦方法测量。在卡尔曼滤波器中,我们需要使用 IMU 的误差模型来计算状态变量的方差随时间的变化。
参考大佬:
1、4.1 IMU误差模型
2、VIO标定IMU随机误差:Allan方差法
3、IMU标定(二)随机误差的标定
4、IMU标定(三)确定误差的标定

可以先在室内录制2小时imu数据(bag包格式),前提是全程保持imu静止不动,然后播放bag包用imu_utils来做离线标定

参考大佬:
1、用imu_utils标定IMU,之后用于kalibr中相机和IMU的联合标定
2、VIO 中 IMU 的标定流程 (1/3) - imu_utils 使用备忘
3、使用imu_utils工具标定imu的内参

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938383.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号