Devices
Connect robots and sensors through the edge agent, the ROS 2 bridge or MQTT, and send them commands.
A device is anything in the field that produces telemetry or accepts commands: an AMR, a robot arm, a drone, a fixed sensor. Devices connect through the edge agent, which runs on a gateway at each site.
Install the edge agent
The agent runs on arm64 or x86_64 Linux with 1 GB of free memory and 10 GB of disk for offline buffering.
curl -fsSL https://get.consciouslab.xyz/edge | sudo sh
sudo consciouslab-edge enroll --site rotterdam-dc2 --token "$CL_ENROLL_TOKEN"
Create the enrolment token in Robotics, Sites, Add gateway. Tokens are single-use and expire after one hour. The agent connects outbound over port 443 with mutual TLS; no inbound ports are needed.
Connect ROS 2 devices
The agent joins your DDS domain as an ordinary participant and forwards the topics you map. ROS 2 Humble and Jazzy are supported.
# /etc/consciouslab/edge.yaml
ros2:
domain_id: 42
topics:
- match: /amr_*/battery_state
type: sensor_msgs/msg/BatteryState
channel: battery.percent
field: percentage
scale: 100
rate_hz: 1
services:
pause: /{ns}/pause
resume: /{ns}/resume
dock: /{ns}/return_to_dock
estop: /{ns}/emergency_stop
The namespace becomes the device ID, so /amr_0398/... registers as AMR-0398. DDS traffic never leaves your network.
Connect MQTT devices
Point devices at the agent's local MQTT 5 broker on port 8883 and publish to devices/<id>/telemetry/<channel> with a JSON or numeric payload.
Commands
curl https://api.consciouslab.xyz/v1/robotics/devices/AMR-0398/commands \
-H "Authorization: Bearer $CL_API_KEY" \
-d '{"command": "pause", "reason": "Motor temperature above 60 °C"}'
Commands are authorised in the cloud and again at the edge. The e-stop is never subject to approval policies. Every command is written to the audit log with the actor and reason.
Firmware
Upload signed firmware images in Robotics, Firmware and roll them out in stages: 1%, 10%, then all matching devices. A rollout halts automatically if the fault rate in a stage exceeds the fleet baseline by more than two standard deviations.