← Nieuwste papers
🤖 AI

Towards LLM-Assisted Architecture Recovery for Real-World ROS~2 Systems: An Agent-Based Multi-Level Approach to Hierarchical Structural Architecture Reconstruction

Dit artikel presenteert een verbeterde, agentgebaseerde, meerlagige aanpak voor het herstellen van hiërarchische softwarearchitecturen in complexe real-world ROS~2-systemen door gebruik te maken van verfijnde LLM-prompting en een gefaseerde herstelstrategie om de beperkingen van bestaande knooppuntniveau-methoden te overwinnen.

Oorspronkelijke auteurs: Dominique Briechle, Raj Chanchad, Tobias Geger, Ruidi He, Dhruv Jajadiya, Dhruv Kapadiya, Andreas Rausch, Meng Zhang

Gepubliceerd 2026-05-20
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Dominique Briechle, Raj Chanchad, Tobias Geger, Ruidi He, Dhruv Jajadiya, Dhruv Kapadiya, Andreas Rausch, Meng Zhang

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je een enorme, complexe Lego-set hebt die door een team van mensen over een paar jaar is gebouwd. De originele bouwinstructies zijn zoekgeraakt, of misschien zijn ze nooit eens opgeschreven. Het enige wat je nog hebt, zijn de verspreide stenen, de dozen waar ze in zaten, en wat notities over hoe je ze aan elkaar moet klikken.

Wat is je doel? Het originele instructieboekje opnieuw opbouwen, zodat je kunt begrijpen hoe de hele machine werkt, hoe de onderdelen met elkaar verbonden zijn, en hoe je het kunt repareren als het kapot gaat.

Dit artikel gaat precies hierover, maar dan voor robotsoftware (specifiek systemen die zijn gebouwd met een hulpmiddel genaamd ROS 2).

Het Probleem: De "Spook"instructies

In de wereld van robotica wordt software vaak in stukken geschreven. De ene persoon schrijft code voor een camera, een ander voor een robotarm, en weer een ander voor een transportband. Ze slaan hun werk op in verschillende bestanden. De "lijm" die ze bij elkaar houdt – die de computer vertelt welk stukje eerst moet starten en hoe ze met elkaar communiceren – is verborgen in "launch-bestanden" en verspreide code-commentaren.

Het is alsof je een recept hebt waarbij de ingrediënten in één notitieboekje staan, maar de stappen voor het mengen in een ander notitieboekje verborgen zijn, en de oventemperatuur op een servet is gekrabbeld. Als je probeert het hele recept te raden door alleen naar de ingrediënten te kijken, kun je het misschien verkeerd doen. Je zou kunnen denken dat de cake op 500 graden moet worden gebakken omdat je dat getal op een briefje zag, terwijl het eigenlijk voor het ovenlicht was.

Voorheen probeerden onderzoekers AI (Grote Taalmodellen) te gebruiken om deze verspreide notities te lezen en het volledige recept te raden. Maar de AI raakte soms in de war, verzon feiten (hallucineerde), of miste hoe de verschillende onderdelen hiërarchisch bij elkaar pasten (zoals een grote machine die bestaat uit kleinere machines).

De Oplossing: Een "Gestageerd" Detectivemethode

De auteurs van dit artikel hebben hun AI-detectivemethode verbeterd. In plaats van de AI te vragen om in één keer het hele plaatje te raden, hebben ze de klus opgesplitst in drie duidelijke stappen, waarbij ze een "blauwdruk" (een strikte set regels) gebruikten om de AI op koers te houden.

Stel je een bouwplaats voor met drie gespecialiseerde teams:

  1. Team 1: De Inventarisateurs (NodeAnalyzer)
    Ten eerste scant de AI alle codebestanden en maakt een eenvoudige lijst: "Hier zijn alle individuele robotonderdelen die we hebben gevonden." Het lijstt elke robotarm, camera en sensor op, en noteert precies waar ze in de code voorkomen.

    • Vergelijking: Dit is alsof je alle Lego-stenen sorteert in stapels op kleur en vorm voordat je begint met bouwen.
  2. Team 2: De Blauwdruklezers (LaunchFileAnalyzer)
    Vervolgens bekijkt de AI de "launch-bestanden" (de instructies over hoe de robot moet starten). Het achterhaalt welke onderdelen worden ingeschakeld, hoe ze worden genoemd, en hoe ze met elkaar worden gegroepeerd. Het maakt een kaart van afhankelijkheden: "De camera gaat aan voordat de arm beweegt, en ze zitten allebei in de 'Visie'-groep."

    • Vergelijking: Dit is alsof je de assemblage-instructies leest om te zien welke stenen aan elkaar klikken om een wiel te maken, en welke wielen aan het carrosserie worden bevestigd.
  3. Team 3: De Hoofdarchitecten (SystemArchitectureTeam)
    Tot slot neemt de AI de lijst met onderdelen (van Team 1) en de kaart met verbindingen (van Team 2) en bouwt het definitieve, hoog-niveau diagram. Omdat het de tussentijdse lijsten heeft, hoeft het niet te raden. Het volgt gewoon het bewijs.

    • Vergelijking: Dit is de architect die de definitieve blauwdruk van het afgewerkte huis tekent, wetende precies waar elke steen en elke draad moet komen omdat ze de inventaris en de assemblagenotities hebben.

De Test: De "BrickByBrick"-Robot

Om deze nieuwe methode te testen, gebruikten de onderzoekers een robot-systeem uit de echte wereld genaamd BrickByBrick. Dit is een robot die is ontworpen om complexe structuren van bouwstenen uit elkaar te halen. Het heeft:

  • Twee robotarmen (Alice en Bob).
  • Camera's om de stenen te zien.
  • Transportbanden om ze te verplaatsen.
  • Een "brein" dat plant hoe de stenen uit elkaar moeten worden getrokken zonder ze te breken.

Dit systeem was veel complexer dan de eenvoudige voorbeelden die ze in hun eerdere onderzoek gebruikten. Het had veel verschillende soorten software die samenwerkten.

De Resultaten

De nieuwe "gestageerde" methode werkte zeer goed:

  • Nauwkeurigheid: De AI identificeerde bijna elk onderdeel en elke verbinding correct (98% nauwkeurigheid op de complexe systeemniveau-kaart).
  • Betrouwbaarheid: Het verzon geen valse verbindingen. Elke verbinding die het tekende, werd ondersteund door daadwerkelijke code-bewijzen.
  • Verbetering: Het was aanzienlijk beter in het begrijpen van hoe de verschillende onderdelen met elkaar waren gegroepeerd, vergeleken met hun oude methode.

De Conclusie

Het artikel laat zien dat als je de software van een complexe robot wilt begrijpen, je de AI niet zomaar moet vragen om "het hele ding te raden". In plaats daarvan moet je de AI een gestructureerd proces geven:

  1. Lijst de onderdelen op.
  2. Kaart de assemblage-instructies in.
  3. Bouw het definitieve diagram op basis van die feiten.

Deze aanpak maakt de AI veel betrouwbaarder, en verandert een chaotische hoop code in een duidelijk, begrijpelijk architecturaal kaart. Echter, de auteurs geven toe dat als het gedrag van de robot verandert terwijl deze draait (dynamische wijzigingen), de huidige methode nog steeds een beetje moeite heeft om die bewegende doelen te vangen. Maar voor het begrijpen van de statische structuur van het systeem is het een enorme stap voorwaarts.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →