End-Effector1

Optimizing End Effector Rigidity

In the early stages of the euclid design there was not a lot of information publicly available on how to optimize the kinematics of a delta robot. The Reprap community seemed to be focused on minimizing total cost, and weight, resulting in flimsy arm configurations and plastic u-joints – not really suitable for tasks other than 3D-printing with a light-weight hotend and remote extruder. I was more intrigued with the idea of a universal robot configuration with the longevity one would expect from a professional tool, while also being versatile enough to attach different tool-heads for performing varying tasks. The goal was to achieve high accuracy motion while also being able to move around a ~1lb toolhead quickly – around 100mm/s or more. This meant the system will potentially have a lot of inertia, so the moving mechanical components need to use materials with a high strength to weight ratio.

With each successive design iteration, I became more and more conscious of the importance in rigidity of all the moving parts, most noticeable by jostling the end effector and feeling for slop. Not only does the firmware expect perfect symmetry throughout the entire machine, but the arms also need to be perfectly parallel, the joints need to have no wiggle room, and the carriages must not be able to flex under load.  Anywhere there are imperfections ultimately leads to positional error in the end effector, and that error is amplified the further away it moves from the center.  Any additional flexing or mechanical slop introduces even more error, which is compounded into the system. In the photo below, you can see the top object has misalignment in the stack-up of layers.  The end effector on that machine had too much play for the weight it was carrying; the affect is clearly visible. What I initially had found so appealing about the deltabot design, the small part count and large number of common parts, had turned into a major manufacturing and assembly challenge!

Positional error showing up in the layer registration of 3D printed objects.

Positional error showing up in the layer registration of 3D printed objects.

Of all the sub-components, I put the most thought into the construction of the arms.  There were many iterations involved, both good and bad, which I will outline in a future post. The printed parts also went through many configurations before feeling adequate. They all needed to better resist flexing, so I increased the printing density, which caused the dimensional accuracy to continually to improve. Once the carriages’ total bearing length was increased, the plastic parts were better optimized for strength, though the overall smooth rod diameter increased by a few millimeters.  It became clear that the current delta firmware is still very much in a premature state. Asymmetry in assembly, especially by a human, is all but unavoidable; it goes completely unaccounted for in the firmware until each tower is defined with values based on assembly or some other corrective algorithms are implemented.

Alas, the deltabot framework is still very much a practical and reliable robotic platform. The more intense tasks you want the machine to be able to perform, the more precision is required to produce the parts involved, and the more critical assembly becomes. If you think your kinematic assembly may not be rigid enough, there is an easy way to check for extra slop or an under-constrained end effector.  Enable the motors so the tool head is holding an arbitrary position. Forcefully tap the end effector from different directions to see if it moves about or holds itself in place.  You can decide by the amount of play if it is potentially throwing off your calibration process or affecting print quality.  A high speed video demonstration of good and bad can seen below.