TELEPRESENÇA

102
COPPE/UFRJ INFRAESTRUTURA PARA TELEPRESENÇA 3D E TELEOPERAÇÃO André Sarmento Barbosa Tese de Doutorado apresentada ao Programa de Pós-graduação em Enge nharia Ci vi l, COPPE, da Univer si dade Federal do Rio de Janei ro, co mo parte do s re qu isitos necessários à obtenção do título de Doutor em Engenharia Civil. Orientador: Luiz Landau Rio de Janeiro Setembro de 2009

Transcript of TELEPRESENÇA

Page 1: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 1/102

COPPE/UFRJ

INFRAESTRUTURA PARA TELEPRESENÇA 3D E TELEOPERAÇÃO

André Sarmento Barbosa

Tese de Doutorado apresentada ao Programa

de Pós-graduação em Engenharia Civil,

COPPE, da Universidade Federal do Rio

de Janeiro, como parte dos requisitos

necessários à obtenção do título de Doutorem Engenharia Civil.

Orientador: Luiz Landau

Rio de Janeiro

Setembro de 2009

Page 2: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 2/102

INFRAESTRUTURA PARA TELEPRESENÇA 3D E TELEOPERAÇÃO

André Sarmento Barbosa

TESE SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO LUIZ

COIMBRA DE PÓS-GRADUAÇÃO E PESQUISA DE ENGENHARIA (COPPE)

DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS

REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE DOUTOR

EM CIÊNCIAS 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 Knörich Zuffo, D.Sc.

RIO DE JANEIRO, RJ – BRASIL

SETEMBRO DE 2009

Page 3: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 3/102

Barbosa, André Sarmento

Infraestrutura para Telepresença 3D e

Teleoperação/André Sarmento Barbosa. – Rio de

Janeiro: UFRJ/COPPE, 2009.

XIII, 89 p.: il.; 29, 7cm.

Orientador: Luiz Landau

Tese (doutorado) – UFRJ/COPPE/Programa deEngenharia Civil, 2009.

Referências Bibliográficas: p. 49 – 52.

1. telepresença. 2. teleoperação. 3. telerobótica. I.

Landau, Luiz. II. Universidade Federal do Rio de Janeiro,

COPPE, Programa de Engenharia Civil. III. Título.

iii

Page 4: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 4/102

À minha esposa Paula e ao meu 

 filho Thiago.

iv

Page 5: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 5/102

Agradecimentos

Agradeço à minha família, pelo apoio e compreensão pelas horas passa-

das em frente ao computador e na bancada às voltas com fios e circuitos...

Agradeço ao Programa de Engenharia Civil da COPPE/UFRJ, ao Labo-ratório LAMCE, ao Grupo de Realidade Virtual Aplicada (GRVa) e a

todos professores, funcionários e colegas que acompanharam essa jornada.

Agradeço a tudo que possa representar Deus na Natureza e agradeço pelo simples

fato de estarmos vivos e podermos desfrutar, contribuir e retribuir de alguma forma

com tudo e todos.

v

Page 6: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 6/102

Resumo da Tese apresentada à COPPE/UFRJ como parte dos requisitos necessários

para a obtenção do grau de Doutor em Ciências (D.Sc.)

INFRAESTRUTURA PARA TELEPRESENÇA 3D E TELEOPERAÇÃO

André Sarmento Barbosa

Setembro/2009

Orientador: Luiz Landau

Programa: Engenharia Civil

Esta tese apresenta uma infraestrutura de hardware e software para sistemas de

telepresença 3D e teleoperação. Esta infraestrutura proporciona a um participante

a capacidade de visualizar, em tempo real, outro participante situado em um lo-

cal remoto, possivelmente distante. O vídeo 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

código fonte livre e uma configuração de hardware baseada na aquisição de vídeoatravés de múltiplas câmeras, além de módulos eletrônicos com suporte a sensores e

atuadores, desenvolvidos especificamente para as ações relacionadas à teleoperação.

O trabalho apresenta, ao seu final, um protótipo construído com a infraestrutura

proposta, onde são realizadas avaliações de desempenho dos algoritmos escolhidos e

testes com os módulos eletrônicos desenvolvidos.

vi

Page 7: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 7/102

Abstract of Thesis presented to COPPE/UFRJ as a partial fulfillment 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 configuration based on the video capture using multiple cameras.

Moreover, electronic modules with support to the sensors and actuators had beendeveloped specifically 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

Page 8: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 8/102

Sumário

Lista de Figuras xi

Lista de Tabelas xiii

1 Introdução 1

1.1 Motivações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Hipótese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Relevância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3.1 Trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Fundamentação Teórica 9

2.1 Telepresença . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Videoconferência . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1.2 Ambientes Virtuais Colaborativos . . . . . . . . . . . . . . . . 10

2.1.3 Sistemas de Telepresença Comerciais . . . . . . . . . . . . . . 132.1.4 Telepresença 3D . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2 Teleoperação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.1 Áreas de aplicação da teleoperação . . . . . . . . . . . . . . . 21

2.2.2 A teleoperação via Internet . . . . . . . . . . . . . . . . . . . 23

2.2.3 Eletrônica para suporte à teleoperação . . . . . . . . . . . . . 24

3 Metodologia Empregada 263.1 Visão geral do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 26

viii

Page 9: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 9/102

3.2 Infraestrutura para telepresença 3D . . . . . . . . . . . . . . . . . . . 27

3.2.1 Captura de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2.2 Computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3 Infraestrutura para teleoperação . . . . . . . . . . . . . . . . . . . . . 31

3.4 Comentários Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4 Implementação da Solução Proposta 34

4.1 Classes que compõem a biblioteca proposta . . . . . . . . . . . . . . . 34

4.2 Implementação da biblioteca com suporte à telepresença 3D e teleo-

peração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2.1 Calibragem das câmeras . . . . . . . . . . . . . . . . . . . . . 35

4.2.2 Extração da silhueta de múltiplas câmeras . . . . . . . . . . . 37

4.2.3 Compressão e descompressão do vídeo e da máscara da silhueta 39

4.2.4 Transmissão da imagem via rede IP . . . . . . . . . . . . . . . 39

4.2.5 Reconstrução do vídeo . . . . . . . . . . . . . . . . . . . . . . 40

4.2.6 Métodos para teleoperação . . . . . . . . . . . . . . . . . . . . 41

4.3 Protótipo para validação da biblioteca . . . . . . . . . . . . . . . . . 414.4 Construção do hardware para teleoperação . . . . . . . . . . . . . . . 42

5 Considerações Finais 45

5.1 Avaliações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.2 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.3 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.4 Pesquisas Futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Referências Bibliográficas 49

A Diagramas de Classes 53

B Listagem e documentação das principais classes da biblioteca 59

B.1 Classe VideoCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

B.1.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 60

ix

Page 10: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 10/102

B.1.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 60

B.2 Classe VideoDisplay . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

B.2.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 64

B.2.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 64

B.3 Classe FrameBuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

B.3.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 65

B.3.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 65

B.4 Classe Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

B.4.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 68

B.4.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 68B.5 Classe Silhouette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

B.5.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 71

B.5.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 71

B.6 Classe Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

B.6.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 74

B.6.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 74

B.7 Classe RenderBillboard . . . . . . . . . . . . . . . . . . . . . . . . . . 75

B.7.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 75

B.7.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 75

B.8 Classe Teleoperation . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

B.8.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 76

B.8.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 76

C Diagramas Esquemáticos e Layouts dos Circuitos Eletrônicos 78

Glossário 89

x

Page 11: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 11/102

Lista de Figuras

2.1 Videoconferência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2 Uma classificação dos espaços compartilhados de acordo com as di-

mensões de transporte e artificialidade . . . . . . . . . . . . . . . . . 13

2.3 Sistema de telepresença comercial . . . . . . . . . . . . . . . . . . . . 14

2.4 VIRTUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5 TELEPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.6 Visual Hull  baseado em imagem . . . . . . . . . . . . . . . . . . . . . 17

2.7 Painel com aplicação de luz infravermelha . . . . . . . . . . . . . . . 18

2.8 Composição do vídeo ao ambiente virtual . . . . . . . . . . . . . . . . 20

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

2.10 Teleoperação via Internet . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.11 Modelo abstrato de um módulo de controle e monitoramento . . . . . 25

3.1 Divisão em blocos do sistema proposto . . . . . . . . . . . . . . . . . 27

3.2 Abordagem da telepresença 3D na solução proposta . . . . . . . . . . 28

3.3 Câmera CCD utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4 Placa de captura com chipset Philips - 120fps . . . . . . . . . . . . . 30

3.5 Abordagem da teleoperação na solução proposta . . . . . . . . . . . . 32

4.1 Calibragem das câmeras . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2 Algoritmo de Horprasert . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.3 Infraestrutura física montada . . . . . . . . . . . . . . . . . . . . . . 41

4.4 Composição do vídeo do participante e monitoramento a temperatura 42

4.5 Subtração de fundo e transmissão via rede . . . . . . . . . . . . . . . 43

xi

Page 12: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 12/102

5.1 Extração de silhueta: Número de pixels x tempo(ms) . . . . . . . . . 46

5.2 Billboards ou sprites: Número de pixels x FPS . . . . . . . . . . . . . 46

5.3 Visual Hull : Número de pixels x FPS . . . . . . . . . . . . . . . . . . 46

A.1 Classes de captura de vídeo . . . . . . . . . . . . . . . . . . . . . . . 54

A.2 Classes de janela de vídeo . . . . . . . . . . . . . . . . . . . . . . . . 55

A.3 Classes de câmera, framebuffer, calibragem e silhueta . . . . . . . . . 56

A.4 Classes de renderização e teleoperação . . . . . . . . . . . . . . . . . 57

A.5 Classes do programa principal (protótipo) . . . . . . . . . . . . . . . 58

C.1 Diagrama esquemático do Módulo de Controle e Sensoriamento . . . 79

C.2 Layout  superior da placa do Módulo de Controle e Sensoriamento . . 80

C.3 Layout  inferior da placa do Módulo de Controle e Sensoriamento . . . 80

C.4 Layout  dos componentes do Módulo de Controle e Sensoriamento . . 80

C.5 Modelo 3D do Módulo de Controle e Sensoriamento . . . . . . . . . . 80

C.6 Diagrama esquemático 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 Módulo e do Conversor . . . . . . . . . 83

C.12 Módulo de Controle e Sensoriamento montado . . . . . . . . . . . . . 83

C.13 Conversor USB-RS485 montado . . . . . . . . . . . . . . . . . . . . . 83

xii

Page 13: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 13/102

Lista de Tabelas

5.1 Diferentes resoluções com uso de billboards ou sprites . . . . . . . . . 45

5.2 Diferentes resoluções com uso do algoritmo Visual Hull  . . . . . . . . 45

xiii

Page 14: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 14/102

Capítulo 1

Introdução

A evolução dos sistemas de telecomunicação e a globalização mudaram radicalmentea forma como as pessoas trabalham e se comunicam. A telefonia, a Internet e as

videoconferências não são mais suficientes para atender certas demandas. Assim,

muita pesquisa tem sido conduzida em busca de novas formas de comunicação e

colaboração de grupos geograficamente distribuídos.

A utilização da computação gráfica e da visão computacional tem resultado em

avanços expressivos neste sentido, tais como os ambientes virtuais colaborativos e a

telepresença.

Os ambientes virtuais colaborativos [1] permitem que usuários trabalhem de forma

colaborativa em favor de um determinado objetivo, enquanto se beneficiam da flexi-

bilidade e da enorme gama de possibilidades dos ambientes virtuais. Estes ambientes

são compartilhados pelos participantes através de uma rede de computadores, per-

mitindo que grupos possam interagir no ambiente virtual mesmo que fisicamente

distantes uns dos outros.

Os ambientes virtuais colaborativos podem ser construídos a partir de ambien-

tes de realidade virtual que possuem graus de imersão que variam desde os não-

imersivos (através de monitores CRT ou LCD convencionais) aos imersivos, como a

CAVETM[2].

A telepresença permite a visualização da imagem dos participantes como se estes es-

tivessem fisicamente presentes, criando um ambiente onde participantes remotos não

apenas se encontram face a face, como também podem, possivelmente, compartilhar

um mesmo espaço virtual, executando tarefas neste espaço [3].

Além da imagem, outras informações poderiam ser transferidas entre o participante

e o ambiente remoto, tais como áudio e tarefas de controle e monitoração. Assim,funções de teleoperação podem ser integradas à telepresença.

1

Page 15: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 15/102

A teleoperação envolve o controle de equipamentos à distância, permitindo o envio

de comandos de um operador para o equipamento controlado, bem como retorno

de informações do equipamento para o operador. Este retorno, pode ser fruto de

uma resposta de uma ação de controle ou mesmo a monitoração de características

do equipamento.

Podemos perceber que há uma relação entre todos os conceitos discutidos anteri-

ormente, na qual a telepresença pode ser vista como uma tecnologia que estende a

capacidade das videoconferências e dos ambientes virtuais colaborativos, acrescen-

tando a estes a capacidade de incorporar, em tempo real, o vídeo de cada partici-

pante, além de permitir também, a capacidade de teleoperação.

A imagem transmitida do participante remoto, pode ser composta somente pela

parte segmentada pela sua silhueta, a qual é sobreposta, localmente, ao ambiente

virtual em três dimensões, dando origem ao termo telepresença 3D ou teleimersão.

Aliada à realidade virtual, a telepresença pode levar o homem a mundos hoje apenas

imaginários, criando situações novas, completamente diferentes das que estamos

acostumados a experimentar [4].

Várias soluções têm sido propostas neste sentido; notáveis contribuições e uma re-

visão de trabalhos já publicados podem ser encontrados em [5] e [6].

O presente trabalho propõe uma infraestrutura de hardware e software para telepre-

sença 3D e explora sua integração com a teleoperação. Neste sentido, os participan-tes do sistema de telepresença podem exercer operações de controle e monitoramento

à distância, podendo ainda enviar e receber estímulos físicos, tais como o aciona-

mento de um dispositivo, o monitoramento da temperatura corporal ou ambiente,

ou quaisquer ações que possam ser capturadas e transmitidas via rede.

