Low Cost Accessible Robotic Actuator
by RichardHuberjohn in Workshop > 3D Printing
499 Views, 6 Favorites, 0 Comments
Low Cost Accessible Robotic Actuator
Creating and building accessible robotic technology is becoming more important as automation, robotics, and smart devices shape our future. This project aims to develop a small, affordable, fully 3D printable robotic actuator that can be made using materials that are easy to find and regular 3D printers. By lowering the cost and making it simpler than usual robotic actuators, this design helps students, makers, teachers, and innovators access advanced motion systems. The actuator shows how modern digital tools can help people create complex robotic systems without needing expensive industrial parts or special manufacturing tools.
The easy access to cheap robotic components can speed up technological progress in many areas, including education, research, disaster response, farming, and assistive technology. Small robotics let more people try out, learn, and come up with solutions to real life issues, which leads to a wider and more varied group of innovators. By sharing the design process, engineering ideas, and manufacturing methods for this actuator, this project supports the growing trend of open and accessible robotics. Each new low cost part opens up more opportunities for future robotic systems, helping to create a future where advanced technology is not just for big companies and research labs but is available to anyone who has the creativity and drive to build.
Supplies
Supplies:
- 3D Printer Filament (PLA+)
- 5010 Brushless DC Motor
- MKS ESP32 FOC V1 Board
- AS5600 Magnetic Encoder
- 55x68x7mm Bearing
- 2020 Aluminum Extrusion
- (18x) 5.5mm Steel Ball
- Scotch Tape
- Grip Tape
- Grease (White Lithium Grease)
- Super Glue
- (2x) 40mm M3 Bolt
- (4x) 25mm M3 Bolt
- (4x) 8mm M3 Bolt
- (8x) 6mm M3 Bolt
- (10x) M3 Nut
- (4x) M3 Washer
- (4x) 8mm M5 Bolt
- (4x) M5 T-Nut
Tools:
- 3D Printer
- Laptop
- Screwdriver (Flathead, Hex Head)
- Hammer
- Soldering Iron
- 12v Power Supply
- Clamp
Software:
- CAD Program (Onshape, Fusion, Solidworks, etc...)
- Slicer Program (Orcaslicer)
- Arduino IDE
Inspiration and Research
The idea for this project came from new developments in accessible robotics and the increasing availability of high quality actuator designs. Specifically, the MIT actuator design showed how small electric motors, precise machining, and smart control systems can work together to make strong robotic joints that can move dynamically and efficiently.
The aim became to design an actuator that keeps many benefits of advanced robotic systems while still being affordable and easy for hobbyists, students, and independent makers to use.
Another big inspiration was a video about wave reducers that use roller elements instead of regular gear teeth or cycloids. This shows a smart way to achieve reduction ratios, smooth operation, in a compact design while spreading loads across several contact points. By using ideas from these advanced actuator designs, this project explores how the latest robotics ideas can be turned into practical, low-cost hardware that is accessible to a much larger group of people.
Design
The design is based around the concept of a wave reducer with roller elements. This idea was refined by Mishin Machines and ME VIRTUOSO, who created a helpful visualization to display the fundamentals of the reducer.
Essentially it relies on rolling contact from an eccentric cam, a wave profile, and rolling elements (balls or pins) to achieve high reduction ratios with very low backlash.
From ME VIRTUOSO's website:
"This type of reducer is, in a way, like cycloidal drives. However, I believe it has many benefits. First, the part count is much lower. We only need a few bearings, as opposed to cycloid drives where, essentially, the number of bearings/bushings you use, is a factor of the gear ratio you are seeking.
Another big advantage over cycloidal drives is that we can easily, with off-the-shelf parts, achieve metal-on-metal contact for torque transmission. This is because we can use a deep groove ball bearing as the eccentric cam. The rolling elements are either steel bearings balls or steel pins. Then, all we have left with is the wave disk, which has a simple 2D profile that is relatively cheap to manufacture in metal."
Where this specific actuator diverges is that the motor is directly integrated into the eccentric cam of the reducer. In theory this helps reduce the overall size of the actuator, allowing it to be integrated into more systems easily.
CAD
The CAD is based around an Onshape featurescript that generates the basic profiles for the cycloidal ring, separator, and eccentric cam. By changing the values, you can adjust the tolerances for the rollers and accuracy of the actuator motion.
Then I created mounting interfaces for the motor and supports for the bearing. I added a ring shaped lid to contain the separator and created a test output plate to visualize the reduction from the motor to the separator.
3D Printing
After the CAD, I imported all of the components of the actuator into Orcaslicer to prepare for 3D printing. I was able to nest some of the parts inside of others to save some space on the build plate and reduce travel distance.
I printed every part using Sunlu PLA+ 2.0 as it is slightly stronger and more heat resistant than regular PLA filament. Every part is also printed with 10% gyroid infill to optimize strength and weight.
Iteration
After the initial printing process, I noticed the holes for the rollers in the separator deformed during printing and would not allow the steel balls to pass through.
The balls need to pass freely through the separator so they can follow the cycloid profile on the outer ring, so I redesigned the part in CAD and reprinted it until I got the dimensions correct.
Insert Motor
To begin the final assembly, feed the motor wires into the channel in the housing and pull them through until the motor is aligned with the bottom mounting holes.
Try to avoid twisting the wires inside the channel so the motor sits without twisting.
Then, hold the motor and flip the housing upside down and secure the motor with four 6mm bolts.
Attach Bearing
Place the 55mm bearing over the motor, then align the holes on the eccentric cam to the holes on the motor.
Press the cam down onto the motor, shifting the bearing position if necessary until the cam clicks over the motor rotor. Mount the cam to the motor using four 6mm bolts.
Ensure you can rotate the cam freely and that the bearing spins eccentrically when rotated.
Insert Housing Nuts
Thread an M3 nut partially onto a long M3 bolt, then press the nut into the hexagonal recess on the bottom of the housing.
A hammer can also be used to quickly press the the nut fully into the recess. Repeat until all four M3 nuts are secure in the bottom of the housing.
Prepare Seperator
Repeat the process of using a bolt to insert M3 nuts into the recesses on the lip of the separator. These nuts will be used to connect the output of the gearbox.
Loosely wrap the outside of the separator with scotch tape, then insert all 18 steel balls from the inside of the separator. The scotch tape will hold the balls inside the separator during movement and integration.
Insert Seperator
Flip the separator over (ensuring none of the balls fall out) and position it on top of the bearing.
While applying pressure to the separator, rotate the eccentric cam until the steel balls fall into place and the separator drops into the housing of the actuator.
Finally, peel the scotch tape up and out of the actuator without dislodging the separator. Then verify that to cam moves the balls as expected.
Add Grease
To increase the smoothness of the operation and reduce wear on the parts, apply some white lithium grease to the outer ring of the housing.
Move the cam to spread the grease around the moving components and clean up any excess.
Attach Lid and Output
Attach the lid using four 25mm bolts that engage with the nuts pressed into the housing.
Align the notches on the output plate with the holes on the separator, then secure it with four 8mm bolts.
Wiring
Wire the + and - terminals on the MKS ESP32 FOC board to a 12v DC power supply. Ensure the power supply can supply more amps than needed (~3+).
Connect the motor to the ESP32 board using the A (Red), B (Black), C (Yellow) terminals on the board, remembering which motor number it's connected to (0 or 1).
Finally connect the ESP32 board to a laptop using a USB B to USB A cable.
Software Testing
For simple software testing, I ran the motor in open loop mode to ensure the mechanism works correctly.
I used the test code from the Makerbase repository to quickly check the motor functionality, testing different speeds and voltage limits to find an optimal configuration. An important aspect was setting the motors phase resistance to 2 Ohms to prevent it from overheating.
I observed that at high speed, the motor was experiencing phase issues and overall had efficiency issues, which was a sign to properly implement field oriented control (FOC).
Glue Magnet
In order for the encoder to track the rotation of the motor, the diametrically magnetized magnet needs to be attached to the back of the motor shaft.
Hold the magnet by attaching it to some metal tweezers, then apply a small drop of super glue to the bottom of the magnet.
Carefully place the magnet onto the back of the shaft, trying to position it as centered as possible.
Prepare Encoder
To use the encoder, the pins need to be soldered to the encoder board.
Insert the pins into the through holes (they should hold in place) and then press the pins into a small breadboard to hold and align the board.
Then, solder the top of the pins to the board and attach the pins to the ESP32 board using Dupont connectors.
VCC -> 3.3v
GND -> GND
SDA -> SDA
SCL -> SCL
Ensure the encoder port matches the motor port number on the board.
Create Mounting Parts
In order to securely mount the actuator for testing, I designed a simple mount for the actuator and a bracket to hold the encoder.
The mount has flanges to allow it to be secured to a table using clamps.
The encoder bracket accurately positions the encoder at the correct position and distance from the magnet (.5-3mm away).
Mount Actuator
To attach the actuator to the mount, remove the bottom two bolts from the housing and replace them with 40mm M3 bolts with washers. These should stick out of the bottom of the actuator.
Then insert the bolts into the holes in the mount, then slide the encoder bracket over them.
Secure all the components using M3 nuts and washers on the back of the encoder bracket.
Clamp Mount
To create better grip on the table, cut a strip of 1in wide grip tape to the length of the recess on the bottom of the mount. Then adhere the tape aligned to the recess, so the grip protrudes slightly below the bottom of the printed part.
Then use a clamp to firmly attach the mount to a solid surface.
Attach Arm
I created an output plate that holds a length of aluminum extrusion to act as a test arm. This represents a potential use case as a robotics joint and functions to test position control and backlash.
Insert four 8mm M5 bolts into the output part then partially thread four M5 T nuts onto the bolts.
Then slide the extrusion onto the T nuts and tighten the bolts fully.
Finally attach the output plate to the actuator with 4 bolts. I had to use a 2mm spacer to prevent the arm from contacting the lid of the actuator, but this was a preventable design issue.
Implement FOC
In order to implement FOC, I used the closed loop position control test code from the Makerbase repository.
The was able to position the arm to a set angle, however I faced issues with tolerances inside the reduction mechanism causing slippage and backlash.
The motor is able to effectively hold its position thanks to the position control, but the reducer is also backdriveable, meaning it can also create a flexible joint which is helpful for dynamic robot control.
Conclusion
While this actuator successfully demonstrates the core concept, there are many opportunities for future development and refinement. Continued improvements can increase performance, durability, efficiency, and ease of assembly, helping push the design even closer to professional robotic systems while maintaining its accessibility.
Potential future improvements:
- Add bearing to output to increase rigidity and accuracy
- Tighten tolerances in mechanism to reduce backlash
- Add second cam to offset vibration of eccentricity
- Add cooling solution to manage motor heat
- Cleaner integration of encoder and wiring
This project demonstrates how advanced robotic technologies can be made more accessible through thoughtful design, low cost components, and modern manufacturing methods. By creating a compact, 3D printable actuator, the project helps lower the barrier to entry for robotics and encourages more people to experiment, learn, and innovate. As accessible robotics continues to grow, projects like this can contribute to a future where automation, assistive devices, and intelligent machines are available to a wider range of communities, educators, and creators.