5-Axis Robotic Arm

Oct 2020, May 2022


In the past two years, I’ve completed two robotic arm projects, both utilizing Arduino mega and raspberry pi control systems.

Oct 2020 - Geoffrey the robot arm

Geoffrey the robot arm is a five-axis robotic arm originally developed to be used in DupedWhipz’ manufacturing line. It was intentionally designed with mostly 3D printed parts and readily-available hardware from vendors like Amazon and McMaster-Carr to keep costs low. In all, the cost to manufacture Geoffrey is around $400 dollars.

notion image

Design Process

I started designing Geoffrey a few months after my first fully-involved season as a design engineer on my high school’s robotics team. I recently became quite fluent in OnShape, a browser-based CAD software, and decided to use OnShape to design Geoffrey. This was my first large solo design project, and I took the design through an approach as follows:

General Design Process (click to open)
  1. Design arm in CAD to best of ability
    1. Includes personal design reviews and revisions
  1. Seek design review from JPL mentor
  1. Implement changes from design mentor
  1. Special case: if unsure about feasability of some part or assembly
Questionable Design Component
  • Part is printable
    • Use 3D printer to rapid prototype
    • Repeat if necessary to ensure quality
  • Part is not printable
    • Low dependecy (not many other components depend on this design)
      • Design part in and proceed; fix if broken
    • High dependency (other critical components depend on this design)
      • Risk vs reward evaluation and proceed as follows; change design if risk is not taken
Test showcasing power trasnfer to joints 2 and 3

Assembly and Revision

Geoffrey was assembled with only few minor design errors due to the intense and comprehensive design reviews. However, some aspects of the design required revisions:

  • Fourth and Fifth axis servos upgraded to higher torque metal gear servos
  • Motorized vacuum replaced with venturi pump to increase vacuum
  • End effector replaced with more compliant tip to increase grip on uneven surfaces
  • Counterbalance added to joint 3 to increase lifting capacity
A robotic keychain magazine that helps Geoffrey load and unload keychains

Software and Control System

Geoffrey relied on an arduino mega programmed in C++ coupled with a raspberry pi 4 via USB Serial to operate. A web interface developed with Node-RED (JS) was hosted on the network via the raspberry pi, which could then accept commands and send them directly to the arm for execution.

Several control-system related programming topics were utilized throughout the development of Geoffrey’s firmware:

  • Linear interpolation
  • G-code parsing and processing
  • Serial Communication
Fully-working loading sequence including auxillary keychain loader

End Result

While most aspects of the arm were fantastic, like low cost, powerful end-effector, and easy user interface, the repeatability and accuracy of the arm were questionable. Because Geoffrey’s main task involved dealing with automating a laser engraver, I chose to not use geoffrey in production because of potential fire hazards and quality issues the arm may have caused.

Eventually, a “cookie sheet” design concept from my good friend Manvel was developed and created; it consisted of large, 3D printed sheets that held up to fourty-five keychains at a given time that were swappable with a quick-release magnetic fixture.

April 2022: Moveo 5-Axis Arm

My second arm developed for my High School’s Senior Project was Moveo’s 5-axis robotic arm, with some minor modifications. The arm was developed with no specific use case in mind; it was strictly experimental and educational.


Manufacturing and Revision

The arm was largely 3D printed, requiring roughly four kilograms of 3D printing material with around 200 hours of printing time. Each part was then sanded, primed, and painted, and often coupled with heat-set inserts for increased fastener strength.

Cross-section view of wrist modification
Cross-section view of wrist modification
Post-processed 3D printed parts ready for assembly
Post-processed 3D printed parts ready for assembly

One major revision was done with regards to the fourth-axis wrist joint, replacing it with a much-sturdier design featuring a CNC machined aluminum coupling and thin-section bearing for increased rigidity and reduced friction.


Software and Control System

This arm, being much heavier than Geoffrey, required much more power to run. As a result, the control system varies somewhat from Geoffrey’s previous setup:

  • External TB6560 high-current motor drivers instead of integrated motor drivers (top mounted)
  • Arduino Mega accompanied with RAMPS control board
  • External power distribution rails
  • Firmware: Marlin, an open-source 3D printer firmware in C++
The electronics bay underneath the robot arm. Orange: power distribution rails. Green: 120VAC power supply. Blue: raspberry pi 4 with two wifi adapters. Purple: Arduino Mega with RAMPS backpack.
The electronics bay underneath the robot arm. Orange: power distribution rails. Green: 120VAC power supply. Blue: raspberry pi 4 with two wifi adapters. Purple: Arduino Mega with RAMPS backpack.

In Conclusion

Some critical design flaws prevented me from pursuing further application of the arm, like improperly-specced motors and weak 3D printed parts. The arm was a fantastic learning experience for what a proper five-axis arm was capable of, and I even tinkered a tiny bit with ROS, or Robot Operating System.

Full demo of the arm’s capabilities, including linear interpolation and wifi functionality