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

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

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

3天內不再提示

Isaac仿真平臺搭建以及ROS試用教程

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 作者:NVIDIA英偉達企業解 ? 2022-07-27 14:55 ? 次閱讀

機器人有助于為制造業、物流業、醫療保健業和服務業等行業創造新效率并提升人們的生活質量, NVIDIA Isaac 憑借改進的機器人開發、模擬和部署功能,可加速這一進程。

對于機器人領域的開發者而言,“Isaac 就是 Omniverse 平臺里面,一個完全在 GPU 上實現,很好地將機器人相關的一些深度學習、強化學習、SLAM、圖像處理等等的算法,融合在一個 GEMs 的高性能軟件包中的炫酷仿真引擎。” 這是知乎大咖稚輝(知乎坐擁 130 多萬粉絲的知名 KOL、AI 工程師)對于 Isaac 的評價。本期文章我們將分享稚輝 Isaac 仿真平臺搭建以及 ROS 試用教程

Isaac 仿真平臺搭建以及 ROS 試用教程

最近在搞一個機器人項目嘛,所以借著機會了解了一下之前 NVIDIA大力推廣的 Omniverse 平臺,Omniverse 是 NVIDIA 推出的一個元宇宙模擬平臺,而 Isaac 是其中專門用于機器人環境模擬的一個引擎,試了一下還挺有意思的。

其實最早 Omniverse 設計的初衷是提供一個能讓工程師們協作創作的虛擬工具,畢竟號稱元宇宙引擎嘛,在數字世界里做基建必然是一個需要大量不同場景的工程師們配合實現的工作,后來該項目逐漸演變成了一個更加宏大的全行業框架。

發布會上提到會通過一種 USD(Universal Scene Description,這個縮寫我直呼內行)的基礎數據格式來打通各種不同的軟件之間的配合。USD 不僅僅只是導入和導出的一種格式而已, USD 之于 Omniverse 就像 HTML(一種標記語言,可以將網絡上的文檔格式統一)之于網站。

而 Isaac 就是 Omniverse 平臺里面,一個完全在 GPU 上實現,很好地將機器人相關的一些深度學習、強化學習、SLAM、圖像處理等等的算法,融合在一個 GEMs 的高性能軟件包中的炫酷仿真引擎。之前做機器人仿真的時候,最常用的是 VREP(現在叫 CoppeliaSim 了)、ROS 里面的 Gazebo、WeBot 等,這些仿真器用到的主要物理引擎都是開源的 Bullet 和 ODE。

與上面提到的這些仿真器相比,Isaac 的優勢在于:

  • 超逼真的光照渲染效果:一個字,以假亂真。NVIDIA 做啥起家的大家都知道了,RTX ON 之后這渲染效果相比于前面提到的開源引擎有質的飛躍,直接來到照片級的逼真度。

  • 性能的提升:實時的光照渲染和物理引擎的算力需求都是很高的,Isaac 針對 NVIDIA 硬件(GPU)進行了優化,可以生成高效的平臺優化的交叉編譯應用程序。

  • 生態支持度好:Isaac 集成了其中許多 CUDA 加速的開源庫,例如 NPP、OpenCV、ROS、PCL (wip)、Eigen 等。

  • 自帶常用的算法庫:Isaac SDK 附帶了一系列高性能算法,這些算法被稱為 GEM,此外除了機器人控制類的算法,Issac 還為主業打游戲副業煉丹的同學們準備了深度神經網絡模塊的集成,例如立體聲深度估計、目標檢測、 Tracking 算法等等。

當然了對我這種顏值狗來說,渲染效果美麗 + Modern UI 的軟件界面就足夠讓我對其他軟件 Say No 了。下圖展示了 Isaac 的生態系統:

97535b22-0d69-11ed-ba43-dac502259ad0.png

那么接下來本文簡單介紹一下 Issac 的安裝流程以及使用記錄。

準備的環境

使用的是我自己的臺式機,硬件配置如下:

項目

概述

OS

Ubuntu 20.04 LTS

kernel

5.13.0-35-generic

CPU

英特爾 i7-12700F

MEM

64GB

GPU

GeForce RTX 3080

Driver Ver

470.103.01

CUDA Ver

11.4

按照 NVIDIA 官方 Omniverse 安裝指南(鏈接如下):

https://docs.omniverse.nvidia.com/prod_install-guide/prod_install-guide/workstation.html

首先,下載 Omniverse 的啟動器程序(需要注冊一下,鏈接如下):https://www.nvidia.com/en-us/omniverse/

97a693d2-0d69-11ed-ba43-dac502259ad0.png

