Vous êtes sur la page 1sur 12

Fasci-Tech

Simulador De Treinamento Para Operação De Pontes Rolantes Com Imersão Em


Ambiente Virtual
Training Simulator For Operation Of Overhead Cranes With Immersion In Virtual
Environment

Vitor Fiorillo1
Fábio Henrique Cabrini2

Resumo: Pontes rolantes são equipamentos usados para transporte de cargas pesadas, sendo um
elemento importante no cotidiano de diversas empresas. Embora úteis, são dotadas de inerente
risco operacional, e, por isso, demandam operadores devidamente treinados. Esse trabalho
apresenta um sistema de treinamento para esses operadores, com o intuito de reduzir o número de
acidentes nas operações com pontes rolantes.

Palavras-chave: Ponte rolante; realidade virtual; Oculus Rift.

Abstract: Overhead bridge cranes are equipments used for the transportation of heavy loads,
being an important element on the daily routine of many companies. Despite being useful, they
are endowed with inherent operational risk, and for that, they require properly trained operators.
This work presents a training system for these operators, in an effort to reduce the number of
accidents in the operations of bridge cranes.

Key words: Bridge crane; virtual reality; Oculus Rift.

1 Introdução
Em muitas empresas, as pontes rolantes são máquinas essenciais para o desempenho de
suas tarefas cotidianas, transportando cargas de diversos tamanhos e massas de um local ao outro.
Em âmbito industrial, é possível encontrar pontes rolantes com capacidades de carga na casa de
centenas de toneladas. Naturalmente, a operação de máquinas desse tipo apresenta um risco de
operação elevado, onde os operadores devem ser devidamente treinados para minimizar os riscos
de acidentes, perdas humanas e financeiras.
Assim, o objetivo desse projeto é desenvolver um protótipo de simulador virtual para
treinamento de operadores de ponte rolante que evidencie as possibilidades de criação de conteúdo

1 Tecnólogo em Análise e Desenvolvimento de Sistemas pela Faculdade de Tecnologia Termomecânica – São


Bernardo do Campo
2 Professor Mestre na Faculdade de Tecnologia Termomecânica – São Bernardo do Campo

42
Fasci-Tech

de realidade virtual através do uso do Oculus Rift, Unity e de hardware customizado através da
plataforma Arduino.
A motivação para tal seria reduzir o risco de acidentes operacionais com pontes rolantes.
Essa abordagem apresenta como vantagem em relação ao treinamento tradicional a eliminação dos
riscos de acidentes de treinamento, uma vez que todo o treinamento acontece em um ambiente
virtual controlado.

2 Oculus Rift
O dispositivo de realidade virtual Oculus Rift foi adotado para adicionar o fator de imersão
à experiência de uso do simulador, fazendo com que um usuário do mesmo realmente tenha a
sensação de estar dentro da cabine de operação da ponte rolante.

2.1 Princípios de funcionamento


O Oculus Rift, visto na Figura 1, consiste de um aparelho preso à cabeça de um usuário,
com a capacidade de rastrear os movimentos realizados pelo mesmo. Além disso, o aparelho
bloqueia o campo de visão do usuário com uma tela que exibe as imagens vindas de um
computador, criando assim a sensação de se estar imerso em uma realidade virtual. Desse modo,
o funcionamento do aparelho se baseia primariamente em dois princípios: aquisição de
movimentos do usuário e exibição de imagens em tela.

Figura 1 - Oculus Rift DK2

Fonte: iFixit, 2014

Para capturar os movimentos da cabeça do usuário, o dispositivo conta com um conjunto


de três sensores: um acelerômetro, um giroscópio e um magnetômetro. As informações são
coletadas desses três sensores à uma taxa de 1000 Hz e são combinadas num processo chamado
pelos seus criadores de “fusão de sensores”. Os dados advindos desse processo são precisos o
bastante para que se possa reproduzir em um ambiente virtual a orientação real da cabeça de um
usuário (OCULUS, 2016a).

43
Fasci-Tech

