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:
manipulatorRobotic arms and pick-and-place systems. Defaults to joint-state input topics.
mobileGround vehicles and AMRs. Defaults to /cmd_vel and /odom topics.
aerialDrones and UAVs. Uses IMU + camera input by default.
humanoidFull-body humanoid platforms. Multi-modal sensor fusion.
customAny 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:
onlineAgent is connected and the heartbeat is current (within 60 s).
offlineNo heartbeat received. The robot may be powered down or unreachable.
deployingA model update is currently being pushed to the robot.
errorThe agent reported an unrecoverable error. Check logs.
maintenanceManually 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:
# 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_b5c6d7e8Deploy a model to the entire fleet in one command:
kairo deploy push \
--model mdl_abc123 \
--fleet flt_xyz123--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:
# ~/.kairo/config.yaml
agent:
heartbeat_interval: 15 # seconds (min: 5, max: 300)