A Low-Cost Modular 3D-Printed Proprioceptive Actuator for HRI
view this page in github with resources
Background: Motivation and Evolution
In my previous project, ‘Modular Cycloidal Actuator-based 4DoF Cooperative Robotic Arm’, featuring 27:1 gear ratio, fully 3D-printed cycloidal reducer and precise position control using nama17 stepper motor with a4988 motor driver. However, the lack of back-drivability of the actuators and torque-based control make my robotic arm significantly stiff, restricting Human-Robot Interaction(HRI).
To address this issue, I developed ‘A Low-Cost 3D-Printed Proprioceptive Actuator’, utilizing bldc drone motors, FOC controller for precise torque/position control and proprioceptive sensing of current of motor. And I designed Quasi-Direct Drive(QDD) reducer(low gear ratio reducer) and Impedance Control demonstrating high dynmaics, agility and compliance properties for HRI.
BLDC Motor
BLDC Motor Brushless DC (BLDC) motors are highly suitable for dynamic and agile robotic actuators due to their exceptional torque density, high velocity and acceleration, back-drivability, and proprioceptive sensing capabilities.
A BLDC Motor is composed of two main parts: the stator and the rotor. the stator produce a rotating electromagnetic field via a motor controller(ESC), and the rotor(permanent magnet) follows this field to produce rotation without any brushes like standard DC Motor.
This brushless design eliminates mechanical friction from brushes, leading to higher efficiency, longer lifespan and most importantly, the ability to estimate torque through current sensing—a key feature for proprioceptive control in legged robots.
I optend for an Outrunner BLDC Motor because a larger air-gap radius allows the motor to produce higher torque. Since the air-gap radius is directly correlates with torque density. Thus this design is ideal for high-performance actuators. For more technical detials, please refer to my other post: Paper Review: ‘Design Principles for Energy Efficient Legged Locomotion and Implementation on the MIT Cheetah Robot’.”
Reducer
I was inspired by Mishin Machine-Wave Drive with Rolling Elements which is cycloidal-like reducer using ball-elements sharing as an open-source in Onshape. It’s compact, simplfied with a few components and robust.
FOC Controller
I used FOC Controller, ‘drv8302 motor driver’ to control the BLDC Motor. Unlike standard Electric Speed Controller(ESC), FOC Controller enables position/torque control etc.
Proprioceptive Sensing Capacity
In the Clark/Park Transform which is the one of the process of FOC Algorithm, Three phase current converted to two current state; d-axis and q-axis current. q-axis current is proportional to torque that the motor produce. Thus, external torque(perturbance) can be estimated by measuring q-axis current of the motor.
Experiment
The experiment is conducted by ‘Gartt ML5210 BLDC Drone Motor + DRV8302 + AS5600 Encoder + ESP-Wroom-32’ and scale is used for baseline to validate the accuracy of the proprioceptive actuator.
Evaluation
Approximately, the error is getting bigger as it produce higher torque.
CAN BUS Communication
I used TJA1051T to enable CAN BUS Communication which enables communicate between other controllers(MCU). This is essential for using multiple actuators system like locomotive & manipulator systems.
BOM & resources for 3 Types of Actuators (Basic, Lite and Enhanced)
1. QDD Actautor Basic
BOM of QDD Actuator Basic
| Category | Component | Specification | Qty | Link |
|---|---|---|---|---|
| Motor & Drive | BLDC Motor | Sunnysky x4108s-17 | 1 | View |
| Motor Driver | DRV8302 | 1 | View | |
| Electronics | Microcontroller | ESP-WROOM-32 | 1 | View |
| Magnetic Encoder | AS5600 | 1 | View | |
| CAN Transceiver | TJA1051T | 1 | View | |
| Mechanical | Gearbox | 3D Printed Parts | 1 set | - |
| Ball Elements | M6 x 6mm | 10 | View | |
| Bearings | 20 x 27 x 4 mm | 3 | View | |
| Bearings | 45 x 55 x 6 mm | 1 | View | |
| Fasteners | Bolts | M3 x 30 mm | 4 | View |
| Bolts | M3 x 20 mm | 6 | View | |
| Bolts | M2 x 10 mm | 6 | View | |
| Insert Nuts | M2 x 3 mm | 6 | View | |
| Insert Nuts | M3 x 3 mm | 6 | View | |
| Insert Nuts | M3 x 6 mm | 6 | View |
2. Cycloidal QDD Actuator Lite
BOM of QDD Actuator Lite
| Category | Component | Specification | Qty | Link |
|---|---|---|---|---|
| Motor & Drive | BLDC Motor | 5010 BLDC Motor | 1 | View |
| Motor Driver | SimpleFOC Shield v2 | 1 | View | |
| Electronics | Microcontroller | Arduino Uno | 1 | - |
| Magnetic Encoder | AS5600 | 1 | View | |
| CAN Bus | None | - | - | |
| Mechanical | Gearbox | 3D Printed Gearbox | 1 set | - |
3. QDD Actuator Enhanced
BOM of QDD Actuator Enhanced
| Category | Component | Specification | Qty | Link |
|---|---|---|---|---|
| Motor & Drive | BLDC Motor | Gartt ML5210 | 1 | View |
| Motor Driver | DRV8302 | 1 | View | |
| Electronics | Microcontroller | ESP-WROOM-32 | 1 | View |
| Magnetic Encoder | AS5600 | 1 | View | |
| CAN Transceiver | TJA1051T | 1 | View | |
| Mechanical | Gearbox | 3D Printed Parts | 1 set | - |
| Ball Elements | M6 x 6mm | 10 | View | |
| Bearings | 20 x 27 x 4 mm | 3 | View | |
| Bearings | 45 x 55 x 6 mm | 1 | View | |
| Fasteners | Bolts | M3 x 30 mm | 4 | View |
| Bolts | M3 x 20 mm | 6 | View | |
| Bolts | M2 x 10 mm | 6 | View | |
| Insert Nuts | M2 x 3 mm | 6 | View | |
| Insert Nuts | M3 x 3 mm | 6 | View | |
| Insert Nuts | M3 x 6 mm | 6 | View |
you can see more specific code at simplefoc documents
Related Posts
Here are some more posts you might like to read next: