8 " ' " : ' ; ;! < ' H
D8D8D - !
Jako gĹ&#x201A;Ăłwny komputer pokĹ&#x201A;adowy, obsĹ&#x201A;ugujÄ&#x2026;cy broker komunikatĂłw protokoĹ&#x201A;u MQTT, wykorzystano komputer jednopĹ&#x201A;ytkowy Raspberry Pi z systemem operacyjnym Raspbian. Ponadto, minikomputer peĹ&#x201A;ni rolÄ&#x2122; moduĹ&#x201A;u nadzorczego umoĹźliwiajÄ&#x2026;cego wyĹ&#x201A;Ä&#x2026;czanie pozostaĹ&#x201A;ych podsystemĂłw oraz monitorowanie stanu akumulatorĂłw litowo-polimerowych. PozostaĹ&#x201A;e moduĹ&#x201A;y sÄ&#x2026; zarzÄ&#x2026;dzane przez mikrokontrolery TM4C1294 firmy Texas Instruments. WybĂłr ukĹ&#x201A;adĂłw sterujÄ&#x2026;cych zostaĹ&#x201A; podyktowany przede wszystkim liczbÄ&#x2026; moduĹ&#x201A;Ăłw peryferyjnych. Z punktu widzenia zastosowania mikrokontrolerĂłw w ukĹ&#x201A;adach sterujÄ&#x2026;co-sensorycznych wymagane byĹ&#x201A;o wyposaĹźanie ich w: â&#x2C6;&#x2019; oĹ&#x203A;miokanaĹ&#x201A;owy sprzÄ&#x2122;towy moduĹ&#x201A; PWM, â&#x2C6;&#x2019; interfejs komunikacyjny I2C, â&#x2C6;&#x2019; interfejs UART, â&#x2C6;&#x2019; sprzÄ&#x2122;towy kontroler Ethernet, â&#x2C6;&#x2019; dwa szybkie przetworniki A/C (1 Msps) o rozdzielczoĹ&#x203A;ci 12 bitĂłw, obsĹ&#x201A;ugujÄ&#x2026;ce 8 kanaĹ&#x201A;Ăłw przetwarzania. Dodatkowym atutem wybranego mikrokontrolera jest nowoczesny rdzeĹ&#x201E; ARM Cortex-M4F. Architektura sprzÄ&#x2122;towa systemu sterowania robotem przedstawiona zostaĹ&#x201A;a na rys. 6.
Rys. 6. System sterowania robotem Fig. 6. Robot control system
L. " ! & Opracowane oprogramowanie sĹ&#x201A;uĹźÄ&#x2026;ce do sterowania robotem pracuje w trzech warstwach. PierwszÄ&#x2026; stanowi oprogramowanie niskopoziomowe przeznaczone dla mikrokontrolerĂłw. Warstwa druga obejmuje oprogramowanie wysokopoziomowe wbudowanego komputera sterujÄ&#x2026;cego oraz broker komunikatĂłw. TrzeciÄ&#x2026; warstwÄ&#x2122; stanowi oprogramowanie zewnÄ&#x2122;trznych systemĂłw, pozwalajÄ&#x2026;cych na zdalne sterowanie, zarzÄ&#x2026;dzanie i wizualizacjÄ&#x2122; pracy robota. Ze wzglÄ&#x2122;du na obsĹ&#x201A;ugiwany moduĹ&#x201A; sterowania, oprogramowanie robota moĹźna podzieliÄ&#x2021; na sĹ&#x201A;uĹźÄ&#x2026;ce do: sterowania manipulatorem, sterowania podwoziem, zarzÄ&#x2026;dzania energiÄ&#x2026;. Przy tworzeniu oprogramowania przyjÄ&#x2122;to, Ĺźe programy sterujÄ&#x2026;ce dla mikrokontrolerĂłw napisane bÄ&#x2122;dÄ&#x2026; w jÄ&#x2122;zyku C, z wykorzystaniem systemu operacyjnego czasu rzeczywistego FreeRTOS. Komunikacja miÄ&#x2122;dzy mikrokontrolerami odbywa siÄ&#x2122; za pomocÄ&#x2026; sieci Ethernet, w oparciu o implementacje stosu TCP/IP (biblioteka lwIP). Aplikacje sterujÄ&#x2026;ce dla komputerĂłw PC napisano w jÄ&#x2122;zyku Python z wykorzystaniem bibliotek interfejsu graficznego wxPython. Do obsĹ&#x201A;ugi protokoĹ&#x201A;u MQTT wykorzystano bibliotekÄ&#x2122; PAHO MQTT Client.
skowych otoczenia robota, takich jak poĹ&#x201A;oĹźenie wzglÄ&#x2122;dem przeszkĂłd czy lokalizacja na mapie. W warstwie nadrzÄ&#x2122;dnej wykorzystujÄ&#x2026;cej komputer PC, zapewnia wizualizacjÄ&#x2122; stanu moduĹ&#x201A;u i zmiennych Ĺ&#x203A;rodowiskowych oraz dostarczanie informacji nawigacyjnych dla operatora urzÄ&#x2026;dzenia. Wykorzystanie systemu operacyjnego w stworzonym oprogramowaniu dla mikrokontrolera, pozwoliĹ&#x201A;o na zorganizowanie kluczowych zadaĹ&#x201E; w postaci osobnych wÄ&#x2026;tkĂłw. StrukturÄ&#x2122; programu przedstawiono na rys. 7. Poza podejmowaniem cyklicznych zadaĹ&#x201E;, zaplanowanych w poszczegĂłlnych wÄ&#x2026;tkach systemu operacyjnego (np. akwizycja danych z czujnika, przesĹ&#x201A;anie wiadomoĹ&#x203A;ci), oprogramowanie zapewnia obsĹ&#x201A;ugÄ&#x2122; okreĹ&#x203A;lonych akcji (np. odbiĂłr informacji z odbiornika GPS, odbiĂłr danych z moduĹ&#x201A;u Ethernet) wykorzystujÄ&#x2026;c system przerwaĹ&#x201E;. Do zadaĹ&#x201E; mikrokontrolera poza dziaĹ&#x201A;aniami zwiÄ&#x2026;zanymi ze sterowaniem, akwizycjÄ&#x2026; i przesyĹ&#x201A;aniem danych z czujnikĂłw, naleĹźy rĂłwnieĹź wstÄ&#x2122;pne przetwarzanie zbieranych informacji. PrzykĹ&#x201A;adem moĹźe byÄ&#x2021; wyznaczanie orientacji robota w przestrzeni (przechylenie wzdĹ&#x201A;uĹźne i poprzeczne) na podstawie fuzji danych z czujnikĂłw inercjalnych w oparciu o algorytm filtru Kalmana. Do opisu procesu wykorzystano model stanowy przedstawiony w publikacji [10]. RĂłwnanie stanu ma postaÄ&#x2021;:
L.V.
#
! Stworzony podsystem nawigacji i sterowania podwoziem zapewnia obsĹ&#x201A;ugÄ&#x2122; szeĹ&#x203A;ciu niezaleĹźnych kĂłĹ&#x201A; podwozia, poprzez sterowanie napÄ&#x2122;dami oraz pomiar pobieranego przez nie prÄ&#x2026;du. Kolejnym zadaniem moduĹ&#x201A;u jest pomiar zmiennych Ĺ&#x203A;rodowi-
40
P
O
M
I
A
R
Y
â&#x20AC;˘
A
U
T
O
M
A
T
Y
K
A
â&#x20AC;˘
R
O
B
O
T
Y
K
A
NR 4/2016