O uso em conjunto da telepresença e da teleoperação pode ser aplicado em diversos

ambientes e campos de pesquisa, como por exemplo: telerobótica, salas de cirurgia,

plataformas offshore, exploração submarina, áreas de risco, etc.

1.1 Motivações

Os atuais sistemas de telepresença são empregados, em sua maioria, como substi-

tuição à videoconferência convencional. Algumas aplicações incluem simulações e

treinamentos, mas estas realizadas estritamente no contexto do ambiente virtual.

Além disso, estes sistemas possuem, em geral, infraestrutura muito cara, utilizando

geralmente hardware de última geração.Uma importante observação foi a possibilidade de integração entre a telepresença

2

Page 16: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 16/102

3D e a teleoperação dentro de uma mesma infraestrutura, permitindo que, além

da transmissão do vídeo dos participantes, fosse feita a troca de dados e estímulos

físicos entre os ambientes, possibilitando o controle e monitoramento de dispositivos

remotamente.

Sendo assim, as motivações foram:

• Proporcionar meios de se desenvolver e utilizar aplicativos de telepresença com

baixo custo, baseando-se em software livre e infraestrutura menos complexa;

• Percepção da possibilidade de integração anteriormente descrita, orientando

o uso da telepresença 3D integrada à teleoperação, e não somente como uma

substituição à videoconferência.

1.2 Objetivo

Dentro do exposto anteriormente, o objetivo deste estudo é projetar e implementar

uma infraestrutura de hardware e software para telepresença 3D e teleoperação 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 implementação de um protótipo de testes, onde seja possível avaliar os algo-

ritmos e os componentes de hardware escolhidos durante o processo.

1.2.1 Hipótese

Verificar a possibilidade de que os algoritmos de extração de silhueta e renderiza-

ção escolhidos possuam desempenho satisfatório para uma aplicação de tempo real,

utilizando a infraestrutura de hardware e software proposta.

1.3 Relevância

Neste trabalho, o uso da telepresença é relevante no sentido de explorar a aquisição

de vídeo através de múltiplas câmeras, permitindo a reconstrução e composição do

vídeo em 3D e a integração com a teleoperação dentro da mesma infraestrutura,

com o objetivo de controle e monitoramento de dispositivos remotos.

A integração com a teleoperação, proporciona a comunicação direta com sensores

e atuadores com um ambiente real. Isto permite que participantes possam realizar

3

Page 17: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 17/102

tarefas de controle e monitoramento de dispositivos em ambientes sem estar fisica-

mente presentes nos mesmos, podendo, possivelmente, colaborar nestas ações com

outras pessoas, face a face, como se estivessem no mesmo local.

Outros aspectos relevantes se referem ao custo e flexibilidade. A proposta em ques-

tão pretende ser flexível a ponto de se poder utilizar infraestruturas menos comple-

xas e hardware de baixo custo, o que não é normalmente encontrado em sistemas

comerciais de telepresença.

1.3.1 Trabalhos relacionados

Os benefícios dos ambientes virtuais colaborativos e dos sistemas de telepresença,

como discutidos em [7], são empiricamente comprovados em várias tarefas colabora-

tivas. Notavelmente, nos últimos anos, várias empresas de grande porte têm lançado

sistemas de telepresença no mercado. Além disso, redes de televisão têm explorado

o uso da telepresença em entrevistas e reportagens.

Sistemas de teleoperação têm sido empregados na exploração submarina e espacial,

na medicina, na limpeza de lixo tóxico, em situações de resgate e desarme de bombas

e explosivos. Em [8], pode ser encontrada uma extensiva revisão da literatura em

teleoperação e telerobótica.

Os seguintes trabalhos podem ser considerados como estado da arte em sistemas detelepresença que integram captura e projeção simultânea de imagem em ambientes

virtuais (telepresença 3D):

• Virtualization gate [9]: Utiliza múltiplas câmeras para captura da imagem,

simulação física e um capacete de realidade virtual para proporcionar imersão

completa do participante e sentimento de presença, em mundos virtuais. A

geometria reconstruída do corpo e sobreposta ao ambiente virtual permite ao

sistema computar colisão de qualquer parte do corpo com outros objetos no

ambiente sintético;

• Blue-c [5]: Um ambiente completo de projeção e aquisição de vídeo 3D do

participante, para design virtual e colaboração. O sistema combina o uso de

múltiplas câmeras de vídeo e uma avançada tecnologia de projeção 3D em uma

CAVETM;

• Image Based Visual Hulls [10]: Utiliza o conceito de Visual Hull  [11]

baseado em imagem para reconstruir o vídeo em 3D do participante capturado

através de múltiplas câmeras. Com a técnica descrita no artigo, somente aimagem observada do ponto de vista de interesse é renderizada e não o volume

4

Page 18: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 18/102

em três dimensões do vídeo completo. Assim, foi alcançado um desempenho

muito alto, principalmente quando o ponto de vista se mantém fixo;

• TELEPORT [12]: Um sistema de telepresença com sobreposição de vídeo

2D dos participantes ao ambiente virtual, o qual é especificamente construídopara estender em proporção e textura o ambiente real;

• VIRTUE [13]: Um sistema de telepresença 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]: Utilizaum modelo pré-adquirido da cabeça do participante para ser texturizada com

a sua imagem em tempo real;

• The Office of the Future [16]: Uma proposta baseada na unificação de

técnicas de computação gráfica e visão computacional para extrair informações

de objetos e pessoas no ambiente, incluindo paredes, móveis, etc. A proposta

permite renderizar imagens das superfícies, projetar imagens nas superfícies ou

interpretar mudanças das superfícies, proporcionado aplicações de realidade

aumentada, telepresença, etc.

Nos últimos anos, empresas de grande porte têm lançado sistemas comerciais de

telepresença. Além disso, redes de televisão empregaram a tecnologia em entrevistas

e reportagens. Podemos destacar:

• Cisco TelePresence: Lançado em 2006, o TelePresence é um produto da

empresa Cisco Systems, responsável 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 bilhões de dólares em inves-

timentos em pesquisas. São utilizadas salas especiais com três grandes telas de

plasma de 65 polegadas e telefones IP, custando em média, U$ 300.000,00 cada

sala. A Cisco fornece a sala inteira, até a mobília, sendo ainda são necessários,

no mínimo, enlaces de 6Mbps dedicados às salas;

• Teliris, Polycom e outras: Outras empresas de menor porte, que, apesar de

terem produtos disponíveis antes de 2006, só conseguiram atingir o mercado

após o sucesso alcançado pela Cisco, seguindo o modelo adotado por esta

empresa;

5

Page 19: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 19/102

• CNN Telepresence Hologram : Em 2008, a rede CNN fez uso da tele-

presença 3D na cobertura das eleições presidenciais dos Estado Unidos. O

termo holograma na realidade não foi empregado corretamente, visto que o

vídeo em 3D capturado de uma repórter, em um local remoto, foi composto

sobre o vídeo assistido pelos telespectadores e não projetado no estúdio localcomo um holograma. A captura de vídeo no estúdio remoto foi feita por 35

câmeras de alta definição e processada por 20 computadores para reconstruir

localmente o vídeo da repórter. Assim, foi possível combinar o vídeo da re-

pórter em 3D, com o vídeo do estúdio local e manipular o resultado em três

dimensões, criando a ilusão de um holograma para os telespectadores.

• Holograma da Rede Globo: Em agosto de 2009, a Rede Globo fez uso da

telepresença, mas sem nenhuma infraestrutura de captura em três dimensões

com múltiplas câmeras, a qual foi caracterizada por muitos, de forma errônea,

como holograma. O efeito alcançado foi o uso da transmissão remota do vídeo,

então projetado no estúdio local sobre uma película metálica muito fina, pra-

ticamente transparente, denominada foil , que provoca a sensação da projeção

pairar no espaço à frente, criando a ilusão de um holograma.

Em geral, as aplicações citadas são voltadas para uma substituição à videoconferên-

cia ou para o trabalho em um ambiente virtual colaborativo, com interações somente

dentro deste, como por exemplo: performances artísticas, simulações, treinamentose outras [5].

A seguir é apresentada também uma revisão bibliográfica de trabalhos pioneiros

que envolvem sistemas de teleoperação, citando inicialmente os casos quando esta

é empregada via Internet, e em seguida, projetos de grande destaque no cenário

científico mundial.

• Mercury Project  [17]: Lançado em 1994, foi o primeiro sistema a permitir

que usuários pudessem visualizar e alterar o mundo real, através da Web. OMercury Project  consiste de um braço robótico industrial com uma câmera e

um sistema pneumático, permitindo aos usuários escolher e manipular vários

objetos no espaço de trabalho alcançado pelo braço robótico;

• Bradford Robotic Telescope [18]: Protótipo de um telescópio robótico

de baixo custo, desenvolvido na Universidade de Bradford na Inglaterra, onde

estudantes, amadores e profissionais podem acessá-lo via Internet. A interação

com o telescópio é feita por meio de uma interface amigável, via Web, onde

tarefas são submetidas previamente para serem processadas, ou remotamente,

para eventos em tempo real;

6

Page 20: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 20/102

• Xavier  [19]: Descreve o primeiro robô móvel e autônomo controlado pela

Web, o robô pode aceitar comandos para se locomover para diferentes salas

no âmbito de um prédio, transmitindo imagens durante o percurso;

• Jason : Jason foi um veículo subaquático operado remotamente, responsá-vel por localizar o navio Titanic. O veículo foi desenvolvido no Woods Hole

Oceanographic Institute, nos EUA, fazendo uso de sofisticadas técnicas de con-

trole supervisório, compensando as pressões exercidas pela água durante suas

manobras;

• Exploração de Marte pela NASA: A exploração de Marte se iniciou com

as sondas Viking 1 e Viking 2, lançadas em 1975, seguida pela missão Mars

Pathfinder , lançada em meados de 1996, a qual contava com o robô explorador

Sojourner . O robô passeou pela superfície de Marte recolhendo informaçõesdurante mais de um mês terrestre, no total foram obtidas 16.500 fotos a partir

do módulo de pouso e 550 imagens do Sojourner .

Iniciando em 2003, a missão Mars Exploration Rovers é um esforço a longo

prazo para a exploração robótica do planeta. Esta missão envolveu inicial-

mente dois robôs teleoperados, Spirit  e Opportunity , com o objetivo de explo-

rar a superfície do planeta.

Em um capítulo mais recente na exploração, a sonda Phoenix , lançada de Cabo

Canaveral em 4 de agosto de 2007, tem o objetivo de pesquisar por moléculasde água na região do pólo norte do planeta, onde pousou em 25 de maio de

2008;

• Robonaut  [20]: O Robonaut é um projeto em conjunto entre a DARPA (Agên-

cia de Projeto e Pesquisa Avançada de Defesa dos EUA) e a NASA. O objetivo

do projeto é criar um robô humanóide capaz de operar de forma equivalente

aos humanos durante atividades extraveiculares, no espaço.

A aplicação inicial do Robonaut  seria como atuador final no braço robóticoda Estação Espacial Internacional, onde ele poderia servir como alternativa

às atividades humanas extraveiculares, para manutenção externa da estação.

Outras aplicações propõem o seu uso para teleoperação em superfícies pla-

netárias. Apesar de que nem toda a liberdade de movimento e sensibilidade

seja igual a dos humanos, a mão do robô possui quatorze graus de liberdade e

utiliza sensores de toque nas pontas dos dedos.

7

Page 21: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 21/102

1.4 Organização do trabalho

O trabalho está dividido em cinco capítulos.

Neste primeiro capítulo, foram apresentados conceitos preliminares sobre os campos

de pesquisa abordados, motivações, objetivo, hipótese, relevância e organização do

trabalho.

O capítulo 2 descreve os fundamentos teóricos relacionados à telepresença, desde a

videoconferência até a telepresença 3D, bem como os fundamentos teóricos relacio-

nados à teleoperação.

O capítulo 3 apresenta a metodologia empregada no desenvolvimento da tese.

No capítulo 4, a implementação da infraestrutura de hardware e software é apresen-

tada, bem como um protótipo construído sobre esta infraestrutura, onde foram feitasas avaliações dos algoritmos e os testes com os componentes de hardware escolhidos.

As considerações finais são comentadas no capítulo 5, onde se encontram as avalia-

ções, conclusões, contribuições e sugestões de pesquisas futuras.

8

Page 22: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 22/102

Capítulo 2

Fundamentação Teórica

Este capítulo apresenta os conceitos teóricos necessários ao desenvolvimento destetrabalho, tendo como principal objetivo facilitar a compreensão dos conceitos de

telepresença e teleoperação, bem como a correlação entre os mesmos.

Nas seções que seguem, sobre telepresença, e posteriormente, teleoperação, são anali-

sadas as tecnologias similares que as antecederam e os requisitos técnicos necessários

para dar suporte ao estado atual das mesmas.

É importante frisar que, apesar dos conceitos serem abordados aqui de forma sepa-

rada, a teleoperação pode ser considerada como parte da telepresença.

A teleoperação envolve o controle de equipamentos à distância, permitindo o envio

de comandos de um operador para o equipamento controlado, bem como retorno

de informações do equipamento para o operador. Este retorno, pode ser fruto de

uma resposta de uma ação de controle ou mesmo a monitoração de características

do equipamento.

A telepresença proporciona a sensação de se estar em um ambiente distante do ope-

rador, retornando informações do ambiente remoto, normalmente através do vídeo

real ou de um ambiente virtual. Além do vídeo, outras informações do ambientepoderiam ser transferidas entre o operador e o ambiente remoto, tais como áudio

e tarefas de controle e monitoração, ficando claro que a teleoperação pode estar

integrada à telepresença.

2.1 Telepresença

O termo telepresença refere-se a um conjunto de tecnologias que torna possível um

indivíduo sentir como se estivesse presente em uma outra localidade que não a suareal, provendo possivelmente, da mesma forma, a outros participantes, a sensação

9

Page 23: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 23/102

que este indivíduo está fisicamente presente.

As tecnologias envolvidas em um sistema de telepresença vão desde os subsistemas

de vídeo e som, até a capacidade de manipular ou monitorar remotamente objetos

ou o ambiente. Esta capacidade é conhecida como teleoperação.

