EV3 MicroPython 指南

EV3 MicroPython 指南 > PYBRICKS 模块 > 机器人

机器人

Pybricks API 的机器人模块。

class DriveBase(left_motorright_motorwheel_diameteraxle_track)

带有两个动力轮和一个可选支撑轮或脚轮的机器人车辆。

通过指定机器人的尺寸,此类可以轻松地以毫米为单位行驶给定的距离或转动给定的度数。

距离和行驶速度意味着向前行驶。 负意味着落后 

角度和转弯率意味着转。 负数表示左。 因此,从顶部看,正表示顺时针,负表示逆时针。

参数:
  • left_motor 电机 )——驱动左轮的电机。
  • right_motor 电机 )——驱动右轮的电机。
  • wheel_diameter( 尺寸:毫米 )——车轮的直径。
  • axle_track( 尺寸:毫米 )——两个车轮接触地面的点之间的距离。

1.行驶给定距离或一定角度

使用以下命令行驶给定距离,或以给定角度转弯。

这是使用内部旋转传感器测量的。由于车轮在移动时可能会打滑,因此行驶距离和角度只是估计值。

straight(distance)

直行一段给定距离,然后停下来。

参数: 距离 ( 距离:毫米 )——行驶距离。

turn(angle)

在给定角度原地转动,然后停止。

参数: angle (angle: deg) – 转弯角度。

settings(straight_speedstraight_accelerationturn_rateturn_acceleration)

配置 straight() 和 turn() 使用的速度和加速度。

如果不给出参数,则将当前值作为元组返回。

您只能在机器人停止时更改设置。这是在您开始驾驶之前或调用 stop() 之后。

参数:
  • straight_speed( 速度:mm/s)——机器人在工作期间的速度 straight() 的 Straight() 中。
  • straight_acceleration( 线性加速度:mm/s/s)——机器人在直线() 开始和结束时的加减速度。
  • turn_rate( 转速:deg/s)——机器人在转弯() 期间的转速。
  • turn_acceleration( 旋转加速度:deg/s/s)——机器人在 turn() 开始和结束时的角加速度和减速度。

2.持续驾驶

使用 drive() 开始以所需的速度和转向行驶。

它一直持续下去,直到您再次使用 stop() 或使用 drive() 改变路线。例如,您可以行驶直到传感器被触发,然后停车或掉头。

drive(drive_speedturn_rate)

以指定的速度和转弯率开始行驶。这两个值都是在机器人车轮之间的中心点测量的。

参数:
  • drive_speed( 速度:mm/s)——机器人的速度。
  • turn_rate( 转速:deg/s)——机器人的转速。

stop()

通过让电机自由旋转来停止机器人。

3.测量

distance()

获取估计的行驶距离。

返回: 自上次重置以来的行驶距离。
返回类型: 距离:毫米

angle()

获取驱动底座的估计旋转角度。

返回: 自上次复位以来的累积角度。
返回类型: 角度:度

state()

获取机器人的状态。

这将返回当前距离()、 驱动速度、 angle() 和转弯率。

返回: 距离、驱动速度、角度、转弯率
返回类型: ( 距离:mm, 速度:mm/s, 角度:deg, 转速:deg/s)

reset()

将估计的行驶距离和角度重置为 0。

4.测量和验证机器人尺寸

作为第一个估计,您可以测量 wheel_diameter 和 用尺子 axle_track。因为很难看到车轮有效接触地面的位置,所以您可以将 axle_track 估计为车轮中点之间的距离。

在实践中,大多数车轮在机器人的重量下会轻微压缩。要验证,请使用 my_robot.straight(1000) 使您的机器人驱动 1000 毫米 并测量它真正传播了多远。补偿如下:

  • 如果您的机器人行驶得不够远 ,请减少 wheel_diameter 值。
  • 如果您的机器人行驶得太远 ,请增加 wheel_diameter 值。

电机轴和车轴在机器人的负载下会略微弯曲,导致车轮的地面接触点更靠近机器人的中点。要验证,请使用 my_robot.turn(360) 让您的机器人旋转 360 度,并检查它是否回到同一个位置:

  • 如果您的机器人转动不够远 ,请增加 axle_track 值。
  • 如果您的机器人转得太远 ,请降低 axle_track 值。

进行这些调整时,请始终调整 wheel_diameter 首先,如上所述。完成后,请务必直接测试转弯和行驶。

5.单独使用 DriveBase 电机

假设您使用两个名为 Motor 的 Motor 对象创建一个 DriveBase 对象 left_motor 和 right_motor。当 DriveBase 处于活动状态时,您不能单独使用这些电机。

如果 DriveBase 正在行驶,则 DriveBase 处于活动状态,但当它在直线 () 或 turn() 命令。要停用 DriveBase,请调用 stop()。

6.高级设置

settings() 方法用于调整常用设置,例如直线机动和转弯的默认速度和加速度。使用以下属性来调整更高级的控件设置。

您只能在机器人停止时更改设置。这是在您开始驾驶之前或调用 stop() 之后。

distance_control

行驶距离和驱动速度由 PID 控制器控制。您可以使用此属性更改其设置。有关可用方法的概述,请参阅 Control 类 。

heading_control

机器人的转弯角度和转弯率由 PID 控制器控制。您可以使用此属性更改其设置。有关可用方法的概述,请参阅 Control 类 。