Entretanto, esses três sensores não são o suficiente para capturar a posição da cabeça de
um usuário. Para tanto, foi introduzido no kit de desenvolvimento 2 do Oculus Rift uma câmera
infravermelha, que é responsável por captar a luz vinda de LEDs infravermelhos inseridos no
Oculus Rift. Com isso, é possível determinar se um usuário se inclina para os lados ou se ele se
abaixa para ler algo em uma mesa, por exemplo, o que adiciona uma outra camada de imersão à
experiência proposta pelo aparelho (OCULUS, 2016a).
Com os dados sobre os movimentos da cabeça do usuário, o computador pode então gerar
imagens de um ambiente virtual baseadas na direção para a qual o usuário olha. Assim, se um
usuário operando o simulador aqui descrito olhar para a sua esquerda, ele verá a janela esquerda
da cabine da ponte rolante, como se ele estivesse mesmo dentro da cabine.
Um último ponto a se notar é que o Oculus Rift exibe uma imagem ligeiramente diferente
da mesma cena para cada olho. Essa diferença nas imagens existe para simular a visão binocular
humana, onde cada olho capta uma imagem vista de ângulos diferentes (OCULUS, 2016b). O
cérebro combina essas duas imagens em uma só e extrai informações de profundidade da imagem
gerada, numa experiência chamada de estereopsia, que, segundo Oculus (2016b), é um dos grandes
fatores causadores da sensação de imersão experimentada ao se usar o dispositivo.

2.2 Kit de desenvolvimento 2


Desde seu anúncio, uma série de versões diferentes do aparelho foram lançadas, com
sucessivas melhorias no hardware e desempenho do aparelho. A versão utilizada nesse projeto foi
lançada em março de 2014 e ficou conhecida como kit de desenvolvimento 2 (do inglês
Development Kit 2, também chamado simplesmente de DK2) (OCULUS, 2014) e suas
especificações técnicas podem ser vistas no Quadro 1 a seguir.

Quadro 1 - Especificações técnicas do Oculus Rift DK2


Resolução 1920x1080 pixels (960x1080 por olho)
Taxa máxima de atualização da tela 75 Hz
Campo de visão 100° (nominal)
Conexões HDMI 1.4b, USB 2.0
Conector da câmera USB 2.0
Sensores Giroscópio, Acelerômetro e Magnetômetro
Taxa de atualização dos sensores 1000 Hz
Tecnologia do sensor da câmera Sensor CMOS de infravermelho próximo
Taxa de atualização da câmera 60 Hz
Peso 440g (sem cabos)
Fonte: adaptado de Lang, 2014

44
Fasci-Tech