Os sistemas de telepresença podem apresentar diversos graus de percepção para os

participantes envolvidos, isto devido à complexidade e a quantidade de componentes

disponíveis para se construir tal sistema. Desta forma, será descrito inicialmente, um

sistema simples relacionado à telepresença: a videoconferência. Em seguida, soluções

mais complexas são mostradas, tais como a telepresença utilizada comercialmente e

a telepresença 3D, esta última explorada de forma mais detalhada.

2.1.1 Videoconferência

A videoconferência é uma forma de comunicação, em tempo real, que possibilita o

contato visual e sonoro entre pessoas que estão em locais diferentes, dando a sensação

de que os interlocutores encontram-se no mesmo local.

Na videoconferência não é necessário o uso de salas especiais ou equipamentos caros

e complexos, pois a interface pode se dar através de uma webcam  e um microfone

convencional. A infraestrutura da Internet pode ser utilizada para transmissão dos

dados de voz e vídeo de forma compactada, sendo os computadores dos participantesresponsáveis pela compressão e descompressão da transmissão de som e imagem.

A videoconferência permite a comunicação entre grupos, não somente entre dois

indivíduos. Além disso, possibilita encontrar recursos de cooperação entre os usuá-

rios, compartilhando informações e materiais de trabalho. A Figura 2.1 ilustra os

conceitos descritos.

2.1.2 Ambientes Virtuais Colaborativos

Um ambiente virtual colaborativo é uma implementação de um mundo sintético

tridimensional gerado por computador, através do qual grupos de usuários podem

colaborar entre si e com o ambiente.

O ambiente é compartilhado pelos usuários através de uma rede de computado-

res, permitindo que estes grupos possam interagir no ambiente virtual mesmo que

fisicamente distantes uns dos outros.

Como definido em [21], o conceito chave por trás dos ambientes virtuais colabo-

rativos é o compartilhamento do mundo virtual, onde, em um espaço gerado por

computador, os participantes são representados através de uma forma gráfica, po-

10

Page 24: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 24/102

Figura 2.1: Videoconferência 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, educação, engenharia, medicina, entretenimento, entre outras.

2.1.2.1 Classificação quanto à imersão:

Em [22] e [23], podemos encontrar informações a respeito das características de imer-

são de alguns ambientes virtuais colaborativos. Dado que estes ambientes podem

ser construídos utilizando interfaces existentes dos sistemas de realidade virtual, po-

demos classificá-los dependendo do tipo de interfaces que eles podem proporcionar:

não-imersivos, semi-imersivos e completamente imersivos.

• Não-Imersivos: São geralmente baseados em desktops e, como o nome sugere,

utilizando a menos imersiva das técnicas de implementação. Deste modo, o

ambiente virtual é visto como um portal ou janela, empregando um monitor

de alta resolução. A interação ocorre normalmente através do teclado, mouse

ou trackball ;

Um ambiente não-imersivo possui a vantagem de não requerer o mais alto nível

de desempenho gráfico, nem hardware especial, podendo ser mais facilmenteimplementado;

11

Page 25: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 25/102

• Semi-Imersivos: Um ambiente semi-imersivo possui geralmente placas gráfi-

cas de alto desempenho, as quais podem ser acopladas com monitores grandes

de alta resolução e projetores. Nesta categoria se enquadram as projeções

panorâmicas com telas curvas e em forma de domo.

Sistemas semi-imersivos produzem uma apreciação maior das proporções do

ambiente. Adicionalmente, a estereografia pode ser alcançada através do uso

de óculos de realidade virtual;

• Completamente Imersivos: São provavelmente as mais conhecidas imple-

mentações de visualização em ambientes de realidade virtual.

Nesta categoria estão o HMD (Head Mounted Displays) e a CAVETM[2]. O

HMD é um capacete de realidade virtual, através do qual o usuário visualiza

as imagens em estéreo do ambiente virtual e adicionalmente ouve o som geradopelo sistema, ficando completamente imerso no ambiente e excluído do mundo

real. A vantagem deste método é que ele proporciona um campo visual de

360◦, no qual o ponto de vista é atualizado através de sensores presentes no

capacete.

A CAVETMpossui uma infraestrutura mais complexa, onde é necessário o uso

de vários projetores que são sistematicamente instalados para projetar nas

paredes de uma estrutura em forma de cubo. O usuário fica dentro da es-

trutura, podendo se deslocar na mesma. Uma vantagem importante é que ousuário não fica completamente excluído do mundo real. Além disso, não há

o inconveniente de vestir um capacete.

2.1.2.2 Classificação quanto ao transporte e artificialidade:

Os ambientes virtuais colaborativos são, por definição, espaços compartilhados. Em

[21], há uma classificação dos espaços compartilhados como espaços multimídia, sis-

temas de videoconferência orientada espacialmente, ambientes virtuais colaborativose sistemas de telepresença. Assim, os ambientes virtuais colaborativos podem ser

classificados dentro deste contexto, de acordo com características de artificialidade

e transporte (Figura 2.2).

A dimensão do transporte representa os extremos dos conceitos de local e remoto.

A dimensão da artificialidade representa os extremos dos ambientes inteiramente

sintéticos e aqueles inteiramente físicos.

Ainda na Figura 2.2, podemos verificar que a telepresença se encontra na parte infe-

rior direita do diagrama, isto porquê, em [21], o termo telepresença, como tratado,não engloba suas variações ao se combinar com espaços virtuais compartilhados.

12

Page 26: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 26/102

A telepresença 3D, a qual será vista posteriormente, neste capítulo, pode ser con-

siderada como um híbrido entre os sistemas de telepresença baseados somente no

vídeo 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 telepresença.

Observamos, portanto, que existem algumas semelhanças entre os sistemas de tele-

presença e os ambientes virtuais colaborativos, mas que nestes a representação de

um indivíduo é feita através de um personagem, também chamado de avatar , e não

utilizando o vídeo real do indivíduo, adquirido em tempo real.

Figura 2.2: Uma classificação dos espaços compartilhados de acordo com as dimen-sões de transporte e artificialidade [21].

2.1.3 Sistemas de Telepresença Comerciais

Os sistemas de telepresença comerciais atualmente disponíveis são empregados, em

sua maioria, como substituição à videoconferência convencional. Com o uso de

dimensões maiores na área de visualização e a projeção das imagens recebidas em

escalas reais, pode-se aumentar o grau de imersão dos participantes. A utilização de

vários canais de áudio e outras formas de visualização, bem como a correta integração

destas características ao ambiente físico, aumenta ainda mais este grau de imersão,

como pode ser visto na Figura 2.3.

13

Page 27: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 27/102

Nos últimos anos, muitas empresas têm lançado sistemas comerciais de telepresença,

tais como a Cisco, Teliris, Polycom e outras. Em geral, estes sistemas incluem múl-

tiplos microfones e alto falantes, monitores de alta definição, câmeras, e frequente-

mente redes e salas dedicadas. O objetivo é que os sistemas sejam transparentes para

os usuários o tanto quanto possível, provendo imagens em tamanho real, atrasos detransmissão imperceptíveis e interfaces amigáveis.

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 aquisição destes sistemas por empresas

de grande porte se justifica por reduzir demasiadamente o custo operacional com

reuniões e viagens. Para pequenas e médias empresas o custo pode ser considerado

alto, não se justificando tal investimento.

Figura 2.3: Sistema de telepresença comercial. Fonte: Cisco Systems.

2.1.4 Telepresença 3DO objetivo da telepresença 3D é permitir que indivíduos em diferentes locais possam

se encontrar e compartilhar um mesmo ambiente virtual. Estes indivíduos não são

representados por meio de modelos de personagens (avatares) mas sim pelo vídeo

em tempo real dos mesmos, extraídos pela suas silhuetas, como se estivessem face a

face, compartilhando o mesmo espaço virtual (Figura 2.4).

O sistema TELEPORT, descrito em [12], e o sistema VIRTUE, descrito em [13], são

implementações de tal conceito. Podemos observar, pela Figura 2.5, que no TELE-

PORT há uma projeção por trás da tela colocada na sala, enquanto que no VIRTUE

(Figura 2.4), é utilizado um monitor de plasma ou LCD. Em todo caso, é exibido

14

Page 28: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 28/102

Figura 2.4: VIRTUE [13].

um ambiente virtual que imita em escala correta as proporções e a perspectiva da

sala real, até mesmo com o modelo virtual de continuação da mesa. No ambiente

virtual, é sobreposto o vídeo do indivíduo remotamente localizado, visto de frente

em ambas as figuras.

Nos sistemas de telepresença 3D, é possível ainda a captura do vídeo do indivíduo

através de múltiplas câmeras, possibilitando reconstruir no sistema remoto o vídeoem 3D, incorporando-o posteriormente ao ambiente virtual, como visto em [10] e

ilustrado na Figura 2.6.

2.1.4.1 Extração da silhueta

Para capturar somente o vídeo do indivíduo demarcado pela sua silhueta é necessário

inicialmente a utilização de algoritmos chamados de segmentação de fundo ou extra-

ção de silhueta. É importante observar que estes algoritmos devem ser executadospara cada câmera no sistema.

Diversos métodos e algoritmos foram desenvolvidos com este objetivo. Inicialmente,

veremos alguns métodos que exigem intervenção física no ambiente (instalação de

painéis) ou a utilização de mecanismos especiais de captura (câmeras exatamente ali-

nhadas, as quais exigem espelhos especiais e ajustes precisos). Em seguida, veremos

como funcionam os métodos baseados em modelagem de fundo, que não requerem

intervenção física no ambiente.

• Chroma-keying : Este método requer que a pessoa fique em frente a uma tela

15

Page 29: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 29/102

Figura 2.5: TELEPORT [12].

com fundo geralmente azul ou verde. A silhueta é calculada através de simples

computação de pixels. Este método restringe o usuário a não estar vestindo

qualquer roupa com a cor próxima da tela de fundo, implicando, também, na

utilização de painéis específicos para chroma-keying .

• Defocus Video Matting  [24]: Utiliza duas câmeras exatamente alinhadas,

uma com foco no indivíduo e outra no fundo. Através de um algoritmo apro-

priado, a silhueta pode ser extraída com alto grau de precisão, processando

simultaneamente o vídeo proveniente das duas câmeras.

• Segmentação de fundo com luz infravermelha [25, 26]: Neste método,

uma luz infravermelha é projetada por trás de uma tela difusora, de forma a

se distribuir sobre a mesma. O indivíduo fica posicionado em frente à tela,assim como no chroma-keying . Uma câmera infravermelha captura a imagem

para montar a silhueta. Outra câmera (não infravermelha) captura a imagem

a partir do mesmo ponto de vista para texturizar a silhueta extraída (Figura

2.7).

Uma vantagem deste método é a não restrição da pessoa estar usando algo

que possua a cor da tela de fundo. Além disso, a tela de fundo pode ser

utilizada também como tela para projeção, uma vez que a luz infravermelha

não interfere com a luz gerada pelo projetor.

• Segmentação da silhueta usando modelagem do fundo:

16

Page 30: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 30/102

Figura 2.6: Visual Hull  baseado em imagem [10]

Vejamos agora métodos que não exigem intervenção física no ambiente e nem a

utilização de mecanismos especiais de captura. A maior parte destes métodos

se baseia no aprendizado prévio das caraterísticas do ambiente, sem que o

objeto a ser capturado esteja presente, sendo conhecidos como algoritmos desubtração de fundo.

A subtração de fundo consiste em subtrair da imagem atual uma imagem de

referência, a qual é adquirida e modelada a partir de um fundo estático durante

um certo período de tempo, conhecido como período de treinamento. Assim, o

fundo pode ser qualquer, desde que permaneça razoavelmente estático durante

o tempo de treinamento.

Alguns algoritmos exploram a diferença estatística de cor entre a imagem atuale a imagem de referência, a qual é treinada durante um período de tempo

ou com base em um número determinado de imagens. Outros algoritmos se

baseiam na análise de movimento dos objetos, em transformações logarítmicas

ou no aprendizado por cadeias de Markov.

Na sua versão mais simples, a subtração de fundo pode partir, inicialmente,

de um certo número de imagens capturadas (fase de treinamento), onde são

calculados, para cada pixel, a média e o desvio padrão, baseado no espaço de

cores RGB. O objetivo desta etapa é fazer a modelagem prévia do fundo dacena, a fim de que os próximos passos do algoritmo possam distinguir o que

17

Page 31: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 31/102

(a) Vista por uma câmera colorida

(b) Vista por uma câmera infravermelha

Figura 2.7: Painel com aplicação de luz infravermelha [25].

faz parte do fundo e o que faz parte da silhueta de um indivíduo sobre ele.

Esta primeira etapa é também utilizada como ponto de partida para outros

algoritmos mais complexos, tal como o algoritmo de Horprasert [27], que seráanalisado em maiores detalhes no Capítulo 4.

2.1.4.2 Reconstrução da Imagem

A visualização e navegação em ambientes virtuais compostos por objetos sintéticos

e reais constituem um objetivo de longa data na computação gráfica. O termo “re-

alidade virtualizada”, popularizado por Kanade [28], descreve um sistema onde um

cenário do mundo real é capturado por uma coleção de câmeras e então visualizado

através de uma câmera virtual como se fosse uma cena.

18

Page 32: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 32/102

Na prática, as implementações existentes tentam empregar uma série de algoritmos

de visão computacional para extrair o modelo geométrico da cena desejada.

No caso da telepresença, a reconstrução da geometria desejada é a do corpo humano,

devendo ainda ser realizada em tempo real.

Infelizmente, muitos algoritmos de visão computacional, tais como stereo vision ,

optical flow  e shape from shading , são muito lentos para o processamento em tempo

real [10].

Soluções simples podem ser adotadas, tais como o mapeamento seletivo do vídeo

adquirido por cada câmera em um billboard . Um billboard  é um objeto gráfico,

normalmente um retângulo, que está sempre com sua normal voltada para o obser-

vador. Desta forma, dependendo do ponto de vista do participante visualizando a

cena, a câmera que mais se aproxima do ângulo de visuaização será selecionada paratexturizar o billboard .

Outros algoritmos, baseados em uma aproximação geométrica conhecida como Vi-

