GPS传感器#

介绍#

V5 GPS(游戏定位系统™)传感器可为 VEX 场地上的机器人提供精确的位置和方向跟踪。它利用场地周边的 GPS 场地代码实时计算机器人的 X 和 Y 坐标以及航向。

GPS 传感器使用在“设备”窗口中配置 GPS 传感器时输入的偏移量自动计算出的参考点来返回机器人的位置。

有关 GPS 传感器的更多信息,请阅读 VEX 库中的 将 GPS 传感器与 VEX V5 一起使用。

参考点作为 GPS 传感器自身的 (0, 0) 位置,GPS 方法返回的所有坐标、航向和运动都相对于此配置点。

VEX V5 GPS 传感器。

本页面使用 gps_sensor 作为示例 GPS 传感器名称。请根据需要将其替换为您自己配置的名称。

以下是可用方法列表:

  • calibrate – 校准 GPS 传感器,使其航向设置为当前传动系统航向。

  • set_origin – 设置机器人上的参考点位置。

  • set_location – 设置场上参考点的位置和方向。

  • x_position – 返回场上参考点的 x 坐标。

  • y_position – 返回场上参考点的 y 坐标。

  • heading – 根据字段方向返回参考点的航向。

  • acceleration – 返回机器人在选定轴上的加速度。

  • gyro_rate – 返回机器人在选定轴上的旋转速度。

  • orientation – 返回机器人的横滚、俯仰或偏航姿态(以度为单位)。

  • quality – 返回 GPS 传感器的信号强度。

  • changed – 注册一个函数,当 GPS 传感器检测到航向变化时,该函数将被调用。

构造函数 - 手动初始化 GPS 传感器。

  • Gps – 创建一个 GPS 传感器。

校准#

calibrate 校准参考点,将其配置的航向设置为当前驱动系统的航向。在此期间,机器人必须保持完全静止,因为校准期间的任何移动都会导致结果不准确。

Usage:
gps_sensor.calibrate()

参数

描述

此方法没有参数。

设置原点#

set_origin 手动设置机器人上的参考点位置。这样做是为了手动设置机器人上 GPS 传感器的位置,而不是在配置设置中进行设置。

Usage:
gps_sensor.set_origin(x, y, distance_units)

参数

描述

x

机器人上参考点的 x 坐标。

是

机器人上参考点的y坐标。

距离单位

x 和 y 坐标的计量单位:

  • MM
  • INCHES

# GPS Sensor is mounted 25mm forward
# from the reference point on a robot

gps.set_origin(0, 25, MM)

设置位置#

set_location 手动设置场地上参考点的位置和方向。如果启动时 GPS 传感器距离场地墙壁太近,无法接收到足够的 GPS 场地代码,则此操作有助于减少误差。

VEX V5 场的俯视图,显示传感器正在观察场两侧的场代码。

Usage:
gps_sensor.set_location(x, y, distance_units, heading, heading_units)

参数

描述

x

场上参考点的 x 坐标。

是

场上参考点的 y 坐标。

距离单位

x 和 y 坐标的计量单位:

  • MM
  • INCHES

标题

参考点相对于绝对场航向的航向,范围从 0 度到 359.9 度。

标题单位

航向的计量单位:DEGREES

x_position#

x_position 返回场上参考点的 x 坐标。

Usage:
gps_sensor.x_position(units)

参数

描述

单元

计量单位:

  • MM – 毫米
  • INCHES

y 位置#

y_position 返回场上参考点的 y 坐标。

Usage:
gps_sensor.y_position(units)

参数

描述

单元

计量单位:

  • MM – 毫米
  • INCHES

标题#

heading 根据场的方向(0 到 359.9 度)返回参考点的航向。

该航向对应于绝对航向,其范围为顺时针方向的 0º 至 359.9º。0º 位于 12 点钟位置。

VEX V5 场的俯视图,显示了场周围的度数。

Usage:
gps_sensor.heading()

参数

描述

此方法没有参数。

加速度#

acceleration 返回机器人在指定轴上的加速度,范围从 -4.0 到 4.0 Gs。

Usage:
gps_sensor.acceleration(axis)

参数

描述

轴

使用哪个轴:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

陀螺仪速率#

gyro_rate 返回机器人在选定轴上的旋转速度。

Usage:
gps_sensor.gyro_rate(axis, units)

参数

描述

轴

使用哪个轴:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

单位

计量单位:

  • VelocityUnits.DPS – 度/秒,范围从 -1000 到 1000
  • VelocityUnits.RPM – 转/分,范围从 -167 到 167

方向#

orientation 返回机器人的横滚、俯仰或偏航姿态(以度为单位)。

Usage:
gps_sensor.orientation(axis, units)

参数

描述

轴

使用哪种方向:

  • OrientationType.ROLL
  • OrientationType.PITCH
  • OrientationType.YAW

单位

计量单位:DEGREES

质量#

quality 返回 GPS 传感器的信号强度百分比。

可能的值

描述

100

GPS传感器报告的所有位置和航向数据均有效。

约90

位置数据不再通过捕获 GPS 场代码信息来计算,而是通过其他方式计算。

0-80

只有 GPS 传感器的航向值是有效的,但随着时间的推移,GPS 传感器扫描到的 GPS 场码不足以准确确定位置和航向信息,报告的信号质量将持续下降,直到 0,此时所有 GPS 传感器数据实际上都被冻结,不再有效。

Usage:
gps_sensor.quality()

参数

描述

此方法没有参数。

已更改#

changed 注册一个函数,当 GPS 传感器检测到航向变化时,该函数将被调用。

Usage:
gps_sensor.changed(callback, arg)

参数

描述

callback

先前定义的 函数,当 GPS 传感器的航向发生变化时执行。

arg

可选。包含要传递给回调函数的参数的元组。有关更多信息,请参阅使用带参数的函数。

def my_function():
  brain.screen.print("GPS heading changed")

# Call my_function whenever gps_sensor's heading changes
gps_sensor.changed(my_function)

构造函数#

构造函数用于手动创建 Gps 对象,这是在 VEXcode 之外配置 GPS 传感器所必需的。

Gps#

Gps 创建一个 GPS 传感器。

Usage:
Gps(smartport)

范围

描述

smartport

GPS 传感器连接的智能端口,写成 Ports.PORTx ,其中 x 是端口号。

# Create a GPS Sensor in Port 10
gps_sensor = Gps(Ports.PORT10)