Quick Start Guide
=================
Launch the full ROBIN stack and see live telemetry in under two minutes.
What You Will See
-----------------
By the end of this guide you will have:
* A complete FIWARE data layer (Orion-LD, TimescaleDB, Mintaka) running in Docker
* The **Alert Engine** (FastAPI) serving deviation detection and AI predictions
* The **ROBIN Dashboard** (React) showing live KPIs, time-series charts, robot
control, 3D visualisation, and deviation monitoring
* A **3D Visualization** server (Viser) rendering a UR5 robot with live
welding animation driven by simulation progress
* Simulated process telemetry flowing through the entire stack in real time
.. mermaid::
graph LR
subgraph stack ["docker compose up -d"]
ORION["Orion-LD
Context Broker"]
TSDB[("TimescaleDB")]
MINTAKA["Mintaka
Temporal API"]
ALERT["Alert Engine
+ AI Model"]
VISER["Viser
3D Visualization"]
DASH["ROBIN Dashboard"]
end
SIM["Simulation
Script"] -->|NGSI-LD| ORION
ORION --> TSDB
TSDB --> MINTAKA
ALERT --> ORION
ALERT --> MINTAKA
DASH --> ALERT
DASH -->|WebSocket| VISER
Prerequisites
-------------
* **Docker** and **Docker Compose** installed and running
* **Python 3.12+** with `Poetry `_
* ROBIN dependencies installed (``poetry install``)
See :doc:`installation` for full setup instructions.
Step 1 - Launch the Stack
-------------------------
.. code-block:: bash
docker compose up -d
Verify all services are healthy:
.. code-block:: bash
docker compose ps
.. list-table::
:header-rows: 1
:widths: 30 15 55
* - Service
- Port
- Role
* - ``orion-ld``
- 1026
- NGSI-LD context broker (FIWARE)
* - ``mongo-db``
- 27017
- Orion-LD persistence
* - ``timescaledb``
- 5433
- Temporal storage (TROE)
* - ``mintaka``
- 9090
- Temporal query API
* - ``alert-processor``
- 8001
- Process Intelligence API (Module 1)
* - ``robin-dashboard``
- 5174
- Operator Dashboard (Module 2)
* - ``robin-viser``
- 8081, 8082
- 3D Visualization (Viser + WebSocket bridge)
* - ``vulcanexus``
- -
- ROS 2 / DDS bridge container
Quick health check:
.. code-block:: bash
curl http://localhost:8001/health
Step 2 - Open the Dashboard
----------------------------
Open http://localhost:5174 in your browser.
.. image:: _static/screenshots/dashboard-live-ops.png
:alt: ROBIN Dashboard - Live Ops cockpit
:align: center
:width: 100%
This is the **Live Ops** cockpit - the main operator view. It's empty right
now because no data is flowing yet. For a full walkthrough of every panel, see
:doc:`user_guide/dashboard`.
Step 3 - Start a Demo
----------------------
Run the canonical welding demo (parameter-driven mode). The script will
create the process, configure AI expectations, then **wait for you to
press Start from the dashboard UI** before streaming data:
.. code-block:: bash
python demo/profiles/welding_profile.py \
--process-id demo-quickstart \
--mode parameter_driven \
--duration 60 \
--interval 0.3
The terminal will print::
Waiting for Start from the dashboard UI for process "demo-quickstart"...
Open http://localhost:5174, select process "demo-quickstart", and press Start.
Step 4 - Press Start
---------------------
1. In the dashboard, select **demo-quickstart** from the process selector
dropdown in the top bar.
2. Click the **Start** button in the Robot Control panel.
3. The simulation script detects the start signal and begins streaming
telemetry.
You will see:
* The **progress bar** advancing in real time with the actual simulation
progress (elapsed time / total duration).
* **Telemetry charts** and **KPI cards** updating live.
* The **3D visualization** showing the UR5 robot performing a welding sweep
along the seam, driven by the simulation progress.
* **Deviation alerts** firing during injected deviation windows.
.. tip::
Use ``--no-prompt`` to skip the Start-button wait and stream data
immediately (useful for CI or scripted verification runs).
.. image:: _static/screenshots/dashboard-with-data.png
:alt: ROBIN Dashboard - process selector with multiple processes
:align: center
:width: 100%
Step 5 - Clean Up
------------------
Remove demo data without stopping the stack:
.. code-block:: bash
./demo/cleanup-demo.sh demo-quickstart
Or tear everything down:
.. code-block:: bash
docker compose down -v
After Code Changes (Rebuild + Sanity Check)
-------------------------------------------
If you changed ``robin/``, ``robin-dashboard/``, or ``robin-ui/services/``, refresh
the running services:
.. code-block:: bash
docker compose build alert-processor robin-dashboard robin-viser
docker compose up -d --force-recreate alert-processor robin-dashboard robin-viser
Then run a short verification demo and confirm UI data source/cadence:
.. code-block:: bash
BASE="verify-$(date +%s)"
python demo/profiles/welding_profile.py \
--process-id "$BASE" \
--mode both \
--duration 60 \
--interval 1 \
--no-prompt
In the dashboard (``http://localhost:5174``), select ``${BASE}-parameter`` and
``${BASE}-geometry`` and verify the Telemetry panel shows:
* **Mintaka stored data** source chip
* **Poll 1s** (Active Run) or **Poll 2s** (Demo Mode)
API confirmation:
.. code-block:: bash
curl -s "http://localhost:8001/process/${BASE}-parameter/measurements?last=5" | jq '.debug_info.source'
Expected:
.. code-block:: text
"mintaka"
What's Next
-----------
Now that the stack is running, explore ROBIN in depth:
* :doc:`user_guide/dashboard` - full walkthrough of every dashboard panel
* :doc:`user_guide/api` - REST API exploration and process lifecycle management
* :doc:`user_guide/ai_models` - AI model management, training, and trust
* :doc:`user_guide/profiles` - switch domain profiles (welding, spray coating, ...)
* :doc:`user_guide/demos` - canonical welding/spray dual-mode demos