機器人專用模組#

介紹#

Hero Bot Flex 包含一個爪形馬達、一個臂形馬達、一個 AI 視覺感測器、一個距離感測器和一個遊戲定位系統 (GPS) 感測器。

所有標準 VEXcode VR 模組均可在 V5 26-27 覆蓋 Playground 中使用。

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

驅動系統-控制機器人的移動和轉向。

  • 操作

    • drive — 使機器人無限向前或向後移動。

    • 驅動 — 使機器人向前或向後移動指定的距離。

    • turn — 使機器人永遠向左或向右轉。

    • turn for — 使機器人向左或向右旋轉指定的角度數。

    • 轉向航向 — 將機器人轉向面向特定航向。

    • 轉向旋轉 — 將機器人轉向指定的旋轉方向。

    • 停止駕駛 — 停止機器人的移動。

  • 設定

  • 價值觀

運動控制-移動並追蹤機器人的馬達。

人工智慧視覺——使用人工智慧視覺感測器捕捉和分析物體。

感知-利用機器人的各種感測器。

  • 距離

    • 距離偵測到物體 – 報告距離感測器是否偵測到範圍內的物體。

    • 物體距離 – 報告距離感測器與最近偵測到的物體之間的距離。

  • 全球定位系統

    • GPS 位置 – 返回 GPS 感知器的 X 或 Y 位置。

    • GPS 航向 – 返回機器人目前面向的航向。

本頁範例使用遊樂場賽前檢查清單中的起始位置 C。

傳動系統#

動力系統控制VR機器人的駕駛和轉向。動力系統可以前進或後退、左轉或右轉、轉向特定航向並追蹤其旋轉。

行動#

駕駛#

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

行駛 [前方 v]

參數

描述

方向

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

例子

當開始時 :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v]
等待 (0.5) 秒
停止行駛
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

驅動#

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

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

參數

描述

方向

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

距離

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

單元

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

不要等待

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

例子

當開始時 :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

轉動#

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

向 [右 v] 轉

參數

描述

方向

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

例子

當開始時 :: hat events
[Score a Pin in a Neutral Goal.]
向 [左 v] 轉
等待 (0.78) 秒
停止行駛
旋轉 [ArmMotor v] [上升 v] (800) [度 v] ▶
行駛 [前方 v] (25) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

轉向#

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

向 [右 v] 轉 (90) 度 ▶

參數

描述

方向

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

角度

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

不要等待

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

例子

當開始時 :: hat events
[Score a Pin in a Neutral Goal.]
向 [左 v] 轉 (110) 度 ▶
旋轉 [ArmMotor v] [上升 v] (800) [度 v] ▶
行駛 [前方 v] (25) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

轉向標題#

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

起始航向為0度。

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

轉向航向 (90) 度 ▶

參數

描述

標題

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

不要等待

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

例子

當開始時 :: hat events
[Score a Pin in a Neutral Goal.]
轉向航向 (-110) 度 ▶
旋轉 [ArmMotor v] [上升 v] (800) [度 v] ▶
行駛 [前方 v] (25) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

轉向旋轉#

旋轉到旋轉 堆疊塊使機器人旋轉到特定角度。

旋轉角度是指機器人轉動的幅度,以度為單位。在專案開始時,旋轉角度值設定為 0 度。也可以使用 set drive rotation 程式碼區塊來設定旋轉角度。

旋轉角度是絕對值。這意味著轉彎方向取決於機器人目前的旋轉角度。向右轉會增加旋轉角度,向左轉彎會減少旋轉角度。

例如,如果機器人從0度開始,你將其旋轉720度,它會向右轉兩次。如果你再將其旋轉360度,它會向左轉一次,因為360小於720。

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

轉至旋轉 (90) 度 ▶

參數

描述

旋轉

機器人將旋轉到的角度值。該值可以是整數或小數。

不要等待

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

例子

當開始時 :: hat events
[Score a Pin in a Neutral Goal.]
轉至旋轉 (-110) 度 ▶
旋轉 [ArmMotor v] [上升 v] (800) [度 v] ▶
行駛 [前方 v] (25) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

停止駕駛#

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

停止行駛

