A robot is a networked machine for which Airbotics could update software. It could be a robot, a drone, or a vehicle. They are effectively a collection of networked, edge devices.
Robot details.
IDs are automatically created by the robot when it provisions itself and cannot be changed.
The name of a robot is initialised to be the same as the ID, but this can be changed. You can also optionally give a robot a description, by default a robot will not have a description.
Robots will report various information which can be viewed from the dashboard:
  • The version of the agent.
  • When it was last seen.
  • Network information.

Provisioning a robot

When you build your image using meta-updater a WIC image will be placed in the tmp/deploy/images/<image_name>/ directory which can then be burned onto a bootable storage medium on your board using your favourite utility.
This image contains our agent and provisioning credentials which will be used by the agent to provision itself with Airbotics in the following steps:
  1. 1.
    A random ID for the robot will be generated by the agent.
  2. 2.
    A certificate and private key contained in the provisioning credentials will be used to establish a mutual TLS connection with our backend. This credential is used to provision multiple robots.
  3. 3.
    Assuming authentication and business logic checks pass, the provisioning credential is exchanged for a credential that is unique to the robot and will be used for the remainder of the robot's lifetime.
  4. 4.
    On our backend, a key pair and X.509 certificate is generated for the robot, both of these are returned to the robot over the TLS connection. The private portion of the key is not stored on our system, the public portion is.
  5. 5.
    The robot then stores its key and certificate and discards the provisioning credential.
  6. 6.
    Thereafter it uses own key and certificate for establishing a secure connection and verifying the integrity of software images.

Robot Status

A robots update status is an aggregate of its ECU update status (see ECU status). It allows you to see if a robot is completely up to date at a glance. A robot can have one of the following status:
All ECUs on a robot are running the latest images.
One or more ECUs on a robot are currently in the process of updating.
One or more ECUs on a robot failed to update to the latest version.
This status is will be updated as new software updates are applied to its ECUs through rollouts.

Rollout history

You can view a full history of all rollouts each robot has been apart of. Each rollout has an overall status (see rollout status) as well as a status for each robot targeted in the rollout which can be one of the following:
Rollout has been created but the robot has not been processed yet.
Rollout is not applicable for this robot. (No compatible ECUs).
Rollout is ready to be applied to the robot but the robot has not acknowledged it yet.
Robot has acknowledged the update and has started to download and install the image(s).
Robot has successfully pulled and installed the update, all ECUs are running the latest image.
Rollout was cancelled by a user.
Robot has tried and failed to download and/or install the update.
History of rollouts affecting this robot.

Deleting a robot

Robots can be deleted at any time, this will permanently remove all records of the robot in our database and revoke the certificate it uses to communicate. The agent on the robot will continue to attempt communicating with the backend unless it is removed or reconfigured.
Deleting a robot.