sual Hull , como discutido em [11] e [10], podem ser utilizados em aplicações de tempo

real, possuindo, em contrapartida, a limitação de não detectar regiões não convexas.

O Visual Hull  é construído através de uma série de silhuetas para progressivamente

determinar uma região que engloba o objeto.

2.1.4.3 Composição do vídeo ao Ambiente Virtual

O passo seguinte consiste na composição do vídeo do participante ao ambiente vir-

tual. A imagem é geralmente mapeada em um billboard  que é colocado no cenário

virtual (Figura 2.8).

Para que a geometria do billboard não interfira no processo, o vídeo deve ser aplicado

como uma textura que possui as regiões não contidas na silhueta sendo transparentes.

Se isso não fosse feito, a imagem do indivíduo apareceria dentro de um quadrado

branco ou preto, por exemplo.Este detalhe é importante no que diz respeito à transmissão do vídeo via rede. Ao

transmitir o vídeo de um individuo, um sistema de telepresença deve enviar, não só

o vídeo capturado, mas também a informação da silhueta.

Dependendo do ponto de vista do indivíduo manipulando o ambiente virtual, a

imagem do outro indivíduo deverá aparecer no ângulo e perspectiva corretos, isto é,

o objetivo do algoritmo de reconstrução do vídeo é prover a visualização de qualquer

ângulo possível da imagem para que esta visão específica seja mapeada no billboard .

Em outras situações, que dependem de como a imagem é reconstruída, a geometria

19

Page 33: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 33/102

Figura 2.8: Composição do vídeo ao ambiente virtual [26]

deve ser renderizada de forma volumétrica, voxel  por voxel .

2.2 Teleoperação

O prefixo de origem Grega tele significa “à distância” e o termo teleoperação indica

naturalmente operação à distância. Portanto, a teleoperação estende a capacidade

humana para manipular objetos remotamente, provendo ao operador condições se-

melhantes às encontradas no local remoto [29].

A teleoperação pode exigir também o envio de informações do objeto controlado para

o operador. Se o dispositivo controlado possui sensores de força ou temperatura, porexemplo, essas informações devem ser monitoradas para refletir uma ação executada

ou para auxiliar na execução de uma operação.

O termo teleoperação é muito associado com a robótica, dando origem à telerobótica,

mas pode ser aplicado em várias circunstâncias, nas quais dispositivos ou máquinas

são operados por um indivíduo à distância.

A fim de compreender claramente a teleoperação, iremos definir, inicialmente, alguns

dos termos básicos e conceitos relacionados. Estas definições foram baseadas nos

trabalhos de [30] e [31].

20

Page 34: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 34/102

• Teleoperador é a máquina que habilita o operador humano a mover, sen-

tir e manipular objetos à distância. De forma mais generalizada, qualquer

ferramenta, a qual estenda a capacidade mecânica do indivíduo além do seu

alcance, pode ser considerada um teleoperador;

• Telerobô é um robô que aceita instruções à distância, geralmente de um

operador humano, e age no ambiente distante através do uso de sensores,

atuadores ou outros mecanismos. Usualmente um telerobô terá algum tipo de

manipulador e mobilidade;

• Telemanipulação é uma operação mestre-escravo, na qual um braço robótico

(escravo), que está geralmente em um ambiente distante ou perigoso, obedece

as ações de um manipulador (mestre). Em geral, a telemanipulação é divi-

dida em dois processos fortemente acoplados: a interação entre o teleoperadore o dispositivo mestre; e a interação entre o dispositivo escravo remoto e o

ambiente onde este age.

A teleoperação significa, portanto, operar remotamente um robô, ou qualquer dispo-

sitivo, usando a inteligência humana. Isto requer a disponibilidade de uma interface

homem-máquina adequada entre ambos.

2.2.1 Áreas de aplicação da teleoperação

Nas últimas décadas, diferentes sistemas de teleoperação têm sido desenvolvidos

para permitir que operadores humanos executem tarefas em áreas remotas ou am-

bientes perigosos. A tecnologia tem sido empregada em uma grande variedade de

aplicações, tais como explorações subaquáticas, campos de batalha, vigilância re-

mota, e assim por diante. As tarefas de teleoperação se destacam pela interação

contínua entre os operadores humanos, dispositivo teleoperador e o ambiente. Com

o desenvolvimento da Internet e outras tecnologias relacionadas, as aplicações dateleoperação tornaram-se mais abrangentes e mais indispensáveis do que antes.

Veremos a seguir, algumas das áreas onde a teleoperação pode ser empregada.

2.2.1.1 Exploração espacial

A teleoperação tem sido usada de forma muito frequente em missões espaciais. Mui-

tas das sondas espacias que operam no espaço profundo têm sido telerobôs, estas

possuem controles relativamente simples, mas extremamente confiáveis. Os robôsda que fazem parte das missões de exploração de Marte pela NASA são telerobôs.

21

Page 35: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 35/102

Na Figura 2.9 é mostrado um modelo da sonda Spirit , irmã gêmea da Opportunity ,

lançadas em 2003 pela NASA, como parte da missão Mars Exploration Rovers.

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

2.2.1.2 Exploração submarina

Nestas aplicações, a teleoperação pode ser empregada na exploração de petróleo,

inspeção e manutenção de perfuração de poços, plataformas petrolíferas e encana-

mentos, estudos geológicos, e classificação de tarefas marinhas. Em 1985, um veículo

subaquático operado remotamente, chamado Jason, foi responsável por localizar o

navio Titanic.

2.2.1.3 Ambientes hostis

A teleoperação pode ser utilizada onde os seres humanos possam ser expostos à

situações perigosas, como por exemplo: operações militares, salvamento de vítimas

de incêndios, atmosferas tóxicas, ou mesmo situações de refém.

Dispositivos robóticos controlados remotamente estão 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 remoção possa ser feita com mais eficiência e

segurança.

22

Page 36: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 36/102

2.2.1.4 Telemedicina

A telemedicina tem forte apelo no fornecimento cuidados médicos, onde a distância é

um fator crítico. Em um campo de batalha, por exemplo, a primeira hora depois que

um soldado foi ferido é crítica. A telepresença, poderia ser usada para transportara “presença” do médico ou do cirurgião, tanto para um quarto de hospital quanto

para um campo de batalha, a fim de ajudar os paramédicos, podendo ainda, com

recursos de teleoperação, permitir a intervenção direta dos médicos ou cirurgiões.

Isto facilitaria o uso mais eficaz de um recurso cada vez mais limitado: o especialista

médico.

2.2.1.5 Vigilância eletrônica

As forças de segurança no mundo inteiro estão recorrendo cada vez mais ao mo-

nitoramento e gravação de vídeo como meio de prevenção e combate ao crime. A

telepresença e a teleoperação estão se tornando tendência nesta área, pois cada

agente de segurança pode vigiar vários lugares ao mesmo tempo sem sair de seu

posto. Robôs podem operar de forma autônoma em áreas críticas, podendo ser

teleoperados de acordo com a necessidade.

2.2.2 A teleoperação via InternetA teleoperação via Internet começou na metade dos anos 90 [17–19] e tem sido um

campo muito ativo de pesquisas desde então.

Muito tem se discutido a respeito dos atrasos inerentes à Internet e como eles influem

em sistemas de teleoperação [32]. A transmissão através de uma rede de comuta-

ção de pacotes resulta em atrasos aleatórios que podem chegar a valores altos e,

eventualmente, até a perda de informação, dependendo do protocolo de transporte

utilizado (TCP ou UDP, vide Figura 2.10). Como resultado, o desempenho de umsistema de teleoperação que não 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 caracte-

rísticas do sistema a ser controlado. O protocolo TCP provê comunicação confiável

e garante a entrega dos pacotes ao custo de retransmissões, e possivelmente longos

atrasos, que impactam em aplicações de tempo real. O protocolo UDP não requer

confirmações de pacotes recebidos e não faz retransmissões, gerando, portanto, me-

nos atraso. Em contrapartida, o UDP não garante a entrega dos pacotes, podendo,eventualmente, perdê-los.

23

Page 37: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 37/102

Figura 2.10: Teleoperação via Internet.

2.2.3 Eletrônica para suporte à teleoperação

A evolução da microeletrônica e o barateamento na fabricação de semicondutores

viabilizaram o emprego de sistemas computadorizados em diversos equipamentos.

Muitos dos equipamentos elétricos e eletrônicos modernos possuem pequenos compu-tadores embutidos, estes são chamados sistemas embarcados ou sistemas embutidos.

Eles são geralmente construídos para tarefas específicas e na grande maioria das

vezes, não contêm disco rígido, flexível nem teclado, podendo nem mesmo ter a

necessidade de um sistema operacional.

Muitos destes sistemas utilizam microcontroladores, que são circuitos integrados

que possuem internamente um microprocessador, memória e diversos periféricos.

Os microcontroladores podem ser então programados para executar todas as tarefas

relativas ao controle do equipamento, necessitando de poucos componentes adicio-nais.

Para o suporte à teleoperação, se faz necessário um sistema embarcado que possua

sensores e atuadores para a finalidade desejada, como, por exemplo, sensores para

detecção de obstáculos e motores, para a locomoção de um robô.

A eletrônica embarcada precisa também de uma forma de comunicação com um

sistema de computação ligado à rede, para que possa ser teleoperada, possivelmente

via Internet. Várias interfaces são disponíveis atualmente, tais como RS-232, RS-

485, USB, Zigbee, Bluetooth, entre outras.

24

Page 38: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 38/102

A Figura 2.11 mostra o modelo abstrato de um módulo para sensores e atuadores

que ilustra que foi apresentado nos parágrafos anteriores.

Figura 2.11: Modelo abstrato de um módulo de controle e monitoramento.

Nos capítulos seguintes os conceitos aqui adquiridos serão utilizados na metodologiae no desenvolvimento da infraestrutura proposta neste trabalho.

25

Page 39: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 39/102

Capítulo 3

Metodologia Empregada

Neste capítulo serão apresentados os métodos adotados e os recursos utilizados parao desenvolvimento de uma infraestrutura de hardware e software para sistemas de

telepresença 3D e teleoperação.

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 vídeo 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

código fonte livre e uma configuração de hardware baseada na aquisição de vídeo

através de múltiplas câmeras, além de módulos eletrônicos com suporte à sensores e

atuadores, desenvolvidos especificamente para as ações relacionadas à teleoperação.

A partir de constatações obtidas nos capítulos anteriores, sobre os conceitos funda-

mentais de telepresença e teleoperação e o estudo detalhado dos trabalhos relacio-

nados, foi possível conceber uma infraestrutura de hardware e software, as qual foi,

dentro da metodologia adotada, planejada, implementada e testada, a partir de um

protótipo funcional, como descrito a seguir.

3.1 Visão geral do sistema

Analisando a Figura 3.1, a qual mostra uma visão geral do sistema, podemos per-

ceber dois grandes blocos:

• Infraestrutura de hardware: Compreende a pesquisa e escolha de câmeras,interfaces de captura, cabeamento e computadores. Além do desenvolvimento

26

Page 40: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 40/102

de módulos de controle e monitoração específicos para as ações relacionadas à

teleoperação.

• Infraestrutura de software: Compreende a pesquisa e desenvolvimento de

uma biblioteca de software em C++ que possui os algoritmos necessários à te-lepresença 3D, tais como extração de silhueta, reconstrução 3D e comunicação

via rede. A biblioteca também possui métodos apropriados para o suporte à

teleoperação, com os os módulos de controle e monitoração desenvolvidos.

Assim que montagem da infraestrutura de hardware e a implementação da bibli-

oteca de software chegaram a um nível de desenvolvimento na qual podiam ser

efetivamente utilizadas, foi criado um protótipo funcional, implementado sobre es-

tas infraestruturas, que serviu como prova de conceito, refinamento da biblioteca

desenvolvida e verificação da hipótese do trabalho.

A metodologia empregada seguiu um ciclo de planejamento, implementação, teste

e refinamento das infraestruturas propostas, utilizando para isto o protótipo cons-

truído.

Figura 3.1: Divisão em blocos do sistema proposto

As seções seguintes visam explicar, separadamente, o planejamento da infraestrutura

para telepresença 3D e da infraestrutura para teleoperação.

3.2 Infraestrutura para telepresença 3D

Para a infraestrutura de software, foi projetada e desenvolvida uma biblioteca em

C++ que possui os algoritmos necessários à telepresença 3D, tais como extração desilhueta, reconstrução de vídeo e comunicação via rede. A biblioteca também possui

27

Page 41: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 41/102

métodos apropriados para o suporte à comunicação com os módulos de controle e

monitoração descritos. No Apêndice A se encontra o diagrama de classes completo

da biblioteca e no Apêndice C a documentação das principais classes que a compõem.

No que concerne ao hardware, foram utilizadas quatro câmeras de vídeo conectadas

à uma placa de captura com capacidade para 30 quadros por segundo por câmera.

Apesar disso, a biblioteca de software permite um número arbitrário de câmeras.

Cada câmera tem sua sequência de vídeo processada de forma independente pelo

algoritmo de extração de silhueta. Uma vez de posse da informação da silhueta, esta

é compactada juntamente com o vídeo e transmitida via rede. Há uma transmissão

para cada câmera do sistema, sendo cada uma realizada por um socket  UDP em

uma porta diferente.

No servidor, o vídeo de cada câmera e suas respectivas silhuetas são descompactadase um algoritmo de reconstrução é 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 telepresença 3D na solução proposta

Veremos a seguir, de forma mais detalhada, os principais componentes desta infra-

estrutura, e quais motivos levaram às escolhas citadas.

3.2.1 Captura de vídeo

Inicialmente foram testadas webcams e dispositivos de captura USB. Algumas câ-

meras e dispositivos dos principais fabricantes foram testados mas nenhum deles

28

Page 42: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 42/102

permitia que, através do driver  fornecido, se pudesse acessar mais de um dispositivo

ao mesmo tempo.

A captura de vídeo simultânea é importante devido aos algoritmos a serem utiliza-

dos. Além disso, foi utilizado apenas um computador para a captura de todas as

sequências de vídeo, a fim 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 câmeras USB diferentes, ou que

um dado fabricante fornecesse um driver  com capacidade de múltiplas câmeras, isto

