imu_utils標定程序

本文详细介绍了如何安装imu_utils库,设置WS工作空间,下载并构建项目,录制rosbag数据,配置imu校准参数,以及使用rosbag快速播放来校准imu。最后,步骤涉及查看校准结果。
部署运行你感兴趣的模型镜像

imu_utils標定程序

1. 安裝

step1:
sudo apt-get install libdw-dev

step2:建立WS文件夾


export TARTGET_WS_DIR=/home/hao/Documents/WKS_Current/camera_imu_calib/imu_utils_workspace
mkdir -p $TARTGET_WS_DIR/src

step3: download

export TARTGET_WS_DIR=/home/hao/Documents/WKS_Current/camera_imu_calib/imu_utils_workspace

# remove the previous files

cd $TARTGET_WS_DIR/src

git clone https://github.com/gaowenliang/code_utils
git clone https://github.com/gaowenliang/imu_utils


 


step4:build
 

export TARTGET_WS_DIR=/home/hao/Documents/WKS_Current/camera_imu_calib/imu_utils_workspace
cd $TARTGET_WS_DIR
catkin_make

運行-----------------------------------------------------------------------------------------------------------------

step1:確保imu正確發佈

#!/bin/bash

#rostopic hz /mavros/imu/data_raw

rostopic echo /mavros/imu/data_raw

step2:錄製rosbag,一般說是最少120分鐘,但是目前imu_utils的源代碼默認你錄製200分鐘,能錄久一點就錄久一點

export TARTGET_PROJECT_DIR=/home/hao/Documents/WKS_Current/camera_imu_calib
export TARTGET_WS_DIR=$TARTGET_PROJECT_DIR/imu_utils_workspace

export IMU_TOPIC=/mavros/imu/data_raw
export BAG_PATH=$TARTGET_PROJECT_DIR/rosbag/imu.bag
rosbag record $IMU_TOPIC -O $BAG_PATH


#rm $BAG_PATH
#rm $USB_BAG_PATH

# record at least 2 hours
rosbag record $IMU_TOPIC -O $BAG_PATH

step3:
修改以下的launch
imu_utils/launch/xsens.launch
將max_time_min修改成你錄製的時間長(分鐘)。不能長於你錄製的時間,否則會一直等待資料。

<launch>
    <node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
<!--         <param name="imu_topic" type="string" value= "/imu/data"/> -->
        <param name="imu_topic" type="string" value= "/mavros/imu/data_raw"/>
        <param name="imu_name" type="string" value= "xsens"/>
        <param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/>
<!--         <param name="max_time_min" type="int" value= "200"/> -->
        <param name="max_time_min" type="int" value= "150"/>
        <param name="max_cluster" type="int" value= "100"/>
    </node>
</launch>

step4 運行標定程序,運行後會開始等待rosbag的資料

#!/bin/bash


export TARTGET_WS_DIR=/home/hao/Documents/WKS_Current/camera_imu_calib/imu_utils_workspace



source $TARTGET_WS_DIR/devel/setup.bash

#默認imu topic是/imu/data
#如果rosbag裏記錄的不是,就要修改
#imu_utils_workspace/src/imu_utils/launch/xsens.launch

#https://blog.youkuaiyun.com/qq_49959714/article/details/129211822
# 此处可能会一直出现wait for imu data
# 这时需要修改xsens_driver.launch文件中的max_time_min的值,这个值改为小于自己的bag持续时间。
roslaunch imu_utils xsens.launch

#尽快执行rosbag play -r 200 test_imu_2020_20xx-xx-xx-xx-xx-xx.bag,
# 程序进入bag读取,并计算allan方差。当bag包加速回放完毕后,执行launch的窗口仍然会显示wait for imu data.,
# 等待一段时间计算,计算完毕后会显示计算结果。

step5 運行rosbag,速度200倍

#!/bin/bash

export TARTGET_PROJECT_DIR=/home/hao/Documents/WKS_Current/camera_imu_calib
export TARTGET_WS_DIR=$TARTGET_PROJECT_DIR/imu_utils_workspace


export NEW_IMU_BAG=$TARTGET_PROJECT_DIR/rosbag/imu_0325_wheeltec.bag
#---------------------------------------------------------------

export IMU_TOPIC=/mavros/imu/data_raw

#export BAG_PATH=$TARTGET_PROJECT_DIR/rosbag/imu_0320_short.bag
#export BAG_PATH=$TARTGET_PROJECT_DIR/rosbag/imu_0320_long.bag

# speed x 200
rosbag play -r 200 $NEW_IMU_BAG

因爲rosbag的播放速度是200倍,運行時間就幾分鐘,如果20分鐘內沒有出結果,大概率是launch文件max_time_min寫的比rosbag的大,導致程序一直在等待資料

step 6 查看結果

#!/bin/bash


export TARTGET_WS_DIR=/home/hao/Documents/WKS_Current/camera_imu_calib/imu_utils_workspace
source $TARTGET_WS_DIR/devel/setup.bash
# imu标定内参参数将保存在imu_utils/data目录下的xsens_imu_param.yaml文件中
cat $TARTGET_WS_DIR/src/imu_utils/data/xsens_imu_param.yaml

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### imu_utils标定原理 imu_utils 是一个用于惯性测量单元(IMU标定的工具,其核心功能是通过分析传感器数据来估计传感器的噪声特性及误差模型参数。具体而言,该工具主要基于 Allan 方差分析方法来评估 IMU 的加速度计和陀螺仪的噪声特性[^1]。 #### 1. 数据采集与静止放置 在标定过程中,IMU 需要被静止放置一段时间(通常为数小时),以确保采集到的数据仅包含传感器的噪声特性而没有外部运动干扰。这种长时间静置的数据采集能够有效分离出传感器的随机噪声和其他误差源[^2]。 #### 2. Allan 方差分析 Allan 方差是一种统计工具,广泛应用于惯性传感器的噪声分析中。通过对静置状态下采集的 IMU 数据进行 Allan 方差计算,可以提取出以下关键参数: - **高斯白噪声 (Gaussian White Noise)**:表示传感器短时间内的随机波动。 - **随机游走 Bias (Random Walk Bias)**:描述传感器长时间漂移的特性。 这些参数对于构建准确的传感器误差模型至关重要,能够帮助校正传感器输出并提高导航系统的精度[^3]。 #### 3. 标定流程 imu_utils标定过程包括以下几个方面: - **数据预处理**:将采集到的 IMU 数据进行格式转换和初步滤波。 - **Allan 方差计算**:利用预处理后的数据生成 Allan 方差曲线。 - **参数估计**:从 Allan 方差曲线中提取加速度计和陀螺仪的噪声特性参数。 - **结果验证**:通过对比标定前后的数据,验证标定效果。 #### 4. 常见问题与解决方法 在使用 imu_utils 进行标定时,可能会遇到以下问题: - **数据不足错误**:如果采集的数据量不足以支持标定,系统会报错“Not enough intervals, calibration is not possible”[^3]。此时需要延长静置时间或检查数据采集是否正确。 - **安装依赖问题**:在安装过程中可能遇到依赖项缺失的情况,可参考相关文档解决[^2]。 ```python # 示例代码:调用 imu_utils 工具进行标定 import subprocess def run_imu_calibration(): try: # 执行 imu_utils 标定命令 subprocess.run(["rosrun", "imu_utils", "calibrate_imu"], check=True) except subprocess.CalledProcessError as e: print(f"Calibration failed with error: {e}") run_imu_calibration() ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值