关注公众号,发现CV技术之美
本文转自 空中机器人前沿,作者西湖大学-宁子安。
本文关键字:AirSim、虚幻引擎、无人机仿真、深度学习
前言
四旋翼无人机自发明以来已经有了非常长远的发展,现阶段对四旋翼无人机的运动学和动力学模型已经有了很多较深入的研究,无人机仿真方面的软件和工具也是层出不穷。例如Gazebo有优秀的物理引擎,可以模拟出真实的物理环境,同时也能够自主搭建环境;凤凰模拟器能够模拟遥控器手动飞行,对于飞手的训练有非常大的帮助。
Gazebo 中四旋翼无人机飞行效果图
凤凰模拟器中用遥控器控制四旋翼的飞行
现如今机器视觉和人工智能飞速发展,但是仿真软件中的环境不够逼真,直观看起来比较假,同时背景环境也不够丰富,并不能充分验证计算机视觉等相关算法。AirSim就是在这种情况下应运而生的,它将四旋翼的动力学模型与游戏引擎(虚幻引擎Unreal)相结合,借助游戏引擎强大的视觉渲染能力和丰富的场景,弥补了这一缺陷。
虚幻引擎
Unreal Engine,简称UE,中文译名为虚幻引擎,是非常出名的游戏引擎,它是一套完整的游戏开发工具,目前已经被广泛应用于游戏开发、建筑设计与渲染、汽车展示、广播与实况活动、影视渲染、训练与模拟等各个领域中。虚幻引擎同时还具备编辑器功能,具有照片级逼真的视觉渲染水平、支持动态物理模拟的效果,能够制作出栩栩如生的动画,甚至可以制作电影大片级的场面。其丰富而强大的数据接口,能够为各行各业的专业人士带来无限的创作自由。
从UE4版本开始,其源代码就可以从Github开源社区下载,所以实质上你可以修改任何东西,包括:物理引擎、渲染效果和用户界面等。同时 UE4的跨平台特性支持 Windows PC、Linux、Max OSX、iOS、安卓等平台,甚至可以支持VR等虚拟现实的设备。
虚幻商城中有非常丰富的逼真场景可供选择,甚至有复原了完整的著名城市和建筑群,下图展示的有:沙漠景观、城市建筑、公园、森林。虚幻引擎中的所有场景都可以设置为AirSim无人机仿真的环境场景。
虚幻商城中部分环境展示:沙漠、城市、公园、森林
这些丰富的场景中,还包含了风沙雨雪雾、落叶等不同天气或气候情况下的渲染,甚至包括同一地区不同季节时的景观。这些在仿真中都可以任意设置,能够充分测试视觉算法在不同的场景下的效果。
虚幻商城中 Realistic Landscapes 环境 不同季节和气候的景色展示
什么是 AiriSim
AirSim 是微软公司开发的基于游戏引擎的一个开源的跨平台仿真器,它可以用于无人机、无人机车等机器人的物理和视觉仿真。它同时支持基于PX4 和 ArduPilot 等飞行控制器的软件在环仿真,目前还支持基于PX4的硬件在环仿真。
AirSim 是作为虚幻游戏引擎的插件而存在的,适配基于虚幻引擎搭建的环境,目前AirSim也有一个实验版本的插件适用于Unity引擎。得益于游戏引擎优秀的视觉渲染效果,AirSim 仿真平台在具备物理仿真的同时也具备了逼真的视觉仿真效果,这是其一大亮点,非常适用于进行基于深度学习等视觉AI仿真验证。AirSim提供了很多API接口,用于读取数据、控制车辆、控制天气等,使用 API接口可以实现自动收集数据集的功能,还可以测试视觉算法。AirSim的开发者希望这个平台能够帮助研究人员用于深度学习、计算机视觉、强化学习等人工智能相关的研究,适用于无人机、无人驾驶、机器人等领域的应用。
AirSim支持多平台运行,在 Windows、Linux 和 Mac系统中可以运行,但是目前只有在Windows系统下才可以创建工程,而对于Linux系统下的使用,需要首先在 Windows 系统下创建好工程,再复制到Linux系统下。
AirSim的官方文档地址是:Home - AirSim (microsoft.github.io)
手动驾驶汽车
手动飞行无人机
AirSim 可以做什么
1. 手动飞行(驾驶)
使用可以接入电脑的无人机遥控器或者 XBox,都可以实现手动飞行仿真中的无人机,它不只能够训练飞手的飞行技术,还可以浏览美景。得益于虚幻商城中的丰富且逼真的场景,能够给予玩家震撼的视觉效果,使用1比1复原的实现场景时,甚至有一种驾驶飞机浏览世界各地名胜的感觉。
使用 FrSky Taranis X9D Plus 航模遥控器手动飞行
2.程序控制无人机飞行(控制算法测试)
AirSim 提供了丰富的程序控制接口,用户可以使用多种编程语言来编写程序,实现对无人机的状态读取和飞行控制。AirSim 还支持硬件在环仿真,可以最大程度模拟四旋翼的飞行效果。
控制接口功能丰富,
包括四旋翼的:
位置控制、速度控制、姿态控制、电机控制
等,
支持
电机转速控制
、底层飞控的
PID参数调节
,满足了从基础控制到
高机动控制
等不同的任务需求。
使用AirSim APIs 接口可以读取无人机的状态(位置、速度、姿态等),包括真实状态、传感器测量到的有噪声的状态信息。
AirSim 还支持同时仿真多架无人机,可以测试
集群和多无人机协同
算法。
AirSim 支持在视口中直接作图,由此可以显示无人机的
飞行轨迹
。
多无人机协同编队控制
无人机跟踪8字形轨迹
3. 数据集自动收集、视觉算法测试
仿真场景中可以知道全部的信息,使用程序控制,可以很方便地实现对无人机位置和姿态的控制,同时也能方便地控制相机的姿态和内参。也可以同时添加多个相机,安装在无人机的不同位置。
AirSim 中可以获得的图像包括:
单目 RGB图像、双目深度图、分割图、红外图
等。
由于是仿真模拟,深度图和分割图非常完美,并不能完全模拟显示中的不确定性。
红外图是基于分割图生成的,需要自己定义每个物体的温度。
自由设置相机的
数量、位置、内参
等。
自由添加噪声:
相机畸变、运动模糊、图片随机噪
声
等。
自由设置不同的天气状态:
雨、雪、雾、风速、落叶、沙尘
等。
自由
改变无人机的外观
,可以将无人机外形设置成任意型号的无人机,如 DJI Mavic。
可以导入现实中的环境。
设置时间流逝,由此可以
改变一天中太阳的位置
,从而产生光照强度、光源位置变化,产生环境变化。
导入到AirSim 中的不同型号和外观的四旋翼
4.强化学习
AirSim 支持获取碰撞信息,碰撞信息不止包括是否发生碰撞,还包括:发生碰撞的位置、发生碰撞的表面、碰撞深度等信息。使用程序可以读取碰撞信息、无人机状态等,加上强化学习算法,可以实现强化学习的训练。
强化学习训练四旋翼无人机的飞行(视频来源:官方文档 https://microsoft.github.io/AirSim/reinforcement_learning/)
5. 多传感器融合
AirSim 目前支持的传感器有:相机、双目相机、红外相机、雷达、距离传感器、气压计、IMU、GPS、磁力计。同时使用多个传感器,可以测试多传感器融合算法。
总结与展望
AirSim 是微软公司研发的基于虚幻引擎(Unreal Engine)的仿真平台,可以用于无人机或无人车的仿真,得益于虚幻引擎强大的视觉渲染能力和丰富且逼真的场景,AirSim中的仿真完全可以做到视觉上以假乱真的效果,非常适合无人机在视觉算法、机器学习、强化学习等领域的研究。
随着计算机视觉、机器学习和强化学习等领域的飞速发展,AirSim这一强大的工具必将得到大量的应用,并有力地推动相关领域的快速发展。
官方资料:
·AirSim 官网文档 :
https://microsoft.github.io/AirSim/
·虚幻引擎官方文档 :
https://docs.unrealengine.com/4.27/en-US/Basics/GettingStarted/
·虚幻商城 :
https://www.unrealengine.com/marketplace/zh-CN/store
·AirSim 官方源码 - GitHub :
https://github.com/Microsoft/AirSim
END
加入「机器人、AR」交流群👇备注:机器人