Peter ČEPON, Roman KAMNIK, Jernej KUŽELIČKI, Tadej BAJD, Marko MUNIH Eksperimentalni razvojni sistem za mobilno robotsko platformo * IzvleÏek: îlanek predstavlja konfiguracijo eksperimentalnega razvojnega sistema za mobilno robotsko platformo. Razvojni sistem je sestavljen iz nadzornega raïunalnika, razvojnega programskega okolja, ciljnega raïunalnika ter pogonske enote s pogonskim in usmerjevalnim kolesom. Na nadzornem raïunalniku potekata razvoj in nadzor izvajanja programske opreme, ciljni raïunalnik pa je namenjen izvajanju razvitih programov v realnem ïasu na ciljni strojni opremi. Sporazumevanje med ciljnim raïunalnikom in pogonskimi moduli poteka preko vodila CAN. Razvojni sistem je zgrajen na osnovi programov Matlab-Simulink, Stateflow in xPC Target proizvajalca Mathworks. Razvojno okolje omogoïa programiranje regulacijskih algoritmov v grafiïnem naïinu s pomoïjo gradnje in povezovanja blokov. Okolje omogoïa uporabniško prijazno delo s sistemom preko brezžiïne pove- zave, kar olajša eksperimentiranje z mobilno platformo in pohitri razvoj programske opreme. KljuÏne besede: mobilna robotska platforma, vodilo CAN, razvojni sistem xPC Traget, Stateflow, Simulink, 1 Uvod Mobilni roboti danes prodirajo na vedno veï podroïij uporabe. Zasle- dimo jih v industriji, znanosti, športu, vesoljski tehniki, zabavi, filmski industriji itd. Zaradi razširjenosti in napredka se pojavljajo nove zahteve, kar odpira nova podroïja raziskav. Veïanje avtonomnosti mobilnega robota zahteva vkljuïevanje veï senzorjev ter razvoj novih algoritmov vodenja in orientiranja v prostoru. Cilj uporabe mobilnih robotov je na- domestiti ïloveka v nevarnem okolju ali mu omogoïiti dostop do podroïij, ki mu zaradi razliïnih razlogov do sedaj niso bila dostopna. Mobilni roboti se glede na podroïje delovanja loïijo na vodne, zraïne ter kopenske inteligentne naprave. Ne glede na naïin in okolje, v katerem delujejo, je njihovo bistvo, da so zmožni avto- nomnega gibanja v nestrukturiranem okolju. Za tovrstno gibanje v prostoru mora mobilni robot poleg ustreznega pogona uporabljati senzorje, s kate- rimi zaznava prostor in se na osnovi te informacije ustrezno orientira in naïrtuje svojo pot. Razvoj mobilnega robota in algorit- mov vodenja je dolgotrajen postopek, ki zahteva široko podroïje znanj. Ta vkljuïujejo podroïja strojništva, elek- tronike in raïunalništva. Zaradi tega razvoj obiïajno poteka preko izde- lave prototipa in uporabe razvojnih okolij. Razvojna okolja omogoïajo hiter razvoj algoritmov vodenja in preprosto vkljuïevanje novih kompo- nent. To omogoïa eksperimentiranje s sistemom, kar skrajša ïas, potreben za razvoj. Obstaja veï pristopov k iz- gradnji prototipa in uporabi razvojnega okolja. Pri razvoju je pred izdelavo realnega sistema priporoïljiva uporaba simulacijskih 2D ali 3D modelov mo- bilnih robotov ter simulacija delovanja v virtualnem raïunalniškem okolju. Primer tovrstnega orodja je simula- cijsko orodje Webots proizvajalca Cy- berbotics [6]. Orodje Webots omogoïa izgradnjo 3D modela mobilnega ro- bota, na katerega je mogoïe namestiti poljubne senzorje in pogonske enote iz knjižnice modulov. Poleg tega orodje vsebuje knjižnico modelov komercial- no dosegljivih mobilnih robotov, kot so Pioneer, Khepera, Hemisson, Aibo itd. Za vodenje simuliranega delovanja je uporabljen programski jezik C++. Simulacijsko orodje, ki je prav tako primerno za izgradnjo simulacijskih modulov, je programsko okolje Ma- tlab-Simulink proizvajalca Mathworks, Inc. [1]. Orodje omogoïa modeliranje in simuliranje delovanja dinamiïnih sistemov z vrsto spremljajoïih orodij za analizo in nadzor delovanja. Peter îEPON, univ. dipl. inž., doc. dr. Roman KAMNIK, univ. dipl. inž., Univerza v Ljubljani, Fakulteta za elektrotehniko; Dr. Jernej Kuželiïki, univ. dipl. inž., Iskra Avtoelektrika, d. d., Šempeter pri Gorici Prof. dr. Tadej Bajd, univ. dipl. inž., prof. dr. Marko Munih, univ. dipl. inž., Univerza v Ljubljani, Fakulteta za elektrotehniko * Delo je bilo sofinancirano v okviru programskega financiranja ARRS, Analiza in sinteza gibanja pri ïloveku in stroju P2-0228, in Ciljnega raziskovalnega pro- grama MORS in ARRS, Znanje za varnost in mir 2004–2010, projekt Mobilni robotski sistem za izvidniške, raziskovalne in reševalne namene M2-0116. ROBOTIKA 17 0 Ventil 13 /2007/ 3 Za nadzor in krmiljenje AC-krmi- lnika in sistema EPS je uporabljen ciljni raïunalnik PC/104 PCM- 3380 dimenzij 108 mm x 115 mm proizvajalca Advantech, ki je kon- figuriran na osnovi strojne opreme vgrajenega raïunalnika. Delovanje v realnem ïasu je bilo doseženo z uporabo operacijskega sistema xPC Target proizvajalca Mathworks [8]. Orodje omogoïa izvajanje pro- gramskih aplikacij v realnem ïasu, motorja z nadrejeno enoto komunici- ra preko komunikacijskega protokola CANopen. Poleg pogonskega kolesa je na sliki 2 b prikazan tudi sistem EPS (ang. Electric Power Steering), namenjen usmerjanju pogonskega kolesa. Sis- tem EPS tvorijo brezkrtaïni DC-mo- tor, reduktor in krmilnik, ki je vgrajen v samo ohišje motorja. Krmilnik EPS z nadrejenim raïunalnikom prav tako komunicira preko vodila CAN. Na drugi strani je na tržišïu moï dobiti kar nekaj realnih mobilnih robotov, ki so namenjeni raziskoval- nemu delu in so zasnovani tako, da jih je možno tudi nadgrajevati [3], [4], [5]. Komercialno dosegljivi roboti so razliïnih velikosti in namembno- sti. Med znana podjetja, ki ponujajo komercialne kolesne mobilne robote, sodita podjetji K-TEAM in MobileRo- bots. Izdelki podjetja K-TEAM so mi- niaturni mobilni robotki Hemisson, KheperaIII in KoalaII. Izdelki podjetja MobileRobots pa so mobilni roboti veïjih velikosti, kot so Pioneer 3, PatrolBot in Seekur. Roboti so z ozi- rom na izbrano konfiguracijo lahko opremljeni z razliïnimi senzorji za zaznavanje okolice. Cilj tega dela je predstavitev ek- sperimentalne mobilne robotske platforme, ki je zasnovana na osnovi pogonskih sistemov, namenjenih pre- mikanju ter usmerjanju elektriïnih vi- liïarjev. Sistem vodenja, ki je zgrajen na osnovi vgrajenega raïunalnika in xPC Target operacijskega siste- ma, je zasnovan tako, da omogoïa uporabniško prijazno eksperimenti- ranje in razvoj algoritmov vodenja. V delu je predstavljena konfiguracija razvojnega sistema eksperimentalne robotske mobilne platforme in preli- minarni rezultati delovanja. 2 Konfi guracija eksperimen- talnega razvojnega sistema za robotsko mobilno platformo Eksperimentalna razvojna platforma je zgrajena na osnovi modulov, ki so v blokovni shemi prikazani na sliki 1, na fotografijah pa na sliki 2. Pogonski sistem platforme tvorijo pogonski moduli, ki se uporabljajo za pogon in usmerjanje elektriï- nih viliïarjev. Pogonski modul je proizvod podjetja Iskra Avtoelektrika. Za sam pogon je uporabljen trifazni asinhronski AC-motor, ki ima vgraje- na inkrementalni kodirnik in zavoro. Fotografijo asinhronskega motorja, reduktorja in pogonskega kolesa prikazuje slika 2 b. Regulacija vrtenja AC-motorja je izvedena s pomoïjo AC-krmilnika, ki je zasnovan na DSP- procesorju in omogoïa krmiljenje v koordinatnem sistemu polja. Krmilnik Slika 1. Konfi guracija sistema vodenja mobilne robotske platforme Slika 2. Fotografi ja a - sistema vodenja, b - pogonskega sistema ROBOTIKA Ventil 13 /2007/ 3 171 ki so razvite v grafiïnem okolju Matlab-Simulink. Programiranje v grafiïnem naïinu na osnovi pove- zovanja blokov poteka v celoti na razvojnem raïunalniku. Ko je shema vodenja razvita, je prevedena v kodo za izvajanje. Koda za izvajanje je zatem preko brezžiïne TCP/IP-pove- zave naložena na ciljni raïunalnik, ki se nahaja na mobilni platformi. Sporazumevanje med krmilnikoma motorjev in ciljnim raïunalnikom poteka s pomoïjo protokola CANo- pen preko vodila CAN [2]. CAN (ang. Controller Area Network) je serijsko vodilo, ki je osnovano na ISO OSI sedemnivojskem sistemu. Za uspešno komuniciranje so uporabljeni le trije nivoji. Ti so: prvi fiziïni, drugi podatkovni in sedmi aplikacijski. Najvišja hitrost prenosa podatkov znaša 1 Mbit/s. Zaradi robustnosti in možnosti povezav naprav, ki delujejo v realnem ïasu, je vodilo CAN pogo- sto v uporabi v industrijskih okoljih. Protokol CANopen nadgrajuje fiziïni in podatkovni nivo v aplikacijskem nivoju. Standard CANopen defi- nira pogoje pravilnega delovanja, pošiljanja in naslavljanja sporoïil ter uporabo 11-bitnega ali 29-bitnega identifikatorja. Komunikacija preko vodila CAN poteka tako, da se vsaka priklopljena naprava prijavi na vodilo s svojim prepoznavnim naslovom. Zatem gospodar vodila (ang. master) pošlje na vodilo sporoïilo, s katerim ga postavi v operacijsko stanje. Ko je vodilo v operacijskem stanju, gospo- dar vodila pošilja na vodilo sporoïilo dolžine do najveï osem bajtov sku- paj z 11-bitnim identifikatorjem, ki doloïa, kateri napravi je sporoïilo namenjeno. Naslovljena naprava se odzove s povratnim sporoïilom [2]. Za povezavo ciljnega raïunalnika in vodila CAN je bil uporabljen vmesnik CAN, ki je prikljuïen na paralelna vrata ciljnega raïunalnika. Na vgrajeni raïunalnik je možno prikljuïiti razliïne periferne naprave. Te so lahko priklopljene preko para- lelnega vodila, vodila CAN, vodila firewire ali vodila PC/104. Za baterijsko napajanje mobilne robotske platforme sta uporabljeni dve akumulatorski bateriji tipa Dry- fit proizvajalca TAB, d. o. o., ki sta med seboj povezani zaporedno, kar omogoïi napetost 24 V za napajanje pogonov. 3 Programska arhitektura razvojnega sistema Razvoj programske opreme poteka na razvojnem raïunalniku v grafiïnem okolju. Ko je programska oprema razvita in prevedena v izvršljivo kodo, je preko brezžiïne povezave naložena na ciljni raïunalnik. Ta na osno- vi operacijskega sistema xPC Target v realnem ïasu opravlja vodenje in nadzor pogonskega in usmerjevalnega kolesa. Programska arhitektura razvojnega sistema je prikazana na sliki 3, kjer vidimo, da poteka programiranje v grafiïnem naïinu v okolju Simulink, kjer z uporabo blokov iz knjižnic Si- mulinka, orodja diagramov Stateflow, blokov xPC Target z I/O-gonilniki in lastnih funkcij, ki jih razvijemo s pomoïjo S-funkcij, zgradimo funkcionalni model Simulink. Ta je s pomoïjo orodja Real-Time Workshop nato preveden v C-kodo, ki je s po- moïjo prevajalnika C/C++ prevedena v kodo za izvrševanje. Ta koda je preko brezžiïne TCP/IP-povezave posredovana ciljnemu raïunalniku, na katerem teïe xPC Target jedro za izvrševanje aplikacije v realnem ïasu. Ko je izvršljiva koda naložena na ciljni raïunalnik, sta možna zagon aplikacije v realnem ïasu ter sprem- ljanje poteka signalov na ciljnem in razvojnem raïunalniku. Delovanje sistema xPC Target je osnovano na principu izvorno-ciljnega (ang. host-target) delovanja, kar omogoïa oddaljen nadzor nad delovanjem ciljnega raïunalnika [8]. Na razvoj- nem raïunalniku je tako mogoïe na daljavo preko brezžiïne povezave nadzirati potek signalov ter spre- minjati in iskati optimalne vrednosti parametrov v realnem ïasu. 3.1 Prikaz primera programa Prikaz programa v grafiïni obliki, ki je zgrajen z uporabo knji- žnice blokov Si- mulink in oro- dja diagramov poteka State- flow, je prikazan sliki 4. Okolje Simulink je namenjeno modeliranju in simulaciji dina- miïnih zveznih sistemov. Simu- lacijska shema je zgrajena grafiïno s povezovanjem blokov iz knjižnic Simulinka. Oro- dje Stateflow pa je namenjeno modeliranju in simulaciji diskretnih si- stemov in dogodkov. Omogoïa grafiïno zasnovo bloïnih diagramov, pri katerih s pomoïjo doloïenih dogodkov prehaja- mo med diskretnimi stanji sistema. Na sliki 4 je prikazan primer progra- ma hitrostne regulacije asinhronske- ga pogonskega motorja in pozicijske regulacije brezkrtaïnega usmerjeval- nega motorja pri sinusnem referenï- nem signalu. Rezultati vodenja obeh motorjev so prikazani na sliki 5.Graf na sliki 5 a predstavlja referenïni in dejanski položaj usmerjevalnega mo- torja, graf na sliki5bp areferenïno in dejansko hitrost asinhronskega pogonskega motorja. Slika 3. Potek razvoja programa s pomoÏjo razvojnega sis- tema ROBOTIKA 17 2 Ventil 13 /2007/ 3 Slika 4. Prikaz a – poteka diagramov Statefl ow, b – uporabe grafi Ïnega povezovanja blokov Simulink ROBOTIKA Ventil 13 /2007/ 3 17 3 4 ZakljuÏek V delu je prikazana konfiguracija ekspe- rimentalne mobilne robotske platforme, ki omogoïa hiter in uporabniku prijazen razvoj algoritmov vo- denja. Platforma je zasnovana na osnovi komer- cialno doseglji- vih pogonskih modulov ter sistema vodenja, ki ga predstav- ljata dva raïu- nalnika, medse- bojno brezžiïno povezana. Prvi raïunalnik, ki je lahko prenosni, je namenjen razvoju algorit- mov vodenja in nadzoru delo- vanja, drugi, ki je lahko vgrajeni raïunalnik, na- mešïen na cilj- nem sistemu, pa izvajanju algo- ritmov v realnem ïasu. Prednosti, ki jih omogoïa tak sistem, so prenosljivost, uporabniško pri- jazna zasnova programa v grafiïnem okolju, uporaba programskih struktur in orodij okolja Matlab, nadzor delovanja, spreminjanje parametrov, spremljanje in zajemanje signalov ciljnega sistema na daljavo ter preprosto vkljuïevanje novih naprav. Literatura [1] M. Bongiovanni, An experi- mental framework for rapid prototyping of mobile robot controllers, International Con- ference Towards Autonomous Robotic Systems (TAROS), pp. 21–27, London 2005. [2] M. Farsi, M. B. M. Barbosa, CANopen implementation: applications to industrial net- works, Research Studies Press Ltd. 2000. [3] G. Dudek, M. Jenkin, Compu- tational Principles of Mobile Robotics, Cambridge Univer- sity Press, Cambridge 2000. [4] R. Siegwart, I. R. Nourbakhsh, Introduction to Autonomous Mobile Robots, MIT Press, Cambridge 2004. [5] R. R. Murphy, Introduction to AI Robotics, MIT Press, Cam- bridge 2000. [6] M. Oliver, WebotsTM: Profes- sional Mobile Robot Simula- tion International Journal of Ad- vanced Robotic Systems, Vol. 1, No. 1, pp. 39–42, 2004. [7] J. Borenstein, H. R. Everett, L. Feng, Where Am I? Sensors and Methods for Mobile Robot Po- sitioning, University of Michi- gan, Michigan 1996. [8] xPC Target User’s Guide, Mat- lab & Simulink, The Math- Works, Inc., 2007. Slika 5. a – rezultat pozicijske regulacije brezkrtaÏnega DC-motorja, b – rezultat hitrostne regulacije AC- asinhron- skega motorja Experimental Development System for Mobile Robotic Platform Abstract: In this paper an experimental development system for mobile robotic platform is presented. The deve- lopment system incorporates the main controller, the drive unit with drive and steering wheel, the drive controller and development environment. The software development and supervision of execution is performed on the host main computer. The target embedded controller running xPC Target real time operating system is used for execution of the developed program in real time on a target system. The target controller communicates with the drive units via CAN communication. The development system is based on Mathworks Matlab tools Simulink, Stateflow and xPC Target. This configuration allows the development of control algorithm in graphical mode by building and connecting functional blocks. In this way the development system is built providing user friendly graphical software development environment, optimal tuning of parameters, acquisition and logging of signals, and easy incorporation of new devices. Keywords: mobile robotic platform, CAN bus, xPC Traget, experimental development system, Stateflow, Simulink, ROBOTIKA 174 Ventil 13 /2007/ 3