機器人專用模組#

介紹#

VR 漫遊車機器人包括驅動系統、距離感應器和 漫遊車救援 遊樂場特有的動作。

所有標準 VEXcode VR 模組均可在 Rover Rescue Playground 中使用。

以下是所有可用的機器人專用模組清單:

動力系統 - 控制虛擬實境漫遊車移動和轉向。

  • 操作

    • drive - 使 VR 漫遊車無限向前或向後移動。

    • drive for - 使 VR 漫遊車向前或向後移動指定的距離。

    • turn - 使 VR 漫遊車無限向左或向右轉彎。

    • turn for - 將 VR 漫遊車向左或向右旋轉指定的角度數。

    • 轉向航向 - 將 VR 漫遊車轉向特定航向。

    • 前往目標 - 轉動 VR 漫遊車並將其駕駛到選定的目標上。

    • 停止駕駛 - 停止 VR 漫遊車的移動。

  • 設定

  • 價值觀

    • 驅動完成 - 報告 VR 漫遊車是否已完成移動。

    • drive is moving - 回報 VR 漫遊車是否正在移動。

    • 驅動航向 - 報告 VR Rover 的當前航向,範圍從 0 到 359.99 度。

操作 - 與探測車的資源、敵人和內建人工智慧系統進行互動。

  • 操作

  • 價值觀

    • rover sees - 返回 VR 漫遊車是否在其視野範圍內看到物體。

    • rover detects - 返回 VR 漫遊車是否在其探測半徑內探測到礦物或敵人。

    • 儲存中的礦物 - 返回 VR 漫遊車攜帶的礦物數量。

    • 儲存容量 - 返回 VR 漫遊車的當前承載能力。

    • rover direction - 傳回物件的方向(以度為單位)。

    • rover distance - 返回物件的距離,單位為毫米或英吋。

    • 探測車位置 - 傳回物體的 X 或 Y 座標,單位為毫米或英吋。

    • 受攻擊 - 返回 VR 漫遊車目前是否受到攻擊。

    • 敵人等級 - 傳回偵測到的最近敵人的等級。

    • 敵方輻射 - 傳回偵測到的最近敵人的輻射值。

    • 電池電量 - 傳回 VR Rover 的目前電池電量(百分比)。

    • level - 返回 VR 漫遊車的目前等級。

    • XP - 返回 VR 漫遊車的當前經驗值。

    • 受到攻擊時 - 當 VR 漫遊車受到攻擊時運行附加模組。

    • 升級時 - 當 VR 漫遊車升級時運行附加模組。

感知 - 使用探測車的距離感知器探測附近物體。

本頁範例使用 Playground 的預設起始位置。

傳動系統#

動力系統控制虛擬實境漫遊車的行駛和轉向。動力系統可以前進或後退、左轉或右轉、轉向特定航向並報告其航向。

行動#

駕駛#

驅動 模組使機器人能夠無限向前或向後移動。機器人將持續移動,直到收到其他指令,例如轉向或停止。

行駛 [前方 v]

參數

描述

方向

機器人移動方向:前進或後退。

例子

當開始時
[Drive forward, then stop.]
行駛 [前方 v]
等待 (2) 秒
停止行駛

驅動#

驅動堆疊模組控制機器人前進或後退一段特定距離。程式會等待機器人完成移動後,才會執行堆疊中的下一個模組。

行駛 [前方 v] (200) [mm v] ▶

參數

描述

方向

機器人移動方向:前進或後退。

距離

機器人行駛的距離。可以是整數,也可以是小數。

單元

距離單位:mm(毫米)或英吋。

不要等待

選擇箭頭(▶)展開程式碼區塊,顯示“不要等待”,這樣堆疊中的下一個程式碼區塊就會立即運作。

例子

當開始時
[Drive forward for 500 mm.]
行駛 [前方 v] (500) [mm v] ▶

轉動#

