文章目录

  • 1. 数据采集
    • 1.1 采集IMU数据
    • 1.2 采集相机+IMU数据
  • 2. IMU标定
    • 2.1 数据预处理
    • 2.2 数据打包⽣成.bag⽂件
    • 2.3 创建.launch文件
    • 2.4 数据标定
  • 3. 相机+IMU标定

1. 数据采集

1.1 采集IMU数据

采集APK:IMU标定使用开源库https://github.com/sunset768541/mobile-ar-sensor-logger所提供的APK进行数据采集。

采集⽅法:将手机静止于桌面,采集至少2小时数据。

存储路径:数据存储于手机/sdcard/Android/data/edu.osu.pcv.marslogger/files/data/目录下,可使

用adb pull命令将数据拷贝至电脑。

1.2 采集相机+IMU数据

相机+IMU的标定使用开源库https://github.com/DavidGillsjo/VideoIMUCapture-Android所提供的APK进行数据采集。

2. IMU标定

2.1 数据预处理

将1.1节所采集到gyro_accel.csv⽂件重命名为imu0.csv,并将表头重写为timestamp, omega_x, omega_y, omega_z, alpha_x, alpha_y, alpha_z。

2.2 数据打包⽣成.bag⽂件

我们使用1.2节所clone的工程进行imu数据打包。在该工程calibration目录下打开终端,启动docker容

器:

SUDO=1 DATA=<imu-data-path> ./run_dockerhub.sh

imu-data-path为电脑端imu0.csv文件所在目录。

在容器中打包imu数据:

cd /data
kalibr_bagcreater --folder /data --output-bag imu0.bag

查看打包数据信息:

rosbag info imu0.bag

退出容器:

exit

2.3 创建.launch文件

我们在imu-data-path目录下创建android.launch文件,并填入如下内容:

<launch><node pkg="imu_utils" type="imu_an" name="imu_an" output="screen"><param name="imu_topic" type="string" value= "/imu0"/><param name="imu_name" type="string" value= "iQOO_8_Pro"/><param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/><param name="max_time_min" type="int" value= "27"/><param name="max_cluster" type="int" value= "100"/></node>
</launch>

max_time_min:表示.bag数据的最大时长,单位为分钟,程序会在最大时长内截断读取数据,此部分根据.bag数据实际情况填写。

imu_name:表示imu设备名称,此部分可随意填写,最终标定所生成的文件名会带有此标识。

2.4 数据标定

启动容器:

sudo docker run --name imu_utils -v <imu-data-path>:/data -it chelmx/imu_utils:melodic-desktop-full

在容器启动标定程序:

source /imu-calibration/devel/setup.sh
cp /data/android.launch /imu-calibration/src/imu_utils/launch/
roslaunch imu_utils android.launch

程序运行一段时间后,会出现“wait for imu data.”字样,此时需要新建一个终端重新进⼊容器:

sudo docker exec -it imu_utils bash

之后,在第二个终端中推送imu数据:

source /imu-calibration/devel/setup.sh
nohup roscore &
rosbag play -r 200 /data/imu0.bag

第一个终端接收到数据后会继续运行标定程序,等待一段时间后会出现“done”字样,表明标定结束。

标定结果被保存至/imu-calibration/src/imu_utils/data目录,命名为<imu_name>_imu_param.yaml,拷贝出容器即可。

3. 相机+IMU标定

请参考博文:https://www.jianshu.com/p/f715ce9937d9。

