The Arduino-based firmware for Ctrl-P pressure control systems.
You can always keep up to date by using the version in the master branch. For previous stable versions, checkout the releases.
- EEPROMAnything Library by collin80
- Button Library by madleech
- EasyLCD Library by cbteeple (that's me!)
- LiquidCrystal_I2C by fdebrabander
Instructions in the documentation
The Ctrl-P project is a full-stack pneumatic control system featuring smooth control of pressure at a high bandwidth.
Ctrl-P has four parts:
- Arduino-Based Firmware: Contains the low-level pressure control
- Python Hardware Interface: The low-level device drivers and command handling via serial comms
- Python Control Interface: High-level handling of pressure trajectories in raw python
- ROS Driver: High-level handling of pressure trajectories in ROS
Related Packages:
- Pressure Controller Skills: Build complex parametric skills using straightforward definition files.
- Visual Servoing: Example of setting up a realtime feedback controller.
- separate trajectory into "prefix", "suffix", and "looping" parts.
- update firmware to take in start indices for each part + # of cycles (with -1 = inf cycles, 0 = skip loop, 1--N = # of cycles)
- add dynamic "# of cycles" function
- add dynamic speed multiplier function (with error checking to make sure we never divide by 0 or have traj. with 0 time)