Skip to content

Commit 9e5b412

Browse files
Merge pull request #16 from itk-dev/feature/roboway
feat: Add RoboWay project
2 parents ab46f17 + 0e5c205 commit 9e5b412

9 files changed

Lines changed: 1285 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
2828
- New docs pages: `/projects/design-system/diagrams` (Mermaid examples) and `/projects/design-system/data-viz` (Chart.js, Leaflet, sparklines)
2929
- Playground expanded with pastel swatches, pill/accent buttons, hero banner, quick-link tiles, three themed Chart.js charts, a Leaflet map with pins + heatmap, and sparklines in a table
3030

31+
### Added — Roboway Project
32+
- Robot fleet management prototype for Aarhus Kommune ("Last Mile" / autonomous delivery robots)
33+
- Single-page mock with seven views: dashboard, live Leaflet map, fleet overview, zone admin, incidents, analytics, and operator portal — DA/EN toggle, responsive
34+
3135
### Added — Opkrævningsoverblik Project
3236
- Consolidated municipal charges overview prototype for Aarhus Kommune citizens
3337
- Interactive mock with login, dashboard, status indicator, charge list, filtering, and 5-year history chart

CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ Taskfile.yml # Task automation (dev, build, lint
4949
| `deltag-aarhus-timeline` | Deltag Aarhus — Projekttidslinje | No |
5050
| `book-aarhus` | Book Aarhus | No |
5151
| `opkraevningsoverblik` | Opkrævningsoverblik | No |
52+
| `roboway` | Roboway | No |
5253

5354
## Conventions
5455

docs/.vitepress/sidebar.mts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,16 @@ const opkraevningsoverblik: DefaultTheme.SidebarItem[] = [
8888
},
8989
]
9090

