Let's build robotic arm
This blog post is time-boxed by my sleeping 4mo old son. I most likely have 12 more minutes of uninterrupted time left before he wakes up, so I’ll keep it short.
Spoiler alert, Erik slept for 1 hour and 51 minutes! :)
Work Situation
Since last year, I’ve been working with SoftwarePark - an Austrian software company focusing on turn-key solutions for its clients. At work, I’ve been mostly involved with infrastructure for data engineering and machine learning. Simply put, we are creating an environment for the data scientists to design, push to production and improve their models. Technology revolves around Kubernetes, Helm, Python, Jupyter, Apache Airflow, Dask Distributed and Ceph over S3 with a pinch of Google Cloud.
If compared to my previous projects, this work is less pure R&D and more plain engineering. This puts me in a little happy place — with two kids, there isn’t enough time and focus left to, say, work on a consistent distributed application-specific database (like 📦 SkuVault.
Domain design in our current project focuses on creating a comfortable and coherent R&D environment for data scientists. In a sense, it feels like OOP at the level of software systems - we are still removing excessive concepts, refactoring and renaming things.
New Hobby
Along the way, I’ve accidentally found a new hobby to replace software development for fun. It is less demanding for undivided attention, long chunks of undisturbed time and availability of both hands.
There is an interesting company called Haddington Dynamics that is building a low-cost high-precision robotic arm. They focus on bringing the cost down, while going for really high precision (measured in 10-50nm). Most of their work is done open-source, except for the FPGA code and the latest designs.
Low cost in this case means: from 6800 to 9800 USD.
My two other colleagues and I are trying to design and build such an arm from scratch, while achieving similar levels of precision but using less expensive parts and tech. This constraint is where all the fun comes from.
Current Status
We have built a first tech prototype out of two 3D printed parts (from the Haddington Dynamics STLs), Lego Technic blocks, Arduino and a cheap DC motor. It has an optical encoder that helps to know and maintain its position more or less precisely. However, enormous backlash is killing any hope of establishing even crude haptic feedback.
To move forward, we need to get our hands on a speed reducer with smaller backlash (speed reducer is needed, since electric motors operate best when spinning fast). It seems that our best bet is to build a 2-stage cycloid drive with 56:1 gear reduction or so. There is a simple single-stage prototype being printed by our friend right now (and our own 3D printer is en-route from China).
In parallel, we are investigating how to improve speed and precision of an encoder. Current designs will get the most out of ATtiny micro-controller. In the future we might try using LVDS IO on an FPGA to work as an Analog-to-Digital Converter (ADC) for an encoder disk. Stellamar did it, Haddington Dynamics did it, so it could probably be reproduced.
Similar to how stack flattening works in software design, bringing ADC into the digital logic might allow to make a relatively simple high-frequency converter. After all, if we cache all signals produced by the encoder disk, this could be used as a lookup table to speed up ADC sampling (we’ll check the most probable signal levels first).
I’m probably being the worst person in the world to work on a nanometer-precision robotic hand with the haptic feedback, however:
- this is mostly an excuse to learn new skills;
- we still have a couple of years filled with chunks of time when we have at least one free hand and partially uninterrupted focus;
- it is an opportunity to do something engaging with the older kids.
Published: February 02, 2019.
Next post in Robotics story: Dive into FPGA, PCB and 3D printing
🤗 Check out my newsletter! It is about building products with ChatGPT and LLMs: latest news, technical insights and my journey. Check out it out