In the field of robotics, the end-effector represents the crucial interface between a robot and its environment. The performance of this final link, particularly a dexterous robotic hand, directly dictates the robot’s ability to perform complex, human-like manipulation tasks. Our research focuses on addressing the growing demand for robotic hands that are not only highly functional but also embody characteristics such as compactness, inherent compliance, and flexibility. To this end, our laboratory has pioneered the development of a novel Flexible Pneumatic Actuator (FPA), which serves as the core driving element for a new generation of anthropomorphic grippers. The control system for such a dexterous robotic hand must meet stringent requirements for real-time processing, precision, and integration, often posing challenges for traditional microcontroller or PC-based architectures which can be bulky, power-hungry, and limited in interface capability. This article presents a comprehensive design of a dedicated joint controller, utilizing the dsPIC30F5013 Digital Signal Controller (DSC) as its computational core. The controller is engineered to achieve high-precision control of FPA-based joints through a dual-feedback loop strategy, while offering the flexibility of both standalone and computer-integrated operation, thereby advancing the capabilities of the pneumatic dexterous robotic hand.

System Architecture and Control Strategy
The controlled object of this design is the ZJUT pneumatic dexterous robotic hand, an anthropomorphic hand comprising five fingers and a palm. Each finger is endowed with three bending joints (metacarpophalangeal – MCP, proximal interphalangeal – PIP, distal interphalangeal – DIP) and one abduction-adduction (side-sway) joint, mimicking the kinematics of a human finger. The collective actuation of these multiple joints necessitates a sophisticated control architecture. The overarching control system is designed with a distributed philosophy to enhance reliability and computational efficiency. The system employs two primary joint controller units to manage the actuation of all five fingers. This distributed approach significantly reduces the computational load on any single processor and improves the system’s modularity and fault tolerance.
The control strategy is multifaceted, supporting two distinct operational modes to maximize versatility. In the first mode, a host PC (Upper Computer) sends high-level command trajectories (e.g., desired joint angles for a grasping sequence) to the joint controllers via a CAN (Controller Area Network) bus. The controllers then execute these commands locally. In the second mode, the joint controllers operate autonomously, receiving direct input commands through a local keypad interface. This dual-mode capability ensures that the dexterous robotic hand can function as an intelligent peripheral in a complex robotic system while also performing pre-programmed or manually initiated tasks independently. The core challenge addressed by the joint controller is translating a desired joint angle into a precise pneumatic pressure within the corresponding FPA, and maintaining that position against external disturbances. This is achieved through a dual-closed-loop control architecture:
- Inner Loop (Pressure Control): This loop regulates the air pressure inside the FPA chamber. The controller outputs a voltage signal to an electro-pneumatic proportional valve. A built-in pressure sensor within the valve provides real-time feedback, allowing the controller to minimize the error between the commanded pressure and the actual pressure.
- Outer Loop (Position Control): This loop governs the final angular position of the joint. The desired joint angle is compared with the actual angle measured by a non-contact magnetic rotary encoder (AS5045). The resulting position error is processed by the controller’s algorithm to generate the desired pressure setpoint for the inner loop.
This cascade control structure, where the output of the position controller serves as the setpoint for the pressure controller, significantly enhances the overall accuracy and robustness of the pneumatic dexterous robotic hand. The complete system-level block diagram is represented below, where $ heta_{d}$ is the desired joint angle, $ heta_{a}$ is the actual joint angle, $P_{d}$ is the desired pressure, $P_{a}$ is the actual pressure, $u$ is the control signal to the valve, and $G_{c1}(s)$ and $G_{c2}(s)$ represent the position and pressure controller transfer functions, respectively.
$$ heta_{d} ightarrow [G_{c1}(s)] ightarrow P_{d} ightarrow [G_{c2}(s)] ightarrow u ightarrow [Valve & FPA] ightarrow heta_{a}$$
$$downarrow$$
$$[Position Sensor]$$
$$[Pressure Sensor]$$
Hardware Design of the Joint Controller
The hardware design of the joint controller is architected around the dsPIC30F5013 DSC, selected for its optimal blend of microcontroller manageability and digital signal processor (DSP) computational power. The controller’s hardware modules are meticulously designed to interface with sensors, actuators, and communication networks, forming a cohesive unit for governing the pneumatic dexterous robotic hand.
Core Processing Unit: dsPIC30F5013 DSC
The Microchip dsPIC30F5013 is a 16-bit device capable of operating at up to 30 MIPS (Million Instructions Per Second). Its defining feature is the integrated DSP engine, which allows it to execute single-cycle multiply-accumulate (MAC) operations, a cornerstone for efficient real-time control algorithm execution like PID and filtering. With a rich set of peripherals including multiple PWM channels, ADC modules, SPI/I2C interfaces, and CAN 2.0B modules, it provides a single-chip solution for the diverse requirements of the joint controller. Its key specifications relevant to our application are summarized in the table below.
| Feature | Specification | Relevance to Dexterous Robotic Hand Control |
|---|---|---|
| Core Architecture | 16-bit dsPIC® DSC Core with DSP instructions | Enables fast execution of control algorithms and sensor data filtering. |
| Max Speed | 30 MIPS @ 120 MHz | Provides ample bandwidth for multi-loop control and communication tasks. |
| Program Memory | 66 KB Flash | Sufficient for complex control firmware and lookup tables. |
| Data Memory | 4 KB RAM | Allows for efficient handling of sensor data arrays and runtime variables. |
| Analog-to-Digital Converter (ADC) | 10-bit, 500 Ksps, up to 16 channels | Used for reading analog feedback from the proportional valve’s sensors. |
| Communication Peripherals | CAN, SPI, I2C, UART | SPI for position sensor, CAN for host communication, I2C for potential expansion. |
| Timers/Capture/Compare | Multiple 16-bit timers, Input Capture, Output Compare | Essential for generating precise PWM for D/A control and timing control loops. |
Joint Position Feedback Module
Accurate and reliable joint angle measurement is paramount for closing the position control loop of the dexterous robotic hand. We selected the AS5045 magnetic rotary encoder from Austria Microsystems. This is a contactless, system-in-package device that integrates Hall elements, analog front-end, and digital processing to provide a 12-bit absolute angular position over a full 360° range. A small diametrically magnetized cylinder is mounted on the joint axis. The AS5045, placed in close proximity, detects the magnetic field orientation and outputs the angle via a standard SPI (Serial Peripheral Interface) protocol. This non-contact sensing eliminates problems associated with wear, dust, and mechanical alignment inherent in potentiometers or optical encoders, making it ideal for the compact and potentially high-motion environment of a robotic finger. The interface is straightforward, requiring only three digital lines from the dsPIC (Chip Select $\overline{CS}$, Clock $CLK$, and Data Out $DO$) for reading the absolute angle. The resolution is given by:
$$ ext{Angular Resolution} = \frac{360^\circ}{2^{12}} = \frac{360^\circ}{4096} \approx 0.088^\circ$$
This high resolution far exceeds the basic requirements for controlling a dexterous robotic hand, allowing for very fine positioning.
FPA Actuation Drive Module
This module is responsible for converting the digital control commands from the DSC into a precise analog pressure command for the pneumatic actuator. The chosen actuator is an SMC ITV0050 series electro-pneumatic proportional valve. It requires a voltage input signal in the range of 0-10V DC to proportionally control its output pressure. The generation of this signal involves a two-stage process:
- Digital-to-Analog Conversion (DAC): The dsPIC30F5013 does not have a built-in DAC. Therefore, we employ an external quad, 8-bit serial DAC, the TLC5620. The controller sends digital values (0-255) over an SPI-like interface to the DAC, which generates four independent analog output voltages in the range of 0 to a reference voltage. We set the internal gain to 1, using a precise 5.0V reference, resulting in a 0-5V output.
- Signal Amplification: To meet the 0-10V input requirement of the SMC valve, the 0-5V DAC output is fed into an operational amplifier (op-amp) circuit configured as a non-inverting amplifier with a gain of 2. Using a general-purpose op-amp like the LM324, the circuit ensures the voltage is accurately scaled. The output of this op-amp is directly connected to the control terminal of the proportional valve.
The relationship between the digital command $D$ (8-bit, 0 to 255), the DAC output $V_{DAC}$, and the final valve command voltage $V_{VALVE}$ is linear and can be expressed as:
$$V_{DAC} = V_{REF} \cdot \frac{D}{256} = 5.0 \cdot \frac{D}{256}$$
$$V_{VALVE} = G \cdot V_{DAC} = 2 \cdot V_{DAC} = 10.0 \cdot \frac{D}{256}$$
Thus, a digital command of $D=128$ results in $V_{VALVE} = 5.0V$, commanding the valve to output approximately 50% of its rated pressure range. The valve’s built-in sensor provides an analog feedback signal of the actual output pressure, which is routed back to one of the dsPIC’s ADC channels to close the inner pressure control loop.
Communication and Interface Module
To fulfill its dual-mode operational requirement, the controller is equipped with two primary user input interfaces:
- Local Keypad Interface: A simple 4-key membrane keypad is connected to digital I/O pins configured with interrupt-on-change capability. This allows the controller to be woken from a low-power state or to accept direct commands for joint angle setting or pre-programmed gesture selection without host computer intervention.
- CAN Bus Interface: For integration into a larger robotic system, a high-reliability CAN 2.0B interface is implemented. The dsPIC’s integrated CAN module handles the protocol layer. A CAN transceiver chip, the MCP2551, is used as the physical layer interface, converting the dsPIC’s logic-level signals to the differential voltage levels (CAN_H and CAN_L) required for the robust bus communication. This allows the host computer to send trajectory commands and receive status updates (e.g., actual angle, pressure, error flags) from all joint controllers on a shared network, which is essential for the coordinated motion of a multi-fingered dexterous robotic hand.
Software Architecture and Control Algorithm
The firmware for the joint controller is developed using a modular, interrupt-driven architecture to ensure deterministic real-time performance. The main program executes initialization routines and then enters a low-power idle loop, waiting for interrupts. All time-critical tasks are handled within interrupt service routines (ISRs).
Main Program and Interrupt Structure
Upon power-up, the controller performs a self-test and initializes all peripherals: the LCD display, the DAC (TLC5620), the position sensor (AS5045) via SPI, the ADC for pressure feedback, the CAN controller, and the timers. After initialization, global interrupts are enabled, and the core enters the main loop, which primarily manages non-time-critical tasks like updating the display with current joint status or checking for keypad entries for mode changes.
The real-time control heartbeat is established by a Timer interrupt. A dedicated hardware timer is configured to generate an interrupt at a fixed frequency, typically 50 Hz (period of 20 ms). This periodic interrupt triggers the execution of the core control sequence, ensuring consistent sampling and actuation for the dexterous robotic hand joint.
Control Algorithm Implementation
Within the Timer Interrupt Service Routine (ISR), the following sequence is executed:
- Sensor Data Acquisition: The latest joint angle is read from the AS5045 via a fast SPI transaction. Simultaneously, the analog pressure feedback voltage from the proportional valve is sampled using the dsPIC’s ADC.
- Control Law Computation: A Proportional-Integral-Derivative (PID) algorithm is implemented for the outer position loop. A simpler P or PI controller is often sufficient for the faster inner pressure loop, given the high-quality regulation of the SMC valve. The discrete-time position PID algorithm is calculated as follows:
Let $e[k] = heta_d[k] – heta_a[k]$ be the position error at sample $k$.
The PID control output (which is the desired pressure $P_d[k]$) is computed as:
$$P_d[k] = K_p \cdot e[k] + K_i \cdot T_s \cdot \sum_{j=0}^{k} e[j] + K_d \cdot \frac{(e[k] – e[k-1])}{T_s}$$
Where $K_p$, $K_i$, $K_d$ are the proportional, integral, and derivative gains, respectively, and $T_s$ is the sampling period (0.02s). This output is then saturated to the allowable pressure range for the FPA. The inner loop then calculates the required valve command $u[k]$ to achieve $P_d[k]$ based on the pressure error $e_p[k] = P_d[k] – P_a[k]$. - Actuation Output: The computed digital value for the valve command is sent to the TLC5620 DAC via its serial interface, resulting in an updated analog voltage being applied to the proportional valve.
- Data Logging/Communication: The current sensor values and system status are packaged and made available for transmission, either to the local display or to the host computer via the CAN bus upon request or in a periodic broadcast.
This structured, time-triggered approach ensures that the control loop for each joint of the dexterous robotic hand is executed with strict periodicity, a key factor in achieving stable and predictable dynamic performance.
Mathematical Modeling and System Analysis
To further understand and optimize the controller’s performance, a simplified mathematical model of the FPA joint system is beneficial. The model can be broken down into subsystems.
Valve and Pressure Dynamics
The electro-pneumatic proportional valve can be approximated as a first-order system relating its input voltage $V_{VALVE}(s)$ to its output pressure $P(s)$:
$$G_{valve}(s) = \frac{P(s)}{V_{VALVE}(s)} = \frac{K_{v}}{\tau_{v} s + 1}$$
where $K_{v}$ is the valve gain (Pa/V) and $\tau_{v}$ is its time constant.
FPA and Load Dynamics
The FPA converts pressure into force/torque. Its expansion under pressure and the resulting joint rotation involve complex nonlinear mechanics due to material elasticity and geometry. A linearized model around an operating point can represent the relationship between chamber pressure $P(s)$ and joint angle $ heta(s)$ as a second-order system:
$$G_{FPA}(s) = \frac{ heta(s)}{P(s)} = \frac{K_{a}}{s(Js + B)}$$
where $K_{a}$ is an actuation gain (rad/Pa), $J$ is the moment of inertia of the finger link, and $B$ is a viscous damping coefficient.
Integrated Open-Loop Model
Ignoring the inner pressure loop for simplicity, the combined open-loop transfer function from valve voltage to joint angle is:
$$G_{open}(s) = G_{valve}(s) \cdot G_{FPA}(s) = \frac{K_{v}K_{a}}{(\tau_{v} s + 1)s(Js + B)}$$
This model reveals the inherent integrating nature of the system (the $1/s$ term), which helps explain why a simple proportional controller can achieve zero steady-state error for a step position command. The controller gains $K_p$, $K_i$, $K_d$ are tuned based on this model and empirical Ziegler-Nichols or similar methods to achieve desired performance metrics like rise time, overshoot, and settling time for the dexterous robotic hand.
| Controller Loop | Proportional Gain ($K_p$) | Integral Gain ($K_i$) | Derivative Gain ($K_d$) | Remarks |
|---|---|---|---|---|
| Position (Outer) | 8.5 | 0.5 | 0.1 | Provides stable, responsive tracking. |
| Pressure (Inner) | 2.0 | 0.1 | 0.0 | PI controller suffices for fast regulation. |
Experimental Validation and Performance Analysis
A complete experimental system for the pneumatic dexterous robotic hand was constructed to validate the designed controller. The setup included the hand, two joint controller boards, an air supply unit regulated at 0.5 MPa, and a host PC running monitoring software. Experiments focused on evaluating the static positioning accuracy of the index finger’s three bending joints (MCP, PIP, DIP).
Experimental Procedure
The host PC sent a sequence of desired angle setpoints to the MCP, PIP, and DIP joints of the index finger, ranging from 0° to 30° in increments of 1°. For each command, the joint controllers engaged their dual-loop PID control. After the system settled (determined by the position error falling below a threshold for a specified time), the actual angle measured by the AS5045 sensors was read back and logged by the PC. This process generated a detailed map of commanded vs. achieved position.
Results and Discussion
The resulting data for all three joints showed a high degree of accuracy. The measured angular error $e_{ heta}$ for every setpoint across the tested range was consistently within the bounds of $\pm0.1^\circ$. The error did not show a systematic trend (like a consistent offset or growing nonlinearity) but appeared randomly distributed within this bound. This performance is more than adequate for most manipulation tasks envisioned for a dexterous robotic hand, such as grasping objects of various shapes and sizes or performing delicate assembly.
The primary sources of the observed $\pm0.1^\circ$ error are attributed to:
- Sensor Non-Idealities: While the AS5045 is highly accurate, minor imperfections in the magnetic field uniformity of the mounted magnet cylinder and minute misalignments between the magnet axis and the sensor chip plane can introduce small, non-repeatable nonlinearities.
- Measurement Perturbations: During testing, subtle fluctuations in the air supply pressure, though regulated, could cause microscopic tremors in the highly compliant FPA, leading to noise in the position reading at the moment of logging. The mechanical coupling between sequentially tested joints might also introduce slight biases.
The absence of large systematic error confirms the effectiveness of the dual-feedback control architecture in linearizing and compensating for the inherent hysteresis and nonlinearity of the pneumatic system. The dsPIC30F5013 handled the computational load of three concurrent PID loops (per controller) with ease, leaving sufficient resources for communication, demonstrating its suitability as the core for an embedded dexterous robotic hand controller.
Conclusion
This article has presented the comprehensive design and implementation of a dedicated joint controller for a pneumatically actuated dexterous robotic hand. The controller leverages the unique capabilities of the dsPIC30F5013 Digital Signal Controller to deliver high-performance, real-time control in a compact and efficient package. By integrating a non-contact magnetic encoder for precise position feedback and utilizing the built-in sensor of an electro-pneumatic proportional valve for pressure feedback, the system implements a robust dual-closed-loop control strategy. This architecture effectively manages the nonlinear dynamics of the Flexible Pneumatic Actuator, achieving a high positional accuracy of within $\pm0.1^\circ$. The support for both autonomous operation via a keypad and networked operation via a CAN bus provides exceptional flexibility for integration into complex robotic systems. The successful experimental validation on a multi-fingered robotic hand prototype confirms that this controller design is a reliable and effective solution for advancing the functionality and precision of next-generation pneumatic dexterous robotic hands, enabling them to perform more sophisticated and human-like manipulation tasks.
