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.