comunicação e controlo de equipamentos usando um

Transcrição

comunicação e controlo de equipamentos usando um
COMUNICAÇÃO E CONTROLO DE EQUIPAMENTOS USANDO
UM CAPACETE DE REALIDADE VIRTUAL
Duarte Silva 1, Silvia Carmen 1, Nuno Martins 2, Fernando Silva 2
1
2
Alunos do Departamento de Engenharia Informática e de Sistemas
Docentes do Departamento de Engenharia Informática e de Sistemas, [ncmartin, fsilva]@isec.pt
Instituto Superior de Engenharia de Coimbra
Instituto Politécnico de Coimbra
INTRODUÇÃO
Nos nossos dias, usando as tecnologias emergentes nas áreas da electrónica e da informática,
é possível às pessoas controlarem e comunicarem com equipamentos que não estão ao alcance
imediato da mão, por questões de comodidade (comando da televisão) ou por necessidade
(pessoas com dificuldades de movimentação, acesso a ambientes hostis ao homem).
No que se refere a pessoas imobilizadas dos membros, existem necessidades do dia a dia
requerendo pequenas acções, as quais podem ser executadas recorrendo a tecnologias de
comunicação e de controlo à distância, permitindo uma certa autonomia a essas pessoas
carenciadas.
Concretamente, pessoas com incapacidade dos membros superiores, podem usar um capacete
de realidade virtual ligado a um computador, podendo comandá-lo de modo a executar
tarefas. Essas tarefas, vão desde o accionar de um programa no computador, à escolha de
opções como emitir sinais de controlo usando uma rede sem fios, ou mesmo controlar um
equipamento como um robot.
Baseados neste tipo de tecnologia, desenvolvemos um projecto no Departamento de
Engenharia Informática e de Sistemas (DEIS) do Instituto Superior de Engenharia de Coimbra
(ISEC), usando um computador, um capacete de realidade virtual, e um braço articulado com
vários graus de liberdade (um pequeno robot). Foi desenvolvida uma aplicação em ambiente
Windows, que interpreta os movimentos feitos por um utilizador que usa o capacete,
traduzindo-os em comandos para o computador. Esses comandos incluem a selecção de
menus (substituindo rato ou teclado), assim como ordens de actuação do braço articulado. A
aplicação inclui um módulo para permitir ao utilizador adicionar mais funcionalidades. Pode
por exemplo ser definida uma nova acção consistindo no deslocamento do braço do robot, de
modo a pegar um objecto numa posição e colocá-lo noutra posição. Nesse caso, o utilizador
define a posição original e final do objecto, assim como os gestos a executar com o capacete
para conseguir essas acções. A partir daí, essa funcionalidade passa a existir na aplicação.
Os movimentos executados pelo capacete são simulados graficamente em tempo real numa
janela da aplicação. Para isso foram feitos modelos 3D do capacete e do robot, os quais são
animados simultaneamente com a execução das acções de comando.
Este projecto insere-se na área de computação gráfica e de programação aplicada a sistemas
reais, focado na interacção homem-máquina. Exemplifica uma forma de colocar a tecnologia
ao serviço da comunidade de modo a diminuir limitações de pessoas com deficiências de
mobilidade dos membros superiores.
DESCRIÇÃO DO SISTEMA FÍSICO
Fisicamente, o sistema é constituído por um capacete de realidade virtual, um pequeno robot e
um computador pessoal (PC), conforme se mostra na figura 1. O computador comunica com o
capacete e com o robot por duas portas série. O capacete gera sinais correspondentes à sua
orientação tri-dimensional no espaço e envia-os para a porta de comunicação série, e o robot
recebe ordens do computador para movimentar cada uma das suas partes móveis.
Fig. 1 – Sistema Utilizado
Capacete de realidade virtual
O capacete de realidade virtual (VFX-3D, Interactive Imaging Systems, Inc) gera sinais
correspondentes à sua rotação segundo três eixos: yaw, rotação para a esquerda ou para a
direita segundo um eixo vertical; pitch, rotação segundo um eixo horizontal (corresponde a
inclinar a cabeça para cima ou para baixo) ; roll, rotação para a esquerda ou para a direita
segundo um eixo horizontal em profundidade (corresponde a inclinar a cabeça para a esquerda
ou para a direita). Estes movimentos são representados na figura 2:
Fig. 2 – Sistema de Posicionamento do capacete
Os valores correspondentes a cada tipo de rotação são lidos do capacete para o computador
usando uma porta de comunicações série (RS-232). A amplitude da rotação em cada eixo
varia entre -90º e +90º para yaw, e varia entre -70º e +70º para pitch e roll.
Robot
Foi usado um pequeno robot (Lynxmotion, modelo Mini SSC II, www.lynxmotion.com), de
que se representa uma imagem na figura 3.
Fig. 3 – Robot
Este robot é constituído por um micro controlador, uma base rotativa, 3 braços articulados e
uma pinça. Os movimentos são feitos de forma individual por cinco micro-motores distintos,
designados por servos: um para rodar a base segundo um eixo vertical, três para rodarem três
braços articulados, cada um segundo o seu eixo de articulação com o elemento anterior, e um
para o controlo da pinça existente no último braço.
O seu controlo interno é executado pelo micro controlador, o qual também fornece uma porta
série para comunicação com o exterior.
Computador
O computador a usar pode ser qualquer computador pessoal (PC) actual, com duas portas RS232 e com uma placa gráfica compatível com o sistema gráfico OpenGL, de modo a
podermos dispor da simulação visual dos movimentos do capacete e do robot.
FUNCIONAMENTO
A aplicação é responsável
pela leitura dos dados
fornecidos pelo capacete,
sua interpretação e execução
das acções daí decorrentes,
pelo comando do robot, e
pela visualização dinâmica
dos modelos do capacete e
do robot em duas janelas
gráficas, como se mostra na
figura 4.
Fig. 4 – Janela da aplicação
O capacete gera dados relacionados com a sua posição relativa no espaço 3D. Esses dados são
interpretados baseando-se no estado interno do sistema e na sua lógica de funcionamento. De
acordo com essa interpretação são executadas acções, como inicializar e calibrar o sistema,
escolher opções de funcionamento, navegar no sistema de menus e comandar o robot.
Existe um processo de leitura de dados do capacete, que adquire os valores de yaw, pitch e
roll com uma frequência determinada por um temporizador (timer). As acções desencadeadas
de acordo com o estado do sistema, compreendem as seguintes situações:
• Se está em algum modo de configuração, os valores de yaw, pitch e roll são usados para
estabelecer condições iniciais, ou para estipular os níveis de variação mínimos nas
leituras para ser considerada uma alteração de posição, ou para definir parâmetros de
funcionamento como a velocidade normal de movimentação do capacete;
• Se está no modo de menu, são avaliados os valores consecutivos de yaw e de pitch de
modo a percorrer o sistema de menus no sentido horizontal (yaw) e vertical (pitch),
sendo usada a variação brusca de roll para a direita (seleccionar) ou para a esquerda
(anular a selecção) para a escolha de opções; a selecção de uma opção terminal de um
menu corresponde a uma acção a executar, o que faz mudar o modo do sistema;
• Se está no modo de controlo do robot, os valores de yaw destinam-se a fazer rodar a
base segundo o seu eixo vertical, os valores de pitch destinam-se a fazer rodar o braço
corrente segundo a sua articulação; as variações bruscas de roll destinam-se a
seleccionar o braço corrente, subindo em direcção à pinça (roll para a direita) ou
descendo em direcção à base (roll para a esquerda).
• Se está num modo de comando específico do robot, a que está associada uma acção
determinada, como pegar um objecto colocado em certa posição, os valores de yaw,
pitch e roll são ignorados durante a execução dessa acção, a menos que surja um sinal
de excepção;
• Há determinadas sequências de movimentos com um significado especial, que são
traduzidas num sinal de Escape ou num sinal de Reset; como correspondem a situações
de excepção, podem ocorrer em qualquer estado interno do programa.
Conversão/mapeamento de valores
A semântica dos movimentos do capacete e do robot são distintas. Por outro lado, a métrica
dos valores lidos do capacete é igualmente distinta dos valores a enviar para o robot ou do
item de menu a seleccionar. Um valor de x graus de rotação segundo um eixo do capacete
pode corresponder a y graus de rotação segundo um dos eixos do robot ou a uma mudança na
selecção de itens do menu. Cada movimento ou sequência de movimentos do capacete, tem
um significado dependente do contexto. Por isso foi necessário definir criteriosamente esses
significados, constituindo um dicionário. O programa lê os dados enviados pelo capacete,
interpreta-os usando esse dicionário, e quando há lugar a envio de valores para o robot, estes
terão de ser calculados atendendo à métrica de ambos os dispositivos. De forma semelhante,
os valores lidos do capacete devem permitir navegar no sistema de menus sem sobressaltos.
Modelos 3D
Os valores lidos do capacete servem adicionalmente para fazer a visualização de um modelo
3D do capacete numa janela da aplicação. O capacete é um sólido não deformável, cujas
alterações se limitam à sua orientação e escalonamento no espaço. A sua visualização em
tempo real é feita rodando o modelo completo, segundo os três eixos, dos valores dos ângulos
lidos.
Também o robot é visualizado, sendo desenhado de acordo com a sua posição em cada
instante. Como é constituído por várias partes que podem deslocar-se umas em relação às
outras, foi necessário construir um modelo hierárquico para o representar, em que cada parte é
afectada pelas transformações sofridas por outras partes de que dependente hierarquicamente:
quando a base roda todos rodam, e quando o braço superior roda só é afectada a pinça.
Para a representação gráfica de ambos os modelos nas duas janelas referidas, foi usado o
sistema gráfico OpenGL.
CONCLUSÕES
Este trabalho visou o desenvolvimento de uma aplicação capaz de controlar um braço robot e
um sistema de menus usando um capacete de realidade virtual. Um sistema deste tipo pode
ser útil para pessoas com incapacidade dos membros superiores, proporcionando a resolução
de alguns dos seus problemas.
Este tipo de tecnologia pode ser aplicada não só para permitir a utilização de um computador
a pessoas incapacitadas, como para controlar outros dispositivos com os quais possa ser
estabelecida uma comunicação a partir de um computador.
BIBLIOGRAFIA
Scott Edwards Electronics; Mini SSC II Serial Servo Controller; 1999.
Shelepov, R.; VFX3D Virtual Reality Helmet; www.digit-life.com/articles/vfx3d/; 2004.
Silva, F.P.; Computação Gráfica; Apontamentos das disciplinas de Computação Gráfica I e II;
ISEC; 2004.
Wong, G., Wong, V; Virtual Reality in Space Exploration; www.doc.ic.ac.uk/
~nd/surprise_96/journal/vol4/kcgw/report.html; 1996.

Documentos relacionados