Observe the EROB left-arm state path during a normal session.
The EROB maintainer asked how a first Shadow check would fit his real left-arm ros2_control setup. The public hardware launch loads a real EtherCAT-backed left-arm plugin and a mock right arm/head. This RLSOK reader listens to existing ROS topics only; it does not start that launch or touch EtherCAT.
Updated · RLSOK
Download the EROB read-only observerUse only an already-running owner-approved left arm
The public source at daffacd0 uses ROS 2 Humble. hardware.launch.py loads RealLeftArm with erob_hardware/ErobHardwareInterface and starts joint_state_broadcaster; its MoveIt demo has a separate fake-hardware path. The maintainer has not yet approved or run this exact observer on his physical arm.
Do not start hardware.launch.py, enable drives, activate a controller or move the arm for this check. It creates a subscriber node for /robot_description and /joint_states, with no service client, command publisher or EtherCAT access.
One capture in the existing ROS session
The 20,211-byte ZIP has SHA-256 695d79ccdb825c10b22a275a1f286d6e7f8ae9ec9c5261ccff58f881418341cd. Open a second terminal in the same ROS domain, source the existing Humble workspace and pass the checkout actually used. The output file must not already exist.
curl -fLO https://github.com/realitywarden/rlsok/releases/download/erob-left-status-observer-v1/rlsok-erob-left-status-observer-v1.zip echo '695d79ccdb825c10b22a275a1f286d6e7f8ae9ec9c5261ccff58f881418341cd rlsok-erob-left-status-observer-v1.zip' | sha256sum -c - unzip rlsok-erob-left-status-observer-v1.zip -d rlsok-erob-left-status-observer-v1 source /opt/ros/humble/setup.bash source /path/to/erob_ws/install/setup.bash cd rlsok-erob-left-status-observer-v1 python3 experimental/composable-shadow/erob_status.py \ --source-root /path/to/erob-ros2-control \ --output erob-left-status.json
What the result means
The reader requires a live robot description declaring the seven-joint RealLeftArm plugin and a newly received /joint_states sample with all seven left-arm positions. It rejects ambiguous publisher endpoints and mismatched message GIDs; unresolved middleware node names are kept explicit rather than guessed. Eight focused synthetic checks passed, but this release has not been run on the EROB ROS graph or physical arm.
The JSON cannot prove EtherCAT OP state, physical arm identity, loaded checkout, fresh motor motion or safe command execution. If the owner chooses to use it, the JSON plus the owner's separate confirmation of the normal physical session would establish the first read-only connection. A single capture is not repeat use.
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
Does this launch or move the arm?
No. It only subscribes to two topics that must already exist. Do not start the real-hardware launch solely to use RLSOK.
Does the JSON prove the EtherCAT motors are real and ready?
No. It records a ROS sample beside a description declaring the real plugin. The owner must separately confirm the physical session; OP state and motor identity are not authenticated.
Continue with the relevant guide
Try the local example without an application. For setup or integration help, you can also contact us.