操作系統可以選擇 Windows 或 Linux,這里我用的是 Ubuntu 所以選 Linux 版本,可以得到名為 omniverse-launcher-linux.AppImage 的文件,下載好之后需要授予它執行權限,并將其放在主頁目錄下,命令:


chmod+xomniverse-launcher-linux.AppImage./omniverse-launcher-linux.AppImage

運行此啟動器程序將啟動 Omniverse 窗口,但需要 NVIDIA 帳戶登錄才能使用,沒有的話注冊一下就行個人使用是免費的。

首次啟動時,系統會提示是否要安裝名為 “Cache” 的軟件,這個是用于提供一種軟件緩存機制,用于管理網絡通信加載內容的,建議安裝它。

97e6ade6-0d69-11ed-ba43-dac502259ad0.png

啟動器的軟件界面

順便說一下,Omniverse會開啟一個后臺服務,你可以從瀏覽器訪問 http://localhost:3080 來打開后臺管理頁面查看每個服務的操作狀態。

9824d832-0d69-11ed-ba43-dac502259ad0.png

然后需要在啟動器軟件中安裝 Nucleus 服務:

9846c9d8-0d69-11ed-ba43-dac502259ad0.png

Nucleus 就是個數據服務器,用于連接其他軟件,同時在當多個人進行項目時,通過連接到此服務器進行協作開發。軟件中也有很多有意思的 Tutorial 可以自己嘗試學習:

986a269e-0d69-11ed-ba43-dac502259ad0.png

安裝完成后用之前注冊的賬號登錄即可,登錄后將看到一個文件管理器,可以在其中管理項目內容。

98b0e19c-0d69-11ed-ba43-dac502259ad0.png

接下來,我們添加機器人模擬器環境 Isaac Sim。Isaac Sim 是一個機器人仿真工具包,在 Omniverse 上運行,Isaac Sim 具有構建虛擬機器人世界和實驗的基本功能,還能通過渲染能力提供進行數據集合成的工具和工作流程。Isaac Sim 通過 ROS/ROS2 支持導航和操作應用程序。

Isaac 的架構圖如下:

98d3ce64-0d69-11ed-ba43-dac502259ad0.png

由于渲染能力過猛,Isaac 對于硬件的配置要求有一丟丟高,推薦的配置為- RTX2070 及以上的顯卡,內存至少 32GB,NVIDIA 的驅動程序版本需要 470.57.02 或更高版本。

參考以下安裝指南安裝 Isaac Sim:

https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_basic.html#isaac-sim-app-install-basic

從 EXCHANGE 選項卡中選擇并安裝:

98f97916-0d69-11ed-ba43-dac502259ad0.png

993ae64e-0d69-11ed-ba43-dac502259ad0.png

根據教程,Isaac Sim 應該有一個按鈕來下載 Isaac Sim Assets(示例數據等)后啟動,但可能是網絡問題我這邊無法下載,所以通過手動添加方式解決,參考:

https://forums.developer.nvidia.com/t/known-issue-error-checking-isaac-sim-assets/204522

具體解決方案是從主窗口的 mount 選項卡右鍵單擊導航器的 localhost,創建具有以下參數的文件夾:

9960e8d0-0d69-11ed-ba43-dac502259ad0.png

項目

內容

Name

Isaac

Type

Amazon S3

Host

http://d28dzv1nop4bat.cloudfront.net

Service

s3

Redirection

https://d28dzv1nop4bat.cloudfront.net

下面的命令安裝:

sudoaptinstall./code_1.51.1-1605051630_amd64.debsudoaptinstall-yapt-transport-httpssudoaptupdate

后我們安裝一下 VS Code 來代替自帶的編輯器,在官網下載 deb 安裝包

https://code.visualstudio.com/Download

此外,從 Isaac Sim 打開 VSCode 時的配置文件(如 setting.json)使用的是 .vscode,該文件位于 Isaac Sim 的安裝根目錄~/.local/share/ov/pkg/isaac_simxxx 中。

安裝 ROS 和 ROS2

在 Ubuntu 上安裝要與配合的 ROS 和 ROS2,只需按照官方安裝指南進行安裝即可:https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_ros.html

然后,在 Isaac Sim 端啟用 ROS Bridge 擴展,在窗口狀態量菜單中 Window->Extensions 中搜索 “ROS”:

9982137a-0d69-11ed-ba43-dac502259ad0.png

啟用 “ROS Bridge” 和 “ROS UI” :

99a8ac38-0d69-11ed-ba43-dac502259ad0.png

