Sie sind auf Seite 1von 102

COPPE/UFRJ

INFRAESTRUTURA PARA TELEPRESENA 3D E TELEOPERAO

Andr Sarmento Barbosa

Tese de Doutorado apresentada ao Programa de Ps-graduao em Engenharia Civil, COPPE, da Universidade Federal do Rio de Janeiro, como parte dos requisitos necessrios obteno do ttulo de Doutor em Engenharia Civil.

Orientador: Luiz Landau

Rio de Janeiro Setembro de 2009

INFRAESTRUTURA PARA TELEPRESENA 3D E TELEOPERAO

Andr Sarmento Barbosa

TESE SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO LUIZ COIMBRA DE PS-GRADUAO E PESQUISA DE ENGENHARIA (COPPE) DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSRIOS PARA A OBTENO DO GRAU DE DOUTOR EM CINCIAS EM ENGENHARIA CIVIL.

Examinada por:

Prof. Luiz Landau, D.Sc.

Prof. Gerson Gomes Cunha, D.Sc.

Prof. Fernando Pellon de Miranda, D.Sc.

Prof. Nelson Francisco Favilla Ebecken, D.Sc.

Prof. Marcelo Knrich Zuo, D.Sc.

RIO DE JANEIRO, RJ BRASIL SETEMBRO DE 2009

Barbosa, Andr Sarmento Infraestrutura para Telepresena 3D e Teleoperao/Andr Sarmento Barbosa. Rio de Janeiro: UFRJ/COPPE, 2009. XIII, 89 p.: il.; 29, 7cm. Orientador: Luiz Landau Tese (doutorado) UFRJ/COPPE/Programa de Engenharia Civil, 2009. Referncias Bibliogrcas: p. 49 52. 1. telepresena. 2. teleoperao. 3. telerobtica. I. Landau, Luiz. II. Universidade Federal do Rio de Janeiro, COPPE, Programa de Engenharia Civil. III. Ttulo.

iii

minha esposa Paula e ao meu lho Thiago.

iv

Agradecimentos
Agradeo minha famlia, pelo apoio e compreenso pelas horas passadas em frente ao computador e na bancada s voltas com os e circuitos...

Agradeo ao Programa de Engenharia Civil da COPPE/UFRJ, ao Laboratrio LAMCE, ao Grupo de Realidade Virtual Aplicada (GRVa) e a todos professores, funcionrios e colegas que acompanharam essa jornada.

Agradeo a tudo que possa representar Deus na Natureza e agradeo pelo simples fato de estarmos vivos e podermos desfrutar, contribuir e retribuir de alguma forma com tudo e todos.

Resumo da Tese apresentada COPPE/UFRJ como parte dos requisitos necessrios para a obteno do grau de Doutor em Cincias (D.Sc.)

INFRAESTRUTURA PARA TELEPRESENA 3D E TELEOPERAO

Andr Sarmento Barbosa

Setembro/2009

Orientador: Luiz Landau Programa: Engenharia Civil

Esta tese apresenta uma infraestrutura de hardware e software para sistemas de telepresena 3D e teleoperao. Esta infraestrutura proporciona a um participante a capacidade de visualizar, em tempo real, outro participante situado em um local remoto, possivelmente distante. O vdeo transmitido do participante remoto composto somente da parte segmentada pela sua silhueta, o qual sobreposto, localmente, a um ambiente virtual. A infraestrutura completa composta por uma biblioteca de software baseada em cdigo fonte livre e uma congurao de hardware baseada na aquisio de vdeo atravs de mltiplas cmeras, alm de mdulos eletrnicos com suporte a sensores e atuadores, desenvolvidos especicamente para as aes relacionadas teleoperao. O trabalho apresenta, ao seu nal, um prottipo construdo com a infraestrutura proposta, onde so realizadas avaliaes de desempenho dos algoritmos escolhidos e testes com os mdulos eletrnicos desenvolvidos.

vi

Abstract of Thesis presented to COPPE/UFRJ as a partial fulllment of the requirements for the degree of Doctor of Science (D.Sc.)

INFRASTRUCTURE FOR 3D TELEPRESENCE AND TELEOPERATION

Andr Sarmento Barbosa

September/2009

Advisor: Luiz Landau Department: Civil Engineering

This thesis presents a hardware and software infrastructure for 3D telepresence and teleoperation systems. This infrastructure provides a user the ability to visualize, in real time, another user in a remote, possibly distant place. The transmitted video from the remote user is formed only for the part segmented for its silhouette, which is composed to a virtual environment in the local system. The complete infrastructure contains a software library based on free source code and a hardware conguration based on the video capture using multiple cameras. Moreover, electronic modules with support to the sensors and actuators had been developed specically for the actions related to the teleoperation. A prototype developed with the proposed infrastructure is presented at the end of this work, where evaluations of performance of the chosen algorithms and tests with the developed electronic modules are made.

vii

Sumrio

Lista de Figuras Lista de Tabelas 1 Introduo 1.1 1.2 Motivaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 1.3 Hiptese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xi xiii 1 2 3 3 3 4 8 9 9

Relevncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . .

1.4

Organizao do trabalho . . . . . . . . . . . . . . . . . . . . . . . . .

2 Fundamentao Terica 2.1 Telepresena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 2.1.2 2.1.3 2.1.4 2.2

Videoconferncia . . . . . . . . . . . . . . . . . . . . . . . . . 10 Ambientes Virtuais Colaborativos . . . . . . . . . . . . . . . . 10 Sistemas de Telepresena Comerciais . . . . . . . . . . . . . . 13 Telepresena 3D . . . . . . . . . . . . . . . . . . . . . . . . . . 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Teleoperao 2.2.1 2.2.2 2.2.3

reas de aplicao da teleoperao . . . . . . . . . . . . . . . 21 A teleoperao via Internet . . . . . . . . . . . . . . . . . . . 23 Eletrnica para suporte teleoperao . . . . . . . . . . . . . 24 26

3 Metodologia Empregada 3.1

Viso geral do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 26 viii

3.2

Infraestrutura para telepresena 3D . . . . . . . . . . . . . . . . . . . 27 3.2.1 3.2.2 Captura de vdeo . . . . . . . . . . . . . . . . . . . . . . . . . 28 Computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3 3.4

Infraestrutura para teleoperao . . . . . . . . . . . . . . . . . . . . . 31 Comentrios Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 34

4 Implementao da Soluo Proposta 4.1 4.2

Classes que compem a biblioteca proposta . . . . . . . . . . . . . . . 34 Implementao da biblioteca com suporte telepresena 3D e teleoperao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 Calibragem das cmeras . . . . . . . . . . . . . . . . . . . . . 35 Extrao da silhueta de mltiplas cmeras . . . . . . . . . . . 37 Compresso e descompresso do vdeo e da mscara da silhueta 39 Transmisso da imagem via rede IP . . . . . . . . . . . . . . . 39 Reconstruo do vdeo . . . . . . . . . . . . . . . . . . . . . . 40 Mtodos para teleoperao . . . . . . . . . . . . . . . . . . . . 41

4.3 4.4

Prottipo para validao da biblioteca . . . . . . . . . . . . . . . . . 41 Construo do hardware para teleoperao . . . . . . . . . . . . . . . 42 45

5 Consideraes Finais 5.1 5.2 5.3 5.4

Avaliaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Contribuies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Pesquisas Futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 49 53 59

Referncias Bibliogrcas A Diagramas de Classes B Listagem e documentao das principais classes da biblioteca

B.1 Classe VideoCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 B.1.1 Descrio detalhada . . . . . . . . . . . . . . . . . . . . . . . 60

ix

B.1.2 Documentao dos mtodos . . . . . . . . . . . . . . . . . . . 60 B.2 Classe VideoDisplay . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 B.2.1 Descrio detalhada . . . . . . . . . . . . . . . . . . . . . . . 64

B.2.2 Documentao dos mtodos . . . . . . . . . . . . . . . . . . . 64 B.3 Classe FrameBuer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 B.3.1 Descrio detalhada . . . . . . . . . . . . . . . . . . . . . . . 65

B.3.2 Documentao dos mtodos . . . . . . . . . . . . . . . . . . . 65 B.4 Classe Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 B.4.1 Descrio detalhada . . . . . . . . . . . . . . . . . . . . . . . 68

B.4.2 Documentao dos mtodos . . . . . . . . . . . . . . . . . . . 68 B.5 Classe Silhouette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 B.5.1 Descrio detalhada . . . . . . . . . . . . . . . . . . . . . . . 71

B.5.2 Documentao dos mtodos . . . . . . . . . . . . . . . . . . . 71 B.6 Classe Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 . . . . . . . . . . . . . . . . . . . . . . . 74

B.6.1 Descrio detalhada

B.6.2 Documentao dos mtodos . . . . . . . . . . . . . . . . . . . 74 B.7 Classe RenderBillboard . . . . . . . . . . . . . . . . . . . . . . . . . . 75 B.7.1 Descrio detalhada . . . . . . . . . . . . . . . . . . . . . . . 75

B.7.2 Documentao dos mtodos . . . . . . . . . . . . . . . . . . . 75 B.8 Classe Teleoperation . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 B.8.1 Descrio detalhada . . . . . . . . . . . . . . . . . . . . . . . 76

B.8.2 Documentao dos mtodos . . . . . . . . . . . . . . . . . . . 76 C Diagramas Esquemticos e Layouts dos Circuitos Eletrnicos Glossrio 78 89

Lista de Figuras
2.1 2.2 Videoconferncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Uma classicao dos espaos compartilhados de acordo com as dimenses de transporte e articialidade . . . . . . . . . . . . . . . . . 13 Sistema de telepresena comercial . . . . . . . . . . . . . . . . . . . . 14 VIRTUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 TELEPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Visual Hull baseado em imagem . . . . . . . . . . . . . . . . . . . . . 17 Painel com aplicao de luz infravermelha . . . . . . . . . . . . . . . 18 Composio do vdeo ao ambiente virtual . . . . . . . . . . . . . . . . 20 Modelo da sonda Spirit. Fonte: NASA . . . . . . . . . . . . . . . . . 22

2.3 2.4 2.5 2.6 2.7 2.8 2.9

2.10 Teleoperao via Internet . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.11 Modelo abstrato de um mdulo de controle e monitoramento . . . . . 25 3.1 3.2 3.3 3.4 3.5 4.1 4.2 4.3 4.4 4.5 Diviso em blocos do sistema proposto . . . . . . . . . . . . . . . . . 27 Abordagem da telepresena 3D na soluo proposta . . . . . . . . . . 28 Cmera CCD utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Placa de captura com chipset Philips - 120fps . . . . . . . . . . . . . 30 Abordagem da teleoperao na soluo proposta . . . . . . . . . . . . 32 Calibragem das cmeras . . . . . . . . . . . . . . . . . . . . . . . . . 36 Algoritmo de Horprasert . . . . . . . . . . . . . . . . . . . . . . . . . 38 Infraestrutura fsica montada . . . . . . . . . . . . . . . . . . . . . . 41 Composio do vdeo do participante e monitoramento a temperatura 42 Subtrao de fundo e transmisso via rede . . . . . . . . . . . . . . . 43

xi

5.1 5.2 5.3

Extrao de silhueta: Nmero de pixels x tempo(ms) . . . . . . . . . 46 Billboards ou sprites: Nmero de pixels x FPS . . . . . . . . . . . . . 46 Visual Hull: Nmero de pixels x FPS . . . . . . . . . . . . . . . . . . 46

A.1 Classes de captura de vdeo . . . . . . . . . . . . . . . . . . . . . . . 54 A.2 Classes de janela de vdeo . . . . . . . . . . . . . . . . . . . . . . . . 55 A.3 Classes de cmera, framebuer, calibragem e silhueta . . . . . . . . . 56 A.4 Classes de renderizao e teleoperao . . . . . . . . . . . . . . . . . 57 A.5 Classes do programa principal (prottipo) . . . . . . . . . . . . . . . 58 C.1 Diagrama esquemtico do Mdulo de Controle e Sensoriamento . . . 79 C.2 Layout superior da placa do Mdulo de Controle e Sensoriamento . . 80 C.3 Layout inferior da placa do Mdulo de Controle e Sensoriamento . . . 80 C.4 Layout dos componentes do Mdulo de Controle e Sensoriamento . . 80 C.5 Modelo 3D do Mdulo de Controle e Sensoriamento . . . . . . . . . . 80 C.6 Diagrama esquemtico do Conversor USB-RS485 . . . . . . . . . . . 81 C.7 Layout superior da placa do Conversor USB-RS485 . . . . . . . . . . 82 C.8 Layout inferior da placa do Conversor USB-RS485 . . . . . . . . . . . 82 C.9 Layout dos componentes do Conversor USB-RS485 . . . . . . . . . . 82 C.10 Modelo 3D do Conversor USB-RS485 . . . . . . . . . . . . . . . . . . 82 C.11 Placas de circuito impresso do Mdulo e do Conversor . . . . . . . . . 83 C.12 Mdulo de Controle e Sensoriamento montado . . . . . . . . . . . . . 83 C.13 Conversor USB-RS485 montado . . . . . . . . . . . . . . . . . . . . . 83

xii

Lista de Tabelas
5.1 5.2 Diferentes resolues com uso de billboards ou sprites . . . . . . . . . 45 Diferentes resolues com uso do algoritmo Visual Hull . . . . . . . . 45

xiii

Captulo 1 Introduo
A evoluo dos sistemas de telecomunicao e a globalizao mudaram radicalmente a forma como as pessoas trabalham e se comunicam. A telefonia, a Internet e as videoconferncias no so mais sucientes para atender certas demandas. Assim, muita pesquisa tem sido conduzida em busca de novas formas de comunicao e colaborao de grupos geogracamente distribudos. A utilizao da computao grca e da viso computacional tem resultado em avanos expressivos neste sentido, tais como os ambientes virtuais colaborativos e a telepresena. Os ambientes virtuais colaborativos [1] permitem que usurios trabalhem de forma colaborativa em favor de um determinado objetivo, enquanto se beneciam da exibilidade e da enorme gama de possibilidades dos ambientes virtuais. Estes ambientes so compartilhados pelos participantes atravs de uma rede de computadores, permitindo que grupos possam interagir no ambiente virtual mesmo que sicamente distantes uns dos outros. Os ambientes virtuais colaborativos podem ser construdos a partir de ambientes de realidade virtual que possuem graus de imerso que variam desde os noimersivos (atravs de monitores CRT ou LCD convencionais) aos imersivos, como a CAVETM [2]. A telepresena permite a visualizao da imagem dos participantes como se estes estivessem sicamente presentes, criando um ambiente onde participantes remotos no apenas se encontram face a face, como tambm podem, possivelmente, compartilhar um mesmo espao virtual, executando tarefas neste espao [3]. Alm da imagem, outras informaes poderiam ser transferidas entre o participante e o ambiente remoto, tais como udio e tarefas de controle e monitorao. Assim, funes de teleoperao podem ser integradas telepresena.

