Skip to content

ubuntu-robotics/ros2-roscon25-demo

Repository files navigation

Canonical Observability Stack (COS) on Jetson AGX Thor

This ROSCon 2025 demo shows how to instrument a Jetson AGX Thor running ROS 2 workloads with the Canonical Observability Stack (COS).

The repository includes an example of running COS to monitor Jetson AGX Thor. The reference architecture is documented at Monitor your robot fleet in the field

Architecture

Jetson AGX Thor ROSCON25 Demo

The diagram shows telemetry flowing from the NVIDIA Jetson AGX Thor into three local agents—registration, exporter, and Grafana—that forward metrics upstream. COS Lite runs on the cloud server side, where the registration and data services ingest this stream and surface dashboards such as Dashboard for Tegrastats to analyze CPU, memory, and GPU trends across the fleet.

COS for robotics: Server side

Follow these steps on a server machine:

  1. Install the server stack: sudo bash scripts/robotics-server.sh
  2. Wait for deployment to complete: juju status --watch 5s --color --relations
  3. Verify deployment: juju run traefik/0 show-proxied-endpoints
  4. Get admin password: juju run grafana/0 get-admin-password

Reference: Deploy COS for robotics server in the cloud.

COS for robotics: Jetson AGX Thor

Installation

  1. Flash your Jetson Thor with JetPack using instructions in the official quickstart guide.
  2. Install the robotics stack: sudo bash scripts/robotics-device-setup.sh

You should see logs similar to the below. Note that the registration agent asks you for the device ID and the server URL.

$ sudo bash scripts/robotics-device-setup.sh 
Setting up cos for robotics snaps..
rob-cos-demo-configuration (basic/beta) 0+git.a903c76 from Ubuntu Robotics Community✓ installed
Installed configuration snap
Please enter the device-uid:
thor_1
Please enter the rob-cos-base-url (i.e: http://192.168.0.1/cos-robotics-model):
http://192.168.7.246/cos-robotics-model
rob-cos-data-sharing (beta) 0+git.ffa1627 from Ubuntu Robotics Community✓ installed
Installed rob-cos-data sharing snap
cos-registration-agent (beta) 0+git.2260522 from Ubuntu Robotics Community✓ installed
Installed cos-registration agent snap
ros2-exporter-agent (beta) 0+git.ff41623 from Ubuntu Robotics Community✓ installed
Installed ros2-exporter-agent snap
foxglove-bridge (humble/beta) 0.8.2 from Ubuntu Robotics Community✓ installed
Installed foxglove-bridge snap
rob-cos-grafana-agent (core24/edge) 0.40.3 from Ubuntu Robotics Community✓ installed
Installed grafana-agent snap
Device setup with cos for robotics

Reference: Deploy COS for robotics agent on your robot.

This demo

  1. make build
  2. make install
  3. make start-tegrastas
  4. make start-http-scrape (in a new terminal tab)

Grafana-agent configuration

Update grafana agent configuration at /var/snap/rob-cos-demo-configuration/common/configuration/grafana-agent.river to work with this http_scrape.

prometheus.scrape "default" {
        targets = concat(
                prometheus.exporter.unix.default.targets,
                [{
                        // Self-collect metrics
                        job         = "agent",
                        __address__ = "127.0.0.1:12345",
                }],
                [{
                       // ROS 2 collect metrics
                        job         = "agent",
                        __address__ = "127.0.0.1:12346",
                }],
        )

        forward_to = [prometheus.remote_write.default.receiver]
}

Setup the dashboard

Login to the grapha dashboard, create a new one, and import tegradashboard.json to it. The dashboard will be populated with the below panels.

Tegrastats Grafana dashboard

Visit us at ROSCON25

Come say hello to our team at booth 51/52: https://roscon2025.expofp.com/?canonical

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published