Control 类
Motor 类使用 PID 控制来准确跟踪命令的目标角度。同样,DriveBase 类使用两个这样的控制器:一个用于控制航向,一个用于控制行驶距离。
您可以通过以下属性更改控件设置,这些属性是下面给出的 Control 类的实例。
 
  
   - Motor.control
- DriveBase.heading_control
- DriveBase.distance_control
 
您只能在控制器停止时更改设置。例如,您可以在程序开始时设置设置。或者,首先调用 stop() 以使您的 Motor 或 DriveBase 停止,然后更改设置。
class Control
与 PID 控制器和设置交互的类。
 scale 
受控整数变量与物理输出之间的缩放因子。例如,对于单个电机,这是每旋转度的编码器脉冲数。
状态
done()
检查是否完成了正在进行的命令或作。
 
  
   | 返回: | 如果命令已完成,则为 True,如果未完成,则为 False。 | 
  
   | 返回类型: | bool | 
 
stalled()
检查控制器当前是否处于失速状态。
当控制器无法达到目标速度或位置时,即使使用最大驱动信号,控制器也会失速。
 
  
   | 返回: | 如果控制器停止,则为 True,如果没有,则为 False。 | 
  
   | 返回类型: | bool | 
 
设置
limits(speed, acceleration, actuation)
配置最大速度、加速度和驱动。
如果未给出参数,这将返回当前值。
 
  
   | 参数: | 
     速度 ( 转速:deg/s 或速度:mm/s)——最大速度。所有速度命令都将限制为此值。加速度 ( 旋转加速度:deg/s/s 或线性加速度:mm/s/s)——最大加速度。驱动( 百分比:%)——最大驱动值占绝对最大值的百分比。 | 
 
pid(kp, ki, kd, integral_range, integral_rate, feed_forward)
获取或设置位置和速度控制的 PID 值。
如果未给出参数,这将返回当前值。
 
  
   | 参数: | 
     kp (int) – 比例位置(或积分速度)控制常数。ki (int) – 积分位置控制常数。kd (int) – 导数位置(或比例速度)控制常数。integral_range( 角度:度或距离:毫米 )——目标角度或距离周围的区域,其中累积了积分控制误差。integral_rate( 转速:deg/s 或速度:mm/s)——允许误差积分增长的最大速率。feed_forward( 百分比:%)——这会在速度参考方向上向 PID 反馈信号添加前馈信号。该值表示为绝对最大占空比的百分比。 | 
 
target_tolerances(speed, position)
获取或设置指示何时完成作的公差。
如果未给出参数,这将返回当前值。
 
  
   | 参数: | 
     速度 ( 转速:deg/s 或速度:mm/s)——在运动被视为完成之前允许的与零速度的偏差。位置 ( 角度:度或距离:毫米 )——在运动被视为完成之前允许与目标的偏差。 | 
 
stall_tolerances(speed, time)
获取或设置失速容差。
如果未给出参数,这将返回当前值。
 
  
   | 参数: | 
     速度 ( 转速:deg/s 或速度:mm/s)——如果控制器即使在最大驱动下也无法达到此速度一段时间,则它会熄火。时间 ( 时间:毫秒 ) – 控制器必须低于此最低速度多长时间才能说它失速。 |