A teleoperao envolve o controle de equipamentos distncia, permitindo o envio de comandos de um operador para o equipamento controlado, bem como retorno de informaes do equipamento para o operador. Este retorno, pode ser fruto de uma resposta de uma ao de controle ou mesmo a monitorao de caractersticas do equipamento. Podemos perceber que h uma relao entre todos os conceitos discutidos anteriormente, na qual a telepresena pode ser vista como uma tecnologia que estende a capacidade das videoconferncias e dos ambientes virtuais colaborativos, acrescentando a estes a capacidade de incorporar, em tempo real, o vdeo de cada participante, alm de permitir tambm, a capacidade de teleoperao. A imagem transmitida do participante remoto, pode ser composta somente pela parte segmentada pela sua silhueta, a qual sobreposta, localmente, ao ambiente virtual em trs dimenses, dando origem ao termo telepresena 3D ou teleimerso. Aliada realidade virtual, a telepresena pode levar o homem a mundos hoje apenas imaginrios, criando situaes novas, completamente diferentes das que estamos acostumados a experimentar [4]. Vrias solues tm sido propostas neste sentido; notveis contribuies e uma reviso de trabalhos j publicados podem ser encontrados em [5] e [6]. O presente trabalho prope uma infraestrutura de hardware e software para telepresena 3D e explora sua integrao com a teleoperao. Neste sentido, os participantes do sistema de telepresena podem exercer operaes de controle e monitoramento distncia, podendo ainda enviar e receber estmulos fsicos, tais como o acionamento de um dispositivo, o monitoramento da temperatura corporal ou ambiente, ou quaisquer aes que possam ser capturadas e transmitidas via rede. O uso em conjunto da telepresena e da teleoperao pode ser aplicado em diversos ambientes e campos de pesquisa, como por exemplo: telerobtica, salas de cirurgia, plataformas oshore, explorao submarina, reas de risco, etc.

1.1

Motivaes

Os atuais sistemas de telepresena so empregados, em sua maioria, como substituio videoconferncia convencional. Algumas aplicaes incluem simulaes e treinamentos, mas estas realizadas estritamente no contexto do ambiente virtual. Alm disso, estes sistemas possuem, em geral, infraestrutura muito cara, utilizando geralmente hardware de ltima gerao. Uma importante observao foi a possibilidade de integrao entre a telepresena 2

3D e a teleoperao dentro de uma mesma infraestrutura, permitindo que, alm da transmisso do vdeo dos participantes, fosse feita a troca de dados e estmulos fsicos entre os ambientes, possibilitando o controle e monitoramento de dispositivos remotamente. Sendo assim, as motivaes foram: Proporcionar meios de se desenvolver e utilizar aplicativos de telepresena com baixo custo, baseando-se em software livre e infraestrutura menos complexa; Percepo da possibilidade de integrao anteriormente descrita, orientando o uso da telepresena 3D integrada teleoperao, e no somente como uma substituio videoconferncia.

1.2

Objetivo

Dentro do exposto anteriormente, o objetivo deste estudo projetar e implementar uma infraestrutura de hardware e software para telepresena 3D e teleoperao que utilize hardware de baixo custo e que se baseie em software livre. A infraestrutura proposta deve ser projetada e desenvolvida de forma concomitante com a implementao de um prottipo de testes, onde seja possvel avaliar os algoritmos e os componentes de hardware escolhidos durante o processo.

1.2.1

Hiptese

Vericar a possibilidade de que os algoritmos de extrao de silhueta e renderizao escolhidos possuam desempenho satisfatrio para uma aplicao de tempo real, utilizando a infraestrutura de hardware e software proposta.

1.3

Relevncia

Neste trabalho, o uso da telepresena relevante no sentido de explorar a aquisio de vdeo atravs de mltiplas cmeras, permitindo a reconstruo e composio do vdeo em 3D e a integrao com a teleoperao dentro da mesma infraestrutura, com o objetivo de controle e monitoramento de dispositivos remotos. A integrao com a teleoperao, proporciona a comunicao direta com sensores e atuadores com um ambiente real. Isto permite que participantes possam realizar

tarefas de controle e monitoramento de dispositivos em ambientes sem estar sicamente presentes nos mesmos, podendo, possivelmente, colaborar nestas aes com outras pessoas, face a face, como se estivessem no mesmo local. Outros aspectos relevantes se referem ao custo e exibilidade. A proposta em questo pretende ser exvel a ponto de se poder utilizar infraestruturas menos complexas e hardware de baixo custo, o que no normalmente encontrado em sistemas comerciais de telepresena.

1.3.1

Trabalhos relacionados

Os benefcios dos ambientes virtuais colaborativos e dos sistemas de telepresena, como discutidos em [7], so empiricamente comprovados em vrias tarefas colaborativas. Notavelmente, nos ltimos anos, vrias empresas de grande porte tm lanado sistemas de telepresena no mercado. Alm disso, redes de televiso tm explorado o uso da telepresena em entrevistas e reportagens. Sistemas de teleoperao tm sido empregados na explorao submarina e espacial, na medicina, na limpeza de lixo txico, em situaes de resgate e desarme de bombas e explosivos. Em [8], pode ser encontrada uma extensiva reviso da literatura em teleoperao e telerobtica. Os seguintes trabalhos podem ser considerados como estado da arte em sistemas de telepresena que integram captura e projeo simultnea de imagem em ambientes virtuais (telepresena 3D): Virtualization gate [9]: Utiliza mltiplas cmeras para captura da imagem, simulao fsica e um capacete de realidade virtual para proporcionar imerso completa do participante e sentimento de presena, em mundos virtuais. A geometria reconstruda do corpo e sobreposta ao ambiente virtual permite ao sistema computar coliso de qualquer parte do corpo com outros objetos no ambiente sinttico; Blue-c [5]: Um ambiente completo de projeo e aquisio de vdeo 3D do participante, para design virtual e colaborao. O sistema combina o uso de mltiplas cmeras de vdeo e uma avanada tecnologia de projeo 3D em uma CAVETM ; Image Based Visual Hulls [10]: Utiliza o conceito de Visual Hull [11] baseado em imagem para reconstruir o vdeo em 3D do participante capturado atravs de mltiplas cmeras. Com a tcnica descrita no artigo, somente a imagem observada do ponto de vista de interesse renderizada e no o volume 4

em trs dimenses do vdeo completo. Assim, foi alcanado um desempenho muito alto, principalmente quando o ponto de vista se mantm xo; TELEPORT [12]: Um sistema de telepresena com sobreposio de vdeo 2D dos participantes ao ambiente virtual, o qual especicamente construdo para estender em proporo e textura o ambiente real; VIRTUE [13]: Um sistema de telepresena similar ao TELEPORT, incluindo a capacidade de compartilhar documentos entre os participantes; National Tele-Immersion Initiative [14]: Segue o mesmo conceito do TELEPORT [12] e do VIRTUE [13], utilizando o algoritmo delta-keying para separar a silhueta dos participantes do fundo da cena; Video Avatar System for Network Virtual Environments [15]: Utiliza um modelo pr-adquirido da cabea do participante para ser texturizada com a sua imagem em tempo real; The Oce of the Future [16]: Uma proposta baseada na unicao de tcnicas de computao grca e viso computacional para extrair informaes de objetos e pessoas no ambiente, incluindo paredes, mveis, etc. A proposta permite renderizar imagens das superfcies, projetar imagens nas superfcies ou interpretar mudanas das superfcies, proporcionado aplicaes de realidade aumentada, telepresena, etc. Nos ltimos anos, empresas de grande porte tm lanado sistemas comerciais de telepresena. Alm disso, redes de televiso empregaram a tecnologia em entrevistas e reportagens. Podemos destacar: Cisco TelePresence: Lanado em 2006, o TelePresence um produto da empresa Cisco Systems, responsvel por grande parte dos equipamentos de rede encontrados hoje na Internet e nas redes de computadores em geral. O Cisco TelePresence custou algo em torno de 10 bilhes de dlares em investimentos em pesquisas. So utilizadas salas especiais com trs grandes telas de plasma de 65 polegadas e telefones IP, custando em mdia, U$ 300.000,00 cada sala. A Cisco fornece a sala inteira, at a moblia, sendo ainda so necessrios, no mnimo, enlaces de 6Mbps dedicados s salas; Teliris, Polycom e outras: Outras empresas de menor porte, que, apesar de terem produtos disponveis antes de 2006, s conseguiram atingir o mercado aps o sucesso alcanado pela Cisco, seguindo o modelo adotado por esta empresa; 5

CNN Telepresence Hologram: Em 2008, a rede CNN fez uso da telepresena 3D na cobertura das eleies presidenciais dos Estado Unidos. O termo holograma na realidade no foi empregado corretamente, visto que o vdeo em 3D capturado de uma reprter, em um local remoto, foi composto sobre o vdeo assistido pelos telespectadores e no projetado no estdio local como um holograma. A captura de vdeo no estdio remoto foi feita por 35 cmeras de alta denio e processada por 20 computadores para reconstruir localmente o vdeo da reprter. Assim, foi possvel combinar o vdeo da reprter em 3D, com o vdeo do estdio local e manipular o resultado em trs dimenses, criando a iluso de um holograma para os telespectadores. Holograma da Rede Globo: Em agosto de 2009, a Rede Globo fez uso da telepresena, mas sem nenhuma infraestrutura de captura em trs dimenses com mltiplas cmeras, a qual foi caracterizada por muitos, de forma errnea, como holograma. O efeito alcanado foi o uso da transmisso remota do vdeo, ento projetado no estdio local sobre uma pelcula metlica muito na, praticamente transparente, denominada foil, que provoca a sensao da projeo pairar no espao frente, criando a iluso de um holograma. Em geral, as aplicaes citadas so voltadas para uma substituio videoconferncia ou para o trabalho em um ambiente virtual colaborativo, com interaes somente dentro deste, como por exemplo: performances artsticas, simulaes, treinamentos e outras [5]. A seguir apresentada tambm uma reviso bibliogrca de trabalhos pioneiros que envolvem sistemas de teleoperao, citando inicialmente os casos quando esta empregada via Internet, e em seguida, projetos de grande destaque no cenrio cientco mundial. Mercury Project [17]: Lanado em 1994, foi o primeiro sistema a permitir que usurios pudessem visualizar e alterar o mundo real, atravs da Web. O Mercury Project consiste de um brao robtico industrial com uma cmera e um sistema pneumtico, permitindo aos usurios escolher e manipular vrios objetos no espao de trabalho alcanado pelo brao robtico; Bradford Robotic Telescope [18]: Prottipo de um telescpio robtico de baixo custo, desenvolvido na Universidade de Bradford na Inglaterra, onde estudantes, amadores e prossionais podem acess-lo via Internet. A interao com o telescpio feita por meio de uma interface amigvel, via Web, onde tarefas so submetidas previamente para serem processadas, ou remotamente, para eventos em tempo real; 6

Xavier [19]: Descreve o primeiro rob mvel e autnomo controlado pela Web, o rob pode aceitar comandos para se locomover para diferentes salas no mbito de um prdio, transmitindo imagens durante o percurso; Jason: Jason foi um veculo subaqutico operado remotamente, responsvel por localizar o navio Titanic. O veculo foi desenvolvido no Woods Hole Oceanographic Institute, nos EUA, fazendo uso de sosticadas tcnicas de controle supervisrio, compensando as presses exercidas pela gua durante suas manobras; Explorao de Marte pela NASA: A explorao de Marte se iniciou com as sondas Viking 1 e Viking 2, lanadas em 1975, seguida pela misso Mars Pathnder, lanada em meados de 1996, a qual contava com o rob explorador Sojourner. O rob passeou pela superfcie de Marte recolhendo informaes durante mais de um ms terrestre, no total foram obtidas 16.500 fotos a partir do mdulo de pouso e 550 imagens do Sojourner. Iniciando em 2003, a misso Mars Exploration Rovers um esforo a longo prazo para a explorao robtica do planeta. Esta misso envolveu inicialmente dois robs teleoperados, Spirit e Opportunity, com o objetivo de explorar a superfcie do planeta. Em um captulo mais recente na explorao, a sonda Phoenix, lanada de Cabo Canaveral em 4 de agosto de 2007, tem o objetivo de pesquisar por molculas de gua na regio do plo norte do planeta, onde pousou em 25 de maio de 2008; Robonaut [20]: O Robonaut um projeto em conjunto entre a DARPA (Agncia de Projeto e Pesquisa Avanada de Defesa dos EUA) e a NASA. O objetivo do projeto criar um rob humanide capaz de operar de forma equivalente aos humanos durante atividades extraveiculares, no espao. A aplicao inicial do Robonaut seria como atuador nal no brao robtico da Estao Espacial Internacional, onde ele poderia servir como alternativa s atividades humanas extraveiculares, para manuteno externa da estao. Outras aplicaes propem o seu uso para teleoperao em superfcies planetrias. Apesar de que nem toda a liberdade de movimento e sensibilidade seja igual a dos humanos, a mo do rob possui quatorze graus de liberdade e utiliza sensores de toque nas pontas dos dedos.

1.4

Organizao do trabalho

O trabalho est dividido em cinco captulos. Neste primeiro captulo, foram apresentados conceitos preliminares sobre os campos de pesquisa abordados, motivaes, objetivo, hiptese, relevncia e organizao do trabalho. O captulo 2 descreve os fundamentos tericos relacionados telepresena, desde a videoconferncia at a telepresena 3D, bem como os fundamentos tericos relacionados teleoperao. O captulo 3 apresenta a metodologia empregada no desenvolvimento da tese. No captulo 4, a implementao da infraestrutura de hardware e software apresentada, bem como um prottipo construdo sobre esta infraestrutura, onde foram feitas as avaliaes dos algoritmos e os testes com os componentes de hardware escolhidos. As consideraes nais so comentadas no captulo 5, onde se encontram as avaliaes, concluses, contribuies e sugestes de pesquisas futuras.

Captulo 2 Fundamentao Terica


Este captulo apresenta os conceitos tericos necessrios ao desenvolvimento deste trabalho, tendo como principal objetivo facilitar a compreenso dos conceitos de telepresena e teleoperao, bem como a correlao entre os mesmos. Nas sees que seguem, sobre telepresena, e posteriormente, teleoperao, so analisadas as tecnologias similares que as antecederam e os requisitos tcnicos necessrios para dar suporte ao estado atual das mesmas. importante frisar que, apesar dos conceitos serem abordados aqui de forma separada, a teleoperao pode ser considerada como parte da telepresena. A teleoperao envolve o controle de equipamentos distncia, permitindo o envio de comandos de um operador para o equipamento controlado, bem como retorno de informaes do equipamento para o operador. Este retorno, pode ser fruto de uma resposta de uma ao de controle ou mesmo a monitorao de caractersticas do equipamento. A telepresena proporciona a sensao de se estar em um ambiente distante do operador, retornando informaes do ambiente remoto, normalmente atravs do vdeo real ou de um ambiente virtual. Alm do vdeo, outras informaes do ambiente poderiam ser transferidas entre o operador e o ambiente remoto, tais como udio e tarefas de controle e monitorao, cando claro que a teleoperao pode estar integrada telepresena.

2.1

Telepresena

O termo telepresena refere-se a um conjunto de tecnologias que torna possvel um indivduo sentir como se estivesse presente em uma outra localidade que no a sua real, provendo possivelmente, da mesma forma, a outros participantes, a sensao 9