如果使用 ROS2,那就啟用 ROS2 Bridge 而不是 ROS Bridge。

現在 ROS 就可以和 Isaac Sim 通信啦,接下來我們編寫一個簡單的程序進行測試。

Python代碼測試

Isaac Sim 可以從官方自帶的一些 python 腳本獨立啟動,啟動腳本位于 Omniverse 中的 Isaac Sim 目錄中,例如,啟動作為示例提供的名為 “franka” 的制造機器人演示的命令如下所示:


cd~/.local/share/ov/pkg/isaac_sim-2021.2.1./python.shstandalone_examples/api/omni.isaac.franka/follow_target.py

99de15bc-0d69-11ed-ba43-dac502259ad0.png

打開的時間可能比較久需要有點耐心...

當然還有其他很多別的腳本可以供參考,接下來我們將自己編寫 Python 腳本實現以下內容:

1、在場景中放置對象

2、在場景中放置一個機器人并用鍵盤控制運動

放置對象

我們可以使用 omni.isaac.core 對象模塊放置對象,包含以下函數:

  • DynamicCuboid

  • DynamicCapsule

  • DynamicCone

  • DynamicCylinder

  • DynamicSphere

  • VisualCuboid

  • VisualCapsule

  • VisualCone

  • VisualCylinder

  • VisualSphere

  • FixedCuboid

這些函數允許我們在場景中放置立方體、膠囊、圓錐體、圓柱體和球體,Dynamic 開頭的對象受到物理引擎的作用,比如重力,當把它們放置在空中時,它會直接掉落。Visual 開頭的對象則只會用于外觀,不會受到力的作用,也不會進行碰撞檢測,因此其他對象可以直接穿過它。例如以下代碼:


from omni.isaac.kit import SimulationAppimport numpy as np
simulation_app = SimulationApp({"headless": False})
from omni.isaac.core import Worldfrom omni.isaac.core.objects import DynamicCuboid, DynamicCapsule, DynamicConefrom omni.isaac.core.objects import DynamicCylinder, DynamicSphere, FixedCuboid
my_world = World(stage_units_in_meters=0.01)
d_cube = my_world.scene.add(    DynamicCuboid(        prim_path="/dynamic_cube",        name="dynamic_cube",        position=np.array([0, 0, 0.5]) * 100,        size=np.array([0.1, 0.1, 0.1]) * 100,        color=np.array([255, 255, 255]),    ))
d_cap = my_world.scene.add(    DynamicCapsule(        prim_path="/dynamic_capsule",        name="dynamic_capsule",        position=np.array([0.5, 0, 0.5]) * 100,        radius=0.05 * 100,        height=0.05 * 100,        color=np.array([255, 0, 0]),    ))
d_cone = my_world.scene.add(    DynamicCone(        prim_path="/dynamic_cone",        name="dynamic_cone",        position=np.array([-0.5, 0, 0.5]) * 100,        radius=0.05 * 100,        height=0.05 * 100,        color=np.array([0, 0, 255]),    ))
d_cyl = my_world.scene.add(    DynamicCylinder(        prim_path="/dynamic_cylinder",        name="dynamic_cylinder",        position=np.array([0, 0.5, 0.5]) * 100,        radius=0.05 * 100,        height=0.05 * 100,        color=np.array([0, 255, 0]),    ))
d_sph = my_world.scene.add(    DynamicSphere(        prim_path="/dynamic_sphere",        name="dynamic_sphere",        position=np.array([0.5, 0.5, 0.5]) * 100,        radius=0.05 * 100,        color=np.array([255, 0, 255]),    ))
f_cube = my_world.scene.add(    FixedCuboid(        prim_path="/fixed_cube",        name="fixed_cube",        position=np.array([-0.5, 0.5, 0.5]) * 100,        size=np.array([0.1, 0.1, 0.1]) * 100,        color=np.array([255, 255, 255]),    ))
my_world.scene.add_default_ground_plane()
my_world.reset()
while simulation_app.is_running():    my_world.step(render=True)
simulation_app.close()

效果是這樣的:

9a273936-0d69-11ed-ba43-dac502259ad0.png

稍微修改一下,加入一些互動,比如用鍵盤控制一個小車:


