From April
Jump to: navigation, search

This page presents the robotic arm that the APRIL lab designed and built in-house for scholastic and research uses.


The APRIL Arm is a 6 degree-of-freedom (6DOF) arm comprised of six off-the-shelf servos, 3D printed arm segments, a wooden base, and a simple computer interface via USB. Device drivers for the Dynamixel family of servos from Robotis is available within our open-source software package. Further information on using these arms may be found in the assignments page of Prof. Olson's Winter 2011 EECS 498 course website.


The APRIL robotics laboratory desired a high-quality, high-reliability, and cost-effective robot manipulator for use on robots for mobile manipulation, in the classroom (as teaching tool), and on the workbench for research tasks. An in-house solution provided us the ability to design for configurability, scalability, and performance within a reasonable budget. The first two versions were developed by Ryan Morton for EECS 498 in 2011.

Capabilities of the APRIL arm

This 6 DOF arm has a reach of 24" can be easily and quickly assembled from a combination of 3D printed parts and off-the-shelf components for a total cost of about $1500. The arm can easily lift and maneuver 100g objects for long periods of time and short maneuvers for heavier objects. The arms have full 360-degree support on a workbench, although the current configuration of cables includes a discontinuity at 0-360. The MX-series Dynamixel servos allow modification of PID constants for more fine-tuned control of the arm that can be tailored to your application.

Who could benefit from an APRIL arm?

Educators could use these high-quality robot manipulators as tools for teaching concepts such as: physics, kinematics, robotics, computer vision, and control systems. Students of robotics will certainly learn concepts with simple robots, like this arm, before moving on to more complicated robots. However, one great use of these arms is to invigorate non-robotics students with a passion and desire to learn and interact with their experiments and motivate them to pursue STEM careers.

Researchers do not particularly need the pretty consumer-grade (and expensive) robot arms being sold today. Experiments need to be run and the results do not (generally) depend the finishing material of the robot arm. Thus, this simple arm (servos and connecting plastic) allows researchers to configure their arm that meets the needs in a cost-effective manner. This is particularly important when multiple uses of the arm are required, each with differing requirements; rather than having multiple arms the cost-effective arm segments can be interchanged with little effort.

Do-it-yourself and Hackerspaces often cannot afford expensive robot arms and have multiple projects/uses for these arms. At a hackerspace, for example, multiple projects may all compete for usage of the robot arm and the APRIL arm offers multiple benefits in this regard. First, the arm is not so expensive to preclude the idea of having multiple arms if demand is high-enough (other competing arms cost up in the $10,000 range). Secondly, the arms are configurable and thus, some segments (bigger, and more expensive, servos) may be shared between projects. And lastly, the arm segment design files given here can be modified to meet the exact needs of the project (we encourage it).

Fabricating an APRIL arm

There are three stages to make an APRIL arm: order parts, print plastic arm segments, and assemble arms. (See Advanced Configuration section below for ideas on how to modify this configuration to meet your needs.)

Ordering parts

The APRIL arm uses the Dynamixel line of servos from Robotis. You can choose either the TTL or RS-485 variants for communications, as long as all servos are the same. General support for these servos can be found at [1] and drawing can be found at [2].

Parts List
Type Name Manufacturer/Supplier Part Num Qty Links (as of 10/30/2012) Notes
Servos MX106 Robotis Dynamixel mx106 1 servo 1
MX64 Robotis Dynamixel mx64 2 servo 0,2
MX28 Robotis Dynamixel mx28 1 servo 3
AX12 Robotis Dynamixel ax12 2 servo 4-5
Accessories 12-V Power Supply edacPower EA10523c-120 1 Servos are susceptible to noisy power, so don't go too cheap on the power supply
USB cable (A-male-to-micro-B) any any 1 For example: [3] Just get your desired length
Communication Adapter Robotis USB2Dynamixel 0 (see notes) For example: [4] This is a consumer product sold by Robotis, but for $50 you can make your own, or contact us for our version
Communication Adapter APRIL lab 1 contact us This is our in-house replacement module PCB. FTDI chip with TTL-serial converter (simple).
Teflon McMaster 8569K45 32 in^2 http://www.mcmaster.com/#catalog/118/3601/=k5xcoa 1'x 6" is plenty for 1 arm. We had custom pieces cut out of teflon for the slip surface
Small mechanical parts
(qty given
per arm,
not boxes)
M2x5 McMaster 91290A012 4
M2x8 McMaster 91290A015 8
M2x10 McMaster 91290A017 12
M2.5x6 McMaster 91290A101 40
M2.5x10 McMaster 91290A103 26
M2.5x16 McMaster 91290A106 15
1/4"-20x1" McMaster 91735A542 4 Attaches arm to base, thus length may differ depending on base thickness
1/4"-20 nut McMaster 90480A029 4

Printing plastic arm segment

This tar file contains all the .stl files we used to print our arm segments on a Dimension uPrint Plus SE 3D rapid-prototyping ABS plastic printer, which prints ABS plastic in 0.254mm layers . Often 3D printed material is used for aesthetic purposes, but since we're using the arm for structure it is very important to properly orient the parts during the print job to maximize the strength where desired. For example, since (our) 3D printer lays down lines (planes really) of plastic, the intersection of these planes represents the typical breaking point under load. The following pictures show the orientations that work best for our purposes (which may differ from yours).

Best orientation to print base
Best orientation to print MX28 Truss
MX28 Truss
Best orientation to print AX12
AX12 Truss
Best orientation to print wrist
Best orientation to print Gripper 1
Gripper 1
Best orientation to print Gripper 2
Gripper 2

Cutting Teflon Rings

The intended load on the arm's shoulder joint exceeding the capabilities of servo 0. Thus, we printed a large shoulder joint that includes two teflon washers as contact surfaces. We utilized a Zund digital cutter to cut the washers using this .dwg drawing.

The shoulder piece uses a significant amount of plastic to serve both functional and aesthetics goal, but an alternate solution may use a lazy susan [bearing]. Please share any good solutions you discover using alternate methods!

Assembling arms

Using the APRIL arm

Communication with the APRIL arm servos uses USB with an adapter that transforms signals to/from TTL or RS-485 (depending on which you purchased). In the APRIL robotics toolkit we've written simple drivers to interface with these servos.

  • Follow the directions on [[5]] to install the toolkit.
  • Run april.dynamixel.DynamixelGUI // -h for help
    • May need to set command-line options for baud and device
    • Right-click on servo ID to bring up advanced options (change baud, change ID, etc.) on individual servos. Each servo must have a unique ID, thus incremental daisy-chaining and changing may be needed since they're all configured with same ID at factory
    • Ensure proper control of each servo from within DynamixelGUI

Advanced Configuration

The configuration given above was designed to lift small objects (~100g) with 24" horizontal reach. The servos and arm segment lengths can be modified to suit different goals by modifying the solidWorks design files here. If you find a better design, we would appreciate notification so we can improve our arm and notify other users as well. There should be reference planes, axes, etc that allow easy transformations for some typical changes, e.g., to change length of an arm segment should be one parameter change and a rebuild. Note: we are computer scientists and thus make few assumptions about the ease of more complicated changes.

Additional contact

To see project ideas for this arm see the ArmLab assigned during Prof. Olson's W12 EECS498 course. For additional questions and comments please contact Edwin Olson or Ryan Morton.