que este indivduo est sicamente presente. As tecnologias envolvidas em um sistema de telepresena vo desde os subsistemas de vdeo e som, at a capacidade de manipular ou monitorar remotamente objetos ou o ambiente. Esta capacidade conhecida como teleoperao. Os sistemas de telepresena podem apresentar diversos graus de percepo para os participantes envolvidos, isto devido complexidade e a quantidade de componentes disponveis para se construir tal sistema. Desta forma, ser descrito inicialmente, um sistema simples relacionado telepresena: a videoconferncia. Em seguida, solues mais complexas so mostradas, tais como a telepresena utilizada comercialmente e a telepresena 3D, esta ltima explorada de forma mais detalhada.

2.1.1

Videoconferncia

A videoconferncia uma forma de comunicao, em tempo real, que possibilita o contato visual e sonoro entre pessoas que esto em locais diferentes, dando a sensao de que os interlocutores encontram-se no mesmo local. Na videoconferncia no necessrio o uso de salas especiais ou equipamentos caros e complexos, pois a interface pode se dar atravs de uma webcam e um microfone convencional. A infraestrutura da Internet pode ser utilizada para transmisso dos dados de voz e vdeo de forma compactada, sendo os computadores dos participantes responsveis pela compresso e descompresso da transmisso de som e imagem. A videoconferncia permite a comunicao entre grupos, no somente entre dois indivduos. Alm disso, possibilita encontrar recursos de cooperao entre os usurios, compartilhando informaes e materiais de trabalho. A Figura 2.1 ilustra os conceitos descritos.

2.1.2

Ambientes Virtuais Colaborativos

Um ambiente virtual colaborativo uma implementao de um mundo sinttico tridimensional gerado por computador, atravs do qual grupos de usurios podem colaborar entre si e com o ambiente. O ambiente compartilhado pelos usurios atravs de uma rede de computadores, permitindo que estes grupos possam interagir no ambiente virtual mesmo que sicamente distantes uns dos outros. Como denido em [21], o conceito chave por trs dos ambientes virtuais colaborativos o compartilhamento do mundo virtual, onde, em um espao gerado por computador, os participantes so representados atravs de uma forma grca, po10

Figura 2.1: Videoconferncia realizada na Unicamp. Fonte: Jornal da Unicamp, fevereiro de 2006. dendo controlar seus pontos de vista e interagir com os outros participantes, com dados e com o ambiente compartilhado. Esta tecnologia pode ser aplicada em diversas reas, tais como design, marketing, artes, educao, engenharia, medicina, entretenimento, entre outras. 2.1.2.1 Classicao quanto imerso:

Em [22] e [23], podemos encontrar informaes a respeito das caractersticas de imerso de alguns ambientes virtuais colaborativos. Dado que estes ambientes podem ser construdos utilizando interfaces existentes dos sistemas de realidade virtual, podemos classic-los dependendo do tipo de interfaces que eles podem proporcionar: no-imersivos, semi-imersivos e completamente imersivos. No-Imersivos: So geralmente baseados em desktops e, como o nome sugere, utilizando a menos imersiva das tcnicas de implementao. Deste modo, o ambiente virtual visto como um portal ou janela, empregando um monitor de alta resoluo. A interao ocorre normalmente atravs do teclado, mouse ou trackball; Um ambiente no-imersivo possui a vantagem de no requerer o mais alto nvel de desempenho grco, nem hardware especial, podendo ser mais facilmente implementado;

11

Semi-Imersivos: Um ambiente semi-imersivo possui geralmente placas grcas de alto desempenho, as quais podem ser acopladas com monitores grandes de alta resoluo e projetores. Nesta categoria se enquadram as projees panormicas com telas curvas e em forma de domo. Sistemas semi-imersivos produzem uma apreciao maior das propores do ambiente. Adicionalmente, a estereograa pode ser alcanada atravs do uso de culos de realidade virtual; Completamente Imersivos: So provavelmente as mais conhecidas implementaes de visualizao em ambientes de realidade virtual. Nesta categoria esto o HMD (Head Mounted Displays) e a CAVETM [2]. O HMD um capacete de realidade virtual, atravs do qual o usurio visualiza as imagens em estreo do ambiente virtual e adicionalmente ouve o som gerado pelo sistema, cando completamente imerso no ambiente e excludo do mundo real. A vantagem deste mtodo que ele proporciona um campo visual de 360 , no qual o ponto de vista atualizado atravs de sensores presentes no capacete. A CAVETM possui uma infraestrutura mais complexa, onde necessrio o uso de vrios projetores que so sistematicamente instalados para projetar nas paredes de uma estrutura em forma de cubo. O usurio ca dentro da estrutura, podendo se deslocar na mesma. Uma vantagem importante que o usurio no ca completamente excludo do mundo real. Alm disso, no h o inconveniente de vestir um capacete. 2.1.2.2 Classicao quanto ao transporte e articialidade:

Os ambientes virtuais colaborativos so, por denio, espaos compartilhados. Em [21], h uma classicao dos espaos compartilhados como espaos multimdia, sistemas de videoconferncia orientada espacialmente, ambientes virtuais colaborativos e sistemas de telepresena. Assim, os ambientes virtuais colaborativos podem ser classicados dentro deste contexto, de acordo com caractersticas de articialidade e transporte (Figura 2.2). A dimenso do transporte representa os extremos dos conceitos de local e remoto. A dimenso da articialidade representa os extremos dos ambientes inteiramente sintticos e aqueles inteiramente fsicos. Ainda na Figura 2.2, podemos vericar que a telepresena se encontra na parte inferior direita do diagrama, isto porqu, em [21], o termo telepresena, como tratado, no engloba suas variaes ao se combinar com espaos virtuais compartilhados. 12

A telepresena 3D, a qual ser vista posteriormente, neste captulo, pode ser considerada como um hbrido entre os sistemas de telepresena baseados somente no vdeo e os ambientes virtuais colaborativos, e estaria situada no diagrama da Figura 2.2 em um ponto mediano entre os ambientes virtuais colaborativos e a telepresena. Observamos, portanto, que existem algumas semelhanas entre os sistemas de telepresena e os ambientes virtuais colaborativos, mas que nestes a representao de um indivduo feita atravs de um personagem, tambm chamado de avatar, e no utilizando o vdeo real do indivduo, adquirido em tempo real.

Figura 2.2: Uma classicao dos espaos compartilhados de acordo com as dimenses de transporte e articialidade [21].

2.1.3

Sistemas de Telepresena Comerciais

Os sistemas de telepresena comerciais atualmente disponveis so empregados, em sua maioria, como substituio videoconferncia convencional. Com o uso de dimenses maiores na rea de visualizao e a projeo das imagens recebidas em escalas reais, pode-se aumentar o grau de imerso dos participantes. A utilizao de vrios canais de udio e outras formas de visualizao, bem como a correta integrao destas caractersticas ao ambiente fsico, aumenta ainda mais este grau de imerso, como pode ser visto na Figura 2.3.

13

Nos ltimos anos, muitas empresas tm lanado sistemas comerciais de telepresena, tais como a Cisco, Teliris, Polycom e outras. Em geral, estes sistemas incluem mltiplos microfones e alto falantes, monitores de alta denio, cmeras, e frequentemente redes e salas dedicadas. O objetivo que os sistemas sejam transparentes para os usurios o tanto quanto possvel, provendo imagens em tamanho real, atrasos de transmisso imperceptveis e interfaces amigveis. O custo de sistemas deste tipo ainda alto, podendo chegar at US$ 300 mil para o sistema da Cisco, ilustrado na Figura 2.3. A aquisio destes sistemas por empresas de grande porte se justica por reduzir demasiadamente o custo operacional com reunies e viagens. Para pequenas e mdias empresas o custo pode ser considerado alto, no se justicando tal investimento.

Figura 2.3: Sistema de telepresena comercial. Fonte: Cisco Systems.

2.1.4

Telepresena 3D

O objetivo da telepresena 3D permitir que indivduos em diferentes locais possam se encontrar e compartilhar um mesmo ambiente virtual. Estes indivduos no so representados por meio de modelos de personagens (avatares) mas sim pelo vdeo em tempo real dos mesmos, extrados pela suas silhuetas, como se estivessem face a face, compartilhando o mesmo espao virtual (Figura 2.4). O sistema TELEPORT, descrito em [12], e o sistema VIRTUE, descrito em [13], so implementaes de tal conceito. Podemos observar, pela Figura 2.5, que no TELEPORT h uma projeo por trs da tela colocada na sala, enquanto que no VIRTUE (Figura 2.4), utilizado um monitor de plasma ou LCD. Em todo caso, exibido 14

Figura 2.4: VIRTUE [13]. um ambiente virtual que imita em escala correta as propores e a perspectiva da sala real, at mesmo com o modelo virtual de continuao da mesa. No ambiente virtual, sobreposto o vdeo do indivduo remotamente localizado, visto de frente em ambas as guras. Nos sistemas de telepresena 3D, possvel ainda a captura do vdeo do indivduo atravs de mltiplas cmeras, possibilitando reconstruir no sistema remoto o vdeo em 3D, incorporando-o posteriormente ao ambiente virtual, como visto em [10] e ilustrado na Figura 2.6. 2.1.4.1 Extrao da silhueta

Para capturar somente o vdeo do indivduo demarcado pela sua silhueta necessrio inicialmente a utilizao de algoritmos chamados de segmentao de fundo ou extrao de silhueta. importante observar que estes algoritmos devem ser executados para cada cmera no sistema. Diversos mtodos e algoritmos foram desenvolvidos com este objetivo. Inicialmente, veremos alguns mtodos que exigem interveno fsica no ambiente (instalao de painis) ou a utilizao de mecanismos especiais de captura (cmeras exatamente alinhadas, as quais exigem espelhos especiais e ajustes precisos). Em seguida, veremos como funcionam os mtodos baseados em modelagem de fundo, que no requerem interveno fsica no ambiente. Chroma-keying: Este mtodo requer que a pessoa que em frente a uma tela 15

Figura 2.5: TELEPORT [12]. com fundo geralmente azul ou verde. A silhueta calculada atravs de simples computao de pixels. Este mtodo restringe o usurio a no estar vestindo qualquer roupa com a cor prxima da tela de fundo, implicando, tambm, na utilizao de painis especcos para chroma-keying. Defocus Video Matting [24]: Utiliza duas cmeras exatamente alinhadas, uma com foco no indivduo e outra no fundo. Atravs de um algoritmo apropriado, a silhueta pode ser extrada com alto grau de preciso, processando simultaneamente o vdeo proveniente das duas cmeras. Segmentao de fundo com luz infravermelha [25, 26]: Neste mtodo, uma luz infravermelha projetada por trs de uma tela difusora, de forma a se distribuir sobre a mesma. O indivduo ca posicionado em frente tela, assim como no chroma-keying. Uma cmera infravermelha captura a imagem para montar a silhueta. Outra cmera (no infravermelha) captura a imagem a partir do mesmo ponto de vista para texturizar a silhueta extrada (Figura 2.7). Uma vantagem deste mtodo a no restrio da pessoa estar usando algo que possua a cor da tela de fundo. Alm disso, a tela de fundo pode ser utilizada tambm como tela para projeo, uma vez que a luz infravermelha no interfere com a luz gerada pelo projetor. Segmentao da silhueta usando modelagem do fundo: 16

Figura 2.6: Visual Hull baseado em imagem [10] Vejamos agora mtodos que no exigem interveno fsica no ambiente e nem a utilizao de mecanismos especiais de captura. A maior parte destes mtodos se baseia no aprendizado prvio das caratersticas do ambiente, sem que o objeto a ser capturado esteja presente, sendo conhecidos como algoritmos de subtrao de fundo. A subtrao de fundo consiste em subtrair da imagem atual uma imagem de referncia, a qual adquirida e modelada a partir de um fundo esttico durante um certo perodo de tempo, conhecido como perodo de treinamento. Assim, o fundo pode ser qualquer, desde que permanea razoavelmente esttico durante o tempo de treinamento. Alguns algoritmos exploram a diferena estatstica de cor entre a imagem atual e a imagem de referncia, a qual treinada durante um perodo de tempo ou com base em um nmero determinado de imagens. Outros algoritmos se baseiam na anlise de movimento dos objetos, em transformaes logartmicas ou no aprendizado por cadeias de Markov. Na sua verso mais simples, a subtrao de fundo pode partir, inicialmente, de um certo nmero de imagens capturadas (fase de treinamento), onde so calculados, para cada pixel, a mdia e o desvio padro, baseado no espao de cores RGB. O objetivo desta etapa fazer a modelagem prvia do fundo da cena, a m de que os prximos passos do algoritmo possam distinguir o que

17

(a) Vista por uma cmera colorida

(b) Vista por uma cmera infravermelha

Figura 2.7: Painel com aplicao de luz infravermelha [25]. faz parte do fundo e o que faz parte da silhueta de um indivduo sobre ele. Esta primeira etapa tambm utilizada como ponto de partida para outros algoritmos mais complexos, tal como o algoritmo de Horprasert [27], que ser analisado em maiores detalhes no Captulo 4. 2.1.4.2 Reconstruo da Imagem

A visualizao e navegao em ambientes virtuais compostos por objetos sintticos e reais constituem um objetivo de longa data na computao grca. O termo realidade virtualizada, popularizado por Kanade [28], descreve um sistema onde um cenrio do mundo real capturado por uma coleo de cmeras e ento visualizado atravs de uma cmera virtual como se fosse uma cena.

18

Na prtica, as implementaes existentes tentam empregar uma srie de algoritmos de viso computacional para extrair o modelo geomtrico da cena desejada. No caso da telepresena, a reconstruo da geometria desejada a do corpo humano, devendo ainda ser realizada em tempo real. Infelizmente, muitos algoritmos de viso computacional, tais como stereo vision, optical ow e shape from shading, so muito lentos para o processamento em tempo real [10]. Solues simples podem ser adotadas, tais como o mapeamento seletivo do vdeo adquirido por cada cmera em um billboard. Um billboard um objeto grco, normalmente um retngulo, que est sempre com sua normal voltada para o observador. Desta forma, dependendo do ponto de vista do participante visualizando a cena, a cmera que mais se aproxima do ngulo de visuaizao ser selecionada para texturizar o billboard. Outros algoritmos, baseados em uma aproximao geomtrica conhecida como Visual Hull, como discutido em [11] e [10], podem ser utilizados em aplicaes de tempo real, possuindo, em contrapartida, a limitao de no detectar regies no convexas. O Visual Hull construdo atravs de uma srie de silhuetas para progressivamente determinar uma regio que engloba o objeto. 2.1.4.3 Composio do vdeo ao Ambiente Virtual

O passo seguinte consiste na composio do vdeo do participante ao ambiente virtual. A imagem geralmente mapeada em um billboard que colocado no cenrio virtual (Figura 2.8). Para que a geometria do billboard no interra no processo, o vdeo deve ser aplicado como uma textura que possui as regies no contidas na silhueta sendo transparentes. Se isso no fosse feito, a imagem do indivduo apareceria dentro de um quadrado branco ou preto, por exemplo. Este detalhe importante no que diz respeito transmisso do vdeo via rede. Ao transmitir o vdeo de um individuo, um sistema de telepresena deve enviar, no s o vdeo capturado, mas tambm a informao da silhueta. Dependendo do ponto de vista do indivduo manipulando o ambiente virtual, a imagem do outro indivduo dever aparecer no ngulo e perspectiva corretos, isto , o objetivo do algoritmo de reconstruo do vdeo prover a visualizao de qualquer ngulo possvel da imagem para que esta viso especca seja mapeada no billboard. Em outras situaes, que dependem de como a imagem reconstruda, a geometria

