走进Airsim,教你如何做机器人与视觉的融合仿真
点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达

作者丨宁子安
来源丨空中机器人前沿
点击进入—>3D视觉工坊学习交流群
前言
四旋翼无人机自发明以来已经有了非常长远的发展,现阶段对四旋翼无人机的运动学和动力学模型已经有了很多较深入的研究,无人机仿真方面的软件和工具也是层出不穷。
例如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/content-cat/assets/environments?count=20&sortBy=effectiveDate&sortDir=DESC&start=0
·AirSim 官方源码 - GitHub :
https://github.com/Microsoft/AirSim
本文由西湖大学智能无人系统实验室博士生宁子安原创,申请文章授权请联系后台相关运营人员。
本文仅做学术分享,如有侵权,请联系删文。
干货下载与学习
后台回复:巴塞罗那自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件
后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf
后台回复:3D视觉课程,即可学习3D视觉领域精品课程
3D视觉工坊精品课程官网:3dcver.com
1.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
2.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
3.国内首个面向工业级实战的点云处理课程
4.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
5.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
6.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
7.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
8.从零搭建一套结构光3D重建系统[理论+源码+实践]
9.单目深度估计方法:算法梳理与代码实现
10.自动驾驶中的深度学习模型部署实战
11.相机模型与标定(单目+双目+鱼眼)
12.重磅!四旋翼飞行器:算法与实战
13.ROS2从入门到精通:理论与实战
14.国内首个3D缺陷检测教程:理论、源码与实战
15.基于Open3D的点云处理入门与实战教程
16.透彻理解视觉ORB-SLAM3:理论基础+代码解析+算法改进
17.机械臂抓取从入门到实战
重磅!粉丝学习交流群已成立
交流群主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、ORB-SLAM系列源码交流、深度估计、TOF、求职交流等方向。
扫描以下二维码,添加小助理微信(dddvisiona),一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿,微信号:dddvisiona
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看,3天内无条件退款

高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
