從頭開始學 Isaac Sim 01 -- Create a Cube === 文章中皆是透過[NVIDIA Deep Learning Institute](https://www.nvidia.com/en-us/training/)中的「Getting Started: Simulating Your First Robot in Isaac Sim」進行學習。 另外,此官方教程是使用 Isaac Sim 4.2.0/4.5.0 ,我則是使用更新版本的 5.0.0。 --- ### 1 Create a Cube 第一步驟就是建立一個立方方體,選取 Create > Mesh > Cube 就能在現有座標系下直接建立,或你可以選擇在畫面中點選右鍵,通過同樣的步驟建立方體。 <div style="display:flex; align-items:center; justify-content:center; gap:20px;"> <img src="https://hackmd.io/_uploads/r16BKzhYgg.png" width="27%"> <img src="https://hackmd.io/_uploads/SyZlczhYge.png" width="70%"> </div> 目前這個立方體是沒有被定義的物理對象,在 Sim 中物件除了本身的材質屬性外,需要擁有物理特性才有模擬的意義。 如果在這時候按下左方的 Play ,你會發現什麼都沒有發生。因為它還不是物理對象,並且沒有添加 colliders(碰撞器)。 colliders,並不是「能看到的外觀模型」,而是一個用來檢測無間是否發生碰撞的隱形邊界。在模擬裡,物體需要質量(mass) + 碰撞體 (collider)才有辦法跟其他物件互動,也就是說沒有 collider 的話,兩個物件就會「彼此穿透」不會發生碰撞,因為系統不會知道它們在哪裡相交。 > 可以把「Mesh(外觀)」想像成雕像的外表; > 而「Collider」就是這個雕像的隱形防護罩,告訴物理引擎「這裡是實體,不能穿過去」。 ### 2 Enabling Physics in the Scene 建立物理場景則是 Create > Physics > Physics Scene。 你會在右側面板中看見一個 Physics Scene 並且可以得知它預設使用地球重力(Earth Gravity)。 <div style="display:flex;justify-content:center; justify-content:center;"> <img src="https://hackmd.io/_uploads/HJTxWXnFel.png" width="35%"> </div> 如果你再次按下 Play 它同樣不會理你,這是因為雖然有場景物理,但立方體仍然不是物理物件。 要解決也很簡單,在右側的「Stage」視窗中右鍵按一下立方體 ,然後選取 Add > Physics > Rigid Body with Colliders Preset。 然後要記得開啟 Colliders 的顯示,點擊上方工具列中的眼睛 icon 然後依序點擊 Show by Type > Physics > Colliders > Selected。 把碰撞網格打開,可以讓我們直接看到物件真正參與物理計算的邊界,不會只憑外觀去猜。因為碰撞網格常常跟外觀不一樣,如果不顯示,就很難理解為什麼物件會提早碰到或互相作用。 開啟顯示後,我們就能更直觀地檢查、調整,確保模擬出來的效果跟想的一樣。 ### 3 Simulating Physics with a Ground Plane 這時候點擊 Play ,立方體會開始自由落體,這是由於並沒有地板來接住它。為了防止它無限墜落,就要建立一個地平面來阻止所有物理物件調到下面去。 透過 Create > Physics > Ground plane 建立一個無限延伸的平面。 這實再度按下 Play 就可以得到一個符合目前設定物理現象的模擬,在這邊可以觀察立方體在撞擊地面時是如何停止下落。這是我們在物理模擬中期望有的交互做用。 <div style="display:flex; align-items:center; justify-content:center; gap:20px;"> <img src="https://hackmd.io/_uploads/SktpvmhYgg.png" width="40%"> <img src="https://hackmd.io/_uploads/rkcRw7nYxg.png" width="40%"> </div> --- 希望我的內容對你有所幫助,想看到更多內容歡迎追蹤我的 IG、Threads 等平台。 Threads:[@minimalist_shine](https://www.threads.com/@minimalist_shine) IG:[@minimalist_shine](https://www.instagram.com/minimalist_shine/)