Zezwala się na korzystanie z artykułu na warunkach licencji Creative Commons Uznanie autorstwa 3.0

Artykuł recenzowany nadesłany 20.03.2015 r., przyjęty do druku 20.03.2015 r.

DOI: 10.14313/PAR_216/49

Zastosowanie regulatora PID w napędzie autonomicznego robota mobilnego

Szczepan Paszkiel, Mariusz Sikora

Politechnika Opolska, Wydział Elektrotechniki, Automatyki i Informatyki, Instytut Automatyki i Informatyki, ul. Sosnkowskiego 31, 45-271 Opole

Streszczenie: W artykule omówiono zastosowanie regulatora PID w napędzie robota mobilnego oraz przedstawiono jego projekt i implementację praktyczną. W wyniku zaimplementowania czujników odległości oraz odpowiednio dobranych algorytmów sterowania, robot może omijać znajdujące się na trajektorii jego ruchu przeszkody. Jednym z zadań zastosowanego w układzie sterowania robota regulatora PID jest utrzymywanie zadanej prędkości obrotowej szczotkowego silnika prądu stałego. W artykule przedstawiono także wyniki badań określających efektywność pracy regulatora w opisanej implementacji.

Słowa kluczowe: regulator PID, robot mobilny, sterowanie

1. Wprowadzenie

Od kilkudziesięciu lat zainteresowanie zastosowaniami robotów w wielu dziedzinach życia wzrasta bardzo dynamicznie. Ewoluują także metody sterowania implementowane w robotach mobilnych. Zmieniają się interfejsy do ich sterowania. Coraz częściej sterowanie robotów odbywa się bez konieczności użycia kończyn, co jest szczególnie istotne dla osób niepełnosprawnych. W tego typu przypadkach stosowane implementacje bazują na technologii mózg-komputer [1]. Sygnał wykorzystywany do sterowania jest najczęściej pobierany za pomocą elektrod umieszczanych bezpośrednio na powierzchni głowy osoby sterującej robotem [2]. Alternatywą do wyżej wymienionej koncepcji, jest sterowanie autonomiczne, polegające na zaimplementowaniu w pojeździe mobilnym algorytmu sterowania w korelacji z czujnikami [3]. Może być to na przykład algorytm heurystyczny A*, który polega na znajdowaniu najkrótszej ścieżki w grafie ważonym z dowolnego wierzchołka do wierzchołka spełniającego test celu. Algorytm jest zupełny i optymalny, ponieważ znajduje ścieżkę, jeśli taka istnieje i jest to ścieżka najkrótsza. W celu zapewnienia autonomiczności pracy robota często spotykanym rozwiązaniem jest wyposażenie go w czujniki odległości, system wizyjny, etc. [4].

Napęd różnicowy zastosowany w prezentowanej konstrukcji jest rozwiązaniem sprawdzonym, używanym w robotach dostępnych na rynku, np. MP400 [5], RoboCourier [6] lub Pioneer 3-DX [7]. Również algorytm planowania trasy A* nie jest zagadnieniem nowym [8]. W zmienionej – udoskonalonej formie, nazwanej „Field D*”, algorytm stosowany jest w łazikach marsjańskich Spirit i Opportunity [9].

Rozpatrywane urządzenia różnią się rodzajem zastosowanych czujników odległości. W robotach MP400, RoboCourier oraz Pioneer 3-DX zainstalowane są czujniki laserowe takie jak SICK S300 oraz ultradźwiękowe. W pojazdach marsjańskich korzysta się z kamer stereoskopowych, natomiast w opisywanym robocie pomiar odległości jest wykonywany za pomocą czujników wysyłających wiązkę światła z zakresu podczerwieni. Innym zagadnieniem, o którym warto wspomnieć, jest lokalizacja komputera, który wylicza planowaną trasę. W robotach Spirit i Opportunity zadanie to wykonują komputery zainstalowane na ich pokładach. Natomiast w opisywanej w artykule konstrukcji obliczenia wykonywane są przez program uruchomiony na komputerze PC, a ich wyniki przekazywane są do robota drogą radiową.

Celem pracy scharakteryzowanej w artykule jest opracowanie autorskiego robota mobilnego począwszy od wizualizacji prototypu w programie do obróbki grafiki 3D, po wykonanie części mechanicznej oraz elektrycznej obiektu. W tym celu wdo realizacji projektu wybrano i zastosowano między innymi: mikrokontroler, czujniki odległości, silnik krokowy, moduł Bluetooth. W projekcie zastosowano także cyfrowy regulator PID w aspekcie realizacji napędu autonomicznego robota mobilnego, przedstawiono schemat blokowy układu regulacji oraz zbadano jego pracę. Ponadto przedstawiono wykresy obrazujące ruch po trajektorii liniowej oraz kołowej pojazdu mobilnego. Dla koła lewego i prawego robota porównano wartości zadane ze zmierzonymi, co zobrazowano na wykresach wraz z wypełnieniem sygnału PWM.