19

Figura 2.8: Composio do vdeo ao ambiente virtual [26] deve ser renderizada de forma volumtrica, voxel por voxel.

2.2

Teleoperao

O prexo de origem Grega tele signica distncia e o termo teleoperao indica naturalmente operao distncia. Portanto, a teleoperao estende a capacidade humana para manipular objetos remotamente, provendo ao operador condies semelhantes s encontradas no local remoto [29]. A teleoperao pode exigir tambm o envio de informaes do objeto controlado para o operador. Se o dispositivo controlado possui sensores de fora ou temperatura, por exemplo, essas informaes devem ser monitoradas para reetir uma ao executada ou para auxiliar na execuo de uma operao. O termo teleoperao muito associado com a robtica, dando origem telerobtica, mas pode ser aplicado em vrias circunstncias, nas quais dispositivos ou mquinas so operados por um indivduo distncia. A m de compreender claramente a teleoperao, iremos denir, inicialmente, alguns dos termos bsicos e conceitos relacionados. Estas denies foram baseadas nos trabalhos de [30] e [31].

20

Teleoperador a mquina que habilita o operador humano a mover, sentir e manipular objetos distncia. De forma mais generalizada, qualquer ferramenta, a qual estenda a capacidade mecnica do indivduo alm do seu alcance, pode ser considerada um teleoperador; Telerob um rob que aceita instrues distncia, geralmente de um operador humano, e age no ambiente distante atravs do uso de sensores, atuadores ou outros mecanismos. Usualmente um telerob ter algum tipo de manipulador e mobilidade; Telemanipulao uma operao mestre-escravo, na qual um brao robtico (escravo), que est geralmente em um ambiente distante ou perigoso, obedece as aes de um manipulador (mestre). Em geral, a telemanipulao dividida em dois processos fortemente acoplados: a interao entre o teleoperador e o dispositivo mestre; e a interao entre o dispositivo escravo remoto e o ambiente onde este age. A teleoperao signica, portanto, operar remotamente um rob, ou qualquer dispositivo, usando a inteligncia humana. Isto requer a disponibilidade de uma interface homem-mquina adequada entre ambos.

2.2.1

reas de aplicao da teleoperao

Nas ltimas dcadas, diferentes sistemas de teleoperao tm sido desenvolvidos para permitir que operadores humanos executem tarefas em reas remotas ou ambientes perigosos. A tecnologia tem sido empregada em uma grande variedade de aplicaes, tais como exploraes subaquticas, campos de batalha, vigilncia remota, e assim por diante. As tarefas de teleoperao se destacam pela interao contnua entre os operadores humanos, dispositivo teleoperador e o ambiente. Com o desenvolvimento da Internet e outras tecnologias relacionadas, as aplicaes da teleoperao tornaram-se mais abrangentes e mais indispensveis do que antes. Veremos a seguir, algumas das reas onde a teleoperao pode ser empregada. 2.2.1.1 Explorao espacial

A teleoperao tem sido usada de forma muito frequente em misses espaciais. Muitas das sondas espacias que operam no espao profundo tm sido telerobs, estas possuem controles relativamente simples, mas extremamente conveis. Os robs da que fazem parte das misses de explorao de Marte pela NASA so telerobs.

21

Na Figura 2.9 mostrado um modelo da sonda Spirit, irm gmea da Opportunity, lanadas em 2003 pela NASA, como parte da misso Mars Exploration Rovers.

Figura 2.9: Modelo da sonda Spirit. Fonte: NASA.

2.2.1.2

Explorao submarina

Nestas aplicaes, a teleoperao pode ser empregada na explorao de petrleo, inspeo e manuteno de perfurao de poos, plataformas petrolferas e encanamentos, estudos geolgicos, e classicao de tarefas marinhas. Em 1985, um veculo subaqutico operado remotamente, chamado Jason, foi responsvel por localizar o navio Titanic. 2.2.1.3 Ambientes hostis

A teleoperao pode ser utilizada onde os seres humanos possam ser expostos situaes perigosas, como por exemplo: operaes militares, salvamento de vtimas de incndios, atmosferas txicas, ou mesmo situaes de refm. Dispositivos robticos controlados remotamente esto sendo usados para detectar e remover a bombas e minas terrestres, possibilitando ao operador sentir o que o rob est sentindo, para que a tarefa da remoo possa ser feita com mais ecincia e segurana. 22

2.2.1.4

Telemedicina

A telemedicina tem forte apelo no fornecimento cuidados mdicos, onde a distncia um fator crtico. Em um campo de batalha, por exemplo, a primeira hora depois que um soldado foi ferido crtica. A telepresena, poderia ser usada para transportar a presena do mdico ou do cirurgio, tanto para um quarto de hospital quanto para um campo de batalha, a m de ajudar os paramdicos, podendo ainda, com recursos de teleoperao, permitir a interveno direta dos mdicos ou cirurgies. Isto facilitaria o uso mais ecaz de um recurso cada vez mais limitado: o especialista mdico. 2.2.1.5 Vigilncia eletrnica

As foras de segurana no mundo inteiro esto recorrendo cada vez mais ao monitoramento e gravao de vdeo como meio de preveno e combate ao crime. A telepresena e a teleoperao esto se tornando tendncia nesta rea, pois cada agente de segurana pode vigiar vrios lugares ao mesmo tempo sem sair de seu posto. Robs podem operar de forma autnoma em reas crticas, podendo ser teleoperados de acordo com a necessidade.

2.2.2

A teleoperao via Internet

A teleoperao via Internet comeou na metade dos anos 90 [1719] e tem sido um campo muito ativo de pesquisas desde ento. Muito tem se discutido a respeito dos atrasos inerentes Internet e como eles inuem em sistemas de teleoperao [32]. A transmisso atravs de uma rede de comutao de pacotes resulta em atrasos aleatrios que podem chegar a valores altos e, eventualmente, at a perda de informao, dependendo do protocolo de transporte utilizado (TCP ou UDP, vide Figura 2.10). Como resultado, o desempenho de um sistema de teleoperao que no suporte atrasos pode ser muito afetado. Uma escolha entre utilizar TCP (Transmission Control Protocol) ou UDP (User Datagram Protocol) deve ser feita baseada no desempenho esperado e nas caractersticas do sistema a ser controlado. O protocolo TCP prov comunicao convel e garante a entrega dos pacotes ao custo de retransmisses, e possivelmente longos atrasos, que impactam em aplicaes de tempo real. O protocolo UDP no requer conrmaes de pacotes recebidos e no faz retransmisses, gerando, portanto, menos atraso. Em contrapartida, o UDP no garante a entrega dos pacotes, podendo, eventualmente, perd-los.

23

Figura 2.10: Teleoperao via Internet.

2.2.3

Eletrnica para suporte teleoperao

A evoluo da microeletrnica e o barateamento na fabricao de semicondutores viabilizaram o emprego de sistemas computadorizados em diversos equipamentos. Muitos dos equipamentos eltricos e eletrnicos modernos possuem pequenos computadores embutidos, estes so chamados sistemas embarcados ou sistemas embutidos. Eles so geralmente construdos para tarefas especcas e na grande maioria das vezes, no contm disco rgido, exvel nem teclado, podendo nem mesmo ter a necessidade de um sistema operacional. Muitos destes sistemas utilizam microcontroladores, que so circuitos integrados que possuem internamente um microprocessador, memria e diversos perifricos. Os microcontroladores podem ser ento programados para executar todas as tarefas relativas ao controle do equipamento, necessitando de poucos componentes adicionais. Para o suporte teleoperao, se faz necessrio um sistema embarcado que possua sensores e atuadores para a nalidade desejada, como, por exemplo, sensores para deteco de obstculos e motores, para a locomoo de um rob. A eletrnica embarcada precisa tambm de uma forma de comunicao com um sistema de computao ligado rede, para que possa ser teleoperada, possivelmente via Internet. Vrias interfaces so disponveis atualmente, tais como RS-232, RS485, USB, Zigbee, Bluetooth, entre outras.

24

A Figura 2.11 mostra o modelo abstrato de um mdulo para sensores e atuadores que ilustra que foi apresentado nos pargrafos anteriores.

Figura 2.11: Modelo abstrato de um mdulo de controle e monitoramento. Nos captulos seguintes os conceitos aqui adquiridos sero utilizados na metodologia e no desenvolvimento da infraestrutura proposta neste trabalho.

25

Captulo 3 Metodologia Empregada


Neste captulo sero apresentados os mtodos adotados e os recursos utilizados para o desenvolvimento de uma infraestrutura de hardware e software para sistemas de telepresena 3D e teleoperao. A pesquisa foi conduzida de modo a criar uma infraestrutura de baixo custo, que permitisse a capacidade de visualizar, em tempo real, um participante situado em um local remoto, possivelmente distante. O vdeo transmitido do participante remoto composto somente da parte segmentada pela sua silhueta, o qual sobreposto, localmente, a um ambiente virtual. A infraestrutura completa composta por uma biblioteca de software baseada em cdigo fonte livre e uma congurao de hardware baseada na aquisio de vdeo atravs de mltiplas cmeras, alm de mdulos eletrnicos com suporte sensores e atuadores, desenvolvidos especicamente para as aes relacionadas teleoperao. A partir de constataes obtidas nos captulos anteriores, sobre os conceitos fundamentais de telepresena e teleoperao e o estudo detalhado dos trabalhos relacionados, foi possvel conceber uma infraestrutura de hardware e software, as qual foi, dentro da metodologia adotada, planejada, implementada e testada, a partir de um prottipo funcional, como descrito a seguir.

3.1

Viso geral do sistema

Analisando a Figura 3.1, a qual mostra uma viso geral do sistema, podemos perceber dois grandes blocos: Infraestrutura de hardware: Compreende a pesquisa e escolha de cmeras, interfaces de captura, cabeamento e computadores. Alm do desenvolvimento 26

de mdulos de controle e monitorao especcos para as aes relacionadas teleoperao. Infraestrutura de software: Compreende a pesquisa e desenvolvimento de uma biblioteca de software em C++ que possui os algoritmos necessrios telepresena 3D, tais como extrao de silhueta, reconstruo 3D e comunicao via rede. A biblioteca tambm possui mtodos apropriados para o suporte teleoperao, com os os mdulos de controle e monitorao desenvolvidos. Assim que montagem da infraestrutura de hardware e a implementao da biblioteca de software chegaram a um nvel de desenvolvimento na qual podiam ser efetivamente utilizadas, foi criado um prottipo funcional, implementado sobre estas infraestruturas, que serviu como prova de conceito, renamento da biblioteca desenvolvida e vericao da hiptese do trabalho. A metodologia empregada seguiu um ciclo de planejamento, implementao, teste e renamento das infraestruturas propostas, utilizando para isto o prottipo construdo.

Figura 3.1: Diviso em blocos do sistema proposto As sees seguintes visam explicar, separadamente, o planejamento da infraestrutura para telepresena 3D e da infraestrutura para teleoperao.

3.2

Infraestrutura para telepresena 3D

Para a infraestrutura de software, foi projetada e desenvolvida uma biblioteca em C++ que possui os algoritmos necessrios telepresena 3D, tais como extrao de silhueta, reconstruo de vdeo e comunicao via rede. A biblioteca tambm possui 27

mtodos apropriados para o suporte comunicao com os mdulos de controle e monitorao descritos. No Apndice A se encontra o diagrama de classes completo da biblioteca e no Apndice C a documentao das principais classes que a compem. No que concerne ao hardware, foram utilizadas quatro cmeras de vdeo conectadas uma placa de captura com capacidade para 30 quadros por segundo por cmera. Apesar disso, a biblioteca de software permite um nmero arbitrrio de cmeras. Cada cmera tem sua sequncia de vdeo processada de forma independente pelo algoritmo de extrao de silhueta. Uma vez de posse da informao da silhueta, esta compactada juntamente com o vdeo e transmitida via rede. H uma transmisso para cada cmera do sistema, sendo cada uma realizada por um socket UDP em uma porta diferente. No servidor, o vdeo de cada cmera e suas respectivas silhuetas so descompactadas e um algoritmo de reconstruo escolhido para renderizar e sobrepor ao ambiente virtual a imagem do participante. O processo completo est ilustrado na Figura 3.2.

Figura 3.2: Abordagem da telepresena 3D na soluo proposta Veremos a seguir, de forma mais detalhada, os principais componentes desta infraestrutura, e quais motivos levaram s escolhas citadas.

3.2.1

Captura de vdeo

Inicialmente foram testadas webcams e dispositivos de captura USB. Algumas cmeras e dispositivos dos principais fabricantes foram testados mas nenhum deles 28

permitia que, atravs do driver fornecido, se pudesse acessar mais de um dispositivo ao mesmo tempo. A captura de vdeo simultnea importante devido aos algoritmos a serem utilizados. Alm disso, foi utilizado apenas um computador para a captura de todas as sequncias de vdeo, a m de fazer com que o custo do sistema permanecesse baixo, o que uma das premissas do trabalho. Mesmo que se pudesse, em teoria, utilizar quatro cmeras USB diferentes, ou que um dado fabricante fornecesse um driver com capacidade de mltiplas cmeras, isto colocaria restries muito grandes no uso do sistema, dado que poucos fabricantes aderem a tal conceito, ou seja, permitem que se use mais de um mesmo dispositivo de captura idntico em um mesmo computador. Assim, o suporte a dispositivos de captura USB foi mantido em software, mas no foi utilizado como hardware de captura nos testes. As cmeras Firewire no foram utilizadas devido ao seu alto custo. Apesar disso, a biblioteca desenvolvida neste trabalho possui suporte a estas cmeras no ambiente Windows, atravs do DirectShow. A soluo encontrada foi o uso de cmeras CCDs coloridas com sada NTSC, empregadas geralmente em sistemas de circuito fechado de TV. Estas cmeras vm dotadas de mecanismo de auto ris, que foi desabilitado de forma a no interferir com as condies de iluminao durante a captura. A Figura 3.3 mostra uma das cmeras utilizadas instaladas em um trip.

Figura 3.3: Cmera CCD utilizada. Como a sada destas cmeras de vdeo composto, padro NTSC, necessria uma placa de captura para a aquisio das imagens. As placas de captura recomendadas devem possuir no mnimo quatro canais de vdeo independentes, cada um operando 29

a 30 quadros por segundo. Vrios fabricantes produzem placas com estas caractersticas e que permitem acesso ao vdeo capturado por meio do DirectShow no ambiente Windows. Outras placas de captura, baseadas em um chipset muito comum da Philips (SAA7133/35), tambm podem ser utilizadas, pois a biblioteca proposta possui suporte. A placa de captura adquirida para o prottipo 3.4 baseada no chipset da Philips e comercializada sem aplicativos prprios, somente com um kit para o desenvolvedor, o que permitiu integr-la facilmente ao sistema proposto.

