Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00417 007295 14239796 na godz. na dobę w sumie
Programowanie robotów. Sterowanie pracą robotów autonomicznych - ebook/pdf
Programowanie robotów. Sterowanie pracą robotów autonomicznych - ebook/pdf
Autor: , Liczba stron: 352
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-2938-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> elektronika >> arduino
Porównaj ceny (książka, ebook, audiobook).
Roboty, te fascynujące maszyny, stają się coraz ważniejszym elementem naszej cywilizacji. Mają one przeróżne konstrukcje i zastosowania: rozbrajają bomby, badają odległe ciała niebieskie, montują samochody i... odkurzają dywany. Wykonują prace niebezpieczne dla człowieka, zbyt trudne albo po prostu męczące i nudne. Być może wkrótce w szpitalach i domach opieki zajmą się pielęgnacją obłożnie chorych. Roboty działają automatycznie, nieraz ciesząc się sporą dozą autonomii. Tym, co czyni je mniej lub bardziej inteligentnymi maszynami, jest oprogramowanie. Oznacza to, że programowanie robotów staje się niezwykle cenną umiejętnością!

W tej książce przedstawiono wszystkie informacje niezbędne do rozpoczęcia samodzielnej pracy z programowaniem różnych robotów: od tych całkiem prostych aż do zaawansowanych, wielofunkcyjnych urządzeń. Wyjaśniono metody programowania telerobotów, robotów autonomicznych, a także strategie programowania robotów hybrydowych. Przedstawiono zasady programowania ruchów robota za pomocą silników i obsługi różnego rodzaju czujników. Zawarto również opis technik programowania algorytmów podejmowania decyzji przez robota, wyjaśniono też kwestie przekładania instrukcji (poleceń) z języka ludzi na język zrozumiały dla robota.

Najważniejsze zagadnienia omówione w książce:

Zaprogramuj robota i stwórz maszynę przyszłości!


Cameron Hughes programuje komputery i roboty. Obecnie zajmuje się technologiami AIM (alternatywna inteligencja maszyn) i AIR (alternatywna inteligencja robotów). Hughes jest również programistą analitykiem na stanowym uniwersytecie Youngstown.

Tracey Hughes jest programistką, tworzy także systemy przeznaczone do wizualizacji epistemicznej. Pracuje nad metodami graficznej wizualizacji „myślenia” robotów i komputerów. Cameron i Tracey Hughes są członkami rady doradczej fundacji National Robotics Education Foundation.
Znajdź podobne książki Ostatnio czytane w tej kategorii

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)

Gdzie kupić całą publikację:

Programowanie robotów. Sterowanie pracą robotów autonomicznych
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: