1 ARIA:

Transkrypt

1 ARIA:
Laboratorium "Robotyki Mobilnej" zajęcia 5 1
Piotr Kowalski
Paweł Musialik
▪ 23 maja 2010
1 ARIA:
Aria jest zbiorem bibliotek C++ udostępnianych przez Mobile Robots,
przeznaczonych do współpracy i obsługi oferowanych przez nich robotów. Jest dostępna pod
systemem Windows lub dowolną dystrybucją systemu Linux. Biblioteka ma różnorodne
zastosowania: od prostego sterowania pojedynczych robotów, poprzez implementacje
algorytmów mapowania, do tworzenia złożonych projektów wielorobotowych. Więcej
informacji na temat biblioteki można znaleźć tutaj.
Oprócz bibliotek C++ Aria zawiera również wersję dla języków Python i Java.
Podczas dzisiejszych zajęć będziemy korzystać z wersją dla Pythona. Poniżej przedstawione
są podstawowe klasy wraz z najważniejszymi metodami, które będą nam potrzebne:
ArRobot() - podstawowa klasa robota; dzięki niej możemy wydawać rozkazy oraz sczytywać
dane z robota. Obiekt robota deklarujemy następująco:
robot=ArRobot()
Klasa ArRobot ma następujące przykładowe metody:
•
move(k)-przejdź k mm
•
setVel(f)-ustaw prędkość f mm/s
•
setVel(f1,f2)-umożliwia ustawienie prędkości dla każdego z kół
•
setHeading(n)-powoduje obróceni się robota do kąta n(podane w stopniach)
mierzonego w bezwzględnym układzie współrzędnych
•
getSonarRange(i)-pobiera wartość mierzone odległości dla sonaru i
•
getPose()-zwraca aktualną pozycję robota
ArSonarDevice() - klasa reprezentująca sonar; dołącza się ją do robota
ArUtil.sleep(k) – polecenie czekania k ms
UWAGA!
Podczas wydawania rozkazów robotowi, konieczne jest zablokowanie od niego dostępu
poprzez komendę robot.lock(). Wydane polecenia są wykonywane po odblokowaniu:
robot.unlock(). Przykład:
robot.lock()
robot.move(500)
robot.unlock()
ArUtil.sleep(2000) #dajemy 2 sekundy na wykonanie zadania
1
Na podstawie kusów MIT OCW http://ocw.mit.edu
2 Roboty
Podczas zajęć będziemy używać 2 rodzajów robotów:
•
Amigobot - robot o napędzie różnicowym, wyposażony w 6 przednich i 2 tylne sonary
•
Pioneer 3DX - robot o napędzie różnicowym, wyposażony w 8 sonarów przednich i 8
tylnych
Dokładniej informacje o robotach można znaleźć pod linkami.
Aby zaprogramować robota należy podłączyć go od komputera za pomocą kabla
RS232. Na zajęciach udostępniony zostanie program szkieletowy z zaimplementowanymi
komendami pozwalającymi na połączenie się z robotem. Do zrealizowania będą 3
zadania,które będą wykonywane dwoma metodami: na robocie i symulacyjną:
•
Uruchomienie programu na robocie:
◦ podłączenie robota do komputera za pomocą udostępnionego kabla(należy się
upewnić, że przejściówka USB-RS232 jest ustawiona jako port COM1(lista
urządzeń USB i menadżer urządzeń)
◦ zapisanie programu w pliku podstawowy.py , umieszczonym na pulpicie(należy
wpisać wszystkie komendy w wyznaczonym do tego miejscu)
◦ dwukrotne kliknięcie na wspomnianym pliku
•
Uruchomienie programu:
◦ uruchomienie
symulatora
MobileRobots->MobileSim)
MobileSim
(menu
Start->Programy->
◦ analogicznie z punktem 2 i 3 dla robota(plik może nazywać się simple.py)
3 Test kwadratu
Pierwszym zadaniem będzie przeprowadzenie tzw testu kwadratu na podstawie, którego
określona zostanie jakość odometrii robota. Test polega na przejechaniu robotem po kwadracie o
boku określonej długości, tylko na podstawie danych z odometrii. Następnie mierzone jest
odchylenie pozycji startowej od końcowej. Plan zadania:
•
napisz program umożliwiający robotowi poruszanie się po kwadracie
•
wykonaj kilka pomiarów dla różnych długości boków kwadratu
•
wykonaj wykres błędu w zależności od długości boku kwadratu
•
opracuj wnioski
4 P oążd a n i e
Drugim zadanie jest napisanie prostego programu podążania za obiektem. Robot stara
się zachować stały dystans od obiektu znajdującego się na wprost niego. Jeżeli obiekt się
przybliża, robot cofa się, jeżeli oddala, podąża za nim. Dystans od obiektu będzie mierzony za
pomocą sonarów. Podczas wykonania zadania postaraj się odpowiedzieć na następujące
pytania:
Jaki jest zakres działania sonarów? Jak są indeksowane?
Czy sonary zawsze wskazują poprawne wartości odległości?
Jakie są powody ewentualnych błędnych pomiarów?
Jakie czynniki mają wpływ na dokładność zachowywanego dystansu?
5 Nawigacja
Trzecim zadanie jest napisanie programu pozwalającemu robotowi na poruszanie się z
punktu startowego do punktu końcowego o zadanych współrzędnych. W trakcie jazdy robot
dodatkowo zbiera i zapisuje do pliku pomiary z sonarów robota. Następnie na podstawie
zabranych danych należy wykonać mapy pomieszczenia w którym znajduje się robot. Czy są
one dokładne? Jakie czynniki wpływają na dokładność mapy?
6 Przeszkody(opcjonalny)
Wzbogać program z punktu 5 w prosty algorytm omijania przeszkód.

Podobne dokumenty