• Nenhum resultado encontrado

SISTEMÁTICA DE DESENVOLVIMENTO DE ESTRATÉGIAS DE PLANEJAMENTO DE MOVIMENTO

Com base nos frameworks projetados, é possível sistematizar o desenvolvimento de estratégias de planejamento de movimento. Essa sistematização consiste em definir classes derivadas do framework de intervenção, cujos métodos implementarão as características necessá- rias para que os pseudocódigos dos Algoritmos 4 e 5 sejam executáveis. Além disso, podem ser usadas instâncias de classes do framework Kast ou mesmo especializações dessas classes.

Assim, as etapas de sistematização são definidas e descritas como segue. Algumas dessas etapas podem ainda ser divididas em atividades menores para melhor descrever as ações a serem executadas.

Definir o modelo cinemático Assumindo um contexto inicial de exe- cução da tarefa, deve-se definir um arranjo de cadeia cinemática fechada que represente o sistema de intervenção subaquática (veí- culos, manipuladores) e o espaço de trabalho em que vai atuar (objetos a manipular, movimentos/restrições desejados). A com- ponentização é uma ferramenta que pode agilizar esse processo, bem como a existência de um banco de cadeias previamente mo- deladas. As atividades dessa etapa seriam:

• definir o grafo de movimento da cadeia cinemática; • identificar variáveis primárias e secundárias; • definir as expressões para os heligiros; • implementar o modelo cinemático.

A implementação do modelo cinemático pode ser feita através da classe KCComposable utilizando uma descrição textual para defi- nir sua instância. Outra possibilidade é especializar uma classe derivada de KinematicChain. Pontos a se considerar para a escolha do modo de implementar são a flexibilidade da solução adotada e seu desempenho.

Definir a tarefa A identificação das partições da equação de restrição da etapa anterior é utilizada na definição da tarefa. Os movimen- tos definidos pelo usuário e restrições do espaço de trabalho devem ter correspondência nas variáveis primárias da cadeia cinemática. Além disso, devem ser identificados quais seriam os geradores de trajetória adequados aos movimentos/restrições. Assim, tem-se como atividades desta etapa:

• associar as variáveis primárias à definição da tarefa; • definir os geradores de trajetórias para as variáveis; • implementar o classe derivada de Task.

A classe derivada de Task deve conter geradores de trajetória e mapeá-los para cada variável primárias do objeto State vinculado à cadeia cinemática. A cada iteração da execução da intervenção, as referidas variáveis são preenchidas com os valores produzidos por esses geradores.

Definir o UVMS Essa etapa consiste na implementação do modelo do sistema de intervenção (em simulações) ou de se definir inter- faces de acesso com os sistemas (em implementações reais). O

modelo pode incluir aspectos cinemáticos, dinâmicos e de con- trole, que foram os considerados externos aos problema de pla- nejamento de movimento neste trabalho. Na implementação do método execute, deve-se mapear as variáveis da referência gerada pela guiagem (qr) para as respectivas entradas nas atividades de pilotagem, acionamento e controle. Além disso, após processar essas referências deve preencher a lista de atributos que será re- tornada com os valores atuais das variáveis de juntas do sistema (qa) e demais dados obtidos de sensores, o que é feito pela ativi- dade de navegação.

Definir a missão A implementação de uma classe para gerenciar a missão envolve diferentes demandas. Além de ter a tarefa e a cadeia cinemática como seus componentes, uma classe de missão deve ter ações para a identificação do estado de execução da tarefa e modificação da cadeia e da tarefa para atender à mudanças desse estado. Assim, são relacionadas as atividades:

• Definir uma estratégia de identificação de contexto/estado de execução;

• Definir a execução de modificações no modelo cinemático de acordo com o estado;

• Definir a execução de modificações na tarefa de acordo com o estado;

Essas ações crescem em complexidade à medida em que aumenta a quantidade de dados a serem avaliados e as diferentes possi- bilidades de contexto de execução. Além disso, certas condições podem ser cumulativas, exigindo mudanças mais complexas do cenário.

Definir a intervenção Esta classe é de relativa simplicidade na im- plementação, uma vez que o método execute, que controla a exe- cução da tarefa, usualmente é uma implementação do Algoritmo 5, variando pouco de acordo com as especificades do contexto de execução. Os demais métodos relevantes são init e end. O pri- meiro deve instanciar os objetos utilizados por execute, sendo que são necessários ainda instanciar anteriormente a cadeia cinemá- tica e a tarefa para associá-los à missão e à guiagem, bem como os objetos State que são utilizados no fluxo de dados entre os diferentes objetos. A implementação de end, se necessária, deve apenas encerrar o ciclo de vida dos objetos e se for o caso passar a execução da missão para outros componentes do sistema.

Ao final desse processo, deve-se obter uma implementação com- patível com a descrição da execução de tarefas de intervenção apresen- tada nos Algoritmos 2 e 3. Apesar de parecer complexo, observa-se que várias simplificações podem ser feitas através de reuso de resultados de sistematizações prévias, como na obtenção dos modelos cinemáti- cos. Além disso, implementações existentes de classes dos frameworks, como os geradores de trajetória e a KCComposable facilitam o processo. Outro recurso a ser explorado é o uso de descrições textuais.

A implementação de estratégias de planejamento de movimento de sistemas de intervenção subaquática a partir dos resultados da aná- lise cinemática anteriormente realizada foi o objetivo deste capítulo. A sistematização proposta foi estruturada a partir de um conjunto de classes de objetos que representam os blocos de atividades identifica- das como relevantes para o planejamento de movimento. Esse conjunto faz uso do framework Kast para modelar cinematicamente o sistema robótico e as tarefas a ele especificadas. Essa sistemática é usada em simulações de diferentes cenários de intervenção subaquática no pró- ximo capítulo, a fim de ilustrar o seu uso.

7 SIMULAÇÕES E ANÁLISE

Este capítulo trata da implementação de estratégias de plane- jamento de movimento em simulações. São apresentados diferentes cenários de intervenção. Para cada sistema, são propostas tarefas que demandarão diferentes soluções da equação de restrição. Certos casos exigirão a mudança de estado de execução durante a missão, fazendo com que o sistema assuma diferentes configurações e soluções para a cinemática do sistema. Com isso, espera-se ilustrar os conceitos discu- tidos nos capítulos anteriores e a proposta de uma sistematização para a definição de planejamento de movimento.

Os modelos cinemáticos dos cenários são detalhados no Apêndice C. As simulações foram implementadas em Python (Python.org, 2011), com uso da implementação do framework Kast apresentada no Apêndice B. A visualização utilizou gráficos gerados pelo módulo matplotlib do Python (Hunter; Dale; Droettboom, 2011) e cenários virtuais gerados pelo software OpenRAVE (Diankov, 2010).