Skip to main content
教师门户

教师工具箱图标 教师工具箱 - 本活动的目的

视觉传感器提供各种可在项目中使用的数据。 传感块允许用户让项目拍摄快照、确定对象是否存在、确定存在多少个、确定视觉传感器快照内对象的中心 X 和 Y 坐标,并确定快照内对象的宽度和高度(以像素为单位) 。 此活动将介绍收集该信息以准备视觉数据挑战所需的所有相关模块。
以下是 Rethink 视觉数据挑战的概述:

  • 查看从视觉传感器的传感块收集的完整信息数据集。

  • 完成从视觉传感器收集的有关不同快照的部分信息数据集。

  • 基于快照和视觉传感器的传感块创建数据集。

视觉传感器的传感块

VEXcode IQ 具有用于视觉传感器的传感块。 您已在“播放”部分中使用前两个来拍摄快照并检查对象是否存在。

在下图中,您可以看到 (Snapshot) 块捕获了 GREENBOX 快照。 对象 GREENBOX 在快照中被识别,因此它是否存在的答案是 TRUE。

让我们看看这些其他传感块以及它们的值告诉我们什么。

  • (对象计数) 块告诉我们快照中有多少个 GREENBOX 对象。 这里仅检测到 1 个。

  • 中心 X 值告诉我们 GREENBOX 对象是在机器人中心点的左侧还是右侧。 请记住,视觉传感器安装在机器人前部的中间,因此快照的视图就是机器人的视图。

    • 如果中心 X 大于 157.5,则对象位于机器人中心点的右侧。

    • 如果中心 X 小于 157.5,则对象位于机器人中心点的左侧。

  • 中心 Y 值告诉我们 GREENBOX 是否高于或低于机器人的中心点。

    • 如果中心 Y 大于 105.5,则物体低于机器人中心点。

    • 如果中心 Y 小于 105.5,则物体高于机器人中心点。

  • 宽度和高度值告诉我们 GREENBOX 与机器人的距离有多近。

    • 同样大小的物体,越靠近机器人,宽度和高度就会越大。

教师工具箱图标 教师工具箱 - 为什么要阅读此内容?

VEXcode IQ 中的帮助信息还提供了有关块的信息,但在这里,正在收集的数据根据​​它们具体告诉用户有关快照中的对象的内容进行了上下文化。

笔记:

  • 整个快照的centerX和centerY值用于确定物体是否位于机器人中心点的左/右或上方/下方。 它们的计算方法是将该轴上的像素总数除以二(例如,快照的 centerX = 315 / 2 = 157.5)。

    我们可以假设机器人的中心点与视觉传感器快照的中心点相同,因为视觉传感器应安装在机器人正面的中心并面向前方。 在判断物体相对于机器人(或视觉传感器)中心点的位置时,需要考虑视觉传感器在机器人结构上的位置以及视觉传感器可能向下倾斜的角度。

  • Y 值在快照内向下增加。 在继续下一部分之前,请确保学生认识到这一点。

中心X和中心Y值是如何计算的?

这些值是根据快照内的坐标计算的。 对象的宽度和高度已经计算出来。

视觉传感器跟踪物体左上角的 X 和 Y 值。 下面,这些坐标是 (84, 34)。

中心 X 和中心 Y 值可以根据左上角 (84, 34) 的坐标以及提供的宽度 (W 140) 和高度 (H 142) 值来计算。

  • 中心X = 140/2 + 84 = 154

    • centerX = 对象宽度的一半添加到其最左侧的 X 坐标

  • 中心Y = 142/2 + 34 = 105

    • centerY = 对象高度的一半添加到其最上面的 Y 坐标

教师工具箱图标 教师工具箱 - 结束本页

确保学生理解查找中心 X 和中心 Y 值所涉及的数学。 他们将需要它来进行下一页的活动。

询问 (84, 34) 和 (W 140, H 142) 值与快照角中提供的坐标有何关系。 学生应该认识到整个快照是根据像素数映射到坐标平面上的。 X 值范围从 0 到 315(宽 316 像素),Y 值范围从 0 到 211(高 212 像素)。 对象的坐标和大小基于对象沿这些轴占据的像素数量。