from omni.isaac.kit import SimulationAppimport numpy as npimport carbimport omni.appwindow
simulation_app = SimulationApp({"headless": False})
from omni.isaac.jetbot import Jetbotfrom omni.isaac.jetbot.controllers import DifferentialController
from omni.isaac.core import World
my_world = World(stage_units_in_meters=0.01)
my_jetbot = my_world.scene.add(    Jetbot(        prim_path="/World/Jetbot",        name="my_jetbot",        position=np.array([0, 0.0, 2.0])    ) ) 
my_controller = DifferentialController(name="simple_control")
my_world.scene.add_default_ground_plane()
command_ = [0.0, 0.0]def sub_keyboard_event(event, *args, **kwargs):    """Handle keyboard events    w,s,a,d as arrow keys for jetbot movement
    Args:        event (int): keyboard event type    """    global command_    if(        event.type == carb.input.KeyboardEventType.KEY_PRESS        or event.type == carb.input.KeyboardEventType.KEY_REPEAT    ):        if event.input == carb.input.KeyboardInput.W:            command_ = [20, 0.0]        if event.input == carb.input.KeyboardInput.S:            command_ = [-20, 0.0]        if event.input == carb.input.KeyboardInput.A:            command_ = [0.0, np.pi / 5]        if event.input == carb.input.KeyboardInput.D:            command_ = [0.0, -np.pi / 5]    if(event.type == carb.input.KeyboardEventType.KEY_RELEASE):        command_ = [0.0, 0.0]
    return True
appwindow_ = omni.appwindow.get_default_app_window()input_ = carb.input.acquire_input_interface()keyboard_ = appwindow_.get_keyboard()sub_keyboard_ = input_.subscribe_to_keyboard_events(keyboard_,sub_keyboard_event)
my_world.reset()
while simulation_app.is_running():    my_world.step(render=True)    if my_world.is_playing():        my_jetbot.apply_wheel_actions(my_controller.forward(command=command_))
simulation_app.close()

效果如下,用鍵盤的 WASD 可以控制小車運動:

9a55c896-0d69-11ed-ba43-dac502259ad0.png

更多的 API 可以參考官方的文檔,后續再補充更多內容。

審核編輯 :李倩


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

    關注

    50

    文章

    4111

    瀏覽量

    133786
  • ROS
    ROS
    +關注

    關注

    1

    文章

    279

    瀏覽量

    17039
  • 深度學習
    +關注

    關注

    73

    文章

    5510

    瀏覽量

    121338

