Home
pdf file
Contents
1. Interface XML Gr fica Figura 2 14 Terceira fase Findo esta tarefa e a aplica o j permitia construir rever salvar abrir e modificar m quinas de estados assim como gerar c digo compil vel para ambas as m quinas de estados Ap s este passo procedeu se a testes intensivos que completa qualquer constru o de software 2 6 Metodologia de trabalho Os autores deste trabalho procuraram dividir esta ferramenta em dois n veis fundamentais n vel superior interface gr fica e n vel inferior gera o de c digo e interpreta o do XML Esta divis o permitiu o desenvolvimento paralelo do sistema ou seja medida que o n vel inferior foi evoluindo a interface ia ganhando forma O planeamento foi uma parte muito importante neste projecto na medida em que ajudou organiza o e modela o das v rias tarefas ao longo deste Feita a an lise do problema foi poss vel decompor o sistema em sub problemas trat veis para tal foi necess rio definir um conjunto de etapas O modelo de processo utilizado foi em cascata revisto que consiste em subdivis es bem explicitas das etapas e em que a sequ ncia l gica de execu o retroactiva O modelo em cascata revisto Fig 2 15 prev a possibilidade de a partir de qualquer tarefa do ciclo se poder regressar a uma tarefa anterior de forma a contemplar altera es funcionais e ou t cnicas que entretanto tenham surgido em virtude de um maior conhecimento qu
2. Add State Remove State Move State Set Initial Set Final Add PreCondition Add PostCondition Remove Transition Edit S M Properties Refresh Graph LILLE The new df Control type State Machine was created The C code was generated succesfully Figura 3 5 Janela principal No sub capitulo seguinte ser explicado em pormenor como se modelou os objectos para conseguirem ser representados graficamente Bruno Machado Cl udio Cardoso 37 3 2 2 Descri o da implementa o dos objectos gr ficos O leitor lembrar se das quest es colocadas no in cio deste cap tulo explicar se como se chegou implementa o gr fica dos objectos desenh veis A biblioteca do Java Swing permite criar e desenhar gr ficos a duas dimens es e foram usadas essas fun es de maneira a representar graficamente a m quina de estados Para representar graficamente um estado foi escolhida uma forma circular para desenha la usou se uma biblioteca de desenho java awt Graphics que permite desenhar forma oval atrav s da fun o drawOval X Y raio horizontal raio vertical Fig 3 6 x1 Y1 raio vertical raio horizontal Figura 3 6 Representa o gr fica de um estado O problema desta ferramenta que desenha uma oval na posi o X1 Y1 e pretende se que o centro do estado seja em x2 y2 posi o escolhida pelo utilizador Como foi o desejo
3. 2 14 Terceira fase 2 15 Modelo em cascata revisto 3 1 Estrutura do ficheiro PathConfig 3 2 Exemplo de um registo do ficheiro PathConfig 3 3 Exemplos da escolha de par metros para a ac o 3 4 Diagrama de casos de utiliza o 3 5 Janela principal 3 6 Representa o gr fica de um estado 3 7 Cores dos estados 3 8 Desenho das transi es por zonas Bruno Machado Cl udio Cardoso vi 3 9 M todo de desenho do arco 3 10 Transi es para o mesmo estado 3 11 Desenho de transi es para os quatro quadrantes 4 1 M quina de estados testada no robot Bruno Machado Cl udio Cardoso vii Lista de Siglas API Application Program Interfaces DOM Document Model ISocRob Instituto de sistemas rob ticos Soccer Robots JDK Java Developer s Kit JSK Java Source development Kit SPCMERC Sistema de Projecto e Controlo de Miss o de uma Equipa de Robots Cooperantes UML Unified Modeling Language XML eXtensible MarkupLanguage Lista de Programas Microsoft Visio Borland Java Builder Windows Borland Java Builder Linux Microsoft Word Mini Man Bruno Machado Cl udio Cardoso viii 1 Introdu o Com o aumento da complexidade dos sistemas aliado diminui o dos prazos e consequente necessidade de construir grandes equipas de desenvolvimento torna se cada vez mais importante a defini o de um processo que si
4. Partindo do mesmo conceito procura no caminho das constantes todas as palavras precedidas de define Bruno Machado Cl udio Cardoso 31 palavra reservada na linguagem C para a defini o de constantes e guarda as na lista de constantes Um automatismo utilizado especificamente para a gera o de c digo C a partir de uma m quina de estados do tipo Control o processo de escolha dos par metros de entrada para a fun o function de cada estado e toda a informa o inerente a esta e ainda a escolha do campo de teste switch field Este mecanismo processa se da seguinte forma existindo o nome dessa fun o no PathConfig guardado o caminho do ficheiro para o qual a fun o est definida e usado para procurar tanto o tipo da fun o como para a obten o dos seus par metros de entrada A citada fun o pode assumir um de dois tipos tipo inteiro e tipo n o primitivo Cap 2 4 2 Se for do tipo inteiro o programa toma o seu comportamento normal isto testa o resultado de retorno da fun o e prossegue a execu o Tratando se de uma fun o de um tipo n o primitivo sup e se o tipo estrutura struct visto consubstanciar um mecanismo que lhe permite preencher os campos da referida estrutura cujo caminho onde esse tipo est definido ser pesquisado no PathConfig Se neste mesmo ficheiro de configura o existir um terceiro campo preenchido o programa utiliza o como campo de teste switch field e pro
5. desenhar a m quina de estados e ser gerado o c digo C correspondente assim como criar a estrutura num ficheiro XML que poder ser visualizada graficamente e ser gerado o c digo C 2 5 1 Primeira fase Interpretador XML Esta fase corresponde ao n cleo deste projecto A primeira coisa a fazer com o ficheiro XML a sua an lise Como j foi dito a aproxima o que ir ser usada ser o DOM que se baseia num protocolo que converte um documento XML numa colec o de objectos Este modelo de objectos pode ser manipulado na maneira pretendida Este mecanismo tamb m Bruno Machado Cl udio Cardoso 22 conhecido por protocolo de acesso aleat rio random access porque se pode aceder a qualquer parte dos dados e em qualquer momento O pacote package DOM utilizado foi o jJavax xml parsers que define as classes DocumentBuilderFactory e DocumentBuilder que retornam um objecto que implementa a interface W3C Document Fig 2 12 DocumentBuilder Factory Document XML Data Builder Figura 2 12 Funcionamento da JAXP API Feita a an lise ao documento este ser guardado pela aplica o em estruturas din micas definidas pelo diagrama de objectos descrito acima Cap 2 3 3 Trata se de criar em seguida ficheiros de c digo que seguem as regras padronizadas pelos autores 2 5 2 Segunda fase Descodificador de XML Esta fase descreve como se desenvolveu o descodificador gr fico de um documento XML Ao
6. isto se j existir na biblioteca uma fun o de nome Chuta para chutar a bola Bruno Machado Cl udio Cardoso 19 podemos ent o preencher a tag Function com Chuta A tag de controlo lt Control gt e raz o lt Reason gt s o preenchidas respectivamente pelo sucesso ou insucesso de um comportamento e g BEHAVIOUR SUCESS e pelo motivo desse sucesso ou insucesso Uma caracter stica desta metalinguagem a flexibilidade ou seja o sistema tem a possibilidade de n o preencher as tags que acha desnecess rias ou momentaneamente inconvenientes Importa ainda referir os casos onde existe restri o cria o de tags dentro de certos n s No Control a impossibilidade de escolher uma ac o para uma determinada pr condi o leva a que a estrutura do n Transition n o contenha qualquer informa o referente a uma ac o No Machine na cria o de uma pr condi o entre estados imposs vel definir o control e reason restringindo essa defini o no n Transition Em qualquer transi o a exist ncia da tag FailState s tem significado quando existir um Name para a transi o ou seja tendo a transi o um nome predicado individual h necessidade de criar um estado de destino FailState em caso de falhar o salto para o estado pretendido TargetState caso contr rio n o faz sentido existir esse estado destino FailState 2 4 2 Linguagem de Programa o JAVA O Java uma linguagem ori
7. nica caracteriza o para os dois modelos no caso da aplica o o utilizador usar a mesma interface gr fica para a cria o os dois micro agentes Nos cap tulos seguintes estar explicada a modela o do problema e da solu o Outro requisito fundamental foi possibilitar a constru o de comportamentos relacionais implementado deste modo a Coopera o entre agentes A maneira como se poder gerar as diferentes m quinas de estados e consequentemente uma coordena o atrav s da coopera o directa chamando uma fun o que usa uma hash table para determinar o que faz num certo estado com uma determinada vista sobre o mundo A utiliza o desta tabela permite presentemente coordenar a equipa de robots a ir bola sem se atrapalharem uns aos outros Futuramente sem alterar o c digo da aplica o poder se implementar um passe Na figura 2 7 est ilustrado o conte do dessa tabela no estado actual do projecto SocRob Bruno Machado Cl udio Cardoso 10 poss vel ver a resolu o de conflitos neste caso O predicado ShouldIGo devolve um valor l gico baseado numa heur stica que tem em conta a dist ncia do robot bola assim com a orienta o do mesmo Para determinar se o robot em causa deve dirigir se bola isto transitar para o estado GetClose2Ball recorre se ao valor l gico da coluna Condition na linha GetClose2Ball da tabela de hash Assim a transi o toma como destino o estado da coluna S
8. settingsl switch functionl return value case DONE Bruno Machado Cl udio Cardoso 52 GO STATE STANDBY a ce break case DOING motorsSetVW functionl v functionl w break default break break case STANDBY RRR KKK KKK KK KKK KK SENSOR MODE HOR KKK KK KK KK visionMode up RRR KKK KKK KKK KKK PRECONDITIONS KOR KKK KK KK KK KK if NOT found ball GO_STATE GO kon E break RRR KKK KKK KKK KKK BODY KOK KKK KK KK KKK freeRotate amp vLeft amp vRight bbGetLocalFloat vision ball rangle 0 0 motorsSet vLeft vRight break default printf Control s Landed on unknown state n id GO_STATE GO error in state return TRUI Gl Bruno Machado Claudio Cardoso 53 Ap ndice C Bruno Machado Cl udio Cardoso 54 6 Refer ncias 1 MissionLab http www cc gatech edu ai robot lab 2 Charon http www cis upenn edu mobies charon 3 Machado Bruno Cardoso Cl udio Pagina de suporte ao projecto http mega ist utl pt bpvm 4 Silva Alberto Videira Carlos UML Metodologias e Ferramentas CASE 2001 5 Lima Pedro Current Status of the Project ISR Janeiro 2003 6 Lafortune S Cassandras Chistos G Introduction to Discrete Event Systems Kluwer Acadec Publ 1999 7 Flanagan D Java Examples in a Nutshell 2000 8 Lima Pedro Ventura Rodrigo Apar cio Pe
9. 3 4 Enquanto que as pr condi es s o desenhadas como indica a figura 3 10 as p s s o desenhadas com um arco com declive inverso Supondo que se unem dois estados com uma pr e uma p s condi o eles ter o sempre declives inversos nunca se sobrep em Bruno Machado Cl udio Cardoso 42 Tamb m poss vel que o estado de origem seja o mesmo de destino Neste caso o algoritmo criado consistiu em desenhar ovais centradas em oito posi es diferentes Quatro delas para pr condi es e quatro para as p s Estas zonas s o equidistantes e evita sobreposi es nestas condi es Figura 3 10 Transi es para o mesmo estado Explicado o processo de desenho falta explicar como que se pode seleccionar uma transi o A caracteriza o gr fica de uma transi o feita atrav s da caixa onde est o nome da mesma Para se definir a caixa foi preciso encontrar os dois pontos associados estes s o calculados atrav s do comprimento do nome e de um desvio causado pelo desenho da seta direccional A dimens o desta caixa do nome da transi o calculada dinamicamente usando o tamanho da fonte das letras S o quatro os valores a calcular o X1 e Y1 referem se ao canto superior esquerdo da caixa enquanto que X2 e Y2 ao canto inferior direito Mediante o quadrante onde a transi o ser desenhada os valores para um par X Y s o calculados a partir da posi o da seta de maneira a que a caixa fica colada
10. Modelo UML O UML Unified Modeling Language uma linguagem diagram tica utiliz vel para especifica o visualiza o e documenta o de sistemas de software 4 O UML surge em 1997 na sequ ncia de um esfor o de unifica o de tr s principais linguagens de modela o orientadas por objectos OMT Booch e OOSE Seguidamente adquiriu o estatuto de norma no mbito da OMG e da ISO tendo vindo a ser adoptado progressivamente pela ind stria e academia em todo o mundo Dado que o sistema baseado em comportamentos descritos por m quinas de estados a modela o por objectos encaixa se de forma adequada logo para modelar a solu o usou se uma extens o da nota o gr fica do UML que descreve graficamente um diagrama de classes de maneira a visualizar melhor os objectos e as rela es em quest o Ap s a an lise ao sistema em estudo foram detectados os objectos pertencentes ao dom nio da solu o Estes objectos s o bem distintos quer em comportamento em tempo de Bruno Machado Cl udio Cardoso 12 vida quer a n vel relacional sendo os principais a m quina de estados StateMachine o estado State o super estado SuperState e a transi o Transition Fig 2 9 Estes possuem tr s atributos de caracteriza o do objecto identificador ZD nome Name e descri o Description O identificador gerado automaticamente pelo sistema e consiste num n mero que identifica univocamente o objecto
11. ao desenvolvimento desta ferramenta encontra se em anexo Ap ndice A alguns dos slides mais relevantes apresentados equipa com o objectivo de integrar os restantes membros no conte do desta ferramenta O relacionamento com o Professor decorreu de forma muito profissional e pedag gica Foram mantidas reuni es semanais com o grupo de desenvolvimento do ISocRob e reuni es Bruno Machado Cl udio Cardoso 26 extraordin rias sempre que a vontade dos autores e orientador coincidiam Pode se assim dizer que o projecto foi orientado com rumo e precis o at ao produto final Bruno Machado Cl udio Cardoso 27 3 Descri o do Trabalho Como foi explicado anteriormente este projecto enquadra se num sistema de gera o de c digo C a partir da cria o de uma m quina de estados num ambiente gr fico Tendo em conta alguns dos requisitos foi desenvolvido um motor capaz de gerar c digo C compil vel resultante de um planeamento direccionado a uma miss o de robots Este motor utiliza automatismos como apoio gera o capazes de proporcionar ao utilizador uma abstrac o a n vel da produ o de c digo C Est garantida ainda uma interface gr fica composta por janelas de navega o que conduzem a uma cria o edi o de m quinas de estado como se de um desenho se tratasse De seguida ser o apresentados e desenvolvidos os conceitos atr s descritos 3 1 Gera o de c digo C O c digo C gerado ob
12. como objectivo a busca e salvamento em situa es de cat strofe por uma equipa de robots constitu da de momento por um robot com rodas para o terreno e outro robot a reo para ajuda navega o Ambos os projectos utilizam presentemente m quinas de estados para modelarem os comportamentos Sendo que cada robot constitu do por uma s rie de sensores sonares c maras CCD etc e actuadores motores kickers etc necess rio software para receber e tratar os sinais de entrada dados pelos sensores e dar ordens aos actuadores Para tal foram Bruno Machado Cl udio Cardoso 1 definidos comportamentos atrav s de m quinas de estados que t m que ser programadas numa linguagem espec fica que requer conhecimentos avan ados de programa o Existem actualmente sistemas semelhantes e g MissionLab 1 e Charon 2 mas ou s o muito complexos porque exigem grandes conhecimentos sobre todo o sistema integrante ou requerem um grande n vel de abstrac o o que tamb m resultaria numa mudan a muito dr stica na equipa de projecto a n vel de modela o a n vel conceptual e a n vel f sico O objectivo deste texto relat rio explicar como se vai desenvolver uma ferramenta onde um utilizador possa construir graficamente uma s rie de comportamentos para uma equipa de robots sem ter que mexer nas diferentes camadas da arquitectura podendo se abstrair do n vel de programa o reutilizando o c digo j exis
13. consiste em modelar o comportamento do oponente para planear uma estrat gia e Nivel de Coordena o ou Coordena o Tarefa Comportamento aqui faz se a troca entre os comportamentos quer sejam relacionais quer individuais de maneira a que cada robot coordene a sua execu o de tarefas de forma a garantir que a sua equipa chegue ao objectivo e N vel de Execu o onde se faz a interface entre as tarefas primitivas os sensores e actuadores de cada robot Implementa se um comportamento ligando tarefas primitivas entre elas No estado actual do projecto ISocRob os comportamentos s o implementados como um aut mato finito em que os estados s o tarefas primitivas e as transi es s o condi es l gicas associadas a eventos detectados pelo sistema Os comportamentos s o individuais se correrem num s robot ou relacionais se houver coordena o entre dois ou mais robots Bruno Machado Cl udio Cardoso 4 Planning This subsystem establishes the strategy what to do or the goal based on the analysis of areny de Blackboard processed sensor data current Beliefs Intentions and Commitments Ekoomed next figure including current Task Coordination This subsystem selects or blends behavior behavior and actions manages commitments and intentions and selects formation formation topology w hen reguired Behavior switching is based topology ifany on the evaluation ofthe behavior perfo
14. dos autores que os estados tivessem uma forma circular e com o centro na posi o clicada ficou definido que o raio horizontal fosse igual ao raio vertical e que a posi o passada para a fun o de desenho seria Estado X X clicado raio horizontal 3 1 Estado Y Y clicado raio vertical 3 2 Bruno Machado Cl udio Cardoso 38 Quando o utilizador acrescenta um estado maquina de estados clicando na superficie de desenho a aplica o cria um novo estado com os atributos preenchidos atrav s da janela de edi o de estados ver sub Cap anterior e com a posi o X e Y Existem algumas diferen as de como um estado um estado inicial e estado final s o representados o normal consiste numa circunfer ncia preta e sobreposta a este uma amarela de raio um pouco mais pequeno No caso de ser um estado inicial a primeira circunfer ncia verde e para o final vermelha Deste modo os estados consoante sejam normais final ou inicial t m uma representa o gr fica diferente Uma vez que se tenha definido um ou mais estados necess rio puder seleccion los seja para alterar algum atributo apaga lo move lo ou para defini lo como estado origem destino numa transi o Para tal necess rio haver algo que os caracterize graficamente No caso do estado o que o caracteriza o seu centro Sabendo o raio dos estados ent o para puder selecciona lo basta clicar dentro da sua rea interior Seja
15. identificadores de chave F para fun es A para ac es M para modo de sensores S para estruturas B para comportamentos Machine e O para outros A chave n o mais que um nome que pode assumir o nome da pr pria fun o ou um nome atribu do pelo sistema O caminho como o nome indica representa o endere o do ficheiro onde se encontra a chave definida Todos os campos do ficheiro est o separados pelo car cter Fig 3 2 Este ficheiro de configura o entre muitas coisas permite que uma vez definida uma nova chave fique acess vel a todos os utilizadores a partir desse momento Identificador de Chave Chave Caminho Campo de Teste Figura 3 1 Estrutura do ficheiro PathConfig Bruno Machado Cl udio Cardoso 30 S Actuation guidance h return_value Figura 3 2 Exemplo de um registo do ficheiro PathConfig Tirando os casos onde o utilizador pode introduzir linhas de c digo C onde lhe compete a responsabilidade de definir as bibliotecas para as fun es que utilizar existe um automatismo capaz de gerar a inclus o de todas as bibliotecas necess rias para que o sistema possa compilar isto todas as linhas de c digo s o analisadas sem erros pelo compilador de C Este automatismo recolhe da estrutura da m quina de estados as poss veis bibliotecas a serem inclu das modo sensores fun o tipo da fun o caso seja n o primitivo e ac o assim como as bibliotecas necess rias definidas
16. mantivessem uma identa o coerente em rela o ao resto do c digo Para este caso foi criado um automatismo que desresponsabiliza o utilizador de tais fun es e parte ele pr prio para a identa o de todo o c digo C 3 2 Editor Gr fico De maneira a que o utilizador possa manipular e criar m quinas de estados de forma intuitiva e r pida foi criada uma interface gr fica de edi o de m quinas de estados Atrav s desta o utilizador tem acesso a uma s rie de funcionalidades tais como criar modificar salvaguardar e abrir m quinas de estados j gravadas Nos sub cap tulos seguintes poder observar se as funcionalidades atrav s do caso de utiliza o e uma explica o de como foram projectados os objectos para serem desenhados as suas estruturas e como foram representados graficamente Para a implementa o deste editor gr fico foi usado o Swing JavaTM 2 Platform standard Edition 1 4 1 que consiste numa compila o de componentes do Java para cria o de ambientes gr ficos janelas bot es etc que funciona em praticamente todos os sistemas operativos da mesma maneira O Swing foi a ferramenta escolhida devido sua portabilidade facilidade de implementa o e integra o de componentes mais complexos O maior desafio na implementa o deste editor foi arranjar uma representa o gr fica para cada objecto Ou seja tendo um estado como que se representa Tendo uma transi o de um estado para outro com
17. mesma os valores do outro par s o calculados atrav s do comprimento do nome que est no interior da caixa mais um deslocamento m nimo para o caso de n o ter nome a transi o ser seleccion vel A colora o de cada transi o depende do seu tipo Se se estiver a construir editar uma m quina de estados do tipo Machine haver tr s hip teses se a transi o for uma chamada pr condi o a sua colora o ser preta se for uma p s condi o com uma mensagem de sucesso behaviour success associada ser colorida de verde se pelo contr rio tiver uma mensagem de falha behaviour failure a sua colora o ser vermelha Para qualquer uma destas Bruno Machado Cl udio Cardoso 43 transi es se forem relacionais ter o estados alternativos Fail States e estas ser o desenhadas a magenta Fig 3 11 Se a m quina de estados for do tipo Control ent o as pr condi es ser o desenhadas a preto e as p s a azul Foi tomado em conta o aspecto gr fico e as cores usadas porque facilita a legibilidade e mant m a coer ncia com as m quinas j desenhadas SPCMERC Editor C Documents and Settings Bruno My Documents quatroQuadrantes xml DER File Edit Draw Mode Generator Help Desim Panel Ada State Remove State Move State Set Initial Set Final Add PreCondition nad PostCondition Remove Transition Edit S M Pr a LI A transition will be added uniting the 2
18. no PathConfig e g predicados constantes operadores l gicos etc Se n o existirem no PathConfig caminhos para estas ultimas bibliotecas necess rias cabe ao utilizador no momento da gera o de c digo definir os endere os Tendo o utilizador a capacidade de poder definir endere os caminho das bibliotecas para um nome e g fun o ac o modo sensor estrutura etc foi criado um automatismo com a responsabilidade de garantir a exist ncia do endere o e a defini o do nome nesse mesmo endere o Assim garante se a consist ncia e coer ncia da informa o Para a defini o das vari veis globais no c digo foi criado um automatismo que permite definir todas as vari veis necess rias para a execu o final do ficheiro Come a se por definir uma estrutura de nome private que visa auxiliar a programa o De seguida para cada estado e na exist ncia de fun o procura os par metros de entrada que se encontram dentro do FunctionConfig e define os ser explicado a seguir como foram obtidos Como base da listagem dos predicados e das constantes est um automatismo que permite ao utilizador escolher de uma lista de predicados e de uma lista de constantes qual o predicado ou constante a utilizar ao longo da cria o de uma m quina de estados Este mecanismo consiste em procurar no caminho dos predicados definido no PathConfig todas as fun es do tipo inteiro l gico boleano ou real no o de predicado
19. o conte do das fun es Init Destroy e ChangeTo Cabe ao utilizador preencher ou n o o conte do Bruno Machado Cl udio Cardoso 29 Na fun o principal est definido o n cleo do programa onde est especificado o que fazer e quando fazer N o existindo um esqueleto padr o formalizado foi adoptado o seguinte modelo bloco inicial pr condi es e p s condi es Para o Machine ser ainda gerado um ficheiro H cujo conte do n o mais que os cabe alhos das fun es de inicializa o e da fun o principal descritas anteriormente 3 1 3 Automatismos Uma das principais preocupa es deste trabalho foi a automatiza o de ac es ou seja visou se proporcionar ao utilizador um ambiente de f cil utiliza o e que requer o m nimo de informa o relevante Com isto procura gerar c digo C mais estruturado de f cil reutiliza o e mais consistente Como suporte gera o de c digo tanto para o Control como para o Machine foram criados alguns automatismos que permitem a cria o autom tica de blocos de c digo em certas zonas do ficheiro poupando esse esfor o ao utilizador A base de todos os automatismos o ficheiro de dados PathConfig este respons vel por armazenar os caminhos que resolvem uma chave Key e possui a seguinte estrutura identificador da chave chave caminho e para algumas chaves um campo de teste referente ao c digo C switch field Fig 3 1 Existem os seguintes
20. o da interface 2 5 1 Primeira fase Interpretador XML 2 5 2 Segunda fase Descodificador de XML 2 5 3 Terceira fase Interface gr fica 2 6 Metodologia de trabalho Descri o do Trabalho 3 1 Gera o de c digo C 3 1 1 Gera o de c digo para Contol 3 1 2 Gera o de c digo para Machine 3 13 Automatismos 32 Editor Gr fico 3 2 1 Casos de Utiliza o 3 2 2 Descri o da implementa o dos objectos gr ficos Resultados 4 1 Compara o entre os objectivos planeados e os atingidos 4 2 Testes realizados 4 2 1 Linux vs Windows 42 2 Testes no campo SocRob Bruno Machado Claudio Cardoso 17 17 20 21 22 23 24 25 28 28 28 29 30 34 35 38 45 45 45 45 46 4 3 Limita es do Projecto 5 Conclus es 6 Refer ncias Bruno Machado Cl udio Cardoso 47 48 55 Lista de Figuras 2 1 Arquitectura funcional do ponto de vista dos operadores 2 2 Vista do n vel de execu o 2 3 Vista da modela o do mundo 2 4 Arquitectura de Software do projecto ISocRob 2 5 Esqueleto do c digo para o Control 2 6 Esqueleto do c digo para o Machine 2 7 Tabela de hash 2 8 Arquitectura SPCMERC 2 9 Diagrama e objectos do dom nio 2 10 Defini o da metalinguagem em XML para Control 2 11 Defini o da metalinguagem em XML para Machine 2 12 Funcionamento da JAXP API 2 13 Esquema de desenvolvimento
21. relacional sem ser relacional ou ambas no caso de se tratar de uma m quina de estados do tipo Machine e um menu de gera o de c digo C onde existem dois sub menus um para a gera o em si e outro para gravar o c digo gerado H um painel interior designado de superf cie de desenho que cont m uma s rie de bot es para edi o r pida e eficiente da m quina de estados nestes est o inclu dos os bot es de acrescentar estado remover estado mover estado seleccionar estado inicial seleccionar estado final acrescentar p s condi o acrescentar pr condi o remover transi o editar par metros da m quina de estados actual No menu de ficheiros existem as funcionalidades de abrir gravar nova m quina de estados e sair da aplica o Para criar uma m quina de estados nova o utilizador dever seleccionar entre os dois tipos existentes Machine ou Control e de seguida ser definida uma vari vel global representativa da m quina de estados actualmente a ser desenhada pelo editor este tipo escolhido ser preenchido como explicado no Cap 2 3 3 De modo a que os bot es acima referenciados funcionem foram implementadas fun es de escuta de eventos event handlers eventos estes que passam para as fun es correspondentes informa o do tipo que bot o foi carregado quantas vezes foi carregado onde clicou posi o x y etc Existe outro painel dentro da janela principal Fig 3 5 que s aparecer
22. selected States he State Machine is opened C Documents and Settings BrunoiMy Documents guatroOuadrantes xml Figura 3 11 Desenho de transi es para os quatro quadrantes Bruno Machado Cl udio Cardoso 44 4 Resultados Neste cap tulo pretende se mostrar os resultados atingidos e comprovar que os objectivos previstos foram conseguidos Foram criados ficheiros XML com o intuito de provocar poss veis erros conseguindo detectar exactamente em que condi es esse erro surgia Posteriormente garantiu se que o c digo gerado por este sistema suportado e executado pelos robots do ISocRob Constata se que o desafio da portabilidade entre sistemas operativos foi ganho ou seja esta ferramenta pode ser executada em Windows Linux ou Mac 4 1 Compara o entre os objectivos planeados e os atingidos O objectivo planeado era construir uma ferramenta capaz de gerar c digo C a partir de uma m quina de estados criada num ambiente gr fico Este objectivo foi atingido na totalidade com o acr scimo de algumas funcionalidades que os autores resolveram criar Cap 3 2 1 Foi tra ado um objectivo prim rio Cap 2 4 1 que foi atingido de uma forma muita consistente que proporcionou uma solidez na continuidade do desenvolvimento 4 2 Testes realizados Sendo o tempo de desenvolvimento de software proporcional ao tempo de testes do sistema foram reservados alguns momentos para a realiza o de testes Para os
23. testes finais foram utilizados ficheiros XML com informa o diversificada contendo poss veis armadilhas tanto para testar a gera o de c digo como para testar a interface gr fica 4 2 1 Linux vs Windows Embora o projecto tenha sido completamente programado sobre um sistema operativo Windows j era sabido que iria ser usado em ambientes Linux como tal a parte final de Bruno Machado Cl udio Cardoso 45 concep o da interface foi desenvolvida numa interface de desenvolvimento Java para Linux Deste modo garantiu se que a aplica o iria funcionar em ambos os sistemas operativos Os testes realizados confirmam a portabilidade do c digo produzido porque o sistema comportou se de igual forma em ambos sistemas operativos ficou desta forma atingido o requisito da portabilidade do sistema 4 2 2 Testes no campo ISocRob Com a ajuda do professor coordenador foi constru da uma m quina de estados atrav s da aplica o gr fica Fig 4 1 Em poucos minutos estava completa gerou se o c digo e foi posto a correr no robot no campo de futebol Este comportou se como seria esperado e como foi programado e fez exactamente o que lhe foi implementado O comportamento era muito simples e consistia em por o robot a seguir a bola sempre que esta estive no seu campo de vis o quando a perdia o robot dirigia se para a zona central do terreno A seguinte figura mostra o aspecto gr fico da m quina de estados e o respecti
24. K I I RK X KA IR RR KK I RK KK KK int changeTo void GO STATE GO Initialization return TRUE RRR KKK k k kk k kk k kk K kk k kk k k X k KAZ k X k X k RARA GFunction changeFrom Bruno Machado Cl udio Cardoso 51 Description GReturn int GAuthor SPCMERC Kk Kk X k X kk X kk K k X kA X KA X KA RARA k kk int changeFrom void return TRUE RRR KKK k k kk KR RK KK KK OR KK KK KK KK KK KK Function getID Description returns pointer to id string Return char Author SPCMERC HR RK KK RR KR RK RK KK RK KK KK char getId void return id RRR KK RK k kk k kk RR k kk IR KK KK KE I KK KK AA Function method Description Return int Author SPCMERC HK RK KI RK X kA I RK RK KK RK KK kk int method void switch GET STATE case GO KKK KKK KKK KKK KK KK SENSOR MODE KOK KKK KK KK AAA visionMode self RRR KKK KKK KKK KKK PRECONDITIONS KOR KKK KK KK KK KK KK if found ball GO STATE STANDBY RD o break RRR KKK KKK KKK KKK BODY KOK KKK KK AA statel sonars sonarGet statel posture odometry motorsGetVW amp statel v amp statel w getHomePosture amp goall posture settingsl avoid ball getBallPosition amp astatel ball x amp statel ball y kkkkkk kk FUNCTION amp POSTCONDITIONS kkk x functionl potential amp goall amp statel
25. Relat rio de TFC do curso de Licenciatura em Engenharia Inform tica ISTIRUTO e de Computadores 2 LEIC i Departamento Ano Lectivo 2002 2003 de Engenharia Inform tica N da Proposta T tulo Sistema de Projecto e Co Professor Orientador Co Orientador Professor Acompanhante Alunos Bruno Machado Cl udio Cardoso Agradecimentos Quem agradece o que tem merece o que n o tem Este trabalho n o seria poss vel sem o apoio das nossas fam lias prestado ao longo de todo o curso superior e a eles que dedicamos este esfor o final Queremos agradecer tamb m o incentivo das namoradas amigos e colegas Ao longo destes anos frequentando o curso de Engenharia Inform tica e de Computadores foram in meros os projectos realizados mas este foi sem duvida o que nos deu mais prazer em concluir porque aliados constante tempo foi conseguido por em pr tica os conceitos te rico pr ticos e conseguir relaciona los com o j existente projecto SocRob Agradecemos a disponibilidade dos professores e colegas de grupo ZSocRob e Rescue que foi sem d vida uma preciosa ajuda para a atingir os objectivos tra ados Para todos com um abra o especial Lisboa 10 de Julho de 2003 Bruno e Cl udio Bruno Machado Cl udio Cardoso ii Resumo Com a necessidade de aliar a grandeza de um projecto rob tico com a estrutura o de c digo inerente aos robots constru se um
26. X e Y a posi o devolvida pelo rato correspondente ao sistema de coordenadas do painel de desenho ent o para todos os estados se dist ncia de X ao centro de um estado for menor que o raio e o mesmo racioc nio para Y ent o o estado dado como seleccionado e mostrado ao utilizador colorido de cinza Fig 3 7 Seguindo o pseudo c digo lt PARA todos os estados lista de estados global gt tado Gl n lt SE dist X estado x lt raio_ T E dist Y estado y lt raio Estado gt lt ENT O devolve o estado seleccionado gt A seguinte figura ilustra o aspecto gr fico dos diferentes tipos de estado Bruno Machado Cl udio Cardoso 39 Figura 3 7 Cores dos estados Para completar o desenho de uma m quina de estados precisamos de unir os estados com transi es e caracterizar graficamente essas transi es para que o utilizador possa usando o rato seleccion las quer para apagar ou modificar alguns atributos A transi o constitu da graficamente pelo seu estado origem e destino logo para que sejam desenhadas foram definidos pontos de entrada e sa da no estado deste modo evita se usar o centro do estado e n o acontecer que um estado se sobreponha a uma transi o sendo percept vel para o utilizador onde come a e onde acaba uma transi o Graficamente foram imaginadas oito zonas distintas de destino para uma transi o sendo a origem um esta
27. a de estados Destroy j finaliza es quando se sai da m quina de estados changeTo o que fazer quando se muda para o comportamento changeFrom o qua fazer imediatamente antes de mudar para outro comportamento getiId devolve o nome do estado method switch state CASE XXKXX modo sensores vision mode front up self ou empryspor pr condic es teste das variaveis do BE n o afectadas pela fun o Corpo activa o de sensores algoritmo do comportamento fun o potentiali freezone i dribblefj ete p s condi es teste das variaveis do BE afectadas pela fun o ac o tipico motorsSetVW case WYYVY modo sensores pr condic es corpo fun o p s condi es ac o Figura 2 5 Esqueleto do c digo para o Control Bruno Machado Cl udio Cardoso 9 O Machine descrito da seguinte forma para cada estado existe um bloco inicial onde se insere uma fun o respons vel por garantir a perman ncia nesse comportamento um bloco de pr e p s condi es que se comportam como os descritos anteriormente no esqueleto do Control Init Destroy chance To Rolet switch state CASE XXXXX bloco inicial fun o setBehawiour sethehaviourhcg pr condi es p s condi es case YYYYY bloco inicial fun o pr condic es p s condic es Figura 2 6 Esgueleto do c digo para o Machine A Flexibilidade e a Reutiliza o de c digo foram conseguidas atrav s de uma
28. a ferramenta capaz de produzir c digo C a partir de um ambiente gr fico de desenho A ideia de partir para um sistema desta natureza face aos j existentes Charon e MissionLab foi produzir um motor que satisfizesse os requisitos necess rios para uma gera o de c digo intrinsecamente adaptada filosofia da equipa de projecto Este trabalho visa simplificar a codifica o de comportamentos mantendo a coer ncia e estrutura Para a constru o de uma solu o foram usadas ferramentas de modela o diagramas de estados UML casos de utiliza o e para a defini o da estrutura final o XML Tendo se o dom nio da solu o passou se para a codifica o da ferramenta usando as tecnologias de programa o Java e um interpretador da metalinguagem XML chamado Document Model DOM A parte gr fica da aplica o foi desenvolvida com o aux lio do Swing Feito um planeamento adequado conseguiu se concluir a aplica o no tempo desejado com resultados confirmados Palavras chave Machine Control M quina de estados Estado Super estado Transi o Bruno Machado Cl udio Cardoso iii 1 2 Introdu o Conceitos T cnicas e Metodologias 21 Conceitos e Metodologias 2 2 Processo de desenvolvimento 2 3 Requisitos e Modela o do problema 2 3 1 Requisitos 2 3 2 Arquitectura 2 3 3 Modelo UML 24 As Linguagens 24 1 Defini o da Metalinguagem XML 242 Linguagem de Programa o JAVA 2 5 Defini
29. atos finitos de m quinas de estados e chamar lhe emos de m quina de estados Machine quando uma refer ncia a um aut mato finito para a descri o do micro agente Machine e m quina de estados Control a um aut mato finito representativo de um comportamento para o micro agente Control 2 3 1 Requisitos Um dos requisitos exigidos garantir que o c digo gerado seja Estruturado Para tal foi definido pela equipa de desenvolvimento um esqueleto que defina o c digo padr o dos Bruno Machado Cl udio Cardoso 8 micro agentes Control e Machine a serem gerados evitando se assim erros estruturais que dificultariam a leitura posteriori E ilustrado na figura 2 5 o esqueleto do Control e na figura 2 6 o esqueleto requerido para o Machine Resumidamente o esqueleto do Control descreve se da seguinte forma para cada estado existe um modo de sensores onde especificado quais os sensores a serem utilizados um bloco de pr condi es onde testada a continuidade nesse estado ou seja se existem condi es para continuar nesse estado ou se transita para outro comportamento pois podem ter acontecido modifica es instant neas no mundo um corpo onde s o definidas tarefas espec ficas uma fun o de navega o um bloco de p s condi es que ap s decorrido o comportamento pretendido podem executar uma ac o e ou direccionar o fluxo de execu o para um estado Initij inicializa es quando entra na m quin
30. cheiro XML que represente graficamente a informa o sobre a m quina de estados e finalmente uma interface gr fica que a partir do desenho da m quina de estados seja capaz de produzir um c digo C compil vel e os ficheiros XML associados 2 3 Requisitos e Modela o do problema A arquitectura de software baseada em micro agentes e num BalckBoard quadro de informa o distribu da Estes micros agentes s o processos independentes que se executam em paralelo e implementam toda a interface com o mundo exterior interfaces com os actuadores sensores coloca o e leitura de vari veis do BlackBoard Basicamente controlam todo o fluxo de execu o da m quina robot Existem v rios micro agentes Fig 2 4 o da vis o Vision que l as imagens das cameras o Kicker que faz a interac o com o circuito pneum tico instalado o Proxy que trata da comunica o o Relay que partilha a informa o contida no BlackBoard e os estados de cada robot com uma interface gr fica exterior para monitoriza o e a destacar os dois mais importantes para este projecto o Machine e o Control O Machine coordena os operadores comportamentos dispon veis no micro agente Control escolhendo os adequadamente no tempo para execu o O operador comportamento comunicado para o micro agente Control Como foi dito anteriormente os comportamentos est o definidos atrav s de aut matos finitos e por defini o t m que possuir um estado ini
31. cial e final Estes conceitos explicam a raz o de algumas medidas tomadas para a sua implementa o Mais frente explicaremos o conceito de m quina de estados tipo Machine O Control o micro agente escolhido para execu o atrav s de uma mensagem recebida pelo micro agente Machine Posto em execu o o operador comportamento solicitado devolve uma mensagem para o Machine que poder ser de sucesso ou de insucesso e acompanhada da raz o do referido in sucesso Cada comportamento aqui tamb m definido Bruno Machado Cl udio Cardoso 1 atrav s de um aut mato finito este micro agente tamb m permite e na realidade onde se executa a chamada aos outros micro agentes comunicando o pedido ou ordem por exemplo numa chamada ao Kicker ou Vision para ordenar um chuto ou obter imagens de uma c mara Implementation using threads individual level Task Coordination Behavior Switching Connection to Kicker actuator Intra team Comm thread Runs individual behaviours and guidance functions Blackboard Note switching among individual behaviors is made in a separate thread machine from the primitive function thread guidance Switching occurs after a in success signal from the primitive function or due to other events permanently monitored by the machine thread Figura 2 4 Arquitectura de software do projecto JSocRob extra do de 5 Foi decidido pelos autores chamar a estes aut m
32. da em XML tanto para o Control como para o Machine Fig 2 10 e Fig 2 11 respectivamente devido facilidade de interac o com esta linguagem e s Application Program Interfaces API Java dispon veis Cap 2 4 para manipul la Dada a actual modela o em UML Cap 2 3 3 Fig 2 9 a transposi o para uma metalinguagem em XML foi imediata e linear de observar que as classes definidas no modelo de classes e os seus atributos est o representados no XML por elementos Pai aqueles que est o a um n vel a cima e elementos Filho aqueles que est o dentro do n vel do elemento pai respectivamente Importa diferenciar as duas defini es da metalinguagem na medida em que para cada caso foram reservados apenas os campos da estrutura ver UML necess rios e compete a estes o armazenamento da informa o para uma posterior gera o de c digo C Bruno Machado Cl udio Cardoso 17 lt StateMachine gt lt ID gt lt ID gt lt Init gt lt Init gt lt Destroy gt lt Destroy gt lt ChangeTo gt lt ChangeTo gt lt ChangeFrom gt lt ChangeFrom gt lt Type gt lt Type gt lt Name gt lt Name gt lt Description gt lt Description gt lt InitialState gt lt InitialState gt lt FinalState gt lt FinalState gt lt State gt lt ID gt lt ID gt lt Name gt lt Name gt lt Description gt lt Description gt lt SensorMode gt lt SensorMode gt lt PreCondition gt lt PreCondition gt lt B
33. da fun o FunTypeDotH caso seja de um tipo n o primitivo os par metros de entrada da fun o FunParam resolvidos pelo sistema Cap 3 1 3 campo de teste SwitchField que representa a vari vel de retorno da fun o e finalmente a biblioteca onde est definida a fun o FunDot H Para dar suporte interface gr fica visto o estado ser um objecto representado no editor existem os atributos x que representa a posi o no eixo horizontal do painel de desenhos y que representa a posi o no eixo vertical do mesmo painel e ainda o atributo seleccionado Selected que indica a veracidade da selec o do estado As transi es s o fun es do tipo f estado actual transi o T estado destino 6 e t m que ser definidas pelo nome campo Name por uma descri o do seu funcionamento campo Description uma ac o Action onde se envia para os actuadores motores as refer ncias calculadas pela fun o do estado acima referida par metros de entrada para a ac o ActionParameters escolhidos pelo utilizador um estado destino campo TargetState e para o controlo do n vel superior foram acrescentadas fun es de retorno s o estas o controlo campo Control e a raz o pela qual surgem de maneira a poder modelar o n vel comportamental campo Reason O atributo estado destino em caso de falha Fai lState guarda o nome do estado para o qual a transi o transita caso n o seja poss vel atingir o estado d
34. do que se encontra sempre no centro Todos os c lculos foram feitos estado a estado percorrendo a lista de estados geral a lista de estados da m quina de estados logo o estado destino da transi o pode assumir qualquer um dentro destas possibilidades Fig 3 8 Tendo sempre em conta que o estado que est no centro o de origem poss vel denotar pela imagem que existem 8 zonas bem distintas os quatro quadrantes diagonais ao estado de origem e mais quatro zonas em que a diferen a entre a distancia entre os X s e os Y s do estado destino para o estado de origem pouco maior que o raio horizontal e vertical ao estado origem Bruno Machado Cl udio Cardoso 40 X IHI Quad II Quad distance 7 i L found ba x DSR NOTOG NE NOTDONE R INOTDONG a DONE Dong 7 o found ball IV Quad Figura 3 8 Desenho das transi es por zonas Enquanto que para desenhar uma transi o para qualquer um dos quadrantes se usaram arcos esta solu o j n o poss vel para as outras quatro zonas nessas foram usadas rectas O desenho das rectas foi o mais f cil de implementar este faz se chamando a fun o DrawLine X inicial Y inicial X final Y final desenha ent o uma recta unido os dois estados De notar que a posi o final da recta dinamicamente calculada segundo o algoritmo abaixo explicado que tem em conta o n mero de transi es com o mes
35. do sistema medida que o trabalho ia avan ando O trabalho em causa integra se no projecto SocRob e Rescue e como estes usam nos robots e nos ambientes de desenvolvimento o sistema operativo Linux foi escolhida como linguagem de programa o o Java devido sua portabilidade entre sistemas operativos Como sabido o objectivo deste texto explicar como se constr i uma ferramenta que possibilite a um utilizador desenhar uma m quina de estados num ambiente gr fico e que devolve um ou mais ficheiros em c digo C da mesma Para a realiza o deste projecto dividiu se em tr s etapas de maneira a estruturar e modelar a solu o onde a primeira consiste no levantamento de requisitos e resulta na modela o do problema usando uma ferramenta de modela o capaz de identificar e descrever os intervenientes de forma clara e concisa Na segunda etapa est descrita a m quina de estados atrav s de uma linguagem de marca o extens vel XML usando as defini es de classes resultantes da modela o da primeira fase Bruno Machado Cl udio Cardoso 6 sendo assim linear e transparente a passagem do modelo para a instancia o de cada um dos objectos intervenientes Na terceira e ltima etapa sendo o principal objectivo deste projecto a gera o de c digo C a partir da descri o de uma m quina de estados a solu o foi dividida em tr s partes essenciais um interpretador de XML para c digo C um descodificador de um fi
36. dro Cust dio Lu s A Functional Architecture for a team of Fully Autonomous Cooperative Robots in RobotCup 99 Robot Soccer World Cup III Springer Verlag Berlin 1999 9 Toscano Lu s Desenvolvimento de Modelos de Coopera o para uma sociedade de Agentes TFC LEEC DEEC Instituto Superior T cnico 1049 001 Lisboa 2001 10 Costelha Hugo http socrob isr ist utl pt private docs CodingRules htm Junho 2003 Bruno Machado Cl udio Cardoso 55
37. e Estas mudan as uma vez operadas n o teriam efeito a curto prazo porque toda a filosofia do projecto j existente teria que ser alterada Bruno Machado Cl udio Cardoso 3 2 1 Conceitos e Metodologias Os autores deste texto inseriram se no grupo de desenvolvimento do projecto 1SocRob mais do que no Rescue visto este ainda estar a passar pela concep o e constru o dos modelos e onde fase de implementa o de c digo s se far numa fase posterior Como tal toda a arquitectura falada e j implementada refere se do projecto do futebol rob tico ser mantida como tudo indica a mesma para o projecto de busca e salvamento A actual arquitectura funcional resulta de uma evolu o da proposta original descrita em 8 guiada pelo Trabalho Final de Curso de Lu s Toscano 9 A arquitectura original Fig 2 1 2 2 e 2 3 considerava tr s tipos de comportamentos a serem realizados pela equipa de robots organizacionais no que respeitam a organiza o da equipa por exemplo o papel de cada jogador relacionais rela es ente colegas de equipa mostrando coordena o e coopera o e individuais cada robot como individuo Estes comportamentos s o externamente vis veis e emergem da aplica o de certos operadores Do ponto de vista dos operadores a arquitectura tem tr s n veis e N vel Organizacional ou de Planeamento de Tarefas no estado corrente do projecto este n vel ainda n o foi implementado mas
38. e se tenha obtido 4 As principais etapas s o consulta pesquisa modela o constru o e melhoramentos A etapa consulta consiste num estudo objectivo sobre sistemas semelhantes j Bruno Machado Cl udio Cardoso 25 existentes dando estes uma vis o pormenorizada do problema a resolver e de uma poss vel solu o A principal tarefa envolvida nesta etapa foi o estudo dos sistemas Charon e Mission Lab Na etapa pesquisa foram recolhidas informa es espec ficas para solucionar os sub problemas e dar suporte ao desenvolvimento Incidem sobre esta etapa as tarefas de pesquisa de bibliografia sobre os elementos relevantes ao projecto e recolha de informa o sobre Unified Modeling Language UML eXtensible Markup Language XML e analisadores parsers e sobre programa o de interfaces gr ficas em Java Na etapa modela o uma vez modelada a solu o usando diagramas de classes UML e a consequente modela o da metalinguagem interm dia entre a especifica o e a gera o de c digo modelou se os aspectos relevantes ao interpretador da interface gr fica A etapa constru o consiste na implementa o dos tr s m dulos acima descritos Cap 2 5 Finalmente a etapa melhoramentos serviu para resolver erros de programa o que se Melhoramentos Figura 2 15 Modelo em cascata revisto encontraram e para testes Em conformidade com a vontade do Professor em manter o grupo de projecto actualizado e atento
39. edece n o s a uma estrutura requerida pela linguagem mas tamb m a um esqueleto padr o Cap 2 3 1 que proporciona tanto uma leitura mais expl cita do c digo como a facilidade de futuras altera es no referido c digo C Respeitando o esqueleto padr o consegue se obter um c digo mais consistente reutiliz vel e de f cil correc o de erros permitindo um melhor enquadramento por parte do programador Dadas as necessidades do projecto ISocRob foi necess rio desenvolver dois geradores distintos no que respeita ao c digo gerado mas id nticos na concep o Partindo da actual estrutura do dom nio Domain gerou se c digo C tanto para o Control como para o Machine sendo essa a principal fun o das classes CGenerator e SuperCGenerator respectivamente 3 1 1 Gera o de c digo para Contol Este motor de gera o de c digo C teve de respeitar a estrutura exigida pela linguagem C na cria o de um novo ficheiro deste formato A estrutura do ficheiro C gerado est dividida em quatro partes distintas cabe alho e inclus o de bibliotecas fun es a exportar e defini o de vari veis fun es de inicializa o e fun o principal method Bruno Machado Cl udio Cardoso 28 No cabe alho e inclus o de bibliotecas est definido um coment rio padr o que segue as normas de boa programa o do ISocRob 10 onde especificado o nome do ficheiro descri o do conte do vers o e autor Imediatamente a
40. entada pelos objectos baseada em classes e tipificada Contudo do ponto de vista da orienta o pelos objectos n o uma linguagem completamente pura s por uma raz o em Java os dados de tipos primitivos int boolean char etc s o valores e n o objectos O Java tamb m suporta concorr ncia mediante a utiliza o de m todos synchronized e de objectos da classe predefinida Thread O Java resulta em grande parte duma simplifica o do C concretamente da primeira vers o desta linguagem O Java deixa de fora os seguintes elementos apontadores templates gest o expl cita de mem ria ou seja a primitiva delete pr processador defines etc typedef union struct fun es globais vari veis globais fun es membro n o virtuais goto ficheiros h sobreposi o de Bruno Machado Cl udio Cardoso 20 operadores heran a m ltipla convers es autom ticas definidas pelo programador enumerados N o obstante derivar do C o Java adopta a nomenclatura da linguagem Smalltalk actualmente a nomenclatura padr o de facto do paradigma orientado pelos objectos O Java uma linguagem interpretada portanto port vel a n vel bin rio Simultaneamente come a tamb m a ser uma linguagem razoavelmente eficiente as implementa es antigas eram ineficientes mas a partir da vers o 1 2 a efici ncia do Java deu um salto em frente A linguagem Java sendo relativamente pequena herda muito do seu
41. ento de Computa o da Ge rgia Tech que tem como principal objectivo especificar avaliar e executar miss es militares onde os ambientes s o altamente din micos imprevis veis e possivelmente hostis Este sistema com coordena o baseada em estados Finite State Automata e MDL e baseado em comportamentos reactivos sensores e actuadores procura evitar a constru o do controlo rob tico ad hoc e garantir uma configura o f cil para o problema assim como a reutiliza o de elementos em novas miss es suporte para multi arquitecturas e multi geradores de c digo para cada arquitectura e bibliotecas de configura es A ferramenta Charon do Departamento de Computa o e Ci ncias Inform ticas da Universidade de Pensilv nia uma linguagem de alto n vel e um ambiente de desenho para especifica o modular de sistemas h bridos Est baseada nas no es de agente agent e modo mode Para uma descri o hier rquica da arquitectura do sistema o Charon possibilita opera es de instancia o instantiation desaparecimento hiding e composi o paralela nos agentes que podem ser usados para construir um agente complexo a partir de outros Esta ferramenta suporta comportamentos discretos e cont nuos no espa o de estados Os dois sistemas acima referidos n o foram adoptados pela equipa de projecto e cabe aos autores deste trabalho desenvolver uma ferramenta mais espec fica para os projectos existentes SocRob e Rescu
42. er estado SuperState que n o mais que uma generaliza o de estado ou seja inclui a informa o de um estado normal mas representado internamente n vel Machine 5 por uma m quina de estados Al m do nome campo Name e da descri o campo Description o estado tem um conjunto de atributos respons veis pelo controlo do sistema em desenvolvimento ou seja um modo de sensores SensorMode utilizado pelos robots para os modos de vis o e localiza o e g front up self ou emptyspot um corpo Body que cont m um bloco de c digo C relevante ao comportamento do estado e uma fun o Function de navega o ou de comportamento que calcula as actua es que far o o robot andar Control ou a activa o do comportamento desejado Machine respectivamente Faz parte deste conjunto de atributos uma ou mais pr condi es PreCondition e uma ou mais p s condi es PostCondition que s o necess rias Bruno Machado Cl udio Cardoso 15 para garantir o correcto funcionamento da m quina de estados Estas condi es s o definidas atrav s de transi es Para suportar a informa o relativa fun o caso exista h o atributo FunctionConfig que um objecto da classe FunctionConfig Esta classe possui os seguintes atributos identificador TD que identifica a estrutura perante o estado tipo da fun o FunType corresponde ao tipo de retorno da fun o o caminho onde est definido o tipo
43. estino TargetState Para armazenar a informa o relativa ac o caso exista existe o atributo ActionConfig que um objecto da classe ActionConfig Esta classe auxiliar contempla os seguintes atributos identificador TD que identifica a estrutura perante a transi o par metros de entrada e seus tipos ActionParam retirados do cabe alho da ac o ora definidos no tamb m atributo biblioteca da ac o Act ionDotH Bruno Machado Cl udio Cardoso 16 Sendo a transi o objecto de desenho por parte do editor gr fico existem ainda os atributos x1 x2 yl e y2 posi es no painel de desenho para se desenhar uma curva Cap 3 2 2 e seleccionada selected que indica a veracidade da selec o da transi o 2 4 As Linguagens 2 4 1 Defini o da Metalinguagem XML Antes de se saber o que a linguagem marcada extens vel eXtensible Markup Language deve se focar o conceito de Markup Language Uma Markup Language ML como descrito em 7 uma linguagem que descreve como se estrutura um texto dentro de um dado documento Serve para definir a estrutura conte do e sec es do documento As sec es do documento s o definidas usando r tulos tags A XML foi desenvolvida em 1996 por um grupo de trabalho sobre a orienta o do World Wide Web WWW Esta linguagem permite definir colec es de tags que podem ser usadas para estruturar qualquer tipo de dados ou documentos A Metalinguagem est defini
44. inguagem de programa o Java escolhida Bruno Machado Cl udio Cardoso 21 por ter simples interac o com a linguagem XML e porque permite a portabilidade do sistema operativo ou seja funciona tanto em Linux como em Windows Esta interac o parece ter aparecido principalmente devido ao facto da XML permitir dados port veis que podem ser combinados com o c digo port vel que a linguagem de programa o Java proporciona A popularidade da XML provocou o aparecimento de v rias ferramentas de an lise parsing e manipula o de documentos XML por parte das linguagens de programa o e g Java Existem duas aproxima es comuns usadas para a an lise 7 SAX e Document Model DOM A aproxima o que se ir usar ser o DOM o qual explicaremos mais adiante neste texto Foi definido pelos autores dividir a parte de implementa o em tr s fases e na primeira a ideia pegar num ficheiro XML e ser capaz de gerar c digo C a partir dele Este programa tradutor consistir num parsing dos ficheiros onde se encontra a defini o da m quina de estados e devolver uns ficheiros com c digo C compil veis e Na segunda fase tendo se o tradutor implementado prossegue se para a cria o de um descodificador que permita atrav s do ficheiro em XML desenhar toda a m quina de estados numa interface gr fica e A terceira e ltima fase corresponder ao duplo sentido ou seja o utilizador j poder
45. iption gt lt Description gt lt PreCondition gt lt PreCondition gt lt Function gt lt Function gt lt PostCondition gt lt PostCondition gt lt X gt lt X gt lt Y gt lt Y gt lt SuperState gt lt Transition gt lt ID gt lt ID gt lt Name gt lt Name gt lt Control gt lt Control gt lt Reason gt lt Reason gt lt TargetState gt lt TargetState gt lt FailState gt lt FailState gt lt Transition gt lt StateMachine gt Figura 2 11 Defini o da metalinguagem em XML para Machine Em ambas as defini es a metalinguagem est estruturada como se de uma rvore se tratasse ou seja no topo est o n raiz lt StateMachine gt composto por n s folhas lt State gt ou lt SuperState gt e lt Transition gt Todos os n s s o caracterizados por atributos tags Estes atributos j foram explicados anteriormente Cap 2 3 3 As tags lt PreCondition gt e lt PostCondition gt s o preenchidas com o identificador lt D gt da transi o lt Transation gt em quest o Com o mesmo racioc nio s o preenchidos o estado inicial lt nitialState gt estado final lt FinalState gt e o estado destino lt TargetState gt mas desta vez com o identificador do estado em quest o As tags modo sensores lt SensorMode gt fun o lt Function gt e ac o lt Action gt s o preenchidas com um nome j existente na biblioteca de fun es que o sistema possui Cap 3 1 3
46. kk k X kk X kk X KX KA KA X KX X RARA kk kok k k kk k kk kk k kk k k k kk KX KA X kA X k X AAA Static Variables Kk kk k X kk X kk X kk X kA X KA X KA X RARA AAA enum GO STANDBY a static char strState Go standby static struct in in t currentState private stateCounter Bruno Machado Cl udio Cardoso 50 static Goal goall static State statel static Settings settingsl static Actuation functionl float vLeft vRight RRR KKK KK KK k kk KK KKK KK KK KKK KK KK KK KK k Id of plugin FR KK RK RR KK IR KA X KK RK KK KK KK static char id followBall RRR KR RK KKK kk KK KKK I RK RK IK KK AA Function init Description Return int TRUE if sucessfull FALSE otherwise Important to follow return the correct value because uA might thrash plugin Author SPCMERC HK RK KR KK I RK KR RK KK KK int init void private stateCounter 0 return TRUE RRR KK RK KKK KK RR KK k kk k kk RK RK X k X KK KK KK Function destroy Description Destruction function of plugin where all previously reserved memory is now destroyed Return int TRUE if sucessfull FALSE otherwise Author SPCMERC HK KK KK RK KA X RK KK RK KK KK int destroy void return TRUI Gl RRR KK RK k kk k kk RR KK I RK KKK I RK KK KK k Function changeTo Description Return int Author SPCMERC KR R
47. mo estado destino Para o desenho do arco da transi o usou se uma fun o da biblioteca gr fica do Swing chamada DrawArc X Y deslocamento em X deslocamento em Y angulo inicial deslocamento angular esta fun o desenha um arco contido no rect ngulo definido por X e Y com largura de X deslocamento em X e altura de Y deslocamento em Y e dois ngulos o de partida e o deslocamento por exemplo no caso Bruno Machado Cl udio Cardoso 41 ilustrado na figura 3 9 o ngulo escolhido de 180 e o deslocamento de 90 Como os estados podem alterar a suas posi es a dificuldade inerente deste modo de desenho de arcos foi dinamicamente calcular a sua posi o e como se ver mais tarde as transi es tamb m variam dinamicamente de posi o segundo o n mero de transi es para o mesmo estado destino Figura 3 9 M todo de desenho do arco Foi usado um algoritmo com dois contadores um que conta o n mero de transi es originadas num estado e que t m o mesmo estado destino counter 1 e outro que conta o n mero total de transi es para esse mesmo estado destino independentemente do estado origem counter 2 Deste modo poss vel ir desviando de um certo valor deslocamento o ponto final dessa transi o Este algoritmo foi desenvolvido para que as transi es nunca sejam coincidentes e possam ser seleccionadas nt counter 1 counter 2 3 3 1 nt radius nt Const gapBetweenArcs
48. o que ser desenhado E uma transi o para o mesmo estado Como que se poder seleccionar um estado ou uma transi o Quando existem v rias transi es para o mesmo estado como que se faz para n o serem coincidentes e n o se sobreporem Para responder a este tipo de quest es e para resolver o problema do desenho dos objectos foi primeiro desenhado um diagrama de casos de utiliza o onde se podem encontrar todas as funcionalidades do editor Fig 3 4 De seguida teremos um sub cap tulo onde se responder a estas quest es mostrando os respectivos algoritmos Cap 3 2 2 Bruno Machado Cl udio Cardoso 34 3 2 1 Casos de Utiliza o O am B CD A lt ae lt Figura 3 4 Diagrama de Casos de Utiliza o Bruno Machado Cl udio Cardoso 35 Mo Como se pode ver pelo diagrama de casos de utiliza o s o in meras as funcionalidades deste editor Remete se para o manual do utilizador a explica o de funcionamento de cada uma delas visto que sai fora do contexto deste texto tal explica o Foi dada especial import ncia ao facto da aplica o ser esteticamente bem parecida e funcional e para tal foram constru das janelas hierarquicamente organizadas Ou seja h uma janela principal onde se encontra o menu de ficheiros um menu de edi o de cor de fundo e cor das letras para a janela de c digo C um menu onde se escolhe o modo de desenho para o tipo de transi o
49. ody gt lt Body gt lt Function gt lt Function gt lt PostCondition gt lt PostCondition gt lt Funct ionConfig gt lt ID gt lt ID gt lt FunctionType gt lt FunctionType gt lt FunctionTypeDotH gt lt FunctionTypeDotH gt lt FunctionParameter gt lt FunctionParameter gt lt SwitchField gt lt SwitchField gt lt FunctionDotH gt lt FunctionDotH gt lt FunetionConfig gt lt X gt lt X gt lt Y gt lt Y gt lt State gt lt Transition gt lt ID gt lt ID gt lt Name gt lt Name gt lt Description gt lt Description gt lt Action gt lt Action gt lt ActionParameter gt lt ActionParameter gt lt Control gt lt Control gt lt Reason gt lt Reason gt lt TargetState gt lt TargetState gt lt ActionConfig gt lt ID gt lt ID gt lt ActionParameter gt lt ActionParameter gt lt ActionDotH gt lt ActionDotH gt lt ActionConfig gt lt Transition gt lt StateMachine gt Figura 2 10 Defini o da metalinguagem em XML para Control Bruno Machado Claudio Cardoso 18 lt StateMachine gt lt ID gt lt ID gt lt Init gt lt Init gt lt Destroy gt lt Destroy gt lt ChangeTo gt lt ChangeTo gt lt Type gt lt Type gt lt Name gt lt Name gt lt Description gt lt Description gt lt InitialState gt lt InitialState gt lt FinalState gt lt FinalState gt lt SuperState gt lt ID gt lt ID gt lt Name gt lt Name gt lt Descr
50. pelos par metros de entrada da ac o Fig 3 3 Esta informa o armazenada na estrutura ActionConfig Cap 2 3 3 e permitir ao gerador para cada transi o obter toda a informa o necess ria acerca da ac o a State State1 Select Action Parameters rfunction E rprogram variables raction static State state ImotorsSetviytioatv float static Settings settings1 PoP eos n foai static Actuation function rfunction program variables eCloseZballt amp vLefti amp vRighti theta1 lastthetal static float vLeft1 raction static float vRight1 motorsSetwi float v float w pai dar 4 pa l static int function1 Lista de Par metros Figura 3 3 Exemplos da escolha de par metros para a ac o Para a gera o de c digo no Machine foi criado um automatismo sempre que utilizado um predicado individual Esta ideia assenta na exist ncia de predicados relacionais por parte do projecto SocRob 5 Este mecanismo sempre que utilizado um predicado individual desencadeia a instru o changeBehaviourTo que est implicitamente relacionado com uma tabela hash integrada no referido projecto Cap 2 3 1 Bruno Machado Cl udio Cardoso 33 Uma quest o que se levantou na gera o de c digo tanto para Control como para Machine era garantir que os conte dos das fun es de inicializa o assim como o corpo Body no caso do Control
51. perante o sistema O nome como o nome indica a identifica o textual do objecto e cabe ao utilizador defini lo A descri o n o mais que uma nota informativa acerca do respectivo objecto e seu conte do Bruno Machado Cl udio Cardoso 13 StateMachine HID String 1 extraLibs String r init String i Destroy String FunctionConfig ChangeTo String Ei ChangeFrom String FD String i ExtraGlobalVars String FunType String Type String FunTypeDotH String Name Strin FunParameters String Description Sining SwitchField String InitialState String FunDotH String FinalState String e TransitionList Object 1 StateList Object 0 Qu State HID String m Name String SuperState Description String SensorMode Object PreConditionList Object Body String Function String PostConditionList Object FunctionConfig X Integer Y Integer selected Boolean From T I 1 j I l I I Transition ID String Name String Description String Action String ActionParameters Object Control String Reason String TargetState String FailState String ActionConfig selected Boolean ActionConfig x1 Integer ID String y1 Integer ActionParameters String x2 Integer ActionDotH String y2 In
52. quando o utilizador gerar ou j tiver gerado c digo C janela esta que mostra o resultado do ficheiro gerado Todas as janelas foram programadas usando o Swing do Java e todas as interac es entre janelas dentro da aplica o principal A janela principal da aplica o uma classe JFrame pertencente biblioteca javax swing JFrame que difere da classe normal de janelas Bruno Machado Cl udio Cardoso 36 Frame o facto de ter sido escolhida a JFrame que sendo uma vers o estendida de Frame permite realizar opera es ao fechar a janela principal por exemplo perguntar se o utilizador quer gravar o ficheiro A janela onde est definida a superf cie de desenho e a do ficheiro gerado da classe JPanel javax swing JPanel esta classe foi a escolhida porque um contentor Java container de baixo peso computacional logo todas as opera es de desenho efectuadas em cima deste JPanel ser o mais rapidamente calculadas As janelas de edi o de transi es estados maquina de estados s o da classe JDialog javax swing JDialog visto n o necessitarem de processamento interno e apenas servindo para o utilizador inserir informa o em modo texto Desta forma pretendeu se optimizar o c digo em termos de mem ria usada e rapidez de processamento de ambientes gr ficos amp SPCMERC Editor C Documents and Settings BrunoiMy Documents Ctl_Go_ Standby xmil File Edit row Mode Generator Help Design Panel
53. rmance predicted by the current world model tactic sequence of behavior selections Set of Relational Behaviours Set of Individual Behaviouy Success or Insuccess Definition of individual behaviours Figura 2 1 Arquitectura funcional do ponto de vista dos operadores extraido de 5 Definition of individual behaviours simple examples takeBall2Goal E receiveFrom Success or insuccess Primitive Guidance Functions freezone dribble potential Actuators Sensors World information Figura 2 2 Vista do n vel de execu o extraido de 5 Bruno Machado Cl udio Cardoso 5 Primitive Guidance Functions Actuators freezone dribble potential Left Wheel Sensors BB World Model Right Wheel current information a Vision Kicker Front ball position ball position by Ri Vision Ri posture Up score R2 posture arms drn Vision I game time Self sec R3 posture ball velocity Ramin RI velocity onars R4 post ure R2 velocity R3 velocity Opponents posture R4 velocitv UOISN AOSUIS Odometry Opponents velocity Bumpers Optical Mouse Figura 2 3 Vista da modela o do mundo extra do de 5 2 2 Processo de desenvolvimento Para este projecto os autores constru ram uma p gina de Internet 3 com o intuito de dar suporte ao trabalho garantindo assim uma melhor coordena o de tarefas e possibilitando aos visitantes uma perspectiva
54. s Diagram l E Code Generation 2nd Phase Sa P Generator Interpretor Bruno Machado Cl udio Cardoso Problems Constructing scout control configurations is ad hoc and tedious Configurations are difficult to retarget to new scouts Component reuse is difficult Solution iform based Model UML taLanguage between State Machine and C code XML Graphical Editor supports construction and visualization of configurations eLibraries of reusable configurations and components Code Generation 1st Phase Generator Interpreter ce yea Arguitectura gt a Interpretador Gerador XML Ap ndice B RRR k kok k k kk k kk kk K kk k k kA X KX KA X kA X k X AAA Filename followBall c Description segue a bola Version Sat Jul 12 17 19 48 BST 2003 Maintainer SPCMERC KR KR RK X KA KA RK KR RK AAA include lt stdio h gt codigo shared h codigo constants h codigo guidance h codigo shared2 h include codigo predicates h include blackboard h RRR KR RK k kk k kk RK KK I KK KK KK RK AAA include include include include St SS Na PS o 8 Exported Functions Kk kk k X k kk K kA X kA X KA X KX X RARA int init void int destroy void int changeTo void int changeFrom void char getId void int method void Kk kok k k kk k kk k kk k kk k kk k KX RARA X kk kk k Static Functions Kk
55. s debrucaram se sobre o c digo C relativo aos comportamentos j existentes e retiraram um modelo UML que capaz de responder a todos os requisitos para uma boa gera o de c digo modelo este que foi sofrendo altera es medida que novos requisitos eram levantados Consequentemente foi criada uma metalinguagem definida em XML com o intu do de fazer a liga o entre a interface gr fica e a estrutura de dados do dom nio Confrontados os objectivos previstos com os atingidos pode se concluir que o trabalho foi realizado na totalidade dentro dos prazos propostos Para isto de real ar a import ncia de um bom planeamento que induziu a uma orienta o mais norteada com a possibilidade de gerir os tempos entre as v rias tarefas Conclui se ent o que todo o sistema desenvolvido apresenta uma boa interac o entre utilizador e interface gr fica e que o mesmo no seu todo realiza os objectivos que haviam sido propostos conduzindo a resultados bastante satisfat rios como haviam sido comprovados Como proposta ap s a conclus o deste trabalho fica a integra o desta ferramenta com o simulador gr fico existente assim poss vel ap s uma gera o de c digo observar os comportamentos definidos no referido simulador Bruno Machado Cl udio Cardoso 48 Ap ndice A Index Some Problems and Some Solutions Modelation ana XML example Generation Code Phases Modelation Meta Language UML Modelation Sp Object
56. sabor e poder duma grande biblioteca de classes predefinidas chamada plataforma Java tamb m conhecido por core Java PIS e Java runtime environment Esta biblioteca robusta intuitiva e bem desenhada Tem vindo a crescer e a amadurecer com cada nova vers o do sistema Actualmente a plataforma Java t o vasta que os programadores j n o precisam de aceder directamente aos servi os do sistema operativo Assim a plataforma Java apresenta se como uma plataforma de desenvolvimento universal Sobre ela correm todos os programas Java independentemente do sistema operativo subjacente Ao longo da evolu o do Java a linguagem tem mudado pouco Na vers o 1 1 ena vers o 1 4 foram introduzidas algumas extens es mas em n mero reduzido Felizmente a linguagem Java conservadora neste aspecto Pelo contr rio a plataforma Java tem vindo a crescer exponencialmente O ambiente de desenvolvimento JDK Java Developer s Kit consiste num conjunto de ferramentas que ajudam a desenvolver testar documentar e executar programas em Java O JDK gratuitamente disponibilizado pela empresa Sun e existem vers es para os mais variados sistema Linux Windows MacOS etc 2 5 Defini o da interface Ap s descrita a linguagem XML Cap 2 4 1 que de primordial import ncia para a realiza o deste trabalho resta descrever a interface gr fica Adianta se que a outra linguagem utilizada na futura implementa o da mesma a l
57. se a biblioteca predicates h necessita da biblioteca shared h deve se garantir que a defini o de shared h aparece primeiro As limita es a n vel gr fico est o presentes na quantidade de transi es para o mesmo estado Como foi explicado anteriormente existe um contador que permite contar o total de transi es com o mesmo estado destino e quando este n mero muito grande na ordem da dezena ent o as transi es tendem a afastar se do estado destino Esta limita o pode ser ultrapassada afastando os estados deste modo n o se confunde o estado destino com outro qualquer Embora haja um algoritmo que n o deixa colocar um estado sobreposto a outro na sua cria o o mesmo j n o poss vel quando se move o estado Caber ao utilizador ter a certeza que n o move o estado para uma posi o coincidente com outro j existente Bruno Machado Cl udio Cardoso 4r 5 Conclus es O presente trabalho tem uma forte componente de investiga o que n o facilitou a defini o dos requisitos do mesmo sendo necess rias v rias reflex es sobre o tema em an lise As dificuldades surgiram na abordagem ao projecto ISocRob devido a conceitos novos e complexos Mesmo assim os autores prosseguiram a sua investiga o e procuraram integrar se rapidamente na sua metodologia A permanente interac o entre orientador e alunos serviu de base a um come o promissor e bastante expectante Os autore
58. seguir vem a inclus o das bibliotecas de que o ficheiro necessita para que possa ser compilado Nas fun es a exportar vem definido o cabe alho das fun es de init destroy changeTo changeFrom e getld 5 Posteriormente surge a defini o das vari veis utilizadas pelo programa Para as fun es de inicializa o define se o conte do das fun es a exportar descritas atr s Este conte do da inteira responsabilidade do utilizador que pode ou n o acrescentar novas linhas de c digo C caso ache relevante para o comportamento do sistema Na fun o principal est definido o n cleo do programa onde est especificado o que fazer e quando fazer Partindo de um esqueleto padr o utilizado pela equipa ISocRob para a cria o de c digo C foi estruturado o motor de gera o de c digo para cada estado que respeita os seguintes blocos do esqueleto modo de sensores pr condi es corpo fun o e p s condi es 3 1 2 Gera o de c digo para Machine Seguindo os princ pios anteriores a estrutura do ficheiro C est dividida em quatro partes cabe alho e inclus o bibliotecas defini o de vari veis fun es de inicializa o e fun o principal Role O cabe alho e inclus o de bibliotecas seguem o mesmo conceito descrito anteriormente Na defini o de vari veis como o nome indica est o definidas todas as vari veis que o programa necessita Nas fun es de inicializa o define se
59. ssegue a execu o caso contr rio o programa verifica na referida estrutura a exist ncia de campos do tipo inteiro Existindo apenas um campo desse tipo o programa automaticamente grava o no PathConfig como terceiro campo e prossegue utilizando o como campo de teste Existindo na estrutura mais do que um campo do tipo inteiro cabe ao utilizador escolher qual o campo de teste Ap ndice C Com base na informa o obtida o programa ir gerar c digo C Para guardar a informa o impl cita fun o designadamente par metros e a biblioteca onde esta est definida o programa utiliza uma estrutura FunctionConfig de suporte ao armazenamento inclu da na estrutura do estado Cap 2 3 3 Desta forma cada estado possui a informa o relativa sua fun o caso exista assim como as suas pr prias caracter sticas O seguinte automatismo assim como o anterior existe apenas na gera o de c digo para o Control Este automatismo visa guardar a biblioteca onde est definida a ac o e os seus par metros de entrada escolhidos anteriormente pelo utilizador Para esta escolha apenas est o dispon veis par metros do mesmo tipo dos par metros que a ac o recebe ou seja dado ao utilizador uma lista de par metros composta pelas vari veis globais definidas Bruno Machado Cl udio Cardoso 32 anteriormente para a fun o do estado de origem da transi o Nesta lista apenas se encontram par metros cujo o tipo suportado
60. stematize o desenvolvimento de software Entretanto al m da defini o do processo necess rio fazer um acompanhamento da sua execu o se poss vel guiando a equipa de desenvolvimento dentro de um ambiente de desenvolvimento de software que contenha as ferramentas necess rias para a constru o de aplica es O t tulo deste trabalho Sistema de Projecto e Controlo de Miss o de uma Equipa de Robots Cooperantes SPCMERC transparece a ideia deste sistema ser capaz de projectar e controlar uma equipa de robots de maneira a atingirem uma miss o havendo para tal coopera o entre os robots Neste Sistema de Projecto poss vel descrever objectivos miss es atrav s de aut matos finitos para uma equipa de robots cooperantes ou n o e definir os comportamentos individuais de cada elemento da referida equipa O Controlo de Miss o ficar a cabo de uma aplica o de simula o dos comportamentos desenhados e gerados neste projecto Este projecto no mbito do Instituto de Sistemas e Rob tica insere se nos j existentes projectos de investiga o de rob tica cooperativa ISocRob e Rescue e pretende ilustrar como se desenvolveu uma aplica o de suporte constru o de comportamentos O projecto ISocRob Isr Soccer Robots est virado para o futebol rob tico onde o objectivo n o apenas os robots marcarem golos mas tamb m cooperarem de modo a se assemelharem aos comportamentos humanos O projecto Rescue tem
61. tate GetClose2Ball se o valor do SouldIGo for verdadeiro ou pelo contr rio toma como destino o estado de falha Fail State Ball GetClose2 TakeBall2Goal TT Standby MTM GoEmptyspot EEE Figura 2 7 Tabela de hash extra do de 5 2 3 2 Arquitectura Esta aplica o assenta sobre uma arquitectura Fig 2 8 diferenciada em dois n veis conceptuais n vel superior interface e n vel inferior interpretador e gerador Como base de ambos os n veis existe o dom nio Domain que n o mais que o alicerce tanto interface com o utilizador GraphicalUserInterface como ao motor de interpreta o e gera o isto a sua estrutura suporta o armazenamento de todos os dados com que a ferramenta opera E de notar que o m dulo Parser est inclu do no motor de interpreta o e que interactua directamente tanto com a interface gr fica como no acesso de leitura aos ficheiros do tipo XML Fazem parte integrante do motor de gera o de c digo os m dulos de acesso a ficheiros FileUtils e gera o de c digo C CGenerator Este ltimo utiliza o m dulo de acesso a ficheiros para ler e escrever dados Este motor comunica directamente com a Bruno Machado Cl udio Cardoso l1 interface gr fica baseando se apenas no dom nio permitindo assim uma directa gera o de c digo sem envolver o modulo de interpreta o Interpretador Gerador Figura 2 8 Arquitectura SPCMERC 2 3 3
62. teger Figura 2 9 Diagrama de Objectos do Dominio Bruno Machado Cl udio Cardoso 14 Uma m quina de estados tem um tipo e composta pelos seus estados e as suas transi es entre estados tem um estado inicial e um estado final Como esta informa o suficiente e necess ria os atributos da m quina de estados s o o seu tipo campo Type que pode ser Control ou Machine o seu nome campo Name a descri o da mesma campo Description e qual o seu estado inicial campo InitialState e final FinalState Comp e ainda a m quina de estados os seguintes atributos que cont m informa o opcional definida pelo utilizador bibliotecas extra campo ExtraLibs conte do das fun es de Init campo Tnit Destroy campo Destroy ChangeTo campo ChangeTo ChangeFrom campo ChangeFrom e ainda um atributo para as vari veis globais extra campo ExtraGlobalVars Nestes campos preenchida a informa o referida atribu da pelo utilizador e compete a este assegurar um correcto formato c digo C sem erros para uma posterior gera o de c digo Cap 3 1 A esta m quina de estados est o associados estados Estes n o s o mais que uma estrutura composta por um conjunto de atributos que o caracterizam Dado que um dos requisitos a possibilidade de uma m quina de estados ser composta por v rias m quinas de estados no caso de o c digo gerado ser para o Mahine ent o um estado pode ser um sup
63. tente e em desenvolvimento pelo resto da equipa No cap tulo seguinte apresentado ao leitor a descri o do projecto Come a por explicar os sistemas equivalentes em estudo e uma introdu o ao trabalho desenvolvido o desenho do projecto e como se fez a sua implementa o mostrando as v rias fases pelas quais se passou at chegar interface gr fica No terceiro cap tulo explicado o motor de gera o de c digo assim como o editor gr fico O quarto consiste na apresenta o dos resultados obtidos e uma compara o entre os objectivos previstos e atingidos Bruno Machado Cl udio Cardoso 2 2 Conceitos T cnicas e Metodologias A estrutura deste projecto foi baseada em dois dos j existentes sistemas de desenvolvimento de sistemas rob ticos baseados em comportamentos Charon e MissionLab Ambos seguem a mesma metodologia que consiste em garantir um suporte para uma equipa de robots Nestes sistemas existe uma interface gr fica de visualiza o e constru o das configura es assim como uma linguagem que faz a transi o entre a interface e o gerador de c digo que produz o c digo que ser executado no robot A possibilidade de simula o das opera es uma vantagem que permite detectar erros num ambiente virtual antes da passagem para o ambiente real onde os custos e as poss veis repara es das falhas s o maiores A ferramenta MissionLab um produto do Laborat rio de Robots Moveis do Departam
64. utilizador ser dada hip tese de ver graficamente a sua m quina de estados antes de querer gerar o c digo Para tal desenvolveu se uma API que atrav s do DOM analisa o XML tal como na primeira fase decompondo o em estruturas din micas para representa o gr fica Fig 2 13 Bruno Machado Cl udio Cardoso 23 Esta fase interm dia visa representar graficamente a estrutura XML criada anteriormente utilizando para isso a informa o contida nessa estrutura Dom nio e g m quina de estados estados transi es etc Desta forma o utilizador consegue ter uma vis o mais conceptual do que havia criado Estrutura Interface xm JC Gr fica Dom nio Figura 2 13 Esquema de desenvolvimento 2 5 3 Terceira fase Interface gr fica Enquanto a gera o do esqueleto se aproximava de um fim a interface gr fica ganhava forma Ap s se conseguir visualizar as diferentes m quinas de estados conseguidas na segunda fase passou se para a concep o de uma interface de constru o Nesta fase Fig 2 14 programou se toda a interface usando a linguagem Java e a sua API de desenvolvimento gr fico Swing Para tal pegou se nos objectos do dom nio definidos no Cap 2 3 3 e criou se um esquema de casos de uso para que se definisse todas as funcionalidades a serem implementadas Mais frente ser mostrado esse diagrama de casos de uso Bruno Machado Cl udio Cardoso 24 Estrutura Dados Dom nio
65. vo c digo gerado atrav s da aplica o e que foi executado pelo robot Ap ndice B EM SPCMERC Editor F Documents and Settings BrunoiMy Documents followBall xml In x File Edit ow Mode Generator Help Desigm Panel Add State Remove State Move State Set Initial Set Final Add PreCondition Add PostCondition Remove Transition Edit S M Properties Refresh Graph E gt oe RR BOE EAV The State was moved The State Machine was save as FiDocuments and SettingsiBrunoiMy Documents followBall xml Figura 4 1 M quina de estados testada no robot Bruno Machado Cl udio Cardoso 46 4 3 Limita es do Projecto Como em todos os sistemas de desenvolvimento de software este n o foge a regra e comporta algumas limita es tanto a n vel gr fico como a n vel da gera o de c digo Uma limita o que se prende com a estrutura das linguagens de programa o o facto de o campo nome Name do estado n o poder conter mais de uma palavra tendo esta apenas gt caracteres de a a z e de 0 a 9 n o s o permitidos caracteres amp a 4 etc As bibliotecas geradas no c digo podem n o seguir uma ordem l gica e hier rquica podendo provocar erros de compila o ou seja cabe ao utilizador garantir que a defini o de bibliotecas come a da mais geral para a menos geral e g
Download Pdf Manuals
Related Search
Related Contents
Addendum to User Manual for SURT192RMXLBP2 V1/0912 - Bartscher GmbH 3211 Hi-V Amp RevB Delta 25743LF-SP Installation Guide Homeowners Guide Félicitations Lot n°1 - Institut National de la Recherche Agronomique poR FaVoR, Lea atentamente todas Las instRUcciones antes de Nobles Scout 5 Operator & Parts Manual Fujifilm 1x4 Crystal Archive Supreme HD 10.2 cm x 160 m, lustre Copyright © All rights reserved.
Failed to retrieve file