Skip to main content

A backport of the upcoming (in 2020) WPILib PIDController.

Project description

wpilib-controller

A backport of the upcoming (in 2020) WPILib PIDController.

This is a backport of wpilibsuite/allwpilib#1300, which is planned to be merged for the 2020 season, for RobotPy.

@calcmogul has some in-progress docs on this.

Note that if you are moving from the old WPILib PIDController, your PID constants will need to change, as it did not consider the discretization period:

  • divide your Ki gain by 0.05, and
  • multiply your Kd gain by 0.05,
  • where 0.05 is the original default period (use the period you used otherwise).

Installation

For a computer with an internet connection:

pip install wpilib-controller

To install onto an offline roboRIO:

pip download wpilib-controller -d pip_cache  # with an internet connection
robotpy-installer install-pip wpilib-controller  # connected to your robot

Example

from wpilib_controller import PIDController

controller = PIDController(1, 0, 0)
# setInputRange and setContinuous are now a single method
controller.enableContinuousInput(0, 360)

controller.setSetpoint(180)

# elsewhere...

# assume gyro is a gyro object created prior
output = controller.calculate(gyro.getAngle())
# do something with the output, for example:
motor.set(output)

Major differences

  • The PID gains are no longer time dependent.
  • This PIDController expects a measurement as a parameter to calculate().
  • This PIDController runs synchronously in your robot code (as opposed to having it run in a thread). You must call calculate() and use its return value.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wpilib-controller-0.7.1.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

wpilib_controller-0.7.1-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file wpilib-controller-0.7.1.tar.gz.

File metadata

  • Download URL: wpilib-controller-0.7.1.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.22.0

File hashes

Hashes for wpilib-controller-0.7.1.tar.gz
Algorithm Hash digest
SHA256 cfdb9ed0b99efe22999db7b9c334b6a68e6886f3b336de3d078d41be0c503d3e
MD5 cdd80862e461fe46355938ba275ebcaa
BLAKE2b-256 2a2e6a8b8c538072460743a5d0ba3b5e7923c4065954b23065daaf92a5887723

See more details on using hashes here.

File details

Details for the file wpilib_controller-0.7.1-py3-none-any.whl.

File metadata

File hashes

Hashes for wpilib_controller-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ffbc0085dd5c3151177c8479e354e1af8bb67f9e159ccec39b9f8f6e3d4d05fa
MD5 00d6731c804c24a51e6580d6f4b4160f
BLAKE2b-256 2dd8ab30f4030a7e7e4c774f051a76317cbfc0939c49323696056a31de62a5fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page