机器人专用模块#
介绍#
VR 漫游车机器人包括驱动系统、距离传感器和 漫游车救援 游乐场特有的动作。
所有标准 VEXcode VR 模块均可在 Rover Rescue Playground 中使用。
以下是所有可用的机器人专用模块列表:
动力系统 - 控制虚拟现实漫游车移动和转向。
操作
设置
价值观
驱动完成 - 报告 VR 漫游车是否已完成移动。
drive is moving - 报告 VR 漫游车是否正在移动。
驱动航向 - 报告 VR Rover 的当前航向,范围从 0 到 359.99 度。
操作 - 与探测车的资源、敌人和内置人工智能系统进行互动。
操作
价值观
rover sees - 返回 VR 漫游车是否在其视野范围内看到物体。
rover detects - 返回 VR 漫游车在其探测半径内是否探测到矿物或敌人。
存储中的矿物 - 返回 VR 漫游车携带的矿物数量。
存储容量 - 返回 VR 漫游车的当前承载能力。
rover direction - 返回对象的方向(以度为单位)。
rover distance - 返回到对象的距离,单位为毫米或英寸。
探测车位置 - 返回物体的 X 或 Y 坐标,单位为毫米或英寸。
受攻击 - 返回 VR 漫游车当前是否受到攻击。
敌人等级 - 返回检测到的最近敌人的等级。
敌方辐射 - 返回检测到的最近敌人的辐射值。
电池电量 - 返回 VR Rover 的当前电池电量(百分比)。
level - 返回 VR 漫游车的当前级别。
XP - 返回 VR 漫游车的当前经验值。
受到攻击时 - 当 VR 漫游车受到攻击时运行附加模块。
升级时 - 当 VR 漫游车升级时运行附加模块。
感知 - 使用探测车的距离传感器探测附近物体。
距离传感器检测到物体 - 返回距离传感器是否检测到物体。
对象距离 - 返回到最近检测到的对象的距离。
本页示例使用 Playground 的默认起始位置。
传动系统#
动力系统控制着虚拟现实漫游车的行驶和转向。动力系统可以前进或后退、左转或右转、转向特定航向并报告其航向。
行动#
驾驶#
驱动 模块使机器人能够无限向前或向后移动。机器人将持续移动,直到收到其他指令,例如转向或停止。
驱动 [向前 v]
参数 |
描述 |
|---|---|
方向 |
机器人移动方向:前进或后退。 |
例子
当开始
[Drive forward, then stop.]
驱动 [向前 v]
等待 (2) 秒
驱动停止
驱动#
驱动堆栈模块控制机器人前进或后退一段特定距离。程序会等待机器人完成移动后,才会运行堆栈中的下一个模块。
驱动 [向前 v] (200) [毫米 v] ▶
参数 |
描述 |
|---|---|
方向 |
机器人移动方向:前进或后退。 |
距离 |
机器人行驶的距离。可以是整数,也可以是小数。 |
单元 |
距离单位:mm(毫米)或英寸。 |
不要等待 |
选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。 |
例子
当开始
[Drive forward for 500 mm.]
驱动 [向前 v] (500) [毫米 v] ▶
转动#
转向 积木块会让机器人无限向左或向右转向。机器人会一直转向,直到收到其他动作指令,例如行驶或停止。
[右 v] 转
参数 |
描述 |
|---|---|
方向 |
机器人转向的方向:向左或向右。 |
例子
当开始
[Turn right, then stop.]
[右 v] 转
等待 (2) 秒
驱动停止
转向#
“转向”堆栈模块会使机器人向左或向右旋转指定的角度。旋转角度是相对于机器人的当前位置而言的。程序会等待机器人完成旋转后,才会运行堆栈中的下一个模块。
[右 v] 转 (90) 度 ▶
参数 |
描述 |
|---|---|
方向 |
机器人转向的方向:向左或向右。 |
角度 |
机器人旋转的角度数。可以是整数,也可以是小数。 |
不要等待 |
选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。 |
例子
当开始
[Turn left, then turn right.]
[左 v] 转 (90) 度 ▶
[右 v] 转 (180) 度 ▶
转向标题#
航向角是指机器人面向的方向,以度为单位。转向航向角 代码块可以将机器人转向 -359 度到 359 度之间的特定航向角。机器人会选择到达目标航向角的最短路径。
起始航向为0度。
该项目将等待机器人完成转向后,才会运行堆栈中的下一个模块。
归位至 (90) 度 ▶
参数 |
描述 |
|---|---|
标题 |
机器人应面向的航向,范围从 -359 度到 359 度。 |
不要等待 |
选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。 |
例子
当开始
[Turn to face east.]
归位至 (90) 度 ▶
前往对象#
前往目标堆栈块会转向并驱动VR漫游车前往选定的目标。
go to [minerals v] ▶
参数 |
描述 |
|---|---|
目的 |
VR探测车将前往以下哪个目标:
|
不要等待 |
选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。 |
如果虚拟现实探测车探测到多个矿物或多个敌人,它将移动到距离较近的地点。
如果探测车在运行过程中,其视野范围内没有探测到矿物或敌人,则机器人不会行驶。基地始终可以被攻击。
例子
当开始
[Drive to the closest mineral.]
go to [minerals v] ▶
停止驾驶#
停止驱动堆栈块会停止机器人的运动。
驱动停止
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
[Drive forward, then stop.]
驱动 [向前 v]
wait (4) seconds
驱动停止
设置#
设定驱动速度#
设置驱动速度 代码块告诉机器人以多快的速度行驶。百分比越高,机器人行驶速度越快;百分比越低,机器人行驶速度越慢。
每个项目开始时,机器人默认以 50% 的速度行驶。
**注意:**速度越高,机器人行驶速度越快,但精度可能越低;速度越低,机器人行驶速度越慢,但精度可能越高。
设定驱动速度为 (50) [% v]
参数 |
描述 |
|---|---|
速度 |
行驶速度,范围从 0% 到 100%。 |
单元 |
速度单位:% |
例子
当开始
[Move faster.]
设定驱动速度为 (100) [% v]
驱动 [向前 v] (100) [毫米 v] ▶
设定转弯速度#
设置转弯速度 代码块告诉机器人转弯的速度。百分比越高,机器人转弯越快;百分比越低,机器人转弯越慢。
每个项目开始时,机器人默认以 50% 的速度旋转。
**注意:**速度越高,机器人转弯越快,但精度可能越低;速度越低,机器人转弯越慢,但精度可能越高。
设定转向速度为 (50) [% v]
参数 |
描述 |
|---|---|
速度 |
转弯速度从 0% 到 100%。 |
单元 |
速度单位:% |
例子
当开始
[Turn faster.]
设定转向速度为 (100) [% v]
[右 v] 转 (90) 度 ▶
设置驱动航向#
航向角是指机器人朝向的方向,以度为单位。设置驱动航向堆栈块会将机器人的当前航向角更改为新的航向角值。
例如,如果机器人转向右侧,将航向设置为 0 度,则该右侧位置将成为新的 0 度航向。然后,机器人可以根据新的航向转向其他位置。
设定底盘归位至 (0) 度
参数 |
描述 |
|---|---|
标题 |
要设置的机器人航向值(以度为单位)。 |
例子
当开始
[Set the heading, then turn to 0 degrees.]
设定底盘归位至 (90) 度
归位至 (0) 度 ▶
设置驱动超时#
设置驱动超时 代码块用于设置机器人尝试完成一次动作的秒数。如果机器人无法在规定时间内完成,它将停止尝试并执行代码块中的下一个。这样可以防止机器人卡在某个动作上。
设定驱动超时为 (1) 秒
参数 |
描述 |
|---|---|
时间 |
机器人尝试完成一次动作的秒数。该值可以是整数或小数。 |
例子
当开始
[Drive for at most 1 second.]
设定驱动超时为 (1) 秒
驱动 [向前 v] (25) [英寸 v] ▶
价值观#
驾驶已完成#
“驱动完成”布尔模块用于报告机器人是否已停止移动。这可用于根据机器人的移动状态来控制其他行为的执行时间。
正确 - 机器人已停止移动。
错误 - 机器人仍在移动。
该模块与具有 and don’t wait 参数的传动系统模块配合使用。
<驱动已结束?>
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
[Start turning when the drive is complete.]
驱动 [向前 v] (200) [毫米 v] ◀ 并且不等待
等到 <驱动已结束?>
[右 v] 转 (360) 度 ▶
车辆正在行驶#
“驱动正在移动”布尔模块用于报告机器人是否正在移动。这可用于根据机器人的移动状态来控制其他行为的执行时间。
正确 - 机器人正在移动。
错误 - 机器人没有移动。
该模块与具有 and don’t wait 参数的传动系统模块配合使用。
<驱动进行中?>
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
[Print while the rover is moving.]
驱动 [向前 v] (200) [毫米 v] ◀ 并且不等待
当 <驱动进行中?>
打印 [Still Moving...] ▶
等待 (0.1) 秒
清除所有行
结束
打印 [Done!] ▶
行驶方向#
航向角是指机器人朝向的方向,以度为单位。驱动航向报告模块会报告 0 到 359.99 度的航向角。
机器人的初始航向角为0度。
(底盘归位角度值)
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
[Display the heading after turning.]
[右 v] 转 (90) 度 ▶
打印 (底盘归位角度值) ▶
设定光标至下一行
行动#
行动#
矿物质作用#
minerals [pick up v]
参数 |
描述 |
|---|---|
行动 |
如何处理矿物:
|
拾取矿物后,它们会被储存在虚拟现实漫游车中,直到被丢弃或使用为止。
利用矿物可以补充虚拟现实探测车的部分能量。矿物只能在地面上才能使用。
VR 漫游车通过使用矿物或将矿物丢弃在基地来获得经验值 (XP)。
例子
当开始
[Drive to the closest mineral and pick it up.]
go to [minerals v] ▶
minerals [pick up v]
吸收敌方辐射#
吸收敌方辐射方块可以吸收漫游车救援游乐场中敌人的辐射。
absorb radiation
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
[Drive to the closest enemy and absorb radiation.]
go to [enemy v] ▶
absorb radiation
支持#
待机模块使 VR Rover 进入待机模式,直到达到指定的电池阈值。
standby until [50] % battery
参数 |
描述 |
|---|---|
百分比 |
使 VR Rover 退出待机模式的电池阈值,范围从 0 到 100。 |
在待机状态下,VR Rover 的电池消耗速度较慢,但“剩余天数”计数器的增长速度更快。
当电池电量达到设定的阈值时,VR Rover 将退出待机模式,恢复正常的电池使用和时间进程。
如果选定的阈值等于或高于当前电池电量,VR Rover 将不会进入待机模式。
例子
当开始
[Wait in standby until battery reaches 35%.]
standby until [35] % battery
go to [minerals v] ▶
价值观#
探测车看到#
rover sees 模块返回一个布尔值,指示 VR 漫游车是否使用其内置 AI 技术看到所选对象。
正确 - 所选物体位于 VR 漫游车 1000 毫米范围内,并且在其视野内。
错误 - 所选对象距离超过 1000 毫米和/或超出视野范围。
<sees [minerals v]?>
参数 |
描述 |
|---|---|
目的 |
要检查的对象:
|
VR Rover 的视野范围为 40 度,在小地图中显示为从 Rover 前端延伸出来的灰色半透明圆锥体。
例子
当开始
永久循环
if <sees [minerals v]?> then
go to [minerals v] ▶
结束
结束
探测车探测到#
探测车探测 模块返回一个布尔值,指示 VR 探测车是否使用其内置 AI 技术探测矿物或敌人。
正确 - 所选对象在探测车的探测半径内。
错误 - 所选对象不在探测车的探测半径内。
<detects [minerals v]?>
参数 |
描述 |
|---|---|
目的 |
要探测的目标:
|
VR Rover 的探测半径为 800 毫米,在小地图上显示为 Rover 周围的黄色圆圈。
例子
当开始
永久循环
if <detects [minerals v]?> then
go to [minerals v] ▶
结束
结束
储存的矿物#
存储中的矿物 模块返回 VR Rover 存储中当前的矿物数量。
(minerals in storage)
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
print (minerals in storage) ▶
设定光标至下一行
存储容量#
存储容量模块返回 VR 漫游车存储的承载容量。
(storage capacity)
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
print (storage capacity) ▶
设定光标至下一行
探测车方向#
漫游车方向模块以度为单位返回从 VR 漫游车到所选对象的方向。
([minerals v] direction in degrees)
参数 |
描述 |
|---|---|
目的 |
要报告哪个物体的方向:
|
对于矿物和敌人,此模块仅在选定对象位于 1000 毫米以内且在探测车 40 度视野范围内时才会报告值。
如果选择“基准”,即使基准不在视野范围内,也会报告方向。对于基准,此模块报告的值介于 -180 度到 180 度之间。
例子
当开始
print ([minerals v] direction in degrees) ▶
设定光标至下一行
漫游车距离#
漫游车距离模块返回虚拟现实漫游车到所选对象的距离。
([minerals v] distance in [mm v] :: custom-actions)
参数 |
描述 |
|---|---|
目的 |
要报告哪个物体的距离:
|
单元 |
距离单位:毫米或英寸 |
对于矿物和敌人,此模块仅在选定对象位于 1000 毫米以内且在探测车 40 度视野范围内时才会报告值。
如果选择了基准,即使基准不在视野范围内,也会报告距离。
例子
当开始
print ([minerals v] distance in [mm v] :: custom-actions) ▶
设定光标至下一行
探测车位置#
探测车位置模块使用探测车内置的人工智能技术返回所选对象的 X 或 Y 坐标。
([minerals v] location [X v] in [mm v])
参数 |
描述 |
|---|---|
目的 |
要报告哪个物体的位置:
|
轴 |
要返回哪个坐标:
|
单元 |
坐标单位:毫米或英寸 |
对于矿物和敌人,此模块仅在选定对象位于 1000 毫米以内且在探测车 40 度视野范围内时才会报告值。
如果选择了基地,即使基地不在视野范围内,也会报告其位置。
例子
当开始
print ([base v] location [X v] in [mm v]) ▶
设定光标至下一行
print ([base v] location [Y v] in [mm v]) ▶
设定光标至下一行
遭受攻击#
受攻击 模块返回一个布尔值,指示 VR 漫游车当前是否受到敌人的攻击。
没错——VR探测车正遭受攻击。
错误——VR探测车并未受到攻击。
<under attack?>
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
永久循环
if <under attack?> then
drive [reverse v] for [500] [mm v] ▶
结束
结束
敌人等级#
敌人等级模块返回VR漫游车检测到的最近敌人的等级。
(enemy level)
参数 |
描述 |
|---|---|
此代码块没有参数。 |
When no enemies are detected in the VR Rover’s detect radius, this block returns 0.
例子
当开始
永久循环
if <(enemy level) [math_equal v] [1]> then
go to [enemy v] ▶
否则
drive [reverse v] for [500] [mm v] ▶
结束
结束
敌方辐射#
敌方辐射模块会返回VR探测到的最近敌人的辐射。
(enemy radiation)
参数 |
描述 |
|---|---|
此代码块没有参数。 |
When no enemies are detected in the VR Rover’s detect radius, this block returns 0.
例子
当开始
print (enemy radiation) ▶
设定光标至下一行
电池电量#
电池电量模块以百分比形式返回 VR Rover 的当前电池电量。
(battery level in % :: custom-actions)
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
print (battery level in % :: custom-actions) ▶
设定光标至下一行
等级#
level 模块返回 VR 漫游车的当前级别。
(level)
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
print (level) ▶
设定光标至下一行
XP#
XP 模块返回 VR 漫游车当前拥有的经验值数量。
(XP)
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始
print (XP) ▶
设定光标至下一行
遭受攻击时#
受到攻击时模块会在每次 VR 漫游车受到敌人攻击时运行其附加堆栈。
when under attack
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
when under attack
absorb radiation
升级时#
当升级时模块会在 VR 漫游车每次从一层移动到下一层时运行其附加的堆栈。
when level up
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
when level up
print [The VR Rover has leveled up!] ▶
设定光标至下一行
传感#
距离#
距离测量结果显示物体#
检测到物体的距离 模块返回一个布尔值,指示距离传感器是否在 2000 毫米范围内检测到物体。
正确 - 距离传感器已检测到物体。
错误 - 距离传感器未检测到物体。
<[distance v] found an object?>
参数 |
描述 |
|---|---|
距离传感器 |
Which Distance Sensor to use. In this Playground, the available sensor is |
例子
当开始
[Turn until the Distance Sensor detects an object.]
[右 v] 转
wait until <[distance v] found an object?>
驱动停止
物距#
物体距离模块返回距离传感器到最近物体的距离。
([distance v] in [mm v])
参数 |
描述 |
|---|---|
距离传感器 |
Which Distance Sensor to use. In this Playground, the available sensor is |
单元 |
距离单位:毫米或英寸 |
例子
当开始
[Wait until the Distance Sensor detects an object, then print the distance.]
[右 v] 转
wait until <[distance v] found an object?>
驱动停止
print ([distance v] in [mm v]) ▶