參數

描述

此程式碼區塊沒有參數。

例子

當開始時 :: hat events
[Score a Pin in a Neutral Goal.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v]
等待 (0.5) 秒
停止行駛
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

設定#

設定驅動速度#

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

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

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

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

參數

描述

速度

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

單元

速度單位:%

例子

當開始時 :: hat events
[Score a Pin in a Neutral Goal.]
向 [左 v] 轉 (110) 度 ▶
旋轉 [ArmMotor v] [上升 v] (800) [度 v] ▶
設定行駛速度為 (100) [% v]
行駛 [前方 v] (25) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

設定轉彎速度#

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

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

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

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

參數

描述

速度

轉彎速度從 0% 到 100%。

單元

速度單位:%

例子

當開始時 :: hat events
[Turn to face the Neutral Goal faster.]
設定轉向速度為 (100) [% v]
向 [左 v] 轉 (110) 度 ▶

設定驅動航向#

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

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

設定行駛航向為 (0) 度

參數

描述

標題

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

例子

當開始時 :: hat events
[Make facing the Neutral Goal the new heading.]
設定行駛航向為 (110) 度
轉向航向 (0) 度 ▶

設定驅動旋轉#

旋轉角度是指機器人轉動的程度,以度為單位。在專案開始時,旋轉角度值設定為 0 度。 設定驅動旋轉角度 程式碼區塊會將機器人的當前旋轉角度變更為新值。

例如,如果機器人向右轉了兩圈,它的旋轉角度將為 720 度。將旋轉角度設為 0 度會將旋轉角度從 720 度重設為 0 度。然後,機器人可以根據這個新的旋轉角度進行旋轉。

設定行駛旋轉為 (0) 度

參數

描述

旋轉

機器人旋轉角度的設定值,單位為度數。可以是整數或小數。

例子

當開始時 :: hat events
[Make facing the Neutral Goal the new rotation.]
設定行駛旋轉為 (110) 度
轉至旋轉 (0) 度 ▶

設定驅動超時#

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

設定行駛超時為 (1) 秒

參數

描述

時間

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

例子

當開始時 :: hat events
[Turn to face the Neutral Goal.]
設定行駛超時為 (0.8) 秒
向 [左 v] 轉 (180) 度 ▶

價值觀#

駕駛已完成#

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

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

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

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

<行駛完成?>

參數

描述

此程式碼區塊沒有參數。

例子

當開始時 :: hat events
[Score a Pin in a Neutral Goal.]
向 [左 v] 轉 (110) 度 ▶
旋轉 [ArmMotor v] [上升 v] (800) [度 v] ▶
行駛 [前方 v] (25) [英吋 v] ◀ 且不等待
等待直到 <行駛完成?>
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

車輛正在行駛#

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

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

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

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

<行駛中?>

參數

描述

此程式碼區塊沒有參數。

例子

當開始時 :: hat events
[Raise the Arm once stopped near the Goal.]
向 [左 v] 轉 (110) 度 ▶
行駛 [前方 v] (25) [英吋 v] ◀ 且不等待
當 <行駛中?>
等待 (0.005) 秒
結束
旋轉 [ArmMotor v] [上升 v] (800) [度 v] ▶

行駛方向#

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

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

(行駛航向(度))

參數

描述

此程式碼區塊沒有參數。

例子

當開始時 :: hat events
[Turn to the Goal, then show heading.]
向 [右 v] 轉 (450) 度 ▶
在螢幕上列印 (行駛航向(度)) ◀ 並將游標移至下一列

驅動旋轉#

旋轉角度是指機器人轉動的程度,以度為單位。專案開始時,旋轉角度值設定為 0 度。 「驅動旋轉」報告模組會報告機器人目前的旋轉角度。

向右轉會增加旋轉角度,向左轉會減少旋轉角度。例如,向右轉兩圈,旋轉角度將達到 720 度。

(行駛旋轉(度))

參數

描述

此程式碼區塊沒有參數。

例子

當開始時 :: hat events
[Spin to find a Pin, then show rotation.]
向 [右 v] 轉 (450) 度 ▶
在螢幕上列印 (行駛旋轉(度)) ◀ 並將游標移至下一列