colocaria restrições 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 idêntico em um mesmo computador.

Assim, o suporte a dispositivos de captura USB foi mantido em software, mas nãofoi utilizado como hardware de captura nos testes.

As câmeras Firewire não foram utilizadas devido ao seu alto custo. Apesar disso, a

biblioteca desenvolvida neste trabalho possui suporte a estas câmeras no ambiente

Windows, através do DirectShow .

A solução encontrada foi o uso de câmeras CCDs coloridas com saída NTSC, em-

pregadas geralmente em sistemas de circuito fechado de TV. Estas câmeras vêm

dotadas de mecanismo de auto íris, que foi desabilitado de forma a não interferir

com as condições de iluminação durante a captura. A Figura 3.3 mostra uma dascâmeras utilizadas instaladas em um tripé.

Figura 3.3: Câmera CCD utilizada.

Como a saída destas câmeras é de vídeo composto, padrão NTSC, é necessária uma

placa de captura para a aquisição das imagens. As placas de captura recomendadasdevem possuir no mínimo quatro canais de vídeo independentes, cada um operando

29

Page 43: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 43/102

a 30 quadros por segundo.

Vários fabricantes produzem placas com estas características e que permitem acesso

ao vídeo capturado por meio do DirectShow no ambiente Windows. Outras placas de

captura, baseadas em um chipset  muito comum da Philips (SAA7133/35), também

podem ser utilizadas, pois a biblioteca proposta possui suporte.

A placa de captura adquirida para o protótipo 3.4 é baseada no chipset da Philips e é

comercializada sem aplicativos próprios, 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 fração do valor das placas de captura para sistemas de

vigilância (com as mesmas características), as quais vêm com software proprietário,

e que, na maioria das vezes, não permite utilização de software de terceiros.

3.2.2 ComputadoresConsiderando apenas a captura de vídeo em um ambiente remoto que transmite

para um ambiente local, são 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 memória RAM, sob o sistema operacional

Windows XP Service Pack 2.

Não foi testada para fins de protótipo uma estrutura bidirecional. Neste caso, todaa infraestrutura de hardware descrita deveria ser duplicada. Apesar de teoricamente

30

Page 44: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 44/102

ser possível o uso de dois computadores, testes no protótipo (que não é bidirecional)

indicaram 90% de uso das CPUs. Isto ocorreu devido à concorrência de todas as

threads de captura extração de silhueta serem processadas em um único computador.

3.3 Infraestrutura para teleoperação

No que diz respeito ao hardware para teleoperação, foram desenvolvidos módulos de

controle e monitoramento que podem ser ligados a sensores e atuadores de diversos

tipos.

Os módulos de controle e monitoramento são interconectados através de um barra-

mento serial RS-485, que por ser multiponto, permite a ligação de vários módulos,

em contraste com o RS-232 que permite somente dois dispositivos conectados.O barramento RS-485, que é composto por somente um par de fios, é ligado ao

computador através de um conversor USB-RS485, provendo um mecanismo de co-

municação simples e eficiente entre os módulos e o software sendo executado.

Existem diversas possibilidades de exploração das funções de teleoperação integra-

das ao ambiente virtual. No caso de uma ação de controle, um comando poderia ser

executado no ambiente virtual, sendo então interpretado pelos métodos de teleopera-

ção da biblioteca, estes enviam os dados via USB para um conversor USB-RS485. O

conversor se comunica com os módulos presentes no ambiente executando realmente

a ação desejada (a qual corresponderia a ação no ambiente virtual).

Um exemplo simples deste cenário seria o acendimento de uma lâmpada em um

cenário virtual. Uma lâmpada no ambiente remoto real também acenderia, imitando

o comportamento do cenário virtual.

No caso de uma ação de monitoramento, ou mesmo alarme, o módulo, em um am-

biente remoto, envia os dados através da rede RS-485 para o conversor USB-RS485,

que então chega ao computador e é processado pela biblioteca, esta transmite osdados via rede para o computador do operador. No operador, o dado é interpretado

e apresentado no ambiente virtual.

Um exemplo deste cenário seria o envio das posições de um braço robótico remoto

para o operador. Sensores no braço transmitiriam as posições e enviariam para

o sistema (tal como explicado anteriormente) e no cenário virtual um modelo do

virtual do braço robótico imitaria os movimentos do braço real, no local remoto.

A Figura 3.5 ilustra a interligação destes componentes, conforme o exemplo anterior.

Um exemplo mais simples seria a monitoração da temperatura de um ambiente

remoto, sendo esta temperatura apresentada no cenário virtual, enquanto o usuário

31

Page 45: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 45/102

Figura 3.5: Abordagem da teleoperação na solução proposta

se move e interage virtualmente no ambiente. Este exemplo foi implementado no

protótipo desenvolvido. Detalhes da implementação estão descritos no Capítulo 4,

onde a (Figura 4.4) ilustra a situação acima descrita.

Uma aplicação interessante consistiria em monitorar a temperatura corporal do pró-

prio participante, juntamente com outras informações (o batimento cardíaco por

exemplo), transportando assim, para o ambiente virtual, não somente a imagemdo participante, como também outros aspectos físicos, reforçando o sentimento de

presença.

Outra possível aplicação seria na monitoração e controle de obras, onde o modelo

virtual poderia ser alimentado com dados como temperatura, nível de iluminação,

umidade, consumo de energia, etc. A partir do ambiente virtual, poderia se controlar

a iluminação, controle de acesso de pessoal, controle de máquinas, etc.

Os módulos concebidos são genéricos, com entradas analógicas e digitais e saídas

digitais ou comandadas com relé. Nas entradas podem ser ligados sensores de diver-

sos tipos e as saídas podem comandar outros dispositivos de baixa tensão. Há uma

saída especial com um relé para acionar cargas de até 5A em 110V.

Os projetos do módulo e do conversosr USB-RS485 foram feitos no software Proteus,

da Labcenter, onde é possível criar o diagrama esquemático, simular e gerar os

layouts para as placas de circuito impresso.

No Apêndice C encontram-se os diagramas esquemáticos e os layouts eletrônicos

do módulo de controle e monitoramento e do conversor USB-RS-485, desenvolvidosespecificamente para este trabalho.

32

Page 46: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 46/102

3.4 Comentários Finais

Este capítulo apresentou os métodos adotados e os recursos utilizados para o desen-

volvimento de uma infraestrutura de hardware e software para sistemas de telepre-

sença 3D e teleoperação.

Acredita-se que os resultados iniciais obtidos neste estudo indicam que os sistemas

de telepresença e teleoperação podem ser desenvolvidos e bastante aperfeiçoados,

com um custo baixo e com uma vasta gama de aplicações.

33

Page 47: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 47/102

Capítulo 4

Implementação da Solução

Proposta

Neste capítulo são apresentados detalhes da implementação do software, composto

pela biblioteca e o protótipo (programa principal) baseado na mesma. São também

apresentados detalhes de construção do hardware, composto pelo módulo de controle

e monitoramento, e pelo conversor USB-RS485.

4.1 Classes que compõem a biblioteca propostaInicialmente, vejamos as principais classes que compõem a biblioteca proposta:

• Classes de captura de vídeo: A principal classe é a VideoCapture, onde

está representado um dispositivo de captura.

• Classes de janela de vídeo: A principal classe é a VideoDisplay , onde está

representada uma janela de visualização de vídeo.

• Classe Framebuffer : Classe responsável por armazenar os quadros de forma

protegida. Como os quadros são capturados, escritos no buffer e lidos, isto gera

um caso clássico de produtor/consumidor que apresenta condição de corrida

(race condition ). Por isso, há na implementação um mecanismo para proteger

a leitura e escrita simultânea neste buffer .

• Classe Calibration : Possui todo código necessário à calibragem intrínseca

e extrínseca das câmeras.

• Classe Silhouette: Armazena a silhueta e implementa o algoritmo de Hor-

prasert et al.

34

Page 48: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 48/102

• Classe Camera : Encapsula todas as classes anteriores.

• Classes de renderização: Contém os algoritmos de renderização chamados

Billboard , Sprite e VisualHull .

• Classe Teleoperation : Contém os métodos para teleoperação.

No Apêndice A, são mostrados todos diagramas das classes descritas anteriormente.

A documentação das classes geradas com o aplicativo doxygen se encontra no apên-

dice B.

4.2 Implementação da biblioteca com suporte à

telepresença 3D e teleoperação

A biblioteca, desenvolvida em linguagem C++, contém vários algoritmos necessários

à implementação de um sistema de telepresença 3D e teleoperação, com os requisitos

indicados no objetivo do trabalho.

A biblioteca é totalmente orientada a objetos e utiliza alguns padrões de projeto

(design patterns), a fim de permitir flexibilidade de uso em sistemas operacionais

distintos e facilitar sua posterior atualização para novos hardwares de captura, novos

algoritmos, etc.

Ela pode ser decomposta em seis blocos principais:

• Calibragem das câmeras;

• Extração da silhueta de múltiplas câmeras;

• Compactação e descompactação do vídeo e da silhueta;

• Transmissão via rede;

• Reconstrução do vídeo;

• Métodos para teleoperação.

4.2.1 Calibragem das câmeras

A calibragem da câmeras é realizada pela classe Calibration  a qual contém todo o

código necessário para executar a calibragem intrínseca e extrínseca das câmeras.

35

Page 49: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 49/102

A calibragem intrínseca corresponde aos parâmetros específicos da lente e do sensor

da câmera, e é realizada com uma câmera por vez (Figura 4.1a).

A calibragem extrínseca corresponde aos parâmetros de posição e rotação da câmera

no espaço e é realizada, simultaneamente, com todas as câmeras (Figura 4.1b)

(a) Calibragem intrínseca das câmeras

(b) Calibragem extrínseca das câmeras

Figura 4.1: Calibragem das câmeras.

36

Page 50: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 50/102

4.2.2 Extração da silhueta de múltiplas câmeras

O método de extração de silhueta empregado foi baseado no algoritmo Horprasert

[27]. Outros métodos foram estudados, desde a simples subtração de fundo, a qual

proporcionava excelente desempenho, mas baixa qualidade da silhueta, até métodoscom emprego de iluminação infravermelha, tal como descrito no Capítulo 2. O mé-

todo proporcionou bons resultados, mas dependia, para isso, de instalação dedicada

com o hardware de iluminação e tela difusora.

O algoritmo Horprasert [27] se mostrou de boa qualidade e rápido o suficiente para

ser executado em quatro instâncias simultâneas (quatro threads) no computador

responsável pela captura, extração da silhueta e transmissão 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 realizatodos os passos necessário à subtração de fundo.

A subtração de fundo consiste em subtrair da imagem atual uma imagem de refe-

rência, a qual é adquirida e modelada a partir de um fundo estático durante um

certo período de tempo, conhecido como período de treinamento. Assim, o fundo

pode ser qualquer, desde que permaneça razoavelmente estático durante o tempo de

treinamento.

Na sua versão mais simples, a subtração de fundo pode partir, inicialmente, de umcerto número de imagens capturadas (fase de treinamento), onde são calculados,

para cada pixel, a média e o desvio padrão, baseado no espaço de cores RGB. O

objetivo desta etapa é fazer a modelagem prévia do fundo da cena, a fim de que os

próximos passos do algoritmo possam distinguir o que faz parte do fundo e o que

faz parte da silhueta de um indivíduo sobre ele.

Sendo E i a média e S i o desvio padrão das imagens de referência, temos:

E i = [µR(i), µG(i), µB(i)] (4.1)

e

S i = [σR(i), σG(i), σB(i)], (4.2)

onde i representa cada pixel  da imagem a ser computado.

Para cada quadro Qi do vídeo, capturado em tempo real, a silhueta é calculada

como um valor binário. O pixel  do quadro é parte da silhueta, se:

Qi − E i ≥ S i (4.3)

37

Page 51: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 51/102

Caso contrário, o pixel  não faz parte da silhueta, mas sim do fundo.

No Algoritmo de Horprasert [27] são calculados, além da média e do desvio padrão,

a distorção de brilho αi e a distorção de cor β i, durante a fase de treinamento

(modelagem do fundo).

A Figura 4.2, ilustra todos os passos necessários para realizar a subtração de fundo

segundo este algoritmo.

No final deste processo são obtidas então, quatro imagens de referência: a imagem

média, a imagem do desvio padrão, a imagem da distorção de brilho e a imagem da

distorção de cor. Nestas imagens, estão modeladas as características do fundo e são

estas as utilizadas como referência no processo de segmentação.

Figura 4.2: Algoritmo de Horprasert [33].

Durante a etapa de segmentação, que ocorre em tempo real, o algoritmo classifica o

pixel  em uma das quatro categorias B, S, H, F diferentes:

• B (Fundo original): se a distorção de brilho e a distorção de cor do pixel 

são similares aos valores correspondentes na imagem de referência;

• S (Fundo com baixa iluminação ou sombra): se a distorção de cor é

similar, mas a distorção de brilho é bem menor do que aquela na imagem de

referência;

38

Page 52: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 52/102

• H (Fundo com alta iluminação): se existe uma distorção de cor similar,

mas uma distorção de brilho maior do que aquela na imagem de referência;

• F (Objeto em Movimento): o pixel  é considerado como sendo parte do

objeto em movimento, se a distorção de cor é diferente aos valores esperadosno treinamento.

4.2.3 Compressão e descompressão do vídeo e da máscara

da silhueta

Após a extração da silhueta, temos uma imagem do participante composta pela

textura e uma máscara que corresponde à região de interesse (silhueta).

A textura é comprimida utilizando JPEG, o qual apresenta perdas, mas produzalta compressão para imagens. Na realidade, foi utilizada uma versão otimizada da

biblioteca JPEG. Esta versão foi criada pela Intel e faz parte da IPP Library, sendo

quase cinco vezes mais rápida que a biblioteca JPEG comum.

A máscara é comprimida utilizando a biblioteca ZLIB, a qual não apresenta perdas e

produz alta compressão para os dados da máscara, que é formada por muitas regiões

de valores binários iguais e consecutivos.

4.2.4 Transmissão da imagem via rede IP

Para a transmissão via rede, a estrutura de um pacote foi projetada para conter a

textura e máscara comprimidas, dentro do campo data , representada pelo seguinte

