AI視覺感測器#
介紹#
VEX IQ AI視覺感測器能夠偵測和追蹤物體、顏色以及AprilTag ID。這使得機器人能夠分析周圍環境、追蹤物體並根據檢測到的視覺數據做出反應。
這些 AI 視覺範例專為配備 VEX IQ AI 視覺感測器的 Basebot 設計。在這些範例中,感測器配置名稱為 AIVision1,該名稱會顯示在程式碼區塊中。
以下是所有模組的列表:
操作 — 從 VEX IQ AI 視覺感測器擷取所選簽章的資料。
取得物件資料 — 擷取特定簽署的數據,例如配置的顏色、預先訓練的物件或 AprilTag ID。
設定 — 選擇要與之互動的物件。
設定 AI 視覺物件項目 — 從偵測到的物件清單中選擇特定物件。
價值-存取和使用已捕獲的資料。
AI Vision 物件存在 — 報告是否偵測到物件。
AI 視覺物件計數 — 報告偵測到的物件數量。
AI 視覺對象屬性 — 報告詳細信息,例如:
AI Vision 物件是? — 檢查偵測到的物件是否與特定分類相符。
AI Vision 物件是 AprilTag 嗎? — 檢查偵測到的物件是否是與特定 ID 相符的 AprilTag。
AI Vision 物件是 AprilTag ID 嗎? — 檢查偵測到的 AprilTag ID 是否與特定 ID 相符。
行動#
取得對象數據#
取得物件資料堆疊區塊將 VEX IQ AI 視覺感測器幀的資料過濾為單一簽章—感測器可以識別的事物的保存描述,例如預訓練物件、AprilTag ID 或配置的顏色或顏色代碼。
必須先在 AI Vision Utility 中配置顏色和顏色代碼,然後才能將此模組使用它們。
資料集按寬度從大到小的順序儲存對象,索引從 0 開始。可以使用 AI Vision 物件屬性 程式碼區塊存取每個物件的屬性。如果未偵測到匹配的對象,則報告資料集為空。
從 [AIVision1 v] 取得 [SELECT_A_SIG v] 資料
範圍 |
描述 |
|---|---|
簽名 |
Filters the dataset to only include data of the given signature. Available signatures are:
|
注意:要顯示 AprilTag ID 或 AI 分類選項,必須在 AI 視覺實用程式中啟用其偵測功能。
例子
當開始時
[Drive forward if an AprilTag ID is detected.]
永遠
從 [AIVision1 v] 取得 [AprilTag IDs v] 資料
如果 <[AIVIsion1 v] 物件存在?> 則
行駛 [前方 v] [10] [mm v] ▶
人工智慧分類#
VEX IQ AI 視覺感測器能夠根據特定的 AI 分類檢測不同的物體。根據在「裝置」視窗中配置 VEX IQ AI 視覺感測器時選擇的 AI 分類模型,感測器將偵測到不同的物體。目前可用的模型包括:
教室物品
藍球
綠球
紅球
藍環
綠環
紅環
藍立方
綠立方
紅立方
VEX IQ 機器人競賽混搭
光束
紅針
藍針
橘子針
VEX IQ 機器人競賽升級版
藍豆袋
紅豆袋
黃豆袋
顏色特徵#
顏色特徵碼是VEX IQ AI視覺感應器能夠辨識的獨特顏色。這些特徵碼使感測器能夠根據物體的顏色來偵測和追蹤物體。配置好顏色特徵碼後,感應器就能在其視野範圍內辨識出具有該特定顏色的物體。
顏色簽章用於 取得物件資料 程式碼區塊中,以即時處理和偵測彩色物件。一次最多可配置 7 個顏色簽名。

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

