Lutz Freitag
Coding, tinkering and plenty of love for robots
Minified Vita
I grew up and have ever lived in Berlin. I guess that is where my heart belongs.
After finishing school I studied computer science at Freie Universität Berlin (FU Berlin) where I did my Bachelor’s and Master’s degree.
While studying I joined the robot soccer team FUmanoids1.
With that I’ve fulfilled my inner child’s dream of playing with working on robots.
The FUmanoids project allowed me to touch a wider field of robotics than just dry computer science.
This was where I finally fell in love with the whole enchilada from hardware to high level software and everything in between.
Professionally I had plenty of jobs as a student: I worked for Hella Aglaia2, Autonomos GmbH3 (now part of TomTom4), Freie Universität Berlin5 and Hanson Robotics6.
The very next day after I handed my master’s thesis7 in, I started as fulltime research associate at FU Berlin5 where I spent a year until transitioning back to the commercial sector of software development™. At iris GmbH8 I was part of the RnD department. To keep myself even busier – and to work on robots again – I later side-job-freelanced for Hanson Robotics6.
Tinkering
In my playtime I enjoy coding (I actually do!), to which I usually refer to as recreational C++ (origin). My tinkering is not limited to playing with C++ but with other languages (mostly python actually) and hardware projects as well.
My main computer related interests are:
- Inverse Kinematics
Find my Master’s thesis about it here. I’m a strong advocate for the dampened least squares approach to inverse kinematics. If you want to know why: I’m good company for a beer and I love talking about that stuff. - Sleek Code
As a rule of thumb: When comparing solutions to a problem the solution that makes the least assumption is usually better (aka. Occam’s razor). This reasoning leads to: Less code is usually better. I often rework or even rewrite my software until it does exactly what I expect it to do and looks like I want it to. This involves quite a lot of trial and error but is usually worth it; how to learn better than by doing?. - Hardware
I have designed and built quite a lot of custom PCBs that incorporate microcontrollers. All of my boards are made with plenty of love.
Professional Tinkering
My professional work mostly revolves around the design and implementation of embedded software. I’ve developed Linux drivers to interface custom cameras as well as drivers to operate heterogeneous processors (i.e., controlling SHARC9 cores from Linux running on an ARM) and drivers for customized memory allocation. In my robot related professional tinkering I’ve build a motion engine. That is a very sophisticated control architecture for arbitrary articulated rigid body systems with an inverse kinematics solver that can handle arbitrary arrangements of tasks (hierarchies of tasks, unions of tasks, conflicting tasks and those things), no restrictions on the type of robot (even loopy kinematics) and a very fancy user interface. And it’s pretty easy to use.
Non-Tinkering
Things that I enjoy which are not related to technology are: Traveling (to see places), eating (to taste places) and reading (to imagine places).
Oh, and I love cycling.
-
The most awesome robot soccer team in the world: FUmanoids
-
My master’s thesis: Puppeteering Robots
-
ADSP: A heterogeneous processor from Analog Devices with an ARM and a SHARC core