docs/concepts/robots & fleets

Robots & Fleets

Learn how Artemis models robots, organises them into fleets, and tracks their health in real time.


What is a Robot?

In Artemis, a robot is any ROS 2-compatible device or system registered to your account. This includes physical hardware, cloud simulation instances, and virtual ROS 2 nodes running on bare-metal servers.

Each robot has a unique ID (e.g. rob_a1b2c3d4) that persists across reboots and firmware updates. You can rename, reassign, or archive robots at any time from the dashboard or the CLI.

Robot Types

Artemis supports any ROS 2 system but recognises several built-in types that pre-configure sensible defaults for topics, QoS, and model architecture selection:

manipulator

Robotic arms and pick-and-place systems. Defaults to joint-state input topics.

mobile

Ground vehicles and AMRs. Defaults to /cmd_vel and /odom topics.

aerial

Drones and UAVs. Uses IMU + camera input by default.

humanoid

Full-body humanoid platforms. Multi-modal sensor fusion.

custom

Any other ROS 2 system. All topics configured manually.

Robot Status

Each robot reports a live status that is visible in the dashboard and queryable via the API:

online

Agent is connected and the heartbeat is current (within 60 s).

offline

No heartbeat received. The robot may be powered down or unreachable.

deploying

A model update is currently being pushed to the robot.

error

The agent reported an unrecoverable error. Check logs.

maintenance

Manually set — robot is taken out of fleet rotation.

Fleets

A fleet is a logical grouping of robots within a workspace. Fleets let you deploy models to multiple robots at once, set shared configuration, and view aggregated telemetry.

Create a fleet and add robots to it:

bash
# Create a fleet
kairo fleet create --name "warehouse-arm-cluster"

# Add robots to a fleet
kairo fleet add --fleet flt_xyz123 --robot rob_a1b2c3d4
kairo fleet add --fleet flt_xyz123 --robot rob_b5c6d7e8

Deploy a model to the entire fleet in one command:

bash
kairo deploy push \
  --model mdl_abc123 \
  --fleet flt_xyz123
Fleets support staged rollouts. Use --rollout-percent 20 to deploy to 20% of the fleet first, then monitor before completing the rollout.

Heartbeat & Connectivity

The Artemis agent sends a heartbeat to api.kairo.devevery 30 seconds by default. This heartbeat carries the robot's current status, active model version, and basic resource metrics.

Adjust the interval in your config:

yaml
# ~/.kairo/config.yaml
agent:
  heartbeat_interval: 15   # seconds (min: 5, max: 300)
Artemis never opens inbound connections to your robot. All communication is initiated by the agent (outbound HTTPS), so you do not need to open firewall ports.
Was this page helpful?