人工智慧視覺#
介紹#
VEX AIM 編碼機器人的 AI 視覺感測器能夠偵測和追蹤物體、顏色和 AprilTag ID。這使得機器人能夠分析周圍環境、追蹤物體並根據檢測到的視覺數據做出反應。
AI視覺感光元件的解析度為320×240像素。原點(0, 0)位於左上角,感測器中心位於(160, 120),如下圖所示:

以下是所有模組的列表:
操作-控制AI視覺資訊流並捕捉物體資料。
螢幕上的 AI 視覺檢視器 — 啟用或停用機器人螢幕上的即時 AI 視覺畫面。
取得物件資料 — 擷取特定簽署的數據,例如配置的顏色、預先訓練的物件或 AprilTag ID。
設定 — 調整要存取的已偵測到的物件。
設定 AI 視覺物件項目 — 從偵測到的物件清單中選擇特定物件。
值 — 傳回物件是否存在、分類和屬性。
has object — 檢查機器人是否持有偵測到的物件。
AI Vision 物件存在 — 報告是否偵測到物件。
AI Vision object is — 檢查偵測到的物件是否與特定分類相符。
AI Vision 物件是 AprilTag ID — 檢查偵測到的 AprilTag ID 是否與特定 ID 相符。
AI 視覺物件計數 — 報告偵測到的物件數量。
AI 視覺對象屬性 — 報告詳細信息,例如:
行動#
螢幕上的AI視覺檢視器#
「螢幕上的 AI 視覺檢視器」堆疊區塊用於啟用或停用機器人螢幕上的即時 AI 視覺畫面。啟用後,螢幕將顯示即時感測器數據,其他影像或文字將無法顯示。若要顯示其他內容,請使用此程式碼區塊隱藏畫面。
在螢幕上 [顯示 v] AI Vision 檢視器
參數 |
描述 |
|---|---|
地位 |
控制機器人螢幕上資料流的顯示:show 顯示資料流,而 hide 從螢幕移除資料流。 |
例子
當開始時
[View the AI Vision Sensor's feed for five seconds.]
在螢幕上 [顯示 v] AI Vision 檢視器
等待 [5] 秒
在螢幕上 [隱藏 v] AI Vision 檢視器
取得對象數據#
取得物件資料堆疊區塊將來自 AI 視覺感測器幀的資料過濾為單一簽章—感測器可以識別的事物的保存描述,例如預訓練物件、AprilTag ID 或配置的顏色或顏色代碼。
必須先在 AI Vision Utility 中配置顏色和顏色代碼,然後才能將此模組使用它們。
資料集按寬度從大到小的順序儲存對象,索引從 0 開始。可以使用 AI Vision 物件屬性 程式碼區塊存取每個物件的屬性。如果未偵測到匹配的對象,則報告資料集為空。
從 AI Vision 取得 [運動球 v] 資料
範圍 |
描述 |
|---|---|
簽名 |
筛选数据集,仅包含给定签名的数据。可用签名包括:
|
例子
當開始時
[Move forward if a sports ball is detected.]
永遠
從 AI Vision 取得 [運動球 v] 資料
如果 <AI Vision 物件存在?> 則
移動 [前方 v] [10] [mm v] ▶
顏色特徵#
顏色特徵碼是人工智慧視覺感測器可以識別的獨特顏色。這些特徵碼使感測器能夠根據物體的顏色來偵測和追蹤物體。在人工智慧視覺實用程式中配置顏色特徵碼後,感測器即可辨識視野範圍內具有該特定顏色的物體。
顏色簽章在 取得物件資料 區塊中用於即時處理和偵測彩色物件。

例子
當開始時
[Display if any objects matching the Red_Box signature is detected.]
永遠
將游標設定到螢幕第 [1] 列第 [1] 欄
清除螢幕第 [1] 列
[Change the signature to any configured Color Signature.]
從 AI Vision 取得 [Red_Box v] 資料
如果 <AI Vision 物件存在?> 則
在螢幕上列印 [Color signature detected!] ▶
顏色代碼#
顏色代碼是一種結構化的圖案,由 2 到 4 個按特定順序排列的顏色特徵組成。在 AI 視覺實用程式中配置好顏色代碼後,感測器即可識別預先定義的顏色圖案。
顏色代碼對於識別複雜物體、與遊戲元素對齊或為自主導航創建獨特標記特別有用。

例子
當開始時
[Display if any objects matching the BlueRed code is detected.]
永遠
將游標設定到螢幕第 [1] 列第 [1] 欄
清除螢幕第 [1] 列
[Change the signature to any configured Color Code.]
從 AI Vision 取得 [BlueRed v] 資料
如果 <AI Vision 物件存在?> 則
在螢幕上列印 [Color code detected!] ▶
設定#
設定 AI Vision 對象項#
設定 AI Vision 物件項目 堆疊區塊設定要使用資料集中的哪個項目。
設定 AI Vision 物件項目為 (1)
參數 |
描述 |
|---|---|
物品 |
要使用的資料集中的項目編號。 |
例子
當開始時
[Display the width of the smallest detected object.]
永遠
從 AI Vision 取得 [所有貨物 v] 資料
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
如果 <AI Vision 物件存在?> 則
設定 AI Vision 物件項目為 (AI Vision 物件數量)
在螢幕上列印 (AI Vision 物件 [寬度 v]) ▶
價值觀#
有對象#
has object 布林區塊報告機器人目前是否偵測到有針對其 Kicker 的物件。
正確 — 機器人已取得該物體。
錯誤 — 機器人沒有該物體。
<有 [運動球 v]? :: custom-ai-vision>
範圍 |
描述 |
|---|---|
目的 |
機器人踢球器要偵測的物體:
|
例子
當開始時
[Kick when the robot has a sports ball.]
永遠
如果 <有 [運動球 v]? :: custom-ai-vision> 則
[中 v] 踢球
AI Vision 物件存在#
AI Vision 物件存在 布林區塊報表資料集中是否偵測到物件。
正確 — 資料集包含偵測到的物件。
錯誤 — 未偵測到任何物體。
<AI Vision 物件存在?>
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時
[Move forward if a sports ball is detected.]
永遠
從 AI Vision 取得 [運動球 v] 資料
如果 <AI Vision 物件存在?> 則
移動 [前方 v] [10] [mm v] ▶
AI視覺物件是#
AI Vision 物件是布林區塊,用於報告偵測到的物件是否與特定分類相符。
正確 — 資料集中的項目是特定物件。
錯誤 — 資料集中的項目不是特定物件。
<AI Vision 物件為 [運動球 v]?>
範圍 |
描述 |
|---|---|
目的 |
應該將該物品與哪個物體進行比較:
|
例子
當開始時
[Display if a sports ball is detected.]
永遠
從 AI Vision 取得 [所有貨物 v] 資料
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
如果 <AI Vision 物件存在?> 則
如果 <AI Vision 物件為 [運動球 v]?> 則
在螢幕上列印 [Sports ball detected!] ▶
等待 [0.5] 秒
AI Vision 物件是 AprilTag ID#
AI Vision 物件是 AprilTag ID 布爾塊報告偵測到的 AprilTag ID 是否與特定 ID 相符。
正確 — AprilTag ID 就是這個數字。
錯誤 — AprilTag ID 不是數字。
<AI Vision object is AprilTag ID [1] ?>
參數 |
描述 |
|---|---|
AprilTag ID |
要與偵測到的 AprilTag ID 號碼進行比較的數字。 |
AI視覺物件計數#
AI Vision 物件計數 報告模組會將資料集中偵測到的物件數量以整數形式報告。
AI Vision 物件數量
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時
[Display the amount of sports balls and barrels.]
永遠
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
從 AI Vision 取得 [所有貨物 v] 資料
如果 <AI Vision 物件存在?> 則
在螢幕上列印 (AI Vision 物件數量) ▶
結束
等待 [0.5] 秒
AI Vision 物件屬性#
使用 get object data 區塊後,儲存的每個物件都包含九個屬性(如下所示)。
AI Vision 物件 [寬度 v]
除 tagID 外,所有屬性值均描述在呼叫 get object data 模組時偵測到的物件的位置、大小、方向或方位。這些值以像素或度為單位進行測量,基於感測器的 320 x 240 像素解析度。

範圍 |
描述 |
|---|---|
財產 |
要使用检测到的对象的哪个属性: |
寬度#
width 屬性以像素為單位報告偵測到的物件寬度,數值為 1 到 320 之間的整數。
註:像素值是相對於感測器的座標係而言的。請參閱引言中的圖表以取得參考。
AI Vision 物件 [寬度 v]

例子
當開始時
[Move towards a blue barrel until its width is larger than 100 pixels.]
永遠
從 AI Vision 取得 [藍色桶 v] 資料
如果 <AI Vision 物件存在?> 則
如果 <(AI Vision 物件 [寬度 v]) [math_less_than v] [100]> 則
移動 [前方 v]
結束
否則
停止所有動作
高度#
height 屬性以像素為單位報告偵測到的物件的高度,數值為 1 到 240 之間的整數。
註:像素值是相對於感測器的座標係而言的。請參閱引言中的圖表以取得參考。
AI Vision 物件 [高度 v]

例子
當開始時
[Move towards a blue barrel until its height is larger than 100 pixels.]
永遠
從 AI Vision 取得 [藍色桶 v] 資料
如果 <AI Vision 物件存在?> 則
如果 <(AI Vision 物件 [高度 v]) [math_less_than v] [100]> 則
移動 [前方 v]
結束
否則
停止所有動作
centerX#
centerX 屬性以像素為單位報告偵測到的物件中心的 x 座標,數值為 0 到 320 之間的整數。
註:像素值是相對於感測器的座標係而言的。請參閱引言中的圖表以取得參考。
AI Vision 物件 [centerX v]

例子
當開始時
[Turn slowly until a blue barrel is centered in front of the robot.]
設定轉向速度為 [30]%
向 [右 v] 轉
永遠
從 AI Vision 取得 [藍色桶 v] 資料
如果 <AI Vision 物件存在?> 則
如果 <[140] [math_less_than v] (AI Vision 物件 [centerX v]) [math_less_than v] [180]> 則
停止所有動作
中心Y#
centerY 屬性以像素為單位報告偵測到的物件中心的 y 座標,數值為 0 到 240 之間的整數。
註:像素值是相對於感測器的座標係而言的。請參閱引言中的圖表以取得參考。
AI Vision 物件 [centerY v]

例子
當開始時
[Move towards a blue barrel until its center y-coordinate is more than 140 pixels.]
永遠
從 AI Vision 取得 [藍色桶 v] 資料
如果 <AI Vision 物件存在?> 則
如果 <(AI Vision 物件 [centerY v]) [math_less_than v] [140]> 則
移動 [前方 v]
結束
否則
停止所有動作
originX#
originX 屬性以像素為單位報告偵測到的物件邊界框左上角的 x 座標,數值為 0 到 320 之間的整數。
註:像素值是相對於感測器的座標係而言的。請參閱引言中的圖表以取得參考。
AI Vision 物件 [originX v]

例子
當開始時
[Display if an orange barrel is to the left or the right.]
永遠
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
從 AI Vision 取得 [橙色桶 v] 資料
如果 <AI Vision 物件存在?> 則
如果 <(AI Vision 物件 [originX v]) [math_less_than v] [160]> 則
在螢幕上列印 [To the left!] ▶
否則
在螢幕上列印 [To the right!] ▶
結束
等待 [0.5] 秒
originY#
originY 屬性以像素為單位報告偵測到的物件邊界框左上角的 y 座標,數值為 0 到 240 之間的整數。
註:像素值是相對於感測器的座標係而言的。請參閱引言中的圖表以取得參考。
AI Vision 物件 [originY v]

例子
當開始時
[Display if an orange barrel is close or far from the robot.]
永遠
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
從 AI Vision 取得 [橙色桶 v] 資料
如果 <AI Vision 物件存在?> 則
如果 <(AI Vision 物件 [originY v]) [math_less_than v] [80]> 則
在螢幕上列印 [Far!] ▶
否則
在螢幕上列印 [Close!] ▶
結束
等待 [0.5] 秒
旋轉#
rotation 屬性以 0 到 359 度的整數表示偵測到的 AprilTag ID 或顏色代碼的方向。
AI Vision 物件 [旋轉 v]

例子
當開始時
[Slide left or right depending on how the Color Code is rotated.]
永遠
從 AI Vision 取得 [Red_Blue v] 資料
如果 <AI Vision 物件存在?> 則
如果 <[50] [math_less_than v] (AI Vision 物件 [旋轉 v]) [math_less_than v] [100]> 則
移動 [右 v]
否則如果 <[270] [math_less_than v] (AI Vision 物件 [旋轉 v]) [math_less_than v] [330]> 則
移動 [左 v]
否則
停止所有動作
結束
否則
停止所有動作
軸承#
方位角屬性以度為單位報告物體位於AI視覺感測器視野中心左側或右側的距離。值為0表示物體位於中心,正值表示物體位於右側,負值表示物體位於左側。
當開始時
[Keep the blue barrel directly in front of the robot.]
設定轉向速度為 [40]%
永遠
從 AI Vision 取得 [藍色桶 v] 資料
如果 <AI Vision 物件存在?> 則
如果 <(AI Vision 物件 [方位角 v]) [math_greater_than v] [5]> 則
向 [右 v] 轉
否則如果 <(AI Vision 物件 [方位角 v]) [math_less_than v] [-5]> 則
向 [左 v] 轉
否則
停止所有動作
標籤ID#
tagID 屬性以整數形式報告偵測到的 AprilTag ID 的識別號碼。
AI Vision 物件 [tagID v]
例子
當開始時
[Move forward when AprilTag ID 0 is detected.]
永遠
從 AI Vision 取得 [AprilTag ID 0 v] 資料
如果 <AI Vision 物件存在?> 則
移動 [前方 v]
結束
停止所有動作