AirSim:深度學(xué)習(xí)時(shí)代研究無人機(jī)的利器?
關(guān)鍵字:AirSim、虛幻引擎、無人機(jī)仿真、深度學(xué)習(xí)
一、前言
四旋翼無人機(jī)自發(fā)明以來已經(jīng)有了非常長遠(yuǎn)的發(fā)展,現(xiàn)階段對(duì)四旋翼無人機(jī)的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)模型已經(jīng)有了很多較深入的研究,無人機(jī)仿真方面的軟件和工具也是層出不窮。例如 Gazebo 有優(yōu)秀的物理引擎,可以模擬出真實(shí)的物理環(huán)境,同時(shí)也能夠自主搭建環(huán)境;鳳凰模擬器能夠模擬遙控器手動(dòng)飛行,對(duì)于飛手的訓(xùn)練有非常大的幫助。


現(xiàn)如今機(jī)器視覺和人工智能飛速發(fā)展,但是仿真軟件中的環(huán)境不夠逼真,直觀看起來比較假,同時(shí)背景環(huán)境也不夠豐富,并不能充分驗(yàn)證計(jì)算機(jī)視覺等相關(guān)算法。AirSim 就是在這種情況下應(yīng)運(yùn)而生的,它將四旋翼的動(dòng)力學(xué)模型與游戲引擎(虛幻引擎 Unreal)相結(jié)合,借助游戲引擎強(qiáng)大的視覺渲染能力和豐富的場(chǎng)景,彌補(bǔ)了這一缺陷。
二、虛幻引擎
Unreal Engine,簡稱UE,中文譯名為虛幻引擎,是非常出名的游戲引擎,它是一套完整的游戲開發(fā)工具,目前已經(jīng)被廣泛應(yīng)用于游戲開發(fā)、建筑設(shè)計(jì)與渲染、汽車展示、廣播與實(shí)況活動(dòng)、影視渲染、訓(xùn)練與模擬等各個(gè)領(lǐng)域中。 虛幻引擎同時(shí)還具備編輯器功能,具有照片級(jí)逼真的視覺渲染水平、支持動(dòng)態(tài)物理模擬的效果,能夠制作出栩栩如生的動(dòng)畫,甚至可以制作電影大片級(jí)的場(chǎng)面。其豐富而強(qiáng)大的數(shù)據(jù)接口,能夠?yàn)楦餍懈鳂I(yè)的專業(yè)人士帶來無限的創(chuàng)作自由。
從 UE4 版本開始,其源代碼就可以從 Github 開源社區(qū)下載,所以實(shí)質(zhì)上你可以修改任何東西,包括:物理引擎、渲染效果和用戶界面等。同時(shí) UE4 的跨平臺(tái)特性支持?Windows PC、Linux、Max OSX、iOS、安卓等平臺(tái),甚至可以支持 VR 等虛擬現(xiàn)實(shí)的設(shè)備。
虛幻商城中有非常豐富的逼真場(chǎng)景可供選擇,甚至有復(fù)原了完整了著名城市和建筑群,下圖展示的有:沙漠景觀、城市建筑、公園、森林。虛幻引擎中的所有場(chǎng)景都可以設(shè)置為 AirSim 無人機(jī)仿真的環(huán)境場(chǎng)景。

這些豐富的場(chǎng)景中,還包含了風(fēng)沙雨雪霧、落葉等不同天氣或氣候情況下的渲染,甚至包括同一地區(qū)不同季節(jié)時(shí)的景觀。這些在仿真中都可以任意設(shè)置,能夠充分測(cè)試視覺算法在不同的場(chǎng)景下的效果。