2. Robot mobilny

Główną funkcją realizowaną przez urządzenie będzie autonomiczne przemieszczanie się do wskazanego miejsca. Przez autonomiczne przemieszczanie się należy rozumieć taki ruch, który odbywa się bez ingerencji człowieka. Za planowanie trajektorii między punktem początkowym i docelowym oraz przemieszczanie się po zaplanowanej trajektorii odpowiadać będą algorytmy zaimplementowane w programach sterujących. Punkt docelowy określony będzie w układzie kartezjańskim za pomocą współrzędnych x oraz y. Jako początek układu współrzędnych przyjmuje się punkt, w którym robot znajduje się w momencie uruchomienia programu. Do utrzymywania zadanej prędkości obrotowej kół użyty zostanie algorytm regulacji PID.

Robot wykonany będzie jako pojazd dwukołowy – tym samym, dwa koła napędowe przymocowane będą do podwozia na stałe, a dodatkowy punkt podparcia tworzyć będzie koło samonastawne. Zmiana kierunku poruszania odbywać się będzie przez odpowiednie zróżnicowanie prędkości obrotowej silników napędzających koła. Do wykrywania przeszkód wykorzystane zostaną czujniki odległości zamocowane na wysięgniku – czujniki te wraz z wysięgnikiem obracane będą za pomocą silnika krokowego zapewniając kąt widzenia ok. 180°.

Program sterujący odpowiedzialny za planowanie trajektorii uruchomiony na komputerze PC wykonany zostanie w języku Java. Będzie on umożliwiał przesłanie do robota komend powodujących wykonanie ruchu. W oknie programu w sposób graficzny przedstawiane będą również informacje o przeszkodach, odczytane przez czujniki odległości [10]. Do wyznaczania trajektorii zastosowany zostanie algorytm A*. Komunikacja między komputerem PC a robotem przeprowadzona będzie w technologii Bluetooth.

2.1. Projekt – część mechaniczna

Po wstępnej wizualizacji projektu przez opracowanie konstrukcji obudowy w programie do grafiki 3D (rys. 1) wykonana została obudowa prototypowa (rys. 2).

Rys. 1. Wizualizacja projektu prototypowej obudowy

Fig. 1. Visualization of prototype casing

Rys. 2. Prototypowa obudowa robota

Fig. 2. The robot prototype

Po sprawdzeniu słuszności koncepcji docelowa obudowa została wytworzona ze szkła akrylowego (rys. 3) za pomocą frezarki CNC (ang. Computer Numerical Control). Zachowane zostały wszystkie wymiary charakterystyczne sprawdzone w prototypie, np.: średnica kół oraz rozstaw kół (rys. 4).

Rys. 3. Obudowa robota wykonana za pomocą frezarki CNC

Fig. 3. The casing robot made using CNC milling machine

Rys. 4. Wymiary gabarytowe urządzenia

Fig. 4. Overall dimensions of the mobile robot

2.2. Projekt – część elektryczna

Układ połączeń między poszczególnymi elementami przedstawiony został na schemacie ogólnym korelacji poszczególnych komponentów robota (rys. 5). Na konstrukcję składają się: mikrokontroler (I), czujniki odległości (II), sterownik silnika krokowego (III), silnik krokowy (IV), sterownik silników prądu stałego (V), silniki szczotkowe wraz z enkoderami (VI), moduł komunikacji Bluetooth (VII) oraz wyświetlacz LCD (ang. Liquid-Crystal Display) (VIII).

Rys. 5. Schemat ogólny połączeń elementów

Fig. 5. General diagram of connections between elements

2.2.1. Mikrokontroler STM32F407VGT6

Robot wyposażony został w 32-bitowy mikrokontroler z rdzeniem Cortex-M4F (STM32F407VGT6) o następującej charakterystyce: 1 MB pamięci Flash, 192 kB pamięci RAM, częstotliwość taktowania: 168 MHz, 3× 12-bitowy przetwornik analogowo-cyfrowy, 14 liczników (w tym 2 liczniki 32-bitowe, pozostałe – 16-bitowe), 80 linii portów GPIO (ang. General-Purpose Input/Output), układy sprzętowej obsługi interfejsów komunikacyjnych m.in.: USART (ang. Universal Synchronous Asynchronous Receiver Transmitter), SPI (ang. Serial Peripheral Interface). Do zadań mikrokontrolera w projektowanym autonomicznym robocie mobilnym należy:

– pomiar napięciowego sygnału wyjściowego z czujników odległości przez przetwornik analogowo-cyfrowy, a następnie przeliczanie zmierzonej wartości napięcia na odległość;

– sterowanie pracą silnika krokowego – wybór kierunku obrotu oraz przesyłanie impulsów sterujących obrotem osi; generowanie dwóch sygnałów PWM (ang. Pulse-Width Modulation), dzięki którym regulowana jest prędkość obrotowa silników prądu stałego, oraz ustawianie odpowiednich stanów dla linii portów GPIO, co umożliwia wybór kierunku obrotu silników;

– zliczanie impulsów dostarczanych przez enkodery;

– komunikacja za pomocą sprzętowego interfejsu UART z modułem Bluetooth – odbiór oraz wysyłanie słów 8-bitowych;

– komunikacja za pomocą programowego interfejsu SPI z wyświetlaczem LCD – wysyłanie 9-bitowych rozkazów sterujących.

2.2.2. Czujniki odległości

Do pomiaru odległości zastosowano czujniki Sharp GP2Y0A710K0F oraz GP2Y0A02YK0F. Każdy ze wspomnianych czujników ma diodę emitującą światło z zakresu podczerwieni oraz czujnik PSD (ang. Position Sensitive Detector). Wiązka światła odbita od przeszkody pada pod pewnym kątem na soczewkę umieszczoną przed czujnikiem PSD – odległość do przeszkody wyznaczana jest na zasadzie triangulacji. Czujniki odległości mają analogowe wyjścia napięciowe o nieliniowej charakterystyce. Omawiane urządzenia różnią się zakresem odległości, jakie mogą zmierzyć. Podane w kartach katalogowych zakresy wynoszą: GP2Y0A02YK0F – zakres od 20 cm do 150 cm; GP2Y0A710K0F – zakres od 100 cm do 550 cm.

Jak wynika z przeprowadzonych badań – ze względu na nieliniową charakterystykę sygnału wyjściowego w funkcji odległości – nie cały zakres okazał się być zakresem użytecznym. Związane jest to ze spadkiem czułości wraz ze wzrostem mierzonej odległości. Użyteczny zakres, w którym działa czujnik GP2Y0A02YK0F, został przyjęty w granicach od 16 cm do 130 cm, natomiast dla czujnika GP2Y0A710K0F: od 80 cm do 300 cm. Nieliniowe charakterystyki wyjściowe czujników aproksymowane są równaniami liniowymi – wybór odpowiedniego równania liniowego zależy od przedziału, w którym znajduje się napięcie odczytane przez przetwornik analogowo-cyfrowy. Spadek czułości wraz ze wzrostem mierzonej odległości powoduje spadek dokładności pomiarów. Na dokładność pomiarów ma również wpływ umieszczenie czujników w stosunkowo niewielkiej odległości nad powierzchnią, po której porusza się robot. Zaobserwowano, że oddalenie czujników od powierzchni, po której porusza się robot, powoduje poprawę dokładności pomiarów – poskutkowało to wprowadzeniem zmiany w konstrukcji mechanicznej, która polegała na zwiększeniu tej odległości.

Bardzo ważnym czynnikiem wpływającym na dokładność pomiarów jest wartość napięcia zasilającego czujniki. Według producenta powinny one być zasilane napięciem z przedziału od 4,5 V do 5,5 V. Urządzenia zasilane są z pakietu akumulatorów 4 ×AA Ni-MH (ang. Nickel–Metal Hydride battery), a więc przy pełnym naładowaniu akumulatorów powinny być zasilane napięciem: 1,2 V·4 = 4,8 V. Jak wynika z przeprowadzonych pomiarów w stosunkowo krótkim czasie, po pewnym rozładowaniu akumulatorów następował spadek napięcia zasilania czujników, co wprowadzało błędy pomiarowe. Rozwiązaniem tego problemu było zastosowanie układu stabilizującego napięcie zasilania czujników odległości – użyty został moduł Pololu 5V Step-Up/Step-Down Voltage Regulator S10V4F5. Jego zadaniem jest utrzymywanie napięcia wyjściowego na poziome 5 V, jednocześnie jego zasilanie może znajdować się w przedziale od 2,5 V do 18 V, a wydajność prądowa wynosi 400 mA. Nie bez znaczenia na wynik pomiaru ma również kolor, gęstość optyczna oraz współczynnik załamania powierzchni, od której odbija się światło podczerwone. Należy też zauważyć, że oba czujniki nie powinny być włączone w tym samym momencie, gdyż oba pomiary są wtedy niepoprawne.