Figura 3.4: Placa de captura com chipset Philips - 120fps. Este tipo de placa custa uma frao do valor das placas de captura para sistemas de vigilncia (com as mesmas caractersticas), as quais vm com software proprietrio, e que, na maioria das vezes, no permite utilizao de software de terceiros.

3.2.2

Computadores

Considerando apenas a captura de vdeo em um ambiente remoto que transmite para um ambiente local, so utilizados somente dois computadores, um em cada ambiente. Os computadores utilizados no experiemnto foram ambos baseados em uma CPU Intel Core 2 Duo, 2.2GHz com 3GBytes de memria RAM, sob o sistema operacional Windows XP Service Pack 2. No foi testada para ns de prottipo uma estrutura bidirecional. Neste caso, toda a infraestrutura de hardware descrita deveria ser duplicada. Apesar de teoricamente 30

ser possvel o uso de dois computadores, testes no prottipo (que no bidirecional) indicaram 90% de uso das CPUs. Isto ocorreu devido concorrncia de todas as threads de captura extrao de silhueta serem processadas em um nico computador.

3.3

Infraestrutura para teleoperao

No que diz respeito ao hardware para teleoperao, foram desenvolvidos mdulos de controle e monitoramento que podem ser ligados a sensores e atuadores de diversos tipos. Os mdulos de controle e monitoramento so interconectados atravs de um barramento serial RS-485, que por ser multiponto, permite a ligao de vrios mdulos, em contraste com o RS-232 que permite somente dois dispositivos conectados. O barramento RS-485, que composto por somente um par de os, ligado ao computador atravs de um conversor USB-RS485, provendo um mecanismo de comunicao simples e eciente entre os mdulos e o software sendo executado. Existem diversas possibilidades de explorao das funes de teleoperao integradas ao ambiente virtual. No caso de uma ao de controle, um comando poderia ser executado no ambiente virtual, sendo ento interpretado pelos mtodos de teleoperao da biblioteca, estes enviam os dados via USB para um conversor USB-RS485. O conversor se comunica com os mdulos presentes no ambiente executando realmente a ao desejada (a qual corresponderia a ao no ambiente virtual). Um exemplo simples deste cenrio seria o acendimento de uma lmpada em um cenrio virtual. Uma lmpada no ambiente remoto real tambm acenderia, imitando o comportamento do cenrio virtual. No caso de uma ao de monitoramento, ou mesmo alarme, o mdulo, em um ambiente remoto, envia os dados atravs da rede RS-485 para o conversor USB-RS485, que ento chega ao computador e processado pela biblioteca, esta transmite os dados via rede para o computador do operador. No operador, o dado interpretado e apresentado no ambiente virtual. Um exemplo deste cenrio seria o envio das posies de um brao robtico remoto para o operador. Sensores no brao transmitiriam as posies e enviariam para o sistema (tal como explicado anteriormente) e no cenrio virtual um modelo do virtual do brao robtico imitaria os movimentos do brao real, no local remoto. A Figura 3.5 ilustra a interligao destes componentes, conforme o exemplo anterior. Um exemplo mais simples seria a monitorao da temperatura de um ambiente remoto, sendo esta temperatura apresentada no cenrio virtual, enquanto o usurio 31

Figura 3.5: Abordagem da teleoperao na soluo proposta se move e interage virtualmente no ambiente. Este exemplo foi implementado no prottipo desenvolvido. Detalhes da implementao esto descritos no Captulo 4, onde a (Figura 4.4) ilustra a situao acima descrita. Uma aplicao interessante consistiria em monitorar a temperatura corporal do prprio participante, juntamente com outras informaes (o batimento cardaco por exemplo), transportando assim, para o ambiente virtual, no somente a imagem do participante, como tambm outros aspectos fsicos, reforando o sentimento de presena. Outra possvel aplicao seria na monitorao e controle de obras, onde o modelo virtual poderia ser alimentado com dados como temperatura, nvel de iluminao, umidade, consumo de energia, etc. A partir do ambiente virtual, poderia se controlar a iluminao, controle de acesso de pessoal, controle de mquinas, etc. Os mdulos concebidos so genricos, com entradas analgicas e digitais e sadas digitais ou comandadas com rel. Nas entradas podem ser ligados sensores de diversos tipos e as sadas podem comandar outros dispositivos de baixa tenso. H uma sada especial com um rel para acionar cargas de at 5A em 110V. Os projetos do mdulo e do conversosr USB-RS485 foram feitos no software Proteus, da Labcenter, onde possvel criar o diagrama esquemtico, simular e gerar os layouts para as placas de circuito impresso. No Apndice C encontram-se os diagramas esquemticos e os layouts eletrnicos do mdulo de controle e monitoramento e do conversor USB-RS-485, desenvolvidos especicamente para este trabalho. 32

3.4

Comentrios Finais

Este captulo apresentou os mtodos adotados e os recursos utilizados para o desenvolvimento de uma infraestrutura de hardware e software para sistemas de telepresena 3D e teleoperao. Acredita-se que os resultados iniciais obtidos neste estudo indicam que os sistemas de telepresena e teleoperao podem ser desenvolvidos e bastante aperfeioados, com um custo baixo e com uma vasta gama de aplicaes.

33

Captulo 4 Implementao da Soluo Proposta


Neste captulo so apresentados detalhes da implementao do software, composto pela biblioteca e o prottipo (programa principal) baseado na mesma. So tambm apresentados detalhes de construo do hardware, composto pelo mdulo de controle e monitoramento, e pelo conversor USB-RS485.

4.1

Classes que compem a biblioteca proposta

Inicialmente, vejamos as principais classes que compem a biblioteca proposta: Classes de captura de vdeo: A principal classe a VideoCapture, onde est representado um dispositivo de captura. Classes de janela de vdeo: A principal classe a VideoDisplay, onde est representada uma janela de visualizao de vdeo. Classe Framebuer: Classe responsvel por armazenar os quadros de forma protegida. Como os quadros so capturados, escritos no buer e lidos, isto gera um caso clssico de produtor/consumidor que apresenta condio de corrida (race condition). Por isso, h na implementao um mecanismo para proteger a leitura e escrita simultnea neste buer. Classe Calibration: Possui todo cdigo necessrio calibragem intrnseca e extrnseca das cmeras. Classe Silhouette: Armazena a silhueta e implementa o algoritmo de Horprasert et al. 34

Classe Camera: Encapsula todas as classes anteriores. Classes de renderizao: Contm os algoritmos de renderizao chamados Billboard, Sprite e VisualHull. Classe Teleoperation: Contm os mtodos para teleoperao. No Apndice A, so mostrados todos diagramas das classes descritas anteriormente. A documentao das classes geradas com o aplicativo doxygen se encontra no apndice B.

4.2

Implementao da biblioteca com suporte telepresena 3D e teleoperao

A biblioteca, desenvolvida em linguagem C++, contm vrios algoritmos necessrios implementao de um sistema de telepresena 3D e teleoperao, com os requisitos indicados no objetivo do trabalho. A biblioteca totalmente orientada a objetos e utiliza alguns padres de projeto (design patterns), a m de permitir exibilidade de uso em sistemas operacionais distintos e facilitar sua posterior atualizao para novos hardwares de captura, novos algoritmos, etc. Ela pode ser decomposta em seis blocos principais: Calibragem das cmeras; Extrao da silhueta de mltiplas cmeras; Compactao e descompactao do vdeo e da silhueta; Transmisso via rede; Reconstruo do vdeo; Mtodos para teleoperao.

4.2.1

Calibragem das cmeras

A calibragem da cmeras realizada pela classe Calibration a qual contm todo o cdigo necessrio para executar a calibragem intrnseca e extrnseca das cmeras.

35

A calibragem intrnseca corresponde aos parmetros especcos da lente e do sensor da cmera, e realizada com uma cmera por vez (Figura 4.1a). A calibragem extrnseca corresponde aos parmetros de posio e rotao da cmera no espao e realizada, simultaneamente, com todas as cmeras (Figura 4.1b)

(a) Calibragem intrnseca das cmeras

(b) Calibragem extrnseca das cmeras

Figura 4.1: Calibragem das cmeras.

36

4.2.2

Extrao da silhueta de mltiplas cmeras

O mtodo de extrao de silhueta empregado foi baseado no algoritmo Horprasert [27]. Outros mtodos foram estudados, desde a simples subtrao de fundo, a qual proporcionava excelente desempenho, mas baixa qualidade da silhueta, at mtodos com emprego de iluminao infravermelha, tal como descrito no Captulo 2. O mtodo proporcionou bons resultados, mas dependia, para isso, de instalao dedicada com o hardware de iluminao e tela difusora. O algoritmo Horprasert [27] se mostrou de boa qualidade e rpido o suciente para ser executado em quatro instncias simultneas (quatro threads) no computador responsvel pela captura, extrao da silhueta e transmisso das imagens. Por ser uma parte fundamental do processo, este algoritmo ser apresentado aqui em maiores detalhes, tal como foi implementado na classe Silhouette, a qual realiza todos os passos necessrio subtrao de fundo. A subtrao de fundo consiste em subtrair da imagem atual uma imagem de referncia, a qual adquirida e modelada a partir de um fundo esttico durante um certo perodo de tempo, conhecido como perodo de treinamento. Assim, o fundo pode ser qualquer, desde que permanea razoavelmente esttico durante o tempo de treinamento. Na sua verso mais simples, a subtrao de fundo pode partir, inicialmente, de um certo nmero de imagens capturadas (fase de treinamento), onde so calculados, para cada pixel, a mdia e o desvio padro, baseado no espao de cores RGB. O objetivo desta etapa fazer a modelagem prvia do fundo da cena, a m de que os prximos passos do algoritmo possam distinguir o que faz parte do fundo e o que faz parte da silhueta de um indivduo sobre ele. Sendo Ei a mdia e Si o desvio padro das imagens de referncia, temos: Ei = [R (i), G (i), B (i)] e Si = [R (i), G (i), B (i)], onde i representa cada pixel da imagem a ser computado. Para cada quadro Qi do vdeo, capturado em tempo real, a silhueta calculada como um valor binrio. O pixel do quadro parte da silhueta, se: (4.2) (4.1)

Qi Ei Si

(4.3)

37

Caso contrrio, o pixel no faz parte da silhueta, mas sim do fundo. No Algoritmo de Horprasert [27] so calculados, alm da mdia e do desvio padro, a distoro de brilho i e a distoro de cor i , durante a fase de treinamento (modelagem do fundo). A Figura 4.2, ilustra todos os passos necessrios para realizar a subtrao de fundo segundo este algoritmo. No nal deste processo so obtidas ento, quatro imagens de referncia: a imagem mdia, a imagem do desvio padro, a imagem da distoro de brilho e a imagem da distoro de cor. Nestas imagens, esto modeladas as caractersticas do fundo e so estas as utilizadas como referncia no processo de segmentao.

Figura 4.2: Algoritmo de Horprasert [33]. Durante a etapa de segmentao, que ocorre em tempo real, o algoritmo classica o pixel em uma das quatro categorias B, S, H, F diferentes: B (Fundo original): se a distoro de brilho e a distoro de cor do pixel so similares aos valores correspondentes na imagem de referncia; S (Fundo com baixa iluminao ou sombra): se a distoro de cor similar, mas a distoro de brilho bem menor do que aquela na imagem de referncia; 38

H (Fundo com alta iluminao): se existe uma distoro de cor similar, mas uma distoro de brilho maior do que aquela na imagem de referncia; F (Objeto em Movimento): o pixel considerado como sendo parte do objeto em movimento, se a distoro de cor diferente aos valores esperados no treinamento.

4.2.3

Compresso e descompresso do vdeo e da mscara da silhueta

Aps a extrao da silhueta, temos uma imagem do participante composta pela textura e uma mscara que corresponde regio de interesse (silhueta). A textura comprimida utilizando JPEG, o qual apresenta perdas, mas produz alta compresso para imagens. Na realidade, foi utilizada uma verso otimizada da biblioteca JPEG. Esta verso foi criada pela Intel e faz parte da IPP Library, sendo quase cinco vezes mais rpida que a biblioteca JPEG comum. A mscara comprimida utilizando a biblioteca ZLIB, a qual no apresenta perdas e produz alta compresso para os dados da mscara, que formada por muitas regies de valores binrios iguais e consecutivos.

4.2.4

Transmisso da imagem via rede IP

Para a transmisso via rede, a estrutura de um pacote foi projetada para conter a textura e mscara comprimidas, dentro do campo data, representada pelo seguinte cdigo:
1 #i f n d e f PACKET_H 2 #define PACKET_H 3 4 namespace tdp { 5 const int PAYLOAD_MAXSIZE = 1 1 7 2 ; 6 const int SERVER_UDP_PORT = 1 5 8 2 0 ; 7 8 typedef struct { 9 unsigned long f r a m e _ s i z e ; 10 unsigned long mask_size ; 11 unsigned char data ; 12 } PACKET; 13 } 14 #endif //PACKET_H

39

So enviados no incio do pacote o tamanho da textura e o tamanho da mscara, representando os tamanhos contidos no campo data. No h informao no pacote a qual cmera ele pertence, pois so criados quatro sockets, um para cada cmera, transportando de forma independente as quatro streams de vdeo. Em contraste infraestrutura de software baseada em CORBA, utilizada em [34], o presente trabalho utiliza programao em sockets UDP, por ter menor latncia nas transmisses via rede.

4.2.5

Reconstruo do vdeo

A biblioteca prov vrios tipos de renderizaes. Ao receber as sequncias de vdeo das vrias cmeras, cada uma delas possui a informao de imagem e a mscara (silhueta), ambas descompactadas. A composio formada pela imagem e pela mscara resulta em uma textura agora no formato RGBA, ou seja, com o chamado canal alfa, que representa o nvel de opacidade do pixel. Assim, esta textura pode ser sobreposta ao ambiente virtual atravs de trs tipos de renderizaes: Billboard: Cada quadro RGBA renderizado em um billboard. Neste mtodo, a classe RenderBillboard insere o vdeo do participante no ambiente virtual dentro de uma geometria plana que no se move, mesmo quando o ambiente virtual manipulado; Sprite: Cada quadro RGBA renderizado em um Sprite. Neste mtodo, a classe RenderSprite insere o vdeo do participante no ambiente virtual dentro de uma geometria plana que se move quando o ambiente virtual manipulado, permitindo uma sensao maior de integrao do vdeo sobreposto com o ambiente virtual; VisualHull: Neste mtodo, a classe RenderVisualHull usa reconstruo do vdeo baseado no algoritmo de VisualHull [10, 11], o qual proporciona os melhores resultados visuais, mas quando o ambiente virtual manipulado o algoritmo possui um desempenho inferior aos mtodos simples anteriores (menor taxa de quadros por segundo), por ser bem mais complexo, tal como mostrado nas avaliaes realizadas nas consideraes nais deste trabalho. A classe RenderVisualHull implementa a renderizao de um Visual Hull baseado em imagem, tal como descrito em [10]. Assim, ela utiliza simultaneamente as silhuetas provenientes das quatro cmeras disponveis no sistema (ou mais se existirem). 40

