Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Agent And Clients

Talos uses one robot-side agent and one or more developer-side clients.

Agent

talos-agent is responsible for:

  • Loading talos-agent.toml.
  • Starting configured UDS and QUIC listeners.
  • Creating and spinning the ROS 2 node.
  • Subscribing to configured ROS 2 topics.
  • Converting supported ROS 2 messages into DynValue.
  • Answering graph queries for topics and nodes.
  • Publishing joint commands when control is configured.
  • Tracking client subscriptions and routing topic data.

The agent runs the ROS 2 bridge and IPC servers as async tasks. ROS 2 callback paths send converted topic data through a channel into the router, avoiding blocking the callback on client I/O.

Clients

talos-cli and talos-tui both use the ProtocolClient trait from talos-common.

Clients send control requests such as ListTopics, ListNodes, Subscribe, Unsubscribe, SetJointPosition, and ExecutePose. Topic data is received separately through the session interface.

Subscription Model

Clients do not receive all topic data automatically. They must subscribe to the topics they want.

This matters for remote links and high-rate topics. A CLI command echoing one topic should not pay the cost of receiving every other topic. The TUI normally subscribes to all discovered topics because its purpose is broad observation.

Client Lifetime

Each client connection gets a router entry with its own subscription set. When the client disconnects, the agent deregisters it and drops the routing state for that session.