código:

1 #ifndef  PACKET_H

2 #define PACKET_H

3

4 namespace t d p {5 c on st in t PAYLOAD_MAXSIZE = 1 1 7 2 ;

6 c on st in t SERVER_UDP_PORT = 1 5 8 2 0 ;

7

8 typedef struct {

9 unsigned long f r a me _ s i z e ;

10 unsigned long mask_size ;

11 unsigned char∗ data ;

12 } PACKET;

13 }

14 #endif  //PACKET_H 

39

Page 53: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 53/102

São enviados no início do pacote o tamanho da textura e o tamanho da máscara,

representando os tamanhos contidos no campo data . Não há informação no pacote

a qual câmera ele pertence, pois são criados quatro sockets, um para cada câmera,

transportando de forma independente as quatro streams de vídeo.

Em contraste à infraestrutura de software baseada em CORBA, utilizada em [34], o

presente trabalho utiliza programação em sockets UDP, por ter menor latência nas

transmissões via rede.

4.2.5 Reconstrução do vídeo

A biblioteca provê vários tipos de renderizações. Ao receber as sequências de vídeo

das várias câmeras, cada uma delas possui a informação de imagem e a máscara

(silhueta), ambas descompactadas. A composição formada pela imagem e pela más-

cara resulta em uma textura agora no formato RGBA, ou seja, com o chamado canal

alfa , que representa o nível de opacidade do pixel.

Assim, esta textura pode ser sobreposta ao ambiente virtual através de três tipos

de renderizações:

• Billboard : Cada quadro RGBA é renderizado em um billboard . Neste método,

a classe RenderBillboard  insere o vídeo do participante no ambiente virtual

dentro de uma geometria plana que não se move, mesmo quando o ambiente

virtual é manipulado;

• Sprite: Cada quadro RGBA é renderizado em um Sprite. Neste método, a

classe RenderSprite insere o vídeo do participante no ambiente virtual dentro

de uma geometria plana que se move quando o ambiente virtual é manipu-

lado, permitindo uma sensação maior de integração do vídeo sobreposto com

o ambiente virtual;

• VisualHull : Neste método, a classe RenderVisualHull  usa reconstrução do

vídeo baseado no algoritmo de VisualHull  [10, 11], o qual proporciona os me-

lhores resultados visuais, mas quando o ambiente virtual é manipulado o algo-

ritmo possui um desempenho inferior aos métodos simples anteriores (menor

taxa de quadros por segundo), por ser bem mais complexo, tal como é mos-

trado nas avaliações realizadas nas considerações finais deste trabalho.

A classe RenderVisualHull implementa a renderização de um Visual Hull baseado em

imagem, tal como descrito em [10]. Assim, ela utiliza simultaneamente as silhuetasprovenientes das quatro câmeras disponíveis no sistema (ou mais se existirem).

40

Page 54: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 54/102

É importante observar que, como as classes RenderBillboard  e RenderSprite só po-

dem operar com uma câmera por vez, a melhor câmera é escolhida por um algoritmo

dentro da classe, que calcula o menor ângulo formado por um raio que parte do ob-

servador para a origem com outros raios que partem das câmeras para a origem, ou

seja, a câmera escolhida será aquela que proporcionar menor ângulo.

4.2.6 Métodos para teleoperação

A classe Teleoperation  é responsável pela comunicação com os módulos de controle

e sensoriamento e sua integração com os módulos de controle e sensoriamento se dá

através da comunicação com o conversor USB-RS485, o qual emula uma porta serial

no computador.

Do ponto de vista da classe, a comunicação se passa como uma comunicação serial

convencional, mas na realidade esta flui pela USB até o barramento RS-485, onde

os módulos estão instalados.

4.3 Protótipo para validação da biblioteca

Adicionalmente, um protótipo foi desenvolvido, também em linguagem C++, e to-

talmente orientado a objetos, o qual utiliza a biblioteca proposta.O sistema de câmeras pode ser visto previamente montado na Figura 4.3.

Figura 4.3: Infraestrutura física montada.

As quatro câmeras são instaladas em tripés e direcionadas para o centro de visuali-

41

Page 55: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 55/102

zação onde se encontra um chessboard .

O chessboard  é um marcador padrão para calibrar os parâmetros intrínsecos e ex-

trínsecos das câmeras. Com os parâmetros intrínsecos pode-se modelar a distância

focal e a distorção provocada pela lente das câmeras, com os parâmetros extrínsecos

é possível calcular a posição das câmeras e suas orientações relativas.

Uma vez instalada a infraestrutura, a calibragem só precisa ser feita uma única vez,

desde que não se mova as câmeras e não se faça ajustes na objetiva.

A Figura 4.4 mostra a janela do protótipo em funcionamento. Neste ensaio o protó-

tipo está recebendo as streams de vídeo com a subtração de fundo já computada de

outra máquina (Figura 4.5) e fazendo a composição do vídeo do usuário em um am-

biente virtual. O protótipo está recebendo também a temperatura real do ambiente

onde o usuário se encontra e integrando esta informação ao ambiente virtual.

Figura 4.4: Composição do vídeo do participante e monitoramento a temperatura

4.4 Construção do hardware para teleoperação

Os módulos para controle e sensoriamento desenvolvidos neste trabalho são pequenos

sistemas embutidos microcontrolados. Os módulos se conectam por meio de um

barramento RS485. O padrão RS485 permite a interligação de diversos dispositivos

no mesmo barramento, formada por apenas um par de condutores.Vários módulos podem ser distribuídos pelo equipamento ou ambiente através do

42

Page 56: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 56/102

Figura 4.5: Subtração de fundo e transmissão 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 módulos são genéricos, com entradas analógicas e digitais e saídas digitais ou

comandadas com relé. Nas entradas podem ser ligados sensores de diversos tipos e

as saídas podem comandar outros disposivos de baixa tensão. Há uma saída especial

com um relé para acionar cargas de até 5A em 110V.

No projeto do módulo, dois circuitos integrados foram utilizados: um microcontro-

lador (PIC16F88), que controla os sinais dos sensores, atuadores e a comunicação,

além de outro integrado, para prover a adaptação elétrica ao barramento RS485

(DS1487). No apêndice C são apresentados o diagrama esquemático do módulo,

bem como os layouts das placas de circuito impresso.

O módulo foi montado em uma placa de aproximadamente 6 x 5cm e sua alimentaçãodeve ser provida por uma fonte externa de 5V a 30V.

O microcontrolador PIC16F88 foi utilizado em versão SMD (Surface Mount Device),

a fim de reduzir as dimensões do módulo. Como este tipo de encapsulamento fica

soldado de forma permanente à placa, a programação do microcontrolador teve que

ser feita por meio da técnica ICSP (In Circuit Serial Programming ). Portanto, além

dos conectores de alimentação, entradas e saídas, relé e barramento RS485, há um

conector especial de 6 pinos para uso exclusivo de programação ICSP.

Um conversor USB-RS485 também foi projetado e construído especificamente paraeste trabalho. Dois circuitos integrados foram utilizados: USB (FT232RL) e RS485

43

Page 57: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 57/102

(SN65HVD3082E). A interligação dos dois circuitos integrados é feita de forma tri-

vial, os dados enviados pela porta USB são 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 comuni-

cação serial, enviando dados segundo um protocolo estipulado para obter dados dos

módulos ou controlá-los, conforme o caso. A alimentação do conversor é provida

pela própria porta USB. No apêndice C são apresentados o diagrama esquemático

do conversor, bem como os layouts das placas de circuito impresso.

O controlador USB não necessita de programação ( firmware), no entanto um pe-

queno programa em assembly foi desenvolvido para os módulos. A programação dos

módulos foi feita através sofware MPLAB da Microchip e o hardware de programa-

ção (gravador) utilizado foi o Pickit 2.

Os projetos do módulo e do controlador USB foram feitos no software Proteus da

Labcenter, onde é possível criar o diagrama esquemático, simular e gerar os layouts

das placas de circuito impresso.

44

Page 58: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 58/102

Capítulo 5

Considerações Finais

5.1 Avaliações

Com o protótipo apresentado, foi possível obter o tempo gasto na etapa de extração

de silhueta, a qual empregou o algoritmo de Horprasert, em várias resoluções de

vídeo diferentes.

Foi possível também obter a quantidade de quadros apresentada em um segundo

(FPS - Frames per second ), ao se utilizar uma sobreposição de vídeo simples ao

ambiente virtual (por meio de um billboard  ou sprite) ou pelo uso do algoritmo deVisual Hull  (Tabelas 5.1 e 5.2).

Tabela 5.1: Diferentes resoluções com uso de billboards ou sprites.

Tabela 5.2: Diferentes resoluções com uso do algoritmo Visual Hull .

45

Page 59: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 59/102

Em seguida, foram gerados três gráficos para melhor observação dos dados contidos

nas tabelas, conforme apresentado nas Figuras 5.1, 5.2 e 5.3.

Figura 5.1: Extração de silhueta: Número de pixels x tempo(ms).

Figura 5.2: Billboards ou sprites: Número de pixels x FPS.

Figura 5.3: Visual Hull : Número de pixels x FPS.

5.2 Conclusões

Este trabalho teve como objetivo projetar e implementar uma infraestrutura de

hardware e software para telepresença 3D e teleoperação utilizando hardware de

baixo custo e baseada em software livre.

46

Page 60: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 60/102

Utilizando o protótipo baseado na infraestrutura proposta, foram realizados testes

que permitiram chegar às seguintes conclusões:

• Com o uso de uma resolução de 320 por 240 pixels, o sistema possui um

desempenho de 10 FPS quando se usa uma sobreposição de vídeo simples aoambiente virtual (por meio de um billboard  ou sprite).

Quando se usa um algoritmo de reconstrução do vídeo, como o Visual Hull ,

um desempenho próximo, em termos de FPS, só ocorre em resoluções muito

baixas (160 por 120 pixels).

O fato se deve a concorrência do algoritmo com as threads responsáveis pela

descompressão JPEG da imagem e descompressão das silhuetas de todas as

câmeras recebidas;

• Em relação às técnicas de compressão empregadas, foram feitos testes com a

JPEG comum e a JPEG otimizada pela Intel. Esta última demonstrou ser

muito mais rápida tanto na compressão quanto na descompressão. Não foi

testado nenhum nível de MPEG, pois, dada a necessidade de sincronismo de

diversas câmeras e a requisição de um buffer para o processamento da MPEG,

tal procedimento tornaria impraticável o sincronismo necessário à reconstrução

do vídeo em tempo real;

• O resultado alcançado em termos de custo de hardware e software podemser considerados baixos. Entenda-se custo baixo como o custo próximo ao

necessário a se implantar um sistema de videoconferência convencional;

• O protótipo permite o controle e sensoriamento de um ambiente real através

dos módulos descritos.

5.3 Contribuições

Estão apresentadas a seguir as principais contribuições deste trabalho:

• Substituição dos tradicionais avatares pelo vídeo 3D do participante em tempo

real, aplicando algoritmos de extração da silhueta e reconstrução do vídeo do

participante;

• Levantamento e teste de soluções de captura de múltiplas câmeras: O estudo

pode servir de guia para outras aplicações que utilizem múltiplas câmeras;

47

Page 61: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 61/102

• Investigação das técnicas e algoritmos de extração de silhueta e reconstrução

do vídeo 3D do participante, a fim de satisfazer critérios de qualidade e latência

de uma aplicação de tempo real;

• Investigação de hardware que possibilite uma construção de baixo custo;• Integração de funções de teleoperação dentro da mesma infraestrutura de te-

lepresença 3D;

• Sugestão de uma infraestrutura de hardware aliada à produção de uma biblio-

teca de software para telepresença 3D e teleoperação, que atenda aos requisitos

dos objetivos deste trabalho, sendo disponibilizada à comunidade de forma li-

vre e de código aberto.

5.4 Pesquisas Futuras

Ao finalizar este trabalho, algumas questões importantes capazes de nortear pesqui-

sas futuras devem ser colocadas:

• Suporte a vários participantes simultâneos: A biblioteca desenvolvida permite

a criação de um sistema de telepresença que suporte vários participantes si-multâneos, renderizados no mesmo ambiente virtual. No protótipo de teste foi

implementada a renderização para apenas um participante.

• Processamento de áudio: Não foi levada em consideração a transmissão de

áudio do participante. A biblioteca poderia ser estendida para incorporar

áudio em tempo real, sincronizado com o vídeo.

• Comunicação sem fio entre os módulos de teleoperação: Os módulos de con-

trole e sensoriamento estão interligados via rede RS485. Poderiam ser desen-

volvidos módulos sem fio, utilizando, por exemplo, os protocolos Zibgbee ou

Bluetooth.

• Outros algoritmos de extração de silhueta e reconstrução 3D: Poderiam ser

implementados outros algoritmos, estendendo biblioteca proposta.

48

Page 62: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 62/102

Referências Bibliográficas

[1] MAYBURY, M. T. “Collaborative Virtual Environments for Analysis and Deci-

sion Support”, Commun. ACM , v. 44, n. 12, pp. 51–54, 2001. Disponível

em: <http://doi.acm.org/10.1145/501317.501342>.

[2] CRUZ-NEIRA, C., SANDIN, D., DEFANTI, T. “Surround-Screen Projection-Based Virtual Reality: The Design and Implementation of the CAVE”,

Proceedings of SIGGRAPH ’93 , pp. 135–142, 1993.

[3] LALIOTI, V., HASENBRINK, F., TRAMBEREND, H., et al. “Immersive

Telepresence in Responsive Virtual Environments”. , 1998. Disponí-

vel em: <http://citeseer.ist.psu.edu/338014.html;http://www.

cs.up.ac.za/~vali/bio/../Publications/NEC98.pdf>.

[4] DE SOUZA VIEIRA, R. Protótipo de um Sistema de Monitoramento RemotoInteligente. Tese de Mestrado, Universidade Federal de Santa Catarina,

Brazil, Junho 1999.

[5] GROSS, M., WÜRMLIN, S., NAEF, M., et al. “Blue-c: A Spatially Immersive

Display and 3D Video Portal for Telepresence”. In: ACM Transactions on 

Graphics, pp. 819–827, 2003.

