260 likes | 542 Views
Programování robotů Robot jako stavový automat. Jan Benda , David Obdržálek jan.benda@matfyz.cz, david.obdrzalek@mff.cuni.cz Univerzita Karlova , Matematicko-fyzikální fakulta Malostranské náměstí 25, Praha 1. Programování robotů - agenda. Konečný (stavový) automat Vývojové diagramy
E N D
Programování robotůRobot jako stavový automat Jan Benda, David Obdržálekjan.benda@matfyz.cz, david.obdrzalek@mff.cuni.cz Univerzita Karlova, Matematicko-fyzikální fakultaMalostranské náměstí 25, Praha 1
Programování robotů - agenda • Konečný (stavový) automat • Vývojové diagramy • Petriho sítě a SFC • Editory stavových automatů • Závěr Jan Benda and David Obdržálek
Programování robotů - agenda • Konečný (stavový) automat • Vývojové diagramy • Petriho sítě a SFC • Editory stavových automatů • Závěr Jan Benda and David Obdržálek
Konečný automat (1) • Jednoduchý, ale účinný nástroj • Dobře vystihuje obvyklé děje a procesy Jan Benda and David Obdržálek
Konečný automat (2) • Nepodporuje paralelní vývoj stavů • Bylo by nutné rozšířit definici • Komplexní systémy se těžko spravují • Je dobré mít automatický překladač Jan Benda and David Obdržálek
Programování robotů - agenda • Konečný (stavový) automat • Vývojové diagramy • Petriho sítě a SFC • Editory stavových automatů • Závěr Jan Benda and David Obdržálek
Vývojové diagramy (1) • Podmínky typu ano/ne • Dobře odpovídá hardwaru robota • Pouze synchronní procesy Jan Benda and David Obdržálek
Vývojové diagramyFischertechnik’s Lucky Logic • Přehledné uživatelské rozhraní • Synchronní procesy • Pouze vestavěné funkce Jan Benda and David Obdržálek
Vývojové diagramyCrocodile Programming Editor • Přístup k vlastním vstupům/výstupům • Synchronní procesy • Velmi detailní, až nepřehledné Jan Benda and David Obdržálek
Vývojové diagramyLEGO RIS • Líbivé uživatelské rozhraní • Podporuje asynchronní události • Spíše pro sekvence akcí než řízení robota • Diagram rychle narůstá do délky Jan Benda and David Obdržálek
Programování robotů - agenda • Konečný (stavový) automat • Vývojové diagramy • Petriho sítě a SFC • Editory stavových automatů • Závěr Jan Benda and David Obdržálek
SFC - Sequential Function Charts • Zobecněné stavové automaty • Místa (stavy) • Přechody (vstupy) • Vhodné pro asynchronníudálosti • Souběžné procesy • Synchronizace subsystémů • Tvoří základ pro editor GFE Jan Benda and David Obdržálek
SFC – Sériové větvení • Jedno místo je spojeno s více přechody Jan Benda and David Obdržálek
SFC - Synchronizace • Jeden přechod je spojen s více místy Jan Benda and David Obdržálek
SFC – Paralelní běh • Souběžné procesy Jan Benda and David Obdržálek
Programování robotů - agenda • Konečný (stavový) automat • Vývojové diagramy • Petriho sítě a SFC • Editory stavových automatů • Závěr Jan Benda and David Obdržálek
GFE – Editor stavových automatů • Struktora programu podle SFC • Vizuální návrh SFC automatů • Editor a generátor kódu • Automatické naprogramování automatu Jan Benda and David Obdržálek
GFE – Příklad modelu • Místa odpovídají akcím robota • Přechody zpracovávají jeho vstupy Jan Benda and David Obdržálek
GFE – Poznámky k implementaci • Generátor kódu SFC automatu: • Stav jednotlivých míst uložen v poli • Přechody upravují aktivace míst • Aktivní místa vykonávají úlohy robota Jan Benda and David Obdržálek
Výsledek: Řízení robota automatem • Hlavní řídící smyčka • Periodicky volá kód SFC automatu • SFC automat • Může upravovat kdokoli – vizuálně • Knihovna vstupů a činností • Pro konkrétního robota stačí naprogramovat 1x Jan Benda and David Obdržálek
Programování robotů - agenda • Konečný (stavový) automat • Vývojové diagramy • Petriho sítě a SFC • Editory stavových automatů • Závěr Jan Benda and David Obdržálek
Závěr – Vlastnosti GFE • Grafický editor pro každého • Syntaxe podle SFC • Úsporný a expresívní jazyk • Dokáže používat kdokoli • Jazyk C na pozadí • Umožňuje programovat libovolný HW • Neomezená rozšiřitelnost Nástroj pro všechny robotiky! Jan Benda and David Obdržálek
Otázky? Kontakty na nás: jan.benda@matfyz.cz david.obdrzalek@mff.cuni.cz Jan Benda and David Obdržálek