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.)
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  and drawing can be found at .
|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: ||Just get your desired length|
|Communication Adapter||Robotis||USB2Dynamixel||0 (see notes)||For example: ||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
|1/4"-20x1"||McMaster||91735A542||4||Attaches arm to base, thus length may differ depending on base thickness|
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).
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!
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 [] 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
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.