How would I create a robot arm from scratch Part 2: 3D modelling

This is part 2 of How I would create a robot arm from scratch.  In part one I talked about high-level approach and used a computer model to work out some of the design constraints to meet my goals.  In this part I applied my design skills to plan a model that should fit within those constraints.   Pictures inside!

I’m sharing these early pictures because I want constructive criticism about my design.  I have only completed a rough pass, having placed all motors and then attached them together with bearings, screws, nuts, and 3D printable bones.  I am using Fusion 360 to create my designs.  In total the this model should way slightly less than 14kg (30lbs), reach 50cm, and hold a maximum of 2kg at the wrist.

Here are some pictures of cross-sections – slices through the virtual model – of the arm I’ve designed using this approach.  Click any picture for a larger version.

First here is a cross section of the elbow, the wrist, and the shoulder.  The wrist is the only joint that has a single bearing holding it in place.6 axis arm 2017 cross section A

Here is a cross section of the two joints at the shoulder.  Notice they use the same motor/gearbox model, and the same approach to holding bearings in place.

The shoulder has been sliced into several pieces to make 3D printing possible.

6 axis arm 2017 cross section B

Next is a cross section of the shoulder and the elbow.  Notice the long screws on the shoulder.  I’m using a technique I learned from Andreas Hölldorfer: when I need a really long screw, use one 20mm metal spacer to attach two shorter screws.

I’m not in love with the bicep supporting only one side of the elbow, but I couldn’t seem to dream up a better way.  The bicep is printed in three pieces and attached to the motor on both the elbow and the shoulder.  I’m concerned that the weight of the arm is resting on the gearbox of each motor.  I don’t know if that will impact performance.

6 axis arm 2017 cross section C

This picture is slicing through the elbow, ulna, wrist, and hand.  The pink/red motor in the center has a pulley on the right that turns a belt attached to a wheel at the wrist.  The only belt in the system!  There is a cover over the belts, it looks like the cover was hidden at the time I took the screenshot.  The left side of the wrist has a hole through which the wires for the wrist can pass out and down inside the cover.  I hope I have left enough room for wiring.  I don’t know how to model moving cables.

6 axis arm 2017 cross section DSensors

The current model will be open loop – it will only be certain of its position when touching limit switches.  The switches are not in these pictures.  Once it touches off the switches it must count steps as it moves.  As long as it never misses a step everything will be cool.  I like very much the approach of Arkadiusz Budkowski who uses touchless induction probes.  No physical contact means no possibility of damaging or moving the switches.

The next model will be closed loop – continuous 24bit hollow shaft rotation encoders will watch every movement.  This will allow the arm to respond to interruptions, as well as know where it is as soon as it turns on.


Wiring is difficult to model, especially if it is moving or flexing.  I hope I’ve left enough room for wires as needed.  It bothers me that wires will be exposed at all.  In a perfect world they would be completely contained and the whole system could be made water-tight.

Control Box

The control box and the table mounting hardware have not been show in these pictures.   The electronic brain of the robot and the high current motor drivers will be contained in a box some distance away from the robot.  Probably a one meter umbilical will connect the arm to the box.  I have seem some design where the controller is completely integrated and I feel this adds more problems than it solves.  I can’t make a strong argument this second, so maybe this is a question of taste.

Design for Manufacturing

Having completed this rough pass, I now have to do a more detailed analysis to adjust every part for my 3D printer tolerances.  My Prusa MK2S machines need about 0.1mm added to every inside curve and 0.1mm removed from every outside curve.

I don’t have enough experience with Finite Element Analysis to find out (ahead of testing) where I’ve used too much material and where I should have used more.

Final thoughts

I hope I have left enough clearance to get a metric hex key onto all the screw heads.  I’m only using metric socket screws.

I expect it will have to reprint the entire arm at least three times to get it right, and that’s before I install the sensors.  Who wants to take a bet on the number of prints?

In the coming days on Instagram I’m going to start printing parts while I wait for the motors and bearings to arrive.

Only registered users can comment.

  1. Hello
    I was born a bit too early (about 50 years old). I have some experience with design, technology and electronics. Programming is my Achille heel. The son rightly calls me computer illiterate. Currently, I am working on an arm robot that is slightly different from your solutions. I would like to share my experiences and I would like to learn from your publications.
    This is your question about the solution of wiring harnesses on the baffles, in these places I make several coils of wire (a kind of spring), so that in such a joint the wire can bend and bend a few hundred thousand times and will not get tired.
    I greet Jan Fibich