三、什么是 AiriSim
AirSim 是微軟公司開發(fā)的基于游戲引擎的一個(gè)開源的跨平臺(tái)仿真器,它可以用于無人機(jī)、無人機(jī)車等機(jī)器人的物理和視覺仿真。它同時(shí)支持基于PX4 和 ArduPilot?等飛行控制器的軟件在環(huán)仿真,目前還支持基于PX4的硬件在環(huán)仿真。
AirSim 是作為虛幻游戲引擎的插件而存在的,適配基于虛幻引擎搭建的環(huán)境,目前AirSim也有一個(gè)實(shí)驗(yàn)版本的插件適用于Unity引擎。得益于游戲引擎優(yōu)秀的視覺渲染效果,AirSim 仿真平臺(tái)在具備物理仿真的同時(shí)也具備了逼真的視覺仿真效果,這是其一大亮點(diǎn),非常適用于進(jìn)行基于深度學(xué)習(xí)等視覺AI仿真驗(yàn)證。AirSim提供了很多API接口,用于讀取數(shù)據(jù)、控制飛行、控制天氣、讀取照片等,使用 API接口可以實(shí)現(xiàn)自動(dòng)收集數(shù)據(jù)集的功能,還可以測(cè)試視覺算法。AirSim的開發(fā)者希望這個(gè)平臺(tái)能夠幫助研究人員用于深度學(xué)習(xí)、計(jì)算機(jī)視覺、強(qiáng)化學(xué)習(xí)等人工智能相關(guān)的研究,適用于無人機(jī)、無人駕駛、機(jī)器人等領(lǐng)域的應(yīng)用。
AirSim支持多平臺(tái)運(yùn)行,在?Windows、Linux?和?Mac系統(tǒng)中可以運(yùn)行,但是目前只有在Windows系統(tǒng)下才可以創(chuàng)建工程,而對(duì)于Linux系統(tǒng)下的使用,需要首先在 Windows 系統(tǒng)下創(chuàng)建好工程,再復(fù)制到Linux系統(tǒng)下。
AirSim的官方文檔地址是:Home - AirSim (microsoft.github.io)


四、AirSim 可以做什么
4.1 手動(dòng)飛行(駕駛)
使用可以接入電腦的無人機(jī)遙控器或者 XBox,都可以實(shí)現(xiàn)手動(dòng)飛行仿真中的無人機(jī),它不只能夠訓(xùn)練飛手的飛行技術(shù),還可以瀏覽美景。得益于虛幻商城中的豐富且逼真的場(chǎng)景,能夠給予玩家震撼的視覺效果,使用1比1復(fù)原的實(shí)現(xiàn)場(chǎng)景時(shí),甚至有一種駕駛飛機(jī)瀏覽世界各地名勝的感覺。

4.2 程序控制無人機(jī)飛行(控制算法測(cè)試)
AirSim 提供了豐富的程序控制接口,用戶可以使用多種編程語言來編寫程序,實(shí)現(xiàn)對(duì)無人機(jī)的狀態(tài)讀取和飛行控制。AirSim 還支持硬件在環(huán)仿真,可以最大程度模擬四旋翼的飛行效果。
控制接口功能豐富,
包括四旋翼的:位置控制、速度控制、姿態(tài)控制、電機(jī)控制等,
支持電機(jī)轉(zhuǎn)速控制、底層飛控的PID參數(shù)調(diào)節(jié),滿足了從基礎(chǔ)控制到高機(jī)動(dòng)控制等不同的任務(wù)需求。
使用AirSim APIs 接口可以讀取無人機(jī)的狀態(tài)(位置、速度、姿態(tài)等),包括真實(shí)狀態(tài)、傳感器測(cè)量到的有噪聲的狀態(tài)信息。
AirSim 還支持同時(shí)仿真多架無人機(jī),可以測(cè)試集群和多無人機(jī)協(xié)同算法。
AirSim 支持在視口中直接作圖,由此可以顯示無人機(jī)的飛行軌跡。


