COS for robotics components¶
The COS for robotics is meant to monitor your devices. This means that we have a server hosting all our applications and devices sending data to our server.
The server side, based on COS Lite is relying on Juju to orchestrate and MicroK8s to scale your applications. For the devices, all the components are snaps and can run on an Ubuntu machine or in the OS for robotics Ubuntu Core.
Server components¶
The charmed operators that make up COS for robotics are available as the pre-configured COS for robotics bundle. COS for robotics is made up of the following Juju charmed operators:
Additionally, you can package your own cloud application as a charm and deploy it along COS for robotics.
cos-registation-server-k8s
¶
The cos-registration-server-k8s
operator is the first entry point for devices.
With this server, devices are going to register themselves and upload their configurations.
The cos-registration-server-k8s
is then synching all the configurations to the appropriate applications
(Grafana, Prometheus, Loki, etc.).
Additionally, the operator offers a UI for the user to retrieve devices and the corresponding visualization.
The cos-registration-server-k8s
is a charm for the cos-registration-server
working in complement with the cos-registration-agent
.
foxglove-studio-k8s
¶
The foxglove-studio-k8s
operator is the charm of the former open-source version of
Foxglove Studio.
The charm is meant to work with the foxglove-bridge
snap.
The operator can be used to access live ROS data with the foxglove-bridge
or
to load bag files from the ros2bag-fileserver-k8s
.
ros2bag-fileserver-k8s
¶
The ros2bag-fileserver-k8s
operator is used to store robotics data from devices.
Robots are pushing data over SSH.
The robotics data (ROS 2 bags),
can latter be accessed with the file-server (Caddy) exposed by the operator.
Additionally, the file-server has a UI so you can access the files and their links to provide them
to other applications (i.e. Foxglove Studio file entry).
The charm is meant to work with the ros2-exporter-agent
.
Note
If the space on your server is limited, make sure to clear periodically the data stored by the ros2bag-fileserver-k8s
.
COS Lite components¶
COS for robotics is extending COS Lite and thus include its applications:
Note
More information about the COS Lite components can be found in the COS Lite documentation.
Devices components¶
The snaps that make up COS for robotics are available on the Snap Store. COS for robotics is made up of the following snaps:
Additionally, you can package your own device application as a snap and deploy it along COS for robotics snaps.
cos-registration-agent
¶
The cos-registration-agent
snap is the single component directly talking to the cos-registration-server
.
It’s making sure the device configuration is propagated to the server.
It’s reading its configuration from the rob-cos-demo-configuration
.
Additionally, it exposes some data to the rob-cos-data-sharing
.
foxglove-bridge
¶
The foxglove-bridge
snap is meant to directly communicate with the foxglove-studio-k8s
.
The snap is packaging the official ros-foxglove-bridge
.
It is reading its configuration from the rob-cos-demo-configuration
.
### ros2-exporter-agent
The ros2-exporter-agent
snap is recording ROS 2 bags and sending them to the ros2bag-fileserver-k8s
.
The snap takes care of recording bag, sending them to the server and then clean old ROS bags.
It is reading its configuration from the rob-cos-demo-configuration
.
Additionally, the snap reads credentials from the rob-cos-data-sharing
.
rob-cos-data-sharing
¶
The rob-cos-data-sharing
snap is an almost empty snap.
It is simply used to share data between different snaps, from the cos-registration-agent
to the ros2-exporter-agent
.
The data currently shared with the rob-cos-data-sharing
are: a UID file as well as an SSH public and private key.
rob-cos-grafana-agent
¶
The rob-cos-grafana-agent
snap is packaging the official grafana-agent
.
The snap is used to send data from the system as well as logs to different applications (Prometheus, Loki, etc.).
The grafana-agent
is configured in Flow mode.
It reads its configuration from the rob-cos-demo-configuration
.
rob-cos-demo-configuration
¶
The rob-cos-demo-configuration
snap is an example snap providing the configuration to all the COS for robotics snaps.
The snap is meant to be used as a reference but could be used to try COS for robotics on your devices.
You can find details about how-to write your own configuration file in the documentation: Write configuration snap for COS for robotics.