AI視覺感測器#

介紹#

VEX IQ AI視覺感測器能夠偵測和追蹤物體、顏色以及AprilTag ID。這使得機器人能夠分析周圍環境、追蹤物體並根據檢測到的視覺數據做出反應。

這些 AI 視覺範例專為配備 VEX IQ AI 視覺感測器的 Basebot 設計。在這些範例中,感測器配置名稱為 AIVision1,該名稱會顯示在程式碼區塊中。

以下是所有模組的列表:

操作 — 從 VEX IQ AI 視覺感測器擷取所選簽章的資料。

  • 取得物件資料 — 擷取特定簽署的數據,例如配置的顏色、預先訓練的物件或 AprilTag 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 個顏色簽名。

AI視覺實用程式顯示連接的視覺感測器正在偵測兩個彩色物體。左側顯示即時相機畫面,左側為藍色方框,右側為紅色方框,每個方框都以白色邊框框出。黑色標籤顯示它們的名稱、座標和尺寸。右側包含顏色特徵設置,紅色和藍色方框均配有色調和飽和度範圍的滑桿。底部有用於添加顏色、凍結影片、複製和保存圖像的按鈕,右下角還有一個關閉按鈕。

例子

當開始時
[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 個顏色代碼。

AI視覺實用程式介面顯示,連接的視覺感測器偵測到兩個相鄰物體,左側為藍色方框,右側為紅色方框,它們被組合在一個標記為「藍紅」的白色邊界框中。檢測資訊包括角度(A:11°)、座標(X:143,Y:103)、寬度(W:233)和高度(H:108)。右側面板列出了三種顏色特徵:Red_Box、Blue_Box和BlueRed,色調和飽和度範圍可調。 BlueRed特徵結合了Blue_Box和Red_Box的特徵。視訊串流下方是標記為「凍結影片」、「複製影像」、「儲存影像」和「關閉 的按鈕。

例子

當開始時
[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 物件項目 堆疊區塊設定要使用資料集中的哪個項目。

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

參數

描述

物品

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

例子

一系列程式碼區塊以一個「開始」程式碼區塊開始,後面跟著一個註解程式碼區塊,內容為「顯示偵測到的最大 AprilTag ID」。在一個無限循環中,「拍攝 AI Vision 快照」程式碼區塊捕捉 AprilTag ID 的影像。一個「如果」程式碼區塊檢查 AI Vision 物件是否存在。如果存在,「設定 AI Vision 物件項」程式碼區塊將物件數量賦值給一個變量,然後一個「列印」程式碼區塊在螢幕上顯示偵測到的物件的標籤 ID。#
當開始時
[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 物件存在 布林區塊報表資料集中是否偵測到任何物件。

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

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

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 物件計數 報告模組會將資料集中偵測到的物件數量以整數形式報告。

設定 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 區塊後,儲存的每個物件都包含九個屬性(如下所示)。

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

除 tagID 外,所有屬性值均描述了在呼叫 get object data 模組時,偵測到的物體在 VEX IQ AI 視覺感測器視野中的位置和大小。這些值以像素為單位,基於感測器的 320 x 240 像素解析度。

範圍

描述

財產

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

寬度#

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

AI Vision 物件屬性堆疊區塊,其參數設定為寬度。#
([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 之間的整數。

AI Vision 物件屬性堆疊塊,其參數設定為高度。#
([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 之間的整數。

AI Vision 物件屬性堆疊區塊,其參數設定為 centerX。#
([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 之間的整數。

AI Vision 物件屬性堆疊區塊,其參數設定為 centerY。#
([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 的方向。

AI Vision 物件屬性堆疊塊,其參數設定為角度。#
([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 之間的整數。

AI Vision 物件屬性堆疊區塊,其參數設定為 originX。#
([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 之間的整數。

AI Vision 物件屬性堆疊區塊,其參數設定為 originY。#
([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 的識別號碼。

AI Vision 物件屬性堆疊區塊,其參數設定為 tagID。#
([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 物件是? 模組會報告一個布林值,指示偵測到的物件是否與特定分類相符。

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

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

AI視覺AI分類是一個物件布爾塊。#
<[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。

AI Vision 物件是 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 不是數字。

AI視覺偵測到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] 秒