原文標題:Isaac “家族” 揭秘 | 知乎大咖深度解讀系列(1)

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用myCobot 280機械臂結合ROS2系統搭建機械分揀站

    這篇文章是來自Automatic Addison的開源項目,已獲作者授權轉載自github。本項目的主要內容是使用myCobot 280機械臂結合ROS2系統搭建機械分揀站。
    的頭像 發表于 01-15 09:22 ?52次閱讀
    使用myCobot 280機械臂結合<b class='flag-5'>ROS</b>2系統<b class='flag-5'>搭建</b>機械分揀站

    軟通動力發布天樞iSSMeta2024數字孿生仿真平臺

    。近日,軟通動力正式發布天樞iSSMeta2024數字孿生仿真平臺,為智能制造和工業革新帶來了實用“利器”。
    的頭像 發表于 12-26 17:06 ?390次閱讀

    用TINA如何搭建仿真模型?

    使用TINA仿真單極運放的環路,仿真模型知道怎么搭建,現在要仿真由兩級TL082搭建的兩級運放的環路穩定性,請教,用TINA如何
    發表于 08-15 08:10

    EasyGo使用筆記丨分布式光伏集群并網控制硬件在環仿真應用

    進行控制;對于逆變器的控制,采用三相空間矢量脈寬調制(SVPWM)控制算法以及電壓電流雙閉環控制算法。最后構建了分布式光伏集群并網發電系統的綜合仿真模型,并在MATLAB/Simulink平臺上成功實現
    發表于 07-12 17:20

    如何搭建3d數字孿生平臺

    搭建3D數字孿生平臺是一項復雜且具有挑戰性的任務,需要綜合運用多種技術和步驟。實現這一目標需要進行需求分析、數據采集、建模與仿真、數據庫設計、人機界面設計、數據分析與算法選擇、平臺
    的頭像 發表于 07-04 15:23 ?420次閱讀

    逐際動力攜手英偉達Isaac平臺, 助力通用機器人研發

    在近日舉行的年度計算機視覺與模式識別會議(CVPR)上,英偉達發布了其最新版本的NVIDIA Isaac Sim。與此同時,逐際動力也宣布將采用這一升級版的Isaac平臺,以強化學習和提升通用機器人的泛化能力為核心目標,推動機器
    的頭像 發表于 06-21 09:34 ?2434次閱讀

    NVIDIA Isaac Manipulator助力讓下一代機器人技術觸手可及

    兩家公司在芝加哥 Automate 展會上宣布將圍繞 NVIDIA AI、Isaac Manipulator 和 Intrinsic 平臺的使用展開合作。
    的頭像 發表于 05-13 14:15 ?909次閱讀

    8路GMSL視頻注入回灌的自動駕駛半實物仿真平臺

    8路GMSL視頻注入回灌的自動駕駛半實物仿真平臺
    的頭像 發表于 04-17 11:33 ?906次閱讀
    8路GMSL視頻注入回灌的自動駕駛半實物<b class='flag-5'>仿真平臺</b>

    【分享】基于Easygo仿真平臺的三電機實時仿真測試應用

    算法效果的前期仿真評估及算法或控制器參數設計及仿真驗證,可以很大程度上減少系統開發周期及成本。對多電機同步控制系統進行實時仿真可有效解決此問題,但目前業內基于FPGA納秒級實時仿真平臺
    發表于 04-09 16:49

    NVIDIA Isaac機器人平臺升級,加速AI機器人技術革新

    NVIDIA Isaac機器人平臺近期實現重大升級,通過引入最新的生成式AI技術和先進的仿真技術,顯著加速了AI機器人技術的發展步伐。該平臺正不斷擴展其基礎模型、機器人學習框架、AI工
    的頭像 發表于 03-27 10:36 ?714次閱讀

    NVIDIA入局人形機器人!Isaac平臺迎來重要更新

    NVIDIA Isaac 機器人平臺利用最新的生成式 AI 和先進的仿真技術,加速 AI 機器人技術的發展。
    的頭像 發表于 03-26 09:07 ?1103次閱讀
    NVIDIA入局人形機器人!<b class='flag-5'>Isaac</b><b class='flag-5'>平臺</b>迎來重要更新

    NVIDIA Isaac將生成式AI應用于制造業和物流業

    NVIDIA Isaac 機器人平臺利用最新的生成式 AI 和先進的仿真技術,加速 AI 機器人技術的發展。
    的頭像 發表于 03-22 10:06 ?563次閱讀
    NVIDIA <b class='flag-5'>Isaac</b>將生成式AI應用于制造業和物流業

    多電機仿真篇丨雙電機實時仿真測試應用

    國內虛擬研究平臺多基于單電機設計,而實際工業中多電機配合工作更為常見,如機器人、3D打印機等。多電機同步控制在工業自動化生產系統中廣泛存在,但目前基于FPGA納秒級實時仿真平臺多為單電機設計,進行多
    發表于 03-19 16:13

    Easygo仿真平臺雙電機系統的實時仿真應用案例

    利用EasyGoMachine電機庫中的模塊,可以快速進行多電機系統程序的搭建,搭配EasyGoDeskSim軟件將程序部署到FPGA中以不超過1.5us的步長進行實時運行,無需進行FPGA編譯。
    發表于 03-19 11:28 ?615次閱讀
    Easygo<b class='flag-5'>仿真平臺</b>雙電機系統的實時<b class='flag-5'>仿真</b>應用案例

    從MATLAB到MWORKS,科學計算與系統建模仿真平臺的中國選項

    一、同元軟控:敢擔重任,研制中國自主的科學計算與系統建模仿真平臺 “中國需要自主的科學計算與系統建模仿真平臺。” 工業軟件是所有復雜系統研發設計、仿真驗證和數字制造的必備工具,已經成為衡量一個國家
    的頭像 發表于 03-11 13:06 ?637次閱讀
    主站蜘蛛池模板: www.天天干.com| 日本xxx69| 一本大道香蕉大vr在线吗视频| www.色涩涩.com| 成年人午夜影院| 性欧美1819hd| 天天做天天爽| 国产全黄三级三级| 欧美精品成人久久网站| 免费人成黄页在线观看日本| 色婷丁香| 美女被免费网站在线视频九色| 老师你好大好白好紧好硬| 38pao强力打造永久免费高清视频| 中文字幕一区二区三| 好紧好爽太大了h快穿| 国产色av| 你懂的在线视频播放| 色婷婷狠狠| 男人天堂伊人网| 国产一级特黄aa大片在线| 4虎最新地址| 欧美操操操操| 俺也啪| 在线色| 在线天堂中文www官网| 亚洲国产成人成上人色| 亚洲色图 在线视频| 色婷婷色婷婷| 国产做a爰片久久毛片a| 天天添| 欧美乱理伦另类视频| 久婷婷| 欧美瑟瑟| 性试验k8经典| 欧美性猛交xxxx乱大交高清| 高清一区二区在线观看| 青青草国产三级精品三级| 欧美人与牲动交xxxxbbbb| 操美女视频网站| 一本久草|