【VINS-MONO测试】安卓手机采集mono+imu数据

这篇具有很好参考价值的文章主要介绍了【VINS-MONO测试】安卓手机采集mono+imu数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一个vins-mono环境配置测试完成后,初步建立好实验环境,接下来开始进行数据采集(cam+imu)、打包、标定、运行。

记录一下后续要更新的内容吧:
*ros打包、另外两种标定方式、手机在线测试、另一种app的测试情况IMU数据的调参 *

更新一下:2023-05-11,之前有些理解不到位的地方做了修改,多余的步骤删减。

更新:2023-10-22,对imu数据调整进行了解释;对于在ubuntu18.04下运行新版(36个package)的kalibr运行前要加rosrun做了修改

一、采集数据

cam+imu传感器组合可以看作视觉惯导slam的一种组合方法,基于安卓平台可以在人人都有的安卓手机上进行实验。
本次实验采用的app:说明

之前用的是第一个版本,部分机型确实会出现闪退的情况,作者也开源了2.0版本,主要更新了对焦后一直跳动的bug,有需要的可以去下载安装,两个app不能同时存在于你的手机上。
https://github.com/OSUPCVLab/mobile-ar-sensor-logger/releases

对于版本这个问题,因为某些机型确实会闪退,还是根据需要来选择版本吧!

该App能调用摄像头的同时调用手机中的IMU,离线采集,方便导入,适配华为手机效果较好。

我自己测试了很多手机,从五六年前发布的华为nova3(Kirin 970)、到18年的华为旗舰Mate20(Kirin 980)、nova6(Kirin 990)最后还试了遥遥领先的Mate40 Pro(kirin 9000)和发热严重(doge)…的Mate50Pro,可以说从低端到入门,再到高端旗舰都试了一遍,效果可以说非常好了。(我甚至觉得nova效果比旗舰都好hh,异常的稳定)。

其他品牌例如安卓之光小米11Ultra、手感极好的小米12S、红米K30S Ultra、红米K50 Ultra、vivo X80(发哥9000)、oppo find x3、荣耀V8(还有一些不记得了),只能说差点意思。当然,这个环节影响最大的是IMU标定那一步,当时我在最后说直接利用公制参数来联合标定其实也是不准确的(如果你的手机标定实在太差,记得有一次某个品牌标定十次,十次都天差地别…,也是可以直接上公制参数的)。

哦对了,之前说到了手机越贵越新效果也就越好其实也是有点问题的,手机并不是越新越好,太高的版本系统不兼容老App的问题也存在。

安装完成后,开始记录record,结束stop。分辨率建议640×480。
该数据记录保存在本地的Android文件夹下,类似小米华为系列的手机需要打开开发者模式并进入USB调试才可以找到。为了方便,我们将文件直接将文件发送到电脑也好,找到一个不需要权限的文件夹放入也好,反正怎么简单怎么来~

发现本地文件:
【VINS-MONO测试】安卓手机采集mono+imu数据
是以一个采集时间来命名的文件,进入发现里面有许多数据,其中movie.mp4是视频流信息,gyro_accel.csv是imu的含有时间戳、加速度计和陀螺仪的数据,frame_timestamp.mp4是视频帧时间戳数据。其它目前用不到,涉及地磁、GPS等信息,也说明该app可以多数据源融合

新更新的2.0版本砍掉了不需要的地磁和GNSS数据,整体非常精简!(作者也很热心,有问题基本都是很快回复的~~谢谢大佬)

【VINS-MONO测试】安卓手机采集mono+imu数据

最近做实验需要用的地磁信息,作者在issue中有回复,需要apk的话可以去找,

二、打包

打包目前有两种方法,一种是直接在ROS下打包,另一种是通过kalibr_bagcreater.py脚本来进行打包。

更新:手机离线采集有专门的脚本,用ros命令打包一般是相机,下面是一些ROS打包的过程
【INDEMIND相机运行SLAM】

我们采用kalibr提供的脚本打包方式,打包脚本程序kalibr_bagcreater
拷贝到Ubuntu下,试运行发现缺少一个叫utility_functions.py的第三方库,添加以后发现可以运行了。
库的地址: utility_functions.py
本地创建一个文件,起名dataset2,放入视频和imu的时间戳以及MP4
【VINS-MONO测试】安卓手机采集mono+imu数据
编译后会生成一个pyc文件,是生成的中间文件,不需要在意。
记录一下输入参数的过程:
通过阅读kalibr_bagcreater.py代码,输入-h或–help后会显示帮助文档,按照提示输入参数。