3 Unity
Unity, segundo seus criadores, é “uma flexível e poderosa plataforma de desenvolvimento
para a criação de jogos e experiências interativas 2D e 3D multiplataforma” (UNITY, 2016).
Como parte dos recursos oferecidos pelo software, destacam-se uma implementação da
plataforma Mono (contando com suporte à linguagem C#) para a programação dos sistemas
criados através da ferramenta (UNITY, 2015a) e a solução de física PhysX da Nvidia, com a qual
é possível adicionar movimentos baseados em física e detecção de colisão realista aos projetos
criados com a mesma (UNITY, 2015b).

3.1 Componentes
Uma parte crucial no desenvolvimento de aplicações com a plataforma Unity é o conceito
de “componentes”. Todos os objetos adicionados à uma cena em um projeto criado com a Unity
possuem, por padrão, poucas informações e funcionalidades, mas são utilizados como contêineres
para os componentes. São os componentes os responsáveis por tornar possível que um objeto
ilumine uma cena como se fosse uma lâmpada ou permitir que um objeto reaja a colisões, por
exemplo (UNITY, 2015c).
Existem uma série de componentes com diversas funções, dentre os quais destacam-se: os
filtros de malha e renderizadores de malha, que são responsáveis por definir o modo como um
objeto será exibido na tela (suas cores e formato, por exemplo) (UNITY, 2015d); o componente
transform, que armazena a escala de um objeto (seu tamanho), sua orientação e posição (UNITY,
2015e); e os componentes rigidbody e os colisores, que frequentemente são usados em conjunto,
onde o rigidbody habilita o comportamento físico para um objeto (como reação à gravidade, por
exemplo) e os colisores permitem que os objetos reajam a colisões (sem esses componentes um
objeto poderia simplesmente atravessar uma parede ao invés de ter seu movimento bloqueado, por
exemplo) (UNITY, 2015f).
Um tipo especial de componente, com o qual é implementado o código do sistema a ser
desenvolvido, são os componentes chamados de scripts. Na prática, consistem de classes de código
que herdam da classe MonoBehaviour, disponibilizada pela Unity (UNITY, 2015a).
Os scripts permitem que um desenvolvedor trate uma série de eventos disponibilizados
pela classe MonoBehaviour. Assim, é possível determinar o que ocorrerá toda vez um objeto
colidir com outro, como no caso dos eventos do tipo OnCollision (UNITY, 2015a), ou o que deve
ser processado por um objeto antes de sua exibição na tela, como nos eventos do tipo Start e
Update (UNITY, 2015a).

45
Fasci-Tech

4 Arduino
Segundo seus criadores, Arduino pode ser definido como “uma plataforma de prototipagem
open source baseada em componentes de software e hardware de fácil uso” (PROJETO
ARDUINO, 2016a). Através da plataforma Arduino é possível, por exemplo, identificar se um
botão está pressionado e em seguida ativar um motor ou uma lâmpada.
A plataforma Arduino possui uma série de placas com um número distinto de
características. O Arduino Uno R3 é considerado o modelo de entrada da plataforma, foi adotado
nesse projeto e conta com todos os recursos necessários para a criação e integração do controle
com o simulador aqui apresentado.

4.1 Recursos
Um dos principais recursos de um Arduino Uno é seu microcontrolador ATMega 328p. O
microcontrolador atua como o processador da placa, sendo responsável também por armazenar as
instruções de código. Outros recursos que o microcontrolador oferece são uma série de pinos de
entrada e saída (usados para interagir com o ambiente externo, como ativar motores ou ler o estado
de um botão), conversores analógico/digital integrados e recursos embutidos para comunicação
serial (BLUM, 2013).
O ecossistema Arduino provê um ambiente de desenvolvimento simples e eficiente, com o
qual se escreve o código em linguagem C/C++ que posteriormente é gravado no microcontrolador.
Além disso, seu ambiente de desenvolvimento também conta com um monitor serial que pode ser
usado para realizar testes de comunicação entre o Arduino e o computador conectado ao mesmo
(PROJETO ARDUINO, 2016b).
Finalmente, a programação do microcontrolador é realizada através de uma porta USB
presente na placa, além do uso do bootloader. Recurso necessário que evita o uso de um dispositivo
adicional de hardware, chamado programador (BLUM, 2013).

5 Desenvolvimento Do Simulador
A solução proposta envolve uma série de componentes e ferramentas e foi dividida em
algumas etapas aqui apresentadas. A Figura 2 exibe uma visão geral da arquitetura do projeto, com
os principais elementos envolvidos e seus fluxos de dados (representados pelas setas).
O operador do simulador comanda a ponte rolante através do controle, do qual o Arduino
lê o estado dos botões e potenciômetros. O microcontrolador recebe do simulador uma requisição
de leitura das informações do controle, e sempre que isso ocorre, o Arduino lê o estado dos

46
Fasci-Tech

componentes e os envia de volta ao simulador. O simulador processa toda a lógica do código e


envia as imagens para a tela do Oculus Rift. Durante o processamento da lógica do simulador, as
informações de orientação e posição da cabeça do operador também são levadas em consideração
para a geração das imagens. Assim, o operador sempre vê na tela do Oculus Rift imagens baseadas
na direção para a qual ele olha. Esse é um fator extremamente importante pois permite que o
operador se mova para obter uma visão melhor da carga conforme ela fica obstruída pela estrutura
da cabine da ponte rolante.
Figura 2 - Arquitetura do projeto

Fonte: Autoria própria


As próximas seções detalham o desenvolvimento dos componentes envolvidos na solução.

5.1 Produção Do Controle


Para uma experiência imersiva e mais próxima da operação real de uma ponte rolante,
idealmente um controle real do equipamento deveria ser utilizado no simulador. Porém, para
reduzir os custos do projeto, bem como tornar evidente a capacidade que a plataforma Arduino
provê para criação de hardware customizado, optou-se por desenvolver um controle específico
para o projeto.
Todo o projeto do controle foi desenvolvido no Blender (versão 2.71), um software open-
source para criação de conteúdo 3D. Os componentes adquiridos para o controle (botões e
potenciômetros, por exemplo) tiveram suas dimensões relevantes aferidas e foram então
modelados com o Blender. Após isso, uma estrutura para abrigá-los foi projetada e modelada em
escala, conforme o tamanho dos componentes, chegando-se ao modelo visto na Figura 3.

47
Fasci-Tech

Após o projeto, iniciou-se a construção do controle, que foi todo confeccionado em papelão
paraná número 60 com gramatura de 1125g/m². As peças do controle foram cortadas de acordo
com as dimensões projetadas, e, posteriormente, coladas. Com toda a estrutura mecânica pronta,
o circuito elétrico foi montado. Um cabeamento modularizado com soquetes fêmeas foi projetado
e instalado. A versão construída do controle pode ser vista na Figura 3.
Figura 3 - Controle projetado (à esquerda) e construído

Fonte: Autoria própria

Com o controle pronto, passou-se a programação do código do Arduino. Um protocolo


simples de comunicação serial foi implementado, onde a cada requisição feita pelo simulador
(marcada pelo envio de um caractere especial) o Arduino responde com o envio de um vetor de
bytes com os valores lidos de todos os botões e potenciômetros. O vetor também contém caracteres
delimitadores em seu início e em seu fim. O simulador usa esses caracteres para garantir que
somente dados vindos de pacotes íntegros sejam utilizados.

5.2 Criação Do Simulador Na Unity


Antes que o projeto pudesse ser desenvolvido na Unity, foi necessário criar os elementos
gráficos que fariam parte do simulador, com o auxílio do Blender. Assim, foram criados
contêineres, caixas e prateleiras para compor um cenário. Após o cenário, também foi criada a
ponte rolante que seria operada no simulador. O modelo escolhido possui cabine de operação, de
modo que um usuário operando o simulador teria a visão do alto do cenário, e se deslocaria
acompanhando o movimento da ponte.

48
Fasci-Tech

Os objetos foram modelados no Blender e texturizados com o auxílio do GIMP, um editor


de imagens open-source. Após a criação dos modelos, eles foram importados na Unity e
posicionados de modo a criar um ambiente interessante para o simulador, onde o operador tivesse
que de certos obstáculos para levar as cargas de um local ao outro. Com isso, chegou-se ao
ambiente visto na Figura 4.
Figura 4 - Cenário criado para o simulador

Fonte: Autoria própria

A Figura 5 mostra a visão que um operador tem ao usar o simulador. Graças ao Oculus
Rift, o operador pode olhar para qualquer direção para poder obter uma visão melhor da carga
transportada.
Figura 5 - Visão de dentro da cabine da ponte rolante

Fonte: Autoria própria

Com todos elementos gráficos prontos, a próxima etapa foi a configuração física dos
elementos e a programação do simulador. Os movimentos simulados foram o balanço do cabo e
eletroímã ao mover e parar a ponte e o movimento dos contêineres ao serem soltos do eletroímã
caso não estejam tocando o chão nesse momento. Para realizar esses movimentos, uma
combinação de componentes rigidbody, colisores e juntas configuráveis foi empregada nos
elementos envolvidos.
49
Fasci-Tech

Após isso, o código em C# foi programado para permitir a movimentação da ponte rolante
(tanto através do controle criado para esse projeto quanto através de um teclado comum). Também
foram adicionadas uma lâmpada indicadora de operação, uma lâmpada na cabine e uma sirene,
que podem ser ativadas ou desativadas pelo operador. Um último recurso adicionado foi um
sistema de detecção de posicionamento de cargas. Isso permitiu estabelecer um objetivo ao
operador, que seria o de posicionar três contêineres em locais distintos do cenário.
Finalmente, ocorreu a integração com o Oculus Rift. A tarefa foi simplificada pois os
próprios criadores do Oculus Rift disponibilizam um pacote de integração para a Unity. Assim, foi
necessário importar o pacote e inserir no cenário um dos objetos disponíveis no pacote, o
OVRCameraRig. Esse é o objeto responsável por fazer a comunicação entre o simulador e o Oculus
Rift, enviando as imagens para o aparelho e lendo as informações dos movimentos da cabeça do
usuário.

6 Análise Dos Resultados


Com todos os elementos prontos e integrados, testes foram realizados e todas funções do
simulador foram verificadas. Em seguida, uma pequena pesquisa foi elaborada e apresentada na
III Mostra de Trabalhos Acadêmicos que ocorreu no dia 13 de novembro de 2015, na Faculdade
de Tecnologia Termomecanica em São Bernardo do Campo.
Os objetivos da pesquisa eram: avaliar a sensação de imersão proporcionada pelo
simulador, definir se o simulador causava algum tipo de enjoo ou desconforto relacionado ao seu
uso com o Oculus Rift e determinar a precisão dos comandos do joystick.
A pesquisava consistia de um conjunto de cinco perguntas, entre as quais as mais
importantes avaliavam em uma escala de um a cinco: a sensação de imersão proporcionada pelo
simulador (onde um significa ausência de sensação de imersão e cinco significa sensação de
imersão forte), se o usuário sentiu algum tipo de enjoo ou tontura (com nota um para desconforto
forte e nota cinco para ausência de desconforto) e, finalmente, a qualidade percebida do controle
(com nota um para qualidade baixa e nota cinco para qualidade alta). Os resultados obtidos podem
ser vistos no Quadro 2:
Quadro 2- Resultados da pesquisa realizada
Questão Média Menor valor Maior valor
1 – Tempo de prova (minutos : segundos) 4:13 1:38 10:05
2 – Idade 20 anos 14 37
3 – Sensação de imersão 4.77 3 5
4 – Desconforto (enjoo ou tontura) 4.63 3 5
5 – Qualidade do controle 3.66 2 5
Fonte: Autoria própria

50
Fasci-Tech

Foi imposto um limite máximo de tempo de dez minutos, porém os usuários tiveram
liberdade para encerrar o teste antes caso quisessem, sendo que alguns optaram por apenas verificar
a sensação de imersão, sem posicionar as cargas. A idade foi coletada com o intuito de averiguar
se existe alguma relação da mesma com algum desconforto causado pela simulação. Não foi
possível provar essa ligação tanto pelo tamanho da amostra como pelo fato de ser possível
encontrar usuários com idades muito distintas tanto no grupo que sentiu desconforto como no
grupo que não sentiu.
Quanto ao controle, foi o elemento que recebeu as menores notas. Parte dos usuários alegou
dificuldade em usar o controle por falta de familiaridade com o mesmo combinado com a
impossibilidade de vê-lo ao usar o simulador, tendo que recorrer ao tato para pressionar os botões
corretos. Alguns usuários deram notas baixas também pela dificuldade de posicionar as cargas
devido ao balanço dos cabos da ponte.
Finalmente, a sensação de imersão pode ser considerada o ponto mais forte do simulador,
onde muitos dos usuários alegaram realmente terem tido a sensação de estarem dentro da cabine
da ponte rolante, o que corresponde à grande parte das expectativas para esse trabalho.

7 Conclusão
O simulador foi uma prova de conceito com resultados extremamente positivos de que a
integração das plataformas Oculus Rift, Unity e Arduino é não só viável como muito promissora,
especialmente se levada em consideração juntamente com as outras ferramentas gratuitas
utilizadas nesse trabalho.
O Oculus Rift é um dispositivo relativamente novo que está contribuindo para o
amadurecimento de toda uma área na indústria da computação. Será interessante ver como o
aparelho irá mudar e aprimorar a indústria de entretenimento e simulação, pois mesmo em sua
versão DK2 (considerada defasada, tendo-se em vista o lançamento da versão para consumidor),
já é possível ver um grande potencial no mesmo. Os recursos do equipamento foram explorados
em sua totalidade proporcionando uma experiência de simulação na qual a maior parte dos usuários
disseram ter uma sensação forte de imersão no ambiente virtual.
A plataforma Unity também se mostrou uma ferramenta crucial para possibilitar o
desenvolvimento desse projeto, com recursos e documentação abundantes que foram mais que o
suficiente para cobrir todos os objetivos propostos, incluindo uma simulação física básica (porém
verossímil). O fato de possuir ferramentas de integração de fácil usabilidade com o Oculus Rift

51
Fasci-Tech

também foi um ponto positivo que reforça sua eficiência na criação de conteúdo para realidade
virtual.
Quanto à plataforma Arduino, foi uma interessante adição ao projeto, pois mostra que o
potencial da mesma vai além do uso de componentes prontos disponíveis no mercado, permitindo
a criação de dispositivos para permitir novas formas de interação com aplicativos de realidade
virtual. Embora de forma simples nesse projeto (através de um controle que permite a
movimentação da ponte rolante e um certo nível de interação com o ambiente), é possível pensar
em projetos mais maduros para a plataforma Arduino, integrando-a novamente em experiências
de realidade virtual ainda mais imersivas. Uma plataforma de movimento motorizada poderia ser
projetada para dar também a sensação real de movimento ao operador ao mover a cabine da ponte
rolante, por exemplo.
Finalmente, a pesquisa mencionada anteriormente mostra que houve boa aceitação pelo
público. Um estudo mais aprofundado, porém, poderia ser feito para provar sua utilidade real no
treinamento dos operadores de ponte rolante, além de ajustes técnicos para aprimorar o realismo
da simulação física e módulos que permitam mensurar a evolução das habilidades dos operadores
em treinamento. Não obstante, os resultados colhidos pelos testes e pela pesquisa mostram que a
integração dos componentes foi realizada com êxito e que através dessa combinação é possível
criar softwares extremamente interativos que podem contribuir de forma significativa para a
sociedade.

Referências
BLUM, J. Exploring Arduino: Tools and Techniques for Engineering Wizardry. Indianapolis:
John Wiley & Sons, 2013.

IFIXIT. Oculus Rift Development Kit 2 Teardown, 2014. Disponivel em:


<https://www.ifixit.com/Teardown/Oculus+Rift+Development+Kit+2+Teardown/27613>.
Acesso em: 21 fev. 2016.

OCULUS. Announcing the Oculus Rift Development Kit 2 (DK2), 2014. Disponivel em:
<https://www.oculus.com/en-us/blog/announcing-the-oculus-rift-development-kit-2-dk2/>.
Acesso em: 21 fev. 2016.

______. Tracking, 2016a. Disponivel em: <https://developer.oculus.com/documentation/intro-


vr/latest/concepts/bp_app_tracking/>. Acesso em: 21 fev. 2016.

______. Binocular Vision, Stereoscopic Imaging and Depth Cues, 2016b. Disponivel em:
<https://developer.oculus.com/documentation/intro-vr/latest/concepts/bp_app_imaging/>.
Acesso em: 21 fev. 2016.

52
Fasci-Tech

PROJETO ARDUINO. Arduino, 2016a. Disponivel em:


<https://www.arduino.cc/en/Guide/Introduction>. Acesso em: 21 fev. 2016.

______. Arduino Software (IDE), 2016b. Disponivel em:


<https://www.arduino.cc/en/Guide/Environment>. Acesso em: 21 fev. 2016.

UNITY. Scripting Overview, 2015a. Disponivel em:


<http://docs.unity3d.com/Manual/ScriptingConcepts.html>. Acesso em: 21 fev. 2016.

______. Rigidbody, 2015b. Disponivel em: <http://docs.unity3d.com/Manual/class-


Rigidbody.html>. Acesso em: 21 fev. 2016.

______. Game Objects, 2015c. Disponivel em:


<http://docs.unity3d.com/Manual/GameObjects.html>. Acesso em: 21 fev. 2016.

______. Graphics, 2015d. Disponivel em: <http://docs.unity3d.com/Manual/Graphics.html>.


Acesso em: 21 fev. 2016.

______. Transforms, 2015e. Disponivel em:


<http://docs.unity3d.com/Manual/Transforms.html>. Acesso em: 21 fev. 2016.

______. Physics, 2015f. Disponivel em: <http://docs.unity3d.com/Manual/PhysicsSection.html>.


Acesso em: 21 fev. 2016.

______. The Best Development Platform For Creating Games, 2016. Disponivel em:
<https://unity3d.com/unity>. Acesso em: 21 fev. 2016.

53