The Agent is an open-source program that always runs on your robots, it manages communication between the Airbotics cloud and ROS 2 (and optionally the Docker daemon) on your robot.
- Ubuntu 22.04 Jammy Jellyfish.
- ROS 2 Humble.
- Docker Engine (optional).
Install the latest release from
It is best practice to create Python venv before installing.
pip3 install airbotics-agent
Ensure you’ve created a new robot and set the following environment variables before you attempt to run the agent for the first time.
export AIR_TENANT_UUID="0000000-*****-******-******" export AIR_ROBOT_ID="my-bot" export AIR_TOKEN="art_************************"
You can then start the agent from the terminal:
In production, you may want to consider a robust process management system such as systemd to manage the lifecycle of the agent.
The following flags can be passed to the agent:
|Log at the debug level and above.|
|Daemonize the agent and detach from terminal. Log output is written to |
Config can be set from:
Any configuration set with environment variables will overwrite variables in the
The following config can be set:
|The ID of robot|
|The ID of the tenant who owns the robot|
|Auth token for robot to authenticate with|
|Connect agent to the docker daemon|
|The MQTT host|
|The MQTT port|
|The MQTT keep alive in seconds|
|Container registry url|
|Container registry username, if using private repos|
|Container registry password, if using private repos|
The agent will parse configuration from environment variables.
The agent will also look in
~/.airbotics/config.toml for configuration.
config.toml is completely optional and is provided for convenience.
The agent produces logs at the following levels:
|Verbose information for debugging, visible with |
|General information about expected agent execution.|
|Warnings arising from unexpected situations that are not serious.|
|Errors arising from situations that affect the agent execution.|
|Critical errors arising from extreme situations that cause agent termination.|
Logs are always written to
When the agent is run without the
--daemonize flag, logs will also be displayed on the console.
There are 3 conditions that produce critical errors and result in the agent terminating:
AIR_TOKENare not set in the configuration.
- ROS 2 libraries cannot be imported.
AIR_ENABLE_CONTAINERSis set to
trueand the Docker daemon cannot be reached.
- Initial release.
- Added configuration to vitals allowing collection to be toggled.