Android相机及IMU标定相关推荐

  1. VIO测试准备——使用imu_utils和kalibr进行相机与IMU标定

    0 前言 近期主要学习VIO.相机使用海康的两个支持外触发的单目相机,完成硬件同步外触发后,固联安装在机器人机体两侧,搭建了一个简易的双目相机.IMU使用的是LPMS-USBAL2(老型号,官方已经不 ...

  2. 相机与IMU标定教程

    标定教程 way 相机与IMU联合标定 1.imu_utils 标定IMU的内参 1. imu_utils标定IMU的内参,可以校准IMU的噪声密度和随机游走噪声 2.kalibr包标定相机的内外参数 ...

  3. 相机、imu 标定 简介

    惯性校准 对于 IMU,重点在于它所测量的是加速度,而非距离或速率.IMU 读数的误差会逐渐累积,累积速度极快! 校准和建模的目的在于确保每秒钟的 X 等分时间段内,对于距离的测量(对加速度进行二重积 ...

  4. 安卓手机 相机和IMU数据获取标定 在VINS-MONO运行自己的数据集(含打包方法) (非常详细一步一步来)

    Android手机上图像和IMU数据采集的方法 网上有相关的教程,但都讲的很模糊,而且不全,甚至还有人要收费.自己完整做了一遍发现还是有些麻烦,固记录下来供大家参考,希望能帮到大家. 采用开源库 Vi ...

  5. 萌新谈相机与IMU的标定(转载)

    我发现这里所给的标定板也是这个 https://drive.google.com/file/d/0B0T1sizOvRsUdjFJem9mQXdiMTQ/edit?resourcekey=0-0Cn7 ...

  6. ZED2跑ORB-SLAM3+双目相机、IMU联合标定+显卡驱动与cuda/cudnn安装

    一.引言 同样是项目需求,需要利用视觉惯性导航做一些开发,所以第一步先做些算法的测试–仿真与实物测验,通过仿真的测试结果,最终是决定使用ORB-SLAM3来完成任务,当然了,Vins-fusion作为 ...

  7. 相机与IMU联合标定

    相机与IMU联合标定 1 imu_utils 标定IMU的内参 1.1 安装环境 1.2 录制IMU数据集 2 kalibr 标定工具 2.1 安装 2.2 校准相机的内外参 2.3 校准相机与IMU ...

  8. VINS在安卓手机上实现、安卓相机标定、IMU标定 亲爸级原理介绍和教学

    需求和想法: 在安卓手机上实现SLAM中的定位与轨迹,或者 VINS在Android上的实现. **现有需求:**针对SLAM的算法:VINS-MONO(港科大的一套基于单目相机的SLAM项目),移植 ...

  9. mynt product model: D1000-IR-120标定相机和IMU外参之二

    1. 在之一中使用kalibr标定mynt相机和内置imu的外参数,使用的是720p,30fps的双目图像和200hz的imu数据,标定结果误差比较大,这一次我们改用480p,60hz的双目图像和20 ...

最新文章

  1. php开发app接口教学,php开发App接口
  2. 【学术相关】以前写过水论文怎么办?
  3. Java8————Lambda表达式(一)
  4. Model 3价格将降至19.9万元?特斯拉要把造谣用户告上法庭
  5. Ubuntu下安装JRE7
  6. 日语单词记忆方法(正在试用)
  7. visual stdio 2010与sqlserver 2008下载和安装
  8. 图片边缘出现黑点的问题分析和解决(纹理过滤)
  9. hdu2154跳舞毯(dp)
  10. 简单的网页制作期末作业——html css javascript小礼品购物商城网站
  11. 手把手教你快应用接入微信H5网页支付
  12. win11禁用内置的administrator本地帐户
  13. 2011考研数学二第(11)题——第一类曲线积分球弧长
  14. JavaScript EventListener
  15. oracle自己主动维护
  16. java 合并到一行_GROUP_CONCAT() 多行数据合并成一行
  17. GDUFS 2018信息学院程序设计新手赛(正式赛)题解
  18. record java_Java Record类代码示例
  19. 汽车操作系统攻防综述
  20. 牛视系统源码,抖音矩阵系统功能开发定制。I‘m here

热门文章

  1. 百度这些年,有了狼性,却没了牙齿
  2. #python# 来找茬
  3. 顺序、链式结构的个人书籍管理系统(C++)
  4. 关于右键Git Bash Here不能使用问题
  5. 6 Drools整合Springboot
  6. JS事件循环中的宏任务和微任务执行顺序
  7. teeChart控件的异常:MARKS.CALLOUT.BRUSH.COLOR:Property callout does not exist
  8. GSM模块(SIM900)详解
  9. 海康摄像头java的二次开发,集成windows和linux两个版本的报警布防
  10. 行业首发:响应式优酷快速适配新Mac