Você está na página 1de 17

SistemaComputacionalparaControleeAquisiodeImagensde SubmarinodaClasseROV

Otvio Andr Chase e Dionne Cavalcante Monteiro


RESUMO: O ROV (Remotely Operated Vehicle) um veculo submarino operado remotamente, com o objetivo de realizar o monitoramento de estruturas imersas atravs da aquisio de imagens. Este trabalho faz parte do projeto Inspeo aqutica em guas de alta turbidez da ELETRONORTE/IESAM, e apresenta o desenvolvimento de um sistema computacional para aquisio de imagens e emisso de strings de controle para um submarino da classe ROV. O trabalho foi desenvolvido em duas partes: A primeira parte consiste no desenvolvimento do software responsvel pela aquisio de imagens e emisso de strings de controle com base em restries de tempo real, e a segunda parte no projeto do hardware para controle das funes da cmera de vdeo do ROV. As atividades da primeira parte incluem a aquisio e o tratamento das imagens capturadas pela cmera de vdeo que so gravadas no disco rgido no modo foto ou vdeo, e a emisso de strings do protocolo de controle a partir dos eventos de um Joystick USB, o software foi desenvolvido na linguagem C++. Na segunda parte foi construdo um mdulo microcontrolado para controle das funes de Zoom, gravao interna da cmera de vdeo e controle on/off, as funes so acionadas atravs das strings de controle vindas da rede RS-485, o firmware foi desenvolvido em linguagem C para o microcontrolador PIC16F628A. O sistema operacional Microsoft-Windows 2000/XP foi o usado por ter um Kernel preemptivo. O ambiente de desenvolvimento Microsoft Visual C++ e o compilador Source Boost C foram as ferramentas usadas para o desenvolvimento deste trabalho. Palavras-Chave: ROV, Aquisio de Imagens, Controle por Computador.

ABSTRACT: ROV is an underwater remotely operated vehicle, with the objective of


accomplishing the inspection of submerged structures through the image acquisition. This work is part of project "Aquatic Inspection in waters of high turbidity" of ELETRONORTE/IESAM, and it presents the development of a computer system for acquisition of images and send strings of control to a submarine of class ROV. The work was developed in two parts: The first part consists in the development of responsible software for image acquire and sends strings of control with base in restrictions of real time programming, and the second part in the project of the hardware for control the functions of video camera of ROV. The activities of the first part include the acquisition and the treatment of the images captured by the video camera that are recorded in the hard disk in the picture or video mode, and the sends strings of control protocol starting from the events of a Joystick USB, the software was developed in the C++ language. In the second part a microcontrolled module was built for control functions of Zoom, interns recording of video camera and control on/off, the functions are activated through the strings of control coming from the net RS-485, the firmware was developed in C language for PIC16F628A microcontroller. The operating system Microsoft-Windows 2000/XP was it used by having a preemptive Kernel. The development ambient Microsoft Visual C++ and compiler Source Boost C were the tools used for development this work. Key-Words: ROV, Image Acquire, Computer Control System.

1. INTRODUO 1.1 Estado da Arte


O ROV (Remotely Operated Vehicle) um veculo no tripulado operado remotamente. usado para explorar e inspecionar ambientes hostis ou que apresentem risco a vida humana. Os ROVs da classe submarino geralmente so os mais usados, porm existem ROVs de outras

classes como a area e terrestre. As aplicaes onde o ROV submarino mais usado so na indstria de petrleo para o monitoramento de cascos de navio, bases de plataforma e dutos coletores, e na gesto energtica no monitoramento de instalaes imersas de hidreltricas conforme visto na figura 1.

Figura 1: ROV inspecionando uma instalao industrial submersa (LSED-IESAM, 2007).

Um ROV constitudo por dois sistemas, o sistema computacional e o sistema de controle, em um projeto estes sistemas so organizados da seguinte forma:

Sistema Computacional: Software. o que realiza a aquisio de imagens e controla as aes do ROV, sua constituio formada por um computador dotado de software com as funes de uso de portas de comunicao.

Sistema de Controle: Hardware e Mecnica. o que realiza o movimento e outras aes fsicas da estrutura do ROV, sua constituio formada por mdulos microcontrolado para acionamento dos motores, iluminadores, cmera de vdeo e outros como braos mecnicos e coletores de resduos.

