---
# System prepended metadata

title: 從頭開始學 Isaac Sim 05 -- 用鍵盤控制車子
tags: [Isaac-Sim]

---

從頭開始學 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/)