Record the real H1-2 state stream—without opening a command path.
This 6 KB observer runs on the Ubuntu computer already connected to a Unitree H1-2. It records 50 non-zero state samples and exits; its only robot-facing operation is subscribing to rt/lowstate.
Updated · RLSOK
Download the H1-2 observerDownload and capture once
Use the Ubuntu environment that already has Unitree SDK2 Python and normal Ethernet access to the H1-2. Do not start or change a robot session just for this capture. The v2 ZIP is 6,081 bytes and its SHA-256 is 9ef44d6888156346e87c9abd8fc4fd344ef4ea9b0f25d8f6182ea38c232c254b.
Replace enp3s0 with the Ethernet interface already connected to the robot, and point --source-root at the root of the H1-2 checkout actually in use. Version 2 requires this path so the result records the real full commit, dirty state and origin instead of guessing from the downloaded script's location.
curl -fLO https://github.com/realitywarden/rlsok/releases/download/h12-lowstate-observer-v2/rlsok-h12-lowstate-observer-v2.zip echo "9ef44d6888156346e87c9abd8fc4fd344ef4ea9b0f25d8f6182ea38c232c254b rlsok-h12-lowstate-observer-v2.zip" | sha256sum -c - mkdir rlsok-h12-lowstate-observer-v2 unzip rlsok-h12-lowstate-observer-v2.zip -d rlsok-h12-lowstate-observer-v2 cd rlsok-h12-lowstate-observer-v2 python3 rlsok_lowstate_snapshot.py enp3s0 --source-root /path/to/h12_loco_manipulation --output h12-lowstate-status.json
What the JSON records
- The exact selected source checkout when the script runs inside the H1-2 repository, including whether that checkout is dirty.
- The robot-facing interface, rt/lowstate topic, sample count, first and last non-zero ticks, and observed H1-2 mode values.
- Finite position, velocity, acceleration, estimated torque, temperature, voltage, mode and motor-state summaries for all 27 motors.
- A separate upper-body section for waist and arm indices 12–26, matching the public CorrellLab controller mapping.
The observer has no command surface
The script imports the Unitree channel factory, subscriber and H1-2 state type only. It does not import a command message, create a DDS publisher or motion-switcher client, release a robot mode, publish a zero command, or call a robot action.
That boundary applies to this observer only. A result cannot prove that every other process on the network was command-free.
Do not guess contact from raw motors
A non-zero LowState stream can establish that real robot telemetry was observed. Raw position, velocity or estimated torque does not by itself establish that a hand is caught, in contact, or ready for the next move. The JSON keeps both contact and readiness as not_inferred until the application exposes its own reviewed verdict.
Return h12-lowstate-status.json. If the command fails, return the exact command and complete terminal output; do not change the robot setup to make the observer pass.
Sources and verification scope
Source code and guides describe implementation and setup. Release notes identify reported checks and their limits. Publication alone does not establish customer use or physical-robot validation.
Frequently asked questions
Can this observer publish an H1-2 command?
No. It creates one rt/lowstate subscriber and contains no DDS publisher, command message, mode-release call or robot action API.
Does a passing JSON mean the arms are clear to move?
No. It proves only that bounded H1-2 state was observed. Contact and next-move readiness remain explicitly not_inferred.
Does this authenticate the physical robot?
No. Pair the file with the owner's confirmation of the normal physical session and selected checkout; DDS state alone is not durable hardware identity.
Continue with the relevant guide
Try the local example without an application. For setup or integration help, you can also contact us.