轉向 積木塊會讓機器人無限向左或向右轉向。機器人會一直轉向,直到收到其他動作指令,例如行駛或停止。

向 [右 v] 轉

參數

描述

方向

機器人轉向的方向:向左或向右。

例子

當開始時
[Turn right, then stop.]
向 [右 v] 轉
等待 (2) 秒
停止行駛

轉向#

「轉向」堆疊模組會使機器人向左或向右旋轉指定的角度。旋轉角度是相對於機器人的當前位置而言的。程式會等待機器人完成旋轉後,才會執行堆疊中的下一個模組。

向 [右 v] 轉 (90) 度 ▶

參數

描述

方向

機器人轉向的方向:向左或向右。

角度

機器人旋轉的角度數。可以是整數,也可以是小數。

不要等待

選擇箭頭(▶)展開程式碼區塊,顯示“不要等待”,這樣堆疊中的下一個程式碼區塊就會立即運作。

例子

當開始時
[Turn left, then turn right.]
向 [左 v] 轉 (90) 度 ▶
向 [右 v] 轉 (180) 度 ▶

轉向標題#

航向角是指機器人面向的方向,以度為單位。 轉向航向角 代碼塊可以將機器人轉向 -359 度到 359 度之間的特定航向角。機器人會選擇到達目標航向角的最短路徑。

起始航向為0度。

該專案將等待機器人完成轉向後,才會運行堆疊中的下一個模組。

轉向航向 (90) 度 ▶

參數

描述

標題

機器人應面向的航向,範圍從 -359 度到 359 度。

不要等待

選擇箭頭(▶)展開程式碼區塊,顯示“不要等待”,這樣堆疊中的下一個程式碼區塊就會立即運作。

例子

當開始時
[Turn to face east.]
轉向航向 (90) 度 ▶

前往對象#

前往目標堆疊塊會轉向並驅動VR漫遊車前往選定的目標。

轉到 [minerals v] ▶

參數

描述

目的

VR偵測車將前往下列哪一個目標:

  • 礦場
  • 敵方基地
  • 基地

不要等待

選擇箭頭(▶)展開程式碼區塊,顯示“不要等待”,這樣堆疊中的下一個程式碼區塊就會立即運作。

如果虛擬實境探測車探測到多個礦物或多個敵人,它將移動到距離較近的地點。

如果探測車在運行過程中,其視野範圍內沒有探測到礦物或敵人,則機器人不會行駛。基地始終可以被攻擊。

例子

當開始時
[Drive to the closest mineral.]
轉到 [minerals v] ▶

停止駕駛#

停止驅動堆疊塊會停止機器人的移動。

停止行駛

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
[Drive forward, then stop.]
行駛 [前方 v]
等待 (4) 秒
停止行駛

設定#

設定驅動速度#

設定驅動速度 代碼塊告訴機器人以多快的速度行駛。百分比越高,機器人行駛速度越快;百分比越低,機器人行駛速度越慢。

每個專案開始時,機器人預設以 50% 的速度行駛。

注意:速度越高,機器人行駛速度越快,但精度可能越低;速度越低,機器人行駛速度越慢,但精度可能越高。

設定行駛速度為 (50) [% v]

參數

描述

速度

行駛速度,範圍從 0% 到 100%。

單元

速度單位:%

例子

當開始時
[Move faster.]
設定行駛速度為 (100) [% v]
行駛 [前方 v] (100) [mm v] ▶

設定轉彎速度#

設定轉彎速度 代碼塊告訴機器人轉彎的速度。百分比越高,機器人轉彎越快;百分比越低,機器人轉彎越慢。

每個專案開始時,機器人預設以 50% 的速度旋轉。

注意:速度越高,機器人轉彎越快,但精度可能越低;速度越低,機器人轉彎越慢,但精度可能越高。

設定轉向速度為 (50) [% v]

參數

描述

速度

轉彎速度從 0% 到 100%。

單元

速度單位:%

例子

