在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NVIDIA Isaac Sim強化學習實作–讓Jetbot自己學會道路駕駛!

jf_cVC5iyAO ? 來源:易心Microbit編程 ? 作者:易心Microbit編程 ? 2022-12-21 11:27 ? 次閱讀

1. 介紹

承續上篇 Isaac Sim 的介紹, 讀者對于如何執行 Isaac Sim 以及它最基本的環境已經有了一些初步的了解了,接下來我們就要來玩一下能不能在模擬環境上部署深度學習模型來讓 Jetbot 機器人從無到有自己學會道路駕駛,例如下面的范例影片,透過仿真的 Jetbot 鏡頭看出去,我們可以看到機器人確實有沿著道路在行走!

e6567f52-7f73-11ed-8abf-dac502259ad0.gif

本篇文章是參考 Nvidia 官方的范例教學做成的, 想要進一步了解的讀者可以去參考看看哦。

2. 準備道路模型

要讓機器人學會道路駕駛,最基本的就是要先有個道路可以讓機器人去跑,我們在這邊使用樂高的道路平板來拼湊出基本的道路,好讓機器人可以學習如直走跟轉彎。

2.1. LeoCAD

1.首先,我們必須去下載LeoCAD, 一款專門用來畫樂高模型的繪圖軟件,請點選下方的鏈接來下載并安裝。

e7545b40-7f73-11ed-8abf-dac502259ad0.png

2.安裝完成后,啟動 LeoCAD,在右邊的零件表搜尋一下四種道路平板,

?44336p01 Baseplate 32×32 Road 6-Stud Straight

?44342p01 Baseplate 32×32 Road 6-Stud Curve

?44341p01 Baseplate 32×32 Road 6-Stud T-Junction

?44343p01 Baseplate 32×32 Road 6-Stud Crossroad

e78ca52c-7f73-11ed-8abf-dac502259ad0.png

3.可以試著把四片平板組合起來,看看是不是可以拼成以下的道路圖。

e7beb062-7f73-11ed-8abf-dac502259ad0.png

4.那么最后就是把這幾件平板輸出成COLLADA 檔,準備做進一步的轉檔處理。

e8a3332c-7f73-11ed-8abf-dac502259ad0.png

2.2. Blender

前面提過我們拿到了道路的 COLLADA 檔,這是一種用來在多個3D軟件交換用的格式。但是我們還得要用 Blender 再進行一次轉檔,才能轉成可以在 Isaac Sim 渲染的圖檔。

1.下載并安裝 Blender

e8e48f70-7f73-11ed-8abf-dac502259ad0.png

2.將剛剛輸出的 COLLADA 檔匯到 Blender 中

e92fb0ea-7f73-11ed-8abf-dac502259ad0.png

匯入后應該可以看到道路的圖文件顯示如下

e955e922-7f73-11ed-8abf-dac502259ad0.png

3.接下來我們將每一塊零件的偏移量歸零,因為等會要丟到 Isaac Sim 時,會用程序組裝出各種可能的道路,所以我們必須確保零件的原點都是一致的。

e99a06d4-7f73-11ed-8abf-dac502259ad0.png

4.從新命名每一個零件,方便我們待會匯入到Isaac Sim 時比較好辨認。

e9cf691e-7f73-11ed-8abf-dac502259ad0.png

5.最后輸出圖檔成 Isaac Sim 可以吃的 fbx 檔。

ea03abd4-7f73-11ed-8abf-dac502259ad0.png

記得要在 Transform 那邊選擇 Z Up, X Forward。

ea3f088c-7f73-11ed-8abf-dac502259ad0.png

輸出完成后,我們就會拿到下面四個圖檔。

?p44336p01.fbx

?p44342p01.fbx

?p44341p01.fbx

?p44343p01.fbx

2.3. 將圖檔匯入 Issac sim

接下來我們回到 Isaac Sim 中,我們要把前面的圖檔匯入到模擬環境中。首先,開啟 Isaac Sim 并在左下角的 Content 中建立一個 Omniverse/localhost/Library/Props/Road_Tiles/Parts 的文件夾, 然后在右邊的空白字段點右鍵,選擇Import and Convert 來匯入 fbx 檔案。

ea5f784c-7f73-11ed-8abf-dac502259ad0.png

假設我們前面的 fbx 檔案是存在 Download 這個文件夾,我們就可以將他們全選并上傳到 Nucleus 服務器,記得在上傳的時候要勾選下面三個選項:

?Import Materials

?Import As Single USD

?Generate Smooth Normals

匯入后如下圖

ea92aec4-7f73-11ed-8abf-dac502259ad0.png

