即将推出(2020年)wpilib pidcontroller的后台。
wpilib-controller的Python项目详细描述
wpilib控制器
即将推出(2020年)wpilib pidcontroller的后台。
这是wpilibsuite/allwpilib#1300的后台端口,计划是 为2020赛季合并,为RobotPy。
@calcmogul在这上面有一些in-progress docs。
注意,如果您从旧的wpilib pidcontroller移动,那么您的pid 常数需要更改,因为它没有考虑离散化周期:
- 将Ki增益除以0.05,然后
- 将kd增益乘以0.05,
- 其中0.05是原始默认期间(使用您另外使用的期间)。
安装
对于具有Internet连接的计算机:
pip install wpilib-controller
要安装到脱机机器人上:
pip download wpilib-controller -d pip_cache # with an internet connection robotpy-installer install-pip wpilib-controller # connected to your robot
示例
fromwpilib_controllerimportPIDController# assume gyro is a gyro object created priorcontroller=PIDController(1,0,0,measurement_source=gyro.getAngle)controller.setInputRange(0,360)controller.setContinuous()# setSetpoint is now called setReferencecontroller.setReference(180)# elsewhere...output=controller.update()# do something with the output, for example:motor.set(output)
主要差异
- PID增益不再依赖于时间。
- 这并不区分位移和速率“pid源类型”。相反,这个pidcontroller以一个函数作为它的测量源。
- 前馈由传递给PID控制器的函数计算。
- 这提供了一种在robot代码中同步运行pid控制器的简单方法(而不是让它在线程中运行)。只需调用
update()
方法,它将为您提供控制器输出。