當開始時
[Turn faster.]
設定轉向速度為 (100) [% v]
向 [右 v] 轉 (90) 度 ▶

設定驅動航向#

航向角是指機器人朝向的方向,以度為單位。 設定驅動航向堆疊區塊會將機器人的目前航向角變更為新的航向角值。

例如,如果機器人轉向右側,將航向設定為 0 度,則該右側位置將成為新的 0 度航向。然後,機器人可以根據新的航向轉向其他位置。

設定行駛航向為 (0) 度

參數

描述

標題

要設定的機器人航向值(以度為單位)。

例子

當開始時
[Set the heading, then turn to 0 degrees.]
設定行駛航向為 (90) 度
轉向航向 (0) 度 ▶

設定驅動超時#

設定驅動超時 程式碼區塊用於設定機器人嘗試完成一次動作的秒數。如果機器人無法在規定時間內完成,它將停止嘗試並執行程式碼區塊中的下一個。這樣可以防止機器人卡在某個動作上。

設定行駛超時為 (1) 秒

參數

描述

時間

機器人嘗試完成一次動作的秒數。該值可以是整數或小數。

例子

當開始時
[Drive for at most 1 second.]
設定行駛超時為 (1) 秒
行駛 [前方 v] (25) [英吋 v] ▶

價值觀#

駕駛已完成#

「驅動完成」布林模組用於報告機器人是否已停止移動。這可用於根據機器人的移動狀態來控制其他行為的執行時間。

  • 正確 - 機器人已停止移動。

  • 錯誤 - 機器人仍在移動。

此模組與具有 and don’t wait 參數的傳動系統模組配合使用。

<行駛完成?>

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
[Start turning when the drive is complete.]
行駛 [前方 v] (200) [mm v] ◀ 且不等待
等待直到 <行駛完成?>
向 [右 v] 轉 (360) 度 ▶

車輛正在行駛#

「驅動正在移動」布林模組用於報告機器人是否正在移動。這可用於根據機器人的移動狀態來控制其他行為的執行時間。

  • 正確 - 機器人正在移動。

  • 錯誤 - 機器人沒有移動。

此模組與具有 and don’t wait 參數的傳動系統模組配合使用。

<行駛中?>

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
[Print while the rover is moving.]
行駛 [前方 v] (200) [mm v] ◀ 且不等待
當 <行駛中?>
列印 [Still Moving...] ▶
等待 (0.1) 秒
清除所有列
結束
列印 [Done!] ▶

行駛方向#

航向角是指機器人朝向的方向,以度為單位。 驅動航向報告模組會報告 0 到 359.99 度的航向角。

機器人的初始航向為0度。

(行駛航向(度))

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
[Display the heading after turning.]
向 [右 v] 轉 (90) 度 ▶
列印 (行駛航向(度)) ▶
將游標移至下一列

行動#

行動#

礦物質作用#

礦物質 [撿起 v]

參數

描述

行動

What to do with minerals:

  • pick up - Places minerals in the VR Rover’s storage.
  • drop - Drops carried minerals.
  • use - Consumes minerals on the ground to restore energy.

拾取礦物後,它們會被儲存在虛擬實境漫遊車中,直到被丟棄或使用為止。

利用礦物可以補充虛擬實境探測車的部分能量。礦物只能在地面上才能使用。

VR 漫遊車透過使用礦物或將礦物丟棄在基地來獲得經驗值 (XP)。

例子

當開始時
[Drive to the closest mineral and pick it up.]
轉到 [minerals v] ▶
礦物質 [撿起 v]

吸收敵方輻射#

吸收敵方輻射方塊可以吸收漫遊車救援遊樂場中敵人的輻射。

吸收輻射

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
[Drive to the closest enemy and absorb radiation.]
轉到 [enemy v] ▶
吸收輻射

支援#

待機模組使 VR Rover 進入待機模式,直到達到指定的電池閾值。

待機至電池電量為 [50]%

參數

描述

百分比

