1 Środowisko SoaR: 2 Tworzenie plików Brain 3 Ja, Robot
Transkrypt
1 Środowisko SoaR: 2 Tworzenie plików Brain 3 Ja, Robot
Laboratorium "Robotyki Mobilnej" zajęcia 4 1 Piotr Kowalski Paweł Musialik 23 maja 2010 1 Środowisko SoaR: SoaR jest środowiskiem stworzonym na MIT, przeznaczonym do testowania symulowanych i rzeczywistych robotów typu Pioneer. Do pracy w SoaR potrzebne są dwa pliki: • plik środowiska – world.py • plik algorytmów – brain.py Pliki te muszą zostać zostać załadowane do środowiska przed uruchomieniem symulacji(odpowiednio przyciski Simulation i Brain). Dodatkowe, przed kazdym uruchomieniem symulacji należy ponownie ją załądować w celu ustawienia robota w pozycji startowej oraz zapewnienia poprawnego działania odometrii. Więcej na temat środowiska SoaR można przeczytać pod podanym adresem: SoaR-manual 2 Tworzenie plików Brain Pliki brain pisane są w całości z użycie języka Python. Wymagane jest aby posiadały co najmniej dwie funkcje: def setup(): - odpowiada za początkowe ustawienia programu oraz def step(): - odpowiada za kolejne kroki działania robota; jest wywoływana w równych odstępach czasowych przez cały czas działania robota Oprócza poznanaych funkcji i komend Pythona, SoaR obsługuje kilka dodatkowych. Pełną listę z objasnieniami można znaleźć tutaj(zakładka Writing Brains). 3 Ja, Robot Podczas dzisiejszych zajęć zapoznasz się bliżej z robotem Pioneer 3DX. Podstawowe dane jakimi musisz dysponować to to, że Pioneer posiada następujące wyposażenie: • Róznicowy system sterowania pozwalający na obracanie sięw miejscu • Zespół ośmiu przednich sonarów skierowanych do przodu Sczegółowe dane na temat robota znajdziesz tutaj. Poświęć teraz chwilę na zapoznanie się z komendami jakie może wydać robotowi. Znajdź odpowiedzi na pytania: W jakich jednostkach podaje się prędkość robota? Jak w symulatorze indeksowane są sonary? W jakich jednostkach zwracana jest pozycja robota? 1 Na podstawie kusów MIT OCW http://ocw.mit.edu W jakim ukłądzie współżędnych porusza się robot? 4 W ścianę czy nie w ścianę Podstawowym celem każdego żywego organizmu jest unikanie obrażeń. Jeżeli nie wykazujesz skłonności sadystycznych(dla maszyn i naszego portfela) powinieneś zapewnić robotowi względne bezpieczeństwo. Napisz program powodujący poruszanie się robota do przodu oraz jego zatrzymanie się w odległości 30 cm od ściany. 5 "You spin me ..." Kiedy już zatroszczyłeś się o bezpieczeństwo swojego elektronicznego podopiecznego wypadałoby nauczyć go poruszania się inaczej niż po prostej. Napisz funkjcę, któa pozwala na obracanie sie robota o określony kąt. Powinna ona być wywoływana w funkcji step pliku zawierającego mózg(brain) robota. Spawdź dokładność obortu. Postaraj się, żeby nie była mniejsza niż 5 st. 6 Stalker Teraz twój robot potrafi się już poruszać. Brawo! Właśnie uzyskał mobilnośc rocznego dziecka. I prawdopodobnie tak jak ono chciałby pozwiedzać. Wypadałoby mu to umożliwić. Napisz program umozliwiający porzuszanie się robota wzdłuż ściany. Założenia: • robot startuje poruszając się prosto i skręca w prawo po znalezieniu ściany • ściana znajduje się zawsze po prawej stronie robota w odległości 30-50 cm Podczas rozwiązywania problemu zwróć szczególną uwagę na przypadki: • róg pokoju (ściana skręca w prawo) • róg korytarza(ściana skręca w lewo) • koniec ściany(konieczność objechania krawędzi) Podpowiedź: Podejdź do poruszającego się robota jak do układu ze stanami. Robot nie skręca w lewo, a znajduje sie w stanie skręt. Nie napotkał rogu korytarza, a jest w stanie skręt po rogu. Rozrysuj sobie wszystkie możliwe stany i połączenia międyz nimi. Staraj się zachować jak najmniejszą ilośc stanów. 7 Kartograf(do domu) Jeżeli twój robot biega wzdłuż ścian jak rasowy karaluch, czas zaprząc go do czegoś użytecznego. Używając danych z pomiarów odometrycznych robota oraz danych z sonaru, wykreśl mapę środowiska w którym porusza się robot. Porównaj wynik z wzorcem środowiska.