Wearable Robotic Arm Controller
The goal of this project is to develop a portable control interface capable of operating a robotic arm in near real-time. By integrating motion tracking and flexion detection, the system offers an intuitive, human-like control experience, bridging the gap between user intent and mechanical execution. Beyond simple movement, this technology aims to decentralize the machine operator, enabling complex tasks to be performed from a safe distance or in specialized environments.
The inspiration for this project came from an earlier prototype: a wired glove for controlling a mouse. While that initial version successfully demonstrated the basic concept of gesture-based input, it was limited by its physical connection. My goal for the Fab Academy is to build this concept into a fully wireless system with optimized signal processing. This transition from a simple wired tool to a sophisticated wearable controller represents a significant personal achievement.
Design Considerations and Challenges
To manage the development of this project, I established a structured schedule based on the Fab Academy's weekly requirements, defining specific goals and delivery dates for each phase.
3D Design and Parts Fabrication
For this phase of the project, I used SolidWorks as the design software to create the necessary parts to assemble the controller glove and the robotic arm. The design focused mainly on the user's comfort when wearing the glove and the range of motion that could be achieved by the robotic arm.
Glove 3D Design
The design of the finger pieces was based on a medieval armor gauntlet. This structure provides the necessary mobility for manipulation tasks and keeps the sensors securely in place while in use. Personally, I also find this design quite visually appealing.
I also designed a couple of compartments for the glove's electronics. The wrist section will house the main PCBs, such as the XIAO ESP32-C3, along with the battery level indicator board and the charging circuit. The MPU6050 motion sensor will be placed on the back of the hand so it can accurately capture hand movements and transmit them to the robotic arm.
The bracelet accommodates the electronics in such a way that the microUSB port remains easily accessible for charging the battery and programming the microcontroller, without needing to take the bracelet apart. Additionally, I added a side button for various actions, like turning the glove on or switching control modes. The bracelet was designed with user comfort in mind, featuring an ergonomic shape that adapts to the wrist and holes to sew the piece directly onto the fabric of the glove.
Just like the bracelet, the MPU6050 case securely houses the electronics. It includes a hole for the power and communication wiring, and it was designed to be as compact as possible to minimize the weight on the back of the hand. The case features sewing holes to attach it to the glove, as well as screw holes to hold the motion sensor firmly in place and prevent it from shifting during use.
Finger Design
The finger covers were designed so that the sensors stay perfectly in place when flexing and extending the fingers. Like the rest of the components, these covers have holes to be sewn onto the glove. I took into account the ergonomics of the fingers and their bending angles to shape these pieces properly.
Electronic Design
For this part of the project, I used Altium Designer as my main tool for circuit design. I focused on creating dedicated modules for each system function, such as the main control module, the power module for the arm actuators, the battery and charging module, and the sensor module. This modular approach allowed me to better organize the design and made the fabrication of each part much easier.
Glove Electronics Design
For the glove, I designed 5 PCBs, two main boards that control the system's operation, housing the XIAO ESP32-C3 and the battery/charging circuit, and three smaller breakout boards, one for a button connected to the XIAO, another for the MPU6050 pins, and individual boards for each flex sensor.
Xiao ESP32-C3 PCB
This PCB integrates the XIAO ESP32-C3 along with the necessary resistors for each flex sensor and the button. It also features a power LED and headers to connect the battery and charging module, the MPU6050 module, and the flex sensors. This board is responsible for processing all the sensor data and sending the control signals to the robotic arm's actuators.
Battery and Charging PCB
This board is responsible for managing the system's power and includes an ATtiny412 as its controller. An RGB LED is connected to it to indicate the battery level, and I created a voltage divider connected to an analog pin and the battery to monitor its voltage. I also left headers to connect a TP4056 charging module, which charges the battery and powers the system through a voltage regulator that steps down the 5V from the TP4056 to the 3.3V required by the XIAO ESP32-C3.
However, as I learned during my research, it is necessary to implement a Load Sharing circuit using a P-Channel MOSFET, a Schottky diode, and a resistor between the module, the battery, and the glove's electronics to allow the glove to be safely used while charging. This is a feature I still need to implement, without these components, the LiPo battery could get stressed and swell. It is also important to mention that I included RX and TX communication pins to send battery data to the main microcontroller. This communication channel is unidirectional, sending information only from the battery board to the main board. Finally, I added a UART programming pin to easily upload code to the ATtiny412.
Sensors and Button PCBs
These PCBs are quite simple, as they act mainly as breakout boards to route the sensors to headers for an easy connection to the main microcontroller.