2.2.3. Sterownik silnika krokowego

Moduł zawierający sterownik silnika krokowego Texas Instruments DRV8834 połączony jest z mikrokontrolerem za pomocą 3 linii portów GPIO – sterowanie odbywa się przez zmianę stanu na tych liniach. Wspomniany układ TI DRV8834 to układ scalony zawierający w swojej strukturze tranzystory MOSFET (ang. Metal–Oxide–Semiconductor Field-Effect Transistor) z kanałem typu N połączone tak, aby tworzyły dwa mostki H. Układ ten może sterować bipolarnym silnikiem krokowym lub dwoma silnikami prądu stałego. Ważniejsze cechy układu scalonego TI DRV 8834:

– max. prąd wyjściowy ciągły: 1,5 A,

– max. chwilowy prąd wyjściowy: 2,2 A,

– napięcie zasilania silnika: od 2,5 V do 10,8 V.

Układ ten, poza mostkami H ma również zintegrowane elementy, które ułatwiają sterowanie silnikiem krokowym. Podanie impulsu na wejście STEP powoduje obrót silnika krokowego o jeden krok. Wybór kierunku obrotu odbywa się przez podanie na wejście DIR stanu wysokiego lub niskiego. Istnieje również możliwość przejścia w tryb obniżonego poboru energii, do czego służy wejście SLEEP.

Warto zauważyć, że zastosowanie omawianego układu scalonego czyni użycie silnika krokowego prostszym – aby wykonać krok należy podać jedynie impuls – program zaimplementowany w mikrokontrolerze nie musi zawierać fragmentu kodu odpowiedzialnego za sterowanie wieloma liniami GPIO [11].

2.2.4. Silnik krokowy

Obrót wysięgnika, na którym umieszczone są czujniki odległości realizowany jest za pomocą bipolarnego silnika krokowego typu PG15 sprzężonego z przekładnia planetarną 102,5:1. Jeden krok silnika wynosi 18°, co daje ok. 0,1756° obrotu wału wyjściowego przekładni. Ważniejsze parametry silnika krokowego to:

– napięcie zasilania: 5 V,

– kąt obrotu jednego kroku: 18°,

– moment trzymający: 2 kg·cm,

– przekładnia planetarna: 102,5:1.

Silnik krokowy wykonuje obrót w zakresie od -84° do +84°. Pomiar odległości wykonywany jest co 4 kroki, co generuje rozdzielczość 240 pomiarów na 168°.

2.2.5. Sterownik silników prądu stałego

Moduł zawierający układ scalony Toshiba TB6612FNG, za pomocą którego zasilanie przekazywane jest do silników prądu stałego, połączony jest z mikrokontrolerem 7 liniami portów GPIO – w ten sposób przesyłane są dwa sygnały PWM oraz sygnały binarne umożliwiające wybór kierunku obrotu silników i przejście układu w tryb obniżonego poboru energii. Układ TB6612FNG zawiera w swojej strukturze tranzystory wykonane w technologii LD MOS (ang. Laterally Diffused Metal Oxide Semiconductor) połączone tak, aby tworzyły dwa mostki H. Układy te umożliwiają niezależne sterowanie pracą dwóch szczotkowych silników prądu stałego z następującymi parametrami:

– napięcie zasilania silników: od 4,5 V do 13,5 V,

– max. chwilowy prąd: 3 A,

– max. prąd ciągły: 1 A,

– max. częstotliwość sygnału PWM: 100 kHz.

2.2.6. Silniki szczotkowe prądu stałego wraz z enkoderami

Przemieszczanie robota realizowane jest przez obrót kół sprzężonych z osiami silników za pomocą przekładni. Zastosowane silniki szczotkowe prądu stałego zostały wyprodukowane przez firmę Pololu i mają następujące cechy (przy zasilaniu 6 V):

– prędkość obrotowa bez obciążenia: 5600 obr./min,

– pobór prądu bez obciążenia: 80 mA,

– pobór prądu przy zatrzymanym wirniku: 2,2 A.