importante observar que, como as classes RenderBillboard e RenderSprite s podem operar com uma cmera por vez, a melhor cmera escolhida por um algoritmo dentro da classe, que calcula o menor ngulo formado por um raio que parte do observador para a origem com outros raios que partem das cmeras para a origem, ou seja, a cmera escolhida ser aquela que proporcionar menor ngulo.

4.2.6

Mtodos para teleoperao

A classe Teleoperation responsvel pela comunicao com os mdulos de controle e sensoriamento e sua integrao com os mdulos de controle e sensoriamento se d atravs da comunicao com o conversor USB-RS485, o qual emula uma porta serial no computador. Do ponto de vista da classe, a comunicao se passa como uma comunicao serial convencional, mas na realidade esta ui pela USB at o barramento RS-485, onde os mdulos esto instalados.

4.3

Prottipo para validao da biblioteca

Adicionalmente, um prottipo foi desenvolvido, tambm em linguagem C++, e totalmente orientado a objetos, o qual utiliza a biblioteca proposta. O sistema de cmeras pode ser visto previamente montado na Figura 4.3.

Figura 4.3: Infraestrutura fsica montada. As quatro cmeras so instaladas em trips e direcionadas para o centro de visuali41

zao onde se encontra um chessboard. O chessboard um marcador padro para calibrar os parmetros intrnsecos e extrnsecos das cmeras. Com os parmetros intrnsecos pode-se modelar a distncia focal e a distoro provocada pela lente das cmeras, com os parmetros extrnsecos possvel calcular a posio das cmeras e suas orientaes relativas. Uma vez instalada a infraestrutura, a calibragem s precisa ser feita uma nica vez, desde que no se mova as cmeras e no se faa ajustes na objetiva. A Figura 4.4 mostra a janela do prottipo em funcionamento. Neste ensaio o prottipo est recebendo as streams de vdeo com a subtrao de fundo j computada de outra mquina (Figura 4.5) e fazendo a composio do vdeo do usurio em um ambiente virtual. O prottipo est recebendo tambm a temperatura real do ambiente onde o usurio se encontra e integrando esta informao ao ambiente virtual.

Figura 4.4: Composio do vdeo do participante e monitoramento a temperatura

4.4

Construo do hardware para teleoperao

Os mdulos para controle e sensoriamento desenvolvidos neste trabalho so pequenos sistemas embutidos microcontrolados. Os mdulos se conectam por meio de um barramento RS485. O padro RS485 permite a interligao de diversos dispositivos no mesmo barramento, formada por apenas um par de condutores. Vrios mdulos podem ser distribudos pelo equipamento ou ambiente atravs do 42

Figura 4.5: Subtrao de fundo e transmisso via rede barramento RS485. Em qualquer ponto do barramento, um conversor USB-RS485 pode ser conectado a um computador por meio de uma porta USB. Os mdulos so genricos, com entradas analgicas e digitais e sadas digitais ou comandadas com rel. Nas entradas podem ser ligados sensores de diversos tipos e as sadas podem comandar outros disposivos de baixa tenso. H uma sada especial com um rel para acionar cargas de at 5A em 110V. No projeto do mdulo, dois circuitos integrados foram utilizados: um microcontrolador (PIC16F88), que controla os sinais dos sensores, atuadores e a comunicao, alm de outro integrado, para prover a adaptao eltrica ao barramento RS485 (DS1487). No apndice C so apresentados o diagrama esquemtico do mdulo, bem como os layouts das placas de circuito impresso. O mdulo foi montado em uma placa de aproximadamente 6 x 5cm e sua alimentao deve ser provida por uma fonte externa de 5V a 30V. O microcontrolador PIC16F88 foi utilizado em verso SMD (Surface Mount Device), a m de reduzir as dimenses do mdulo. Como este tipo de encapsulamento ca soldado de forma permanente placa, a programao do microcontrolador teve que ser feita por meio da tcnica ICSP (In Circuit Serial Programming). Portanto, alm dos conectores de alimentao, entradas e sadas, rel e barramento RS485, h um conector especial de 6 pinos para uso exclusivo de programao ICSP. Um conversor USB-RS485 tambm foi projetado e construdo especicamente para este trabalho. Dois circuitos integrados foram utilizados: USB (FT232RL) e RS485 43

(SN65HVD3082E). A interligao dos dois circuitos integrados feita de forma trivial, os dados enviados pela porta USB so encaminhados para o barramento RS485 e vice e versa. O circuito integrado FT232RL detectado pelo computador como uma interface serial virtual. Assim, tudo que a biblioteca de software deve fazer uma comunicao serial, enviando dados segundo um protocolo estipulado para obter dados dos mdulos ou control-los, conforme o caso. A alimentao do conversor provida pela prpria porta USB. No apndice C so apresentados o diagrama esquemtico do conversor, bem como os layouts das placas de circuito impresso. O controlador USB no necessita de programao (rmware), no entanto um pequeno programa em assembly foi desenvolvido para os mdulos. A programao dos mdulos foi feita atravs sofware MPLAB da Microchip e o hardware de programao (gravador) utilizado foi o Pickit 2. Os projetos do mdulo e do controlador USB foram feitos no software Proteus da Labcenter, onde possvel criar o diagrama esquemtico, simular e gerar os layouts das placas de circuito impresso.

44

Captulo 5 Consideraes Finais


5.1 Avaliaes

Com o prottipo apresentado, foi possvel obter o tempo gasto na etapa de extrao de silhueta, a qual empregou o algoritmo de Horprasert, em vrias resolues de vdeo diferentes. Foi possvel tambm obter a quantidade de quadros apresentada em um segundo (FPS - Frames per second), ao se utilizar uma sobreposio de vdeo simples ao ambiente virtual (por meio de um billboard ou sprite) ou pelo uso do algoritmo de Visual Hull (Tabelas 5.1 e 5.2).

Tabela 5.1: Diferentes resolues com uso de billboards ou sprites.

Tabela 5.2: Diferentes resolues com uso do algoritmo Visual Hull.

45

Em seguida, foram gerados trs grcos para melhor observao dos dados contidos nas tabelas, conforme apresentado nas Figuras 5.1, 5.2 e 5.3.

Figura 5.1: Extrao de silhueta: Nmero de pixels x tempo(ms).

Figura 5.2: Billboards ou sprites: Nmero de pixels x FPS.

Figura 5.3: Visual Hull: Nmero de pixels x FPS.

5.2

Concluses

Este trabalho teve como objetivo projetar e implementar uma infraestrutura de hardware e software para telepresena 3D e teleoperao utilizando hardware de baixo custo e baseada em software livre. 46

Utilizando o prottipo baseado na infraestrutura proposta, foram realizados testes que permitiram chegar s seguintes concluses: Com o uso de uma resoluo de 320 por 240 pixels, o sistema possui um desempenho de 10 FPS quando se usa uma sobreposio de vdeo simples ao ambiente virtual (por meio de um billboard ou sprite). Quando se usa um algoritmo de reconstruo do vdeo, como o Visual Hull, um desempenho prximo, em termos de FPS, s ocorre em resolues muito baixas (160 por 120 pixels). O fato se deve a concorrncia do algoritmo com as threads responsveis pela descompresso JPEG da imagem e descompresso das silhuetas de todas as cmeras recebidas; Em relao s tcnicas de compresso empregadas, foram feitos testes com a JPEG comum e a JPEG otimizada pela Intel. Esta ltima demonstrou ser muito mais rpida tanto na compresso quanto na descompresso. No foi testado nenhum nvel de MPEG, pois, dada a necessidade de sincronismo de diversas cmeras e a requisio de um buer para o processamento da MPEG, tal procedimento tornaria impraticvel o sincronismo necessrio reconstruo do vdeo em tempo real; O resultado alcanado em termos de custo de hardware e software podem ser considerados baixos. Entenda-se custo baixo como o custo prximo ao necessrio a se implantar um sistema de videoconferncia convencional; O prottipo permite o controle e sensoriamento de um ambiente real atravs dos mdulos descritos.

5.3

Contribuies

Esto apresentadas a seguir as principais contribuies deste trabalho: Substituio dos tradicionais avatares pelo vdeo 3D do participante em tempo real, aplicando algoritmos de extrao da silhueta e reconstruo do vdeo do participante; Levantamento e teste de solues de captura de mltiplas cmeras: O estudo pode servir de guia para outras aplicaes que utilizem mltiplas cmeras;

47

Investigao das tcnicas e algoritmos de extrao de silhueta e reconstruo do vdeo 3D do participante, a m de satisfazer critrios de qualidade e latncia de uma aplicao de tempo real; Investigao de hardware que possibilite uma construo de baixo custo; Integrao de funes de teleoperao dentro da mesma infraestrutura de telepresena 3D; Sugesto de uma infraestrutura de hardware aliada produo de uma biblioteca de software para telepresena 3D e teleoperao, que atenda aos requisitos dos objetivos deste trabalho, sendo disponibilizada comunidade de forma livre e de cdigo aberto.

5.4

Pesquisas Futuras

Ao nalizar este trabalho, algumas questes importantes capazes de nortear pesquisas futuras devem ser colocadas: Suporte a vrios participantes simultneos: A biblioteca desenvolvida permite a criao de um sistema de telepresena que suporte vrios participantes simultneos, renderizados no mesmo ambiente virtual. No prottipo de teste foi implementada a renderizao para apenas um participante. Processamento de udio: No foi levada em considerao a transmisso de udio do participante. A biblioteca poderia ser estendida para incorporar udio em tempo real, sincronizado com o vdeo. Comunicao sem o entre os mdulos de teleoperao: Os mdulos de controle e sensoriamento esto interligados via rede RS485. Poderiam ser desenvolvidos mdulos sem o, utilizando, por exemplo, os protocolos Zibgbee ou Bluetooth. Outros algoritmos de extrao de silhueta e reconstruo 3D: Poderiam ser implementados outros algoritmos, estendendo biblioteca proposta.

48

Referncias Bibliogrcas
[1] MAYBURY, M. T. Collaborative Virtual Environments for Analysis and Decision Support, Commun. ACM, v. 44, n. 12, pp. 5154, 2001. Disponvel em: <http://doi.acm.org/10.1145/501317.501342>. [2] CRUZ-NEIRA, C., SANDIN, D., DEFANTI, T. Surround-Screen ProjectionBased Virtual Reality: The Design and Implementation of the CAVE, Proceedings of SIGGRAPH 93, pp. 135142, 1993. [3] LALIOTI, V., HASENBRINK, F., TRAMBEREND, H., et al. Immersive Telepresence in Responsive Virtual Environments. , 1998. Disponvel em: <http://citeseer.ist.psu.edu/338014.html;http://www. cs.up.ac.za/~vali/bio/../Publications/NEC98.pdf>. [4] DE SOUZA VIEIRA, R. Prottipo de um Sistema de Monitoramento Remoto Inteligente. Tese de Mestrado, Universidade Federal de Santa Catarina, Brazil, Junho 1999. [5] GROSS, M., WRMLIN, S., NAEF, M., et al. Blue-c: A Spatially Immersive Display and 3D Video Portal for Telepresence. In: ACM Transactions on Graphics, pp. 819827, 2003. [6] HASENBRINK, F., LALIOTI, V. Towards Immersive Telepresence - SCHLOSSTAG97. , 2000. Disponvel em: <http: //citeseer.ist.psu.edu/337994.html;http://www.cs.up.ac.za/ ~vali/bio/../Publications/IPT98.pdf>. [7] NARAYAN, M., WAUGH, L., ZHANG, X., et al. Quantifying the benets of immersion for collaboration in virtual environments. In: VRST 05: Proceedings of the ACM symposium on Virtual reality software and technology, pp. 7881, New York, NY, USA, 2005. ACM Press. ISBN: 1-59593-098-1. doi: http://doi.acm.org/10.1145/1101616.1101632. [8] SHERIDAN, T. B. Telerobotics, automation, and human supervisory control. Cambridge, MA, USA, MIT Press, 1992. ISBN: 0-262-19316-7. 49

[9] PETIT, B., LESAGE, J.-D., BOYER, E., et al. Virtualization gate. In: SIGGRAPH 09: ACM SIGGRAPH 2009 Emerging Technologies, pp. 11, New York, NY, USA, 2009. ACM. ISBN: 978-1-60558-833-9. doi: http://doi.acm.org/10.1145/1597956.1597982. [10] MATUSIK, W., BUEHLER, C., RASKAR, R., et al. Image-based visual hulls. In: SIGGRAPH, pp. 369374, 2000. [11] LAURENTINI, A. The Visual Hull Concept for Silhouette-Based Image Understanding, IEEE Trans. Pattern Anal. Mach. Intell., v. 16, n. 2, pp. 150162, 1994. ISSN: 0162-8828. doi: http://dx.doi.org/10.1109/ 34.273735. [12] GIBBS, S. J., ARAPIS, C., BREITENEDER, C. TELEPORT - Towards Immersive Copresence, Multimedia Syst, v. 7, n. 3, pp. 214221, 1999. Disponvel em: <http://link.springer.de/link/service/journals/ 00530/bibs/9007003/90070214.htm>. [13] SCHREER, O., SHEPPARD, P. VIRTUE - The step towards immersive telepresence in virtual video-conference sysstems. In: Proc. of eBusiness and eWorks 2000, pp. 989995, Outubro 2000. [14] SADAGIC, A., TOWLES, H., HOLDEN, L., et al. Tele-immersion Portal: Towards an Ultimate Synthesis. , 2003. Disponvel em: <http://citeseer.ist.psu.edu/642880.html;http://www.cs. unc.edu/Research/stc/publications/Sadagic_Presence01.pdf>. [15] RAJAN, V., SUBRAMANIAN, S., KEENAN, D., et al. A Realistic Video Avatar System for Networked Virtual Environments. , 2002. Disponvel em: <http://citeseer.ist.psu.edu/529911.html;http://www. view.iao.fhg.de/IPT2002/papers/VR2002-155.pdf>. [16] RASKAR, R., WELCH, G., CUTTS, M., et al. The Oce of the Future: A Unied Approach to Image-based Modeling and Spatially Immersive Displays. In: SIGGRAPH, pp. 179188, 1998. Disponvel em: <http: //doi.acm.org/10.1145/280814.280861>. [17] GOLDBERG, K., GENTNER, S., SUTTER, C., et al. The Mercury Project: A Feasibility Study for Internet Robots, IEEE Robotics and Automation Magazine, v. 7, pp. 3539, 2000. [18] MARK, M., COX, M., BARUCH, D. J. E. F. Robotic Telescopes: An Interactive Exhibit on the World-Wide Web. In: Proc. 2nd International Conference of the World-Wide Web, pp. 150162, October 1994. 50

