OpenCycloid - 3D-printed Open-Source Robotic Actuator

by Alexander Pedersen in Circuits > Robots

298 Views, 6 Favorites, 0 Comments

OpenCycloid - 3D-printed Open-Source Robotic Actuator

PXL_20241224_230658674.MP.jpg
OpenCycloid Sectional.JPG
OpenCycloid Render (1).PNG
OpenCyloid Explosion.JPG

OpenCycloid is a 3D-printed open-source robotic actuator that I designed to be a high-torque, easy-to-build, and relatively inexpensive solution for creating dynamic robotic systems. The actuator uses a 90KV Eagle Power BLDC Motor as well as an ODrive S1 FOC controller. In closed-loop control mode, the S1 allows you to control the position, velocity, and torque of a brushless motor. With an onboard encoder, the S1 rests on the bottom of the actuator in order to measure the BLDC motor’s position. The top of the actuator features a 20:1 cycloidal gear drive that I’ve designed with high eccentricity cycloidal gears in order to reduce gear slippage in high-load applications. 

I originally started by building the OpenQDD open-source actuator developed by Aaed Musa to design an affordable robotic arm. However, I discovered that OpenQDD did not provide enough torque for my project and components of this design repeatedly broke under load using SLA 3D printed parts. Through testing various, 3d printed planetary, compound planetary, and commercially available steel and nylon planetary systems, I realized that cycloidal gearing provided the best option for achieving a high gear ratio within a robust yet compact form factor. Advanced robots like Spot, Atlas, and Go2, as well as commercially available robotic arms are made possible by powerful, compact, and well-designed actuators. With OpenCycloid, high-performing actuators at an affordable price become much more accessible.

This project is heavily inspired by the OpenQDD actuator made by Aaed Musa as well as the 3D Printed Cycloidal Drive made by Dejan Nedelkovski. I used the parametric 2 disk cycloidal gear drive made by Aaed Musa to generate the cycloidal disks in fusion 360. These open-source actuators follow similar working principles to OpenCycloid and are also fully 3D printed. 


Specifications

  1. 20:1 two disk cycloidal gear drive
  2. ODrive S1 FOC Controller with an Onboard Encoder
  3. 90KV Eagle Power BLDC Motor 
  4. x12 3D Printed Parts
  5. Air Vents for Passive Cooling
  6. Peak Holding Torque: 55 Nm
  7. Total Mass: 1685g (3.7 lbs)
  8. Total Cost: $319

Supplies

Tools

  1. needle nose pliers
  2. Allen wrench set
  3. soldering iron
  4. 3D Printer

Electronic Parts

  1. Eaglepower 8308 Brushless Motor 90KV
  2. ODrive S1 (w/Screw Terminals)

General Parts

  1. ⌀8 x 2.5mm Encoder Magnet
  2. M3 x 6mm Screws (x2)
  3. M3 x 10mm Screws (x4)
  4. M3 X 16mm Screws (x4)
  5. M3 X 30mm Screws (x4)
  6. M3 x 6mm Inserts (x6)
  7. M3 x 5mm Standoffs (x4)
  8. M4 x 10mm Screws (x4)
  9. M4 X 25mm Screw (x4)
  10. M4 X 110mm Screw (x4)
  11. 6mm X 30mm Dowel Pin (x27)
  12. 17x26x5mm Bearings (x4)
  13. 75x95x10mm Bearing (x1)
  14. 6mm Bore x 8mm OD x 10mm Sleeve Bearings (x42)
  15. White Lithium Grease (Lubricant)

Total Cost $319.00


Disclaimer: Buying the parts as listed is not necessarily the most economical way to achieve a high-torque actuator, but it can be cost-effective if you use alternative motor controllers and purchase hardware in bulk.

  1. For example, the Robstride 03 actuator uses all metal parts and achieves 60 Nm peak torque for $250.
  2. Using an alternative motor controller like an ODESC V4.2 with AS5048A Magnetic Encoder and sourcing other inexpensive hardware could bring this actuator’s total cost down to around $170, which is cheaper than commercial alternatives.