[6] HASENBRINK, F., LALIOTI, V. “Towards Immersive Telepre-

sence - SCHLOSSTAG’97”. , 2000. Disponível 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 benefits

of immersion for collaboration in virtual environments”. In: VRST ’05:

Proceedings of the ACM symposium on Virtual reality software and te-

chnology , pp. 78–81, 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

Page 63: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 63/102

[9] PETIT, B., LESAGE, J.-D., BOYER, E., et al. “Virtualization gate”. In:

SIGGRAPH ’09: ACM SIGGRAPH 2009 Emerging Technologies, pp.

1–1, 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. 369–374, 2000.

[11] LAURENTINI, A. “The Visual Hull Concept for Silhouette-Based Image Un-

derstanding”, IEEE Trans. Pattern Anal. Mach. Intell., v. 16, n. 2,

pp. 150–162, 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. 214–221, 1999.Disponível em: <http://link.springer.de/link/service/journals/

00530/bibs/9007003/90070214.htm>.

[13] SCHREER, O., SHEPPARD, P. “VIRTUE - The step towards immersive tele-

presence in virtual video-conference sysstems”. In: Proc. of eBusiness and 

eWorks 2000 , pp. 989–995, Outubro 2000.

[14] SADAGIC, A., TOWLES, H., HOLDEN, L., et al. “Tele-immersion

Portal: Towards an Ultimate Synthesis”. , 2003. Disponívelem: <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. Dispo-

nível 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 Office of the Future:A Unified Approach to Image-based Modeling and Spatially Immersive

Displays”. In: SIGGRAPH , pp. 179–188, 1998. Disponível 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. 35–39, 2000.

[18] MARK, M., COX, M., BARUCH, D. J. E. F. “Robotic Telescopes: An In-

teractive Exhibit on the World-Wide Web”. In: Proc. 2nd International 

Conference of the World-Wide Web, pp. 150–162, October 1994.

50

Page 64: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 64/102

[19] SIMMONS, R., FERNANDEZ, J., GOODWIN, R., et al. “Xavier: An Auto-

nomous Mobile Robot on the Web”. In: IEEE Robotics and Automation 

Magazine, pp. 43–48, 1999.

[20] MARTINEZ, G., KAKADIARIS, I. A., MAGRUDER, D., et al. “Teleope-rating ROBONAUT: A case study”. In: In The British Machine Vision 

Conference (BVMC 2002), pp. 757–766, 2002.

[21] BENFORD, S., BROWN, C., REYNARD, G., et al. “Shared Spaces: Trans-

portation, Artificiality, and Spatiality.” In: CSCW , pp. 77–86, 1996.

[22] MILGRAM, P., KISHINO, F. “A Taxonomy of Mixed Reality Visual Dis-

plays”, 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 inte-

raction in collaborative virtual environments”, ACM Trans. Comput.-

Hum. Interact , v. 7, n. 4, pp. 477–509, 2000. Disponível 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. 567–576, 2005. ISSN: 0730-0301. doi:

http://doi.acm.org/10.1145/1073204.1073231. Disponível em: <http://

www.cs.brown.edu/people/morgan/DefocusVideoMatting>.

[25] DAVIS, J. W., BOBICK, A. F. “A Robust Human-Silhouette Extraction Te-

chnique for Interactive Virtual Environments”. In: CAPTECH ’98: Pro-

ceedings of the International Workshop on Modelling and Motion Cap-

ture Techniques for Virtual Environments, pp. 12–25, 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 InteractivePresentation System”. In: Proceedings of Asian Conference for Computer 

Vision 2004, pp. 486–490, 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. 1–19, 1999.

[28] RANDER, P. W., NARAYANAN, P., KANADE, T. “Virtualized Re-ality: Constructing Time-Varying Virtual Worlds from Real World

51

Page 65: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 65/102

Events”. In: Yagel, R., Hagen, H. (Eds.), IEEE Visualization ’97 , pp.

277–284, 1997. Disponível em: <citeseer.ist.psu.edu/article/

rander97virtualized.html>.

[29] HOKAYEM, P. F., SPONG, M. W. “Bilateral teleoperation: An historicalsurvey”, Automatica , v. 42, n. 12, 2006. Disponível 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. 205–214, 1995.

[32] GOLDBERG, K., MASCHA, M., GENTNER, S., et al. “Desktop Teleope-

ration via the World Wide Web”. In: Robotics and Automation, 1995.

Proceedings., 1995 IEEE International Conference on , pp. 654–659, 1995.

[33] TRUYENQUE, M. A. Q. Uma Aplicação de Visão Computacional que Utiliza 

Gestos da Mão para Interagir com o Computador . Tese de Mestrado,

PUC-Rio - Pontifícia Universidade Católica do Rio de Janeiro, Brazil,

Março 2005.

[34] GROSS, M., LAMBORAY, E., NÄF, M., et al. “The blue-c Distributed Scene

Graph”. In: Proceedings of IPT/EGVE 2003 . ACM Press, 2003.

52

Page 66: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 66/102

Apêndice A

Diagramas de Classes

A seguir são apresentados os diagramas de classe da biblioteca desenvolvida. Apesardas classes serem planejadas antes do desenvolvimento, os diagramas foram gerados

após a conclusão da implementação da biblioteca, representando assim, de forma

fiel, o desenvolvimento alcançado. Para gerar os diagramas de classe, foi utilizado o

próprio ambiente de desenvolvimento do Visual Studio C++ da Microsoft.

Os seguintes diagramas de classe compõem a biblioteca:

• Classes de captura de vídeo: Onde a principal classe é a VideoCapture,

onde está representado um dispositivo de captura.• Classes de janela de vídeo: Onde a principal classe é a VideoDisplay , onde

está representada uma janela de visualização de vídeo.

• Classe Framebuffer : Classe responsável por armazenar os quadros de forma

protegida.

• Classe Calibration : Possui todo código necessário à calibragem intrínseca

e extrínseca das câmeras.

• Classe Silhouette: Armazena a silhueta e implementa o algoritmo de Hor-

prasert.

• Classe Camera : Encapsula todas as classes anteriores.

• Classes de renderização: Contém os algoritmos de renderização chamados

Billboard , Sprite e VisualHull .

• Classe Teleoperation : Contém os métodos para teleoperação.

Adicionalmente, as classes do programa principal (protótipo) estão relacionadas nafigura A.5.

53

Page 67: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 67/102

Figura A.1: Classes de captura de vídeo.

54

Page 68: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 68/102

Figura A.2: Classes de janela de vídeo.

55

Page 69: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 69/102

Figura A.3: Classes de câmera, framebuffer, calibragem e silhueta.

56

Page 70: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 70/102

Figura A.4: Classes de renderização e teleoperação.

57

Page 71: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 71/102

Figura A.5: Classes do programa principal (protótipo).

58

Page 72: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 72/102

Apêndice B

Listagem e documentação das

principais classes da biblioteca

A documentação das classes da biblioteca foi gerada pelo software Doxygen. Os

comentários no código fonte, colocados de forma estruturada, são rastreados pelo

Doxygen e organizados de forma a gerar uma documentação fiel ao estado atual do

desenvolvimento.

B.1 Classe VideoCapture#include <VideoCapture.h>

Métodos públicos

• 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

Page 73: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 73/102

• 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 ∗buffer,

int size, void ∗arg), void ∗arg)

Atributos públicos

• void(∗ _pCallback )(unsigned char ∗buffer, 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 Descrição detalhada

Classe abstrata que representa um dispositivos de captura em, possivelmente, várias

plataformas diferentes.

B.1.2 Documentação dos métodos

B.1.2.1 int tdp::VideoCapture::getDevice () [inline]

Obtém o id do dispositivo capturado (inicia em 0).

60

Page 74: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 74/102

B.1.2.2 TypeFormat tdp::VideoCapture::getFormat () [inline]

Retorna o formato do padrão de vídeo.

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 vídeo.

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]

Obtém 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 ∗buffer, int size, void ∗arg) pCallback ,

void ∗ arg ) [inline, virtual]

Registra a callback de captura dos frames.

61

Page 75: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 75/102

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

Configura o id do dispositivo a ser capturado (inicia em 0).

B.1.2.12 void tdp::VideoCapture::setFormat (TypeFormat format )[inline]

Configura o formato do padrão de vídeo.

B.1.2.13 void tdp::VideoCapture::setFPS (int fps) [inline]

Configura a taxa de quadros por segundo (FPS).

B.1.2.14 void tdp::VideoCapture::setHeight (int h ) [inline]

Configura a altura dos quadros capturados.

B.1.2.15 void tdp::VideoCapture::setInput (TypeInput input )

[inline]

Configura o tipo de entrada de vídeo.

B.1.2.16 void tdp::VideoCapture::setName (std::string name)

[inline]

Configura o nome do objeto de captura.

B.1.2.17 void tdp::VideoCapture::setSize (int w , int h ) [inline]

Configura o tamanho dos quadros capturados.

B.1.2.18 void tdp::VideoCapture::setTypeName (std::string typenam )

[inline]

Configura o nome do tipo do objeto de captura.

B.1.2.19 void tdp::VideoCapture::setWidth (int w ) [inline]

Configura a largura dos quadros capturados.

62

Page 76: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 76/102

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]

Pára a captura.

Implementada em tdp::VideoCaptureUDP, tdp::WinVideoCaptureGeneric, and

tdp::WinVideoCaptureSAA713x.

B.1.2.22 void(∗ tdp::VideoCapture::_pCallback)(unsigned char

∗buffer, int size, void ∗arg)

Callback de captura dos frames.

63

Page 77: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 77/102

B.2 Classe VideoDisplay

#include <VideoDisplay.h>

Métodos públicos

• VideoDisplay (void ∗handle, int width, int height)

• virtual void render (unsigned char ∗buffer, int rw, int rh)=0

Atributos protegidos

• void ∗ _handle

• int _width

• int _height

B.2.1 Descrição detalhada

Classe que representa a visualização do vídeo em, possivelmente, várias plataformas

diferentes.

B.2.2 Documentação dos métodos

B.2.2.1 virtual void tdp::VideoDisplay::render (unsigned char ∗ buffer ,

int rw , int rh ) [pure virtual]

Renderiza a janela de visualização.

Implementada em tdp::WinVideoDisplay.

64

Page 78: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 78/102

B.3 Classe FrameBuffer

#include <FrameBuffer.h>

Métodos públicos

• FrameBuffer (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 Descrição detalhada

Classe que representa um buffer de um quadro de vídeo. Pussui mutexes para

proteger a escritas e leituras nos buffers.

B.3.2 Documentação dos métodos

B.3.2.1 bool tdp::FrameBuffer::isNew ()

Verifica se o buffer  possui dados novos.

B.3.2.2 void tdp::FrameBuffer::Read (unsigned char ∗ out )

Lê do buffer .

B.3.2.3 void tdp::FrameBuffer::Read2 (unsigned char ∗ out , unsigned

char ∗ out2 )

Lê do buffer  (segunda versão).

B.3.2.4 void tdp::FrameBuffer::Write (unsigned char ∗ in )

Escreve no buffer .

65

Page 79: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 79/102

B.3.2.5 void tdp::FrameBuffer::Write2 (unsigned char ∗ in , unsigned

char ∗ in2 )

Escreve no buffer  (segunda versão).

66

Page 80: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 80/102

B.4 Classe Calibration

#include <Calibration.h>

Métodos públicos

• void init ()

• void initUndistort ()

• void undistort (unsigned char ∗buffer)

• void intrinsicCalibration (bool value)

• void extrinsicCalibration (bool value)

• bool isIntrinsicCalibration ()

• bool isExtrinsicCalibration ()

• bool intrinsicProcessing (unsigned char ∗buffer)

• bool extrinsicProcessing (unsigned char ∗buffer)

• void raytest (unsigned char ∗buffer, 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

Page 81: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 81/102

B.4.1 Descrição detalhada

Classe que representa a calibragem da câmera. Possui métodos para corrigir a

distorção da lente e obter parâmetros intrísecos e extrínsecos da câmera.

B.4.2 Documentação dos métodos

B.4.2.1 void tdp::Calibration::extrinsicCalibration (bool value)

Configura para iniciar ou parar a calibração extrínseca.

B.4.2.2 bool tdp::Calibration::extrinsicProcessing (unsigned char ∗

buffer )

Realiza a calibração extrínseca.

B.4.2.3 void tdp::Calibration::getExtrinsic (double ∗ px , double ∗ py ,

double ∗ pz , double ∗ ox , double ∗ oy , double ∗ oz ) [inline]

Obtém os parâmetros extrínsecos da câmera.

B.4.2.4 TypeExtrinsic tdp::Calibration::getExtrinsic () [inline]

Obtém os parâmetros extrínsecos da câmera.

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]

Obtém os parâmetros intrínsecos da câmera.

B.4.2.7 TypeIntrinsic tdp::Calibration::getIntrinsic () [inline]

Obtém os parâmetros intrínsecos da câmera.

68

Page 82: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 82/102

B.4.2.8 void tdp::Calibration::getSize (int ∗ w , int ∗ h ) [inline]

Obtém 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 correção da distorção.

B.4.2.12 void tdp::Calibration::intrinsicCalibration (bool value)

Configura para iniciar ou parar a calibração intrínseca.

B.4.2.13 bool tdp::Calibration::intrinsicProcessing (unsigned char ∗

buffer )

Realiza a calibração intrínseca.

B.4.2.14 bool tdp::Calibration::isExtrinsicCalibration ()

Verifica se está em calibração extrínseca.

B.4.2.15 bool tdp::Calibration::isIntrinsicCalibration ()

Verifica se está em calibração intrínseca.

B.4.2.16 void tdp::Calibration::raytest (unsigned char ∗ buffer ,

osgViewer::Viewer ∗ viewer )

Teste de projeção de um raio.

69

Page 83: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 83/102

B.4.2.17 void tdp::Calibration::setExtrinsic (double px , double py ,

double pz , double ox , double oy , double oz ) [inline]

Configura os parâmetros extrínsecos da câmera.

B.4.2.18 void tdp::Calibration::setExtrinsic (TypeExtrinsic ex )

[inline]

Configura os parâmetros extrínsecos da câmera.

B.4.2.19 void tdp::Calibration::setHeight (int h ) [inline]

Configura 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]