Przekładnie redukują obroty silnika w stosunku 34,014:1, a więc prędkość obrotowa osi wyjściowej przekładni bez obciążenia wynosi 165 obr./min i uzyskuje się na niej moment obrotowy równy 2,9 kg·cm. Taka prędkość obrotowa, w połączeniu z kołami o średnicy 70 mm, powinna zapewniać maksymalną prędkość przemieszczania się robota na poziomie ok. 0,6 m/s. Oś silnika po stronie przeciwnej do przekładni zaopatrzona jest w magnetyczny dysk, a w bezpośredniej bliskości dysku znajduje się nieruchomy czujnik Hall’a – są to elementy dwukanałowego enkodera inkrementalnego, który gwarantuje rozdzielczość 1633 impulsów na jeden obrót wyjściowej osi przekładni. Zastosowany mikrokontroler ma wbudowaną obsługę enkoderów dwukanałowych. Jedyną operacją, jaką trzeba przeprowadzić, jest prawidłowa konfiguracja liczników, tak by w odpowiednich rejestrach przechowywane były wartości zliczonych impulsów.

2.2.7. Moduł komunikacji Bluetooth

Uniwersalny moduł Bluetooth zintegrowany z anteną oparty jest na układzie typu BTM-222. Charakteryzuje się on między innymi obsługą technologii Bluetooth w wersji 2.0+EDR (ang. Enhanced Data Rate), klasą 1 jeśli chodzi o transmitowaną moc, a maksymalna prędkość transmisji może wynosić 2 Mbps lub 3 Mbps (EDR).

Mikrokontroler, za pomocą interfejsu sprzętowego UART, wymienia z modułem 8-bitowe słowa. Odbiera wysłane z komputera PC rozkazy wykonania określonego rodzaju ruchu lub uruchomienia czujników odległości. Wysyła też informacje o zakończeniu wykonywania ruchu lub dane dotyczące odległości zmierzonych za pomocą czujników. Do transmisji wykorzystywany jest profil wirtualnego portu szeregowego SPP (ang. Serial Port Profile).

2.2.8. Wyświetlacz LCD

Robot został również zaopatrzony w wyświetlacz LCD o rozdzielczości 132×132 px, zamontowany w module typu KAmodTFT2 w którym jako sterownik wyświetlacza zastosowano układ Philips PCF8833. Kolor każdego piksela kodowany jest za pomocą 16 bitów. Mikrokontroler przez interfejs programowy SPI przesyła do sterownika wyświetlacza 9-bitowe rozkazy. Pomimo niższej prędkości transmisji, podczas używania interfejsu programowego SPI, zdecydowano się na jego zastosowanie, gdyż interfejs sprzętowy SPI dostępny w mikrokontrolerze pozwala na użycie słów o długości 8 bitów lub 16 bitów.

3. Regulator PID

Regulator zdefiniować można jako urządzenie, które w odpowiedzi na odchylenie sygnału regulowanego od wartości zadanej powoduje takie oddziaływanie na obiekt regulacji, które zmienia wartość sygnału regulowanego do wartości zgodnej z sygnałem zadanym [12]. Uchyb regulacji traktowany jest jako sygnał wejściowy regulatora, natomiast na jego wyjściu znajduje się sygnał sterujący (sterowanie), które oddziałuje na obiekt regulacji. W przypadku regulatora PID, który jest regulatorem liniowym, algorytmy określające zależność sterowania od uchybu regulacji są algorytmami liniowymi. Regulator PID jest jednym z najczęściej stosowanych regulatorów w przemyśle. Skrót PID można rozwinąć w następujący sposób: P – ang. proportional, I – ang. integral, D – ang. derivative, jest to tym samym regulator proporcjonalno-całkująco-różniczkujący [13]. Podstawowe równanie opisujące jego działanie w dziedzinie czasu wygląda następująco:

(1)

gdzie: e(t) – różnica między wartością zadaną ysp(t) a wartością zmierzoną y(t), tzw. uchyb: e(t) = ysp(t) – y(t); u(t) – sygnał sterujący, Kp – wzmocnienie, Ti – czas całkowania (czas zdwojenia), Td – czas różniczkowania (czas wyprzedzenia). Układ regulacji z regulatorem PID i ujemnym sprzężeniem zwrotnym przedstawiono schematycznie na rys. 6.

W pracach [13, 14] opisane jest dokładniej znaczenie poszczególnych członów regulatora.

Rys. 6. Schemat układu regulacji z regulatorem PID

Fig. 6. Diagram of the control system with PID

3.1. Cyfrowy regulator PID