使 VR Rover 退出待機模式的電池閾值,範圍從 0 到 100。

在待機狀態下,VR Rover 的電池消耗速度較慢,但「剩餘天數」計數器的成長速度更快。

當電池電量達到設定的閾值時,VR Rover 將退出待機模式,恢復正常的電池使用和時間進程。

如果選定的閾值等於或高於目前電池電量,VR Rover 將不會進入待機模式。

例子

當開始時
[Wait in standby until battery reaches 35%.]
待機至電池電量為 [35]%
轉到 [minerals v] ▶

價值觀#

探測車看到#

rover sees 模組傳回布林值,指示 VR 漫遊車是否使用其內建 AI 技術看到所選物件。

  • 正確 - 所選物體位於 VR 漫遊車 1000 毫米範圍內,並且在其視野內。

  • 錯誤 - 所選物件距離超過 1000 毫米和/或超出視野範圍。

<看到 [minerals v]?>

參數

描述

目的

要檢查的對象:

  • 礦物
  • 敵人
  • 基地
  • 障礙物
  • 危險物品

VR Rover 的視野範圍為 40 度,在小地圖中顯示為從 Rover 前端延伸出來的灰色半透明圓錐體。

例子

當開始時
永遠
如果 <看到 [minerals v]?> 則
轉到 [minerals v] ▶
結束
結束

探測車探測到#

探測車探測 模組傳回一個布林值,指示 VR 探測車是否使用其內建 AI 技術探測礦物或敵人。

  • 正確 - 所選物件在探測車的探測半徑內。

  • 錯誤 - 所選物件不在探測車的探測半徑內。

<偵測到 [minerals v]?>

參數

描述

目的

要探測的目標:

  • 礦物
  • 敵人

VR Rover 的探測半徑為 800 毫米,在小地圖上顯示為 Rover 周圍的黃色圓圈。

例子

當開始時
永遠
如果 <偵測到 [minerals v]?> 則
轉到 [minerals v] ▶
結束
結束

儲存的礦物#

儲存中的礦物 模組會傳回 VR Rover 儲存中目前的礦物數量。

(儲存的礦物質)

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
列印 (儲存的礦物質) ▶
將游標移至下一列

儲存容量#

儲存容量模組返回 VR 漫遊車儲存的承載容量。

(儲存容量)

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
列印 (儲存容量) ▶
將游標移至下一列

探測車方向#

漫遊車方向模組以度為單位傳回從 VR 漫遊車到所選物件的方向。

([minerals v] 方向(度數))

參數

描述

目的

要報告哪個物體的方向:

  • 礦物
  • 敵方
  • 基地

對於礦物和敵人,此模組僅在選定物件位於 1000 毫米以內且在探測車 40 度視野範圍內時才會報告數值。

如果選擇“基準”,即使基準不在視野範圍內,也會報告方向。對於基準,此模組報告的值介於 -180 度到 180 度之間。

例子

當開始時
列印 ([minerals v] 方向(度數)) ▶
將游標移至下一列

漫遊車距離#

漫遊車距離模組返回虛擬實境漫遊車到所選物件的距離。

([minerals v] 距離([mm v]) :: custom-actions)

參數

描述

目的

要報告哪個物體的距離:

  • 礦物
  • 敵人
  • 障礙物
  • 危險物品
  • 基地

單元

距離單位:毫米或英寸

對於礦物和敵人,此模組僅在選定物件位於 1000 毫米以內且在探測車 40 度視野範圍內時才會報告數值。

如果選擇了基準,即使基準不在視野範圍內,也會報告距離。

例子

當開始時
列印 ([minerals v] 距離([mm v]) :: custom-actions) ▶
將游標移至下一列

探測車位置#

探測車位置模組使用探測車內建的人工智慧技術傳回所選物件的 X 或 Y 座標。

([minerals v] [X v][mm v])

參數

描述

目的

要報告哪個物體的位置:

  • 礦物
  • 敵人
  • 障礙物
  • 危險物品
  • 基地