4.3 數(shù)據(jù)集自動(dòng)收集、視覺算法測(cè)試
仿真場(chǎng)景中可以知道全部的信息,使用程序控制,可以很方便地實(shí)現(xiàn)對(duì)無人機(jī)位置和姿態(tài)的控制,同時(shí)也能方便地控制相機(jī)的姿態(tài)和內(nèi)參。也可以同時(shí)添加多個(gè)相機(jī),安裝在無人機(jī)的不同位置。
AirSim 中可以獲得的圖像包括:單目 RGB圖像、雙目深度圖、分割圖、紅外圖等。
由于是仿真模擬,深度圖和分割圖非常完美,并不能完全模擬顯示中的不確定性。
紅外圖是基于分割圖生成的,需要自己定義每個(gè)物體的溫度。
自由設(shè)置相機(jī)的數(shù)量、位置、內(nèi)參等。
自由添加噪聲:相機(jī)畸變、運(yùn)動(dòng)模糊、圖片隨機(jī)噪聲等。
自由設(shè)置不同的天氣狀態(tài):雨、雪、霧、風(fēng)速、落葉、沙塵等。
自由改變無人機(jī)的外觀,可以將無人機(jī)外形設(shè)置成任意型號(hào)的無人機(jī),如 DJI Mavic。
可以導(dǎo)入現(xiàn)實(shí)中的環(huán)境。
設(shè)置時(shí)間流逝,由此可以改變一天中太陽的位置,從而產(chǎn)生光照強(qiáng)度、光源位置變化,產(chǎn)生環(huán)境變化。

4.4 強(qiáng)化學(xué)習(xí)
AirSim 支持獲取碰撞信息,碰撞信息不止包括是否發(fā)生碰撞,還包括:發(fā)生碰撞的位置、發(fā)生碰撞的表面、碰撞深度等信息。使用程序可以讀取碰撞信息、無人機(jī)狀態(tài)等,加上強(qiáng)化學(xué)習(xí)算法,可以實(shí)現(xiàn)強(qiáng)化學(xué)習(xí)的訓(xùn)練。

視頻來源:官方文檔(Reinforcement Learning - AirSim (microsoft.github.io)
4.5 多傳感器融合
AirSim 目前支持的傳感器有:相機(jī)、雙目相機(jī)、紅外相機(jī)、雷達(dá)、距離傳感器、氣壓計(jì)、IMU、GPS、磁力計(jì)。同時(shí)使用多個(gè)傳感器,可以測(cè)試多傳感器融合算法。
五、總結(jié)與展望
AirSim 是微軟公司研發(fā)的基于虛幻引擎(Unreal Engine)的仿真平臺(tái),可以用于無人機(jī)或無人車的仿真,得益于虛幻引擎強(qiáng)大的視覺渲染能力和豐富且逼真的場(chǎng)景,AirSim中的仿真完全可以做到視覺上以假亂真的效果,非常適合無人機(jī)在視覺算法、機(jī)器學(xué)習(xí)、強(qiáng)化學(xué)習(xí)等領(lǐng)域的研究。
隨著計(jì)算機(jī)視覺、機(jī)器學(xué)習(xí)和強(qiáng)化學(xué)習(xí)等領(lǐng)域的飛速發(fā)展,AirSim這一強(qiáng)大的工具必將得到大量的應(yīng)用,并有力地推動(dòng)相關(guān)領(lǐng)域的快速發(fā)展。
官方資料:
AirSim 官網(wǎng)文檔(?Home - AirSim (microsoft.github.io)?)
虛幻引擎官方文檔(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)

本文由西湖大學(xué)智能無人系統(tǒng)實(shí)驗(yàn)室博士生寧子安原創(chuàng),
申請(qǐng)文章授權(quán)請(qǐng)聯(lián)系后臺(tái)相關(guān)運(yùn)營人員。
▌微信公眾號(hào):空中機(jī)器人前沿
▌知乎:空中機(jī)器人前沿(本文鏈接:https://zhuanlan.zhihu.com/p/447929016)
▌Youtube:Aerial robotics @ Westlake University
▌實(shí)驗(yàn)室網(wǎng)站:https://shiyuzhao.westlake.edu.cn/??
