All projects
Robotics
In development
Cruzr Fleet — managing guide robots
Our own server, web console and on-screen app for a fleet of 12 UBTECH Cruzr 1S humanoid robots
- My role
- Lead developer: server, console, Android
- Period
- 2026 — now
- Client
- Centre of Islamic Civilization in Uzbekistan
The Centre of Islamic Civilization bought 12 UBTECH Cruzr 1S humanoid robots, and our team is turning them into guide robots. Out of the box the robot depends on the vendor's cloud, so we are gradually moving the whole fleet to our own management system and our own servers.
I started from scratch: studied the robot's SDK, firmware and ROS layer, reverse-engineered the motion and map formats, and then wrote the three parts of the system — a Django fleet server, a web console for operators and the app on the robot's screen. They talk over our own WebSocket protocol.
What I did
- A fleet server instead of the UBTECH cloud: robot pairing with device keys, a WebSocket protocol, roles and sites, an audit log
- Control from the browser: keyboard driving, an obstacle radar from the lidar and ultrasonic sensors, video and audio from the robot over LiveKit
- Map editor: points, walls, zones, grid edits, several charging stations, versions and deployment to the robots
- The app on the robot's screen (Kotlin, Android 5.1): PIN, motions, manual driving, map scanning with a live preview, docking
- Took the robot apart from scratch: Android SDK, ROS Melodic, firmware, the motion and USLAM map file formats
- A catalogue of 136 motions verified on the robot, annotated for an LLM agent
- A fake robot and end-to-end console tests in Playwright