[19] SIMMONS, R., FERNANDEZ, J., GOODWIN, R., et al. Xavier: An Autonomous Mobile Robot on the Web. In: IEEE Robotics and Automation Magazine, pp. 4348, 1999. [20] MARTINEZ, G., KAKADIARIS, I. A., MAGRUDER, D., et al. Teleoperating ROBONAUT: A case study. In: In The British Machine Vision Conference (BVMC 2002), pp. 757766, 2002. [21] BENFORD, S., BROWN, C., REYNARD, G., et al. Shared Spaces: Transportation, Articiality, and Spatiality. In: CSCW, pp. 7786, 1996. [22] MILGRAM, P., KISHINO, F. A Taxonomy of Mixed Reality Visual Displays, IEICE Trans. Information Systems, v. E77-D, n. 12, pp. 1321 1329, dec 1994. Available at http://vered.rose.utoronto.ca/people/paul_dir/IEICE94/ieice.html. [23] HINDMARSH, J., FRASER, M., HEATH, C., et al. Object-focused interaction in collaborative virtual environments, ACM Trans. Comput.Hum. Interact, v. 7, n. 4, pp. 477509, 2000. Disponvel em: <http: //doi.acm.org/10.1145/365058.365088>. [24] MCGUIRE, M., MATUSIK, W., PFISTER, H., et al. Defocus video matting, ACM Trans. Graph., v. 24, n. 3, pp. 567576, 2005. ISSN: 0730-0301. doi: http://doi.acm.org/10.1145/1073204.1073231. Disponvel em: <http:// www.cs.brown.edu/people/morgan/DefocusVideoMatting>. [25] DAVIS, J. W., BOBICK, A. F. A Robust Human-Silhouette Extraction Technique for Interactive Virtual Environments. In: CAPTECH 98: Proceedings of the International Workshop on Modelling and Motion Capture Techniques for Virtual Environments, pp. 1225, London, UK, 1998. Springer-Verlag. ISBN: 3-540-65353-8. [26] AHN, S. C., LEE, T.-S., KIM, I.-J., et al. Computer Vision based Interactive Presentation System. In: Proceedings of Asian Conference for Computer Vision 2004, pp. 486490, 2004. [27] HORPRASERT, T., HARWOOD, D., DAVIS, L. S. A statistical approach for real-time robust background subtraction and shadow detection. In: 7th IEEE International Conference on Computer Vision, Frame Rate Workshop (ICCV 99), pp. 119, 1999. [28] RANDER, P. W., NARAYANAN, P., KANADE, T. Virtualized Reality: Constructing Time-Varying Virtual Worlds from Real World 51

Events. In: Yagel, R., Hagen, H. (Eds.), IEEE Visualization 97, pp. 277284, 1997. Disponvel em: <citeseer.ist.psu.edu/article/ rander97virtualized.html>. [29] HOKAYEM, P. F., SPONG, M. W. Bilateral teleoperation: An historical survey, Automatica, v. 42, n. 12, 2006. Disponvel em: <http://dx. doi.org/DOI:%2010.1016/j.automatica.2006.06.027>. [30] CUI, J., TOSUNOGLU, S., ROBERTS, R., et al. A review of teleoperation system control. In: Proceedings of the 2006 Florida Conference Recent Advances in Robotics (FCRAR), 2003. [31] SHERIDAN, T. B. Teleoperation, telerobotics and telepresence: A progress report. In: Control Engineering Practice, pp. 205214, 1995. [32] GOLDBERG, K., MASCHA, M., GENTNER, S., et al. Desktop Teleoperation via the World Wide Web. In: Robotics and Automation, 1995. Proceedings., 1995 IEEE International Conference on, pp. 654659, 1995. [33] TRUYENQUE, M. A. Q. Uma Aplicao de Viso Computacional que Utiliza Gestos da Mo para Interagir com o Computador. Tese de Mestrado, PUC-Rio - Pontifcia Universidade Catlica do Rio de Janeiro, Brazil, Maro 2005. [34] GROSS, M., LAMBORAY, E., NF, M., et al. The blue-c Distributed Scene Graph. In: Proceedings of IPT/EGVE 2003. ACM Press, 2003.

52

Apndice A Diagramas de Classes


A seguir so apresentados os diagramas de classe da biblioteca desenvolvida. Apesar das classes serem planejadas antes do desenvolvimento, os diagramas foram gerados aps a concluso da implementao da biblioteca, representando assim, de forma el, o desenvolvimento alcanado. Para gerar os diagramas de classe, foi utilizado o prprio ambiente de desenvolvimento do Visual Studio C++ da Microsoft. Os seguintes diagramas de classe compem a biblioteca: Classes de captura de vdeo: Onde a principal classe a VideoCapture, onde est representado um dispositivo de captura. Classes de janela de vdeo: Onde a principal classe a VideoDisplay, onde est representada uma janela de visualizao de vdeo. Classe Framebuer: Classe responsvel por armazenar os quadros de forma protegida. Classe Calibration: Possui todo cdigo necessrio calibragem intrnseca e extrnseca das cmeras. Classe Silhouette: Armazena a silhueta e implementa o algoritmo de Horprasert. Classe Camera: Encapsula todas as classes anteriores. Classes de renderizao: Contm os algoritmos de renderizao chamados Billboard, Sprite e VisualHull. Classe Teleoperation: Contm os mtodos para teleoperao. Adicionalmente, as classes do programa principal (prottipo) esto relacionadas na gura A.5. 53

Figura A.1: Classes de captura de vdeo.

54

Figura A.2: Classes de janela de vdeo.

55

Figura A.3: Classes de cmera, framebuer, calibragem e silhueta.

56

Figura A.4: Classes de renderizao e teleoperao.

57

Figura A.5: Classes do programa principal (prottipo).

58

Apndice B Listagem e documentao das principais classes da biblioteca


A documentao das classes da biblioteca foi gerada pelo software Doxygen. Os comentrios no cdigo fonte, colocados de forma estruturada, so rastreados pelo Doxygen e organizados de forma a gerar uma documentao el ao estado atual do desenvolvimento.

B.1

Classe VideoCapture

#include <VideoCapture.h>

Mtodos pblicos
virtual int start ()=0 virtual int stop ()=0 void setName (std::string name) std::string getName () void setTypeName (std::string typenam) std::string getTypeName () void setDevice (int device) int getDevice () void setInput (TypeInput input) TypeInput getInput () void setFormat (TypeFormat format) TypeFormat getFormat () 59

void setWidth (int w) int getWidth () void setHeight (int h) int getHeight () void setSize (int w, int h) void getSize (int w, int h) void setFPS (int fps) int getFPS () virtual void registerCaptureCallback (void(pCallback)(unsigned char buer, int size, void arg), void arg)

Atributos pblicos
void( _pCallback )(unsigned char buer, int size, void arg)

Atributos protegidos
std::string _name std::string _typename int _device TypeInput _input TypeFormat _format int _width int _height int _fps void _arg

B.1.1

Descrio detalhada

Classe abstrata que representa um dispositivos de captura em, possivelmente, vrias plataformas diferentes.

B.1.2
B.1.2.1

Documentao dos mtodos


int tdp::VideoCapture::getDevice () [inline]

Obtm o id do dispositivo capturado (inicia em 0). 60

B.1.2.2

TypeFormat tdp::VideoCapture::getFormat () [inline]

Retorna o formato do padro de vdeo. B.1.2.3 int tdp::VideoCapture::getFPS () [inline]

Retorna a taxa de quadros por segundo (FPS). B.1.2.4 int tdp::VideoCapture::getHeight () [inline]

Retorna a altura dos quadros capturados. B.1.2.5 TypeInput tdp::VideoCapture::getInput () [inline]

Retorna o tipo de entrada de vdeo. B.1.2.6 std::string tdp::VideoCapture::getName () [inline]

Retorna o nome do objeto de captura. B.1.2.7 void tdp::VideoCapture::getSize (int w, int h) [inline]

Obtm o tamanho dos quadros capturados. B.1.2.8 std::string tdp::VideoCapture::getTypeName () [inline]

Retorna o nome do tipo do objeto de captura. B.1.2.9 int tdp::VideoCapture::getWidth () [inline]

Retorna a largura dos quadros capturados. B.1.2.10 virtual void tdp::VideoCapture::registerCaptureCallback (void()(unsigned char buer, int size, void arg) pCallback, void arg) [inline, virtual]

Registra a callback de captura dos frames.

61

B.1.2.11

void tdp::VideoCapture::setDevice (int device) [inline]

Congura o id do dispositivo a ser capturado (inicia em 0). B.1.2.12 void tdp::VideoCapture::setFormat (TypeFormat format) [inline]

Congura o formato do padro de vdeo. B.1.2.13 void tdp::VideoCapture::setFPS (int fps) [inline]

Congura a taxa de quadros por segundo (FPS). B.1.2.14 void tdp::VideoCapture::setHeight (int h) [inline]

Congura a altura dos quadros capturados. B.1.2.15 void tdp::VideoCapture::setInput (TypeInput input) [inline]

Congura o tipo de entrada de vdeo. B.1.2.16 void tdp::VideoCapture::setName (std::string name) [inline]

Congura o nome do objeto de captura. B.1.2.17 void tdp::VideoCapture::setSize (int w, int h) [inline]

Congura o tamanho dos quadros capturados. B.1.2.18 void tdp::VideoCapture::setTypeName (std::string typenam) [inline]

Congura o nome do tipo do objeto de captura. B.1.2.19 void tdp::VideoCapture::setWidth (int w) [inline]

Congura a largura dos quadros capturados.

62

B.1.2.20

virtual int tdp::VideoCapture::start () [pure virtual]

Inicia a captura. Implementada em tdp::VideoCaptureUDP, tdp::WinVideoCaptureGeneric, and tdp::WinVideoCaptureSAA713x. B.1.2.21 virtual int tdp::VideoCapture::stop () [pure virtual]

Pra a captura. Implementada em tdp::VideoCaptureUDP, tdp::WinVideoCaptureGeneric, and tdp::WinVideoCaptureSAA713x. B.1.2.22 void( tdp::VideoCapture::_pCallback)(unsigned char buer, int size, void arg)

Callback de captura dos frames.

63

B.2

Classe VideoDisplay

#include <VideoDisplay.h>

Mtodos pblicos
VideoDisplay (void handle, int width, int height) virtual void render (unsigned char buer, int rw, int rh)=0

Atributos protegidos
void _handle int _width int _height

B.2.1

Descrio detalhada

Classe que representa a visualizao do vdeo em, possivelmente, vrias plataformas diferentes.

B.2.2
B.2.2.1

Documentao dos mtodos


virtual void tdp::VideoDisplay::render (unsigned char buer, int rw, int rh) [pure virtual]

Renderiza a janela de visualizao. Implementada em tdp::WinVideoDisplay.

64

B.3

Classe FrameBuer

#include <FrameBuffer.h>

Mtodos pblicos
FrameBuer (int size) void Write (unsigned char in) void Read (unsigned char out) void Write2 (unsigned char in, unsigned char in2) void Read2 (unsigned char out, unsigned char out2) bool isNew ()

B.3.1

Descrio detalhada

Classe que representa um buer de um quadro de vdeo. Pussui mutexes para proteger a escritas e leituras nos buers.

B.3.2
B.3.2.1

Documentao dos mtodos


bool tdp::FrameBuer::isNew ()

Verica se o buer possui dados novos. B.3.2.2 void tdp::FrameBuer::Read (unsigned char out)

L do buer. B.3.2.3 void tdp::FrameBuer::Read2 (unsigned char out, unsigned char out2)

L do buer (segunda verso). B.3.2.4 void tdp::FrameBuer::Write (unsigned char in)

Escreve no buer.

65

B.3.2.5

void tdp::FrameBuer::Write2 (unsigned char in, unsigned char in2)

Escreve no buer (segunda verso).

66

B.4

Classe Calibration

#include <Calibration.h>

Mtodos pblicos
void init () void initUndistort () void undistort (unsigned char buer) void intrinsicCalibration (bool value) void extrinsicCalibration (bool value) bool isIntrinsicCalibration () bool isExtrinsicCalibration () bool intrinsicProcessing (unsigned char buer) bool extrinsicProcessing (unsigned char buer) void raytest (unsigned char buer, osgViewer::Viewer viewer) void setWidth (int w) int getWidth () void setHeight (int h) int getHeight () void setSize (int w, int h) void getSize (int w, int h) void setIntrinsic (TypeIntrinsic in) void setIntrinsic (double fx, double fy, double cx, double cy, double k1, double k2, double p1, double p2) TypeIntrinsic getIntrinsic () void getIntrinsic (double fx, double fy, double cx, double cy, double k1, double k2, double p1, double p2) void setExtrinsic (TypeExtrinsic ex) void setExtrinsic (double px, double py, double pz, double ox, double oy, double oz) TypeExtrinsic getExtrinsic () void getExtrinsic (double px, double py, double pz, double ox, double oy, double oz)

67

B.4.1

Descrio detalhada

Classe que representa a calibragem da cmera. Possui mtodos para corrigir a distoro da lente e obter parmetros intrsecos e extrnsecos da cmera.

B.4.2
B.4.2.1

Documentao dos mtodos


void tdp::Calibration::extrinsicCalibration (bool value)

Congura para iniciar ou parar a calibrao extrnseca. B.4.2.2 bool tdp::Calibration::extrinsicProcessing (unsigned char buer)

Realiza a calibrao extrnseca. B.4.2.3 void tdp::Calibration::getExtrinsic (double px, double py, double pz, double ox, double oy, double oz) [inline]

Obtm os parmetros extrnsecos da cmera. B.4.2.4 TypeExtrinsic tdp::Calibration::getExtrinsic () [inline]

Obtm os parmetros extrnsecos da cmera. B.4.2.5 int tdp::Calibration::getHeight () [inline]

Retorna a altura dos quadros capturados. B.4.2.6 void tdp::Calibration::getIntrinsic (double fx, double fy, double cx, double cy, double k1, double k2, double p1, double p2) [inline]

Obtm os parmetros intrnsecos da cmera. B.4.2.7 TypeIntrinsic tdp::Calibration::getIntrinsic () [inline]

Obtm os parmetros intrnsecos da cmera.

68

B.4.2.8

void tdp::Calibration::getSize (int w, int h) [inline]

Obtm o tamanho dos quadros capturados. B.4.2.9 int tdp::Calibration::getWidth () [inline]

Retorna a largura dos quadros capturados. B.4.2.10 void tdp::Calibration::init ()

Inicializa os atributos da classe. B.4.2.11 void tdp::Calibration::initUndistort ()

Inicializa as matrizes de correo da distoro. B.4.2.12 void tdp::Calibration::intrinsicCalibration (bool value)

Congura para iniciar ou parar a calibrao intrnseca. B.4.2.13 bool tdp::Calibration::intrinsicProcessing (unsigned char buer)

Realiza a calibrao intrnseca. B.4.2.14 bool tdp::Calibration::isExtrinsicCalibration ()

Verica se est em calibrao extrnseca. B.4.2.15 bool tdp::Calibration::isIntrinsicCalibration ()

Verica se est em calibrao intrnseca. B.4.2.16 void tdp::Calibration::raytest (unsigned char buer, osgViewer::Viewer viewer)

Teste de projeo de um raio.

69

B.4.2.17

void tdp::Calibration::setExtrinsic (double px, double py, double pz, double ox, double oy, double oz) [inline]

Congura os parmetros extrnsecos da cmera. B.4.2.18 void tdp::Calibration::setExtrinsic (TypeExtrinsic ex) [inline]

Congura os parmetros extrnsecos da cmera. B.4.2.19 void tdp::Calibration::setHeight (int h) [inline]

Congura a altura dos quadros capturados. B.4.2.20 void tdp::Calibration::setIntrinsic (double fx, double fy, double cx, double cy, double k1, double k2, double p1, double p2) [inline]

