• Nenhum resultado encontrado

Infra-estrutura e Aplicações Telerobóticas Distribuídas

1.4 Trabalhos Correlatos

1.4.5 Infra-estrutura e Aplicações Telerobóticas Distribuídas

Um trabalho de infra-estrutura de suporte para o domínio de aplicações telerobóticas distribuídas está em desenvolvimento no laboratório RIMLab (Robotics and Intelligent Machines Laboratory) da

Universidade de Parma, Itália [75]. Este projeto tem como objetivo o desenvolvimento de um frame-

work de classes para sistemas telerobóticos que utiliza a arquitetura CORBA com extensões de tempo

real (RT-CORBA) propiciadas pela plataforma ACE-TAO [56]. Tais extensões suportam prioridade na invocação de métodos, invocação assíncrona de métodos e uso de pool de threads nos servidores. Exemplos de aplicações alvo para este framework são laboratórios virtuais, teleoperação e colabo- ração distribuída. Este framework utiliza serviços CORBA (controle de concorrência, eventos e de notificação) para que múltiplos clientes possam controlar um robô e para assegurar que o servidor realize operações de tempo real e de gerência de controle concorrente, bem como transferência de dados. No framework do RIMLab, um único usuário tem o controle do robô pelo uso de um lock de exclusão mútua provido pelo serviço de concorrência da plataforma CORBA. Cada recurso com- partilhado estará associado com um lock e um cliente deve solicitar o lock apropriado para acessar o recurso.

Dois trabalhos de desenvolvimento de aplicações na linha de laboratórios virtuais são apresenta- dos a seguir. Dos trabalhos pesquisados na literatura especializada, estes foram os que apresentaram funcionalidades mais próximas à nossa implementação de laboratório virtual.

O projeto TIGER [76] é um projeto de aprendizagem eletrônica para a área de robótica que tem como objetivo permitir a estudantes controlar veículos autônomos através da Web. Este projeto pro- porciona funcionalidades de telepresença para acompanhamento do experimento por meio de fluxos de áudio e imagens de vídeo. Além destas funcionalidades, proporciona também alguns instrumentos clássicos de comunicação providos pela Web: chat, e-mail e fóruns de discussão. Funcionalidades es- pecíficas para simulações são igualmente propiciadas. Este projeto não disponibiliza nenhuma forma de controle de acesso aos robôs.

Khamis [77] apresenta um trabalho no âmbito do projeto IECAT [78] e na linha de pesquisa de laboratórios de acesso remoto, que oferece alguns experimentos em robôs móveis para estudantes. Este trabalho propõe uma arquitetura de software para realização de experimentos previamente de- senvolvidos que são disponibilizados para uso em cursos de sistemas robóticos móveis e autônomos a distância. Os experimentos cobrem sensoriamento, planejamento de trajetória e de tarefas, localiza- ção e controle inteligente de robôs móveis. Para acompanhar estes experimentos, o sistema disponi- biliza interfaces no navegador do lado do usuário para interagir com os robôs. Estas interações dos usuários com o laboratório remoto são realizadas sem necessidade de nenhum software adicional ou

plug-ins. A interação com o usuário se dá por meio de applets Java que interagem com servlets Java

no lado servidor. Estes servlets, por sua vez, atuam como clientes CORBA para acesso aos serviços disponibilizados pelo robô.

Comparando-se estes projetos com o laboratório virtual REAL, observa-se inicialmente que estes foram desenvolvidos por meio de plataformas de objetos distribuídos, enquanto REAL foi desen-

volvido sobre um modelo de componentes de software neutro. Esta diferença entre objetos distribuí- dos e componentes de software é extensivamente analisada no Capítulo 2. A especificação de compo- nentes de forma neutra se dá em nível alto de abstração, permitindo o reuso do projeto da aplicação por meio de plataformas de componentes que implementam o modelo de componentes em diferentes tecnologias. A capacidade de geração automática de código e a separação entre configuração, insta- lação e montagem dos componentes são também pontos importantes. A título de exemplo, a sessão de comunicação do REAL composta de dois fluxos de vídeo oriundos de câmeras panorâmica e de bordo do robô é implementada por dois componentes, um produtor e um consumidor de vídeo. Estes componentes são especificados por um diagrama de classes UML. A interação entre estes compo- nentes (montagem da sessão de comunicação) é especificada por um diagrama de colaboração UML. A partir destes diagramas, praticamente (próximo de 100%) todo o código da sessão de comunicação é gerado automaticamente pela plataforma.

Outro ponto de destaque do laboratório vitual REAL é o controle de acesso aos recursos compar- tilhados (robôs). REAL utiliza uma completa infra-estrutura de acesso baseada em tecnologia J2EE (Java 2 Enterprise Edition) [79] com funções de cadastramento de usuários e serviços, reserva ante- cipada de horário, suporte a diferentes modos de compartilhamento dos recursos e monitoramento do uso de recursos.

Alguns aspectos onde os projetos na linha de aplicações telerobóticas distribuídas citados acima oferecem soluções mais abrangentes às adotadas pelo laboratório virtual REAL são discutidos na seqüência. No REAL, apenas funções básicas de tempo real como escalonamento de threads por prioridade são empregadas. Neste aspecto, as soluções de tempo real propostas no framework do RIMLab são mais abrangentes. REAL utiliza CORBA tanto no lado servidor quanto no lado do cliente, o que pode inviabilizar o acesso ao laboratório virtual caso algum firewall da Internet impeça o tráfego do protocolo de comunicação IIOP (Internet Inter-ORB Protocol) empregado no CORBA. Neste aspecto, o sistema desenvolvido por Khamis é mais adequado por utilizar CORBA apenas no lado do servidor, restringindo a comunicação entre o cliente e o laboratório virtual apenas ao proto- colo HTTP (Hypertext Transfer Protocol). Esta mesma solução é empregada na sessão de acesso do REAL, bem como em desenvolvimentos futuros sobre a plataforma baseada em Serviços Web. Final- mente, ao contrário do projeto TIGER, REAL não oferece qualquer facilidade para a implementação de ambientes simulados.