AI视觉传感器#
介绍#
AI视觉传感器能够检测和追踪物体、颜色以及AprilTag ID。这使得机器人能够分析周围环境、追踪物体,并根据检测到的视觉数据做出反应。
以下是可用模块列表:
操作 – 从 AI 视觉传感器采集所选签名的数据。
拍摄快照 – 捕获特定签名的数据,例如配置的颜色、预训练对象或 AprilTag ID。
设置 – 选择要与之交互的对象。
设置 AI 视觉对象项 – 从检测到的对象列表中选择特定对象。
价值——访问和使用已采集的数据。
AI Vision 对象存在 – 报告是否检测到对象。
AI Vision object is – 检查检测到的对象是否与特定分类匹配。
AI Vision 对象是 AprilTag ID – 检查检测到的 AprilTag ID 是否与特定 ID 匹配。
AI 视觉对象计数 – 报告检测到的对象数量。
AI 视觉对象属性 – 报告详细信息,例如:
行动#
拍照#
拍摄快照堆栈块将来自 AI 视觉传感器帧的数据过滤为单个签名——传感器可以识别的事物的保存描述,例如预训练对象、AprilTag ID 或配置的颜色或颜色代码。
必须先在 AI Vision Utility 中配置颜色和颜色代码,然后才能将此模块使用它们。
数据集按宽度从大到小的顺序存储对象,索引从 0 开始。可以使用 AI Vision 对象属性 代码块访问每个对象的属性。如果未检测到匹配的对象,则报告数据集为空。
[AIVision 1 v] 拍照 [SELECT_A_SIG v]
范围 |
描述 |
|---|---|
设备 |
选择哪种AI视觉传感器? |
签名 |
筛选数据集,仅包含给定签名的数据。可用签名包括:
|
**注意:**要显示 AprilTag ID 或 AI 分类选项,必须在 AI 视觉实用程序中启用其检测功能。
例子
当开始
[Drive forward if an AprilTag ID is detected.]
永久循环
[AIVision 1 v] 拍照 [AprilTag IDs v]
如果 <[AIVIsion1 v] 对象存在?> 那么
驱动 [向前 v] [10] [毫米 v] ▶
人工智能分类#
AI视觉传感器可以根据特定的AI分类检测不同的物体。根据在“设备”窗口中配置AI视觉传感器时选择的AI分类模型,可以检测到不同的物体。目前可用的模型有:
教室物品
蓝球
绿球
红球
蓝环
绿环
红环
蓝立方
绿立方
红立方
VEX V5 Robotics Competition Push Back
BlueBlock
红块
VEX V5 Robotics Competition High Stakes
移动目标
红环
蓝环
VEX V5 Robotics Competition Override
RedBluePin
BlueYellowPin
RedYellowPin
YellowPin
Cup
颜色特征#
颜色特征码是人工智能视觉传感器可以识别的独特颜色。这些特征码使传感器能够根据物体的颜色来检测和跟踪物体。配置好颜色特征码后,传感器就能识别视野范围内具有该特定颜色的物体。
颜色特征码用于 拍摄快照 模块中,以实时处理和检测彩色物体。一次最多可以配置 7 个颜色特征码。