最后檢查一下是否我們要的四塊道路圖檔都有被正確匯入了。

eacd16ea-7f73-11ed-8abf-dac502259ad0.png

3. 開始訓練深度學習的模型

接下來的操作需要使用者有事先匯入 Isaac Sim 的 Asset 套件包,里面有機器學習的范例文件(如果不知道怎么匯入的讀者可以去參考我們的上一篇文章: Isaac Sim 的介紹)。

有別于之前的操作都是直接使用 Isaac Sim 的圖形化界面, 這次我們啟動訓練模型的程序方法是必須從終端機開始。首先, 在計算機上打開一個終端機,并輸入下面的指令:

cd~/.local/share/ov/pkg/isaac_sim-2021.1.1/

這個的意思是切換目錄到前面提到的 Isaac Sim 的 Asset 套件包的安裝位置。

然后修改“python_samples/jetbot/road_environment.py” 這只程序,將道路圖塊的路徑 改到我們剛剛放的地方,如下

# 1=I2=L 3=T, 4=X

self.tile_usd= {

0: None,

1: {"asset": nucleus_server +"/Library/Props/Road_Tiles/Parts/p44336p01/p44336p01.usd","offset": 180},

2: {"asset": nucleus_server +"/Library/Props/Road_Tiles/Parts/p44342p01/p44342p01.usd","offset": 180},

3: {"asset": nucleus_server +"/Library/Props/Road_Tiles/Parts/p44341p01/p44341p01.usd","offset": 180},

4: {"asset": nucleus_server +"/Library/Props/Road_Tiles/Parts/p44343p01/p44343p01.usd","offset": 180},

} # list of tiles that can be spawned

3.1. 確保 GPU 的記憶題足夠訓練模型

筆者的開發環境所用的筆電有的顯卡是RTX 3070,但即便是擁有8G的內存還是無法負荷默認的模型訓練參數,所以我們會做以下的調整,縮小模型訓練時的吞吐量,雖然會模型學習的會比較慢,但至少確保能夠正常運作。

我們修改“python_samples/jetbot/jetbot_train.py” , 這只程序是我們用來訓練的主程序。 里面有一個地方是可以設定batch size 的大小,這個會決定模型每次訓練的吞吐量,以筆者的8G顯卡為例,可以設定的最大 batch size 大概是1024。修改如下:

ifargs.loaded_checkpoint == "":

model = PPO(

"CnnPolicy",

env,

verbose=1,

tensorboard_log=args.tensorboard_dir,

policy_kwargs=policy_kwargs,

device="cuda",

n_steps=args.step_freq,

batch_size=1024,

n_epochs=50,

learning_rate=0.0001,

)

另外,在開始訓練前,建議關掉所有的 Isaac Sim 的軟件,因為那都會重復占用到 GPU 的內存,我們只要保留由終端機執行訓練程序所叫起的 Isaac Sim 就好。

一切準備就緒后我們就可以執行下面的指令來開始訓練了。

./python.shpython_samples/jetbot/jetbot_train.py

上面的指令會自動叫出仿真的圖形化界面,如果讀者覺得暫時不需要花費算力去畫出模擬的3D圖,可以在后面加上 headless 來關閉圖形化界面,等訓練完一段時間后,再開啟圖形化界面確認模型的訓練的效果也是可以的。

./python.shpython_samples/jetbot/jetbot_train.py --headless

4. 強化學習的訓練機制

熟悉深度學習的讀者一定知道在讓模型去做學習的時候,能否給模型一個好的回饋是學習成敗的關鍵,例如以寵物分類問題來說,我們會給模型看到哪些圖片是貓,哪些圖片是狗,藉此來讓模型去學習。但是對于學習自動駕駛來說,機器人可以做到決策其實復雜度更高,比如說 Jetbot 可以隨著時間變化行走的方向跟速度,至于要怎么判斷機器人走得好不好,也許我們可以透過機器人的中心點到道路中間的距離來判斷,另外,機器人的行走速度可能也是一個我們希望優化的量,好比說我們會希望機器人過彎的時候會懂得抄近路,而不是一味地死守道路中線。

當我們搞定好模型在學習這個問題的回饋之后,我們就可以來看一下具體模型的學習策略。對于強化學習的問題而言,我們沒有辦法馬上知道模型此刻學的行為好或不好,比如說 Jetbot 可能在直線上可以走得很順,但是一直到轉彎處直接跑出界才發現其實它不會轉彎。在這個范例程序中,我們主要會用以下的技術來幫助模型的學習:

