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.
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.
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.
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.
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.
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.
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.