熱門
使用Unity創(chuàng)造并快速訓(xùn)練數(shù)字孿生機(jī)器人
人工智能系列項目展示了創(chuàng)作者使用Unity制作的一系列人工智能項目,,項目涉及人工智能產(chǎn)品,。本案例中展示了最近使用Unity為OpenCV空間人工智能競賽制作的一個項目的一些實用資料,該項目以一系列令人印象深刻的例子展示了Unity中的機(jī)器人技術(shù),、計算機(jī)視覺,、強(qiáng)化學(xué)習(xí)和增強(qiáng)現(xiàn)實等功能。
Unity是世界一流的實時3D引擎,。雖然Unity的游戲引擎和工具傳統(tǒng)上只支持游戲開發(fā)者,,但AI@Unity團(tuán)隊正在圍繞機(jī)器學(xué)習(xí)、計算機(jī)視覺和機(jī)器人模擬等領(lǐng)域構(gòu)建全新的工具,,以支持游戲以外的應(yīng)用,,尤其是那些使用人工智能和實時3D環(huán)境的應(yīng)用。
在OpenCV空間人工智能競賽中Gerard Espona和KaudaTeam提供了多個案例作品,,他們大量使用了Unity的人工智能工具和軟件包,。團(tuán)隊通過使用Unity的感知包訓(xùn)練計算機(jī)視覺模型并通過移動代理工具包來訓(xùn)練他們的機(jī)器學(xué)習(xí)模型,此外他們還做出一個機(jī)器人手臂的模擬演示案例,。
OpenCV計劃
Kauda?Team名字的由來
Kauda Team由Giovanni Lerda和Gerard Espona兩名成員組成,,名字來自Giovanni創(chuàng)建的免費(fèi)開源桌面大小的3D打印5軸機(jī)械臂——Kauda。這是一個非常棒的桌面機(jī)器臂,,任何人都可以使用,,且允許他們在項目上遠(yuǎn)程合作。
Kauda機(jī)械臂
如何在Unity獲得Kauda機(jī)械臂的數(shù)字孿生
Giovanni Lerda和Gerard Espon開發(fā)了Kauda工作室,,這是一個Unity的應(yīng)用程序,,目的是為了生成Kauda的數(shù)字孿生。它通過反向運(yùn)動學(xué)(IK)控制,、USB/藍(lán)牙連接到真實的Kauda,,提供了功能齊全且精確的Kauda機(jī)械臂模擬,并可以支持多個OpenCV OAK-D相機(jī),。
OAK-D相機(jī)是什么,,它是如何與Unity一起使用的?
OAK-D相機(jī)結(jié)合了兩個立體深度相機(jī)和一個帶有板載處理功能的4K彩色相機(jī)(由英特爾MyriadX VPU提供),,可自動處理各種情況,。作為競賽作品,Kauda Team為OAK設(shè)備構(gòu)建了一個Unity插件,,但他們也想在Unity中創(chuàng)造出一個數(shù)字孿生設(shè)備,。OAK-D Unity數(shù)字孿生相機(jī)為他們提供了幫助,這是一部具有精確模擬功能的3D虛擬相機(jī),,可用于合成數(shù)據(jù)收集,。OAK-D Unity數(shù)字孿生相機(jī)幫助他們將虛擬圖像輸入到真實設(shè)備的管道中。讓他們通過使用Unity感知包來收集合成素材,,并用于為虛擬OAK-D相機(jī)訓(xùn)練定制項目,。
OAK-D相機(jī)中的Unity模型
在Unity中擁有一個數(shù)字孿生模型的優(yōu)勢
擁有一個數(shù)字孿生讓Gerard Espon能夠在Kauda上啟用額外的功能。他們還能夠使用Unity的增強(qiáng)現(xiàn)實(AR)功能與現(xiàn)實世界中的虛擬機(jī)器人進(jìn)行交互,。其中的一個應(yīng)用是學(xué)習(xí)如何在不需要機(jī)器人的情況下對機(jī)器人進(jìn)行維護(hù),。這也允許他們用無代碼方法編程順序任務(wù),使機(jī)器臂精確的完成任務(wù),。
數(shù)字孿生還能使他們對機(jī)械臂進(jìn)行強(qiáng)化學(xué)習(xí)(RL)訓(xùn)練,。RL是一個耗時的過程,除了極其簡單的案例之外,,任何事情都需要模擬,。為此Kauda?Team在Unity中使用了ML-agent工具包來執(zhí)行RL訓(xùn)練以對機(jī)械臂進(jìn)行訓(xùn)練與控制。
Kauda?Team還在Unity中測試了人機(jī)協(xié)作和安全程序,,他們在Unity中創(chuàng)建了數(shù)字孿生機(jī)械臂,,并使用攝像頭測量人類在機(jī)械臂區(qū)域內(nèi)的位置,。可以想象這樣做是為了那些更大型的機(jī)器人,,當(dāng)程序錯誤發(fā)生時,,它會對人類造成傷害。模擬環(huán)境讓他們可以在不危及人類安全的情況下測試這些場景,。
ML-agent工具包的用法
“強(qiáng)化學(xué)習(xí)(RL)訓(xùn)練是一個強(qiáng)大的機(jī)器人框架,,而Unity ML-agent也是一個很棒的工具包,它使我們的數(shù)字孿生機(jī)械臂能夠?qū)W習(xí)和執(zhí)行復(fù)雜的任務(wù),。由于競賽的時間有限,,目標(biāo)是實現(xiàn)一個簡單的RL“接觸”任務(wù),并將生成的模型轉(zhuǎn)換為在OAK-D設(shè)備上運(yùn)行推理,。通過使用ML-agent工具包,,機(jī)器人使用IK控制學(xué)習(xí)的最佳路徑,以動態(tài)接觸檢測接觸到的3D對象,?!盙erard Espon說道。
為了實現(xiàn)這一點,,Kauda?Team首先使用了spatial tiny YOLO,,這幫助他們實現(xiàn)了三維物體檢測。RL模型(PPO)使用結(jié)果檢測和IK控制點的位置作為輸入觀察,。關(guān)于輸出動作,,IK控制點的能夠?qū)崿F(xiàn)3軸移動。獎勵系統(tǒng)基于每一步的小懲罰和機(jī)器人接觸物體時的大獎勵(1.0)而制定,。為了加快訓(xùn)練速度,,Kauda?Team利用多代理同時學(xué)習(xí)來開發(fā)虛擬spatial tiny YOLO,其輸出動作與真實spatial tiny YOLO相同,。
當(dāng)模型訓(xùn)練完成后,,他們使用OpenVino工具包將其轉(zhuǎn)換為OpenVino IR和Myriad Blob格式,將模型加載到OAK-D設(shè)備上并運(yùn)行推理,。最后管道中是一個spatial tiny YOLO加RL模型,。這里他們使用了Unity插件,因為Unity插件能夠幫助他們在Unity中同時使用ML-Agents和OAK-D代理來比較推理,。
合成數(shù)據(jù)
管道的第一階段是3D對象檢測器,,這是一個基于人工智能的計算機(jī)視覺和機(jī)器人任務(wù)的一個非常常見的起點。在案例中,,Kauda?Team使用了一個預(yù)先訓(xùn)練好的小型YOLO v3模型Unity感知包,,這讓他們能夠為機(jī)器人的訓(xùn)練定制類別。這讓Kauda?Team能夠在幾分鐘內(nèi)生成一個帶有自動地面真實邊界框標(biāo)記的大型3D模型合成數(shù)據(jù)集,。通常,,收集和標(biāo)記過程是非常耗時的,。擁有生成豐富數(shù)據(jù)集的能力是一大進(jìn)步,該數(shù)據(jù)集具有大量隨機(jī)化選項,,擁有不同的角度,、打光情況,、紋理變化等,。
開發(fā)中的困難
“同步虛擬項目和現(xiàn)實世界項目所需的時間有時會有些偏離。我們認(rèn)為這可以通過在未來使用ROS來解決,,讓我們很高興的是Unity現(xiàn)在正式支持ROS了,!”Gerard Espon說道。
電話:010-50951355 傳真:010-50951352 郵箱:[email protected] ,;點擊查看區(qū)域負(fù)責(zé)人電話
手機(jī):13811546370 / 13720091697 / 13720096040 / 13811548270 /
13811981522 / 18600440988 /13810279720 /13581546145