Congura os parmetros intrnsecos da cmera. B.4.2.21 void tdp::Calibration::setIntrinsic (TypeIntrinsic in) [inline]

Congura os parmetros intrnsecos da cmera. B.4.2.22 void tdp::Calibration::setSize (int w, int h) [inline]

Congura o tamanho dos quadros capturados. B.4.2.23 void tdp::Calibration::setWidth (int w) [inline]

Congura a largura dos quadros capturados. B.4.2.24 void tdp::Calibration::undistort (unsigned char buer)

Realiza a correo da distoro.

70

B.5

Classe Silhouette

#include <Silhouette.h>

Mtodos pblicos
void setFrameSize (int w, int h) void setNumFrames (int n) bool isStackFull () void stackFrame (unsigned char fp) void preProcess () void getSilhouette (unsigned char sil, unsigned char fp) void setThresholds (double thresh_chroma, double thresh_luma, double sdev_min, double dist_chroma_min, double dist_luma_min) void setShadowColor (bool value) void enable (bool enabled) bool isLearning () void learnBackground () bool isReady ()

B.5.1

Descrio detalhada

Classe que representa uma silhueta extrada de um frame. Possui mtodos para obter estatsticas do fundo e fazer a subtrao. Atualmente implementa o algoritmo de Horprasert et al.

B.5.2
B.5.2.1

Documentao dos mtodos


void tdp::Silhouette::enable (bool enabled) [inline]

Habilita a extrao de silhueta. B.5.2.2 void tdp::Silhouette::getSilhouette (unsigned char sil, unsigned char fp)

Extrai a silhueta.

71

B.5.2.3

bool tdp::Silhouette::isLearning () [inline]

Verica se est em fase de treinamento (modelagem do fundo). B.5.2.4 bool tdp::Silhouette::isReady () [inline]

Verica se j est pronto para operar. B.5.2.5 bool tdp::Silhouette::isStackFull ()

Verica se j capturou a quantidade total de quadros. B.5.2.6 void tdp::Silhouette::learnBackground () [inline]

Congura se est ou no em fase de treinamento (modelagem do fundo). B.5.2.7 void tdp::Silhouette::preProcess ()

Realiza o pr-processamento nos quadros armazenados. B.5.2.8 void tdp::Silhouette::setFrameSize (int w, int h)

Congura o tamanho do quadro. B.5.2.9 void tdp::Silhouette::setNumFrames (int n)

Congura a quantidade de quadros. B.5.2.10 void tdp::Silhouette::setShadowColor (bool value)

Seleciona a cor do fundo, aps a extrao da silhueta. B.5.2.11 void tdp::Silhouette::setThresholds (double thresh_chroma, double thresh_luma, double sdev_min, double dist_chroma_min, double dist_luma_min)

Congura os limiares de operao.

72

B.5.2.12

void tdp::Silhouette::stackFrame (unsigned char fp)

Armazena um quadro.

73

B.6

Classe Camera

#include <Camera.h>

Mtodos pblicos
void videoCapture (VideoCapture videoCapture) VideoCapture videoCapture () void videoDisplay (VideoDisplay videoDisplay) VideoDisplay videoDisplay () void calibration (Calibration calibration) Calibration calibration () void silhouette (Silhouette silhouette) Silhouette silhouette () void frameBuer (FrameBuer frameBuer) FrameBuer frameBuer ()

B.6.1

Descrio detalhada

Classe que representa uma cmera

B.6.2

Documentao dos mtodos

Simplesmente encapsula as classes anteriores.

74

B.7

Classe RenderBillboard

#include <RenderBillboard.h>

Mtodos pblicos
RenderBillboard (osg::Group std::vector< Camera > cameras) void run () root, osgViewer::Viewer viewer,

Mtodos estticos
static void threadFunc (RenderBillboard obj)

B.7.1

Descrio detalhada

Classe que representa a renderizao em um simples billboard.

B.7.2
B.7.2.1

Documentao dos mtodos


void tdp::RenderBillboard::run ()

Inicia a renderizao. B.7.2.2 static void tdp::RenderBillboard::threadFunc (RenderBillboard obj) [static]

Mtodo esttico responsvel por executar a renderizao como uma thread.

Observao: As outras classes de renderizao no so mostradas aqui pois seguem o mesmo padro.

75

B.8

Classe Teleoperation

#include <Teleoperation.h>

Mtodos pblicos
void send (int deviceid, std::string command) void receive (int &deviceid, std::string &command) void setSerialPort (int serialport) int getSerialPort () void setDeviceId (int deviceid) int getDeviceId () void setMode (int mode) int getMode () void setTCPPort (int tcpport) int getTCPPort () void setCommand (std::string command) std::string getCommand ()

B.8.1

Descrio detalhada

Classe responsvel pela comunicao bidirecional dos sensores e atuadores. Prov tambm mtodos para extrair e congurar comandos que podem ser utilizados dentro do ambiente virtual para controlar atuadores ou obter dados dos sensores.

B.8.2
B.8.2.1

Documentao dos mtodos


std::string tdp::Teleoperation::getCommand () [inline]

Retorna o comando enviado, ou um comando recebido. B.8.2.2 int tdp::Teleoperation::getDeviceId () [inline]

Retorna a identicao (ID) do dispositivo B.8.2.3 int tdp::Teleoperation::getMode () [inline]

Retorna o modo de operao (0 - sensor, 1 - atuador). 76

B.8.2.4

int tdp::Teleoperation::getSerialPort () [inline]

Verica qual porta serial (emulada por USB) est sendo usada. B.8.2.5 int tdp::Teleoperation::getTCPPort () [inline]

Retorna a porta TCP sendo utiizada. B.8.2.6 void tdp::Teleoperation::receive (int & deviceid, std::string & command)

Recebe um comando de um dispositivo remoto. B.8.2.7 void tdp::Teleoperation::send (int deviceid, std::string command)

Envia um comando para um dispositivo remoto. B.8.2.8 void tdp::Teleoperation::setCommand (std::string command) [inline]

Congura o comando a ser enviado. B.8.2.9 void tdp::Teleoperation::setDeviceId (int deviceid) [inline]

Congura a identicao (ID) do dispositivo B.8.2.10 void tdp::Teleoperation::setMode (int mode) [inline]

Congura o modo de operao (0 - sensor, 1 - atuador). B.8.2.11 void tdp::Teleoperation::setSerialPort (int serialport) [inline]

Congura a porta serial (emulada por USB) sendo usada. B.8.2.12 void tdp::Teleoperation::setTCPPort (int tcpport) [inline]

Congura a porta TCP a ser utiizada.

77

Apndice C Diagramas Esquemticos e Layouts dos Circuitos Eletrnicos


A seguir so apresentados os diagramas esquemticos e o layout dos circuitos desenvolvidos para suporte teleoperao. Foi utilizado o software Proteus 7 da LabCenter Electronics para todas as fases do projeto, desde a diagramao, simulao, at o layout das placas de cirtuito impresso. Com o referido software tambm foi possvel gerar um modelo 3D das placas, antes do processo de fabricao. Pode se consultar, portanto, nas guras a seguir: os diagrama esquemticos, os layouts da placa, e os modelos 3D, alm de imagens reais dos circuitos montados.

78

Figura C.1: Diagrama esquemtico do Mdulo de Controle e Sensoriamento.

79

Figura C.2: Layout superior da placa do Mdulo de Controle e Sensoriamento.

Figura C.3: Layout inferior da placa do Mdulo de Controle e Sensoriamento.

Figura C.4: Layout dos componentes do Mdulo de Controle e Sensoriamento.

Figura C.5: Modelo 3D do Mdulo de Controle e Sensoriamento. 80

Figura C.6: Diagrama esquemtico do Conversor USB-RS485.

81

Figura C.7: Layout superior da placa do Conversor USB-RS485.

Figura C.8: Layout inferior da placa do Conversor USB-RS485.

Figura C.9: Layout dos componentes do Conversor USB-RS485.

Figura C.10: Modelo 3D do Conversor USB-RS485.

82

Figura C.11: Placas de circuito impresso do Mdulo e do Conversor.

Figura C.12: Mdulo de Controle e Sensoriamento montado.

Figura C.13: Conversor USB-RS485 montado.

83

Glossrio
Avatar Representao grca de um usurio em um ambiente de realidade virtual. Dependendo da tecnologia, pode variar desde um sosticado modelo 3D at uma simples imagem plana. Uma coleo de subrotinas ou mtodos utilizados no desenvolvimento de software. Bibliotecas contm cdigo e dados auxiliares, provendo servios a programas independentes, permitindo o compartilhamento e a alterao de cdigo e dados de forma modular. Um objeto grco, normalmente um retngulo, que uma vez dentro de um ambiente virtual, est sempre com sua normal voltada para o observador. uma especicao industrial para reas de redes pessoais sem o. O Bluetooth prov uma maneira de conectar e trocar informaes entre dispositivos como telefones celulares, notebooks, computadores, impressoras, cmeras digitais e diversos outros dispositivos, atravs de uma freqncia de rdio de curto alcance, globalmente no licenciada e segura. Regio de memria temporria utilizada para escrita e leitura de dados.

Biblioteca

Billboard

Bluetooth

Buer

84

Canal Alfa

Cave

CRT

O canal alfa pode ser visto como a quarta componente na denio da cor, ele dene a opacidade de um pixel em uma imagem. No espao de cores RGB comum seu acrscimo, resultando em RGBA, ou seja, Vermelho, Verde, Azul e o alfa. Sala onde so projetados grcos em trs dimenses, em suas paredes, podendo ser visualizadas por pessoas dentro da mesma, para que possam explorar e interagir com objetos, pessoas virtuais e outros modelos no mundo virtual. Acrnimo em ingls para Cathode Ray Tube que em portugus signica tubo de raios catdicos, tambm conhecido como Cinescpio. Usado em muitos monitores de computador e televisores, os CRTs so hoje substitudos pelos monitores de Plasma, LCD, LED e OLED. Parte da API do DirectX desenvolvido pela Microsoft para execuo de arquivos multimdia para a plataforma Windows. Tambm conhecido como i.Link, IEEE 1394 ou High Performance Serial Bus/HPSB, uma interface serial para computadores pessoais e aparelhos digitais de udio e vdeo que oferece comunicaes de alta velocidade e servios de dados em tempo real. Acrnimo em ingls para Frames per Second, representa o nmero de quadros de vdeo renderizados em um segundo. Um quadro de vdeo completo, onde uma imagem renderizada. Acrnimo em ingls para Head Mounted Dislay, termo utilizado para designar capacetes de realidade virtual.

Directshow

Firewire

FPS

Frame

HDM

85

IP

Acrnimo em ingls para Internet Protocol, o qual um protocolo da camada de redes de computadores. O IP o principal protocolo da Internet, responsvel por encaminhar os pacotes de dados da origem at o destino. Mtodo comumente usado para comprimir imagens. Alm de ser um mtodo de compresso, frequentemente considerado como um formato de arquivo. importante notar que o JPEG um mtodo com perdas na compresso, o que remove informaes da imagem original, mas pode reduzir bastante o tamanho do arquivo. Acrnimo em ingls para Liquid Crystal Display que em portugus signica Display de Cristal Lquido. O LCD um painel no, usado para exibir informaes por via eletrnica, como texto, imagens e vdeos. Seu uso inclui monitores para computadores, televisores, painis de instrumentos e outros dispositivos. Compe um conjunto de mtodos usados para compresso de udio e vdeo. Representa tambm o nome de um arquivo digital contendo vdeo e udio digitais codicados seguindo determinados padres de compresso e armazenados em formatos especcos (Ex.: MPEG 1, MPEG 2, etc).

JPEG/JPG

LCD

MPEG

86

Pixel

o menor elemento num dispositivo de exibio (como por exemplo um monitor), ao qual possivel atribuir-se uma cor. De uma forma mais simples, um pixel o menor ponto que forma uma imagem digital, sendo que o conjunto de milhares de pixels formam a imagem inteira. Porta Serial Tipo de conexo bidirecional, atravs do qual os bits uem um por vez, em srie. Os computadores pessoais antigos possuam normalmente duas portas seriais, sendo designadas COM1 e COM2. Hoje ainda se encontram alguns modelos com pelo menos uma porta serial, sendo estas substitudas pelas portas USB. RGB RGBA Sistema de cores aditivas formado pelo Vermelho (Red), Verde (Green) e Azul (Blue). Sistema de cores aditivas formado pelo Vermelho (Red), Verde (Green), Alfa (Alpha). Veja Canal Alfa. Tambm conhecido por EIA RS-232C ou V.24, um padro para troca serial de dados binrios entre um DTE (terminal de dados, de Data Terminal equipment) e um DCE (comunicador de dados, de Data Communication equipment). comumente usado nas portas seriais dos PCs. Tambm conhecido por TIA/EIA-485, um padro para troca serial de dados binrios, cuja transmisso feita em linhas balanceadas. Ao contrrio do RS-232, permite mais de dois dispositivos em uma mesma linha, sendo portanto um sistema multiponto.

RS-232

RS-485

87

Socket

Sprite

Stream

Um soquete pode ser usado em ligaes m a m em redes de computadores para criar um elo bidirecional de comunicao entre dois programas. A interface padronizada de soquetes surgiu originalmente no sistema operacional Unix BSD (Berkeley Software Distribution); portanto, eles so muitas vezes chamados de Berkeley Sockets. normalmente uma imagem bidimensional que sobreposta a uma cena j construda. Difere de um Billboard por no ter seu plano normal necessariamente voltado sempre para o observador. Veja Billboard. Pode ser denido como um uxo de dados em um sistema computacional, sendo aplicado para uxos de dados em relao a arquivos em disco ou mesmo em uxos de udio e vdeo em redes de computadores. Acrnimo em ingls para Transmission Control Protocol, o qual um protocolo da camada de transporte de redes de computadores. O TCP um protocolo orientado conexo, nele, h garantia de entrega dos pacotes enviados. Pode ser traduzido como linha de execuo, uma forma de um processo computacional dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente. Acrnimo em ingls para User Datagram Protocol, o qual um protocolo da camada de transporte de redes de computadores. O UDP um protocolo no orientado conexo, nele, no h qualquer tipo de garantia de entrega dos pacotes enviados.

TCP

Thread

UDP

88

USB

Acrnimo em ingls para Universal Serial Bus, um tipo de conexo serial que permite a conexo e desconexo de perifricos sem a necessidade de desligar o computador. O padro USB permite a conexo de at 127 perifricos, com taxa de transmisso superior porta serial convencional. Corresponde verso em trs dimenses do termo Pixel. a menor unidade grca de volume. O termo ZigBee designa um conjunto de especicaes para a comunicao sem o entre dispositivos eletrnicos, com nfase na baixa potncia de operao, na baixa taxa de transmisso de dados e no baixo custo de implantao. uma biblioteca multiplataforma de compresso de dados, utilizada principalmente em um programa de compresso chamado gzip. importante notar que o mtodo de compresso usado na ZLIB no produz perdas, mantendo elmente as informaes do arquivo original.

Voxel

Zigbee

ZLIB

89

Das könnte Ihnen auch gefallen