PublicouMurilo Simas Alterado mais de 4 anos atrás
5 Objetivo & Hipótese Integração entre OROCOS e ORCA – Integração direta via chamada de metodos remotos – Integração indireta via serviço de eventos (IceStorm) Implementação em tempo real no VERO – Testes de desempenho de algoritmos: garantir periodo constante. características e ferramentas complementares entre arcabouços Geração de templates e documentação p/ outros desenvolvedores – Migração gradual ORCA OROCOS – Posterior evolução do sistema
6 Método de pesquisa Estudo dos arcabouços: artigos, fóruns, documentação Identificação e documentação das melhores práticas de programação destes arcabouços Estudo do middleware ICE (implementações utilizando IceStorm e IceGrid) Estudo das soluções de integração existentes OROCOS-ROS. Desenvolvimento de componentes stand-alone e em rede (OROCOS,ROS e ORCA) Estudo de Linux para Tempo Real (RTAI) Testes práticos em veículo autônomo terrestre
7 Projeto VERO Veiculo Robótico para ambientes terrestres externos. POR só FIGURAS Infraestrutura composta por: – 2 computadores mini-ITX – 5 encoders Horner – 1 unidade inercial CrossBow – 1 câmera Sony – 1 laser Sic e 2 Hokuyo – 1 bussola TCM2 – 1 Sistema de navegação terrestre de precisão POS-LV
9 Ferramentas utilizadas Linux para Tempo Real (RTAI) sob o OROCOS Middlewares – CORBA – ICE IceGrid – Serviço de Nomes IceStorm – Serviço de Eventos
10 Ferramentas utilizadas Arcabouços de software – OROCOS Desenvolvido desde 2001 Funcionamento dos componentes baseado em máquinas de estado Voltado para tempo real Baseado em C++ POR FIGURA. POR EXEMPLO, DA MAQ DE ESTADO
11 Ferramentas utilizadas Arcabouços de software – ROS Organizado em packages Grande variedade de packages de terceiros disponíveis, mas, com qualidade muito variável (Bazar) Troca de mensagens utilizando middleware próprio Utilização crescente nos últimos anos Ferramentas auxiliares relativamente maduras – (e.g.logging, graficos, configuração) Suporte a diversas linguagens de programação (C++, Python, LISP e Octave
12 Ferramentas utilizadas Arcabouços de software – ORCA Camadas finas Utiliza middleware baseado em objetos distribuídos Tolerância a falhas Subprojeto Gearbox: alguns device drivers com processo de revisão por pares (catedral) FIGURA ORCA-HTDRO_GEARBOX
14 Integração OROCOS/CORBA Instalação do CORBA é feita juntamente com o OROCOS Conexão das portas é feita através de script ou XML com comandos específicos para CORBA Disponibilização do nameservices do CORBA Componentes são desenvolvidos de forma transparente, somente no momento da implementação a configuração via CORBA é realizada. Explicitar: classe carrega o seu componente e fornece comunicacao via CORBA
15 Integração OROCOS/ORCA Para transmissão de dados ORCA->OROCOS basta implementar um componente OROCOS como subscriber de um tópico do IceStorm. Para integrações OROCOS->ORCA além o componente OROCOS, alem de implementar um publisher, tambem deve implementar uma interface (servant) que possibilite receber requisições do componente cliente. Para ambos os casos foram feitas classes com para serem reconfiguráveis de acordo com a interface especifica, de forma a facilitar o desenvolvimento. Além disso, como a compilação do ORCA está difícil em versões de Linux mais novas, deve-se evitar usar as libs do ORCA diretamente.
16 Integração OROCOS/ORCA Componente ORCA valida as interfaces dos componentes e aproveita para buscar configurações que não precisam ser repetidas sempre, antes de receber dados de outros componentes – tem que vir antes. É necessário que o IceGrid e o IceStorm estejam disponíveis (em execução)
19 Classes implementadas Em elaboração (gerar figura a partir do doxgen) Composição Classes ICEClient e ICEServer – responsável por conectar e receber as requisições em uma thread dedicada. Também implementa métodos para configurar a conexão com parâmetros do IceGrid e IceStorm. Classes Consumer e Provider – responsável por implementar o recebimento/envio dados atraves do servico de eventos (IceStorm) Virar bolinhas?.
24 Próximos passos até a defesa Estudo de variantes de linux para tempo real (RTAI) – Focado na utilização do OROCOS Testes práticos no VERO do código desenvolvido Análise e comparação dos resultados obtidos