Robot mobily Khepera III 1. Budowa Robot porusza się a dwóch kółkach, umieszczoych w jedej osi, obleczoych gumą dla uzyskaia lepszej przyczepości. Dodatkowo Khepera III podparty jest w jedym pukcie, co zapewia stabile poruszaie się w przestrzei roboczej. Dookoła obudowy robota umieszczoych jest 9 czujików podczerwiei oraz dodatkowo 2 pod spodem (czujiki zbliżeiowe), umożliwiających wykrywaie a iedaleką odległość przeszkód, bądź krawędzi stołu, po którym robot się porusza. Robot ma rówież możliwość zmierzeia odległości od przeszkody, za sprawą pięciu wbudowaych sesorów ultradźwiękowych (soary). Do apędu wykorzystao dwa wysokiej klasy siliki DC (jede dla każdego koła) zapewiające sprawe i dokłade sterowaie ruchem robota. Obydwa koła robota apędzae są silikami DC sprzężoymi z przekładią o przełożeiu 43.2:1. Siliki mają włase wbudowae ekodery przyrostowe, umiejscowioe a osi silika, dające 16 impulsów a obrót wału silika. W sumie daje to 2764.8 impulsów a obrót koła, co odpowiada 21.47 impulsom a milimetr przejechaej drogi (średica koła wyosi 41 mm, co daje 128.8 mm przejechaej drogi a peły obrót tarczy koła). Maksymala osiągala prędkość robota wyosi 298 mm/s. Rys. 1. Widok robota Khepera III Rozmieszczeie czujików zbliżeiowych przedstawia rysuek 2. Czujiki zbliżeiowe ie dają iformacji o odległości od przeszkody, jedyie o jej bliskości (odczyt rośie w miarę zbliżaia się do przeszkody). Czujiki podczerwiei mogą rówież pracować jako czujiki światła. Rys. 2. Rozmieszczeie czujików zbliżeiowych (widok od spodu) Czujiki zbudowae są z adajika światła podczerwoego i odbiorika. Taka budowa czujików umożliwia dokoywaie dwojakich pomiarów: - Pomiar atężeia podczerwiei w otoczeiu robota. Te rodzaj pomiaru wykorzystuje jedyie część odbiorczą czujika, ie jest emitowae żade światło z adajika. Każdy pomiar według specyfikacji trwa 33ms. Podczas tego czasu, wartość pomiarów z jedeastu czujików jest odczytywaych sekwecyjie po 3 ms a czujik. Pomiar światła otaczającego jest silie uwarukoway od otoczeia robota. Zależie od
rodzaju użytego oświetleia, jego koloru, odległości, pomiar światła otaczającego może być zacząco odmiey. Nie zaleca się stosowaia źródeł światła emitujących duże ilości światła w zakresie podczerwiei poieważ może to zdezorietować robota. Pomiar tego typu może być wykorzystay p. do implemetacji algorytmów podążaia za źródłem ciepła. - Pomiar atężeia światła odbitego. Te rodzaj pomiaru jest wykoyway z wykorzystaiem obu części czujika: odbiorika i adajika. Wartość zwracaego pomiaru jest różicą pomiędzy pomiarem dokoaym podczas emitowaia światła przez adajik, a pomiarem bez użycia adajika (pomiarem atężeia światła otaczającego). Tak jak w poprzedim przypadku pomiar trwa 33 ms, a wartości pomiarów z czujików odczytywae są sekwecyjie. W tym trybie czujiki są używae do detekcji obiektów w otoczeiu robota. Pomiary światła odbitego są uwarukowae od zdolości obiektów do odbijaia promiei jak i waruków oświetleiowych wokół robota. Kolor obiektów, materiał z którego są wykoae jak i rodzaj powierzchi mogą rówież mieć wpływ a wyiki pomiarów. Rys. 3. Rozmieszczeie czujików odległości (soarów; widok z góry) Na obwodzie robota zajduje się 5 czujików ultradźwiękowych. Każdy czujik ultradźwiękowy składa się z adajika i odbiorika. Działają oe a zasadzie soarów, dlatego czasami też moża spotkać się z określeiem czujiki soarowe. Pięć czujików jest w zasadzie pięcioma parami ultradźwiękowych urządzeń, gdzie każda para jest złożoa z adajika i odbiorika. Czujiki ultradźwiękowe są zasilae prądem stałym o apięciu 20 V. Nomiala częstotliwość pracy czujików to 40 khz +/- 1 khz. Parametry takie jak maksymala liczba ech, czas pomiaru i aktywe czujiki są ustawiae poprzez komedy z iterfejsu programistyczego. Domyślie ustawieia te mają astępujące wartości: maksymala liczba ech rówa 3, aktywy sesor sesor r 3 (sesor przedi), czas pomiaru ustawioy jest tak aby sesor swoim zasięgiem pokrywał obszar od 0.2 m do 4.0 m. Ostati parametr jest ustawioy dla domyślej sytuacji gdy góra obudowa robota jest zaistalowaa. W takim przypadku, pojawiają się zakłóceia odczytów spowodowae odbiciami dźwięku, które są usuwae programowo. Jedak poprzez zdjęcie obudowy możemy usprawić wykrywaie obiektów w ajbliższym otoczeiu robota ( 0.2-0.4 m). Każdy pomiar zwraca liczbę wykrytych ech, dystas w cetymetrach od przeszkody, amplitudę echa oraz czas (zaczik czasowy) kiedy echo zostało wykryte.
2. Reprezetacja położeia robota Przyjęto, że współrzęde pozycji Khepery odpowiadają lokalizacji puktu przecięcia osi robota z osią jego kół. Do awigowaia robotem ie wystarcza zajomość jego położeia. Aby móc skierować go w odpowiedim kieruku, trzeba rówież dyspoować wiedzą o jego aktualej orietacji. Dlatego współrzęde robota są reprezetowae przez 3 zmiee (x, y, α). Aktuala orietacja jest mierzoa względem startowej w stroę przeciwą do ruchu wskazówek zegara. Przy wykoywaiu obrotów wokół pioowej osi robota koła przesuwają się po okręgu. Biorąc pod uwagę odległość między kołami robota, a peły obrót przypada 5934.45 impulsów z ekoderów. Kieruek, w którym porusza się robot, wyzaczay jest z różicy wartości wskazywaych przez ekodery a obu kołach: ek _ p ek _ l 180 5934.45 (1) Dla określeia aktualej pozycji robota potrzeba jest wartość ekoderów przed rozpoczęciem i po zakończeiu ruchu. Pokoay dystas jest wyzaczay poprzez porówaie średich arytmetyczych wskazań ekoderów przed rozpoczęciem i po zakończeiu ruchu. ek _ l ek p ek l 1 ek _ p 1 dist 2 2 (2) Aktuale położeie robota wyzaczae jest z zależości: x y x y 1 1 dist cos( ) 21.47 dist si( ) 21.47 (3) gdzie dzieleie przez 21.47 wyika z przeliczeia liczby impulsów z ekoderów a [mm] przebytej drogi. 3. Programowaie robota Podstawowym sposobem komuikacji pomiędzy komputerem a robotem mobilym Khepera III jest protokół komuikacji szeregowej RS232. Podczas takiej komuikacji komputer pracuje jako master a robot Khepera jako slave. Każde połączeie z robotem jest iicjowae przez komputer, a komuikacja realizowaa jest poprzez przesyłaie komuikatów ASCII. Każde pojedycze połączeie składa się z dwóch części: - rozkazu wysyłaego z komputera: rozpoczyającego się dużą literą, po której astępują (jeśli są koiecze) umerycze lub zakowe parametry oddzieloe przecikiem, - odpowiedzi, wysyłaej z robota do komputera: rozpoczyającej się małą literą (taką jak w rozkazie), po której astępują (jeżeli rozkaz dotyczy odczytu stau czujików) umerycze parametry odpowiedzi oddzieloe przecikami.
Dostępe rozkazy moża podzielić a dwie grupy: - rozkazy dotyczące kofiguracji robota (ustawieie parametrów protokołu szeregowego, ustawiaie parametrów regulatorów położeia i prędkości, ustawiaie parametrów soarów), - rozkazy związae ze sterowaiem robota (zadawaie pozycji, zadawaie prędkości, odczyt czujików zbliżeiowych, odczyt czujików światła, odczyt odległości z soarów). Istrukcje dla środowiska Matlab/Simulik dla Khepera3 Taki sposób komuikacji z robotem Khepera umożliwia programowaie przy użyciu dowolego oprogramowaia udostępiającego łączość poprzez port szeregowy COM. Na bazie udostępioych dla robota rozkazów zrealizoway został zestaw fukcji pozwalających a programowaie w środowisku Matlab-a: kope( COMx ) gdzie x umer portu: otwiera port szeregowy COMx dla komuikacji z robotem oraz ustawia parametry protokołu (115200bps, 8 bitów daych, 1 bit stopu, brak parzystości, brak kotroli przepływu). Użycie fukcji ref = kope( COM5 ) powoduje otwarcie połączeia z robotem poprzez port COM5 i przypisaie pod zmieą ref. Dalsza komuikacja z robotem odbywa się poprzez zmieą ref. kclose(ref) fukcja zamykająca połączeie z robotem. Fukcje służące do ustawiaia kofiguracji robota: kcofsesor(ref,_ses) ustawiaie ilości aktywych soarów (stadardowo ustawioy jest tylko środkowy soar) ---------------------------------------------------------------------------------------------------------- kcofsesecho(ref, _echo) ustawiaie ilości ech zwracaych przez każdy z aktywych soarów (stadardowo zwracae są 3 echa) ----------------------------------------------------------------------------------------------------------- kiitmotors(ref) iicjalizacja i reset silików kbatterystate(ref,idex) odczyt stau akumulatora; idex wybiera: apięcie, prąd, średi pobór prądu, pojemość lub temperaturę. Fukcje służące do sterowaia robotem: -- kambiet(ref) fukcja zwraca wektor 11 wartości odczytaych z czujików światła -- kproximity(ref) zwraca wektor 11 wartości odczytaych z 12-to bitowych czujików zbliżeiowych (wartość ajwiększa blisko przeszkody)
kgetmeasure(ref, us_umb) odczyt odległości w [cm] z wybraego czujika ultradźwiękowego (us_umb) kreadpos(ref) odczyt położeia z liczików ekoderów lewego i prawego koła; wartość zwracaa jest w postaci liczby impulsów (pojedyczy impuls odpowiada odległości 0.047 mm) kreadspeed(ref) odczyt prędkości silika lewego i prawego koła; wartość zwracaa jest w postaci liczby impulsów ksetpos(ref,left,right) ustawieie zawartości liczików ekoderów pozycji ksetspeed(ref,left,right) zadawaie prędkości dla lewego i prawego koła (utrzymaie zadaej prędkości przez regulator PID); zadawaie w postaci liczby impulsów; wartość z zakresu: 2000 40000 ksetspeedprofile(ref,max_speed,acceleratio) ustawiaie parametrów trapezoidalego profilu zmia prędkości (przyspieszeie i maksymala prędkość); default: max_speed=20000, acc=64 ksettargetpos(ref,left,right) zadawaie pozycji do jakiej ma dojechać robot (pozycja dla lewego i prawego koła); pozycja zadawaa jest w impulsach (pojedyczy impuls odpowiada odległości 0.047 mm); ruch robota jest realizoway bez kształtowaia przyspieszeia ksettargetprofile(ref,left,right) zadawaie pozycji do jakiej ma dojechać robot; pozycja zadawaa w impulsach; ruch jest realizoway z zadaym przyspieszeiem i prędkością maksymalą (ustalaą rozkazem ksetspeedprofile) kstop(ref) zatrzymaie robota 4. Program ćwiczeia Wykorzystując iformacje z czujików zbliżeiowych zaimplemetować w środowisku Matlab-a i przetestować działaie: - algorytmu ruchu robota w iezaym otoczeiu z omijaiem przeszkód