---json
{"name": "Scenarios dashboard"}
---
====== ROS 2: optional scenarios dashboard ======
Use the browser guide to learn commands, inspect interfaces and follow the ROS graph. Run the commands in the console; **the driver, acquisition and RViz work independently of the dashboard**.
===== Scenario view =====
{{ :axiom:ros2:ros2-thermal-graph-7e5bec9.png?nolink&760 |Thermal sensor grid through the visualiser to RViz}}
//Reference data flow for the thermal scenario. The dashboard pairs each console command with an explanation and expected result; the live interface supplies discovered sensor paths.//
===== Build and open the guide =====
First complete [[:axiom:ros2:getting_started|Install and connect]] so the ROS installation and local machine/board configuration are ready. The dashboard packages are optional examples in the same repository. If rebuilding while drivers or visualisers are running, stop their acquisition and processes first, then restart them after the build.
On the Linux ROS host, use the checkout's actual absolute path in place of ''/path/to/axiom-ros2'' below. Run ''pwd'' at the repository root to find it:
cd "/path/to/axiom-ros2"
source scripts/setup_env.sh
rosdep install --from-paths src examples/scenarios-dashboard/src --ignore-src -r -y
colcon build --base-paths src examples/scenarios-dashboard/src --symlink-install
source scripts/setup_env.sh
bash examples/scenarios-dashboard/scripts/dashboard.sh
Open **http://127.0.0.1:8083** in a browser on that Linux machine, or use the port in ''machine.env''. The guide wrapper loads the same machine settings and board file as the consoles. Starting it does not start Axiom drivers or request measurements. The wrapper stays in the foreground; leave that terminal running and use another terminal or pane for ROS commands. The web server listens on the host's loopback address by default. To view it from another computer while keeping that default, use an SSH tunnel from the viewer computer:
ssh -N -L 8083:127.0.0.1:8083 USER@ROS_HOST_IP
Replace ''USER'' and ''ROS_HOST_IP'' with your SSH login and the ROS host's address. Open ''http://127.0.0.1:8083'' on the viewer computer while the tunnel runs. If you changed the dashboard port, substitute that port in both the tunnel and URL. Viewing from the ROS host itself needs no tunnel.
The example has ''COLCON_IGNORE'' so a default recursive build skips it. Supplying ''examples/scenarios-dashboard/src'' explicitly includes it. The dashboard's package name is ''axiom_marty_dashboard'', and the RViz example package is ''axiom_marty_demo''; neither requires a Marty for Axiom-only scenarios.
===== Dashboard tabs =====
^ Tab ^ Use it for ^
| **Available** | The interface catalogue: what the packages can expose and how topics, services and nodes relate. |
| **Running graph** | Nodes and endpoints discovered in this ROS session, including publisher/subscriber arrows. |
| **Commands** | Console commands grouped by purpose. Copy a command, then run it in a terminal. |
| **Scenarios** | Workflows from setup to cleanup. Start with one expanded step or choose Expand all. |
The board selector scopes command examples to a configured namespace. Read each recipe before running it: example sensor paths, USB ports or Wi-Fi addresses must match your hardware. The USB + Wi-Fi scenario uses its own generated configuration with automatic connection and acquisition; the normal [[:axiom:ros2:automatic_startup|automatic startup]] also connects and acquires by default. Recipes that teach manual connection must explicitly set all three startup flags false. Do not run it alongside another driver connected to either board. Before running that scenario's configuration recipe, set your endpoints in the **same terminal that will run the recipe**:
export AXIOM_ROS_TRANSPORT=serial
export AXIOM_ROS_SERIAL_PORT='/dev/serial/by-id/REPLACE_WITH_USB_AXIOM'
export AXIOM_WIFI_IP='REPLACE_WITH_WIFI_AXIOM_IP'
The recipe writes ''~/usb_wifi_axioms.yaml'' with ''axiom/front'' and ''axiom/rear'' namespaces. Review that file before launching it; the recipe does not automatically reuse the two endpoints from your usual ''boards.yaml''. Click **ⓘ** beside a command or interface for its purpose, arguments or message/service details.
===== Sensor paths in copied commands =====
Current sensor measurements use ''%%//_b_/