Darmowy fragment publikacji:
Tytuł oryginału: Robot Programming: A Guide to Controlling Autonomous Robots
Tłumaczenie: Konrad Matuk
ISBN: 978-83-283-2937-9
Authorized translation from the English language edition, entitled: ROBOT PROGRAMMING:
A GUIDE TO CONTROLLING AUTONOMOUS ROBOTS, ISBN 0789755009; by Cameron Hughes;
and by Tracey Hughes, published by Pearson Education, Inc, publishing as QUE Publishing.
Copyright © by 2016 by Pearson Education.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from Pearson Education Inc.
Polish language edition published by HELION SA. Copyright © 2017.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie,
ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION
nie ponosi również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/prorob
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis treści
Wstęp — Początek przygody z robotami ..................................................... 11
Rozpoczynamy pracę z robotami ............................................................................................. 11
Gotowi, do biegu, start! Ostra jazda bez trzymanki ................................................................. 12
Podstawy pracy z robotem ...................................................................................................... 13
Najważniejsze techniki programowania robotów zaprezentowane w tej książce ................... 13
Podstawowy uniwersalny mechanizm tłumaczący — PUMT .......................................... 14
Inteligentna sieć robotów (ISR) ........................................................................................ 15
Założenia dotyczące robotów posiadanych przez czytelnika ................................................... 16
Jak Midamba nauczył się programować robota ....................................................................... 17
1. Czym właściwie jest robot? ................................................................... 19
Siedem kryteriów definiujących robota ................................................................................... 20
Kryterium nr 1: Wykrywanie zmiennych środowiskowych ............................................... 20
Kryterium nr 2: Programowalne działania i zachowania .................................................. 20
Kryterium nr 3: Reagowanie na zmienne środowiskowe i interakcja z otoczeniem ......... 21
Kryterium nr 4: Źródło prądu ............................................................................................ 21
Kryterium nr 5: Język, w którym zapisywane są instrukcje i dane .................................... 21
Kryterium nr 6: Autonomia bez pomocy z zewnątrz ........................................................ 21
Kryterium nr 7: Robot nie jest organizmem żywym ......................................................... 22
Kategorie robotów ze względu na środowisko działania ................................................. 22
Co to jest czujnik? ............................................................................................................. 25
Co to jest siłownik? ........................................................................................................... 26
Co to jest efektor końcowy? .............................................................................................. 27
Co to jest mikrokontroler? ................................................................................................ 28
Jaki jest scenariusz pracy robota? ..................................................................................... 32
Wydawanie instrukcji robotowi ............................................................................................... 34
Każdy robot posługuje się jakimś językiem ...................................................................... 34
Rozwiązanie problemu niekompatybilności języka ludzkiego
i języka zrozumiałego dla robotów ................................................................................ 35
Reprezentacja scenariusza pracy robota w środowisku programowania wizualnego ...... 38
Kłopoty Midamby ............................................................................................................. 39
Co dalej? .................................................................................................................................. 40
Poleć książkęKup książkę4
Programowanie robotów
2. Słownictwo robotów ............................................................................ 43
Dlaczego korzystanie z tych języków wymaga wysiłku? ..........................................................43
Zidentyfikuj czynności ..............................................................................................................49
Model ontologii języka programowania autonomicznych robotów .........................................49
Potencjał robota ...............................................................................................................51
Role odgrywane przez roboty w różnych sytuacjach i scenariuszach pracy ......................52
Co dalej? ...................................................................................................................................54
3. Wizualne planowanie scenariusza pracy robota ..................................... 57
Mapowanie scenariusza pracy robota ......................................................................................58
Tworzenie planu miejsca pracy robota .............................................................................59
Otoczenie robota ...............................................................................................................61
Opis atrybutów środowiska pracy robota .........................................................................63
Wizualne planowanie scenariusza pracy robota za pomocą pseudokodu
i schematu blokowego ..........................................................................................................66
Przepływ sterowania i struktury sterujące ........................................................................70
Podprocedury ...................................................................................................................74
Diagramy stanów robotów i obiektów .....................................................................................76
Tworzenie diagramu stanów ............................................................................................78
Co dalej? ...................................................................................................................................82
4. Sprawdzanie rzeczywistych możliwości robota ....................................... 83
Testowanie rzeczywistych możliwości mikrokontrolera ..........................................................85
Testowanie rzeczywistej wydajności czujników .......................................................................89
Określanie ograniczeń czujników robota ..........................................................................91
Określanie ograniczeń efektorów końcowych ..........................................................................93
Ocena efektywności pracy robota ............................................................................................96
Co dalej? ...................................................................................................................................98
5. Czujniki pod lupą ................................................................................. 99
Co wykrywają czujniki? ............................................................................................................99
Czujniki analogowe i cyfrowe .........................................................................................103
Odczyt sygnałów analogowych i cyfrowych ....................................................................104
Sygnał wyjściowy czujnika ..............................................................................................106
Gdzie przechowywane są odczyty? .................................................................................107
Czujniki aktywne i pasywne ............................................................................................108
Komunikacja między czujnikami a mikrokontrolerami ...................................................110
Atrybuty czujników .........................................................................................................114
Zakres i rozdzielczość ......................................................................................................114
Precyzja i dokładność ......................................................................................................116
Poleć książkęKup książkęSpis treści
5
Liniowość ....................................................................................................................... 117
Kalibracja czujników ...................................................................................................... 118
Problemy związane z czujnikami ................................................................................... 119
Proces kalibracji przez użytkownika ............................................................................... 119
Metody kalibracji ............................................................................................................ 120
Co dalej? ................................................................................................................................ 121
6. Programowanie czujników ................................................................. 123
Korzystanie z czujnika koloru ................................................................................................. 124
Tryby pracy czujników koloru ......................................................................................... 126
Zakres wykrywania ........................................................................................................ 126
Światło w środowisku pracy robota ............................................................................... 127
Kalibracja czujnika koloru ............................................................................................... 128
Programowanie czujnika koloru ..................................................................................... 129
Wykrywanie i śledzenie obiektów za pomocą cyfrowych kamer ........................................... 132
Śledzenie kolorowych obiektów za pomocą sprzętu firmy RS Media .................................... 132
Śledzenie kolorowych obiektów za pomocą czujnika obrazu Pixy ......................................... 136
Uczenie Pixy wykrywania obiektów ............................................................................... 137
Programowanie kamery Pixy ......................................................................................... 138
Analiza atrybutów .......................................................................................................... 141
Czujnik ultradźwiękowy ........................................................................................................ 142
Ograniczenia i dokładność czujnika ultradźwiękowego ................................................. 142
Tryby pracy czujnika ultradźwiękowego ........................................................................ 147
Odczytywanie próbek ..................................................................................................... 147
Typy danych używane do przechowywania wartości odczytanych
za pomocą czujników .................................................................................................. 148
Kalibracja czujnika ultradźwiękowego ........................................................................... 148
Programowanie czujnika ultradźwiękowego ................................................................. 150
Kompas — czujnik określający zwrot robota ........................................................................ 159
Programowanie kompasu .............................................................................................. 161
Co dalej? ................................................................................................................................ 163
7. Programowanie silników i serwomotorów ........................................... 165
Siłowniki są przetwornikami wyjściowymi ............................................................................ 165
Parametry silników ................................................................................................................ 166
Napięcie ......................................................................................................................... 166
Natężenie prądu ............................................................................................................. 166
Prędkość ......................................................................................................................... 166
Moment obrotowy ......................................................................................................... 167
Opór elektryczny ............................................................................................................ 167
Poleć książkęKup książkę6
Programowanie robotów
Różne rodzaje silników prądu stałego ....................................................................................167
Silniki prądu stałego .......................................................................................................167
Moment obrotowy i prędkość obrotowa ........................................................................171
Silniki z przekładniami ....................................................................................................172
Konfiguracja silnika: bezpośrednie i pośrednie układy przeniesienia napędu ........................182
Wyzwania związane z terenem ..............................................................................................184
Radzenie sobie z wyzwaniami związanymi z terenem ...................................................184
Moment obrotowy a mechaniczne ramiona i efektory końcowe ....................................187
Obliczanie wymagań dotyczących momentu obrotowego i prędkości obrotowej ..........188
Silniki a efektywność pracy robota .................................................................................189
Programowanie ruchu robota ................................................................................................190
Ile silników? ....................................................................................................................191
Wykonywanie ruchów ....................................................................................................192
Programowanie ruchów .................................................................................................192
Programowanie silników w celu przemieszczenia się w określone miejsce ....................197
Programowanie silników sterowanych za pomocą Arduino ...........................................203
Mechaniczne ramiona i efektory końcowe .............................................................................205
Rodzaje mechanicznych ramion .....................................................................................205
Moment obrotowy mechanicznego ramienia .................................................................208
Rodzaje efektorów końcowych .......................................................................................210
Programowanie mechanicznego ramienia .....................................................................212
Obliczenia związane z kinematyką .................................................................................216
Co dalej? .................................................................................................................................220
8. Początek pracy nad autonomią: tworzenie oprogramowania robota ......221
Pierwsze spojrzenie na oprogramowanie autonomicznych robotów .....................................223
Sekcja Części ...................................................................................................................225
Sekcja Akcje ....................................................................................................................225
Sekcja Zadania ................................................................................................................226
Sekcja Scenariusze i sytuacje ..........................................................................................226
Model ontologii języka robota i rama projektowa oprogramowania robota ..........................226
Mechanizm tłumaczący PUMT przekształca ramy projektowe oprogramowania na klasy ....228
Nasze pierwsze podejście do programowania autonomicznego robota ............................239
Co dalej? .................................................................................................................................240
9. Środowisko pracy robota .....................................................................241
Robot musi sprawdzać uwarunkowania środowiskowe .........................................................242
Rozszerzony scenariusz pracy robota ..............................................................................242
Elementy, od których zależy efektywność robota ...........................................................244
Co dzieje się w przypadku niespełnienia warunków wstępnych lub końcowych? ..........249
Poleć książkęKup książkęSpis treści
7
Jakie akcje mogę wybrać w przypadku niespełnienia warunków wstępnych
lub końcowych? ........................................................................................................... 249
Analiza warunków końcowych inicjalizacji robota ................................................................ 250
Warunki wstępne i końcowe procesu rozruchu .............................................................. 251
Tworzenie kodu sprawdzającego warunki wstępne i końcowe ...................................... 252
Skąd biorą się warunki wstępne i końcowe? .................................................................. 257
Sprawdzanie uwarunkowań środowiskowych za pomocą czujników
i wizualne plany scenariusza pracy robota .......................................................................... 261
Co dalej? ................................................................................................................................ 262
10. Programowanie autonomicznych robotów i technika STORIES ............... 263
To nie tylko czynności! ........................................................................................................... 264
Impreza urodzinowa — podejście 2. ............................................................................. 264
STORIES .......................................................................................................................... 265
Rozszerzony scenariusz pracy robota ............................................................................. 267
Konwersja scenariusza pracy robota Unit1 na komponenty techniki STORIES ............... 267
Ontologia scenariusza pod lupą ..................................................................................... 267
Zwracanie uwagi na intencje robota .............................................................................. 278
Programowanie obiektowe a wydajność ....................................................................... 297
Co dalej? ................................................................................................................................ 298
11. Jak Midamba zaprogramował swojego pierwszego
autonomicznego robota? .................................................................... 299
Midamba i jego początkowy scenariusz ................................................................................ 299
Midamba w ciągu jednego wieczoru zostaje programistą! ............................................ 299
Krok 1.: Scenariusz pracy robotów w magazynie ........................................................... 302
Krok 2.: Słownictwo i model ontologii języka robota
w pierwszym scenariuszu pracy w fabryce .................................................................. 303
Krok 3.: Wizualne planowanie pierwszego scenariusza pracy
wykonywanej przez robota w fabryce ......................................................................... 305
Wizualny rozkład diagramu pracy z perspektywy robota ............................................... 305
Ulepszony pierwszy scenariusz pracy robotów w fabryce .............................................. 307
Schemat blokowy będący elementem wizualnego planowania scenariusza
pracy robota ................................................................................................................ 308
Diagram stanów wchodzący w skład wizualnego planu scenariusza pracy robota ........ 316
Sprawdzanie uwarunkowań środowiskowych robotów Unit1 i Unit2 ................................... 317
Autonomiczne roboty pomagają Midambie wyjść z tarapatów ..................................... 329
Co dalej? ................................................................................................................................ 332
Poleć książkęKup książkę8
Programowanie robotów
12. Otwarte roboty SARAA ........................................................................333
Tanie, otwarte i proste roboty ................................................................................................333
Programowanie oparte na scenariuszu
a bezpieczeństwo i odpowiedzialność programisty .....................................................335
Roboty SARAA dla każdego .............................................................................................335
Zalecenia dla osób programujących robota po raz pierwszy ...........................................338
Pełne plany scenariusza pracy robota, komponenty techniki STORIES
i kod źródłowy scenariusza pracy robotów Midamby ..................................................338
Glosariusz ..........................................................................................339
Skorowidz ..........................................................................................343
Poleć książkęKup książkęWizualne planowanie
scenariusza pracy robota
3
Trzecia lekcja robotyki: Nie każ robotowi wykonywać zada-
nia, którego nie potrafisz sobie wyobrazić.
W rozdziale 2., „Słownictwo robotów”, stwierdziliśmy, że
roboty posługują się słownictwem — językiem umożliwiają-
cym przekazanie im informacji na temat zadań, które mają
wykonać w danej sytuacji lub w danym scenariuszu. Po okre-
śleniu słownictwa kolejnym etapem pracy jest tworzenie za
jego pomocą instrukcji wykonywanych przez robota.
Zobrazowanie sobie, czyli stworzenie „wizualnej reprezentacji”, scena-
riusza i instrukcji wykonywanych przez robota jest dobrym sposobem
na zapewnienie prawidłowego ich wykonania przez robota. Obrazowa
reprezentacja instrukcji pozwoli Ci przeanalizować kolejne ich kroki
przed przekształceniem ich w kod programu. Dzięki tej technice, mając
całościowy obraz scenariusza i możliwość dostrzeżenia ewentualnych pro-
blemów, lepiej zrozumiesz proces pracy robota i usprawnisz proces two-
rzenia kodu. Rozwiązanie takie określamy mianem wizualnego planowania
scenariusza pracy robota. Proces ten pomaga w zaplanowaniu instrukcji,
które robot ma wykonać. Wizualne planowanie pracy robota składa się
z trzech elementów:
(cid:81) plan obszaru, na którym ma pracować robot;
(cid:81)
(cid:81) schemat blokowy instrukcji związanych z zadaniami.
Te trzy elementy pozwolą uzyskać jasny obrazu czynności, która ma być wykonana przez program
(może to być zapalenie świeczek na torcie albo nawet uratowanie świata przed zagładą). Elementy
wizualnego planowania pracy robota mogą być używane w różnych kombinacjach. Schematy blo-
kowe są dla niektórych bardziej czytelne od tabel stanów, a inni programiści wolą korzystać z ta-
bel stanów. Niezależnie od tego, czy wolisz korzystać ze schematów blokowych czy tabel stanów,
polecamy Ci jednoczesne posługiwanie się planem obszaru pracy robota.
Powiedzenie „jeden obraz jest wart więcej niż tysiąc słów” oznacza, że skomplikowaną myśl łatwiej
jest wyrazić za pomocą obrazu niż długiego opisu słownego. Z tej koncepcji bardzo często korzy-
staliśmy w szkole podstawowej — rozwiązując liczne zadania, spotykaliśmy polecenie „narysuj
rysunek”, po którego wykonaniu rozwiązanie stawało się banalnie proste. Ta technika rozwiązy-
wania problemów wciąż może nam być pomocna. Czasami narysowanie środowiska pracy robota,
stworzenie tablicy stanów i opracowanie schematu blokowego pozwoli nam zaoszczędzić tysiąc
słów, a także tysiąc poleceń. Dzięki wizualnemu planowi pracy robota zaplanujemy kolejne czyn-
ności wykonywane przez robota w różnych sytuacjach. W ten sposób nie będziesz musiał tworzyć
kodu metodą prób i błędów.
tabela stanów robota i obiektów znajdujących się w obszarze jego pracy;
Poleć książkęKup książkę58
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Mapowanie scenariusza pracy robota
Pierwszym elementem wizualnego planowania pracy robota jest mapowanie scenariusza jego pracy.
Mapa jest symbolicznym odwzorowaniem środowiska, w którym będą miały miejsce zadania i sytu-
acje. Środowisko danego scenariusza pracy jest światem, w którym będzie pracował Twój robot.
Na rysunku 3.1 przedstawiliśmy klasyczną matę testową robota NXT Mindstorms.
Rysunek 3.1.
Mata testowa robota
NXT Mindstorms
3
Mata pokazana na rysunku 3.1 wchodzi w skład zestawu Mindstorms. Ma ona kształt prostokąta
o wymiarach około 60×75 cm. Znajdziesz na niej 16 kolorów i 38 unikalnych liczb (niektóre z nich
są zdublowane). Pole maty jest pokryte liniami prostymi i krzywymi. Na jej powierzchni nadru-
kowano żółte, niebieskie, czerwone i zielone kwadraty oraz inne kolorowe kształty. Mata ta two-
rzy środowisko przeznaczone do wstępnego testowania robotów NXT Mindstorms — umożliwia
między innymi testowanie silników i czujników kolorów.
W podobny sposób (za pomocą różnych symboli) na mapę miejsca pracy robota nanosi się po-
szczególne przedmioty i przeszkody. Jeżeli przedmioty, z którymi robot ma nawiązać interakcję,
są zbyt daleko lub wysoko, to czujniki robota mogą mieć problemy z ustaleniem ich położenia.
Na mapie należy umieścić również wszystkie miejsca, do których według planu ma dotrzeć robot.
Wymiary przestrzeni, w której pracuje robot, a także wymiary samego robota, mogą wpływać na
możliwość poruszania się robota i wykonania przez niego niektórych czynności. Wróćmy do przy-
kładu robota BR-1. Jakie jest położenie robota względem tortu? Czy robot może do niego dotrzeć?
Czy może napotkać na swej drodze jakieś przeszkody? Czy może poruszać się swobodnie po do-
stępnej przestrzeni? Stworzenie mapy przestrzeni, w której będzie pracował robot, ułatwi odpo-
wiedzenie na te pytania.
Poleć książkęKup książkęMapowanie scenariusza pracy robota
59
WSKAZÓWKA
Najważniejszą rzeczą, poza samym robotem, na którą należy zwracać uwagę podczas programowania robota jest środowisko
jego pracy.
Tworzenie planu miejsca pracy robota
Mapa może mieć formę prostego, dwuwymiarowego planu, na którym naniesione zostaną kształty,
symbole i kolorowe linie symbolizujące różne przedmioty i inne roboty. W przypadku tak prostej
mapy stosowanie dokładnej skali nie jest szczególnie ważne, ale warto zachować względne pro-
porcje między wielkościami poszczególnych obiektów.
Wytycz obszar za pomocą prostych. Określ jednostki, w których będziesz podawać wymiary.
Upewnij się, że korzystasz z tych samych jednostek, które zostały zastosowane w funkcjach in-
terfejsu aplikacji. Odległości pokonywane przez robota, a także rozmiary różnych powierzchni
i przedmiotów oznaczaj za pomocą strzałek i wartości liczbowych. Mapę najlepiej jest stworzyć
w aplikacji przeznaczonej do obróbki grafiki wektorowej. Tworząc nasze mapy, posługiwaliśmy
się programem Libre Office Draw. Na rysunku 3.2 pokazaliśmy prosty plan środowiska pracy
robota BR-1.
Na rysunku zaznaczyliśmy wszystkie interesujące nas miejsca: położenie robota oraz stół i znaj-
dujący się na nim tort. Ponadto nanieśliśmy wymiary obszaru roboczego, a także tor ruchu ro-
bota. Lewy dolny róg mapy oznaczyliśmy współrzędnymi (0,0), a prawy górny róg współrzędny-
mi (300,400). Są to wymiary obszaru wyrażone w centymetrach. Z mapy można odczytać również
odległości pomiędzy przedmiotami a robotem. Plan ten nie jest stworzony w określonej skali, ale
zachowaliśmy na nim proporcje między poszczególnymi wymiarami. Robot BR-1 ma 50 cm wy-
sokości i 30 cm szerokości.
Robot ma zapalić świeczki na torcie, który znajduje się na środku obszaru o wymiarach 400×300 cm.
Tort ma średnicę 30 cm i stoi na stole o wymiarach 100×100 cm. Dlatego ramię robota BR-1
powinno mieć długość 53 cm — tylko wtedy sięgnie ono z punktu X do najdalej od niego poło-
żonej świeczki.
Ramię robota może wysunąć zakończenie efektora końcowego na odległość 80 cm, a do wartości
tej należy dodać jeszcze długość zapalniczki (10 cm). Planując zapalenie świeczek przez robota,
należy jeszcze wziąć pod uwagę następujące czynniki:
(cid:81) wysokość świeczki;
(cid:81) wysokość tortu;
(cid:81) odległość od ramienia robota do knota świeczki;
(cid:81) miejsce, w którym znajduje się robot.
Na rysunku 3.3 pokazaliśmy sposób obliczania odległości, którą musi pokonać ramię robota, aby
zapalić świeczkę. W tym przypadku odległość ta tworzy najdłuższy bok trójkąta. Odległość a
(76 cm) jest różnicą między wysokością, na której znajduje się początek ramienia robota, a wyso-
kością, na której znajduje się końcówka knota. Odległość b (53 cm) jest promieniem stołu, do
którego dodajemy 3 cm (odległość między środkiem stołu a najdalszą świeczką).
3
Poleć książkęKup książkę60
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Rysunek 3.2.
Plan środowiska pracy
robota BR-1
3
W związku z tym zasięg ramienia, efektora końcowego i zapalniczki musi wynosić około 93 cm.
Niestety robot dysponuje zasięgiem 90 cm, a więc będzie musiał jakoś pochylić się w stronę tortu,
aby końcówka zapalniczki znalazła się 3 cm dalej i zapaliła najdalszą świeczkę.
UWAGA
Proces określania pozycji i zasięgu ramienia robota jest znacznie bardziej złożony od zaprezentowanego przykładu. Więcej
informacji na ten temat znajdziesz w rozdziale 9., „Środowisko pracy robota”. Przedstawiając ten przykład, chcieliśmy pokazać,
jak plan miejsca pracy robota pomaga w rozwiązaniu ważnych problemów napotykanych podczas planowania zadań wyko-
nywanych przez robota.
Poleć książkęKup książkęMapowanie scenariusza pracy robota
61
Rysunek 3.3.
Obliczanie długości ramienia
robota na podstawie długości
przeciwprostokątnej
3
Otoczenie robota
UWAGA
Otoczeniem robota jest środowisko, w którym wykonuje on zadanie. Robot jest świadomy istnienia tylko tego środowiska.
Na jego pracę nie wpływają żadne czynniki spoza tego środowiska i nie jest on świadomy istnienia niczego, co znajduje się
poza jego otoczeniem.
Autonomiczny robot musi znać szczegóły otaczającego go środowiska. Na ile sprawnie udaje Ci
się przemieszczać po mieście, którego nie znasz? Trudno Ci znaleźć miejsca, do których chcesz
dotrzeć. Sprawę znacznie ułatwia mapa, na której jest zaznaczone, gdzie znajdują się na przykład
restauracje i muzea. Robot, który jest w pełni zautomatyzowany, musi dysponować odpowiednią
wiedzą na temat środowiska, w którym pracuje. Im więcej ma informacji, tym większe jest praw-
dopodobieństwo prawidłowego wykonania pracy.
Poleć książkęKup książkę62
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Środowiska pracy różnią się od siebie, a niektóre z nich są dynamiczne. Nie wszystkie roboty mają
dostęp do całości środowiska pracy. Pełna dostępność środowiska oznacza, że wszystkie obiekty
i aspekty środowiska znajdują się w zasięgu czujników i efektorów robota, a więc żaden obiekt nie
jest usytuowany zbyt wysoko, zbyt nisko lub zbyt daleko, aby robot mógł go wykryć lub nawiązać
z nim interakcję, a ponadto robot jest wyposażony we wszystkie czujniki niezbędne do odbierania
danych wejściowych dotyczących tego środowiska. Jeżeli w środowisku występuje dźwięk, to ro-
bot może go wykryć za pomocą czujnika dźwięku. Jeżeli w środowisku zostaje zapalone światło,
to robot może je wykryć za pomocą czujnika światła.
Mianem częściowo dostępnego środowiska określamy środowisko, które nie może być w pełni
eksplorowane przez robota, ponieważ nie jest on w stanie wykryć jego aspektów bądź znajdują-
cych się w nim przedmiotów albo nawiązać z tymi przedmiotami interakcji, gdyż nie jest wyposa-
żony w odpowiednie czujniki lub efektory końcowe. Przedmiot znajdujący się 180 cm nad ziemią
jest poza zasięgiem robota o wysokości 50 cm wyposażonego w ramię o długości 80 cm. A gdyby
robot BR-1 nie był wyposażony w czujnik dźwięku, a miałby zapalić świeczki po odśpiewaniu Sto
lat przez gości? Dźwięk jest elementem środowiska, a więc robot nie mógłby wykonać zaplano-
wanej pracy. Dlatego tworząc plan miejsca pracy robota w środowisku, które nie jest w pełni dla
niego dostępne, spójrz na nie z jego perspektywy. Umieszczając na planie przedmioty, które nie
są dostępne dla robota, wyróżnij je jakiś symbolem — otocz je kolorową ciągłą lub przerywaną linią.
Dzięki temu przedmioty te zostaną odróżnione od przedmiotów, do których robot ma dostęp.
Środowiska deterministyczne i niedeterministyczne
Co z kontrolą? Czy robot ma kontrolę nad każdym elementem środowiska, w którym się znaj-
duje? Czy robot jest jedynym czynnikiem wpływającym na obiekty usytuowane w tym śro-
dowisku? To właśnie na tym polega różnica między środowiskiem deterministycznym i nie-
deterministycznym.
W środowisku deterministycznym kolejny stan zależy od bieżącego stanu i czynności wykonywa-
nych przez robota (roboty). Oznacza to, że świeczki zapalone przez robota BR-1 będą się paliły,
aż robot BR-1 ich nie zgasi. Jeżeli robot BR-1 ma pozbierać naczynia ze stołu, to goście nie po-
winni ich przenosić w inne miejsca.
W przypadku niedeterministycznych scenariuszy takich jak impreza urodzinowa robot BR-1 nie
zdmuchuje świec (gdyby to zrobił, to wykazałby się dużą złośliwością). Naczynia mogą być prze-
noszone przez gości, a nie tylko przez robota BR-1. Co, jeżeli pomiędzy robotem BR-1 a celem,
do którego zmierza, początkowo nie znajdowała się żadna przeszkoda, a nagle na jego drodze
stanie gość? Jak robot ma pracować w dynamicznym, niedeterministycznym środowisku?
Praca w każdym środowisku wymaga rozwiązania określonych problemów. Robot pracujący w dy-
namicznym, niedeterministycznym środowisku musi dokonać analizy poprzedniego i bieżącego
stanu, a dopiero później podejmować próbę wykonania zadania i określać, czy zadanie w ogóle może
być wykonane.
W tabeli 3.1 przedstawiliśmy wybrane typy środowisk i ich krótkie charakterystyki.
3
Poleć książkęKup książkęMapowanie scenariusza pracy robota
63
Tabela 3.1. Wybrane typy środowisk i ich krótkie charakterystyki
Typ środowiska
Opis
W pełni dostępne
Częściowo dostępne
Deterministyczne
Niedeterministyczne
Wszystkie aspekty środowiska są dostępne dla czujników, siłowników i efektorów końcowych
robota.
Niektóre przedmioty nie są dostępne dla robota lub nie mogą zostać wykryte przez jego czujniki.
Kolejny stan środowiska jest zależny tylko i wyłącznie od obecnego stanu i czynności wykonanych
przez robota.
Kolejny stan środowiska nie zależy tylko i wyłącznie od działań robota; na przedmioty mogą
wpływać również czynniki zewnętrzne.
Opis atrybutów środowiska pracy robota
UWAGA
Opis środowiskowych atrybutów robota jest listą zawierającą obiekty, które robot napotka na swej drodze, i obiekty, z którymi
nawiąże interakcję. Ponadto zawiera on charakterystyki i atrybuty obiektów, które mogą zostać wykryte przez czujniki robota.
Opis powinien zawierać również listę charakterystyk obiektów, które wpływają na sposób interakcji z nimi.
Wiele aspektów środowiska nie jest widocznych na mapie, ale powinny zostać gdzieś odnoto-
wane w celu ich uwzględnienia podczas tworzenia instrukcji wykonywania zadań. Mogą to być
dowolne czynniki środowiskowe, parametry odbierane przez czujniki lub właściwości wpły-
wające na pracę silników i efektorów końcowych, takie jak kolor, masa, rodzaj powierzchni
i siły zewnętrzne.
Niektóre z tych aspektów można nanieść na plan środowiska pracy robota, ale najlepiej jest stwo-
rzyć dodatkowy opis środowiskowych atrybutów robota zawierający tego typu informacje.
3
Kolor jest przykładem informacji odbieranej za pomocą czujnika koloru lub światła. Od masy
przedmiotu zależy, czy robot może go podnieść (roboty są wyposażone w silniki o określonej mo-
cy i momencie obrotowym). Możliwość manipulowania przedmiotem za pomocą efektorów koń-
cowych zależy od kształtu, wysokości i powierzchni danego przedmiotu.
Każdy element charakteryzujący środowisko wchodzi w skład opisu środowiskowych atrybutów
robota. Są to cechy dotyczące na przykład wymiarów, natężenia światła i powierzchni. Wpływają
one na pracę czujników i silników. Rodzaj oświetlenia (światło słoneczne, fluorescencyjne lub ża-
rowe) ma wpływ na odbiór kolorów przez czujniki. Robot poruszający się po drewnianej pod-
łodze pracuje inaczej niż robot poruszający się po żużlu, piachu czy dywanie. Od powierzchni,
po której robot się przemieszcza, zależy szybkość obrotu kół i przebyty dystans.
W tabeli 3.2 przedstawiliśmy opis środowiskowych atrybutów pracy robota na macie testowej
Mindstorms NXT.
Poleć książkęKup książkę64
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Tabela 3.2. Opis środowiskowych atrybutów pracy robota na macie testowej Mindstorms NXT
Atrybut
Rodzaj środowiska
Szerokość
Długość
Wysokość
Kształt
Powierzchnia
Atrybut
Liczba kolorów
Natężenie światła
Kolory
Przedmiot: fizyczna przestrzeń pracy
Wartość
Deterministyczne, w pełni dostępne
60 cm
75 cm
0
Prostokąt
Papier (gładka)
Przedmiot: kolor (światło)
Wartość
16
16
Czerwony, zielony, niebieski, żółty, pomarańczowy, biały, czarny, szary, jasnoniebieski,
srebrny itd.
Przedmiot: symbole
Atrybut
Wartość
3
Symbol
Wartości całkowitoliczbowe
Geometria
Liczby całkowite
0 – 30, 90, 120, 180, 270, 360, 40, 60, 70
Linie, łuki, kwadraty
Opis środowiskowych atrybutów pracy robota na macie testowej określa środowisko pracy roboty
— informuje o jego typie (w pełni dostępne i deterministyczne), wszystkich kolorach i symbo-
lach. Ponadto zawiera on informacje o elementach napotykanych przez robota na przykład pod-
czas poszukiwania niebieskiego kwadratu. Zaprezentowany opis zawiera listę atrybutów i warto-
ści fizycznej przestrzeni roboczej, a także kolorów i symboli znajdujących się na macie testowej.
W przypadku dynamicznych środowisk takich jak opisana przez nas impreza urodzinowa opis
atrybutów pracy robota może zawierać dodatkowo informacje dotyczące zewnętrznych sił wpły-
wających na różne obiekty. Na przykład talerze i szklanki znajdują się na stole w swoich położe-
niach początkowych, ale po upływie pewnego czasu mogą został przełożone w inne miejsca stołu
przez uczestników imprezy. Nowe współrzędne określające położenia naczyń powinny być umiesz-
czone w opisie środowiskowych atrybutów pracy robota wraz z informacją o czasie, w którym do-
szło do ich przemieszczenia. Położenie wszystkich naczyń powinno być stale aktualizowane —
tylko wtedy robot BR-1 będzie mógł je zebrać po zakończeniu imprezy. W tabeli 3.3 przedstawili-
śmy opis środowiskowych atrybutów pracy robota BR-1 podczas imprezy urodzinowej.
Poleć książkęKup książkęMapowanie scenariusza pracy robota
65
Tabela 3.3. Opis środowiskowych atrybutów pracy robota BR-1 podczas imprezy urodzinowej
Przedmiot: fizyczna przestrzeń pracy
Atrybut
Wartość
Siła
Czas lub warunek
Nowa wartość
Rodzaj środowiska
Szerokość
Długość
Wysokość
Kształt
Powierzchnia
Oświetlenie
Częściowo
niedeterministyczne
300 cm
400 cm
0
Prostokąt
Papier (gładka)
Sztuczne
Atrybut
Wartość
Siła
Czas lub warunek
Nowa wartość
Przedmiot: tort
Wysokość
Średnica
Współrzędne
Położenie
Powiązane przedmioty
14 cm
30 cm
150, 200
Stół
Świeczki
Zewnętrzna
Zewnętrzna
Nie dotyczy
Nie dotyczy
Przedmiot: świeczki
Atrybut
Wartość
Siła
Czas lub warunek
Nowa wartość
Wysokość
Liczba
Współrzędne
Warunek 1.
Warunek 2.
4 cm
3
1. 153, 200
2. 150, 200
3. 147, 200
Zgaszone
Zapalone
Zewnętrzna
Nie dotyczy
BR-1
Zewnętrzna
Rozpoczęcie śpiewu
Zakończenie śpiewu
Zapalone
Zgaszone
3
Poleć książkęKup książkę66
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Tabela 3.3. Opis środowiskowych atrybutów pracy robota BR-1 podczas imprezy urodzinowej — ciąg dalszy
Atrybut
Średnica
Wysokość
Liczba
Współrzędne
Atrybut
Średnica
Wysokość
Liczba
Współrzędne
Przedmiot: talerze
Wartość
Siła
Czas lub warunek
Nowa wartość
20 cm
1 cm
4
1. 110, 215
2. 110, 180
3. 170, 215
4. 170, 180
Zewnętrzna
Po zakończeniu przyjęcia
Wszystkie ułożone w stosie w punkcie
o współrzędnych 110, 215
Wysokość: 2 cm
Przedmiot: szklanki
Wartość
Siła
Czas lub warunek
Nowa wartość
5 cm
10 cm
4
1. 119, 218
2. 105, 189
3. 165, 224
4. 163, 185
Zewnętrzna
Po zakończeniu przyjęcia
Wszystkie ułożone w stosie w punkcie
o współrzędnych 119, 218
Wysokość: 14 cm
3
W tabeli opisu środowiskowych atrybutów robota pojawiły się trzy dodatkowe kolumny:
(cid:81) Siła,
(cid:81) Czas lub warunek,
(cid:81) Nowa wartość.
Siła jest czynnikiem powodującym iterację obiektu; siłą może być dowolny czynnik środowiskowy
niezależny od robota. Czas lub warunek informuje o tym, kiedy dochodzi do interakcji siły i obiektu.
Nowa wartość mówi sama za siebie.
Wizualne planowanie scenariusza pracy robota
za pomocą pseudokodu i schematu blokowego
Tworzenie schematu blokowego ma na celu określenie przepływu sterowania. Schemat taki ma
postać sekwencji instrukcji i łączących je linii, które mogą zawierać pętle, a także operacje podej-
mowania decyzji i wyboru. Schemat blokowy opisuje proces za pomocą specjalnych pól symbolizu-
jących określone czynności. Tekst wyświetlany w tych polach opisuje zadanie, proces lub instrukcję.
Poleć książkęKup książkęWizualne planowanie scenariusza pracy robota za pomocą pseudokodu i schematu blokowego
67
Schemat blokowy jest rodzajem diagramu stanów (diagramy te omawiamy w dalszej części tego
rozdziału) — zawiera stany, które są zamieniane na czynności i działania. Schematy blokowe
umożliwiają łatwe zilustrowanie procesów decyzyjnych i powtarzanie czynności, a także przed-
stawienie skutków tych działań. Niektórzy polecają tworzenie schematów blokowych przed napi-
saniem pseudokodu. Pseudokod można łatwo zamienić na kod programu lub umieścić w jego
dokumentacji. Ponadto można go bez trudu zmodyfikować. Schemat blokowy trudniej zmodyfi-
kować i wymaga zastosowania specjalnego edytora graficznego.
W tabeli 3.4 porównaliśmy wady i zalety pseudokodu i schematu blokowego. Oba narzędzia do-
skonale nadają się do określania kolejnych kroków pracy robota. Wybór narzędzia zależy od pre-
ferencji programisty i projektu, nad którym pracuje.
Tabela 3.4. Porównanie zalet i wad pseudokodu i schematu blokowego
Technika planowania
scenariusza pracy robota
Zalety
Wady
Pseudokod:
Metoda opisu instrukcji wykonywanych
przez komputer wykorzystująca
elementy języka naturalnego
i języka programowania
Schemat blokowy:
Tworzy się go od góry do dołu strony.
Każde polecenie jest umieszczone
w polu o określonym kształcie,
a kierunek przepływu programu
określają strzałki
Łatwy do utworzenia i zmodyfikowania
za pomocą dowolnego edytora tekstu
Implementacja jest przydatna
w każdym projekcie
Łatwy do napisania i zrozumienia
Łatwy do przekształcenia na język
programowania
Technika wizualna, ułatwia
przekazanie koncepcji innym
Umożliwia bardziej efektywną
analizę problemów
Nie jest to technika wizualna
Brak standardowego stylu lub formatu
Logika jest trudniejsza do prześledzenia
Schemat przedstawiający złożone
operacje logiczne może stać się duży
i nieczytelny
Wprowadzanie zmian może wiązać się
z koniecznością rysowania schematu
od początku
3
W schematach blokowych najczęściej spotyka się cztery rodzaje symboli:
(cid:81) Start i stop: Symbol „start” (pole z etykietą „start”) oznacza początek schematu blokowego,
a symbol „stop” (pole z etykietą „stop”) sygnalizuje jego koniec. To jedyne symbole ozna-
czone słownymi etykietami.
(cid:81) Wejście i wyjście: Symbole wejścia i wyjścia zawierają dane wejściowe (np. dane dostarcza-
ne przez użytkownika) i dane wyjściowe (dane uzyskane w wyniku przetworzenia danych
wejściowych).
(cid:81) Decyzje: Symbol decyzji zawiera pytanie, na które należy odpowiedzieć.
(cid:81) Proces: Symbol procesu zawiera krótki (składający się z kilku słów) opis reguły lub wyko-
nywanej operacji.
Rysunek 3.4 przedstawia symbole używane w schematach blokowych.
Poleć książkęKup książkę68
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Rysunek 3.4.
Symbole stosowane
w schematach blokowych
3
Każdy symbol połączony jest z innym symbolem za pomocą strzałki. Symbolowi „start” towarzyszy
tylko jedna strzałka, która jest skierowana na zewnątrz, a symbolowi „stop” towarzyszy tylko jedna
strzałka, która jest skierowana do tego symbolu. Symbol „start” oznacza początek schematu blo-
kowego. Wewnątrz niego umieszczona jest etykieta z napisem „start”. Symbol „stop” natomiast sy-
gnalizuje koniec schematu blokowego. Wewnątrz niego umieszczona jest etykieta z napisem „stop”.
Symbole „start” i „stop” to jedyne znaki graficzne opatrzone słownymi etykietami. Symbol decyzji
zawiera pytanie, na które program będzie musiał odpowiedzieć. Symbol procesu zawiera krótki
(składający się z kilku słów) opis reguły lub wykonywanej operacji. Symbol decyzji styka się
z trzema strzałkami: jedną skierowaną do wewnątrz i dwiema skierowanymi na zewnątrz. Każda
z dwóch wychodzących strzałek określa ścieżkę procesu zależną od podjętej decyzji. Są one ozna-
czone etykietami:
(cid:81) prawda (tak),
(cid:81)
fałsz (nie).
Poleć książkęKup książkęWizualne planowanie scenariusza pracy robota za pomocą pseudokodu i schematu blokowego
69
Symbol procesu i symbol wejścia lub wyjścia charakteryzują się jedną strzałką skierowaną do we-
wnątrz i jedną skierowaną na zewnątrz. Wewnątrz tych symboli zapisywane są informacje o regule,
wykonywanej operacji i danych wejściowych lub wyjściowych. Na rysunku 3.5 zamieściliśmy sche-
mat blokowy operacji zapalania świeczek.
Rysunek 3.5.
Schemat blokowy
operacji zapalania świeczek
przez robota BR-1
3
Zauważ, że na początku schematu blokowego, pod symbolem „start”, pokazany jest proces cze-
kania robota BR-1 na rozpoczęcie śpiewania. Robot podejmuje decyzję określającą rozpoczęcie
śpiewania. Może on podjąć jedną z dwóch decyzji: jeżeli na postawione pytanie pada odpowiedź
„nie” (śpiewanie jeszcze się nie rozpoczęło), to robot czeka dalej, a jeżeli odpowiedź jest twierdząca
(śpiewanie się rozpoczęło), to robot zaczyna wykonywanie pętli (podejmuje kolejną decyzję).
Poleć książkęKup książkę70
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Jeżeli na torcie znajdują się jeszcze jakieś niezapalone świeczki, to robot ustala współrzędne ko-
lejnej świeczki, ustawia ramię w odpowiednim położeniu, a potem podpala knot. Operacja usta-
lania współrzędnych świeczki została przedstawiona za pomocą symbolu danych wejściowych.
Robot powinien zapalić wszystkie świeczki, a następnie zakończyć pracę.
Przepływ sterowania i struktury sterujące
Zadania wykonywane przez robota mogą być serią kolejnych czynności — sekwencyjnym prze-
pływem sterowania. Termin przepływ sterowania oznacza kierunek przetwarzania instrukcji pro-
gramu. Przepływ sterowania określa sposób, w jaki komputer reaguje na dane warunki i parame-
try. Rysunek 3.6 przedstawia przykład sekwencyjnego przepływu sterowania. BR-3 jest kolejnym
robotem obecnym na naszej imprezie urodzinowej. Ma on za zadanie otwierać drzwi gościom.
Rysunek 3.6 przedstawia sekwencyjny przepływ sterowania robota BR-3.
Rysunek 3.6.
Schemat blokowy
sterowania robota BR-3
3
Poleć książkęKup książkęWizualne planowanie scenariusza pracy robota za pomocą pseudokodu i schematu blokowego
71
Robot podchodzi do drzwi, otwiera je, mówi „dzień dobry”, a następnie zamyka drzwi i wraca do miejsca,
z którego ruszył. Zachowuje się w sposób nieco nieprzemyślany. Czy obecność gościa pod drzwiami zo-
stała zasygnalizowana dźwiękiem dzwonka? Czy po wypowiedzeniu słów „dzień dobry” robot pozwolił
wejść gościowi do środka przed zamknięciem drzwi? Robot BR-3 powinien działać w sposób przewidy-
walny. Powinien on podejmować decyzje w sposób powtarzalny, w wyniku zajścia określonych zdarzeń.
Symbol decyzji jest używany do konstruowania rozgałęzień alternatywnych przepływów sterowa-
nia programu. Symbole te mogą być stosowane do wyrażania decyzji, powtórzeń i instrukcji wa-
runkowych. Prosta decyzja ma strukturę instrukcji if-then (jeżeli, to) lub if-then-else (jeżeli, to
w przeciwnym wypadku).
Rysunek 3.7(a) przedstawia prostą instrukcję if-then opisującą proces podejmowania decyzji przez
robota BR-3: „Jeżeli (if) zadzwoni dzwonek, to (then) podejdź do drzwi i je otwórz”. Teraz robot
BR-3 będzie czekał, aż gość wejdzie, i dopiero wtedy powie „dzień dobry”. Zwróć uwagę na alterna-
tywną czynność, która jest wykonywana w przypadku, gdy gość jeszcze nie wszedł do mieszkania:
robot BR-3 poczeka 5 sekund, a następnie sprawdzi ponownie, czy gość już wszedł. Jeżeli gość
wszedł do środka, to robot wita go słowami „dzień dobry” i zamyka drzwi. Jest to instrukcja
if-then-else, którą pokazaliśmy na rysunku 3.7(b) — alternatywną czynnością jest czekanie.
Rysunek 3.7.
Schemat blokowy
instrukcji if-then i if-then-else
3
Poleć książkęKup książkę72
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Instrukcja pokazana na rysunku 3.7 sprawdza warunek zadzwonienia do drzwi. A gdybyśmy chcieli
sprawdzić więcej warunków przed otwarciem drzwi przez robota BR-3? Robot BR-1 powinien
sprawdzić kilka warunków przed zapaleniem świec:
(cid:81) „Jeżeli (if) słychać śpiew i (and) zapalniczka jest zapalona, to (then) zapal świece.”
W tym przypadku oba warunki muszą być spełnione. Taką konstrukcję nazywamy warunkiem
zagnieżdżonym.
A co, jeśli mamy do czynienia z pytaniem (warunkiem), na które jest kilka możliwych odpowie-
dzi, a każda odpowiedź ma skutkować wykonaniem innej czynności? Na przykład BR-1 lub BR-3
na swojej drodze spotka przeszkodę i musi ją obejść, aby dotrzeć do celu. W takiej sytuacji robot
może sprawdzić odległość przeszkody i określić czynność, którą należy wykonać w celu jej omi-
nięcia. Jeżeli przeszkoda znajdzie się w zasięgu działania czujników, to robot może skręcić w lewo
o 90° lub 45°, obejść przeszkodę, a następnie wrócić na standardowy tor ruchu i podążać dalej
w kierunku celu (zobacz rysunek 3.8).
Rysunek 3.8.
Omijanie przeszkód przez robota
3
Poleć książkęKup książkęWizualne planowanie scenariusza pracy robota za pomocą pseudokodu i schematu blokowego
73
Można to wyrazić na schemacie blokowym jako ciąg instrukcji wyboru. Instrukcja wyboru wy-
maga od robota podjęcia decyzji polegającej na odpowiedzeniu na pytanie, na które może istnieć
kilka różnych odpowiedzi. Podczas podejmowania ciągu decyzji dochodzi do trzykrotnego zada-
nia tego samego pytania, na które za każdym razem uzyskiwana jest inna odpowiedź, a robot za
każdym razem wykonuje inną czynność. W przypadku instrukcji wyboru pytanie jest zadawane
tylko raz. Na rysunku 3.9 został porównany ciąg decyzji z instrukcją warunkową, która sprawia,
że cały proces jest bardziej czytelny i zrozumiały.
Rysunek 3.9.
Porównanie ciągu decyzji
z instrukcją wyboru
3
Na rysunku 3.10 przedstawiliśmy powtarzanie (zapętlenie) instrukcji. W pętli sprawdzany jest
prosty warunek, a następnie wykonywana jest jakaś czynność. W zależność od jej rezultatu może
ona być wykonana ponownie. Warunek może być sprawdzany przed wykonaniem czynności
lub po. Rysunek 3.10(a) przedstawia czynność, która zostanie wykonana przynajmniej raz.
Poleć książkęKup książkę74
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Rysunek 3.10.
Schematy blokowe pętli
(a) do-until, (b) while i (c) for
3
Jeżeli warunek nie zostanie spełniony (śpiewanie jeszcze się nie rozpocznie, bo może wszyscy
zbyt dobrze się bawią), robot będzie dalej czekał. Jest to przykład pętli do-until (wykonuj (czynność)
aż do (spełnienia warunku)). Pętla while (podczas gdy) najpierw sprawdza warunek, a następnie
wykonuje czynność. Widać to na rysunku 3.10(b) — robot będzie czekał, jeśli śpiewanie jeszcze
się nie rozpoczęło. Robot BR-1 będzie wykonywał pętlę i czekał na rozpoczęcie śpiewów podob-
nie jak w przypadku pętli do-until. Różnica polega na tym, że czynność czekania jest wykonywana
po sprawdzeniu warunku. Na rysunku 3.10(c) pokazaliśmy kolejną pętlę, for, w której warunek
jest sprawdzany określoną liczbę razy podczas jej wykonywania.
Podprocedury
Określając rolę odgrywaną przez robota w danym scenariuszu, można ją rozbić na ciąg czynności.
Robot BR-1 ma odgrywać rolę gospodarza, którą można podzielić na następujące stany:
(cid:81) bezczynność,
(cid:81) przemieszczanie się,
(cid:81) zapalanie świeczek,
(cid:81) czekanie,
(cid:81) zbieranie naczyń.
Poleć książkęKup książkęWizualne planowanie scenariusza pracy robota za pomocą pseudokodu i schematu blokowego
75
Rolę tę można podzielić również na ciąg czynności lub zadań:
1. Poczekaj na rozpoczęcie śpiewania.
(cid:132) Przejdź do stołu z tortem.
(cid:132) Zapal świeczki na torcie.
(cid:132) Wróć do punktu wyjścia.
2. Poczekaj na zakończenie imprezy.
(cid:132) Sprzątnij naczynia ze stołu.
(cid:132) Wróć do punktu wyjścia.
Powyższe krótkie opisy zadań można podzielić na sekwencje kroków (podprocedury). „Zapalanie
świeczki” to złożony stan, który można podzielić na dwa podstany:
(cid:132) lokalizowanie knota,
(cid:132) podpalanie knota.
Tak naprawdę czynność „sprzątnij naczynia ze stołu” i „wróć do punktu wyjścia” również nale-
żałoby podzielić na podprocedury. Pozbieranie talerzy i szklanek ze stołu wymaga właściwego
wykonania podprocedur ustawienia ramienia robota dla każdego zabieranego naczynia, a prze-
mieszczanie się wymaga wykonywania podprocedur polegających na sterowaniu pracą silników.
Na rysunku 3.11 pokazaliśmy schemat blokowy czynności Zapalanie(cid:165)wieczek i jej podprocedur
— LokalizowanieKnota i PodpalanieKnota.
Podprocedura oznaczana jest za pomocą tego samego symbolu co proces, ale w symbolu tym
umieszczana jest nazwa podprocedury otoczona po obu bokach pionowymi liniami. Nazwą pod-
procedury może być fraza, która opisuje jej działanie.
3
Po określeniu nazw procedur możliwe staje się stworzenie schematów blokowych. Korzystanie
z podprocedur jest dobrym rozwiązaniem, ponieważ nie zmusza do natychmiastowego definio-
wania szczegółów tych operacji. Określenie dokładnego sposobu wykonywania zadań może być
na razie bardzo trudne. Najpierw możemy opracować sekwencję procesów wyższego poziomu,
a później podzielić je na czynności podrzędne.
Podprocedurę można określić i uogólnić na podstawie podobnych kroków wykonywanych w róż-
nych momentach pracy robota. Zamiast powtarzać sekwencję kroków lub opracowywać różne pod-
procedury proces można uogólnić i umieścić w jednej podprocedurze, która będzie wywoływana
w dowolnym momencie. Na przykład procedura przemieszczania się może być podzielona na se-
kwencję kroków pozwalających robotowi BR-1 pokonać drogę do stołu z tortem (Stó(cid:239)Chód) i se-
kwencję kroków umożliwiających mu powrót do punktu wyjścia (PowrótChód). Są to te same zadania,
różniące się jedynie współrzędnymi punktu początkowego i końcowego. Zamiast podprocedur
korzystających ze współrzędnych początkowych i końcowych możemy zastosować podprocedurę
Chód, która wymaga bieżących i docelowych współrzędnych robota.
Poleć książkęKup książkę76
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Rysunek 3.11.
Schemat blokowy
czynności ZapalanieŚwieczek
i jej podprocedur
— LokalizowanieKnota
i PodpalanieKnota
3
Diagramy stanów robotów i obiektów
Diagram stanów jest jednym ze sposobów umożliwiających wizualizację maszyny stanów.
UWAGA
Maszyna stanów pozwala zaprezentować zachowanie pojedynczego robota lub obiektu znajdującego się w określonym śro-
dowisku. Stany są transformacjami robota lub obiektu, do których dochodzi w wyniku określonych zdarzeń.
Zmiana stanu może polegać na czymś tak prostym jak zmiana miejsca. Gdy robot przesuwa się z poło-
żenia początkowego do kolejnego miejsca docelowego, wówczas następuje zmiana stanu robota. Innym
przykładem jest zmiana stanu świeczek znajdujących się na torcie (mogą być zapalone lub niezapalone).
Poleć książkęKup książkęDiagramy stanów robotów i obiektów
77
Maszyna stanów rejestruje zdarzenia, transformacje i reakcje. Diagram stanów przedstawia te
aktywności. Jest on używany do przedstawiania wszystkich możliwych sytuacji, w których może się
znaleźć obiekt w danym scenariuszu pracy robota. W rozdziale 2. pisaliśmy, że sytuację można
porównać do stopklatki prezentującej pewne zdarzenie wyjęte ze scenariusza. Robot BR-1 może
znaleźć się w następujących sytuacjach:
(cid:81) Sytuacja 1.: Czeka na sygnał do przejścia w nowe miejsce.
(cid:81) Sytuacja 2.: Przemieszcza się do stołu z tortem.
(cid:81) Sytuacja 3.: Znajduje się przy stole z tortem, na którym znajdują się jeszcze nie zapalone
świeczki.
(cid:81) Sytuacja 4.: Pozycjonuje ramię nad świeczkami itd.
Wszystkie te sytuacje odzwierciedlają zmiany stanu robota. Zmiana stanu robota lub obiektu za-
chodzi wskutek jakiegoś zdarzenia. Do zdarzenia może dojść w następstwie sygnału, przeprowa-
dzenia operacji lub upływu czasu. W wyniku zdarzenia następuje jakaś aktywność. Zależy ona od
bieżącego stanu obiektu. Bieżący stan określa możliwości rozwoju sytuacji.
Zdarzenie wywołuje lub stymuluje warunek niezbędny do zmiany stanu. Zmianę stanu określamy
mianem przejścia. Obiekt przechodzi ze stanu A (stanu źródłowego) do stanu B (stanu docelowego).
Na rysunku 3.12 pokazaliśmy prostą maszynę stanów ilustrującą pracę robota BR-1.
Rysunek 3.12.
Maszyna stanów
ilustrująca pracę robota BR-1
3
Rysunek 3.12 przedstawia dwa stany robota BR-1: bezczynność i chód. Robot w stanie bezczyn-
ności czeka na zdarzenie, które stanowi sygnał konieczności przemieszczenia się w inne miejsce.
Po otrzymaniu tego sygnału przechodzi ze stanu bezczynności w stan chodu i przemieszcza się do
miejsca docelowego, a następnie przechodzi z powrotem w stan bezczynności. Sygnały, czynności
i aktywności mogą być wykonywane lub kontrolowane przez obiekt bądź siły zewnętrzne. Na przy-
kład nowa lokalizacja nie zostanie wygenerowana przez robota BR-1, lecz przez inny podmiot.
Robot ten nie może sprawdzać swoich współrzędnych podczas wykonywania ruchu.
Poleć książkęKup książkę78
Rozdział 3
Wizualne planowanie scenariusza pracy robota
Tworzenie diagramu stanów
UWAGA
W przypadku diagramu stanów węzły są stanami, a linie przejściami. Stany są symbolizowane za pomocą okręgów lub prosto-
kątów z zaokrąglonymi rogami, w których umieszcza się nazwę stanu. Przejścia to linie łączące stan źródłowy ze stanem do-
celowym. Strzałki zawsze wskazują stany docelowe.
Jak już pisaliśmy, stan jest warunkiem lub sytuacją i symbolizuje transformację obiektu. Maszyna
stanów pokazuje stany i przejścia pomiędzy nimi. Można ją przedstawić na wiele sposobów — w tej
książce jest to diagram UML (diagram sporządzony w zunifikowanym języku modelowania). Diagra-
my stanów umożliwiają zapis informacji dotyczących zdarzeń, czynności, warunków, elementów
przejścia, a także rodzajów i elementów stanów.
Istnieją trzy typy stanów:
(cid:81) Stan początkowy — jest to domyślny punkt początkowy maszyny stanów. Oznaczamy go
czarną kropką, z której wyprowadzona jest strzałka do pierwszego stanu maszyny.
(cid:81) Stan końcowy — jest to stan, w którym obiekt osiągnął koniec swojego cyklu życiowego.
Symbolizujemy go za pomocą kropki umieszczonej wewnątrz okręgu.
(cid:81) Stan złożony i podstan — jest to stan zawarty w innym stanie, określanym mianem stanu
nadrzędnego lub stanu złożonego.
Stany składają się z różnych elementów. W tabeli 3.5 przedstawiliśmy elementy stanów opatrzone
krótkimi opisami. Węzeł stanu, w którym znajduje się jego nazwa, może również zawierać ele-
menty wymienione w tej tabeli. Mogą one być używane do opisu procesów, do których dochodzi
podczas przejścia obiektu do nowego stanu. Mogą istnieć akcje, które muszą zostać wykonane od
razu, gdy obiekt wejdzie w jakiś stan, lub bezpośrednio po jego wyjściu z tego stanu. Istnieją także
akcje, które muszą zostać wykonane, gdy obiekt znajduje się w danym stanie. Wszystkie te infor-
macje mogą być zawarte diagramie stanów.
3
Tabela 3.5. Elementy stanu
Element
Opis
Nazwa
Akcje wejściowe i wyjściowe
Stany złożone i podstany
Przejścia wewnętrzne
Przejścia samoczynne
Unikalna nazwa odróżniająca dany stan
Pobierz darmowy fragment (pdf)