PARA O ' ONTROLE OE ROUS MVEi Jos Eduardo Mendona Xavier j cduardo@clc. ufcs.hr llansj org Andreas Schnccbcli hans@cle.ufcs. br Me1 trodo em Engenharia Eltrica - Automa(iiO Universidade Federal do Esprito Santo Vitria ES llrozil CEI' : 29060-970 Coiw posw/: 01 -901 1 Fax: +55 27 335 2737 Resumo: 1; apresentada uma abordagem de programao com:orrcnl c orientada para crn que de rnnl rolc ba-,cadns cm compor tamentos para rohs mvei s sfo deco111posLos cm objetos que se comuni cam entre s1, denominados agent es, de cinco ca1cgorias: agentes Sensor Primiti vo e VirtL1al, agentes Con1por1amento e agentes A t uador Primi l i vo e Virtual. const ruda uma rerramenl a cm C++ com hase na estrutura. ern que" categorias mencionadas so definidas como de agentes apresentando diversos mecani smos que vi .,am arrnx imar as suas rcpre1'entaes de seus propsitos. Derivando cl asses de ohjetos concorrentes das classes fornecida!>, pos!>vcl criar que, 1ntcrli gados, compocm os nveis que impl ement am os comportamenl os doio> si stema\ de control e. Palavras-chave: control e buscado cm comportamentos, agent es, programao concorrente ori entada pum obj etos. 1. TNT RODUAO Arquiteturas el e cont rol e lwsradas e111 co111porw111c11/os tem se 111 ost rndo como boas altcrnativns para tornar o control e ue rohs mveis mai s simpl es e efi ci ente. I sso potlc ser demonstrado principal mente atravs dos robs construdos por Orooks ( Brooks, 1990) e sua equipe. Linguagcn'> co11corn11tcs orientadas para ohjetos por sua vc1. Lm dcmnnst rado grande capacidade para a de probl emas que envol vem concorrncia, f"ornccendo abstraes poderosas e favorecendo a reuti l i zao de cdi go. H apresentada ento uma estrutura (Xavier, 1996) buscada na apli cao do paradigma de Progra11u1rio Co11corre11te Oricnrndo pam Objetos ( P 00), visando per miti r de maneira rcl at i vumcnlc simples a const ruo de sistemas de controle de robs mveis baseados cm comportament os, l evando cm considerao fat ores rel evant es como modularidade, simpli cidade e aspectos de tempo real. A construo de de control e baseados cm comporlamcntoi-> por um pfOJCliSla atravs do uso dessa estrutura rcnli1.ado cr iando-se 1rnvas classes de objetos concorrcnlc1' a part ir de classes fornecidas cm uma bibli oLcca. Dessa<, cl asses so cri ados el ementos conc\lrrentes, denominados age11 te.1, que f:l ;rcm o parei dos mdul os de controle, cxceuLando a<;cs e interagindo entre si de diversas maneiras. 2. A ERRAMENTA A f"erramenta de sort warc desenvolvida se ha,cia na proposta de Schnl.!cbel i (Schncebcl i , 1992) de de sistemas de controle baseados cm comportamcntos cm trGs categor ias de agentes cspcciali'ldos (fig. I ), Sensor, Co111porta111c11ro e !\tuador, e cm categorias derivadas destas, agcnLcs Sc11.101 Primitito e Sensor Virtual e agentes Atuador Pri111iti10 e Atuador \lirt11al. O t rabalho ck um projet ista na constru<;o de um de controle baseado cm comportament os utili1.ando essa abordngcm '>C fa1. dccomrondo os el eml.! ntos do sistema de control e cn1 das vria-; categorias e criar um programa (Fi g. 2) conlenel o: a eldini cs de cl<1sscs de agent es, der ivada.., ela-. c las'>es primiti vas assoc iadas -; ca1egorias, com os dados parti t ulare,, a<> inforn1aes a respe ito das ligafH.:s e o cdi go func ional el os agentes que delas sero instanciados: o programa principal represent ado pe lo cteli go in:-1an<.: iao dos agentes e pelo mtodo " M a i11 de uma <.: lasse " Mainll fU' llt ", encarregado has icamente da partida dos agentes. lig. 1: ategorias de agentes (S<.: hncehcli, 1992). // lk finiioo dns cl asses de li SUl1ra\ 0111 : puhlic PScnsor ( 1. 1: li 1nc1ndo' da d a.,sc Vagar li Programa pnnc1pal li Vagai vag:.u( . ), SUlt raM1111 . . ). :,u2( .. ) ; MainAgcnt: :Main( ) l li c6d1go tk par1ida dm agen1cs Fi g. 2: Exempl o do cdigo de um sistema de cont roh.: construdo a partir de classes primi ti vas. /\ fc1 ramenta cons iste na rcprcsentao da-, catcgo1 ia-; por c lasses ahstratas de C++. l'Se11.l'or, VSc11.1or, /Jchmior, PAr tua t o r e V/\ c111a ror nvci ... M1periores da Fi g. 3). que herdam de uma 111e.., ma !.:lasse hase "/\ ge11 t " u111 conjunto de carnctcrs1i cas e ahstraes gerai s aos agent es, tai s como a:-. que os !ornam obj etos "ati vos'' , ohj elos conco11ent cs aprese nt ando fi o de execuo pr6prio e co111 ca pacidades de comuni ca<ro. /\ s classes denominadas primiti vas acrescentam caractersti cas q uc tendem a aproxi mar o prop6siw dos elementos do -;istema de cont role sua representao na for ma de programas. So
aRe111c Sensor Pr i mit il'O (classe " PSl11.\0r " ) - para servir de inl crfacc direta com os sensores, coletando os sinai s provenientes dos mesmos. Ex.: agentes s11! e s112 do s istema de control e apresent ado na Fi g. 3; agente Sensor Virt11a / (classe " VSe11sor") - para a rcali 1.ao de 1rmamen1 os, fi ltragens e outras rnanipulaf>cs nos sinais proveni entes de um ou mai s agentes Sensor Pr imiti l'o. Ex. agente map ear, da ri gura mencionada; agente Co111porfl/111e1110 (cla-.sc " Refwl'ior") - para a defini o das aics nccess:.i rias para que o rob ati nja seus obj ct i vos, de fi ni nclo co111 portamcntos e int eligncia. bx. agent e 1oxar, da figura; Rl' llt<' Al11odor Pri111 i ti\'o '' /Jf\ ct11ator " ) - para servir de in1erfacc dire1a com os ntu;1dorcs cio rob. Ex.: agentes pid I e pid2. da fi gura; agente /\ /1wdor Virt11(f/ (cla sse " V/\ ct11ator") para real in ir prcprocessamenws ou tratamentos nas provenientes de um ou v:rim. age ntes ant es de envi; los aos agentes Atuador Pri mi t ivo. Ex. agente 111mer. da fi gura. /\ impl ementao do <;istema de controle como um programa com ohjetm, concorrentes com fi o-; de execuo prprios bnscadu no modelo concorrente de ' '11111 /t i t h rcading" que fa von.!ce a rcpresenta.;o de modelos baseado:-. e111 element os coor erati vos, como o caso dos agcn1 es. /\ cri ao de classes de ohjetos concorrentes torna poss vel a criao, por instanciao, de vri os agentes (instncias) semelhantes, como" agentes .rn I e s11 2 da f ig. 3, instanciado' das clas-;es S11 /1raso111. /\ utili 1.ao de uma mes ma classe base "/\genr " na hierarquia de c lasses para IOdos agentes garante uma uniformidade de func1onamcnl o pa ra o sistema, facili tando a programao e minimizando erros de qunlt1 ucr n;11urc1.a. * 1-erramenta Cl!ss" oo agente - "*'"
do CM'role, ctMldOS dJ.s e.uses prede/'nidas na ftmm&r.la.
a<pl., iJsinlaOOf das c:llssos deSM"1.W. pelJpro{i!lsla Classa Agent --i---
- Fig. 3: Estrutura hi errqui ca incl uindo a forrnrncnta, as classes deri vadas a p::utir das cl asses predefinidas na ferramenta e um sistema de controle com agentes instanciados a partir das classes derivadas. 2. 1. A entidade agente Estm111ra /Jsi ca do agent e O el ement o aqui apresentado assemel ha ao model o de ator definido por Hewilt ( 1977), cm que um ator um agente computaci onal que procede suas af>cs cm r esposta u mensagens recebidas. Ao receber uma mensagem, o agente, como um ator, executa aes como o envio de comuni cac11 a agc1llcs; a criao di nmi ca de outros agent es e u execuo de um con1portamenLO. Quando um agente criado a panir de um construt or de uma cl asse definida pel o proj eti sta do si stema de controle, ele pernianece cm uni estado " i nati vo". Ele ento permanece nesse cstado at que receba urna comuni cao de panicla que o fn:t passar a um estado "dormente", cm que o agent e i.! consider tt do ativo, porm aguardando por u111a comuni caiio ( no cusLo computaci onal ). Ao reccher uma mensagem qualquer el e i; acorclndo ("ati vo" ), vai ent iio vcri fi car se tal mensagem recebida pertence ao seu conjunlo de rncn:-agcns accl<vcis. Se a mcn1>agcrn considerada acei tvel ele reali za um processamento def i nido para resposta mensagem, atual i za o seu estado interno e rcali 1.:a aes de sua compe1Gnci ;1, e depois vol ta ao seu estado ' 'dorment e" . Se a mensagc111 recebida niio aceil{ivel el e simpl cs1m:nte volt a ao seu estado dormente. O agente pode ser representado por uma estrutura 111pl i fi cada q uc compreende al gu lllas de suas princ ipai s partes. fatns ( Fig. 4) consi stem de: seu "bulTer'' de 111 e11.\'{/ge11s; a e11 1rada, quc onde posta a mensagem q uc cst{i sendo processada no momento; a sada, que onde el eve ser posto o resul tado de u111a compuLa\iO para st: r enviado agentes inscr itos para o rcccbimenLo de mensagens: e os 111 1odos, que reali zam processamentos cm resposta s mensagens. A GENTE blilhlr de mon.i.geM -------...::' psra agontos '"'todos Fig. 4: l'.<:strutura b{isit:a de um agente. 2.2 Comuni cao entre agentes As int era<;es entre os agentes so assncronas e podem ocorrer de doi s modos: ordi11crio e expresso (Yonen\ wa, et ai., 199 1 ). Mensagens envi adas no modo expresso assumem pri oridade sobre as mensagens envi adas cm modo ordinrio, sendo executadas antes dcsLas. O UMJ de mensagens expressas caracteri za-se pel a urgncia e condi<;cs pri orit ri as do rob, si tuaes c m que o tempo fundament al. Quandn um objeto 1.c torna at i vo por intermdi o do rcccbimcrll o de uma ou mai s mensagens de naLUrcz.a expressa ou ordi n:r i a, pri meiramente so prot:cssadas as mensagens expressas, e depoi s as or dinri as. Quando o agente termi nar de processar as mensagens ele retorna ao seu estado dormente. 2.3 /\cesso aos agentes /\ invocao de mtodos cm agentes regul ada por mei o de elementos 1.:onhecidos como "c11abled sets" ( M atsuoka. e/ ai ., 1993 ), q uc so chamados aqui de e.1wdos , obj etos de uma cl asse "Age11 t: :Sw1e" , que f u11 ci onan1 t:omn r on es para o acesso aos mtodos. /\ s chaves para tai s portes so as ni ensagcns. J\ssi m quando o agente se encont rar cm um dado estado, f ican def'inido que mLOdo ser in vocado em resposLa a cada mensagem recebida pel o mesmo. Quando compl etamente definido um objeto do t i po eswdo ( "AR<!llt::State ") ( Fi g. 5) , fi ca estabel eci do o conj unto de mensagens habil i tadas (acci uveis) ou desabi litadas (no aceil <veis), para quando o agente se encont rar naquel e estado, os mtodos a serem invocados para cada mensagem recebi da, uma referncia para o estado cm que este estado se ulll mtodo " dcf'aul t" (opcional ) e wmbm urna restr i o para o acesso aos mtodos, a qual clrarnamos de p.1e11do Mrrnrda, elclllcnto semel hante ;10 Rllarda ( J\ndrcws, e! ai., 198>), inexi stent e na ahordagcrn de "e11a'7led sets ". Os csLados formam uma estrutura hierrquica internamente aos agentes (Fi g. 5) cm que estados in f'er iores nessa hi crarq uia herdam as i n f'ormacs def i ni das para estados Uma mesma mcnsage111 pode estar hahi 1 i Lada cm di ferentes e!> tados de um agent e e estar associada, cm cada um dos a cl i l'crentcs mtodos, permi t i ndo assi m a execuo do mtodo apropr i ado ao estado corrcnlc do agente. A l igao de mensagens e mtodos a csLado1. 1 i bera os mtodos de que deveriam ser fei tos a respei to de condi es necessr i as para a execuo de partes i nternas aos mtodos. Com a habilit ao de uma mensagem. cspeci f'ica- se o mtodo do agente que ser executad() cm resposLa a uma dada mensagem quando ele se encontrar cm determinado estado. OesabiliLando mensagens, mensagens no desej adas mas que so herdadas de um estado hi erarqui camente superior podem ser excl udas. A transio entre os cs1ados cm um age11Le rcali 1.ada i rHcrnamcntc aos mtud1JS. /\ pri mei ra das t ransi es rci ta aul<Jmati camenlc quando () agent e se tornar at ivo pel a primeira vc'/ .. Neste caso, o estado i nici al a ser pelo agente defi nido no construt or do mesmo. no habi 1 it adas para um dcterm i nado es tado podem ser respondidas definindo-se par:i isso um mtodo " dc l'ault ' ' para o estado. Dc!>ta f'onna possvel , por exempl o, avi sar a um agente que aguarde a1 que seja possvel ;1t cndcr a uma solic it ao sua. Stalo: Roady enab1ed. STOP(Stop), Fmm: ACTJVA'f(SIModAcl"ere), From: PAUSE(f'Mt), From: ( . ) lod09 os agente! Mb 1 ta<Jos ; enviar a mensagem ACTIVATE remo'.cnto habilMdo para as Statc. DtlecfObstacle mtrisagens do e.ta(lo base nab!ed. estado baH Rolldy. From: READ(RcadO.,lsnct), Fll>m. Agontf mensagem definida o ntNO Stado habi tadO ml!todo a ser eerutado CISO a mo,,..gem S<!ja acc ta Fig. 5: Del'i ni o do estado " DctcctObstaclc" a parti r do " Ready". 2.4 Conectando agentes As l igaes que vo l'ormar a rede de agentes podem aconLcccr de duas maneiras: a pr i mei ra a decl arao expl cit a de um destinat<l ri o cm um mtodo "Se11d''; a segunda. mai s ncxvcl e modul ar, acontece at ravs do mecanismo de conexo entre agentes. Uma concx:io consi ste no envi o cio cont edo das de um agent e aos agent es nele conectados. A sol i citao para a formao de uma conexo acontct:c mcd o envi o de uma mensagem CONNECT do agente que clescj a receber as mensagens, para o agente que id enviar o contedo de suas sadas (Fi g. 6) . solrcitaes de conexes conexes estabelecidas Fig. 6: O estabel eci mento de conexes. O efeito de uma conexo entre doi s agentes a inscrio de um agentt: na li s1:1 de destin:lt <ri os do agente que recebeu a mensagem CONNl:.'CT. Assim, sempre que houver al go escrito nas sadas de um agente, c1.,sn<: sadas ser o enviadas a Lodo.., agent e., conectados, i sto , inscrito.., na li sta de dcstinat < ri os desse agente. A desconexo acontcc de maneira simil ar conexo. Um agente envi a uma men-;agcm DISCONNECT n um out ro agente. O rompimento da conexo i mpl ica cm reti rada de um agent e da li sta de de .... tina1ri os. A poss1bi 1 i dade de est abel eeer ou romper conexes sempre que necessri o contribui para o dinami smo da rede de agent es e portant o t ambm para a construo de redes contextuali zadas. 2.5 A ti vafo e dcsat i vao A pu1t1du de um ngenl e pode ser rcali 1.atl ;1 util izando se as mcn'>agens STAJ<T e ACTIVATE e a par ada at ravs das mensagens STOP e J>l'::ACT/ \I/\ TE. Com a mensagem ST/\RT tem-se uma partida simples e com STOP uma parada tambm si 111pl es. Quando um agente inati vo recebe uma mensagem 1\ CTIVATE (<:e habilit ada) o agent e parte a1ravs de um mecanismo de a1i 1otio baseado no de Schnecbcl i (Schneebel i , 1992). O agenl e, ao recchcr uma mensagem /\ CTI \/A TE, executa o mtodo definido para a mensagem habilitada INI T. Nesse mtodo deve estar o c<>di go para ativar os agentes que vo ror111 ar conexl'>cs com o mesmo e soli citaiks de conexes com os agcn1 cs que vo lhe fornecer ser vi os. J\ at i vaao dos agentes vi1inhos vai , na presena desse cdigo, f ormando uma r vore de atiw1l5rs e a r ede de <'f>lll' \ es (Fi g. 7) rel aci onada com um dos con1portament os do roh. A soli cit ao de dcl.ativao de um agente real i'lada com o env i o de mensagens OEACTI V/\TE ao mesmo. O agente desconecta todos os agentes nel e conectados, encaminha f)EA CTI VATE a todos os agentes ati vados pel o mesmo e finalmente pra. O mecani smo de ati vao ser ve ao prnp6si to de manlCr at i vo a cada inslante soment e os que vo compor os comportamcnl<l\ vl idos cm cada situao.
Sen:;()I Fig. 7: Atiw1o <' con<'ro de flf?<'llll'.1". 2.6 Mediao de comandos de mediao e agen1es, :11nha1., de mensagens Existem duas formas bsi cas arbitrao de comandos nos definidas atrav!> da habil itao definido anter iormente. So el es: O mccanio.;mo de N)ll(/1tista; o ('{///(//. Co11 q11 i\/a. O mecani smo de cn11q11islll (Schncchel1 , 1992) l unc1ona como um importante mccani s1110 de arhitrao de comporta1nen1os. estabeh:cendo um esquema e111 que agentes cm si tuaes consideradas mais impor tantes cm determinado i nstante U!>s umcm a prioridade no envio de mensagens a um dado agent e, de maneira equi valente ao mecani smo <le .111presstio de comando!> de Brooks ( Brook!i, 1987). Por mei o deste mecanismo possvel que um agente dei xe de receber comandos ou mensagens env i adas por um ou mai s agentes pas!>ando a receber <,omcnLc mensagens ex ternas de um agent e, no caso um agente conqui-.tador . O proccs<>o de conqui sta de um agente /\ sobre um agente B Wi g. 8) acontece quando o agentc /\ envia a mensagem CONQUES1' ao agente /J. A partir desse momento o agente IJ passa a um es1ado "Co11q11 esttd", c m que -. so aceita.., mensagens provenientes do agente conquistador/\ ou do prpri o agente B. O monoplio do envi o de do agent e /\ se encerra quando este envia a mensagem REL/:.'l\ SE ao agente li , que fa1, com que o agente retorne ao seu estado anter ior ou aulomalicamcnte ap!s um " timeout" do envio da lt ima pelo agente / \ . 1-:: s!>C mecani !.rno parti cu l armente l i l quanclo l.e t rata dos atuadores ci o rob. freqen te o easo cm que dois nveis de c.:ornrortamentos dist int os do rob descja111 obl cr o ontrolc de um determinado "atuador " (agente Atuador) e enviar a el. tC comando" diferentes e at antagnicos. Fig. 8: Proce.l'so d<' ('011q11ista de 11111 agente. Canal. O segundo esquema de mediao e arbt rao de agentes aqui apresentado possui semnti ca semelhante ao cano/, enti dade cr i ada por Gat ( 199 1) eom a finalidade bsica da medi ao de co111 andos envi ados por mdul os cm arq uit eturas reati vas de control e. O canal uma ent i dade feita para acei tar um nmero arbitrr io de ent radas e combi n- l as de uma f'or ma predcterm i nada ( md a, son1a. mximo, etc.) cm uma nica s:1da (Fi g. 9). I nspirada na mesma, foi i mpl ementado um canal cm al guns tipos de agentes. Fi g. 9: Canal de um agente. 3. CONCLUSO A in vocao de obj etos at ravs de mensagens j era uma abor dagem conheci da e util i zada em vri as outras 1 i nguagcns con<.:orrentes ori ent adas para obj etos. /\ o i 11 ser i rmos novas abstraes, el evam-se os n vei s de abstrao dire<.: i onanuo uma abordagem de l' COO para a const ruo dos si stemas de <.:ontrol c baseados em compor tarncn t ns. At ravs do uso da ferramenta poss vel construir agent es c si stemas de cont roli.: , conc ili ando o u ~ d as c la sses conc.:orrc ntes c.;0 111 a s c lasses seqenci ai s de C++. garantindo assim a uli li rno das potenci alidades de abst rao dessa li nguagem. /\ f'crra111cnta fa vorece a re11 tili-::, ocio de cdi go seja por meio da insl anc ia<;o de mltipl os objetos a partir de uma mesma c lasse, ou por n1cio do u ~ de herana de cl asses <.: oncorrentes. mei o pel o qual so cri adas as cl asses de objetos e!>pcc ial i zados. /\ modrilaridade dos agentes e conscqUcnlcmcn1e dos comportamentos proporci ona urna expanso fcil ci o sistema de control e. Essa expanso tambm pode ser real i 1.ada a<.: rescentando-sc novos processadores e comportament os. /\ possi bili clacl e el e la1.cr e cl es fa'Cr li gaes entre agentes e modi fi car essas l i gaes ern f'uno das necessi dades contextuai s, contribui para a Jlexihilidade da abordagem utili zada. REFERNCI A S Andrews, G. R., SCll Nl.! I DER, F. B. ( 1983) Co11 cep1s c111d Notatio11s fo r Co11 curre111 l' rogra111111 i11g. Cornpu tin g Surveys. l s. 1. ; s.n. I. v. 15, n. 1, p.3-43. Brooks, R. /\ . ( 1987) A1110110111011s Mohile Robots. ln: GtHNSSON, W. E. L.. P/\TIL, R. S . .6.1 in the l 990' s and Beynnd. MTT Prcss. p. 343-363. B rooks, R. /\. ( 1990) Eleplwnls /)011 1 l'lay Ches.1'. Rohoti cs and A utonomous Syslc ms. n.6, p. 3- 15. Gat, E. ( 1 99 1) ALFA: A La11grwxe f or Progra111mi11g l?eae1ive Cont rol Sys1e111s. Pruccedings nr l he; IEEE l ntcrnati onnl Con fcrcnce 0 11 Robot i cs and A utomat on. 1s. 1.1. p. 111 6- 11 2 1. l l cwi ll , C. ( 1977) Viewi11g Co11 1 rol St ructure.1 as Pal/em .1 of Pas.1i11 g Me.l'sages. /\rliri c ial Int clli gcn<.: c. ls.I. ; s. n.J. v . 8, p. 323-364. Matsuoka, S, Yonen1wa, A. ( 1993) A11alysi.1 of /11h erilance Anomaly i11 Obj ecl-Orie11 ted Co11 c11 rre11t Progra111111 i11g Co11g11oges. ln: Research /)irectio11 .1 i11 Co11 cr1rre11t Object Orie111NI Progra111111 i11 g. MrT Press. p. 107- 150. Schnccbcli , H. /\. ( 1992) Die S1e11ern11g vo11 M eli r/ilut er-C rei(e r.1i 1 steme11 ( U 111 Sistema de Controle para Uma Garra Mult i dedos) . Di ssertao de Doutorado, Uni vcr siclncl e de Karl sruhe, /\l cm:i nha. Xavi er, .1. E. M. ( 1996) Uma E.11m111ra pom a Co11.11 me li o de Si.11emas de Conl mi e Uaseados em Agentes para l?ohs Mveis. Di ssertao de Mestrado, Uni vcrsidade Federal do Gsprito San to, V i t1 r i a. B rasi 1. Yonen i wa, /\ ., Shibayama, E., T ai...acla, T . e/ ai. ( 199 1) Modeli11g a11d l'rol{ rall!111i11g in a11 Ol!icct-Orie11tcd Co11rnrre11t la11g1wge. ln: Y ONEZA W A, A., TOKORO, M. 0/Jjl'ft Orie11ted Co11 c11 rre111 Pror:rammi11 g. M IT Prcss. p. 55-90.