傳動系統#
介紹#
動力系統控制VR機器人的駕駛和轉向。動力系統可以前進或後退、左轉或右轉、轉向特定航向並追蹤其旋轉。
傳動系統程式設計方式有很多種。以下是所有傳動系統模組的清單:
動作-移動和轉向機器人。
drive — 使機器人無限向前或向後移動。
驅動 — 使機器人向前或向後移動指定的距離。
turn — 使機器人永遠向左或向右轉。
turn for — 使機器人向左或向右旋轉指定的角度數。
轉向航向 — 將機器人轉向面向特定航向。
轉向旋轉 — 將機器人轉向指定的旋轉方向。
停止駕駛 — 停止機器人的移動。
設定 — 調整傳動系統設定。
設定驅動速度 — 告訴機器人要以多快的速度行駛。
設定轉彎速度 — 告訴機器人轉彎的速度。
設定驅動航向 — 將機器人的目前航向變更為新的航向。
設定驅動旋轉 — 將機器人的目前旋轉改為新的旋轉。
設定驅動超時 — 設定機器人嘗試完成一次移動的秒數。
數值 — 檢查移動狀態。
驅動完成 — 報告機器人是否已完成移動。
drive is moving — 報告機器人是否正在移動。
驅動航向 — 報告機器人的當前航向,範圍從 0 到 359.99 度。
驅動旋轉 — 報告機器人的當前旋轉方向。
行動#
駕駛#
驅動 模組使機器人能夠無限向前或向後移動。機器人將持續移動,直到收到其他指令,例如轉向或停止。
行駛 [前方 v]
參數 |
描述 |
|---|---|
方向 |
機器人移動方向:前進或後退。 |
例子
當開始時 :: hat events
[Drive forward, then stop.]
行駛 [前方 v]
等待 (2) 秒
停止行駛
驅動#
驅動堆疊模組控制機器人前進或後退一段特定距離。程式會等待機器人完成移動後,才會執行堆疊中的下一個模組。
行駛 [前方 v] (200) [mm v] ▶
參數 |
描述 |
|---|---|
方向 |
機器人移動方向:前進或後退。 |
距離 |
機器人行駛的距離。可以是整數,也可以是小數。 |
單元 |
距離單位:mm(毫米)或英吋 |
不要等待 |
選擇箭頭(▶)展開程式碼區塊,顯示“不要等待”,這樣堆疊中的下一個程式碼區塊就會立即運作。 |
例子
當開始時 :: hat events
[Drive forward.]
行駛 [前方 v] (500) [mm v] ▶
轉動#
轉向 積木塊會讓機器人無限向左或向右轉向。機器人會一直轉向,直到收到其他動作指令,例如行駛或停止。
向 [右 v] 轉
參數 |
描述 |
|---|---|
方向 |
機器人轉向的方向:向左或向右。 |
例子
當開始時 :: hat events
[Turn right, then stop.]
向 [右 v] 轉
等待 (2) 秒
停止行駛
轉向#
「轉向」堆疊模組會使機器人向左或向右旋轉指定的角度。旋轉角度是相對於機器人的當前位置而言的。程式會等待機器人完成旋轉後,才會執行堆疊中的下一個模組。
向 [右 v] 轉 (90) 度 ▶
參數 |
描述 |
|---|---|
方向 |
機器人轉向的方向:向左或向右。 |
角度 |
機器人旋轉的角度數。可以是整數,也可以是小數。 |
不要等待 |
選擇箭頭(▶)展開程式碼區塊,顯示“不要等待”,這樣堆疊中的下一個程式碼區塊就會立即運作。 |
例子
當開始時 :: hat events
[Turn left, then turn around to the right.]
向 [左 v] 轉 (90) 度 ▶
向 [右 v] 轉 (180) 度 ▶
轉向標題#
航向角是指機器人面向的方向,以度為單位。 轉向航向角 代碼塊可以將機器人轉向 -359 度到 359 度之間的特定航向角。機器人會選擇到達目標航向角的最短路徑。
起始航向為0度。
該專案將等待機器人完成轉向後,才會運行堆疊中的下一個模組。
轉向航向 (90) 度 ▶
參數 |
描述 |
|---|---|
標題 |
機器人應面向的航向,範圍從 -359 度到 359 度。 |
不要等待 |
選擇箭頭(▶)展開程式碼區塊,顯示“不要等待”,這樣堆疊中的下一個程式碼區塊就會立即運作。 |
例子
當開始時 :: hat events
[Turn to face the cardinal directions.]
轉向航向 (90) 度 ▶
等待 (2) 秒
轉向航向 (180) 度 ▶
等待 (2) 秒
轉向航向 (270) 度 ▶
等待 (2) 秒
轉向航向 (0) 度 ▶
等待 (2) 秒
轉向旋轉#
旋轉到旋轉 堆疊塊使機器人旋轉到特定角度。
旋轉角度是指機器人轉動的幅度,以度為單位。在專案開始時,旋轉角度值設定為 0 度。也可以使用 set drive rotation 程式碼區塊來設定旋轉角度。
旋轉角度是絕對值。這意味著轉彎方向取決於機器人目前的旋轉角度。向右轉會增加旋轉角度,向左轉彎會減少旋轉角度。
例如,如果機器人從0度開始,你將其旋轉720度,它會向右轉兩次。如果你再將其旋轉360度,它會向左轉一次,因為360小於720。
該專案將等待機器人完成轉向後,才會運行堆疊中的下一個模組。
轉至旋轉 (90) 度 ▶
參數 |
描述 |
|---|---|
旋轉 |
機器人將旋轉到的角度值。該值可以是整數或小數。 |
不要等待 |
選擇箭頭(▶)展開程式碼區塊,顯示“不要等待”,這樣堆疊中的下一個程式碼區塊就會立即運作。 |
例子
當開始時 :: hat events
[Turn left, then spin in a circle clockwise and face right.]
轉至旋轉 (-90) 度 ▶
等待 (2) 秒
轉至旋轉 (450) 度 ▶
停止駕駛#
停止驅動堆疊塊會停止機器人的移動。
停止行駛
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時 :: hat events
[Drive forward, then stop.]
行駛 [前方 v]
等待 [4] 秒
停止行駛
設定#
設定驅動速度#
設定驅動速度 代碼塊告訴機器人以多快的速度行駛。百分比越高,機器人行駛速度越快;百分比越低,機器人行駛速度越慢。
每個專案開始時,機器人預設以 50% 的速度行駛。
注意:速度越高,機器人行駛速度越快,但精度可能越低;速度越低,機器人行駛速度越慢,但精度可能越高。
設定行駛速度為 (50) [% v]
參數 |
描述 |
|---|---|
速度 |
行駛速度,範圍從 0% 到 100%。 |
單元 |
速度單位:% |
例子
當開始時 :: hat events
[Drive forward at the default velocity.]
行駛 [前方 v] (100) [mm v] ▶
等待 (1) 秒
[Move slower.]
設定行駛速度為 (20) [% v]
行駛 [前方 v] (100) [mm v] ▶
等待 (1) 秒
[Move faster.]
設定行駛速度為 (100) [% v]
行駛 [前方 v] (100) [mm v] ▶
等待 (1) 秒
設定轉彎速度#
設定轉彎速度 代碼塊告訴機器人轉彎的速度。百分比越高,機器人轉彎越快;百分比越低,機器人轉彎越慢。
每個專案開始時,機器人預設以 50% 的速度旋轉。
注意:速度越高,機器人轉彎越快,但精度可能越低;速度越低,機器人轉彎越慢,但精度可能越高。
設定轉向速度為 (50) [% v]
參數 |
描述 |
|---|---|
速度 |
轉彎速度從 0% 到 100%。 |
單元 |
速度單位:% |
例子
當開始時 :: hat events
[Turn at default velocity.]
向 [右 v] 轉 (100) 度 ▶
等待 (1) 秒
[Turn slower.]
設定轉向速度為 (20)%
向 [右 v] 轉 (100) 度 ▶
等待 (1) 秒
[Turn faster.]
設定轉向速度為 (100)%
向 [右 v] 轉 (100) 度 ▶
等待 (1) 秒
設定驅動航向#
航向角是指機器人朝向的方向,以度為單位。 設定驅動航向堆疊區塊會將機器人的目前航向角變更為新的航向角值。
例如,如果機器人轉向右側,將航向設定為 0 度,則該右側位置將成為新的 0 度航向。然後,機器人可以根據新的航向轉向其他位置。
設定行駛航向為 (0) 度
參數 |
描述 |
|---|---|
標題 |
要設定的機器人航向值(以度為單位)。 |
例子
當開始時 :: hat events
[Turn to the left.]
設定行駛航向為 (90) 度
轉向航向 (0) 度 ▶
設定驅動旋轉#
旋轉角度是指機器人轉動的程度,以度為單位。在專案開始時,旋轉角度值設定為 0 度。 設定驅動旋轉角度 程式碼區塊會將機器人的當前旋轉角度變更為新值。
例如,如果機器人向右轉了兩圈,它的旋轉角度將為 720 度。將旋轉角度設為 0 度會將旋轉角度從 720 度重設為 0 度。然後,機器人可以根據這個新的旋轉角度進行旋轉。
設定行駛旋轉為 (0) 度
參數 |
描述 |
|---|---|
旋轉 |
機器人旋轉角度的設定值,單位為度數。可以是整數或小數。 |
例子
當開始時 :: hat events
[Spin counterclockwise two times.]
設定行駛旋轉為 (720) 度
轉至旋轉 (0) 度 ▶
設定驅動超時#
設定驅動超時 程式碼區塊用於設定機器人嘗試完成一次動作的秒數。如果機器人無法在規定時間內完成,它將停止嘗試並執行程式碼區塊中的下一個。這樣可以防止機器人卡在某個動作上。
設定行駛超時為 (1) 秒
參數 |
描述 |
|---|---|
時間 |
機器人嘗試完成一次動作的秒數。該值可以是整數或小數。 |
例子
當開始時 :: hat events
[Drive forward for 1 second, then turn.]
設定行駛超時為 (1) 秒
行駛 [前方 v] (25) [英吋 v] ▶
向 [右 v] 轉 (90) 度 ▶
價值觀#
駕駛已完成#
「驅動完成」布林模組用於報告機器人是否已停止移動。這可用於根據機器人的移動狀態來控制其他行為的執行時間。
正確 — 機器人已停止移動。
錯誤 — 機器人仍在移動。
此模組與具有 and don’t wait 參數的傳動系統模組配合使用。
<行駛完成?>
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時 :: hat events
[Start spinning when the drive is complete.]
行駛 [前方 v] (200) [mm v] ◀ 且不等待
等待直到 <行駛完成?>
向 [右 v] 轉 (360) 度 ▶
車輛正在行駛#
「驅動正在移動」布林模組用於報告機器人是否正在移動。這可用於根據機器人的移動狀態來控制其他行為的執行時間。
正確 — 機器人正在移動。
錯誤 — 機器人沒有移動。
此模組與具有 and don’t wait 參數的傳動系統模組配合使用。
<行駛中?>
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時 :: hat events
[Print that the robot is moving while it is still driving.]
行駛 [前方 v] (200) [mm v] ◀ 且不等待
當 <行駛中?>
列印 [Still Moving...] ▶
等待 (0.1) 秒
清除螢幕
結束
列印 [Done!] ▶
行駛方向#
航向角是指機器人朝向的方向,以度為單位。 驅動航向報告模組會報告 0 到 359.99 度的航向角。
機器人的初始航向為0度。
(行駛航向(度))
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時 :: hat events
[Display the heading after turning.]
向 [右 v] 轉 (450) 度 ▶
在螢幕上列印 (行駛航向(度)) ◀ 並將游標移至下一列
驅動旋轉#
旋轉角度是指機器人轉動的程度,以度為單位。專案開始時,旋轉角度值設定為 0 度。 「驅動旋轉」報告模組會報告機器人目前的旋轉角度。
向右轉會增加旋轉角度,向左轉會減少旋轉角度。例如,向右轉兩圈,旋轉角度將達到 720 度。
(行駛旋轉(度))
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時 :: hat events
[Display the rotation after turning.]
向 [右 v] 轉 (450) 度 ▶
在螢幕上列印 (行駛旋轉(度)) ◀ 並將游標移至下一列