AirSim中获取视觉、惯性数据方法研究

AirSim中获取视觉、惯性数据方法研究

最近在做AirSim中部署V-SLAM,抽空将之前尝试的许多种AirSim获取数据的方法大致总结了一下

1 获取ROS .bag格式数据

参考资料ROS: AirSim ROS Wrapper - AirSim (microsoft.github.io)

​ AirSim自身提供了ros接口,可以将AirSim仿真中的数据发布到ros中,然后对于感兴趣的数据进行rosbag record即可

​ 使用AirSim自带的ros接口具体而言有以下几种方式:

  • 使用一台win主机运行UE4+AirSim,另一台Ubuntu主机运行ros,两机通过网络通信

    该方法优点是可以在win主机中对UE4场景进行编辑,win下运行UE4更为便捷。但是两机之间通过路由器或网线通信,带宽受限,可能会导致ros下数据频率不高。

  • 在一台Ubuntu下通同时运行UE4和ros

    该方法需要在Ubuntu下配置UE4的Linux环境、AirSim的Linux环境,较为麻烦,但是只需要一台电脑。

  • 在一台win下,配置SWL(安装 WSL | Microsoft Docs),在win下运行UE4和AirSim,在SWL下运行ros进行数据记录

    该方法优点是只需用一台电脑,win环境是大多数人的首选工作环境,因此只需配置SWL环境即可,这一部分网上有一些资料,等我有时间的话会把配置过程整理一下

常见问题:

问题1:数据频率不够

解决方法一:AirSim中ros接口源代码中对多线程进行了许多的安全限制,降低了性能,可以自己写一个简单的程序实现airsim到ros数据的转发,我自己实现了一个:将图像、IMU和ground truth分别用三个线程去转发,确实提高了IMU和ground truth的频率,图像频率可能受限于机器性能,没有明显提高。

解决方法二:分两步(参考:How to create this dataset?)

If I remember correctly, IMU frequency remains at a high frequency if you don’t render images and just IMU sensor data in AirSim. If you add other sensors such as camera, however, the IMU frequency went low (and also the timestamp was a bit messy, if I recall correctly).

So, I ended up in two-step dataset generation as stated in the paper. First, generate IMU (+ground-truth odometry) at a high frequency. Second, I captured camera images from the ground-truth poses, which took a lot of time even on my good CPU & GPU Desktop.

2 获取文件形式(EuRoc数据集格式)

参考资料:Settings - AirSim (microsoft.github.io)

​ 这部分主要也是解决数据频率不够的问题,主要的思路是:AirSim中可以设置仿真的时钟倍数(clockspeed),例如我们设置仿真倍数为0.5,那么真实环境下的1s在AirSim中就是0.5s。

image-20220219185142089

​ 那么为何这样就能提高数据频率呢?举个极端的例子,假设在AirSim中我们获取一张相机图像信息需要GPU运行1s,那么我们得到的图像数据最高频率也就是1Hz。但当我们把AirSim仿真时钟倍数改为0.5后,假设2s过去了,GPU应该可以计算出两张图像,而AirSim中才过去1s,则此时图像频率为2Hz,相比与原来得到了提高。

​ 那么为何要获取成单个文件呢,在ros中记录成rosbag不行么?经过笔者实测,即使修改了AirSim的时钟倍数,在ros中仍然不会加快数据频率,因为ros在记录数据时使用的是ros本身的时钟。

​ 这部分的代码可以参考我的项目jike5/AirSim-Dataset-Gain

3 其他方案

最后分享两个数据集:

Tartanair
参考视频:youtube, bilibili

TartanAir - A Dataset to Push the Limits of Visual SLAM

主页:http://theairlab.org/tartanair-dataset
项目地址:
该数据集目前(20220219)还不包含IMU和雷达数据。场景丰富、传感器种类多,但是一开始没有初始化的运动,对于单目SLAM可能无法初始化。

VIODE
参考视频:youtube, bilibili

VIODE - A Simulated Dataset to Address the Challenges of VIO in Dynamic Environm


主页:https://github.com/kminoda/VIODE
论文: ArXiv

该数据集包含了IMU、双目的Image以及真值。数据集均是只以rosbag发布的。每个数据集开始运动具有初始化运动(但是没有EuRoc的充分),经过笔者测试,VINS-Mono可以在该数据集上正常初始化并运行。另外该数据集提供了.yaml文件,包含了相机的各项参数(据说是按照VINS-Fusion的config格式提供的)
no可以在该数据集上正常初始化并运行。另外该数据集提供了.yaml文件,包含了相机的各项参数(据说是按照VINS-Fusion的config格式提供的)

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值