例子
当开始
[Display if any objects matching the RED_BOX signature is detected.]
永久循环
在屏幕上设定光标至 [1] 行 [1] 列
清除屏幕第 [1] 行
[Change the signature to any configured Color Signature.]
[AIVision 1 v] 拍照 [RED_BOX v]
如果 <[AIVision 1 v] 对象存在?> 那么
在屏幕上打印 [Color detected!]▶
颜色代码#
颜色代码是一种结构化的图案,由 2 到 4 个按特定顺序排列的颜色特征组成。这些代码使 AI 视觉传感器能够识别预定义的颜色模式。
颜色代码对于识别复杂物体、与游戏元素对齐或创建用于自主导航的独特标记尤其有用。一次最多可配置 8 个颜色代码。
AI视觉实用程序界面显示,连接的视觉传感器检测到两个相邻物体,左侧为蓝色方框,右侧为红色方框,它们被组合在一个标记为“蓝红”的白色边界框中。检测信息包括角度(A:11°)、坐标(X:143,Y:103)、宽度(W:233)和高度(H:108)。右侧面板列出了三种颜色特征:Red_Box、Blue_Box和BlueRed,色调和饱和度范围可调。BlueRed特征结合了Blue_Box和Red_Box的特征。视频流下方是标记为“冻结视频”、“复制图像”、“保存图像”和“关闭/_static/img/AiVision/color_code.png的按钮。
例子
当开始
[Display if any objects matching the RED_BLUE code is detected.]
永久循环
在屏幕上设定光标至 [1] 行 [1] 列
清除屏幕第 [1] 行
[Change the signature to any configured Color Code.]
[AIVision 1 v] 拍照 [RED_BLUE v]
如果 <[AIVision 1 v] 对象存在?> 那么
在屏幕上打印 [Code detected!]▶
设置#
设置 AI 视觉对象项#
设置 AI Vision 对象项 堆栈块设置要使用数据集中的哪个项。
设定 [AIVision 1 v] 对象标号为 (1)
参数 |
描述 |
|---|---|
设备 |
选择哪种AI视觉传感器? |
物品 |
要使用的数据集中的项目编号。 |
例子
当开始
[Display the largest detected AprilTag ID.]
永久循环
[AIVision 1 v] 拍照 [AprilTag IDs v]
清除屏幕第 [1] 行
在屏幕上设定光标至 [1] 行 [1] 列
如果 <[AIVision 1 v] 对象存在?> 那么
设定 [AIVision 1 v] 对象标号为 ([AIVision 1 v]object count)
在屏幕上打印 ([AIVision 1 v] 对象 [tagID v])▶
价值观#
AI Vision 对象存在#
AI Vision 对象存在 布尔块报告数据集中是否检测到任何对象。
正确 – 数据集中包含检测到的对象。
错误 – 该数据集不包含任何检测到的对象。
<[AIVision 1 v] 对象存在?>
参数 |
描述 |
|---|---|
设备 |
选择哪种AI视觉传感器? |
例子
当开始
[Drive forward if an object is detected.]
永久循环
[AIVision 1 v] 拍照 [AI Classifications v]
如果 <[AIVision 1 v] 对象存在?> 那么
驱动 [向前 v] [10] [毫米 v] ▶
AI视觉对象是#
AI Vision 对象是布尔块,用于报告检测到的对象是否与特定分类匹配。
正确 – 数据集中的项是特定对象。
错误 – 数据集中的项不是特定对象。
<[AIVision1 v] object is [BlueBall v]?>
范围 |
描述 |
|---|---|
设备 |
选择哪种AI视觉传感器? |
目的 |
要将该物品与哪个AI分类进行比较。 |
例子
当开始
[Display if a Blue Cube is detected.]
永久循环
[AIVision 1 v] 拍照 [AI Classifications v]
清除屏幕第 [1] 行
在屏幕上设定光标至 [1] 行 [1] 列
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <[AIVision1 v] object is [BlueCube v]?> 那么
在屏幕上打印 [Cube detected!]▶
等待 [0.5] 秒
AI Vision 对象是 AprilTag ID#
AI Vision 对象是 AprilTag ID 布尔块报告检测到的 AprilTag ID 是否与特定 ID 匹配。
正确 – AprilTag ID 就是这个数字。
错误 – AprilTag ID 不是数字。
<[AIVision1 v] object is AprilTag ID [1] ?>
参数 |
描述 |
|---|---|
设备 |
选择哪种AI视觉传感器? |
AprilTag ID 号 |
要与检测到的 AprilTag ID 号码进行比较的数字。 |
例子:
当开始
[Report if AprilTag ID 3 is detected.]
永久循环
清屏
在屏幕上设定光标至 [1] 行 [1] 列
[AIVision 1 v] 拍照 [AprilTag IDs v]
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <[AIVision1 v] object is AprilTag ID [3] ?> 那么
在屏幕上打印 [That is 3!]▶
否则
在屏幕上打印 [That isn't 3!]▶
结束
结束
等待 [0.1] 秒
AI视觉对象计数#
AI Vision 对象计数 报告模块会将数据集中检测到的对象数量以整数形式报告。
([AIVision 1 v] 对象数目)
参数 |
描述 |
|---|---|
设备 |
选择哪种AI视觉传感器? |
例子
当开始
[Display the total amount of cubes, rings, and balls.]
永久循环
清除屏幕第 [1] 行
在屏幕上设定光标至 [1] 行 [1] 列
[AIVision 1 v] 拍照 [AI Classifications v]
如果 <[AIVision 1 v] 对象存在?> 那么
在屏幕上打印 ([AIVision 1 v] 对象数目)▶
结束
等待 [0.5] 秒
AI Vision 对象属性#
使用 take snapshot 块后,存储的每个对象都包含九个属性(如下所示)。
([AIVision 1 v] 对象 [宽 v])
除 tagID 和 score 之外的所有属性值均描述了在执行 take snapshot 代码块时,AI 视觉传感器视野中检测到的对象的位置和大小。这些值以像素为单位,基于传感器的 320 x 240 像素分辨率。
范围 |
描述 |
|---|---|
设备 |
选择哪种AI视觉传感器? |
财产 |
要使用检测到的对象的哪个属性: |
宽度#
width 属性以像素为单位报告检测到的对象宽度,数值为 1 到 320 之间的整数。
([AIVision 1 v] 对象 [宽 v])
例子
当开始
[Drive towards an object until its width is larger than 100 pixels.]
永久循环
[AIVision 1 v] 拍照 [AI Classifications v]
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <([AIVision 1 v] 对象 [宽 v]) [math_less_than v] [100]> 那么
驱动 [向前 v]
否则
驱动停止
结束
高度#
height 属性以像素为单位报告检测到的对象的高度,数值为 1 到 240 之间的整数。
([AIVision 1 v] 对象 [高 v])
例子
当开始
[Drive towards an object until its height is larger than 100 pixels.]
永久循环
[AIVision 1 v] 拍照 [AI Classifications v]
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <([AIVision 1 v] 对象 [高 v]) [math_less_than v] [100]> 那么
驱动 [向前 v]
否则
驱动停止
结束
centerX#
centerX 属性以像素为单位报告检测到的对象中心的 x 坐标,数值为 0 到 320 之间的整数。
([AIVision 1 v] 对象 [中心X坐标 v])
例子
当开始
[Turn slowly until an object is centered in front of the robot.]
设定转向速度为 [30] [% v]
[右 v] 转
永久循环
[AIVision 1 v] 拍照 [AI Classifications v]
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <[140] [math_less_than v] ([AIVision 1 v] 对象 [中心X坐标 v]) [math_less_than v] [180]> 那么
驱动停止
中心Y#
centerY 属性以像素为单位报告检测到的对象中心的 y 坐标,数值为 0 到 240 之间的整数。
([AIVision 1 v] 对象 [中心Y坐标 v])
例子
当开始
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
永久循环
[AIVision 1 v] 拍照 [AI Classifications v]
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <([AIVision 1 v] 对象 [中心Y坐标 v]) [math_less_than v] [140]> 那么
驱动 [向前 v]
否则
驱动停止
结束
角度#
angle 属性以 0 到 359 度的整数表示检测到的颜色代码或 AprilTag ID 的方向。
([AIVision 1 v] 对象 [夹角 v])
例子
当开始
[Slide left or right depending on how the Color Code is rotated.]
永久循环
[AIVision 1 v] 拍照 [RED_BLUE v]
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <[50] [math_less_than v] ([AIVision 1 v] 对象 [夹角 v]) [math_less_than v] [100]> 那么
驱动 [右 v]
否则如果 <[270] [math_less_than v] ([AIVision 1 v] 对象 [夹角 v]) [math_less_than v] [330]> 那么
驱动 [左 v]
否则
驱动停止
结束
否则
驱动停止
originX#
originX 属性以像素为单位报告检测到的对象边界框左上角的 x 坐标,数值为 0 到 320 之间的整数。
([AIVision 1 v] 对象 [原点X v])
例子
当开始
[Display if an object is to the left or the right.]
永久循环
清除屏幕第 [1] 行
在屏幕上设定光标至 [1] 行 [1] 列
[AIVision 1 v] 拍照 [AI Classifications v]
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <([AIVision 1 v] 对象 [原点X v]) [math_less_than v] [160]> 那么
在屏幕上打印 [To the left!]▶
否则
在屏幕上打印 [To the right!]▶
结束
等待 [0.5] 秒
originY#
originY 属性以像素为单位报告检测到的对象边界框左上角的 y 坐标,数值为 0 到 240 之间的整数。
([AIVision 1 v] 对象 [原点Y v])
例子
当开始
[Display if an object is close or far from the robot.]
永久循环
清除屏幕第 [1] 行
在屏幕上设定光标至 [1] 行 [1] 列
[AIVision 1 v] 拍照 [AI Classifications v]
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <([AIVision 1 v] 对象 [原点Y v]) [math_less_than v] [80]> 那么
在屏幕上打印 [Far!]▶
否则
在屏幕上打印 [Close!]▶
结束
等待 [0.5] 秒
标签ID#
tagID 属性以整数形式报告检测到的 AprilTag ID 的标识号。
([AIVision 1 v] 对象 [tagID v])
例子
当开始
[Drive forward when AprilTag ID 0 is detected.]
永久循环
[AIVision 1 v] 拍照 [AprilTag IDs v]
如果 <[AIVision 1 v] 对象存在?> 那么
如果 <([AIVision 1 v] 对象 [tagID v]) [math_equal v] [0]> 那么
驱动 [向前 v]
否则
驱动停止
结束
等待 [0.5] 秒
分数#
score 属性以百分比形式报告模型对检测到的 AI 分类的置信度,范围从 70% 到 100%。
得分越低,表示传感器对检测到的物体信心越低;得分越高,表示传感器对检测到的物体信心越高。
([AIVision 1 v] 对象 [score v])