本项目为参考VIODE数据集的采集方法进行的复现,可以实现采集高频率、高质量的IMU和图像数据。
本项目介绍
-
本项目目前支持采集采集
IMU
、单目Image
和GroundTruth
数据,采集时为EuRoc
的ASL格式,提供了Python脚本可以转换为rosbag
格式 -
本项目提供了所需要的源代码和json配置文件(硬件在环方式)
-
本项目同时提供了evo评估工具在数据集上的使用方法 (空缺链接!随后补上)
-
本项目提供部分本人采集的数据集:
本场景下载地址:AirSimNH
您可以不选择使用硬件在环的方式,只要能够实现对AirSim中的无人机进行运动控制即可
本项目基于AirSim、UE4等环境,具体版本:
- AirSim:1.6.0
- UE4:4.25(无关紧要)
- 操作系统:windows10
- IDE:Visual Studio2019(可以正常编译AirSim)
-
完成AirSim的在Win下的安装,参考。
-
下载本项目:
git clone https://github.com/jike5/AirSim-VIO-Dataset-Gain.git
-
将本项目文件添加到
AirSim
项目中为了避免配置
Visual Studio
项目,非常建议采用以下方法:-
打开
AirSim
项目文件夹,进入HelloDrone
文件夹下 -
复制本项目的
*.cpp
到HelloDrone
目录
-
-
使用Visual Studio2019打开AirSim项目
双击
AirSim/AirSim.sln
打开VS设置启动项:
包含
step_one.cpp
和step_two.cpp
右键
main.cpp
-->属性
-->从生成排除:是用同样的方法将
step_one.cpp
设置为:从生成排除:否
;将step_two.cpp
设置为:从生成排除:是
这样
F5
就会启动HelloDrone
项目下的step_one.cpp
的main
函数了,后面切换第二步时只需用把step_one.cpp
从生成排除,把step_two.cpp
包含即可。在启动该程序前还需要配置一下硬件在环控制。 -
设置
settings.json
本项目的
json/
目录下提供了我所使用到的所有settings.json文件本项目中
json/
目录下提供了硬件在环的json文件:px4.json
如果您不想使用硬件在环的方式控制无人机,您也可以使用API或者只使用遥控器。如果你不是使用硬件在环的方式,只需按照参考链接完成配置,可跳过本条。
本项目中采用硬件在环的原因:
- 暂无合适的遥控器;AirSim官方适配的为FrSky Taranis X9D Plus,而本人手里只有 富斯i6 和 乐迪AT9S Pro 这两款,经过测试这两款均达不到FrSky Taranis X9D Plus的效果。
- 另一种使用API的方式编写控制代码较为复杂,如果要实现简单的轨迹如圆、方形工作量还可以接受。另一方面,由于本项目采集数据服务于SLAM,视觉初始化需要一个好的初始化动作,直接使用航模遥控比API控制个人觉得可能更为便捷。
- 连接PX4的 USB口与电脑
- 打开QGC,如果能正常显示连接说明连接成功
- 保证遥控器与接收机正常连接,可以在QGC里遥控器校准里查看
- 将
json/px4.json
里的内容复制到你的AirSim配置文件,一般在C:\Users\youname\Documents\AirSim
下名为settings.json
的文件 - 打开一个编译好的AirSim环境(如Blocks),可以通过遥控器解锁进行起飞、控制表明配置成功
-
启动IMU>采集程序
回到Visual Studio2019,
F5
启动程序,默认数据会保存在D:\\AirSim\\dataset
下,文件夹名为当前日期和时间,格式与EuRoc数据集保持一致 -
采集相机数据
(1) 采集相机数据前,需要到默认的数据保存目录(
D:\\AirSim\\dataset
)下复制刚刚IMU
和GT
数据所在的文件夹名:这样才能保证数据在同一目录下。
(2) 设置json;将
json/cv.json
文件内容复制到settings.json
,将AirSim设置为CV模式,cv.json
默认设置相机平视,像素为752*480
,您可以自己修改外参和内参,具体参考:资料1和资料2(3) 设置
step_two.cpp
:从生成排除:否
,并将step_one.cpp
从生成中排除(4) 打开AirSim场景,回到Visual Studio,
F5
运行,即可看到AirSim窗口在一帧一帧的采集图像数据。 -
如果您需要获得
rosbag
格式,您需要一台安装了ros的电脑。本项目在scripts/euroc2rosbag.py
中提供了转换的脚本,使用方法:cd scripts python euroc2rosbag.py --folder MH_01 --output-bag MH_01.bag
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request
后续可能会增加双目、深度图、语义等数据,目前本人暂无需求
Contact:
Email: [email protected]
B站/知乎/GZH:智能之欣