Wzór (1) odnosi się do regulatora analogowego, a więc przetwarzającego sygnały w sposób ciągły. W przeciwieństwie do regulatora analogowego, regulator cyfrowy działa w sposób cykliczny (rys. 7). Na jego cykl pracy składają się następujące etapy: przetworzenie zmierzonej wartości y(t) na wartości spróbkowaną i skwantowaną w postaci y(n), obliczenie uchybu i sygnału sterującego u(n), zmiana sygnału u(n) na analogowy sygnał u(t).

Rys. 7. Schemat blokowy cyfrowego regulatora PID

Fig. 7. A block diagram of the digital PID controller

Obliczanie sygnału sterującego dla cyfrowego regulatora PID może odbywać się według wzoru różnicowego 2:

(2)

gdzie: Ki = (Kp·T)/Ti, Kd = (Kp·Td)/T, e(n) – uchyb regulacji w n-tej próbce, T – okres próbkowania.

Jedną z modyfikacji regulatora PID może być opisane w literaturze [15] wyłączenie członu całkującego regulatora w określonych warunkach: kiedy różnica między sygnałem zadanym, a regulowanym jest duża, lub kiedy dojdzie do nasycenia elementu wykonawczego. Możliwe jest również ograniczenie wartości członu całkującego do z góry ustalonej wartości. Podejście takie, powoduje przeciwdziałanie zjawisku tzw. windup (przeciągania całkowania). Zjawisko to występuje, kiedy ograniczony jest sygnał sterujący (np. zawór nie może być otwarty na więcej niż 100 %), ograniczona jest szybkość zmian sygnału sterującego (np. kiedy regulator zmienia sygnał sterujący z prędkością większą niż prędkość, z jaką może działać element wykonawczy) lub wartość zadana zmienia się szybko w dużym zakresie. Przeciąganie całkowania prowadzi do znacznego zwiększenia przeregulowania oraz wydłuża czas regulacji.

3.2. Zastosowanie cyfrowego regulatora PID

Jednym z zadań, do jakich wykorzystany może być regulator PID, jest utrzymywanie zadanej prędkości obrotowej szczotkowego silnika prądu stałego. Wykonanie tego zadania możliwe jest przy użyciu następujących elementów:

silnik prądu stałego;

– enkoder zamontowany na osi silnika;

– sterownik silnika, np. układ scalony z tranzystorami połączonymi tak by tworzyły mostek H, przez który zasilany jest silnik;

– mikrokontroler z zaimplementowanym regulatorem PID, którego zadaniem jest zliczanie sygnałów z enkodera, okresowe porównywanie zliczonej wartości z wartością zadaną, a następnie obliczanie sterowania według wzoru 2.

Zagadnienie komplikuje się dla układu z dwoma silnikami – np. w przypadku robota o napędzie różnicowym, kiedy dwa silniki połączone są za pomocą jednego podwozia. Robot taki ma 3 koła, dwa z nich napędzane są silnikami, trzecie nie jest napędzane i może obracać się swobodnie umożliwiając przemieszczanie się robota w dowolnym kierunku. W celu uzyskania ruchu po linii prostej silniki muszą obracać się z jednakową prędkością. Aby robot poruszał się po łuku, prędkości obrotowe kół muszą być różne. Obrót wykonywany jest, kiedy silniki obracają się z jednakową prędkością w przeciwnych kierunkach.

Wspomniany powyżej układ jest układem typu MIMO (ang. Multi Input, Multi Output), a więc układem o wielu wejściach i wielu wyjściach (rys. 8). W wypadku robota są to dwa wejścia – dwa sygnały sterowania silników (sygnał PWM), oraz dwa wyjścia – dwie prędkości obrotowe odczytywane przez enkodery. Najprostszym podejściem w sterowaniu takim układem jest zastosowanie osobnych regulatorów dla każdego z kół, co przedstawiono schematycznie na rys. 8.

Rys. 8. Schemat ideowy układu regulacji MIMO

Fig. 8. Diagram of the MIMO control system

Rys. 9. Schemat blokowy układu regulacji

Fig. 9. A block diagram of the control system

W przypadku bardziej złożonego procesu, powstaje problem wyboru tego, który z sygnałów regulowanych sterowany jest za pomocą którego z sygnałów sterujących. W rozpatrywanym przypadku wystarczające jest zastosowanie osobnego regulatora dla każdego z silników. Jest to możliwe, ponieważ wpływ obrotu jednego z kół jest niewielki na obrót koła drugiego. Podejście takie opisane jest w pracy [15].

Zastosowano algorytm ustalania wartości zadanej dla prędkości obrotowej silników, który ma na celu łagodne rozpędzanie oraz wytracanie prędkości. Wartość zadana zależna jest od następujących zmiennych:

