Skip to content

v2.9.2 — Rest: the sleep mode this robot does not have

Latest

Choose a tag to compare

@PHCsubOceana PHCsubOceana released this 06 Sep 18:30

Rest — the sleep mode this robot does not have

Switched on, a Sirius heats continuously: lying down, its fourteen servos are still working — 307 ‰ of commanded load, and the robot's rear hot to the touch, because it is the shoulders that carry. lie_default_idle is not a resting position, it is an actively held pose, front legs in the air.

A new card in Robot life lays the robot down and cuts the torque on all fourteen motors. The load drops to 5 ‰ and gravity decides the posture.

Three precautions are wired into it:

  • waking is proven before sleeping — maximum torque is sent back first, and nothing is cut if the service does not answer;
  • the robot is always laid down first — cutting the torque while standing makes it collapse;
  • the autonomy is silenced first, and given back on waking. Without that, every idle animation sends maximum torque back and the whole thing loops down/up/down.

The robot stays stiff to the touch: at zero torque the windings are shorted, which brakes without spending anything. Switched off, the legs hang loose — that is how we found out.

The tools open on top of the interface

Six pages were served without a single link leading to them: they existed, they were translated, and you had to know their address. A Tools button now opens each of them in a frame laid over the interface, with a close button and a "Full page" link — nothing navigates away.

This was the third time a page shipped with no entry point. A check now forbids it: verif_coherence.py compares the helper's page routes against whatever cites them and refuses the release if one is unreachable. It was tested on a rigged kit before being trusted.

The 18-LED organ actually works

It shipped broken, in two ways that said nothing: the microphone stream was stored in a read-only property — the exception was swallowed, and the microphone mode had never started — and the analysis loop ran on requestAnimationFrame, which does not run when the tab is in the background.

The page now says when its channel fails to open, distinguishes "no sound heard" from "sound heard, output dark", and starts with settings that light something up on a laptop microphone. Full chain verified on the robot: the 12 head LEDs and 6 body LEDs are addressable one by one.

A sound meter, and what it measured

A servo that whines is a servo being powered — and on a machine with no current sensor, that whine is the only instantaneous indicator of consumption there is. A new page turns it into a measurement: spectrum above 2 kHz, reference silence, and the prominence of a line rather than its level.

It also produced a clean negative. Below 8 kHz — the ceiling of the robot's own 16 kHz recorder — no sustained line appears when the torque comes back. The whine lives above that, which is consistent with adults not hearing it and young ears finding it unpleasant.

Documentation

Two new publications, in French and English, on rest and heat — including what we failed to measure and why.

A major correction to the README on how to read the IMU: do not read roll and pitch from the quaternion. With no magnetometer, yaw drifts freely and that drift enters the Euler decomposition — the same action replayed twenty minutes later returned the same amplitude and the same gain with a direction rotated by 208°. Read tilt from the accelerometer, and only at rest.

Two new README sections: action files can be written, not just played; and there is no sleep mode, nor any way to watch your motors.


Full details in tool/README.md (What's new in v2.9.2), tool/LISEZMOI.md and docs/.

Studio 360 for Sirius is independent work by explorations360. The robot's official application is Hengbot's, and this project does not come from them.