Featured: Damian Lickindorf
Damian Lickindorf is 22 and studying Mechatronics in Wrocław, Poland. As part of his degree he’s been building a 6DOF robot arm like the Sixi. You can now find Damian Lickindorf’s project on Hackaday.io. Read on for beautiful pictures and some Q+A.
Damian says his machine uses five 3D printed cycloidal reducers with hollow shafts (for wires). There’s also 8 encoders, 2 BLDC servos (Odrive), and 4 stepper motors.
On the control side there are five Teensys, including the one in the custom joystick.
He was generous enough to send in cross sections of the wrist, Fusion360 renderings, and even video.
Questions + Answers
What is the part of this robot that is most satisfying to you? Which part is the least satisfying?:
There are two ways to answer this question, first – design wise – best and worse decisions:
I’m really proud of the two Odrive powered Axis – 2 & 3, with hollow shaft cycloidal gearboxes. They are very rigid, backlash free, and I still wasn’t able to overload them (60Nm highest torque I’ve tested yet). I didn’t talk much about that, but at the beginning I was able to measure, with just these 2 axis, and without changing load, a 0.05mm repeatability. They also use a pretty smart homing routine, which allows them to home in 3 different positions (2 ends, and the middle), with 2 optical limit switches. Fun fact – the Axis 2 gearbox uses 51 ball bearings, and the Axis 3 gearbox, 33 ball bearings. I also like the CAN based architecture with controllers on each axis.
The design decisions I regret the most – there are 2 – first of all my first axis is underpowered:
I’ve underestimated the torque I’d need there, because I only have to fight inertia there, not gravity. I think an even worse decision was to place Axis 2 directly over Axis 1 – I should have had it offset by like 2 inches forward. That would allow me to reach further down, which would give a much more practical shape to the working area.
The other way is about what I enjoyed the most and the least:
The best part of building this robot was by far designing the hollow shaft cycloidal reducers. This process had the perfect balance of fun and challenge for me. It involved: finding best dimensions and proportions, choosing many different bearings and bushings, coming up with ways to make the reducer as compact as possible, maintaining printability and assemblability, and all that while considering prices and availability of materials. At the end, I think I came up with some pretty innovative designs.
The least enjoyable part of the process is what I’m doing now – learning ROS and Moveit! and trying to integrate my robot into this ecosystem. I’m not much of a programmer, and it’s a pretty painful process for me.
Do you have any specific plans to use the robot?
It is my Engineering Thesis, but other than that – the answer is no, I intentionally designed it without a specific purpose – I wanted to make it as universal as possible, so that when I’m done I’ll be able to use it as a platform for whatever comes to my mind. That’s also the reason why I want to integrate it with ROS and Moveit! – because that will allow me to use a lot of software that was already written by other people, and from that, experiment with simulations, scene awareness and maybe even everyone’s beloved buzzword – machine learning.
Are there any lessons you learned while making this machine you’d like to share? process, organization, “i didn’t know why everyone did this like so until I did it the other way”, etc…
A worthwhile lesson I’d like to share with people is that DIY projects like mine or Dan’s are really worth showing off. I haven’t done much of that before, but now I can see, that the things you learn in the process of building, are only half of the benefits you can get. The other half is the people you’ll get to know when you share the stuff you do. Thanks to my project I got to know tens of guys form around the world, and had some really insightful conversations with them.
If I were to give some more technical advice for people looking forward to designing their own robot arms, it would be:
- You’ll never have too much torque. When 3D printing gearboxes, or using belts, you should expect some really low efficiencies at every step of your way, so choose motors with 2-3x the torque you think you’ll need.
- Cheap DC’s with built in reducers are useless for precise positioning, if your encoder is before the reducer, you’ll have backlash problems, if it’s after the reducer, the PID will be very unstable.
- 3D printed gears will wear out pretty fast if under load. The only good way to use them in arms is in strain wave or compound planetary reducers.
- If you can afford it, try to play around with BLDC servos, (I’m personally a fan of Odrive and the community behind it). It’s a completely new level of doing things, you have an order of magnitude more control over the behavior of your system, and you can collect way more data about what’s happening.
This is a really exciting project with a great deal of talent, time, and love put into it. I look forward to following Damian’s creations in the future and I’m more than a little proud to have inspired his new Hackaday page. Always be building your reputation!
The hollow-shaft cycloidals are a great idea and we may be doing that to a future version of Sixi.
If you know someone who’s doing something awesome in robotics, let me know! I’d love to feature them.