1.使用 Open AI 所提出的 ProximalPolicy Optimization (PPO) 技術來做有效的強化學習,簡單說就是在每一次的訓練回合中,都會先生成一個固定模型參數的代打,下去我們的模擬環境跑各種的測試,然后我們再利用這些測試所搜集的數據來生成一個數據集,回過頭更新我們之前的模型。其中的精妙之處在于我們不會輕易的將我們正在學的模型一直丟到測試環境中去驗證,因為這樣會導致模型在學習上很不穩定,同時也沒有效率,變成說每次剛更新完的模型走一步測試后,這個資料就只用那么一次而已。

2.使用 Issac Sim 的 DomainRandomization 機制來加強模型的韌性。如果讀者仔細觀察機器人在學習的過程中其實場景是一直在變化的,我們的環境仿真程序不只會將我們前面的道路圖塊隨機拼湊成不同的環形道路外,道路周遭的背景跟物品也都會隨機生成,為的就是盡可能的讓機器人適應不同點情況,達到我們真正想要它學習的任務。

5. 檢視模型訓練的結果

以筆者的經驗,模型都需要經過兩萬多次以上的回合后,Jetbot 在道路上的行為才會收斂到我們所想象的自動駕駛,像是筆者的計算機(Intel i7 CPU + RTX 3070 GPU)大概會需要模型跑個一天的訓練才能達到 一個可以接受的表現。

那如果是想要看看我們模型的表現如何,可以先停掉訓練的程序,釋放出可用的 GPU ,然后執行下面的程序

./python.shpython_samples/jetbot/jetbot_train.py --eval

程序會自動挑選目前為止訓練最好的模型參數,然后套用在 Jetbot 跑道路模型的仿真上,如下,讀者是否都能夠看到自己訓練的 Jetbot 都能夠沿著道路跑一遍自動駕駛呢?

e6567f52-7f73-11ed-8abf-dac502259ad0.gif

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    211

    文章

    28693

    瀏覽量

    208652
  • NVIDIA
    +關注

    關注

    14

    文章

    5080

    瀏覽量

    103822
  • Sim
    Sim
    +關注

    關注

    2

    文章

    247

    瀏覽量

    40103
  • python
    +關注

    關注

    56

    文章

    4809

    瀏覽量

    85074

原文標題:NVIDIA Isaac Sim 強化學習實作 – 讓 Jetbot 自己學會道路駕駛!

