從頭開始學 Isaac Sim 05 -- 用鍵盤控制車子 === ### 1 用 ActionGraph 啟用鍵盤控制 在上一節,我們用差速控制器(Differential Controller)讓 SimpleRobot 能自動移動。 這一節,我們要讓它能用鍵盤操控,就像玩遊戲一樣用 W/A/S/D 控制前進、後退、左轉、右轉。 ### 2 建立含鍵盤控制的預製 OmniGraph #### How? 1. 刪除上一節建立的簡易差速控制 OmniGraph。 2. 開啟 Differential Controller 視窗(參考[從頭開始學 Isaac Sim 04 -- 添加控制器](https://hackmd.io/@10XdHCMRSDKnrGY5zVWFKA/BkdQ8upFxe)的第四節) 3. 按照 [從頭開始學 Isaac Sim 04 -- 添加控制器](https://hackmd.io/@10XdHCMRSDKnrGY5zVWFKA/BkdQ8upFxe) 的參數填入,最後要句選最下方的 Use Keyboard Control (WASD)。 4. 按 OK 建立新的 Graph。 #### Why? 這個預製 OmniGraph 已經幫你接好鍵盤事件的 ActionGraph 節點,能直接把 W/A/S/D 轉換成差速控制器需要的速度訊號,不需要再手動輸入數值。 ### 3 檢查 Stage 與 Graph 結構 #### How? 1. 在 Stage 視窗裡會看到一個新的資料夾 `Graphs/differential_controller`。 2. 對它按右鍵,選擇 Open Graph,進入視覺化節點編輯畫面。 #### Why? 確認新的 Graph 已經建立並且路徑正確,避免舊的控制器還在生效,導致互相衝突。 ### 4 認識鍵盤輸入節點與資料流 #### How? 1. 打開 Graph 後,你會看到左側有四個輸入節點,分別對應鍵盤 W、A、S、D。 2. 這些節點輸出的訊號會經過一些 Constant Double、加減法與選擇器,最後匯入右側的 Differential Controller 和 Articulation Controller 節點。 #### Why? ActionGraph 的作用就是把「事件」轉成「數值」。例如: * W 代表正向線速度(前進) * S 代表負向線速度(後退) * A 代表正向角速度(左轉) * D 代表負向角速度(右轉) 這些數值會送進差速控制器,再換算成左右輪的角速度。 ### 5 模擬與熱鍵行為 #### 怎麼做 1. 按 Play 進入模擬場景。 2. 現在就能用鍵盤控制: * W 前進 * S 後退 * A 左轉 * D 右轉 3. 如果發現沒有反應,檢查: * 是否點選了 Viewport(確保有鍵盤焦點)。 * Graph 連線是否完整。 * Articulation Root 的 Articulation Enabled 是否勾選。 #### 為什麼 鍵盤事件只會送到有焦點的視窗;如果 Articulation 沒啟用,控制器的指令也推不動輪子。 ## 6 Summary:各節點扮演的角色 * Keyboard Input:把按鍵事件轉成觸發訊號 * Constant Double:定義每次按鍵的速度增量 * Math/Combine 節點:合成最終的線速度與角速度 * Differential Controller:把速度轉成輪子角速度 * Articulation Controller:把角速度下到關節 --- 希望我的內容對你有所幫助,想看到更多內容歡迎追蹤我的 IG、Threads 等平台。 Threads:[@minimalist_shine](https://www.threads.com/@minimalist_shine) IG:[@minimalist_shine](https://www.instagram.com/minimalist_shine/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up