Expertise · Robot Systems
Software for robots: the layer that decides movement, the vision module and the hearing module. Today we have offline verification and simulation — we have nothing that commands a real motor.
We write kinematics, trajectory verification and reproducible physical simulation, with gates that block when the proof is missing. For vision we have a prototype on a fixed camera, not on a robot. For audio on the robot we have nothing built, and the page says that instead of borrowing evidence from telephony. We do not work with ROS.
An offer, with conditionsI ran everything that can be run today. The control layer exists and is serious, but it is offline: an in-house kinematics module for a six-axis arm, which solved 8,400 out of 8,400 trajectory points, and a physics validator on MuJoCo 3.10.0 with 34 tests passed, plus 14 tests on the visualisation side. Both state in their own source that they have no transport to hardware and cannot command a real robot. In plain view we have an in-house prototype — detection and tracking of people on a fixed IP camera — with a single commit and an empty test directory. On robot audio we have zero: everything on disk is call-centre voice or a third-party telephony library, and the only in-house acoustic work ended with a negative result, written in the application. ROS: zero installed, zero written. The rule requires at least two in-house implementations for “we did”; I have them on control, but none reaches hardware, and the other two layers of the service are below the threshold. So: an offer with conditions, with the boundaries drawn.
A robot’s software has three layers that break in different ways: what it sees and hears, what it decides, and what it sends to the motors. On the first two we have our own work with tests that run. On the third — the bridge to hardware — we have nothing, and that is the boundary of the service, not an implementation detail. Two of our code files say this in their own header, in English, precisely so they cannot be misread: the kinematics module has no transport to hardware and cannot command a real robot.
What exists on the movement side is verification before movement. A proprietary module calculates forward kinematics, the Jacobian and inverse kinematics for a six-axis arm, with a margin imposed against the limits of each axis, and it was used to verify a full path: 8,400 requested points, 8,400 solved, with the maximum axis speed remaining below 8% of the catalogue limit. Separately, a physics validator runs on MuJoCo 3.10.0 on the processor, with a calculation step of one millisecond, in six scenarios, each twice, with the same seed — and the two runs produce identical fingerprints. Determinism is not a statement, it is a checksum comparison.
What exists on the vision side is less, and it is honest to say how much. An in-house prototype does person detection and tracking on IP camera streams, with a small detector from the YOLO family, a multi-object tracker, pose estimation for five states, and pan-tilt-zoom camera control. It has a single commit and an empty tests directory. And the difference between this and a robot’s vision is real, not formal: the camera on a robot moves with it, the scene is close, exposure changes at every step, and the latency budget is different, because the image must reach a motion decision, not a screen. We do not have a depth camera, we do not have camera calibration, we do not have visual odometry.
On the audio side for robots, we have nothing built, and we will not borrow evidence from elsewhere. We have real voice work for telephony and for conversational assistants, but a microphone on a robot has different problems: the machine’s own noise, fans and servos that start exactly when the robot moves, the direction from which the voice comes, reverberation in the room and variable distance. The only in-house acoustic work we have ended with a negative result, written in the application, and we publish it as such — because a measured negative result is more useful than a promise.