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
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
- 20:1 two disk cycloidal gear drive
- ODrive S1 FOC Controller with an Onboard Encoder
- 90KV Eagle Power BLDC Motor
- x12 3D Printed Parts
- Air Vents for Passive Cooling
- Peak Holding Torque: 55 Nm
- Total Mass: 1685g (3.7 lbs)
- Total Cost: $319
Supplies
Tools
- needle nose pliers
- Allen wrench set
- soldering iron
- 3D Printer
Electronic Parts
General Parts
- ⌀8 x 2.5mm Encoder Magnet
- M3 x 6mm Screws (x2)
- M3 x 10mm Screws (x4)
- M3 X 16mm Screws (x4)
- M3 X 30mm Screws (x4)
- M3 x 6mm Inserts (x6)
- M3 x 5mm Standoffs (x4)
- M4 x 10mm Screws (x4)
- M4 X 25mm Screw (x4)
- M4 X 110mm Screw (x4)
- 6mm X 30mm Dowel Pin (x27)
- 17x26x5mm Bearings (x4)
- 75x95x10mm Bearing (x1)
- 6mm Bore x 8mm OD x 10mm Sleeve Bearings (x42)
- 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.
- For example, the Robstride 03 actuator uses all metal parts and achieves 60 Nm peak torque for $250.
- 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
Start by printing all 12 parts (all of these were printed in “ABS-Like” resin on an Elegoo Saturn 3 Ultra)
- Magnet Holder
- Cycloidal disk (stage 1)
- Cycloidal disk (stage 2)
- Actuator BLDC Casing
- Cycloidal Gear Casing
- Actuator Mount
- ODrive S1 Cover
- Motor Coupler
- Eccentric bearing Shaft
- Output Carrier
- Output Bearing Casing
- Output Hub
Heated Inserts
Using a hot soldering iron, press M3 heated inserts into the following 3D-printed part.
- BLDC Casing - x6 inserts
Eccentric Bearing Shaft
- Place x2 17x26x5mm Bearings onto the bottom of the eccentric bearing Shaft.
- Using x4 M3 X 30mm Screws, attach the eccentric bearing Shaft to the Motor Coupler.
- Using x4 M3 X 16mm Screws, attach the Motor Coupler to the BLDC motor.
Mount the Motor
- Press the encoder magnet into the Magnet Holder and then press the Magnet Holder onto the bottom of the brushless motor.
- Mount the brushless motor onto the BLDC Casing using x4 M4 x 10mm screws.
Mount the ODrive S1
- Using x4 M3 standoffs and x4 M3 x 10mm screws, mount the ODrive S1 onto the bottom of the BLDC Casing.
- Using x2 M3 x 6mm screws, cover the S1 with the ODrive S1 Casing.
Assembling the Cycloidal Drive
- Insert x2 sleeve bearings onto each of the x21 6mm x 30mm pins.
- Press 6mm x 30mm pins into the holes at the bottom of the Cycloidal Gear Casing.
- Place Cycloidal Gear Casing on top of BLDC Casing and temporarily insert x4 m4 X 110mm Screws to hold in place.
- Place cycloidal disk (stage 1) on bottom eccentric bearings.
- Place 2x 17x26x5mm Bearings onto the top of the eccentric bearing Shaft.
- 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
- Super glue x6 6mm x 30mm pins into the Output Carrier.
- Press 75x95x10mm Bearing onto the Output Carrier.
- Using x4 m4 X 25mm Screws, secure the Output Carrier to the Output Hub.
- Place output hub assembly pins into cycloidal gears.
- Place Output Bearing Casing over output hub and place actuator in Actuator Mount securing both using x4 m4 X 110mm Screws
Controlling the Actuator
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:
- Motor Parameters
- Type: High Current
- Pole Pairs: 20
- Current limit: 36A
- Motor Calib.Current: 18A
- Motor Calib.Voltage: 5V
- Lock-in Spin Current: 18A
Refer to the ODrive Manual for additional settings (e.g., power supply configuration).
Keep in mind:
- Connect and configure the 2Ω break resistor if you are using a power supply and not a battery.
- 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.