GithubHelp home page GithubHelp logo

yuan-ts / airsim-vio-dataset-gain Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jike5/airsim-vio-dataset-gain

0.0 0.0 0.0 3.75 MB

获取AirSim仿真惯性、视觉数据(解决官方提供的频率较低问题)

C++ 63.62% Python 36.38%

airsim-vio-dataset-gain's Introduction

AirSim-Dataset-Gain

1 介绍

本项目为参考VIODE数据集的采集方法进行的复现,可以实现采集高频率、高质量的IMU和图像数据。

本项目介绍

  • 本项目目前支持采集采集IMU单目ImageGroundTruth数据,采集时为EuRoc的ASL格式,提供了Python脚本可以转换为rosbag格式

  • 本项目提供了所需要的源代码和json配置文件(硬件在环方式)

  • 本项目提供了运行vins-mono所需的参考配置文件,并提供了相关文档用于支持计算自定义的内外参

  • 本项目同时提供了evo评估工具在数据集上的使用方法 (空缺链接!随后补上)

  • 本项目提供部分本人采集的数据集:

    本场景下载地址:AirSimNH

    NH_数据集图片

    本场景下载地址:001,002

    myVIODE数据内容展示

2 系统架构

VIODE方法架构图

您可以不选择使用硬件在环的方式,只要能够实现对AirSim中的无人机进行运动控制即可

3 运行环境

本项目基于AirSim、UE4等环境,具体版本:

4 安装教程

Prerequests
  1. 完成AirSim的在Win下的安装,参考

  2. 下载本项目:

    git clone https://github.com/jike5/AirSim-VIO-Dataset-Gain.git

5 使用说明

  1. 将本项目文件添加到AirSim项目中

    为了避免配置Visual Studio项目,非常建议采用以下方法:

    • 打开AirSim项目文件夹,进入HelloDrone文件夹下

    • 复制本项目的*.cppHelloDrone目录

    image-20220416192259756
  2. 使用Visual Studio2019打开AirSim项目

    双击AirSim/AirSim.sln打开VS

    设置启动项:

    image-20220416192832064

    包含step_one.cppstep_two.cpp

    image-20220416193236557

    右键main.cpp-->属性-->从生成排除:是

    image-20220416193336130

    用同样的方法将step_one.cpp设置为:从生成排除:否;将step_two.cpp设置为:从生成排除:是

    这样F5就会启动HelloDrone项目下的step_one.cppmain函数了,后面切换第二步时只需用把step_one.cpp从生成排除,把step_two.cpp包含即可。在启动该程序前还需要配置一下硬件在环控制。

  3. 设置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),可以通过遥控器解锁进行起飞、控制表明配置成功

    (以上叙述较为简略,建议没有用过飞控的参考AirSim官方PX4,或者考虑前面提到的使用API或者遥控器直接连接

  4. 启动IMU&GT采集程序

    回到Visual Studio2019,F5启动程序,默认数据会保存在D:\\AirSim\\dataset下,文件夹名为当前日期和时间,格式与EuRoc数据集保持一致

    EuRoc数据集格式
  5. 采集相机数据

    (1) 采集相机数据前,需要到默认的数据保存目录(D:\\AirSim\\dataset)下复制刚刚IMUGT数据所在的文件夹名:

    这样才能保证数据在同一目录下。

    (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窗口在一帧一帧的采集图像数据。

  6. 如果您需要获得rosbag格式,您需要一台安装了ros的电脑。本项目在scripts/euroc2rosbag.py中提供了转换的脚本,使用方法:

    cd scripts
    python euroc2rosbag.py --folder MH_01 --output-bag MH_01.bag
    

参与贡献

gitee上提交PR和issue流程和注意事项

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

TODO

后续可能会增加双目、深度图、语义等数据,目前本人暂无需求

Contact:

Email: [email protected]

B站/知乎/GZH:智能之欣

airsim-vio-dataset-gain's People

Contributors

jike5 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.