例子
當開始時
[Display if any objects matching the RED_BLUE code is detected.]
永遠
將游標設定到螢幕第 [1] 列第 [1] 欄
清除螢幕第 [1] 列
[Change the signature to any configured Color Code.]
從 [AIVision1 v] 取得 [RED_BLUE v] 資料
如果 <[AIVIsion1 v] 物件存在?> 則
在螢幕上列印 [Code detected!] ▶
設定#
設定 AI Vision 對象項#
設定 AI Vision 物件項目 堆疊區塊設定要使用資料集中的哪個項目。
設定 [AIVision1 v] 物件項目為 (1)
參數 |
描述 |
|---|---|
物品 |
要使用的資料集中的項目編號。 |
例子
當開始時
[Display the largest detected AprilTag ID.]
永遠
從 [AIVision1 v] 取得 [AprilTag IDs v] 資料
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
如果 <[AIVision1 v] 物件存在?> 則
設定 [AIVision1 v] 物件項目為 ([AIVision1 v] 物件數量)
在螢幕上列印 ([AIVision1 v] 物件 [tagID v]) ▶
價值觀#
AI Vision 物件存在#
AI Vision 物件存在 布林區塊報表資料集中是否偵測到任何物件。
正確 — 資料集包含偵測到的物件。
錯誤 — 此資料集不包含任何偵測到的物件。
<[AIVision1 v] 物件存在?>
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時
[Drive forward if an object is detected.]
永遠
從 [AIVision1 v] 取得 [AI Classifications v] 資料
如果 <[AIVision1 v] 物件存在?> 則
行駛 [前方 v] [10] [mm v] ▶
AI視覺物件計數#
AI Vision 物件計數 報告模組會將資料集中偵測到的物件數量以整數形式報告。
([AIVision1 v] 物件數量)
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時
[Display the total amount of cubes, rings, and balls.]
永遠
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
從 [AIVision1 v] 取得 [AI Classifications v] 資料
如果 <[AIVision1 v] 物件存在?> 則
在螢幕上列印 ([AIVision1 v] 物件數量) ▶
結束
等待 [0.5] 秒
AI Vision 物件屬性#
使用 get object data 區塊後,儲存的每個物件都包含九個屬性(如下所示)。
([AIVision1 v] 物件 [寬度 v])
除 tagID 外,所有屬性值均描述了在呼叫 get object data 模組時,偵測到的物體在 VEX IQ AI 視覺感測器視野中的位置和大小。這些值以像素為單位,基於感測器的 320 x 240 像素解析度。
範圍 |
描述 |
|---|---|
財產 |
要使用检测到的对象的哪个属性: |
寬度#
width 屬性以像素為單位報告偵測到的物件寬度,數值為 1 到 320 之間的整數。
([AIVision1 v] 物件 [寬度 v])
例子
當開始時
[Drive towards an object until its width is larger than 100 pixels.]
永遠
從 [AIVision1 v] 取得 [AI Classifications v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <([AIVision1 v] 物件 [寬度 v]) [math_less_than v] [100]> 則
行駛 [前方 v]
結束
否則
停止行駛
高度#
height 屬性以像素為單位報告偵測到的物件的高度,數值為 1 到 240 之間的整數。
([AIVision1 v] 物件 [高度 v])
例子
當開始時
[Drive towards an object until its height is larger than 100 pixels.]
永遠
從 [AIVision1 v] 取得 [AI Classifications v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <([AIVision1 v] 物件 [高度 v]) [math_less_than v] [100]> 則
行駛 [前方 v]
結束
否則
停止行駛
centerX#
centerX 屬性以像素為單位報告偵測到的物件中心的 x 座標,數值為 0 到 320 之間的整數。
([AIVision1 v] 物件 [centerX v])
例子
當開始時
[Turn slowly until an object is centered in front of the robot.]
設定轉向速度為 [30] [% v]
向 [右 v] 轉
永遠
從 [AIVision1 v] 取得 [AI Classifications v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <[140] [math_less_than v] ([AIVision1 v] 物件 [centerX v]) [math_less_than v] [180]> 則
停止行駛
中心Y#
centerY 屬性以像素為單位報告偵測到的物件中心的 y 座標,數值為 0 到 240 之間的整數。
([AIVision1 v] 物件 [centerY v])
例子
當開始時
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
永遠
從 [AIVision1 v] 取得 [AI Classifications v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <([AIVision1 v] 物件 [centerY v]) [math_less_than v] [140]> 則
行駛 [前方 v]
結束
否則
停止行駛
角度#
angle 屬性以 0 到 359 度的整數表示偵測到的顏色代碼或 AprilTag ID 的方向。
([AIVision1 v] 物件 [角度 v])
例子
當開始時
[Slide left or right depending on how the Color Code is rotated.]
永遠
從 [AIVision1 v] 取得 [RED_BLUE v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <[50] [math_less_than v] ([AIVision1 v] 物件 [角度 v]) [math_less_than v] [100]> 則
行駛 [右 v]
否則如果 <[270] [math_less_than v] ([AIVision1 v] 物件 [角度 v]) [math_less_than v] [330]> 則
行駛 [左 v]
否則
停止行駛
結束
否則
停止行駛
originX#
originX 屬性以像素為單位報告偵測到的物件邊界框左上角的 x 座標,數值為 0 到 320 之間的整數。
([AIVision1 v] 物件 [originX v])
例子
當開始時
[Display if an object is to the left or the right.]
永遠
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
從 [AIVision1 v] 取得 [AI Classifications v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <([AIVision1 v] 物件 [originX v]) [math_less_than v] [160]> 則
在螢幕上列印 [To the left!] ▶
否則
在螢幕上列印 [To the right!] ▶
結束
等待 [0.5] 秒
originY#
originY 屬性以像素為單位報告偵測到的物件邊界框左上角的 y 座標,數值為 0 到 240 之間的整數。
([AIVision1 v] 物件 [originY v])
例子
當開始時
[Display if an object is close or far from the robot.]
永遠
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
從 [AIVision1 v] 取得 [AI Classifications v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <([AIVision1 v] 物件 [originY v]) [math_less_than v] [80]> 則
在螢幕上列印 [Far!] ▶
否則
在螢幕上列印 [Close!] ▶
結束
等待 [0.5] 秒
標籤ID#
tagID 屬性以整數形式報告偵測到的 AprilTag ID 的識別號碼。
([AIVision1 v] 物件 [tagID v])
例子
當開始時
[Drive forward when AprilTag ID 0 is detected.]
永遠
從 [AIVision1 v] 取得 [AprilTag IDs v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <([AIVision1 v] 物件 [tagID v]) [math_equal v] [0]> 則
行駛 [前方 v]
否則
停止行駛
結束
等待 [0.5] 秒
AI視覺物件是什麼?#
AI Vision 物件是? 模組會報告一個布林值,指示偵測到的物件是否與特定分類相符。
正確-資料集中的項是特定的物件。
錯誤-資料集中的項不是特定對象。
<[AIVision1 v] 物件為 [BlueBall v]?>
範圍 |
描述 |
|---|---|
目的 |
將該物品與哪一個AI分類進行比較。 |
例子
當開始時
[Display if a Blue Cube is detected.]
永遠
從 [AIVision1 v] 取得 [AI Classifications v] 資料
清除螢幕第 [1] 列
將游標設定到螢幕第 [1] 列第 [1] 欄
如果 <[AIVision1 v] 物件存在?> 則
如果 <[AIVision1 v] 物件為 [BlueCube v]?> 則
在螢幕上列印 [Cube detected!] ▶
等待 [0.5] 秒
AI Vision 物件是 AprilTag 嗎?#
AI Vision 物件是 AprilTag 嗎? 模組會報告一個布林值,指示偵測到的物件是否是與特定 ID 相符的 AprilTag。
正確 — 偵測到的物件是具有給定 ID 的 AprilTag。
錯誤 — 偵測到的物件不是具有給定 ID 的 AprilTag。
<[AIVision1 v] 物件為 AprilTag [0]?>
範圍 |
描述 |
|---|---|
AprilTag ID |
要與偵測到的 AprilTag 進行比較的 ID 號碼。 |
例子
當開始時
[Report if AprilTag 3 is detected.]
永遠
清除螢幕
將游標設定到螢幕第 [1] 列第 [1] 欄
從 [AIVision1 v] 取得 [AprilTag IDs v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <[AIVision1 v] 物件為 AprilTag [3]?> 則
在螢幕上列印 [That is 3!] ▶
否則
在螢幕上列印 [That isn't 3!] ▶
結束
結束
等待 [0.1] 秒
AI Vision 物件是 AprilTag ID 嗎?#
AI Vision 物件是否為 AprilTag ID? 區塊報告一個布林值,指示偵測到的 AprilTag ID 是否與特定 ID 相符。
沒錯——AprilTag ID 就是這個數字。
錯誤-AprilTag ID 不是數字。
<[AIVision1 v] object is AprilTag ID [1] ?>
參數 |
描述 |
|---|---|
AprilTag ID 號碼 |
要與偵測到的 AprilTag ID 號碼進行比較的數字。 |
範例:
當開始時
[Report if AprilTag ID 3 is detected.]
永遠
清除螢幕
將游標設定到螢幕第 [1] 列第 [1] 欄
從 [AIVision1 v] 取得 [AprilTag IDs v] 資料
如果 <[AIVision1 v] 物件存在?> 則
如果 <[AIVision1 v] object is AprilTag ID [3] ?> 則
在螢幕上列印 [That is 3!] ▶
否則
在螢幕上列印 [That isn't 3!] ▶
結束
結束
等待 [0.1] 秒