• Nenhum resultado encontrado

A análise inicial do processo de modelagem cinemática por heli- coides, sua componentização e sua variabilidade, bem como o modo de aplicação dos modelos para a resolução cinemática de tarefas em simu- lações, resultou na identificação de requisitos que deveriam ser conside- rados no projeto de um framework para esse fim (Rocha; Tonetto; Dias, 2011a). A capacidade de representar helicoides, seus comportamentos e operações realizadas sobre eles (como transformações de referenciais) é um requisito primário, pois estes são elementos básicos da modelagem cinemática.

A capacidade de representar cadeias cinemáticas de forma sis- temática e estruturada é outro requisito primário. Uma entidade do framework capaz de representar toda uma cadeia cinemática deve ser capaz de fornecer as informações usualmente utilizadas na análise cine- mática por helicoides. Isso implica na obtenção de grafos de movimento que definam a relação entre os elos da cadeia (ou mesmo em utilizá-los nas estruturas de dados de representação). No caso de cadeias fechadas, ter a possibilidade de se obter um conjunto de circuitos independen- tes, de forma que seja possível definir a equação de restrição da cadeia. A automação da resolução cinemática através do método de Davies é uma ação desejável, desde que para isso seja possível definir o partici- onamento da equação de restrição na estrutura de dados da cadeia.

Visando a componentização de cadeias, essa entidade deve ser capaz de representar tanto cadeias simples (formadas por elos e jun- tas) quanto cadeias compostas (formadas por elos, juntas e subcadeias). Uma adaptação do conceito de joint in the bag (Phillips, 2007) é uma forma de tratar juntas simples e subcadeias em uma mesma modela- gem, como elementos que vinculam dois elos impondo uma restrição de movimento relativo entre eles. Para facilitar a reconfiguração de cadeias, devem existir métodos que permitam adicionar e remover elos e conexões entre eles (sejam juntas ou subcadeias). Da mesma forma, o reparticionamento deve ser de fácil execução. As modificações nessa entidade devem então ser refletidas na obtenção de informações do mo- delo, tais como a matriz de circuitos, a equação de restrição e mesmo

a sua resolução pelo método de Davies.

Um requisito desejável para o framework é a capacidade de des- crever as cadeias cinemáticas em forma de texto estruturado. Além de simplificar a definição destas, tal recurso facilita a implementação de um banco de dados de cadeias, bem como seu reuso. Para tanto, o fra- mework deve prover um analisador de descrições e gerador de entidades que representem as cadeias. O uso de alguma linguagem estruturada de descrição de dados como a XML (eXtended Markup Language)(Décio, 2000; W3C, 2011) favorece o uso de ferramentas computacionais pron- tas para tratamento desse formato de dados.

A modularidade é um requisito importante para a adoção do framework em diferentes casos, tanto em simulações quanto em casos reais. Um conjunto de componentes de software modulares, com com- portamentos bem definidos e conhecidos, dá ao usuário a possibilidade de fazer diferentes combinações desses componentes para adequá-los às suas necessidades. Além disso, a substituição de componentes com comportamentos iguais (ou de versões aprimoradas) é feita sem um impacto grande sobre o código implementado. Com isso, pode-se tra- balhar com componentes que façam a interface com um sistema físico (um manipulador, por exemplo) ou com um modelo matemático que o simule. Isso é útil quando da transposição de um código desenvolvido e testado em um ambiente simulado para um ambiente real.

A extensibilidade é outro requisito identificado como importante para o framework. A capacidade de estender e criar novas represen- tações para as cadeias cinemáticas e seus componentes é importante para viabilizar otimizações de desempenho, correções de erros ou im- plementações de situações não previstas na análise inicial do sistema. A extensibilidade é muitas vezes associada à modularidade, pelo fato de que pode-se criar novos módulos para um determinado fim que man- tenham o comportamento básico de módulos já existentes, facilitando a sua adaptação em software já desenvolvido e o seu uso por parte dos usuários do framework. A extensibilidade também permite considerar a especialização de entidades, pela criação de novos componentes que mantenham os comportamentos definidos, mas realizando as operações de formas diferentes. Isso muitas vezes é feito para otimizar desempe- nho de execução dos códigos, às custas de perda de generalidade.

Uma vez que o framework deve lidar com diferentes tipos de ca- deias cinemáticas, e que a resolução de sua cinemática é feita em função de especificações de movimentos e restrições para as suas variáveis pri- márias, observou-se que um requisito desejável é o de se ter um conjunto de interpoladores de trajetória que forneça esses valores em função dos

caminhos especificados nas tarefas. Assim, serão geradas as estruturas de dados compatíveis com as que devem ser utilizadas para especificar posições e velocidades das juntas. É importante definir o comporta- mento básico desses interpoladores, com algumas implementações que viabilizem testes de funcionamento e que, através das características de modularidade e extensibilidade do framework, permitam aos usuá- rios implementarem de forma sistemática os geradores de trajetória que precisem.

Por fim, uma vez que se deseja utilizar o framework tanto em implementações reais (que executam em um programa embarcado no sistema dos UVMS) quanto em simulações, bem como para análise, verificou-se que é importante que esses componentes funcionem tanto em ambientes interativos (característicos de ambientes de computação numérica/simbólica) quanto em software completo (que roda autono- mamente, sem intervenção direta de usuários no seu fluxo de execução). Esse requisito influencia o modo como os comportamentos devem ser invocados para execução, bem como na definição de estruturas de dados que usuários possam manipular diretamente. Além disso, esse requisito tem influência direta na escolha de uma plataforma computacional de desenvolvimento. A escolha da plataforma computacional e aspectos de implementação do framework são o tema do Apêndice B.