Robot Software Design and Architectures Video 3 Flashcards
What are the popular types of planning?
HTN: Hierarchical Task Net
Specialized planning expeperts.
Multiple planning layers
Hva er de tre komponentene i en arkitektur?
Adferd (Behaviour)
Utøvende enhet (Executive)
Planlegging (Planning)
Adferd (Behaviour) kontroll
Hva er adferdsbasert kontroll i robotikk?
Direkte kobling mellom sensorer og aktuatorer.
Funksjoner skrevet i C/C++ eller spesialiserte språk som ALFA, Behavioral Language, Rex.
Bruker tradisjonell reguleringsteori (f.eks. PID-regulatorer, Kalman-filtre).
Består av få adferder (ferdigheter) som oppfatter miljøet og utfører handlinger.
Situasjonsbestemte adferder, hvor roboten selv oppdager om den er i riktig situasjon.
Kognitiv feilhåndtering, der adferden vet når den ikke fungerer.
Hva er funksjonen til den utøvende enheten (Executive) i robotikk?
Grensesnitt mellom det numeriske adferdskontrollaget og det symbolske planleggingslaget.
Oversetter høy-nivå planer til lav-nivå adferder.
Aktiverer adferder på riktig tid, overvåker utførelse, og håndterer unntak.
Kan også tildele og overvåke ressursbruk, selv om dette ofte håndteres av planleggingslaget.
Utøvende enheten (Executive)
Hvordan brytes et høy-nivå mål som “levere post” ned til oppgaver i robotikk?
Dekomponer mål til deloppgaver:
- Bruk geometrisk ruteplanlegger for å finne korridorer og kryss.
- Hvis dører finnes, åpne og gå gjennom.
- Let etter kontornumre.
- Annonsér postlevering.
- Hvis posten ikke hentes, utfør en gjenopprettingshandling (f.eks. annonsér igjen eller informer planleggingslaget for å omplanlegge).
Utøvende enheten (Executive)
Hvilke evner har den utøvende enheten i robotikk?
- Dekomponering til lavnivå oppgaver:
- Utøres av adferdslaget
- Prosedyremessig: Hvordan oppgavene skal utføres, ikke hva som må gjøres.
Vanligvis en hierarkisk oppgave-tre med forelder-barn relasjoner. - Tidsbegrensninger:
- Sekvensering og samtidige oppgaver
- Tidsbestemt: Fullføre etter x sekunder.
- Oppgaver kan spesifisere ressurser (f.eks. motor eller kamera).
- Løsning av konflikt mellom oppgaver (f.eks. programmerte alternativer, prioriteringer). - Utførelsesovervåking:
- Nødvendig fordi adferder er situasjonsbestemte, og situasjoner kan endre seg uventet.
- Implementert som samtidige oppgaver som analyserer sensordata (polling og avbrudd-drevne monitorer). - Feilgjenoppretting:
- Opprette deloppgaver, avslutte deloppgaver, forårsake at foreldremålet mislykkes, heve unntak, osv.
- Hierarkisk unntaksmechanisme; heve unntak oppover (til foreldremål).
Hvordan ville ett HTN eksempel for husbygging sjå ut?
HTN: Hierarchical Task Net
Planleggingens (Planning)
Hva er planleggingens rolle i robotikk?
Ansvarlig for å bestemme langsiktige aktiviteter basert på høy-nivå mål.
Adferdskontrollkomponenten fokuserer på nåtiden.
Den utøvende enheten håndterer hva som nettopp har skjedd og hva som skal skje neste.
Planleggingskomponenten ser mot fremtiden.
Eksempel:
Inndata: Dagens leveranser, robotens ressurser og et kart.
Utdata: Optimal leveringsruter og tidsplan, inkludert når roboten skal lade.
Ansvarlig for omplanlegging når situasjonen endres, f.eks. hvis kontoret er låst.
Hva er HTN (Hierarchical Task Net) og hva kjennetegner det?
Dekomponerer oppgaver til deloppgaver, likt det utøvende laget (Execitive layer), men på et høyere nivå.
Tar hensyn til ressurser og håndterer konflikter.
Enkel spesifisering: Angir direkte hvordan oppgavene skal oppnås.
Eksempel:
Hovedoppgave: “Vinne ballen” → “Score mål ELLER “Passere ballen.”
Deloppgave: “Vinne ballen” → (Stoppe den første angriperen ELLER Lukke rommet ELLER …
Hva er funksjonen til en planlegger/tidsplanlegger i robotikk?
Lager høy-nivå planer som bestemmer når oppgaver skal utføres.
Lar det utøvende laget (Execitive layer) avgjøre nøyaktig hvordan oppgavene skal oppnås.
Kunnskap som kreves:
- Målene oppgavene oppnår.
- Ressursene de trenger.
- Varighet av oppgavene.
- Eventuelle begrensninger mellom oppgavene.
- Best egnet når ressursene er begrenset.
Eksempel:
Oppgave: “Vinne ballen” → “Hvis nær (Score mål), Ellers (Passere ballen).”
Specialized planning experts
Hva er spesialiserte planleggingssystemer, og hvilke typer finnes?
Løser spesifikke problemer effektivt.
Inkluderer bevegelsesplanleggere (Motion planners):
Bane-planlegger: Planlegger bevegelsesbanen til roboten over tid.
Ruteplanlegger (Path planner): Finner optimale ruter fra start til mål.
Eksempel:
Oppgave: “Vinne ballen” → “Hvis gjenværende tid < 3 min OG vi leder, da (MoveToPos(Off-corner)).”
Multiple planning layers
Hva innebærer flere planleggingslag i robotikk?
Misjonsplanlegging (Mission Planning): Øverste lag som definerer overordnede mål.
Oppgaveplanlegging (Task Planning): Underliggende lag som spesifiserer detaljene for “hvordan” oppgavene skal utføres.
Eksempler:
Hovedoppgave: “Vinne ballen” → “Score mål ELLER Passere ballen.”
Deloppgave: “Vinne ballen” → (Stoppe den første angriperen ELLER Lukke rommet ELLER …).
Spesifikasjon for å stoppe angriperen: “Flytt til posisjon (i front av første angriper) ELLER …”
Integrating Planning and Execution (architecture)
Hvordan integreres planlegging og utførelse i robotikk?
Trenger en ny plan
Planner <————————– Executive
Planlegging blir påkallet av den utøvende enheten når nødvendig.
Den utøvende enheten venter til planen er returnert og forblir inaktiv i mellomtiden.
Eksempler: ATLANTIS, Remote Agent.
Effektiv i statiske systemer, men har begrensninger i omplanlegging og er best i forutsigbare situasjoner.
Overvåk og lag ny plan Planner ------------------------------> Executive Den utøvende enheten mottar høy-nivå oppgaver fra planleggeren. Planleggeren overvåker fremdriften av oppgavene. I dynamiske miljøer kjører planleggingen kontinuerlig og omplanlegger etter behov (f.eks. 3T).
Andre beslutninger som må tas hensyn til:
1. Når å stoppe dekomponering:
- Jo høyere nivå, jo mer tidkrevende er prosessen.
- Hvor å overvåke:
- Mer effektiv å overvåke på det utøvende nivået. - Hvordan håndtere unntak:
- På planleggingsnivå = Omplanlegging for å tilpasse seg endringer
- Ved utøvende nivå = Bryte planleggerens forventinger når det oppsåt uforusette situasjoner
Hvilke spørsmål bør vurderes når man bestemmer programvarearkitektur for roboter?
Oppgavetyper (Task types)
Handlinger(Actions)
Data
Beregningskapasiteter (Computational capabilities)
Robotbrukere (Robot users)
Robotvurdering (Robot evaluation)
Gjenbrukbarhet (Architecture reusability)
1. Oppgavetyper (Task Types)
Hva bør vurderes angående oppgavetyper i robotikk?
- Hva er oppgavene roboten vil utføre?
- Hvilke spesifikke oppgaver kreves?
Semester oppgaven:
To Turtlebots må finne qr kode og kommunisere hva som står på de(brann, katt etc), må vite sin posisjon til enhver tid, kommunisere med hverandre, bevege seg fram og tilbake, snu
2.Varighet av oppgaver:
- Er oppgavene langvarige eller kortvarige?
- Er de initiert av brukeren eller av roboten selv?
Kortvarig siden de skal gjennom en lite Labyrint og finne qr koder
3.Oppgaverepetisjon:
- Er oppgavene repetitive, eller varierer de over tid?