驅動速度#

驅動速度報告模組會報告機器人的行駛速度。

(行駛速度([% v]))

參數

描述

單元

速度單位:%

例子

當開始時 :: hat events
[Show speed while driving to the Goal.]
行駛 [前方 v] (150) [mm v] ▶
在螢幕上列印 (行駛速度([% v])) ◀ 並將游標移至下一列

運動#

Flex 使用 ArmMotor 來升降機械手臂,使用 ClawMotor 來開啟和關閉機械爪。

每個馬達都有自己的方向選項。方向名稱描述了該馬達在Flex上的運動方式。

行動#

旋轉馬達#

旋轉馬達 模組可以使馬達沿著兩個方向之一持續旋轉。馬達將持續旋轉,直到收到其他指令,例如改變旋轉方向或停止。

旋轉 [ArmMotor v] [上升 v]

參數

描述

引擎

旋轉馬達:機械手臂馬達或爪式馬達。

方向

馬達旋轉方向:

  • 機械手臂馬達 — 向上 或 向下
  • 機械爪馬達 — 開啟 或 關閉

例子

當開始時
[Raise the Arm before driving toward a Pin.]
旋轉 [ArmMotor v] [上升 v]
等待 (1) 秒
停止 [ArmMotor v]

用於旋轉馬達#

「旋轉馬達」堆疊模組會使馬達旋轉一段特定距離。旋轉距離是相對於馬達目前位置的。程式會等待馬達旋轉完畢後,才會運作堆疊中的下一個模組。

旋轉 [ArmMotor v] [上升 v] (90) [度 v] ▶

參數

描述

引擎

旋轉馬達:機械手臂馬達或爪式馬達。

方向

馬達旋轉方向:

  • 機械手臂馬達 — 向上 或 向下
  • 機械爪馬達 — 開啟 或 關閉

距離

馬達旋轉的距離。 角度使用整數。 圈數可以使用整數或小數。

單元

距離單位:度或圈。

不要等待

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

例子

當開始時
[Raise the Arm to carry the Pin to the Goal.]
旋轉 [ArmMotor v] [上升 v] (800) [度 v] ▶

旋轉馬達定位#

旋轉馬達定位 堆疊模組使馬達旋轉到特定位置。

馬達的位置是指它旋轉的距離,以度或圈數來衡量。一圈等於360度。在專案開始時,ArmMotor 的位置設定為0度。 ClawMotor 是個例外-它的初始位置為467度(完全閉合)。也可以使用 set motor position 程式碼區塊來設定馬達位置。

位置值是絕對值。這意味著旋轉方向取決於馬達的當前位置。

例如,如果馬達從0度開始旋轉到720度,它將正轉兩圈。如果它接著旋轉到360度,它將反轉一圈,因為360小於720。

旋轉 [ArmMotor v] 至位置 (90) [度 v] ▶

參數

描述

引擎

旋轉馬達:機械手臂馬達或爪式馬達。

位置

馬達旋轉到的位置值。 角度使用整數。 圈數可以使用整數或小數。

單元

位置單位:度或圈。

不要等待

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

例子

當開始時
[Raise the Arm, then release the Pin.]
旋轉 [ArmMotor v] 至位置 (800) [度 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

停止馬達#

停止馬達 堆疊塊停止選定的馬達。

停止 [ArmMotor v]

參數

描述

引擎

要停止的馬達:機械手臂馬達或爪式馬達。

例子

當開始時
[Raise the Arm partway to hold the Pin.]
旋轉 [ArmMotor v] [上升 v]
等待 (1) 秒
停止 [ArmMotor v]

設定#

設定馬達速度#

“設定馬達轉速”模組用於控制馬達的轉速。百分比越高,馬達轉速越快;百分比越低,馬達轉速越慢。

每個項目開始時,每個馬達預設以 50% 的速度旋轉。

注意:更高的速度會使馬達轉速更快,但精度可能會降低。更低的速度會使馬達轉速更慢,但精度可能會更高。

設定 [ArmMotor v] 速度為 [50] [% v]

參數

描述

引擎

用於設定下列馬達速度的馬達:機械手臂馬達或爪馬達。

速度

馬達旋轉的速度。 百分比使用0%到100%之間的整數。

單元

速度單位:%。

例子

當開始時
[Raise the Arm fast to release the Pin.]
設定 [ArmMotor v] 速度為 [100] [% v]
旋轉 [ArmMotor v] [上升 v] (800) [度 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

設定馬達超時#

設定馬達逾時 代碼區塊用於設定馬達嘗試完成一次動作的超時時間。如果馬達無法在規定時間內完成,它將停止嘗試並執行程式碼區塊堆疊中的下一個程式碼區塊。這樣可以防止馬達卡在某個運動中。

設定 [ArmMotor v] 超時為 [1] 秒

參數

描述

引擎

設定馬達逾時時間為:ArmMotor 或 ClawMotor。

時間

馬達嘗試完成一次運動的秒數。該值可以是整數或小數。

例子

當開始時
[Score a Pin in a Neutral Goal.]
向 [左 v] 轉 (110) 度 ▶
設定 [ArmMotor v] 超時為 [1] 秒
旋轉 [ArmMotor v] [上升 v] (1800) [度 v] ▶
行駛 [前方 v] (25) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

位置#

馬達位置#

馬達的位置是指它旋轉的距離,以度或圈數來衡量。一圈等於360度。 馬達位置報告模組會報告馬達的目前位置。

專案開始時,機械手臂馬達(ArmMotor)的位置設定為 0 度。爪式馬達(ClawMotor)是個例外-它的初始位置為 467 度(完全閉合)。如果馬達正向旋轉一整圈,位置增加;如果馬達反向旋轉,位置減少。

([ArmMotor v] 位置([度 v]))

參數

描述

引擎

用於報告以下部件位置的馬達:機械手臂馬達 或 爪子馬達。

單元

報告馬達位置的單位:度或圈。

例子

當開始時
[Raise the Arm, then release the Pin.]
當 <([ArmMotor v] 位置([度 v])) < (800)>
旋轉 [ArmMotor v] [上升 v]
等待 (0.002) 秒
結束
停止 [ArmMotor v]
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

設定馬達位置#

馬達的位置是指它旋轉的距離,以度或圈數來衡量。一圈等於360度。 設定馬達位置堆疊塊會將馬達的目前位置變更為新值。

例如,如果馬達旋轉了 180 度,將位置設為 0 度會將該位置從 180 度重設為 0 度。然後,馬達可以根據這個新值旋轉到其他位置。

設定 [ArmMotor v] 位置為 (0) [度 v]

參數

描述

引擎

用於設定下列部件位置的馬達:機械手臂馬達 或 爪子馬達。

位置

要設定的馬達位置值。 角度使用整數。 圈數可以使用整數或小數。

單元

位置單位:度或圈。

例子

當開始時
[Reset encoder, raise Arm, place Pin.]
設定 [ArmMotor v] 位置為 (0) [度 v]
旋轉 [ArmMotor v] 至位置 (800) [度 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

價值觀#

馬達已完成#

「馬達已完成」布林模組用於報告馬達是否已停止運轉。這可用於根據馬達的運轉狀態來控制其他行為的執行時間。

  • 正確 — 馬達已停止運轉。

  • 錯誤 — 馬達仍在運轉。

此模組與以下具有and don’t wait參數的運動模組配合使用:spin motor for 和 spin motor to position。

<[ArmMotor v] 完成?>

參數

描述

引擎

報告其是否已完成運動的馬達:ArmMotor 或 ClawMotor。

例子

當開始時
[Raise the Arm while driving to the Goal.]
旋轉 [ArmMotor v] 至位置 (800) [度 v] ◀ 且不等待
等待 (0.1) 秒
當 <非 <[ArmMotor v] 完成?>>
行駛 [前方 v]
等待 (0.005) 秒
結束
停止行駛

馬達正在旋轉#

「馬達是否旋轉」布林模組用於報告馬達是否正在旋轉。這可以根據馬達的運動狀態來控制其他行為的執行時間。

  • 正確-馬達正在旋轉。

  • 錯誤 — 馬達沒有轉動。

此模組與以下具有and don’t wait參數的運動模組配合使用:spin motor for 和 spin motor to position。

<[ArmMotor v] 旋轉中?>

參數

描述

引擎

報告馬達是否正在旋轉的參數:ArmMotor 或 ClawMotor。

例子

當開始時
[Raise the Arm while driving to the Goal, then release the Pin.]
旋轉 [ArmMotor v] 至位置 (800) [度 v] ◀ 且不等待
等待 (0.1) 秒
當 <[ArmMotor v] 旋轉中?>
行駛 [前方 v] (20) [mm v] ▶
結束
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

馬達速度#

馬達速度報告模組以百分比形式報告馬達的旋轉速度,範圍從 -100% 到 100%。

([ArmMotor v] 速度([% v]) :: custom-motion)

參數

描述

引擎

若要報告下列馬達的速度:機械手臂馬達或爪馬達。

單元

馬達速度的報告單位:%。

例子

當開始時
[Show Arm Motor velocity while raising.]
設定 [ArmMotor v] 速度為 [100] [% v]
旋轉 [ArmMotor v] 至位置 (800) [度 v] ◀ 且不等待
等待 (0.2) 秒
在螢幕上列印 ([ArmMotor v] 速度([% v]) :: custom-motion) ◀ 並將游標移至下一列

人工智慧視覺#

行動#

取得對象數據#

獲取物件資料 模組將來自 AI 視覺感測器幀的資料過濾為單一簽名——感測器可以識別的事物的保存描述,例如場上的遊戲元素。

資料集按寬度從大到小的順序儲存對象,索引從 0 開始。可以使用 AI Vision 物件屬性 程式碼區塊存取每個物件的屬性。如果沒有偵測到匹配的對象,則傳回空資料集。

取得物件資料堆疊塊。#
從 [AIVision v] 取得 [AI Classifications v] 資料

範圍

描述

簽名

Filters the dataset to only include data of the given signature. Available signatures are:

  • AI Classifications - Detects RedBluePin, BlueYellowPin, RedYellowPin, YellowPin, and Cup game elements.
  • AprilTags - Detects the AprilTag IDs found on the field.

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
[Turn to face the Pin.]
設定轉向速度為 (30) [% v]
永遠
從 [AIVision v] 取得 [AI Classifications v] 資料
如果 <[AIVision v] 物件存在?> 則
if <([AIVision v] 物件 [centerX v]) < (140)> then
向 [左 v] 轉
else if <([AIVision v] object [centerX v]) > (180)> then
向 [右 v] 轉
否則
停止行駛
中斷
結束
結束
結束

設定#

設定對象項#

設定物件項目 區塊設定要使用資料集中的哪個項目。

設定 AI Vision 物件項堆疊塊。#
設定 [AIVision v] 物件項目為 [1]

參數

描述

物品

要使用的資料集中的項目編號。

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
從 [AIVision v] 取得 [AI Classifications v] 資料
[Check if any AI Classifications were detected in the last snapshot.]
如果 <[AIVision v] 物件存在?> 則
[If any AI Classification is detected, check if any of them are a specific game element.]
如果 <[AIVision v] 物件為 [RedBluePin v]?> 則
列印 [RedBluePin detected.] ▶
否則
列印 [No RedBluePin detected.] ▶
結束
結束

價值觀#

對象存在#

物件存在 程式碼區塊傳回布林值,指示是否在資料集中偵測到任何物件。

  • 正確-資料集中包含偵測到的物件。

  • 錯誤-該資料集不包含任何偵測到的物件。

AI Vision 物件存在布爾塊。#
<[AIVision v] 物件存在?>

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
從 [AIVision v] 取得 [AI Classifications v] 資料
[Check if any AI Classifications were detected in the last snapshot.]
如果 <[AIVision v] 物件存在?> 則
列印 ([AIVision v] 物件數量) ◀ 並將游標移至下一列
結束

對像是#

object is 區塊傳回布林值,指示偵測到的物件是否與特定分類相符。

  • 正確-資料集中的項就是特定的物件。

  • 錯誤-資料集中的項不是特定對象。

AI Vision 物件是布爾塊。#
<[AIVision v] 物件為 [RedBluePin v]?>

範圍

描述

目的

將該物品與哪個物體進行比較:

  • 紅藍別針
  • 藍黃別針
  • 紅黃別針
  • 黃別針
  • 杯

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
從 [AIVision v] 取得 [AI Classifications v] 資料
如果 <[AIVision v] 物件存在?> 則
如果 <[AIVision v] 物件為 [RedBluePin v]?> 則
列印 [RedBluePin detected.] ▶
否則
列印 [No RedBluePin detected.] ▶
結束
結束

對像是 AprilTag#

object is AprilTag 區塊傳回布林值,指示偵測到的物件是否是與特定 ID 相符的 AprilTag。

  • 正確 – 偵測到的物件是具有給定 ID 的 AprilTag。

  • 錯誤 – 偵測到的物件不是具有給定 ID 的 AprilTag。

該物件是 AprilTag 布爾塊。#
<[AIVision v] 物件為 AprilTag [0]?>

範圍

描述

AprilTag ID

要與偵測到的 AprilTag 進行比較的 ID 號碼。

例子

當開始時
[Report if AprilTag 3 is detected.]
從 [AIVision v] 取得 [AprilTags v] 資料
如果 <[AIVision v] 物件存在?> 則
如果 <[AIVision v] 物件為 AprilTag [3]?> 則
列印 [That is 3!] ▶
否則
列印 [That isn't 3!] ▶
結束
結束

對象計數#

物件計數 模組傳回資料集中偵測到的物件數量,以整數形式表示。

設定 AI Vision 物件項堆疊塊。#
([AIVision] 物件數量)

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
從 [AIVision v] 取得 [AI Classifications v] 資料
如果 <[AIVision v] 物件存在?> 則
列印 ([AIVision v] 物件數量) ◀ 並將游標移至下一列
結束

物件屬性#

使用 get object data 區塊後,儲存的每個物件都包含六個屬性(如下所示)。

AI視覺物件屬性報告器模組。#
([AIVision v] 物件 [寬度 v])

所有屬性值均描述了在呼叫「取得物件資料」模組時,AI視覺感測器視野中偵測到的物件的位置和大小。這些值以像素為單位,基於感測器320×240像素的分辨率。

範圍

描述

財產

要使用检测到的对象的哪个属性:

寬度#

width 屬性以像素為單位報告偵測到的物件寬度,數值為 1 到 320 之間的整數。

AI Vision 物件屬性堆疊區塊,其參數設定為寬度。#
([AIVision v] 物件 [寬度 v])

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
[Approach the next Cup and Pin.]
設定行駛速度為 (30) [% v]
永遠
從 [AIVision v] 取得 [AI Classifications v] 資料
如果 <[AIVision v] 物件存在?> 則
if <([AIVision v] object [width v]) > (140)> then
停止行駛
中斷
否則
行駛 [前方 v]
結束
結束
結束
高度#

height 屬性以像素為單位報告偵測到的物件的高度,數值為 1 到 240 之間的整數。

AI Vision 物件屬性堆疊塊,其參數設定為高度。#
([AIVision v] 物件 [高度 v])

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
[Approach the next Cup and Pin.]
設定行駛速度為 (30) [% v]
永遠
從 [AIVision v] 取得 [AI Classifications v] 資料
如果 <[AIVision v] 物件存在?> 則
if <([AIVision v] object [height v]) > (200)> then
停止行駛
中斷
否則
行駛 [前方 v]
結束
結束
結束
centerX#

centerX 屬性以像素為單位報告偵測到的物件中心的 x 座標,數值為 0 到 320 之間的整數。

AI Vision 物件屬性堆疊區塊,其參數設定為 centerX。#
([AIVision v] 物件 [centerX v])

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
[Turn and approach the next Cup and Pin.]
設定轉向速度為 (30) [% v]
永遠
從 [AIVision v] 取得 [AI Classifications v] 資料
如果 <[AIVision v] 物件存在?> 則
if <([AIVision v] 物件 [centerX v]) < (140)> then
向 [左 v] 轉 (5) 度 ▶
否則
行駛 [前方 v] (25) [英吋 v] ▶
中斷
結束
結束
結束
中心Y#

centerY 屬性以像素為單位報告偵測到的物件中心的 y 座標,數值為 0 到 240 之間的整數。

AI Vision 物件屬性堆疊區塊,其參數設定為 centerY。#
([AIVision v] 物件 [centerY v])

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
[Approach the next Cup and Pin.]
設定行駛速度為 (30) [% v]
永遠
從 [AIVision v] 取得 [AI Classifications v] 資料
如果 <[AIVision v] 物件存在?> 則
if <([AIVision v] object [centerY v]) > (230)> then
停止行駛
中斷
否則
行駛 [前方 v]
結束
結束
結束
originX#

originX 屬性以像素為單位報告偵測到的物件邊界框左上角的 x 座標,數值為 0 到 320 之間的整數。

AI Vision 物件屬性堆疊區塊,其參數設定為 originX。#
([AIVision v] 物件 [originX v])

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
[Turn and approach the next Cup and Pin.]
設定轉向速度為 (30) [% v]
永遠
從 [AIVision v] 取得 [AI Classifications v] 資料
如果 <[AIVision v] 物件存在?> 則
if <([AIVision v] 物件 [originX v]) < (100)> then
向 [左 v] 轉 (5) 度 ▶
否則
行駛 [前方 v] (25) [英吋 v] ▶
中斷
結束
結束
結束
originY#

originY 屬性以像素為單位報告偵測到的物件邊界框左上角的 y 座標,數值為 0 到 240 之間的整數。

AI Vision 物件屬性堆疊區塊,其參數設定為 originY。#
([AIVision v] 物件 [originY v])

例子

當開始時
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
向 [左 v] 轉 (70) 度 ▶
[Approach the next Cup and Pin.]
設定行駛速度為 (30) [% v]
永遠
從 [AIVision v] 取得 [AI Classifications v] 資料
如果 <[AIVision v] 物件存在?> 則
if <([AIVision v] object [originY v]) > (140)> then
停止行駛
中斷
否則
行駛 [前方 v]
結束
結束
結束

感測#

距離#

距離測量結果顯示物體#

偵測到物體的距離布林模組報告距離感測器目前是否偵測到 2000 毫米範圍內的物體。

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

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

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

參數

描述

距離感測器

要使用的距離感測器。請從適用於 Flex 的距離感測器中進行選擇。

例子

當開始時 :: hat events
[Turn until something is detected, then release the Pin.]
向 [右 v] 轉
等待直到 <[FrontDistance v] 偵測到物件?>
停止行駛
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

物距#

物體距離報告模組報告距離感測器與最近偵測到的物體之間的距離。

([FrontDistance v] 距離([mm v]))

參數

描述

距離感測器

要使用的距離感測器。請從適用於 Flex 的距離感測器中進行選擇。

單元

距離單位:毫米或英吋。

例子

當開始時 :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
行駛 [前方 v]
等待直到 <([FrontDistance v] 距離([mm v])) < (200)>
停止行駛
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

全球定位系統#

GPS定位#

GPS 位置 模組使用 GPS(遊戲定位系統™)感測器返回機器人轉彎參考點相對於場地中心的偏移位置。

([GPS v] 位置 [X v]([mm v]))

參數

描述

軸

要報告哪個座標軸:

  • X
  • Y

單位

表示位置的單位:毫米 或 英吋

例子

當開始時 :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
停止行駛
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶

GPS航向#

GPS航向模組根據GPS(遊戲定位系統™)感測器從VEX GPS場碼讀取的0.00到359.99度的讀數,返回機器人目前面向的航向。

([GPS v] 航向(度))

參數

描述

此程式碼區塊沒有參數。

例子

當開始時 :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
旋轉 [ArmMotor v] [上升 v] (300) [度 v] ▶
行駛 [前方 v] (10) [英吋 v] ▶
旋轉 [ClawMotor v] [打開 v] (180) [度 v] ▶
[Turn left to face the Neutral Goal.]
設定轉向速度為 (30) [% v]
向 [左 v] 轉
等待直到 <([GPS v] 航向(度)) < (18)>
停止行駛