Secure WebSocket server (WSS) that receivesDocumentation Index
Fetch the complete documentation index at: https://docs.almond.bot/llms.txt
Use this file to discover all available pages before exploring further.
VRFrame JSON messages from the VR app. A self-signed TLS certificate is auto-generated in ~/.almond/vr/certs/ on first use. This module can be used standalone to read raw VR data without full teleoperation — useful for custom control loops or data collection.
VRFrame fields
| Field | Type | Description |
|---|---|---|
l_ee / r_ee | VRPose | 6-DOF end-effector pose (position + quaternion) |
l_elbow / r_elbow | VRPosition | 3D elbow positions |
l_grip / r_grip | float [0, 1] | Gripper commands |
l_lock / r_lock | bool | Deadman switches |
reset | bool | Rising edge triggers a reset move |
state | VRState | TELEOP, DATA_COLLECTION, or RECORDING (headset-driven); SAVING and ERROR are server-pushed only |
Server → headset feedback
The server can push a state override to all connected headsets at any time usingVRServer.broadcast_text(). The headset interprets messages of the form {"type": "state", "value": "saving"} as a state override that blocks recording controls. {"type": "state", "value": "error"} shows an error indicator in the headset UI. {"type": "state", "value": "data_collection"} re-enables controls after saving. The AxolVRTeleop.send_feedback_state(state) helper wraps this for all VRState values.
VRServerConfig fields
| Field | Default | Description |
|---|---|---|
port | 8000 | WSS listen port |
certfile | auto | Path to TLS certificate; None uses the auto-generated cert |
keyfile | auto | Path to TLS private key |