91+
const roboway: DefaultTheme.SidebarItem[] = [
92+
{
93+
text: 'Roboway',
94+
items: [
95+
{ text: 'Overview', link: '/projects/roboway/' },
96+
{ text: 'Interactive Mocks', link: '/projects/roboway/mocks' },
97+
],
98+
},
99+
]
100+
91101
const designSystem: DefaultTheme.SidebarItem[] = [
92102
{
93103
text: 'Design System',
@@ -112,6 +122,7 @@ export function sidebar(): DefaultTheme.Sidebar {
112122
'/projects/deltag-aarhus-timeline/': deltagAarhusTimeline,
113123
'/projects/book-aarhus/': bookAarhus,
114124
'/projects/opkraevningsoverblik/': opkraevningsoverblik,
125+
'/projects/roboway/': roboway,
115126
'/projects/design-system/': designSystem,
116127
}
117128
}

docs/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,8 @@ features:
3838
details: Samlet overblik over kommunale opkrævninger med statusindikator, opkrævningsliste, filtrering og 5-års historisk udvikling.
3939
link: /projects/opkraevningsoverblik/
4040
linkText: View project
41+
- title: Roboway
42+
details: Kommunal platform til styring og overvågning af autonome robotflåder i Aarhus — med livekort, zoneadministration, hændelseshåndtering og operatørportal.
43+
link: /projects/roboway/
44+
linkText: View project
4145
---

docs/projects/roboway/index.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
<small>**Project:** Roboway · **Status:** Prototype · **Date:** April 2026</small>
2+
3+
# Roboway — Robotflådestyring
4+
5+
**Digital platform til styring og overvågning af autonome robotflåder i Aarhus Kommune.**
6+
7+
---
8+
9+
## Baggrund
10+
11+
Aarhus Kommune undersøger muligheden for at integrere autonome leveringsrobotter i byens infrastruktur som en del af "Last Mile"-projektet. Når flere private operatører potentielt skal operere robotflåder i kommunen, opstår et behov for en central platform, der kan give kommunen overblik over og kontrol med robottrafikken — på tværs af operatører, zoner og byforhold.
12+
13+
Prototypen er udviklet som grundlag for et afprovnings- og læringsforløb, og fungerer som visuelt udgangspunkt for diskussion ved projektopstart.
14+
15+
## Formål
16+
17+
Prototypen skal besvare spørgsmålet: **Hvordan kan en central kommunal platform til robotflådestyring se ud og fungere i praksis?**
18+
19+
Konkret skal den:
20+
21+
- Vise hvordan kommunen kan få realtidsoverblik over samtlige robotflåder på tværs af operatører
22+
- Demonstrere zonekontrol, hændelseshåndtering og compliance-overvågning
23+
- Illustrere en operatørportal, hvor operatører modtager byforhold og optimerer ruter derefter
24+
- Fungere som visuelt diskussionsgrundlag for interessenter ved projektopstart
25+
26+
## Hvad prototypen viser
27+
28+
Prototypen er en single-page application med syv sider, navigeret via en sidebar i venstre side. Hele brugerfladen understøtter dansk og engelsk via en sprogvælger (DA/EN) i headeren og er responsiv til mobilvisning.
29+
30+
### Overblik (Dashboard)
31+
32+
Forsiden viser seks KPI-kort øverst: aktive robotter (24/35), aktive zoner (6), hændelser i dag (10), leveringer i dag (147), gennemsnitlig leveringstid (18 min) og CO₂-besparelse (2,4 ton). Nedenunder vises et donut-diagram over robotstatus-fordeling (aktiv, inaktiv, oplader, fejl, offline) samt et linjediagram over aktivitet de seneste 7 dage. Nederst ses en operatørstatus-liste med forbindelsesstatus og en tabel over seneste hændelser.
33+
34+
### Livekort
35+
36+
Et interaktivt Leaflet-kort centreret over Aarhus viser alle 35 robotter som farvekodede cirkelmarkører (farve pr. operatør). Zoner er vist som farvede polygoner: orange (fodgænger), rød (begrænset), grøn (levering) og gul (vejarbejde). Aktive ruter tegnes som stiplede polylines. Robotter med aktive ruter animeres langs deres ruteforløb i realtid. Klik på en robot viser popup med navn, status, batteri (med progress-bar) og hastighed. Fire KPI-kort flyder øverst, og en signaturforklaring vises nederst til venstre.
37+
38+
### Flådeoversigt
39+
40+
Viser alle fem operatører som individuelle kort med forbindelsesstatus, API-sundhed (latenstid, oppetid), antal robotter og kontaktoplysninger. Under hver operatør vises robotchips med ID, status-badge og batteriniveau for hver enkelt robot.
41+
42+
### Zoneadministration
43+
44+
Fire opsummeringskort (zoner i alt, aktive, planlagte, begrænsede) efterfulgt af en detaljeret tabel over alle syv zoner med ikon, type-badge, status, hastighedsgrænse, robotkapacitet, aktive timer og seneste ændringsdato.
45+
46+
### Hændelser
47+
48+
Tre KPI-kort (kritiske, uløste, løste hændelser) og filterfaner (Alle/Kritisk/Advarsel/Info) over en fuld hændelsestabel med 15 hændelser. Tabellen viser tidspunkt, alvorlighed, type, robot-ID, operatør, beskrivelse og løst/åben-status.
49+
50+
### Analyse & Data
51+
52+
Fire KPI-kort for 30-dages perioden. Et linjediagram viser leveringer, aktive robotter og hændelser over tid. Et søjlediagram sammenligner operatørers leveringer og hændelser. Et donut-diagram visualiserer CO₂-besparelse, og tre nøgletal viser elektrisk kørsel, CO₂ sparet og erstattede bilture. En tabel viser de otte mest populære ruter med antal og gennemsnitstid.
53+
54+
### Operatørportal
55+
56+
Simulerer en operatørs visning (NordBots ApS) med et teal-farvet identitetsbanner med compliance-score, forbindelsesstatus, robotantal og API-sundhed. Fem KPI-kort viser compliance, leveringer, leveringstid, sparet forsinkelse og manuelle indgreb.
57+
58+
En "Byforhold — Live Feed" viser otte bykonditioner (restriktioner, vejarbejde, arrangementer, krydsninger, vejr, midlertidige zoner) med alvorlighedsindikator, tidspunkt, type-tag og kvitteringsknap. Kvitteringsfunktionen er interaktiv.
59+
60+
Et compliance-dashboard viser en gauge-chart med score, seks gældende regler (med overholdelsesindikator) og seneste hændelser for operatøren.
61+
62+
En ruteoptimerings-tabel viser seks aktive ruter med oprindelig vs. optimeret tid, besparelse og undgåede byforhold. Et linjediagram sammenligner leveringstid med og uden bydata-optimering over 14 dage.
63+
64+
---
65+
66+
## Krav
67+
68+
- Platformen skal give kommunen realtidsoverblik over alle robotflåder på tværs af operatører, herunder position, status og batteriniveau
69+
- Et interaktivt kort skal visualisere robotpositioner, zoner og aktive ruter med løbende opdatering
70+
- Kommunen skal kunne definere og administrere zoner med differentierede regler for hastighed, adgang og kapacitet
71+
- Hændelser (hastighedsovertrædelser, zonebrud, nærved-sammenstød, forbindelsestab m.fl.) skal logges og kunne filtreres efter alvorlighed
72+
- Operatører skal have en dedikeret portal med adgang til byforhold, compliance-status og ruteoptimering baseret på aktuelle bykonditioner
73+
- Platformen skal understøtte compliance-overvågning, så kommunen kan følge operatørers overholdelse af gældende regler
74+
- Analyse og nøgletal skal give indsigt i leveringsperformance, operatørsammenligning og bæredygtighedseffekt (CO₂-besparelse, erstattede bilture)
75+
76+
---
77+
78+
## Uafklarede spørgsmål
79+
80+
Prototypen er et visuelt diskussionsgrundlag — ikke en implementeringsklar løsning. Inden et reelt system kan bygges, skal en række afhængigheder, ubekendte og forudsætninger afklares.
81+
82+
Punkterne nedenfor er tænkt som udgangspunkt for samtalen og er på ingen måde udtømmende.
83+
84+
### Robotterne og operatørerne
85+
86+
- **Robotternes kapabilitet er ukendt.** Prototypen antager realtidstelemetri (position, batteri, status, hastighed) og fjernkommandoer (stop, omdirigering). Hvilke robotter taler vi reelt om, og hvad kan de levere? Hvilke API'er, protokoller og opdateringsfrekvenser understøtter de?
87+
- **Standard for operatørintegration findes ikke.** Skal kommunen definere en fælles snitflade (datamodel, autentifikation, fejlhåndtering), eller skal platformen oversætte fra hver enkelt operatørs format?
88+
- **Kommandoveje og overstyring.** Kan kommunen reelt stoppe eller omdirigere en robot via platformen, eller går al kontrol gennem operatøren? Hvad er svartider og fallback ved forbindelsestab?
89+
- **Sikkerhed og ansvar.** Hvem hæfter ved hændelser — operatøren, kommunen, robotproducenten? Hvilken rolle spiller platformens data ved efterforskning?
90+
91+
### Datagrundlag
92+
93+
- **Geodata og zoner.** Hvor kommer zonedefinitioner fra? Hvem opdaterer dem, og hvordan distribueres ændringer til operatørerne?
94+
- **Byforhold (live feed).** Vejarbejde, arrangementer, vejr, midlertidige restriktioner — hvilke kilder leverer disse, og er datakvalitet og opdateringsfrekvens tilstrækkelig til ruteoptimering?
95+
- **Compliance-regler.** Hvad er det juridiske grundlag for hastighedsgrænser, zonekrav m.v.? Hvem definerer reglerne, og hvordan håndhæves de teknisk?
96+
97+
---
98+
99+
## Interaktiv prototype
100+
101+
<a href="/research-projects/projects/roboway/mocks/index.html" class="mock-button" target="_blank">Åbn prototypen ↗</a>

docs/projects/roboway/mocks.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<small>**Project:** Roboway</small>
2+
3+
# Interaktive Mocks
4+
5+
---
6+
7+
**<a href="/research-projects/projects/roboway/mocks/index.html" target="_blank">Roboway — Robotflådestyring ↗</a>**
8+
Single-page prototype med syv sider: dashboard, livekort over Aarhus, flådeoversigt, zoneadministration, hændelser, analyse og operatørportal. Understøtter dansk/engelsk og er responsiv.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<!DOCTYPE html>
2+
<html lang="da">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>AarhusWay — Robotflådestyring</title>
7+
<link rel="stylesheet" href="styles.css">
8+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.css">
9+
</head>
10+
<body>
11+
<div id="app" class="app-shell">
12+
<div class="sidebar-overlay" id="sidebarOverlay"></div>
13+
<!-- Sidebar -->
14+
<aside class="sidebar" id="sidebar"></aside>
15+
16+
<!-- Main area -->
17+
<div class="main-area">
18+
<header class="header" id="header"></header>
19+
<main class="content" id="content"></main>
20+
</div>
21+
</div>
22+
23+
<script src="https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.js"></script>
24+
<script src="https://cdn.jsdelivr.net/npm/chart.js@4"></script>
25+
<script src="https://cdn.jsdelivr.net/npm/lucide@0.460.0/dist/umd/lucide.min.js"></script>
26+
<script src="script.js"></script>
27+
</body>
28+
</html>

0 commit comments

Comments
 (0)