– yL(n-1), yP(n-1) – prędkość obrotowa silników dla próbki n-1;

– lc – odległość całkowita do pokonania;

– lm – odległość jaka została przebyta od początku odcinka lc;

– vmax – prędkość maksymalna, jaka została osiągnięta.

Algorytm ten działa w następujących krokach:

1. w zależności od całkowitej odległości do pokonania (lc), ustalana jest długość odcinka, na którym prędkość może być zwiększana, oraz na którym prędkość będzie wytracana;

2. podczas rozpędzania, wartość zadana (yPsp, yLsp) zwiększana jest stopniowo – zwiększenie wartości zadanej może nastąpić jedynie, gdy odczytana prędkość obrotowa silnika równa jest wartości zadanej, oraz gdy nie została przekroczona pewna ustalona wielkość wartości zadanej;

3. wytracanie prędkości odbywa się na odcinku, którego długość obliczana jest w pkt. (1) i odbywa się w sposób liniowy.

3.3. Badanie cyfrowego regulatora PID

Pomiar prędkości obrotowej przeprowadzony został za pomocą scharakteryzowanych w pkt. 2.2. enkoderów zainstalowanych na osiach silników w dwóch sytuacjach: robot poruszający się po linii prostej na odcinku 80 cm, robot poruszający się po trajektorii kołowej o promieniu 12 cm. Próbkowanie było realizowane z częstotliwością 100 Hz, wówczas zapisywane były następujące parametry: wartości zadane prędkości dla koła prawego i lewego, wartości zmierzone prędkości kół, wypełnienie sygnału PWM sterującego pracą silników. Przez prędkość kół rozumiany jest przyrost wartości zliczonych przez enkodery impulsów w czasie między kolejnymi próbkami.

Wyniki pomiarów dla jednakowych nastaw obu regulatorów wynoszących: Kp = 20, Ki = 10, Kd = 5, przy czasie próbkowania Ts = 0,01 s zaprezentowane zostały na wykresach. Dla ruchu po linii prostej: koło prawe – rys. 10 (wartość zadana dla prędkości koła prawego, wartość zmierzona prędkości koła prawego, oraz sygnał sterujący PWM w funkcji numeru próbki); koło lewe – rys. 11 (wartość zadana dla prędkości koła lewego, wartość zmierzona prędkości koła lewego, oraz sygnał sterujący PWM w funkcji numeru próbki). Obliczono również jeden ze wskaźników jakościowych regulacji – sumę kwadratów uchybu:

(3)

Rys. 10. Wykres dla koła prawego podczas ruchu po prostej

Fig. 10. Chart for the right wheel while moving in a straight line

Rys. 11. Wykres dla koła lewego podczas ruchu po prostej

Fig. 11. Chart for the left wheel while moving in a straight line

Zarówno dla ruchu po trajektorii liniowej (rys. 10, 11) jak i dla ruchu po trajektorii kołowej (rys. 12) wykresy nie pokazują wyraźnie widocznego przeregulowania. Po osiągnięciu zakładanej maksymalnej prędkości uchyb regulacji nie przekracza wartości ±1.

Rys. 12. Wykres dla ruchu po trajektorii kołowej

Fig. 12. Chart for movement on circular trajectory

W rozpatrywanym rozwiązaniu, w którym koła przymocowane są na stałe do podwozia, jedynym sposobem umożliwiającym uzyskanie ruchu po trajektorii kołowej jest odpowiednie zróżnicowanie prędkości obrotowej kół. Prędkość koła wewnętrznego jest wynikiem obliczenia z zależności:

(4)

gdzie: vw – prędkość koła wewnętrznego, vz – prędkość koła zewnętrznego, r – promień trajektorii kołowej, R – rozstaw kół.

4. Podsumowanie

Podczas prowadzonych prac zaprojektowano autonomiczny pojazd mobilny, począwszy od projektu koncepcyjnego w postaci wymodelowanej bryły pojazdu w programie 3D. Następnie przystąpiono do praktycznej realizacji pojazdu przez opracowanie części mechanicznej i elektrycznej urządzenia, szczegółowo opisanej w niniejszym artykule.

Szczególną uwagę poświęcono kwestii zaimplementowania cyfrowego regulatora PID w kontekście sterowania silnikiem prądu stałego. W artykule przedstawiono analizę pracy cyfrowego regulatora PID w konkretnej implementacji praktycznej bazującej na autorskim robocie mobilnym.