Neste trabalho foi desenvolvido um Sistema Computacional denominado de ROVCAM com nfase na aquisio e armazenamento de imagens, e um mdulo microcontrolado para acionamento das funes da cmera de vdeo, que ser integrado ao sistema de controle do ROV. A malha de controle de um ROV vista na figura 2.

Malha de Controle do ROV

Figura 2: Malha de Controle do ROV, com o sistema computacional e de controle (LSED-IESAM, 2007).

O Controle do ROV feito com base na visualizao de sua posio, pois a cmera de vdeo realiza a aquisio de imagens e o operador v a movimentao do veculo proporcionalmente a ao do joystick. As strings de controle que seguem um protocolo de comunicao desenvolvido para todos os dispositivos da malha e so emitidas para o sistema de controle. Os mdulos microcontrolados do sistema de controle que esto interligados em uma rede industrial padro RS-485, onde o protocolo age para acionar somente a funo de um mdulo ligado a rede.

1.2 Problema
Na Amaznia os ambientes aquticos apresentam alta turbidez. A turbidez a medida da dificuldade de um feixe de luz atravessar certa quantidade de gua, adquirindo assim uma aparncia turva. As principais causas da turbidez da gua so: presena de matrias

slidas em suspenso (silte, argila, slica, colides), matria orgnica e inorgnica finamente dividida, organismos microscpicos e algas (Vieira, 1992). A turbidez dificulta o monitoramento de estruturas imersas devido a pouca linha de viso do ambiente, logo so necessrias tcnicas de iluminao para abrir viso em meios turbidos e possibilitar assim a inspeo.

O ROV construdo para monitorar estes ambientes turbidos dotado de spots de iluminao com potncia necessria para abrir viso tornando possvel a inspeo da estrutura imersa. 1.3 Metodologia
No incio do desenvolvimento do ROVCAM foram especificadas funes para o controle de nveis de potncia dos iluminadores do ROV a fim de ajustar o nvel de iluminao de acordo com a melhor viso da estrutura imersa. A cmera de vdeo modelo HandyCam da Sony foi configurada para aplicar um filtro de iluminao nos frames capturados para eliminar os possveis pontos de sombra e assim contribuir para o sistema de iluminao do ROV. Estas funes devem funcionar ao mesmo tempo em que a posio do ROV muda com o controle, logo so funes concorrentes e devem apresentar tempo de resposta regular no acionamento de dispositivos por computador.

1.3.1 Tempo Real


O ROVCAM um programa dotado de funes que so executadas via linhas de execuo com o intuito de que todas as funes do software sejam executadas concorrentemente seguindo restries de tempo real. Tempo real serve para designar um sistema como previsvel com relao ao tempo, todas as funes do ROVCAM tem um intervalo de tempo para serem rastreadas, detectar um evento e uma parcela de tempo para serem executadas.

1.3.2 Linhas de execuo


As funes do ROVCAM foram programadas em linhas de execuo denominadas de Threads. Threads so processos de peso leve, e surgiu a fim de propiciar maior grau de paralelismo nas aes executadas por um processo. A criao e escalonamento de threads simples, pois elas compartilham todos os recursos do processo que as originou (Seixas, 2003). As linhas de execuo so subprocessos que executados simultaneamente cooperam entre si e trocam informaes, pois as linhas no possuem um espao de endereamento, elas compartilham o espao de endereamento do processo que as criou. O chaveamento entre duas threads de um mesmo processo muito mais rpido que o chaveamento entre dois processos. Uma aplicao com restries de tempo real usualmente organizada na forma de duas ou mais threads cujos estados so apresentados na figura 3.

Pronta

Executando

Destruio

Iniciando

Bloqueado

Figura 3: Estados de uma Thread usada em sistemas concorrentes (LSED-IESAM, 2007).