Print the Parts

PXL_20241224_043448718.MP.jpg
PXL_20241224_204545054.MP.jpg
PXL_20241224_043337763.MP.jpg

Start by printing all 12 parts (all of these were printed in “ABS-Like” resin on an Elegoo Saturn 3 Ultra)

  1. Magnet Holder
  2. Cycloidal disk (stage 1)
  3. Cycloidal disk (stage 2)
  4. Actuator BLDC Casing
  5. Cycloidal Gear Casing
  6. Actuator Mount
  7. ODrive S1 Cover
  8. Motor Coupler
  9. Eccentric bearing Shaft
  10. Output Carrier
  11. Output Bearing Casing
  12. Output Hub

Heated Inserts

PXL_20241224_205931613.MP.jpg
PXL_20241224_210205271.MP.jpg

Using a hot soldering iron, press M3 heated inserts into the following 3D-printed part.

  1. BLDC Casing - x6 inserts

Eccentric Bearing Shaft

PXL_20241224_210718395.MP.jpg
  1. Place x2 17x26x5mm Bearings onto the bottom of the eccentric bearing Shaft.
  2. Using x4 M3 X 30mm Screws, attach the eccentric bearing Shaft to the Motor Coupler.
  3. Using x4 M3 X 16mm Screws, attach the Motor Coupler to the BLDC motor.


Mount the Motor

PXL_20241224_210710048.MP.jpg
  1. Press the encoder magnet into the Magnet Holder and then press the Magnet Holder onto the bottom of the brushless motor.
  2. Mount the brushless motor onto the BLDC Casing using x4 M4 x 10mm screws.

Mount the ODrive S1

PXL_20241224_212128098.MP.jpg
  1. Using x4 M3 standoffs and x4 M3 x 10mm screws, mount the ODrive S1 onto the bottom of the BLDC Casing. 
  2. Using x2 M3 x 6mm screws, cover the S1 with the ODrive S1 Casing.

Assembling the Cycloidal Drive

PXL_20241224_214537751.MP.jpg
  1. Insert x2 sleeve bearings onto each of the x21 6mm x 30mm pins.
  2. Press 6mm x 30mm pins into the holes at the bottom of the Cycloidal Gear Casing.
  3. Place Cycloidal Gear Casing on top of BLDC Casing and temporarily insert x4 m4 X 110mm Screws to hold in place.
  4. Place cycloidal disk (stage 1) on bottom eccentric bearings. 
  5. Place 2x 17x26x5mm Bearings onto the top of the eccentric bearing Shaft.
  6. Place cycloidal disk (stage 2) on top eccentric bearings using the alignment holes to ensure the cycloidal disks are properly aligned.


Assembling the Output Hub

PXL_20241224_212233203.MP.jpg
  1. Super glue x6 6mm x 30mm pins into the Output Carrier.
  2. Press 75x95x10mm Bearing onto the Output Carrier.
  3. Using x4 m4 X 25mm Screws, secure the Output Carrier to the Output Hub.
  4. Place output hub assembly pins into cycloidal gears.
  5. Place Output Bearing Casing over output hub and place actuator in Actuator Mount securing both using x4 m4 X 110mm Screws


Controlling the Actuator

odrive settings.JPG
Odrive Control.JPG

To control the actuator with the ODrive S1, first, configure the brushless motor in the ODrive Pro GUI. Below are the settings used for the 90KV Eagle Power brushless motor on the ODrive S1:

  1. Motor Parameters
  2. Type: High Current
  3. Pole Pairs: 20
  4. Current limit: 36A 
  5. Motor Calib.Current: 18A
  6. Motor Calib.Voltage: 5V
  7. Lock-in Spin Current: 18A

Refer to the ODrive Manual for additional settings (e.g., power supply configuration). 

Keep in mind:

  1. Connect and configure the 2Ω break resistor if you are using a power supply and not a battery.
  2. Purchase a USB isolator to connect the ODrive to your computer in order to prevent ground looping.

To interface the ODrive with other devices, refer to the ODrive Manual for the communication protocols that can be used on the S1.