PneuDrive: Embedded Pressure Control
Most existing pressure control systems on the markers are either too small in terms of flow rates, or too bulky in terms of size. I designed PneuDrive to fit a few key requirements:
- Large Scale
- Regulate pressures of up to 80 psi
- Provide high-flow rates with proportional flow valves
- Distributed Control
- Control at least 12 valve/chamber pairs
- Minimize wiring and tubing over distances of about one meter
- Expandable
- Capability to incorporate additional sensors (e.g., IMUs) for future work
- Easy to Use
- Use low-cost, off-the-shelf components that are easy to replace
- Open-source software that is customizable
- Communication
- Easy connection to other devices with low latency
- Reliable communication for real-time control loops
PneuDrive works by daisy-chaining multiple board together on a robust RS485 communication bus.
Each board has a microcontroller that reads pressure sensors and controls proportional flow valves.
The accompanying C++ library is easy to use via ROS or with Python bindings:
import numpy as np
from pneudrive_py import PressureController
uart_port = '/dev/ttyS1'
num_devices = 4
my_controller = PressureController(uart_port, num_devices)
#check communication with all expected devices
my_controller.ping_devices()
pressure_cmd = np.array([1,2,3,4])
for i in range(num_devices):
my_controller.set_pressure_commands(i, pressure_cmd)
data = my_controller.get_pressure_data(i)
For more info, check out my paper here