Threads peridicas podem ser implementadas atravs da criao de uma nova thread no incio de um novo perodo, porm o custo de overhead (uso inadequado das linhas de um processo), associado destruio bem maior que a suspenso e a reativao, resultando em um sistema menos eficiente (Seixas, 2003). O mecanismo de escalonamento das threads no ROVCAM do tipo preemptivo. O kernel do Microsoft Windows 2000/XP preemptivo, caracterstica de grande importncia para sistemas de automao e tempo real. O kernel do Linux no preemptivo, o sistema operacional QNX baseado em Unix tem kernel preemptivo e muito usado tambm para aplicaes em automao e tempo real, porm o custo da sua licena na verso comercial superior ao do Windows (Seixas, 2003).

2. Sistema de Viso 2.1 Aquisio de Imagens


A aquisio de imagem tem como funo converter uma imagem analgica do mundo real em uma representao numrica adequada para o seu tratamento e armazenamento em disco. A cmera de vdeo um dispositivo fsico sensvel a uma faixa de energia no espectro eletromagntico (como raios-X, ultravioleta, espectro visvel ou raios infravermelhos), que produz na sada um sinal eltrico proporcional ao nvel de energia detectado, que tratado por um mdulo de aquisio de imagens dotado de um conversor A/D gerando assim um frame (quadro de imagem), isto , que pode ser representado atravs de bits 0s e 1s (Woods, 2000).

Aquisio
Cmera de Vdeo

Processamento
Computador Varivel FrameBuffer

Sada
Monitor de Vdeo

Disco Rgido Mini - DVD

Armazenamento
Figura 4: Elementos de um sistema de aquisio de imagens (LSED-IESAM, 2007).

Na figura 4 visto todos os elementos que compem um sistema de aquisio de imagens. O processamento envolve procedimentos normalmente expressos sob forma algortmica, para o tratamento dos frames e definio de seu formato, o formato padro de definio de frames o BMP (Bitmap Mapeamento de bits). O armazenamento usa parte da memria RAM do sistema computacional para o armazenamento do framebuffer (conjunto de quadros) que geralmente guarda 30 imagens completas por segundo e as grava em disco rgido ou outras mdias como o Mini-DVD. O monitor de vdeo um elemento fundamental e o dispositivo comumente usado para apresentao do resultado da etapa de aquisio de imagens. O hardware necessrio para o funcionamento de todos os elementos de aquisio de imagem : camera de vdeo, conversor A/D de vdeo, computador com porta de comunicao compatvel e monitor de vdeo (Woods, 2000).

2.2. Software ROVCAM


O sistema computacional desenvolvido neste trabalho foi denominado de ROVCAM visto na figura 5. O ROVCAM foi desenvolvido em linguagem C++ usando o ambiente Microsoft Visual C++ e o conjunto de classes MFC (Microsoft Foundation Classes). O software foi desenvolvido com restries de tempo real de forma que todas as funes do programa possam funcionar de maneira concorrente, atravs do uso de timers e threads de execuo.

Figura 5: Interface do software ROVCAM para controle de ROVs (LSED-IESAM, 2007).

O ROVCAM funciona com base em duas funes em threads de execuo e uma em Timer: Aquisio de imagem, armazenamento de imagens, Tratamento de Eventos de Joystick USB e emisso de strings de controle pela porta serial RS-232.

2.2.1 Aquisio e armazenamento de imagens


A aquisio de imagens feita atravs da programao de um framebuffer para alocar os frames em fila e armazen-los no disco rgido. Os frames capturados pela cmera de vdeo so emitidos pela sada RCA para um conversor RCA/IEEE1394 que converte a imagem analgica em digital e torna compatvel a comunicao da cmera de vdeo com o sistema computacional do ROV conforme visto na figura 6.

Aquisio de Imagem por Vdeo Composto / Firewire

Conversor A/D 1000 Frames / segs

Valor do acqTemp() = 1000 / Nmero de Frames acqTemp(200) = 5 frames por segundo IEEE1394(Firewire) Transferncia de 800MBytes/seg.

Figura 6: Aquisio de imagem atravs do conversor RCA/IEEE1394 (LSED-IESAM, 2007).

Os eventos e aes do framebuffer so programados atravs do SDK (kit de desenvolvimento) do DirectX 9.0 que o ncleo multimdia nativo do Windows. No SDK do DirectX h conjunto de bibliotecas DirectShow responsvel pelas funes do ponteiro de aquisio e imagens e seu tratamento, o programa exemplo StillCap foi usado como base inicial do ROVCAM. A malha de vdeo gerada em 740 linhas, e foi desenvolvida uma funo acqTemp() para definir o nmero de frames por segundo no momento da aquisio. Na figura 7 visto o tratamento do ponteiro de uma classe dotada com a programao da comunicao firewire para a aquisio de frames.