軸

要回傳哪個座標:

  • X
  • Y

單元

坐標單位:毫米或英寸

對於礦物和敵人,此模組僅在選定物件位於 1000 毫米以內且在探測車 40 度視野範圍內時才會報告數值。

如果選擇了基地,即使基地不在視野範圍內,也會報告其位置。

例子

當開始時
列印 ([base v] [X v][mm v]) ▶
將游標移至下一列
列印 ([base v] [Y v][mm v]) ▶
將游標移至下一列

遭受攻擊#

受攻擊 模組傳回布林值,指示 VR 漫遊車目前是否受到敵人的攻擊。

  • 沒錯——VR探測車正遭受攻擊。

  • 錯誤-VR探測車並未受到攻擊。

<受到攻擊?>

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
永遠
如果 <受到攻擊?> 則
行駛 [反向 v] [500] [mm v] ▶
結束
結束

敵人等級#

敵人等級模組返回VR漫遊車偵測到的最近敵人的等級。

(敵人等級)

參數

描述

此程式碼區塊沒有參數。

當 VR 漫遊車的探測半徑內未偵測到敵人時,此模組會傳回 0。

例子

當開始時
永遠
如果 <(敵人等級) [math_equal v] [1]> 則
轉到 [enemy v] ▶
否則
行駛 [反向 v] [500] [mm v] ▶
結束
結束

敵方輻射#

敵方輻射模組會返回VR偵測到的最近敵人的輻射。

(敵方輻射)

參數

描述

此程式碼區塊沒有參數。

當 VR 漫遊車的探測半徑內未偵測到敵人時,此模組會傳回 0。

例子

當開始時
列印 (敵方輻射) ▶
將游標移至下一列

電池電量#

電池電量模組以百分比形式傳回 VR Rover 的當前電池電量。

(電池電量(%) :: custom-actions)

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
列印 (電池電量(%) :: custom-actions) ▶
將游標移至下一列

等級#

level 模組返回 VR 漫遊車的目前等級。

(等級)

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
列印 (等級) ▶
將游標移至下一列

XP#

XP 模組傳回 VR 漫遊車目前擁有的經驗值數量。

(經驗值)

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
列印 (經驗值) ▶
將游標移至下一列

遭受攻擊時#

受到攻擊時模組會在每次 VR 漫遊車受到敵人攻擊時運行其附加堆疊。

當受到攻擊時

參數

描述

此程式碼區塊沒有參數。

例子

當受到攻擊時
吸收輻射

升級時#

當升級時模組會在 VR 漫遊車每次從一層移動到下一層時運行其附加的堆疊。

當等級上升時

參數

描述

此程式碼區塊沒有參數。

例子

當等級上升時
列印 [The VR Rover has leveled up!] ▶
將游標移至下一列

感測#

距離#

距離測量結果顯示物體#

偵測到物體的距離 模組傳回一個布林值,指示距離感測器是否在 2000 毫米範圍內偵測到物體。

  • 正確 - 距離感測器已偵測到物體。

  • 錯誤 - 距離感測器未偵測到物體。

<[distance v] 偵測到物件?>

參數

描述

距離感測器

要使用哪個距離感測器?在這個遊樂場中,可用的感測器是距離 distance。

例子

當開始時
[Turn until the Distance Sensor detects an object.]
向 [右 v] 轉
等待直到 <[distance v] 偵測到物件?>
停止行駛

物距#

物體距離模組返回距離感測器與最近物體之間的距離。

([distance v] in [mm v])

參數

描述

距離感測器

要使用哪個距離感測器?在這個遊樂場中,可用的感測器是距離 distance。

單元

距離單位:毫米或英寸

例子

當開始時
[Wait until the Distance Sensor detects an object, then print the distance.]
向 [右 v] 轉
等待直到 <[distance v] 偵測到物件?>
停止行駛
列印 ([distance v] in [mm v]) ▶