Strojenie regulatorów przeprowadzono za pomocą metody Zieglera-Nicholsa [16]. Otrzymane wartości były jednakowe dla obu regulatorów i wynosiły odpowiednio: Kp = 60, Ki = 17, Kd = 52. Przy takich nastawach wskaźniki jakości regulacji wynosiły odpowiednio: dla koła prawego I2 = 289, dla koła lewego I2 = 267. Po zmniejszeniu nastaw regulatora do wartości: Kp = 20, Ki = 10, Kd = 5, otrzymano następujące wartości wskaźników: koło prawe – I2 = 218, koło lewe – I2 = 200, uzyskując tym samym ich poprawę.

Bibliografia

1. Błachowicz A., Paszkiel S., A mobile system for measurements of incomplete discharges controlled by electroencephalographic waves, “Journal of Automation, Mobile Robotics & Intelligent Systems”, Vol. 4, No. 3 Warszawa 2010, 31–35.

2. Paszkiel S., The population modeling of neuronal cell fractions for the use of controlling a mobile robot, “Pomiary Automatyka Robotyka”, Vol. 214, Nr 2/2013, 254–259.

3. Leonard J.J., Durrant-Whyte H.F., Mobile robot localization by tracking geometric beacons, “Robotics and Automation IEEE”, 376–382, 1991.

4. Kanayama Y., Kimura Y. et al, A stable tracking control method for an autonomous mobile robot, “Robotics and Automation IEEE”, 384–389, 1990.

5. MP-400 Operating Manual, Neobotix GmbH, Heilbronn, 2014.

6. RoboCourier Autonomous Mobile Robot Overview Manual, Swisslog Holding AG.

7. Pioneer 3-DX Datasheet (09366-P3DX Rev. A), Adept Technology, Inc., Karta informacyjna, 2011.

8. Hart P., Nilsson N., Raphael B., A Formal Basis for the Heuristic Determination of Minimum Cost Paths, IEEE Trans. Syst. Science and Cybernetics, SSC-4(2), 100–107, 1968.

9. Carsten J., Rankin A., Ferguson D., Stentz A., Global Path Planning on Board the Mars Exploration Rovers, “Aerospace Conference”, IEEE 2007.

10. Paszkiel S., Błachowicz A., Zastosowanie BCI do sterowania robotem mobilnym, „Pomiary Automatyka Robotyka”, Vol. 213, Nr 02/2012, 270–274.

11. Giergiel M.J., Hendzel Z., Żylski W., Modelowanie i sterowanie mobilnych robotów kołowych, Wydawnictwo Naukowe PWN, Warszawa 2002.

12. Rumatowski K., Podstawy automatyki Część 1, Wydawnictwo Politechniki Poznańskiej, 2004.

13. Rumatowski K., Podstawy automatyki Część 2, Wydawnictwo Politechniki Poznańskiej, 2005.

14. Visioli A., Practical PID Control, Springer-Verlag London Limited, 2006.

15. Åström K.J., Hägglund T., PID Controllers: Theory, Design, and Tuning, Instrument Society of America, 1995.

16. Brzózka J., Regulatory i układy automatyki, Wydawnictwo MIKOM, 2004.

The Use of the PID Controller in the Drive Autonomous Mobile Robots

Abstract: This paper discusses the use of the PID controller in the drive of a mobile robot and presents its design and practical implementation. As a result of the implementation of distance sensors and appropriately selected control algorithms, the robot can avoid located on the trajectory of its motion obstacles. One of the tasks used in the robot control system PID controller is to maintain the desired speed of brush DC motor. The article presents the results of tests to determine the effectiveness of the controller in the described implementation.

Keywords: PID control, mobile robot, control process

dr inż. Szczepan Paszkiel

s.paszkiel@po.opole.pl

Pracuje na stanowisku adiunkta w Instytucie Automatyki i Informatyki Wydziału Elektrotechniki, Automatyki i Informatyki Politechniki Opolskiej. Absolwent kierunków Informatyka oraz Zarządzanie i inżynieria produkcji na Politechnice Opolskiej. Stypendysta oraz laureat wielu konkursów dla młodych naukowców. Prowadzi badania naukowe w zakresie przetwarzania sygnału EEG. Autor oraz współautor kilkudziesięciu publikacji naukowych.

mgr inż. Mariusz Sikora

mariusz.sikora@onet.eu

Absolwent Wydziału Przyrodniczo-Technicznego Uniwersytetu Opolskiego, obecnie uczestnik studiów I stopnia na Wydziale Elektrotechniki, Automatyki i Informatyki Politechniki Opolskiej. Główne zainteresowania dotyczą robotów mobilnych oraz zagadnień związanych z programowaniem mikrokontrolerów.