Figura 7: Tratamento bsico da classe do DirectX (LSED-IESAM, 2007).

2.2.1.1 ROVCAM TCP/IP


Em paralelo foi desenvolvido o ROVCAM TCP/IP que um software que realiza a aquisio de imagens de uma cmera D-Link 6620 que ao capturar os frames os envia para o sistema computacional atravs de pacotes (sockets) TCP/IP conforme visto na figura 8. A vantagem deste sistema a aquisio digital da imagem sem a necessidade de um mdulo de aquisio para realizar a converso A/D.

Aquisio de Imagem por Sockets TCP/IP

Stream IP Protocolo por Sockets, Strings de Controle para controle PAN-TILT da IPCAM D-Link-6620

Figura 8: Aquisio de Imagem por sockets TCP/IP (LSED-IESAM, 2006).

O software abre uma sesso HTTP para receber os frames em uma conexo de rede ETHERNET de 1Gbits. Este software apresentou um desempenho prximo ao do mtodo de aquisio de imagens por um conversor RCA/IEEE1394, porm o seu desenvolvimento est em segundo plano, pois a malha de vdeo gerada de 704 linhas e o tempo de espera entre a recepo de um frame e outro maior, logo perceptvel com relao ao mtodo de aquisio de imagens pelo conversor RCA/IEEE1394 dando a sensao de retardo na transio de frames no caso de um vdeo gravado. Na figura 9 visto a interface do ROVCAM TCP/IP com suas funes bsicas implementadas e em funcionamento.

Figura 9: Interface do ROVCAM TCP/IP, aquisio de imagens por sockets TCP/IP (LSED-IESAM, 2007).

2.2.2 Joystick USB


A porta de comunicaes USB trata os sinais eltricos em nvel de programao a partir de um protocolo padro e troca de mensagens denominadas de pacote Token (Passagem de basto), a taxa de transmisso de 400MBytes/seg. O Joystick um sistema mecnico diferencial com valores no eixo X,Y,Z que definem em que ponto o eixo est setado e para qual direo est apontando. Para programao dos eventos do joystick foi usado o conjunto de bibliotecas DirectInput que parte integrante do SDK DirectX 9.0. Os pontos onde a posio do eixo est setado definem atravs de variveis booleanas se a posio frente, trs, esquerda ou direita. O estado do eixo visto em checkboxes (caixa de marcao) na interface do programa.

2.2.3 Porta de Comunicao Serial


A porta de comunicaes serial RS-232 trata os sinais eltricos em nvel baixo, o acesso e programao desta porta foi feito atravs da programao da API do Windows, padro para a porta serial. Todos os eventos provenientes do Joystick ou de botes da interface do ROVCAM so emitidos para o sistema de controle do ROV, para isto foi desenvolvido um protocolo de comunicao para que os mdulos do sistema de controle possam ser acionados quando solicitado. O protocolo foi projetado para dar suporte ao controle dos dispositivos do sistema de controle visto na figura 10.

Figura 10: Protocolo desenvolvido para controle dos dispositivos do sistema de controle (LSED-IESAM, 2007).

O computador usado para o sistema computacional no tem porta serial e foi usado um conversor Ethernet/RS-485 ECS-713 da HI-Tecnologia na figura 11, que ao ser instalado cria uma porta virtual serial no sistema operacional permitindo a programao a nvel hardware da porta de comunicao serial com total portabilidade.

Figura 11: Conversor ECS-713 da Hi-Tecnologia e a rede de dispositivos do ROV (LSED-IESAM, 2007).

A rede industrial RS-485 permite comunicao a distncias de at 1.200 metros, velocidade de banda de at 10MBits/seg., modo de comunicao half-duplex e imune a rudos eletromagnticos.

2.3. Hardware Microcontrolado


