6-Axis Robotic Arm

My personal journey in deepening my understanding of robotics.

Summary

  • Modelled and 3D printed the mechanical structure of a 6-Axis robotic arm utilizing Fusion 360.
  • Developed an overvoltage protection circuit for the Arduino's power supply jack to avoid voltage spikes and damage to the microcontroller.
  • Engineered a planetary gearbox for the base joint, augmenting the torque of the Nema 17 stepper motor employed for joint control.
  • Calibrated servo motors to provide feedback control utilizing soldering techniques on their embedded analog potentiometer.
  • Skills:

    Project Overview

    Embarking on a venture to deepen my understanding of robotics, I have undertaken the development of a 3D-printed robotic arm. The ultimate goal is to achieve full automation, enabling the arm to respond to vocal commands and adeptly handle tools. This ongoing project showcases my progress to date.

    General Design

    The robotic arm features 6 revolute joints, with the base using a stepper motor and the other joints using servo motors controlled by a PCA9685 servo driver module. While a servo could have simplified the base, a stepper was chosen for learning purposes. Initial electronics development utilizes an Arduino Uno, transitioning to a Raspberry Pi 4 8GB for image processing due to increased processing power. The arm aims to handle tools weighing under 8 pounds (roughly 3.63 kg), and all mechanical parts are 3D printed with PLA, incorporating machine screws ranging from 3-5 mm.

    3D Mechanical Design

    The project began with a prototype emphasizing minimal mechanical components to reduce costs. However, initial limitations in workspace and reach prompted a redesign, accommodating a gearbox for the base stepper motor. Overcoming 3D printer constraints (150x150x150mm), the second design involved breaking down link designs into printable pieces for assembly, addressing challenges encountered in the first iteration. The 6th joint, the gripper mechanism, initially designed as an AR4 gripper, is under revision due to torque transfer issues.

    First Prototype
    Current Prototype
    Assembled Prototype

    Microcontroller Overvoltage Protection

    Given the external power supply, a protection circuit safeguards against voltage spikes from unforeseen situations such as a power outage. Utilizing 2 BC557 Bipolar Junction Transistors (BJTs), a 50K potentiometer, and passive components, an adjustable voltage supervisor was developed. The circuit turns off power if the supplied voltage exceeds a set threshold, incorporating a positive feedback hysteresis loop for stability. In the following circuit, we use a simple LED as the output load.

    Circuit Schematics

    Video Demonstration

    Current and Future Plans

    The project is in the calibration phase, starting with the stepper motor gearbox and progressing to the servo motors. Implementing a feedback system, the project addresses the absence of feedback in servo motors by soldering wires to the built-in potentiometers for analog position reads. These analog wires connect to the Arduino Uno's analog pins and will later interface with the Raspberry Pi through an MCP3008 ADC chip.


    The video below showcases the latest progress of our product. With the gearbox installed and all components successfully printed, we achieved control over the arm's base rotation in any required direction. This demonstration highlights the utilization of an Arduino Uno and DRV8825, powered by a 12V DC power supply. We note the wobbling of the arm after each stop, which can be improved with changes to the shoulder joint connecting the first link to the base.