机器人专用模块#

介绍#

Rover Rescue 游乐场包含 VR Rover 专属的积木,包括定制的 DrivetrainActionsSensing 类别积木。

VR Rover 可以访问标准的 VR 事件、控制、操作符、变量、我的模块和注释模块。

以下是所有可用的游乐场专用积木列表:

动力系统 - 移动和监控虚拟现实漫游车。

操作 - 与探测车的资源、敌人和内置人工智能系统进行互动。

  • 操作

  • 价值观

    • 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) 秒
驱动停止

驱动#

drive for 模块使用当前的 drive velocity 使传动系统向前或向后移动指定的距离。

驱动 [向前 v] (200) [毫米 v] ▶

参数

描述

方向

机器人行驶方向:

  • 前进
  • 后退

距离

机器人行驶的距离,以整数或小数表示。

单元

计量单位:

  • 毫米
  • 英寸

展开箭头

默认情况下,这是一个等待块,因此传动系统会在执行下一个块之前完成运转。将块扩展为并且不等待即可将其更改为非等待块。

例子

当开始
[Drive forward for 500 mm.]
驱动 [向前 v] (500) [毫米 v] ▶

转动#

turn 模块使用当前的转弯速度使传动系统持续向左或向右转弯。传动系统将持续转弯,直到另一个传动系统模块运行或项目停止。

[右 v] 转

参数

描述

方向

机器人转向方向:

  • 左转
  • 右转

例子

当开始
[Turn right, then stop.]
[右 v] 转
等待 (2) 秒
驱动停止

转向#

turn for 模块使用当前的 转弯速度 将传动系统向左或向右转动特定角度。

[右 v] 转 (90) 度 ▶

参数

描述

方向

机器人转向方向:

  • 左转
  • 右转

角度

机器人旋转的角度数,以整数或小数表示。

展开箭头

默认情况下,这是一个等待块,因此传动系统会在运行下一个块之前完成运转。将块扩展为并且不等待即可使其成为非等待块。

例子

当开始
[Turn left, then turn right.]
[左 v] 转 (90) 度 ▶
[右 v] 转 (180) 度 ▶

转向标题#

转向航向 模块使用当前的转弯速度 将传动系统转向特定航向。

归位至 (90) 度 ▶

参数

描述

标题

传动系统将转向的绝对方向,范围从 -360 度到 360 度。

展开箭头

默认情况下,这是一个等待块,因此传动系统会在运行下一个块之前完成运转。将块扩展为并且不等待即可使其成为非等待块。

例子

当开始
[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) 度

参数

描述

标题

要指定的航向值,以度为单位。

例子

当开始
[Set the heading, then turn to 0 degrees.]
设定底盘归位至 (90) 度
归位至 (0) 度 ▶

设置驱动超时#

设置驱动超时模块用于设置驱动系统模块到达目标位置的等待时间限制。如果机器人无法在设定的时间内完成移动,它将自动停止并继续执行下一个模块。

注意: 驱动系统的时间限制用于防止未到达目标位置的驱动系统块停止堆栈中其他块的执行。

设定驱动超时为 (1) 秒

参数

描述

时间

传动系统模块在停止并移动到下一个模块之前将运行的最大秒数。

例子

当开始
[Drive for at most 1 second.]
设定驱动超时为 (1) 秒
驱动 [向前 v] (25) [英寸 v] ▶

价值观#

驱动完成了吗?#

驱动完成? 模块返回一个布尔值,指示驱动系统是否停止运转。

  • 没错——传动系统没有运转。

  • 错误 - 传动系统正在运转。

注意:此模块仅检测可展开以显示无需等待选项的模块的移动。

<驱动已结束?>

参数

描述

此代码块没有参数。

例子

当开始
[Start turning when the drive is complete.]
驱动 [向前 v] (200) [毫米 v] ◀ 并且不等待
等到 <驱动已结束?>
[右 v] 转 (360) 度 ▶

车辆正在行驶吗?#

驱动器是否正在移动? 模块返回一个布尔值,指示传动系统是否正在移动。

  • 没错——传动系统正在运转。

  • 错误 - 传动系统没有运转。

注意:此模块仅检测可展开以显示无需等待选项的模块的移动。

<驱动进行中?>

参数

描述

此代码块没有参数。

例子

当开始
[Print while the rover is moving.]
驱动 [向前 v] (200) [毫米 v] ◀ 并且不等待
当 <驱动进行中?>
打印 [Still Moving...] ▶
等待 (0.1) 秒
清除所有行
结束
打印 [Done!] ▶

行驶方向#

驱动方向 模块返回驱动系统的航向角,以十进制数表示,范围为 0 到 359.99 度。

(底盘归位角度值)

参数

描述

此代码块没有参数。

例子

当开始
[Display the heading after turning.]
[右 v] 转 (90) 度 ▶
打印 (底盘归位角度值) ▶
设定光标至下一行

行动#

行动#

矿物质作用#

矿物互动模块与漫游车救援游乐场中的矿物进行互动。

minerals [pick up v]

参数

描述

行动

如何处理矿物:

  • 拾取 - 将矿物放入虚拟现实漫游车
  • 上的矿物来恢复能量。6
  • 拾取矿物后,它们会被储存在虚拟现实漫游车中,直到被丢弃或使用为止。

    利用矿物可以补充虚拟现实探测车的部分能量。矿物只能在地面上才能使用。

    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])
    

    参数

    描述

    目的

    要报告哪个物体的位置:

    • 矿物
    • 敌人
    • 障碍物
    • 危险物
    • 基地

    要返回哪个坐标:

    • X
    • Y

    单元

    坐标单位:

    • 毫米
    • 英寸

    对于矿物和敌人,此模块仅在选定对象位于 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 distance.

    例子

    当开始
    [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 distance.

    单元

    计量单位:

    • 毫米
    • 英寸

    例子

    当开始
    [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]) ▶