Um hardware microcontrolado classificado de sistema embarcado, pois usado em aplicaes especificas onde no vivel a utilizao de uma arquitetura PC padro. Os sistemas embarcados apresentam baixo custo e consumo de energia eltrica. O programa gravado em microcontrolador denominado de firmware. O sistema embarcado desenvolvido neste trabalho responsvel pelo controle das funes liga/desliga, gravao interna em mini-DVD e Zoom. O microcontrolador usado foi o PIC16F628A na figura 12 fabricado pela Microchip que rene em uma pastilha, todos os elementos de uma CPU RISC de alta performance, sendo fabricado em encapsulamento DIP(18 pinos), SOIC(18 pinos) ou SSOP(20 pinos) (Microchip, 2004), suas principais caractersticas so:

Figura 12: Diagrama lgico dos pinos do microcontrolador PIC16F628A (Microchip, 2004).

Set de instrues com 35 funes; 200 nanosegundos por instruo com oscilador de 20MHz; Clock interno de 4MHz / 37KHz; 16 pinos de I/O com capacidade de corrente de 25mA por pino; 2Kx14 bits de memria FLASH de programa; 224x8 bits de memria RAM para dados; 128x8 bits de memria EEPROM interna; Trs timers, dois de 8 bits e um de 16 bits; Um canal de comunicao serial UART; Mdulo CCP (modos Captura, Compare e PWM); Boa resistncia e durabilidade em ambientes (calor e impacto mecnico).

O firmware foi desenvolvido em linguagem C no ambiente de desenvolvimento MPLAB com base no compilador SourceBoost C para microcontroladores visto na figura 13.

Figura 13: MPLAB como ambiente de desenvolvimento com o compilador Source Boost C (LSED-IESAM, 2007).

O tratamento da recepo da string de controle do protocolo foi desenvolvido da seguinte forma: Na recepo de dados via porta de comunicao UART do microcontrolador os caracteres provenientes da rede RS-485 so guardados em um vetor ou buffer at receber o caracter \r retorno de carro correspondente ao nmero 13 no cdigo ASCII. Com o buffer do vetor completo, cada elemento do vetor ser comparado ao decorrer do programa com caracteres responsveis pela ao a ser executada no circuito da cmera de vdeo visto na figura 14.

Figura 14: Comparao elemento X elemento do vetor buffer para a ao do circuito (LSED-IESAM, 2007).

Se a entrada dos caracteres no vetor no momento do processamento de comparao for invlido devido erro na comunicao, ou caso a string de controle no for a endereada para o mdulo da camera de vdeo, o firmware interrompe o processamento de comparao, e retorna ao estado de leitura da porta de comunicao UART, para realizar a recepo de novos caracteres da rede. Este algoritmo de comparao mostrou bom desempenho em comparao ao uso de funes de tratamento de strings como strcpy() e strcmp() com relao ao uso da memria RAM e ROM do microcontrolador.

A funo strToInt() foi desenvolvida para converter um vetor do tipo char para um valor em em tipo inteiro para ser aplicado ao sinal PWM e timer, pois a funo atoi() nativa do C extensa e tambm consumiu grande parcela da RAM e da ROM do microcontrolador. Na tabela 1 visto a comparao de desempenho e uso dos recursos do microcontrolador usando as funes nativas do C e as funes desenvolvidas para otimizao do processamento.
Tabela 1 Desempenho Funes Nativas C X Funes desenvolvidas neste trabalho para o PIC16F628A

Recurso

Consumo Funes nativas C

Consumo Funes Desenvolvidas

RAM ROM (FLASH )

54,0% 60,0%

17,0% 17,8%

O compilador Sourceboost C no tem funes nativas para escrita e leitura da EEPROM Para a srie PIC16F62X e estas foram implementadas com base na configurao dos registradores EEDATA, EEADR, EECON1 e EECON2 no Datasheet do PIC16F628A, as funes esto descritas na figura 15.

Leitura da EEPROM

Escrita da EEPROM

String para Inteiro

Figura 15: Funes implementadas para leitura e escrita da EEPROM e string para inteiro (LSED-IESAM, 2007).

O uso da EEPROM importante para gravar e guardar o endereo do mdulo, e quando necessrio muda-lo de acordo com a organizao da rede RS-485. O mdulo completo e implementado na camera de vdeo visto na figura 16 e fez-se necessrio desenvolve-lo devido ao controle do trip da camera de vdeo ter a extenso de somente 40 cm, o mdulo microcontrolado foi interfaceado com o controle do trip da Sony HandyCam permitindo assim um controle da camera remotamente na distncia mxima padro de 1.200 metros do RS-485.

