bool
default:"False"
Ask for a cloud recorder when recording starts. Needs a meeting id.
float
default:"90.0"
How long to wait for the recorder to report in. Past this the state becomes
failed and the session carries on recording locally.Where it goes
Episodes are uploaded to the storage configured for your VideoSDK account. Set that up on the API keys page, and every session after that follows it with no change to your code.The local copy is written either way. Cloud recording adds a second copy, it
does not replace the one on the robot.
States
follower.cloud_recording_state tracks the recorder.
Episodes cannot open while the state is
requested or starting.
start_episode() returns None and logs why, rather than opening an episode
nobody is recording.
failed does not close the gate. A cloud failure drops back to local-only
recording and never stops teleoperation, so episodes keep opening and the
local copy stays complete.Events
once, on ready
The recorder is live. Fires on the transition only, not on every heartbeat.
on every change
The state above, with a reason string when there is one. This is the one to
put on an operator screen.
On the leader
arm_when_aligned() waits while the recorder is coming up, so arming looks like
it stalls for a few seconds on the first episode. That is deliberate: it holds
with the operator’s hands already on the arm rather than arming into a refused
episode.
leader.cloud_recording_state mirrors the recorder as None, "starting",
"running" or "failed", so you can show progress while it waits.
Related
Recording
What a session saves and how episodes are bounded.
Recording format
The files a session writes, and the drop counters to check.