文章出處:【微信號:易心Microbit編程,微信公眾號:易心Microbit編程】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用Isaac Gym 來強化學習mycobot 抓取任務

    使用Isaac Gym來強化學習mycobot抓取任務
    的頭像 發表于 04-11 14:57 ?7415次閱讀
    使用<b class='flag-5'>Isaac</b> Gym 來<b class='flag-5'>強化學習</b>mycobot 抓取任務

    反向強化學習的思路

    強化學習的另一種策略(二)
    發表于 04-03 12:10

    深度強化學習實戰

    一:深度學習DeepLearning實戰時間地點:1 月 15日— 1 月18 日二:深度強化學習核心技術實戰時間地點: 1 月 27 日— 1 月30 日(第一天報到 授課三天;提前環境部署 電腦
    發表于 01-10 13:42

    將深度學習強化學習相結合的深度強化學習DRL

    深度強化學習DRL自提出以來, 已在理論和應用方面均取得了顯著的成果。尤其是谷歌DeepMind團隊基于深度強化學習DRL研發的AlphaGo,將深度強化學習DRL成推上新的熱點和高度,成為人工智能歷史上一個新的里程碑。因此,深
    發表于 06-29 18:36 ?2.8w次閱讀

    人工智能機器學習強化學習

    強化學習是智能系統從環境到行為映射的學習,以使獎勵信號(強化信號)函數值最大,強化學習不同于連接主義學習中的監督
    發表于 05-30 06:53 ?1437次閱讀

    強化學習在自動駕駛的應用

    自動駕駛汽車首先是人工智能問題,而強化學習是機器學習的一個重要分支,是多學科多領域交叉的一個產物。今天人工智能頭條給大家介紹強化學習在自動駕駛
    的頭像 發表于 07-10 09:00 ?5041次閱讀
    <b class='flag-5'>強化學習</b>在自動<b class='flag-5'>駕駛</b>的應用

    基于Omniverse的NVIDIA Isaac Sim現已發布公測版

    Omniverse是NVIDIA模擬器的根本基礎,包括加入了多項新功能的Isaac平臺。NVIDIA Isaac Sim目前已發布公測版,您
    的頭像 發表于 06-22 14:56 ?3424次閱讀
    基于Omniverse的<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b> <b class='flag-5'>Sim</b>現已發布公測版

    NVIDIA Isaac Sim 2022.1版本的亮點及功能

    NVIDIA 宣布推出2022.1 版 NVIDIA Isaac Sim。作為一種機器人仿真和合成數據生成(SDG)工具,這個 NVIDIA
    的頭像 發表于 07-01 11:19 ?1884次閱讀

    NVIDIA AI機器人開發— NVIDIA Isaac Sim入門

    NVIDIA 最新公開課來了,本次將圍繞用于開發和訓練智能機器人的模擬平臺—— NVIDIA Isaac SimNVIDIA
    的頭像 發表于 10-19 15:58 ?1911次閱讀

    NVIDIA 公開課 | AI 機器人開發第二講 — Isaac Sim 高階開發

    NVIDIA 公開課——AI 機器人開發第二講將于明日上線!本次精彩繼續,嘉賓將深入講解? NVIDIA Isaac Sim 的高階開發 。 NVI
    的頭像 發表于 11-10 11:00 ?1073次閱讀

    CES | 用 NVIDIA Isaac Sim 2022.2 模擬未來智能機器人

    NVIDIA 宣布推出? NVIDIA Isaac Sim ?的 ?2022.2 版本 。作為機器人仿真和 合成數據 生成( SDG )工具,該?
    的頭像 發表于 01-06 22:30 ?963次閱讀

    強化學習與智能駕駛決策規劃

    本文介紹了強化學習與智能駕駛決策規劃。智能駕駛中的決策規劃模塊負責將感知模塊所得到的環境信息轉化成具體的駕駛策略,從而指引車輛安全、穩定的行駛。真實的
    的頭像 發表于 02-08 14:05 ?1937次閱讀

    使用 ROS 2 MoveIt 和 NVIDIA Isaac Sim 創建逼真的機器人模擬

    項目中使用 NVIDIA Isaac Sim 。項目的目標是提高對操縱的感知,并通過 PickNik 的商業機器人開發平臺 MoveIt Studio 機器人具有更自主的行為。 本文
    的頭像 發表于 05-12 10:45 ?1727次閱讀
    使用 ROS 2 MoveIt 和 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b> <b class='flag-5'>Sim</b> 創建逼真的機器人模擬

    Omniverse 中文課程系列 7:使用 Isaac Sim 實現機器人仿真入門

    ! 使用 Isaac Sim 實現機器人仿真入門 學習目標 通過本課程,您將學習如何: 使用交互式 Python 腳本編程接口開發仿真應用 使用 USD 組件指定場景并強制應用仿真-時
    的頭像 發表于 06-30 17:35 ?1113次閱讀
    Omniverse 中文課程系列 7:使用 <b class='flag-5'>Isaac</b> <b class='flag-5'>Sim</b> 實現機器人仿真入門

    使用 NVIDIA Isaac 仿真并定位 Husky 機器人

    如何使用 ROS 2 Husky 官方軟件包將該機器人導入 NVIDIA Isaac Sim 并創建仿真。 本 Demo 中的 Husky 機器人配備了 NVIDIA Jetson O
    的頭像 發表于 12-26 18:05 ?1426次閱讀
    使用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b> 仿真并定位 Husky 機器人
    主站蜘蛛池模板: 人人看操 | 精品视频免费看 | 四虎永久免费影院在线 | 五月天激情在线 | 欧美亚洲综合一区 | 一级特黄aaa大片在线观看视频 | 日日爽夜夜 | 在线观看黄色一级片 | 五月婷婷综合基地 | 成人午夜免费视频 | 免费视频不卡一区二区三区 | 天天射天天干天天 | 国产三a级日本三级日产三级 | 亚洲成a人不卡在线观看 | 免费午夜影片在线观看影院 | 亚洲网站www| 免费爱爱视频网站 | 奇米四色777亚洲图 奇米影视四色首页手机在线 | 另类激情网 | 欧美大黄 | 亚洲美女爱爱 | 欧美一区二区三区不卡免费观看 | 大尺度很肉污的古代小说 | 国产一级大片免费看 | 亚洲人成网站色7799在线观看 | 三级在线观看视频 | 九九99久久精品影视 | 天堂在线中文网 | 国内精品哆啪啪 | 美女三级在线 | 1024 在线观看视频免费 | 在线黄色免费观看 | 日韩免费精品一级毛片 | 亚洲精品精品一区 | 手机看片神马午夜 | 国产精品二区三区免费播放心 | 日产国产精品亚洲系列 | 日本午夜大片a在线观看 | 欧美成人性动漫在线观看 | 女人张开腿等男人桶免费视频 | 美女毛片免费看 |