HandyCam Controle Trip Mdulo Cmera de Vdeo

Figura 16: Mdulo cmera de vdeo interfaceado com o controle do Trip da HandyCam (LSED-IESAM, 2007).

O esquemtico do mdulo da camera de vdeo foi desenvolvido no software EAGLE para prototipagem em placas de circuito impresso e visto na figura 17. O circuito composto por um PIC16F628A para processamento e controle, MAX485CPE para comunicao com a rede RS-485 e um rel para o acionamento liga/desliga.

Figura 17: Esquemtico do mdulo de controle da camera de vdeo (LSED-IESAM, 2007).

3. Resultados Obtidos
Os recursos de aquisio de imagens e envio de strings de controle para o mdulo da camera de vdeo consta de suas principais funes implementadas, testadas e em funcionamento. Foram feitos trs testes de aquisio de imagens e controle de potncia dos iluminadores do ROV imersos na gua. Na figura 18 h uma viso geral de todo o sistema descrito neste trabalho.

Figura 18: Sistema Computacional integrado ao Sistema de Controle do ROV (LSED-IESAM, 2007).

No monitoramento de estruturas imersas foi possvel diferenciar a abertura da viso em meio turbido atravs do controle de nvel da iluminao dos spots do ROV, na figura 19 visto dois momentos: viso fechada e viso aberta.

(a)

(b)

Figura 19: Imagem (a) com spots em 0% e Imagem (b) com spots em 100% da potncia (LSEDIESAM, 2007).

4. Concluso
Desenvolver um sistema computacional para um ROV algo que demanda muita pesquisa e tempo, pois materiais como livros e artigos so raros no somente no Brasil e sim em escala mundial. Logo a unio de conhecimentos das reas de programao, eletrnica, sistemas digitais, sistemas de controle e processamento de imagens foram a principal base para todo o desenvolvimento deste trabalho.

Este trabalho propiciou a participao na atividade de pesquisa na rea marinha atravs do projeto de Inspeo Aqutica em guas de Alta Turbidez, pioneiro na regio amaznica, e financiado pelas Centrais Eltricas do Norte do Brasil S/A. Como grande virtude do trabalho desenvolvido, a unio de vrias reas em exatas, engenharia e tecnologia foram de grande valia, pois mesclar conceitos de computao e eletrnica a essncia da Engenharia de Computao. O LSED-IESAM (Laboratrio de Sistemas Embarcados e Distribudos do Instituto de Estudos Superiores da Amaznia) foi o local onde ocorreu todo o desenvolvimento do sistema computacional para ROV.

REFERNCIAS BIBLIOGRFICAS
SEIXAS, C., SZUSTER, M. Programao Concorrente em Ambiente Windows Uma Viso de Automao. 1. Ed. Minas Gerais MG: EDUFMG, 2003. 370p.

WOODS, Richard E. Processamento de Imagens Digitais. 1.Ed. Brasil: Edgard Blcher, 2000. 509p.

VIEIRA, Gerson. Engenharia Qumica na Sedimentao. 1.Ed. Brasil: EDUFRJ, 1992. 50p.

DORF, Richard C. SISTEMAS DE CONTROLE MODERNOS. 8.Ed. So Paulo: LTC, 1998. 820p.

SCOVILLE, Dan. UNDERWATER ROV PROJECT. London: Reading University, 2004. 14p.

SOLBET, Robtica. MANUAL DO CONTROLADOR DE ILUMINAO ILAC-1000. BRASIL. 2005. 15p.

HI, Tecnologia. MANUAL DO CONVERSOR ETH/RS485 - ECS713. BRASIL. 2004. 23p.

SOURCEBOOST. BOOSTC C COMPILER MANUAL. EUA. 2005. 79p.

MICROSOFT. DIRECTX FOR DEVELOPERS. EUA. 2004. 270p.

D-LINK. IPCAM VITAMIN CONTROL SDK. EUA. 2006. 230p.

MICROCHIP. DATABOOK OF PIC16F628A. EUA. 2004. 184p.