【VINS-MONO测试】安卓手机采集mono+imu数据

按照这样填入参数,运行!当然你也可以指定包的名字。

【VINS-MONO测试】安卓手机采集mono+imu数据

ubuntu16.04下,运行Python脚本的方式是直接:

./kalibr_bagcreater_imu.py --video movie.mp4 --imu gyro_accel.csv --video_time_file frame_timestamps.txt --output imu.bag

ubuntu18.04下,前面要加上Python 运行甲脚本:

python ./kalibr_bagcreater_imu.py --video movie.mp4 --imu gyro_accel.csv --video_time_file frame_timestamps.txt --output imu.bag

出现打包的画面,说明正在录制。

如果不填写保存位置的参数,得到的.bag文件也是自动保存到这个文件夹下,我们发现出现了一个output.bag的文件。

这样就打包完成了,接下来任务就是如何配置launch文件,设置yaml参数,让bag包在vins-mono下运行。
【VINS-MONO测试】安卓手机采集mono+imu数据

三、简单测试

第一次打包完成后,可以简单的在vins下跑一跑,看看有没有问题。在运行之前,要修改launch启动文件和yaml配置文件。
简单起见,就在本地文件夹vins-mono下添加修改即可。
1.修改yaml文件。
进入catkin_ws工作空间,找到存放源代码的文件夹s文章来源地址https://www.toymoban.com/news/detail-510836.html

到了这里,关于【VINS-MONO测试】安卓手机采集mono+imu数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity框架-Mono管理器

    一、前言 在Unity开发中,经常会遇到需要在没有继承 MonoBehaviour 的类中使用协程和Update的情况。为了解决这个问题,我们可以使用Mono管理器,该管理器允许非 MonoBehaviour 类使用一些常用的Mono方法。在本篇文章中,我们将深入探讨Mono管理器的实现以及如何使用它进行协程管理

    2024年01月20日
    浏览(31)
  • Unity—Mono.Data.Sqlite

    一、常用属性 Depth :获取一个值,用于指示当前行的嵌套深度 FieldCount :获取当前行中的列数 HasRows :获取一个值,该值指示SQLDataReader是否有行 IsClosed :指定的SQLDataReader实例是否已关闭 Item[Int32] :获取指定列(数字索引),通常在While.Read()中使用 Item[String] :获取指定列(字

    2024年02月03日
    浏览(37)
  • 响应式编程——初识 Flux 和 Mono

    by emanjusaka from ​ https://www.emanjusaka.top/2023/08/reactive-programming-flux-mono 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请留下原文地址。 Reactor 是一个响应式编程的基础类库,其中有两个很关键的类:Flux 和 Mono。掌握这两个类和相关概念有助于我们学习响应式编程。 Flux 和 M

    2024年02月09日
    浏览(32)
  • Unity框架学习--4 Mono管理器

    作用 :使不继承MonoBehaviour的类能够开启协程,并且可以使用FixedUpdate、Update、LateUpdate进行每帧更新。 原理: 1、在场景中创建一个继承MonoBehaviour的“执行者”脚本,这个脚本就专门用来开启协程和监听帧更新。 2、Mono管理器访问这个“执行者”脚本,就可以实现所需的效果

    2024年02月13日
    浏览(28)
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机图像转换由Mono10转换为Mono8(C++)

    ​ Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度

    2024年01月20日
    浏览(41)
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机图像转换由Mono10转换为Mono8(C#)

    ​ Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度

    2024年01月20日
    浏览(34)
  • 工业相机-黑白相机像素MONO格式排列解析

    工业相机-黑白相机像素MONO格式排列解析 了解图像格式,首先要了解图像的常用属性: 像素(Pixel):人眼直接感受到的图像 位图(bitmap):通过记录每一个像素值来存储和表达的图像 位深度:位图中每个像素点用多少个二进制位来表示 bmp:Windows系统中标准的位图格式 黑白相机

    2024年02月08日
    浏览(24)
  • Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现Mono12和Mono16位深度的图像保存(C#)

    ​ Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度

    2024年01月18日
    浏览(35)
  • Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现Mono12和Mono16位深度的图像保存(C++)

    ​ Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度

    2024年01月16日
    浏览(34)
  • Baumer工业相机堡盟工业相机如何联合BGAPI SDK和OpenCV实现Mono12和Mono16格式位深度的图像保存(C++)

    ​ 持之以恒挑战赛 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易

    2023年04月19日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包