Configura os parâmetros intrínsecos da câmera.

B.4.2.21 void tdp::Calibration::setIntrinsic (TypeIntrinsic in ) [inline]

Configura os parâmetros intrínsecos da câmera.

B.4.2.22 void tdp::Calibration::setSize (int w , int h ) [inline]

Configura o tamanho dos quadros capturados.

B.4.2.23 void tdp::Calibration::setWidth (int w ) [inline]

Configura a largura dos quadros capturados.

B.4.2.24 void tdp::Calibration::undistort (unsigned char ∗ buffer )

Realiza a correção da distorção.

70

Page 84: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 84/102

B.5 Classe Silhouette

#include <Silhouette.h>

Métodos públicos

• 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 Descrição detalhada

Classe que representa uma silhueta extraída de um frame. Possui métodos para

obter estatísticas do fundo e fazer a subtração. Atualmente implementa o algoritmo

de Horprasert et al.

B.5.2 Documentação dos métodos

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

Habilita a extração de silhueta.

B.5.2.2 void tdp::Silhouette::getSilhouette (unsigned char ∗ sil ,

unsigned char ∗ fp )

Extrai a silhueta.

71

Page 85: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 85/102

B.5.2.3 bool tdp::Silhouette::isLearning () [inline]

Verifica se está em fase de treinamento (modelagem do fundo).

B.5.2.4 bool tdp::Silhouette::isReady () [inline]

Verifica se já está pronto para operar.

B.5.2.5 bool tdp::Silhouette::isStackFull ()

Verifica se já capturou a quantidade total de quadros.

B.5.2.6 void tdp::Silhouette::learnBackground () [inline]

Configura se está ou não 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 )

Configura o tamanho do quadro.

B.5.2.9 void tdp::Silhouette::setNumFrames (int n )

Configura a quantidade de quadros.

B.5.2.10 void tdp::Silhouette::setShadowColor (bool value)

Seleciona a cor do fundo, após a extração 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 )

Configura os limiares de operação.

72

Page 86: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 86/102

B.5.2.12 void tdp::Silhouette::stackFrame (unsigned char ∗ fp )

Armazena um quadro.

73

Page 87: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 87/102

B.6 Classe Camera

#include <Camera.h>

Métodos públicos

• 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 frameBuffer (FrameBuffer ∗frameBuffer)

• FrameBuffer ∗ frameBuffer ()

B.6.1 Descrição detalhada

Classe que representa uma câmera

B.6.2 Documentação dos métodos

Simplesmente encapsula as classes anteriores.

74

Page 88: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 88/102

B.7 Classe RenderBillboard

#include <RenderBillboard.h>

Métodos públicos

• RenderBillboard (osg::Group ∗root, osgViewer::Viewer ∗viewer,

std::vector< Camera ∗ > cameras)

• void run ()

Métodos estáticos

• static void threadFunc (RenderBillboard ∗obj)

B.7.1 Descrição detalhada

Classe que representa a renderização em um simples billboard .

B.7.2 Documentação dos métodos

B.7.2.1 void tdp::RenderBillboard::run ()

Inicia a renderização.

B.7.2.2 static void tdp::RenderBillboard::threadFunc (RenderBillboard

∗ obj ) [static]

Método estático responsável por executar a renderização como uma thread .

Observação: As outras classes de renderização não são mostradas aqui pois seguem

o mesmo padrão.

75

Page 89: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 89/102

B.8 Classe Teleoperation

#include <Teleoperation.h>

Métodos públicos

• 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 Descrição detalhada

Classe responsável pela comunicação bidirecional dos sensores e atuadores. Provê

também métodos para extrair e configurar comandos que podem ser utilizados dentro

do ambiente virtual para controlar atuadores ou obter dados dos sensores.

B.8.2 Documentação dos métodos

B.8.2.1 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 identificação (ID) do dispositivo

B.8.2.3 int tdp::Teleoperation::getMode () [inline]

Retorna o modo de operação (0 - sensor, 1 - atuador).

76

Page 90: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 90/102

B.8.2.4 int tdp::Teleoperation::getSerialPort () [inline]

Verifica 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]

Configura o comando a ser enviado.

B.8.2.9 void tdp::Teleoperation::setDeviceId (int deviceid ) [inline]

Configura a identificação (ID) do dispositivo

B.8.2.10 void tdp::Teleoperation::setMode (int mode) [inline]

Configura o modo de operação (0 - sensor, 1 - atuador).

B.8.2.11 void tdp::Teleoperation::setSerialPort (int serialport )

[inline]

Configura a porta serial (emulada por USB) sendo usada.

B.8.2.12 void tdp::Teleoperation::setTCPPort (int tcpport ) [inline]

Configura a porta TCP a ser utiizada.

77

Page 91: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 91/102

Apêndice C

Diagramas Esquemáticos e

Layouts dos Circuitos Eletrônicos

A seguir são apresentados os diagramas esquemáticos e o layout dos circuitos de-

senvolvidos para suporte à teleoperação. Foi utilizado o software Proteus 7 da Lab-

Center Electronics para todas as fases do projeto, desde a diagramação, simulação,

até o layout  das placas de cirtuito impresso.

Com o referido software também foi possível gerar um modelo 3D das placas, antes

do processo de fabricação. Pode se consultar, portanto, nas figuras a seguir: os

diagrama esquemáticos, os layouts da placa, e os modelos 3D, além de imagens reaisdos circuitos montados.

78

Page 92: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 92/102

Figura C.1: Diagrama esquemático do Módulo de Controle e Sensoriamento.

79

Page 93: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 93/102

Figura C.2: Layout  superior da placa do Módulo de Controle e Sensoriamento.

Figura C.3: Layout  inferior da placa do Módulo de Controle e Sensoriamento.

Figura C.4: Layout  dos componentes do Módulo de Controle e Sensoriamento.

Figura C.5: Modelo 3D do Módulo de Controle e Sensoriamento.

80

Page 94: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 94/102

Figura C.6: Diagrama esquemático do Conversor USB-RS485.

81

Page 95: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 95/102

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

Page 96: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 96/102

Figura C.11: Placas de circuito impresso do Módulo e do Conversor.

Figura C.12: Módulo de Controle e Sensoriamento montado.

Figura C.13: Conversor USB-RS485 montado.

83

Page 97: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 97/102

Glossário

Avatar Representação gráfica de um usuário em um

ambiente de realidade virtual. Dependendo da

tecnologia, pode variar desde um sofisticado

modelo 3D até uma simples imagem plana.

Biblioteca Uma coleção de subrotinas ou métodos uti-

lizados no desenvolvimento de software. Bi-

bliotecas contém código e dados auxiliares,

provendo serviços a programas independentes,

permitindo o compartilhamento e a alteração

de código e dados de forma modular.

Billboard Um objeto gráfico, normalmente um retân-

gulo, que uma vez dentro de um ambiente vir-

tual, está sempre com sua normal voltada para

o observador.

Bluetooth É uma especificação industrial para áreas de

redes pessoais sem fio. O Bluetooth provê uma

maneira de conectar e trocar informações en-

tre dispositivos como telefones celulares, no-

tebooks, computadores, impressoras, câmeras

digitais e diversos outros dispositivos, atravésde uma freqüência de rádio de curto alcance,

globalmente não licenciada e segura.

Buffer Região de memória temporária utilizada para

escrita e leitura de dados.

84

Page 98: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 98/102

Canal Alfa O canal alfa pode ser visto como a quarta com-

ponente na definição da cor, ele define a opaci-

dade de um pixel em uma imagem. No espaço

de cores RGB é comum seu acréscimo, resul-tando em RGBA, ou seja, Vermelho, Verde,

Azul e o alfa.

Cave Sala onde são projetados gráficos em três di-

mensões, em suas paredes, podendo ser visu-

alizadas por pessoas dentro da mesma, para

que possam explorar e interagir com objetos,

pessoas virtuais e outros modelos no mundo

virtual.

CRT Acrônimo em inglês para Cathode Ray Tube

que em português significa “tubo de raios ca-

tódicos”, também conhecido como Cinescópio.

Usado em muitos monitores de computador e

televisores, os CRTs são hoje substituídos pe-

los monitores de Plasma, LCD, LED e OLED.

Directshow Parte da API do DirectX  desenvolvido pela

Microsoft para execução de arquivos multimí-dia para a plataforma Windows.

Firewire Também conhecido como i.Link, IEEE 1394

ou High Performance Serial Bus/HPSB , é

uma interface serial para computadores pes-

soais e aparelhos digitais de áudio e vídeo que

oferece comunicações de alta velocidade e ser-

viços de dados em tempo real.FPS Acrônimo em inglês para Frames per Second ,

representa o número de quadros de vídeo ren-

derizados em um segundo.

Frame Um quadro de vídeo completo, onde uma ima-

gem é renderizada.

HDM Acrônimo em inglês para Head Mounted Dis-

lay , termo utilizado para designar capacetesde realidade virtual.

85

Page 99: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 99/102

IP Acrônimo em inglês para Internet Protocol , o

qual é um protocolo da camada de redes de

computadores. O IP é o principal protocolo daInternet, responsável por encaminhar os paco-

tes de dados da origem até o destino.

JPEG/JPG Método comumente usado para comprimir

imagens. Além de ser um método de com-

pressão, é frequentemente considerado como

um formato de arquivo. É importante notar

que o JPEG é um método com perdas na com-

pressão, o que remove informações da imagem

original, mas pode reduzir bastante o tamanho

do arquivo.

LCD Acrônimo em inglês para Liquid Crystal Dis-

play  que em português significa “Display de

Cristal Líquido”. O LCD é um painel fino,

usado para exibir informações por via eletrô-

nica, como texto, imagens e vídeos. Seu usoinclui monitores para computadores, televiso-

res, painéis de instrumentos e outros disposi-

tivos.

MPEG Compõe um conjunto de métodos usados para

compressão de áudio e vídeo. Representa tam-

bém o nome de um arquivo digital contendo

vídeo e áudio digitais codificados seguindo de-terminados padrões de compressão e armaze-

nados em formatos específicos (Ex.: MPEG 1,

MPEG 2, etc).

86

Page 100: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 100/102

Pixel É o menor elemento num dispositivo de exibi-

ção (como por exemplo um monitor), ao qual

é possivel atribuir-se uma cor. De uma forma

mais simples, um pixel é o menor ponto queforma uma imagem digital, sendo que o con-

 junto de milhares de pixels formam a imagem

inteira.

Porta Serial Tipo de conexão bidirecional, através do qual

os bits fluem um por vez, em série. Os com-

putadores pessoais antigos possuíam normal-

mente duas portas seriais, sendo designadas

COM1 e COM2. Hoje ainda se encontram

alguns modelos com pelo menos uma porta

serial, sendo estas substituídas pelas portas

USB.

RGB Sistema de cores aditivas formado pelo Ver-

melho (Red ), Verde (Green ) e Azul (Blue).

RGBA Sistema de cores aditivas formado pelo Verme-

lho (Red ), Verde (Green ), Alfa (Alpha ). Veja

“Canal Alfa”.RS-232 Também conhecido por EIA RS-232C ou V.24,

é um padrão para troca serial de dados bi-

nários entre um DTE (terminal de dados, de

Data Terminal equipment ) e um DCE (co-

municador de dados, de Data Communication 

equipment ). É comumente usado nas portas

seriais dos PCs.

RS-485 Também conhecido por TIA/EIA-485, é umpadrão para troca serial de dados binários,

cuja transmissão é feita em linhas balancea-

das. Ao contrário do RS-232, permite mais de

dois dispositivos em uma mesma linha, sendo

portanto um sistema multiponto.

87

Page 101: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 101/102

Socket Um soquete pode ser usado em ligações fim a

fim em redes de computadores para criar um

elo bidirecional de comunicação entre dois pro-

gramas. A interface padronizada de soquetessurgiu originalmente no sistema operacional

Unix BSD (Berkeley Software Distribution );

portanto, eles são muitas vezes chamados de

Berkeley Sockets.

Sprite É normalmente uma imagem bidimensional

que é sobreposta a uma cena já construída.

Difere de um Billboard  por não ter seu plano

normal necessariamente voltado sempre para

o observador. Veja Billboard .

Stream Pode ser definido como um fluxo de dados

em um sistema computacional, sendo aplicado

para fluxos de dados em relação a arquivos em

disco ou mesmo em fluxos de áudio e vídeo em

redes de computadores.

TCP Acrônimo em inglês para Transmission Con-

trol Protocol , o qual é um protocolo da ca-mada de transporte de redes de computadores.

O TCP é um protocolo orientado à conexão,

nele, há garantia de entrega dos pacotes envi-

ados.

Thread Pode ser traduzido como “linha de execução”,

é uma forma de um processo computacional

dividir a si mesmo em duas ou mais tarefas

que podem ser executadas simultaneamente.

UDP Acrônimo em inglês para User Datagram Pro-

tocol , o qual é um protocolo da camada de

transporte de redes de computadores. O UDP

é um protocolo não orientado à conexão, nele,

não há qualquer tipo de garantia de entrega

dos pacotes enviados.

88

Page 102: TELEPRESENÇA

5/11/2018 TELEPRESEN A - slidepdf.com

http://slidepdf.com/reader/full/telepresenca 102/102

USB Acrônimo em inglês para Universal Serial Bus,

é um tipo de conexão serial que permite a co-

nexão e desconexão de periféricos sem a ne-

cessidade de desligar o computador. O padrãoUSB permite a conexão de até 127 periféricos,

com taxa de transmissão superior à porta se-

rial convencional.

Voxel Corresponde à versão em três dimensões do

termo Pixel. É a menor unidade gráfica de

volume.

Zigbee O termo ZigBee designa um conjunto de es-

pecificações para a comunicação sem fio entre

dispositivos eletrônicos, com ênfase na baixa

potência de operação, na baixa taxa de trans-

missão de dados e no baixo custo de implan-

tação.

ZLIB É uma biblioteca multiplataforma de compres-

são de dados, utilizada principalmente em um

programa de compressão chamado gzip. É im-portante notar que o método de compressão

usado na ZLIB não produz perdas, mantendo

fielmente as informações do arquivo original.

89