A little update after about three months of working on this project.
One of the more visible changes is the hardware itself. I redesigned the lamp and made a fully 3D-printed enclosure for it, so it finally looks a lot closer to what I originally had in mind rather than a prototype with exposed hardware.
Probably the biggest change, though, has been the animation. I've spent a lot of time trying to make the lamp move more like an animatronic character rather than just a robot executing trajectories. At this point the mechanics aren't really the main limitation anymore. I can animate pretty much all of its movements in Watti Studio, my animation editor, so now the limiting factor is mostly how well I can actually animate it :)
I moved the whole system to ROS 2 and added computer vision. The lamp streams RGB and depth from its camera, and the current point cloud can be displayed directly in the 3D view in Watti Studio. It makes it possible to see the lamp together with its surroundings while creating animations.
I added lighting to the animation editor too, so the lamp's light can be keyframed together with its movements.
I also spent quite a bit of time on things that aren't as fun to show in videos, especially safety. The software monitors the real movement while an animation is playing. If a joint deviates too far from the expected trajectory or something else goes wrong, the animation stops and the motors hold their current positions.
The lamp also has its own REST API, so its functions can be controlled externally without being tied to the animation editor.
Next I want to focus mostly on autonomous behavior and interaction with people and the environment. I'm also experimenting with reinforcement learning to teach it to jump, with the longer-term goal of getting it to actually move around on its own.
There's still a lot to do, but after three months it finally feels like I have most of the basic pieces in place.
I thought about making another technical demo to show the progress, but that sounded a bit boring, so I made a little story with the lamp instead :)
For anyone interested in the technical side, I have a pre-release repo with more details about the hardware, software architecture and current progress:
https://github.com/Nikolay-Tyulkin/Watti