Help

Changelog

What changed in each release of the ARC robot client.

The newest release is first. To see which release a robot runs, use arc --version. To move to a newer one, see Install.

0.2.8

  • arc enroll. One command registers the robot with your Northstar account: arc enroll <key>, with the enrollment key from the Robots page in the console. The robot makes its own certificate and key on this machine (the key never leaves it) and keeps them, with the relay details, in ~/.config/arc/identity/. There is no sha256 to send and no relay file to copy. Run it before arc setup, which then skips the relay step. A robot that already has a filled [relay] section in robot.toml keeps working as it is and does not need to enroll.
  • Settings sync. An enrolled robot uploads its robot.toml settings when it starts, so they can be seen in the console. A setting changed in the console is written into robot.toml the next time the robot starts, and the old file is kept beside it as a backup. If the file was edited on the robot since the last upload, nothing is applied and the robot says to run arc config sync; the console then shows both versions. New commands: arc config status, arc config sync and arc config pull. arc run --local-config-only skips the check. Arm type, CAN links and camera sources are only ever set on the robot.
  • arc doctor reports the enrolled identity and the settings sync state.
  • The local policy port is off in a new robot.toml. arc setup used to write policy_port = 8766; it now writes 0. An existing robot.toml is not changed. Set a port only when Northstar asks you to run a local policy process.

0.2.7

  • Depth recording. Put depth = true on a RealSense camera in robot.toml (with record_stream = true) and every recording also gets that camera's depth: 16-bit PNG frames at 640x360 and 15 fps by default, sent to the relay behind the live traffic and the recording stream and stored beside the clip. The frames wait in ~/.cache/larp/depth-spool (1024 MB by default) and are kept across restarts until the relay has them. Off unless set. See Configure your robot for the depth_* settings. Ask Northstar before you turn it on: the relay your robot connects to must accept depth.
  • arc doctor --identify also opens the depth mode of a camera with depth = true.

0.2.6

  • Groundwork for depth recording. The connection to the relay can now carry a second, lower priority upload stream beside the recording stream. Nothing uses it yet, so robots behave exactly as on 0.2.5. Depth capture itself comes in a later release.

0.2.5

  • Recording stream: the upload no longer crawls on WiFi. A rise in round trip time now slows the upload once and then only stops it speeding up, instead of cutting the rate again and again; dropped live video and a growing send queue still cut it hard.
  • Recording stream: when the relay gives up on a clip, the robot drops that clip from its spool and moves on to the next one.

0.2.4

  • The link to the relay recovers faster and holds up better under load. A dead link is dropped after 15 s and reconnected, and an idle robot stays connected (keepalive). Control and arm telemetry are sent ahead of queued video, and an arm command is applied when its packet arrives instead of on the next tick. The robot sends its loop and uplink stats to the relay every 5 s. [relay] idle_timeout_s, initial_rtt_s and keepalive_s tune the link; the defaults are right for most networks.
  • Recording stream, off by default. With [relay] record_stream = true the robot keeps a high-quality copy of every camera frame (30 fps) while the relay is recording, in a spool on disk, and sends it to the relay beside the live video at a rate that backs off when live traffic needs the link. The live video and control are unchanged. Needs free disk for the spool (record_spool_max_mb, default 1024). See Configure your robot for record_quality, record_fps, record_spool_dir, record_upload_kbps and record_upload_adaptive.
  • [[cameras]] record_resolution = [1280, 720] captures a camera at a larger size for the recording stream and keeps the live video at 640x360. Off unless set. The camera then runs at that size all the time.

0.2.3

  • An arm that fails to open is retried until it opens (the wait doubles from 2 s to 30 s) instead of running as a mock arm that never moves. [arms] use_mock = true brings the mock fallback back for a bench with no arms. A side set to "none" (single-arm robot) is a mock either way.
  • YAM arms hold their own weight while they start: the startup and gripper-calibration hold now carry the gravity torque of the pose the arm is in, so an arm left off its rest no longer sags past the 0.05 rad startup check ("Arm moved beyond ..."). That error now names the joint and how far it moved. Ships with i2rt 1.1.1.

0.2.0

  • arc setup writes robot.toml. No more copying yam.toml and editing blanks by hand. --relay-config FILE imports the relay values, --answers FILE with --non-interactive scripts the whole run.
  • arc doctor --identify confirms which device is in which role.
  • arc doctor fails when two camera slots name the same device or both arms name the same CAN link.

0.1.1

  • Each [[cameras]] entry accepts isolation ("process", the default, runs the camera worker in its own process so a stalled camera cannot hold up the arms; "thread" is the 0.1.0 behavior), restart (default true, respawns a failed worker) and restart_backoff_s (default 5, doubles per attempt up to 60). When a camera fails the arms go to HOLD, the operator is told which camera, the camera restarts on its own and video resumes. The client keeps running.
  • [arms] accepts startup_fault_reset = true (YAM only, off by default). It clears one latched 0xD communication-loss fault per motor at startup, for the case where the client was restarted while the arms stayed powered.
  • Session logs. See Run as a service.

Configure your robot lists the settings.

On this page

Robot client 0.2.8
docs.northstarrobotics.ai