UNIVERSIDADE FEDERAL DE OURO PRETO ESCOLA DE MINAS COLEGIADO DO CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO - CECAU WAGNER MIRANDA LOPES JÚNIOR DESENVOLVIMENTO DE UM SISTEMA PARA ESTIMAÇÃO E CONTROLE DE ATITUDE DE UM SATÉLITE ARTIFICIAL UTILIZANDO CÂMERAS COMO SENSORES MONOGRAFIA DE GRADUAÇÃO EM ENGENHARIA DE CONTROLE E AUTOMAÇÃO Ouro Preto 2011 WAGNER MIRANDA LOPES JÚNIOR DESENVOLVIMENTO DE UM SISTEMA PARA ESTIMAÇÃO E CONTROLE DE ATITUDE DE UM SATÉLITE ARTIFICIAL UTILIZANDO CÂMERAS COMO SENSORES Monografia apresentada ao Curso de Engenharia Automação da de Controle e Universidade Federal de Ouro Preto como parte dos requisitos para a obtenção do Grau de Engenheiro de Controle e Automação. Orientador: Dr. Ronilson Rocha Ouro Preto Escola de Minas – UFOP Dezembro/2011 LISTA DE ABREVIATURAS CCD Charge Coupled Device – dispositivo de carga acoplada. CMOS Complimentary Metal-Oxide Semiconctor – semicondutor de óxido metálico complementar. DPI dots per inch – pontos por polegada JPEG Joint Pictures Expert Group – grupo de especialistas de imagens associadas. PNG Portable Network Graphics – gráficos portáveis em redes. RGB Red green blue – vermelho verde e azul. TIFF tagged image file format – formato de arquivo de imagem etiquetado. HD high definition – alta definição. LISTA DE FIGURAS FIGURA 1.1 – CubeSat XI-IV University of Tokyo. .................................................... 16 FIGURA 1.2 – Câmera utilizada. ............................................................................... 19 FIGURA 1.3 – Telescópio utilizado. .......................................................................... 20 FIGURA 2.1 – Representação dos eixos................................................................... 23 FIGURA 2.2 – Área de um triângulo abc. .................................................................. 26 FIGURA 2.3 – Ângulos de um triângulo entre três estrelas. ...................................... 27 FIGURA 2.4 – Ângulo medido entre a origem e duas estrelas. ................................. 28 FIGURA 3.1 – Representação de uma imagem digital (matriz)................................. 29 FIGURA 3.2 – Representação de cores como vetores. ............................................ 30 FIGURA 3.3 – Histograma da imagem de Lenna. ..................................................... 32 FIGURA 3.4 – Equalização da imagem de Lenna. .................................................... 33 FIGURA 3.5 – Equalização para melhor visualização das informações da placa de um carro. FONTE: (CHÁVEZ, 2010). ........................................................................ 33 FIGURA 3.6 – exemplo de máscara. ......................................................................... 34 FIGURA 3.7 – Exemplo de retirada de ruídos utilizando filtro da mediana................ 35 FIGURA 4.1 – Diagrama de blocos da rotina completa. ............................................ 37 FIGURA 4.2 – Aquisição, pré-processamento e detecção de estrelas ...................... 38 FIGURA 4.3 – Imagem original ................................................................................. 38 FIGURA 4.4 – Etapa de pré-processamento da imagem .......................................... 39 FIGURA 4.5 – Imagem pré-processada com objetos detectados (objetos pequenos foram desconsiderados). ........................................................................................... 40 FIGURA 4.6 – Segundo bloco do processo geral(FIG 3.1), análise dos ângulos. ..... 40 FIGURA 4.7 – Representação dos triângulos formados entre as sete principais estrelas. ..................................................................................................................... 41 FIGURA 4.8 – “Calculator” comparação entre os ângulos ........................................ 42 FIGURA 4.10 – Etapa final do processamento, representação dos resultados. ........ 43 FIGURA 4.9 – Ciclo de análise das estrelas. ............................................................ 43 FIGURA 4.11 – Ilustração final do processamento, centro de massa, e coordenadas cartesianas. ............................................................................................................... 44 FIGURA 4.12 – Cálculo do tempo de processamento. .............................................. 45 FIGURA 5.1 - Diagrama de blocos do processo geral para detecção de horizonte. . 46 FIGURA 5.2 - Imagem da Lua tirada pelo telescópio com a câmera acoplada. ........ 47 FIGURA 5.3 - Pré-processamento. ........................................................................... 48 FIGURA 5.4 - Imagem após o pré-processamento e da detecção do círculo. .......... 49 FIGURA 5.5 - Outra imagem, analisando as linhas verticais para localizar o planeta. .................................................................................................................................. 50 FIGURA 5.6 - Imagem que mostra o cálculo do ângulo de inclinação e da distância do planeta à borda .................................................................................................... 51 FIGURA 5.7 - Imagem que mostra o cálculo do ângulo de inclinação e da distância do planeta ao centro da imagem. .............................................................................. 52 FIGURA 5.8 – Cálculo do tempo de processamento da detecção de horizonte. ....... 52 LISTA DE TABELAS TABELA 1.1 – Características da câmera. ............................................................... 19 TABELA 1.2 – Características do telescópio. .............. Erro! Indicador não definido. TABELA 2.1 – Tipos mais comuns de sensores de câmeras digitais. ....................... 36 RESUMO Satélites artificiais são utilizados em larga escala para fins científicos, meteorológicos, telecomunicações, navegação e observação da Terra. Para que possam ser mais eficientes precisam de um posicionamento bem feito, de forma a desempenhar melhor sua função, economizar energia e aumentar sua vida útil. O espaço, o peso e o consumo energético de dispositivos são fatores extremamente importantes quando se trata de satélites, por seu limitado espaço físico causado pela dificuldade e alto custo de envio ao espaço. Um satélite precisa de ao menos dois vetores conhecidos para que possa se localizar: campo magnético, distância à Terra, posição em relação ao Sol, e em relação às estrelas, por exemplo, podem ser utilizados para obter esses vetores. Nesse trabalho foca-se em utilizar a posição em relação às estrelas e em relação ao horizonte da Terra como vetores de referência. Utilizando equipamentos simples como um computador comum e câmeras comuns, alguns valores que podem ser usados para a atitude do satélite. Utilizando o software LABVIEW VISION BUILDER 3.6, foi feito o desenvolvimento de uma ferramenta que possibilita encontrar um padrão de estrelas e achar sua localização em relação à imagem, e através dessa imagem achar a posição em relação ao satélite. Outra ferramenta desenvolvida permite a localização em relação ao globo terrestre, determinando os ângulos de inclinação em relação ao seu horizonte. Estudos feitos mostram que um grupo de três estrelas pode ser utilizado para determiná-las, através do ângulo entre elas. Tendo então um banco de dados prédefinido, podemos localizá-las com as câmeras, compará-las com este banco de dados, e assim determinar em qual ponto do mapa estelar elas se encontram definido nosso vetor em relação às estrelas. Com uma fotografia do horizonte, podemos observar que se a câmera é fixa em relação ao satélite, se houver variação na imagem é porque houve variação na posição do mesmo. Sendo assim temos a inclinação do satélite em pelo menos dois eixos distintos. Palavras-chave: Atitude de satélites, detector de horizonte, Star Tracker, triângulo planar, ângulo planar, processamento de imagens, LABVIEW VISION BUILDER. ABSTRACT Artificial satellites are used in large scale for different missions like scientific, meteorological, telecommunications, navigation and to Earth observation. To be more efficient they need to have a well done position, to work better, save power and extend your life. The size, weight and power consume of this parts are extremely important in satellite projects, their room are limited for the difficult of send and the high cost too. A satellite needs at list two vectors to localize in space: magnetic field, distance from Earth, position in relation to the Sun, in relation to the stars for example. This work focuses on using the position in relation to the star and the horizon of the Earth as reference vector. Using simple equipments like a personal computer and simple cameras, some information can be used for satellite attitude. Using the LabVIEW Vision Builder 3.6, a tool was developed that enables you to find a pattern of stars and find their location relative to the image, and through that to find the image position relative to the satellite. Another tool developed allows the location over the globe, determining the angles of inclination to the horizon. Studies show that a group of three stars can be used to determine them by the angle between them. Since then a database pre-defined, we can locate them with the cameras, compare them with this database, and thus determine at which point of the star map, so our vector is defined in relation to the stars. With a photograph of the horizon, we see that the camera is fixed relative to the satellite, if there is variation in the image because there is variation in the satellite position. Thus we have the inclination of the satellite in two axes. Keywords: Attitude of satellites, horizon detector, star tracker, planar triangle, angle planar, image processing, LabVIEW Vision Builder. SUMÁRIO 1. INTRODUÇÃO .................................................................................................. 12 1.1. Metodologia ...................................................................................................... 14 1.2. Concepção de pequenos satélites. ................................................................... 15 1.3. Determinação de Atitude................................................................................... 16 1.4. Uso de câmeras comuns. ................................................................................. 18 1.5. Material utilizado. .............................................................................................. 19 1.6. Estrutura do trabalho: ....................................................................................... 20 2. FUNDAMENTOS PARA SENSORES DE DETERMINAÇÃO DE ATITUDE.... 22 2.1. Sensores orbitais. ............................................................................................. 22 2.2. Detector de horizonte. ....................................................................................... 23 2.2.1. Detector de local, ou múltiplos pontos (multitude of point or spot detectors).24 2.2.2. Detector de múltiplas linhas (multiple lines detectors).................................. 24 2.2.3. Sensor de imagem em duas dimensões (2-D image sensor)....................... 24 2.3. Star Trackers. ................................................................................................... 24 2.3.1. Método da área de um triângulo................................................................... 25 2.3.2. Método do ângulo planar. ............................................................................. 26 2.3.3. Método dos ângulos entre vetores. .............................................................. 27 2.4. Condição perdido no espaço (lost-in-space). .................................................... 28 3. FUNDAMENTOS PARA PROCESSAMENTO DIGITAL DE IMAGENS .......... 29 3.1. Operações Básicas de Processamento ............................................................ 31 3.2. Sensores de Câmeras Digitais.......................................................................... 35 4. PROCESSO GERAL DO PROGRAMA PARA DETECÇÃO DE ESTRELAS . 37 4.1. Método utilizado: triângulo planar. .................................................................... 37 4.2. Construção da rotina no software. .................................................................... 37 5. PROCESSO GERAL DO PROGRAMA PARA DETECÇÃO DO HORIZONTE E ESTIMAÇÃO DE ATITUDE ...................................................................................... 46 6. CONCLUSÃO ................................................................................................... 54 REFERÊNCIAS BIBLIOGRÁFICAS ......................................................................... 56 1. INTRODUÇÃO Satélites são corpos celestes que orbitam um planeta maior, como a Lua orbitando a Terra. Satélites artificiais são equipamentos criados pelo homem para orbitar algum planeta com uma função específica. Além de satélites existem outros equipamentos criados pelo homem que tem funções parecidas, porém características distintas como sondas espaciais, estações espaciais entre outros. Satélites podem ser classificados por seu tipo de órbita e também por sua missão: Geossíncrono ou geoestacionário – possui uma altitude de cerca de 36 mil quilômetros e possui um período de revolução, ou o tempo que ele leva para circular a Terra, de 24 horas. Dessa forma ele pode ser considerado estático em relação a uma região da Terra, o que o torna extremamente útil para telecomunicações e posicionamento. Heliossícrono – possui baixa altitude e órbita polar, é como se ele acompanhasse a rotação do Sol em relação à Terra. Dessa forma ele tem sempre contato com o Sol, e para ele a Terra sempre estará iluminada, facilitando assim funções de observação em volta do planeta. Com seu movimento em relação ao nosso planeta, ele sempre passa sobre uma determinada região no mesmo momento do dia todos os dias e isso facilita a aquisição de dados, pois esse pode enviar diariamente informações à uma antena fixa na Terra. Média e baixa altitude – são satélites com altitudes de 2000 a 20000 quilômetros, e 200 a 2000 quilômetros respectivamente. Quanto à missão os satélites podem ser: Científicos – reúnem informações sobre a composição e efeitos do espaço próximo à Terra. Podem realizar experiências que exigem baixa gravidade. 13 Meteorológicos – são utilizados para estudo do clima e previsão do tempo ao longo do planeta. Telecomunicações – funcionam como estações de reenvio de sinais, fazendo a comunicação entre locais distantes no mundo como a distribuição e a interconexão da internet ou então por comunicação direta para locais remotos que necessitam de comunicação direta via satélite. Navegação – seu uso é muito difundido atualmente, são os satélites que permitem o funcionamento dos sistemas de posicionamento terrestre como o GPS e Galileu. Antigamente utilizado somente por militares, navios e aviões de alta tecnologia, hoje é amplamente utilizado em carros comuns, e por pessoas que precisam se localizar em locais muitas vezes desconhecidos. Observação da Terra – utilizados para monitorar recursos do planeta e recentemente para fazer seu mapeamento, corrigindo erros de mapeamentos antigos. O Google Earth® é um exemplo claro sobre sua utilização. Militares – podem ser todos os outros tipos de satélites utilizados para fins militares. Eles são conhecidos também como satélites espiões. Contam com maior segurança de informações e maior sigilo sobre suas operações e missões. Para entrar em operação, um satélite precisa ser lançado ao espaço em missões extremamente complexas e caras. Dessa forma é preciso economizar no peso e espaço do satélite. O satélite conta com diversos sistemas entre eles os que são necessários para realizar sua missão, e outros sistemas, ou subsistemas, para seu funcionamento. Dentre estes subsistemas podemos listar: 14 Subsistema de determinação e controle de atitude – responsável pela determinação e controle do apontamento do satélite no espaço e foco do trabalho. Subsistema de rastreamento, telemetria e comando – responsável comunicação com a base na Terra. Subsistema de comando e tratamento de dados – processa as informações contidas no satélite. Em pequenos satélites é limitada e pode ser uma única unidade de processamento de dados. Subsistema de suprimento de energia – fornece e controla a energia de todo o satélite. Subsistema térmico – controla a temperatura do satélite e de seus equipamentos. Subsistema de estruturas e mecanismos – fornece todo o suporte mecânico e de movimentação para as partes do satélite. Oferece também proteção contra as vibrações e radiação incidentes. Subsistema de propulsão – possibilita movimentação para controle de atitude. 1.1. Metodologia As principais etapas desse trabalho foram: a. Revisão bibliográfica dos temas a seguir: Câmeras digitais; Processamento de imagem; Funcionamento do LABVIEW e do LABVIEW VISION BUILDER; 15 Métodos de reconhecimento de padrões de estrelas; Métodos de análise do horizonte da Terra. b. Aquisição de imagens de diversas fontes diferentes, incluindo bancos de imagens de agências espaciais, imagens de astrônomos amadores na internet e por último, formação de banco de imagens com as câmeras do próprio laboratório. c. Criação de rotinas para reconhecimento de padrões de estrelas. d. Criação de rotinas para detecção de horizonte. e. Testes das rotinas para melhoramento e para aquisição final de resultados. 1.2. Concepção de pequenos satélites. Empresas e centros de pesquisas aeroespaciais desenvolvem equipamentos eletrônicos menores e melhores continuamente, e hoje, as aeronaves não são mais tão grandes quanto costumavam precisar ser. O conceito atual é de ter produtos menores, melhores e mais baratos. Apesar da indústria já pensar nesse conceito, ainda há certa hesitação na concepção de pequenos satélites. Porém, ao longo dos últimos anos, várias universidades ao redor do mundo têm planejado e desenvolvidos projetos de pequenos satélites, chamados também de BoxSats ou CubeSats, (FIG. 1.1). Por terem a educação como objetivo principal, a viabilidade do projeto pode ser mais flexível. Esses projetos no geral são de pequenas transmissões de dados, aquisição de fotos utilizando um celular, entre outras operações simples. Porém, para que eles tenham sucesso é importante que possam se controlar no espaço, com dispositivos que possam determinar sua atitude de forma precisa e atuar rapidamente, mesmo com poucos recursos. 16 FIGURA 1.1 – CubeSat XI-IV University of Tokyo. (UNIVERSITY OF TOKYO, 2011) 1.3. Determinação de Atitude Essencialmente, todos os satélites artificiais possuem instrumentos com o objetivo de observar ou interagir com outros objetos. Para que seu objetivo seja cumprido estes instrumentos devem ser apontados para uma direção determinada pelo seu centro de comando, pois todos os satélites tem que se comunicar com suas bases para que possam transmitir as informações adquiridas e, além disso, suas missões devem ser bem executadas. Por exemplo, ao fotografar uma determinada área deve direcionar suas câmeras naquela região. Para que isso seja possível, estes satélites devem apresentar orientações específicas de modo que seus equipamentos estejam sempre na direção desejada. A atitude é o modo como o veículo espacial se orienta no espaço. Também pode ser dito que a atitude de um satélite é o movimento rotacional do mesmo ao redor de seu centro de massa, ou eixos referenciais (ROCHA, 2010). 17 Assim, a importância do controle da atitude de um satélite artificial torna‐se imprescindível, uma vez que é esse controle que fará com que o satélite mantenha (ou siga) uma orientação específica. É também esse controle que muitas vezes determinará a eficiência do satélite. Para que seja possível realizar o controle da atitude de um satélite, deve‐se primeiramente conhecer a atitude em que o satélite se encontra ao longo do tempo. Portanto, deve haver um dispositivo a bordo do satélite capaz de fazer o sensoriamento e processamentos necessários para que se possa estimar esta atitude e efetuar seu controle (ROCHA 2010). A determinação da atitude de um satélite pode ser resumida como a operação de se indicar a orientação do satélite ou, simplesmente, calcular sua matriz de atitude num determinado instante em relação a um referencial escolhido. A ideia básica da determinação de atitude é utilizar uma combinação de sensores e modelos matemáticos para coletar as componentes vetoriais do sistema no corpo do satélite e no sistema de referência inercial. Estas componentes vetoriais são utilizadas por diferentes algoritmos para determinação de atitude, tipicamente na forma de quatérnios, ângulos de Euler ou matriz de rotação (HALL, 2006). A partir de um vetor observado w por um sensor fixado ao satélite, a matriz de atitude A em relação a um vetor de referencia v é dada pela equação: w = Av, (1.1) a qual possui diversas soluções possíveis. Para se obter uma única solução específica para o problema da determinação da atitude, é necessário o uso de mais sistemas de referencia. Existem diversos algoritmos que resolvem o problema da determinação de atitude, sendo que na maioria tenta-se eliminar possíveis singularidades que representam indeterminações (MAKOVEC, 2001). Qualquer que seja o algoritmo utilizado para estimar a atitude, sempre será necessário pelo menos dois vetores de observação com direções conhecidas, visando garantir uma boa estimação da atitude em relação a um referencial inercial. Quanto mais vetores de observação forem utilizados, menor será a incerteza avaliada na estimativa da atitude. Considerando um número n de sensores no corpo do satélite, observando n vetores unitários wi. Para cada vetor observado deve existir um vetor de referencia vi 18 relativo ao sistema de referência estipulado para o respectivo sensor. Assim, o problema da- determinação da atitude consiste em encontrar a matriz de atitude A que representa a rotação: wi = Avi, (1.2) em outras palavras, pode‐se dizer que determinar a atitude significa calcular a matriz de rotação A que permite girar o vetor de referência v para se obter o vetor observado w. Com a limitação de tamanho e peso dos pequenos satélites, os equipamentos presentes neles precisam estar todos muito próximos, o que causa uma série de interferências de sinais entre eles. Por exemplo, magnetômetros utilizados para medir o campo magnético da Terra, para tê-lo como referência geralmente são colocados nas partes externas dos grandes satélites, evitando que não sofram interferência eletromagnética dos sistemas do satélite. Nos pequenos satélites isso não é possível, pela sua estrutura física restrita em formato de cubo. Outro dispositivo muito utilizado, o sensor solar, ainda não tem versões pequenas que possam equipar pequenos satélites. Sendo assim, um desafio muito grande para esses pequenos satélites é ter sensores capazes de determinar suas atitudes para seu bom funcionamento. O tamanho e o consumo energético são essenciais nos pequenos satélites, mas também muito desejados nos grandes, pois permitem uma grande economia no seu envio (ROCHA 2010). 1.4. Uso de câmeras comuns. Com o advento dos telefones móveis a tecnologia em câmeras digitais evolui bastante. Hoje elas são pequenas e extremamente eficientes. Além das câmeras que são embutidas nos celulares, webcams e outras microcâmeras são muito difundidas. Esse trabalho tem como objetivo utilizar essas câmeras para equipar satélites por serem pequenas e eficientes energeticamente, que, no entanto, tem 19 uma boa qualidade. Um processamento da imagem é necessário para limpar a imagem, e algumas margens de erro devem ser admitidas. 1.5. Material utilizado. Os materiais utilizados nesse trabalho são: Câmera Basler scA1390-17fm, e acessórios como cabos e lentes. FIGURA 1.2 – Câmera utilizada. FONTE: BASLER, 2007. TABELA 1.1 – Características da câmera. Características Gerais Tipo de sensor CCD Diagonal 8 mm(Tipo ½”) Resolução 1392x1040 pixel Taxa de “frames” (imagens) 17 frames/seg FONTE: FONTE: BASLER, 2007 20 Telescópio Tasco, acoplado à câmera Basler como uma lente. FIGURA 1.3 – Telescópio utilizado. FONTE: TASCO, 2005. TABELA 1.2 Diâmetro lente objetiva 60mm (2.36”) Distância focal 700mm FONTE: TASCO, 2005. 1.6. Estrutura do trabalho: O trabalho foi divido em cinco capítulos. 21 No capítulo 1 apresentou-se a introdução aos temas a serem tratados como satélites, determinação de horizonte, determinação de padrões de estrelas, material utilizado e metodologia. No capítulo 2 é feita uma revisão sobre os principais tópicos sobre sensores para determinação de atitude de satélites. No capítulo 3 o tema foi processamento de imagens mostrando um resumo das principais operações que foi utilizado ao longo de todo o processo da monografia. No capítulo 4 mostra todo o processo de detecção de estrelas e procura de um padrão. Os resultados são mostrados e comentados. No capítulo 5 a detecção de horizonte é desenvolvida e os resultados obtidos são comentados. No capítulo 6 as conclusões foram apresentadas e também sugestões de continuação do trabalho. 2. FUNDAMENTOS PARA SENSORES DE DETERMINAÇÃO DE ATITUDE. 2.1. Sensores orbitais. Os parâmetros necessários para a estimativa da atitude e das velocidades angulares de um satélite são encontrados a partir das observações de pontos geodesicamente referenciados a partir de uma origem artificial, sendo estes vetores medidos utilizando sensores diversos (NEVES JÚNIOR, 2010). Entre os vetores e medições utilizados para a determinação da atitude, pode‐se destacar: O campo magnético da Terra que é utilizado há séculos para indicar orientações sobre a superfície do globo. Os sensores mais comuns que medem essa grandeza são o Fluxgate, Magneto-Resistivo (MR) e o MagnetoIndutivo, os quais são mais práticos que a agulha magnética tradicional por serem resistentes ao choque e à vibração, possuírem compensação e interface direta com outros sistemas. A posição em relação ao Sol, que pode ser também utilizada como referência. Este vetor pode ser determinado por um sensor composto por quatro células fotovoltaicas dispostas ao longo de eixos ortogonais x e y, que permite a determinação da posição azimutal do Sol quando este se encontra no seu campo de visão. Pode ser um detector baseado em imagens, preferencialmente de infravermelho para obter maior clareza e precisão. O deslocamento angular nos três eixos principais pode ser utilizado. Utilizando uma comparação com a orientação de aviões os eixos roll, pitch e yaw (FIG 1.2), uma estimativa pode ser feita a partir da integração das saídas de um giroscópio, sendo que as informações sobre valores iniciais sejam continuamente atualizadas por outros sensores. Os giroscópios podem ser ajudados por acelerômetros, que medem a aceleração ao longo dos três eixos. 23 Outros dois métodos serão discutidos em subcapítulos separados, uma vez que eles serão mais detalhados por serem os métodos propostos neste trabalho. FIGURA 2.1 Representação dos eixos. FONTE: SUZUKI, 2011. 2.2. Detector de horizonte. A posição em relação à Terra pode ser um vetor extremamente útil. Uma vez que as missões dos satélites estão praticamente todas ligadas diretamente ao planeta, ao conseguir um vetor direcionado a ele o cálculo é feito de forma direta, e não um cálculo baseado em outro astro eliminando ou reduzindo assim os erros relativos ao posicionamento. A grande área ocupada pelo planeta na visão do satélite é algo que pode dificultar sua utilização como referência. Porém é possível utilizar o limiar entre a escuridão do espaço e o brilho “emprestado” do planeta como ponto de referência. A detecção desse brilho pode ser atrapalhada por reflexos na atmosfera e pela presença excessiva de nuvens. Porém com um bom processamento da imagem é possível retirar essa interferência e aumentar a precisão do método. Além disso, utilizando a faixa de ondas infravermelhas fica mais nítida a diferença de brilho facilitando esse processo. As câmeras digitais comuns, mesmo as mais simples como de celulares, são capazes de captar essa frequência de onda apenas retirando 24 um filtro presente nelas, sendo assim o trabalho não perde sua objetividade utilizando equipamentos simples. Os três tipos de detectores mais conhecidos e utilizados são: 2.2.1. Detector de local, ou múltiplos pontos (multitude of point or spot detectors). Esse tipo é muito simples e barato, consiste em ter vários sensores que tem campos de visão diferentes. O sistema irá detectar em quais pontos o planeta foi localizado e determinar assim sua posição. Esse método é muito impreciso e consume muita energia (VAN RENSBURG, 2008). 2.2.2. Detector de múltiplas linhas (multiple lines detectors). Esta configuração consiste em dois tipos de linhas de detecção. Metade delas é de linhas detectoras para medir o eixo pitch, e a outra metade para medir o eixo roll, que são os dois tipos de linhas existentes. Apesar de simples e barato a utilização de sensores múltiplos deixa o consumo de energia muito alto. Ele pode trabalhar bem medindo os três eixos caso a espaçonave esteja com a rotação estabilizada (VAN RENSBURG, 2008). 2.2.3. Sensor de imagem em duas dimensões (2-D image sensor). Utilizando uma câmera digital uma imagem é gerada e passa por um algoritmo para detecção de um círculo. Apesar de a Terra ser achatada nos polos a aproximação com um círculo pode ser feita sem grandes perdas. A detecção do círculo é feita pela análise de uma borda presente na imagem. Esse método é o mais caro e complexo, porém é o que menos consome energia (VAN RENSBURG, 2008). 2.3. Star Trackers. “Star Trackers” ou rastreadores de estrelas são os únicos sensores disponíveis para os BoxSats que podem fornecer estimação de atitude em tempo real. Isso é feito tirando fotografias de estrelas, e comparando dados extraídos da imagem com um banco de dados armazenado na memória do sistema. Isso permite que uma estrela 25 seja rastreada, ou detectada, e que a espaçonave se localize a qualquer hora em qualquer ponto do espaço desde que os dados das estrelas analisadas estejam catalogados no banco de dados. Porém os principais “Star Trackers” comerciais custam milhares de dólares, pesam muito em relação à carga compatível com pequenos satélites, e ainda consumem muita energia, o que para um pequeno satélite se torna inviável (DIAZ, 2006). Os Star Trackers convencionais utilizam câmeras muito avançadas com sensores CCD para que possam primeiramente determinar a magnitude da estrela e utilizá-la como critério primário na tentativa de identificá-la. Magnitude ou magnitude aparente é o brilho das estrelas visto do planeta Terra que depois foi normalizado para o valor visto na ausência de atmosfera. É uma escala logarítmica inversa, sendo que originalmente tem o número -1 como a estrela mais brilhante, e o 6 como limiar das estrelas vistas a olho nu. Nessa escala o acréscimo em uma unidade significa o dobro do brilho, como exemplo o Sol, que na verdade é uma estrela mas não foi considerada na montagem dessa escala, teria um valor de -26. A estrela Vega é a referência no cálculo nessa escala tem valor 0. (1.3) M é o valor calculado da magnitude, F0 é o valor do brilho de Vega e Fx é o valor da estrela que se pretende medir. Porém mesmo com esses sensores de alta qualidade é difícil ter uma medida precisa da magnitude, pois, as estrelas têm valores de magnitude muito próximos. Por tanto os Star Trackers utilizam vários outros critérios para a detecção. A seguir alguns métodos utilizados para identificar as estrelas. 2.3.1. Método da área de um triângulo. A área de um triângulo localizado em uma imagem pode ser utilizada para estimar a atitude de um satélite. A área em uma imagem pode ser comparada com o valor da mesma grandeza armazenada em um banco de dados (COLE, 2006 e DIAZ, 2006). O triângulo é montado como mostra a FIG. 1.3: 26 FIGURA 2.2 – Área de um triângulo abc. FONTE: DIAZ, 2006. Um banco de dados deve ser montado antes de enviar, para evitar cálculos desnecessários e custosos onboard. 2.3.2. Método do ângulo planar. Esse método como o anterior baseia-se na construção de um triângulo planar. No entanto nesse método os ângulos formados pelo triângulo são utilizados no processo de pesquisa. Esse método possui um método de pesquisa mais eficiente, pois tem três parâmetros a serem comparados. A FIG 1.4 mostra o triângulo formado e os três ângulos (DIAZ, 2006). 27 FIGURA 2.3 – Ângulos de um triângulo entre três estrelas. FONTE: DIAZ, 2006. 2.3.3. Método dos ângulos entre vetores. Outro método utilizado é o método de comparação com dois vetores formados por duas estrelas de interesse até a origem da imagem (FIG. 1.5). Esse outro método geralmente é utilizado como critério de pré-seleção no banco de dados para depois utilizar a comparação com outro método. Através desse método é possível formar um banco de dados com somente uma informação, ordena-la em ordem crescente o que facilita a pesquisa (COLE, 2006 e DIAZ, 2006). 28 FIGURA 2.4 – Ângulo medido entre a origem e duas estrelas. FONTE: DIAZ, 2006. 2.4. Condição perdido no espaço (lost-in-space). Essa condição é um caso em que o satélite se encontra em uma posição desconhecida e que ele não tenha nenhuma referência sobre sua posição anterior. Sendo assim ele precisa de uma referência muito precisa para que ele possa se localizar novamente (COLE, 2006). Os Star Trackers funcionam muito bem nessas situações, ao contrário dos outros métodos. Eles dão a posição do satélite independentemente de ter uma informação anterior ou não. Outros métodos precisam utilizar informações de acelerômetros para indicar a rotação que o satélite sofreu e determinar sua posição. Porém estes dispositivos podem ter baixa precisão quando estão em situações de baixas rotações e assim inviabilizam seu uso. 3. FUNDAMENTOS PARA PROCESSAMENTO DIGITAL DE IMAGENS Imagem digital é uma função bidimensional de intensidade de luz f(x,y) onde x,y são as coordenadas cartesianas (FIG. 2.1). O valor de f() é a intensidade da cor, ou no caso das escalas de cinza, o brilho. Ou seja, uma imagem digital é uma matriz, onde os valores de cada ponto, chamado de pixel (picture element ou elemento da imagem) são os valores da intensidade de brilho, ou cor. Dessa forma uma imagem é a forma discreta, tanto em coordenadas espaciais, como da cor de uma imagem real (CARVALHO 2003). FIGURA 3.1 - Representação de uma imagem digital (matriz). FONTE: CARVALHO, 2003. O tamanho da matriz é o que define a resolução de uma imagem. Quanto maior essa matriz, maior é a resolução dessa imagem. Se uma imagem é uma matriz 150x100, ela tem uma resolução de 15000 pixels. Essas informações são muito observadas nas câmeras digitais, que vem com informações 5,0 megapixel, por exemplo, que é uma matriz de cinco milhões de pixels. Nos manuais de televisões também é muito comum ter essa informação, as televisões chamadas de full HD(high definition ou totalmente alta definição) tem 1920x1080 pixels, ou 2,0736 megapixel. Já a qualidade da imagem depende não só da sua resolução, mas também do tamanho da sua representação. Ou seja, uma imagem pode ter boa resolução em uma tela pequena, e quando impressa em um papel maior, sua 30 qualidade fica baixa. Então é comum usar o número de pixels por polegada, sigla em inglês DPI (dots per inc). Existem vários tipos de representação digital de imagens. A mais básica talvez seja a escala de cinzas. No qual a intensidade de brilho vai de zero (preto) até um valor estabelecido, geralmente 255 (branco). Esta intensidade está relacionada ao número de bits que representa a imagem. No caso do [0,255] temos oito bits de dados por pixel, pois 2^8 = 256, o que justifica o intervalo [0,255]. Outra representação é a representação da cor real, ou true color, onde cada pixel é representado por 24 bits. Esse sistema utiliza um separação de cores em RGB (red green blue) (FIG. 2.2), em português vermelho, verde e azul que juntas podem representar 16 milhões de cores, ou seja, proporciona uma imagem muito próxima à realidade, e que para os olhos humanos podem ser consideradas reais. Cada pixel é representado por três intensidades, de oito bits cada, assim como a escala de cinza com valores no intervalo [0,255], que representam as intensidades de vermelho, verde e azul. O valor (0,0,0) representa o preto, ou seja ausência de cores, e o (255,255,255) representa o branco mistura de todas as cores (ALECRIN, 2011). FIGURA 3.2 – Representação de cores como vetores. FONTE: (CHÁVEZ, 2010). 31 No formato digital as imagens são armazenadas em arquivos de imagem como a extensão JPEG (ou JPG), Bitmap, PNG, TIFF entre outras. Os mais utilizados por dispositivos eletrônicos é o JPEG que permite um armazenamento com ou sem compressão de dados. JPEG (Joint Pictures Expert Group ou grupo de especialistas de imagens associadas) criado por um grupo de especialistas de mesmo nome por volta de 1983, é um formato de imagem que permite armazenamento em que são eliminados dados redundantes possibilitando imagens pequenas, em relação à quantidade de dados. Ao se comprimir as imagens, alguns dados são eliminados para que o arquivo fique menor, porém há perdas na qualidade da imagem, o que em alguns casos não é desejável. O formato JPEG possui oito bits de dados para imagens em escala de cinza, e até 24 bits de cores RGB, ou seja, oito bits para cada cor. Outro formato muito utilizado é Bitmap (mapa de bits), que é um formato mais simples, sem compressão que permite imagens de alta qualidade, com milhões de cores. A falta de um sistema de compressão faz com que esse formato não seja muito usado na transmissão de imagens. O Bitmap (.bpm) é um padrão muito utilizado no Windows, e é exatamente a forma como as câmeras fazem suas aquisições. Cada ponto do sensor de captura da câmera capta uma cor e a transforma em uma matriz, sendo que algumas transformam a imagem para JPEG para diminuir seu tamanho, e outras salvam como Bitmap. 3.1. Operações Básicas de Processamento Uma importante ferramenta para o processamento de imagens é o histograma de cores, ou de intensidade de cores das imagens. O histograma faz a contagem de quantos pixels de cada valor tem na imagem, no caso da FIG. 2.3 é de uma escala de cinza, mas podemos também utilizar para RGB. 32 FIGURA 3.3 - Histograma da imagem de Lenna. FONTE: (CHÁVEZ, 2010). Com essas informações os programas de edição de imagem pode expandir a faixa de cores, como é visto na imagem, os pixels vão de aproximadamente 25 até 200, fazendo uma expansão dessa faixa aumentos o contraste da imagem chamada de equalização, como nas imagens da FIG. 2.4 e FIG. 2.5. No MATLAB podemos fazer essa operação com o seguinte código: function nimg = EcualizacionHistograma(img) [fil, col] = size(img); N = fil*col; hist = imhist(img) / N; histAcumNorm = cumsum(hist); nimg = histAcumNorm(img+1); nimg = uint8(nimg*255); %dim. da imagem % numero total de pixels %calcula o hist.norm % hist. acum. 33 FIGURA 3.4 - Equalização da imagem de Lenna. FONTE: (CHÁVEZ, 2010). FIGURA 3.5 - Equalização para melhor visualização das informações da placa de um carro. FONTE: (CHÁVEZ, 2010). As operações mais básicas utilizadas no processamento de imagem são as operações algébricas, que são a soma, subtração, multiplicação e divisão de pixels. A adição é muito utilizada para sobrepor imagens, além de poder reduzir alguns ruídos indesejados na imagem. A subtração também é utilizada para reduzir interferências, mas tem também a função de detectar movimento em imagens, e também muito utilizado para detecção de bordas na imagem. A multiplicação e divisão são utilizadas para diminuir erros ocorridos na digitalização de imagens. 34 Multiplicação pode ser usada para valorizar uma determinada parte da imagem, valorizando assim uma área de interesse. Podemos utilizar de todas as operações algébricas para formar um método mais complexo. Operações de convolução são operações que substituem o valor dos pixels baseados nos seus vizinhos. Essa substituição pode ter vários critérios e pesos diferentes, como a distância ao ponto central, pesos de linhas e colunas diferentes. Esses pesos são organizados em um modelo chamado máscara. Na FIG. 2.6 temos uma máscara e como ela age na imagem. O ponto zero é substituido pela soma da multiplicação de todos os correspondentes à máscara envolta do ponto zero. Esse é um exemplo de uma máscara 3x3, mas é muito comum utilizar também 5x5 e 7x7. No geral a convolução é utilizada para suavizar a imagem, retirando os ruídos, porém isso pode borrar um pouco a imagem. Quanto mais se retira ruídos, mas diminui a qualidade da imagem. No geral o processo de convolução utilizando as máscaras são chamadas de filtros, e esses filtros podem ser filtros de média, filtros gaussianos. FIGURA 3.6 - Exemplo de máscara. FONTE: (CHÁVEZ, 2010). Outras operações possíveis são operações não lineares. Eles utilizam métodos diferentes de máscaras. Eles utilizam critérios como mediana (FIG. 2.7) onde o valor do ponto é substituído pela mediana dos valores dos pontos adjacentes, valor 35 mínimo ou máximo das adjacências que substitui o valor do ponto, ou também a substituição pelo valor modal. FIGURA 3.7 - Exemplo de retirada de ruídos utilizando filtro da mediana. FONTE: (CHÁVEZ, 2010). 3.2. Sensores de Câmeras Digitais. O sensor é a parte da câmera digital que captura luz para criar uma imagem. É análogo ao filme das câmeras não digitais. Semelhante à camada de material sensível à luz em película fotográfica, o sensor de uma câmera digital tem células sensíveis à luz. Existem vários tipos de sensores, os mais comuns são o CCD e CMOS. Ambos são muito parecidos na sua concepção, porém se diferenciam muito quanto ao custo e ao consumo de energia. Os sensores CCD consomem até 100 vezes mais energia que o equivalente CMOS, porém tem uma qualidade maior, e são menos suscetíveis a ruídos. Os sensores são formados por fotodiodos que recebem a luz e emitem uma tensão. Sensores CMOS são comuns nas câmeras de mais baixa qualidade. Os diodos não reconhecem cores, somente intensidade do brilho. Sendo assim as câmeras possuem filtros de cores para cada cor, e novamente seguem o padrão RGB. Para que as imagens tenham um caráter mais realista do ponto de vista humano, as câmeras permitem uma aquisição maior do verde, que é a cor mais perceptível do olho humano. A placa é de silício, e formada por vários diodos. A imagem é composta pelo brilho de pelo menos três diodos para 36 cada pixel. O tamanho do sensor é extremamente importante para a qualidade da imagem. Quanto maior o número de fotodiodos, maior é a resolução da imagem, mas para uma qualidade melhor é necessário que cada fotodiodo receba uma quantidade boa de luz. Assim, placas muito compactas são piores, pois podem facilitar a aparição de “ruídos” na imagem, que são pontos que não receberam quantidade suficiente de luz, e podem gerar pontos aleatórios na imagem. Cada empresa costuma usar um padrão diferente para se referir ao tamanho dos sensores (TAB. 2.1). TABELA 3.1 - Tipos mais comuns de sensores de câmeras digitais. Medida Tipo Medidas (L x A) 2/3” 8.80 mm x 6.60 mm 11.00 mm 4:3 1/1.8” 7.18 mm x 5.32 mm 9.00 mm 4:3 1 /2.7” 5.37 mm x 4.04 mm 6.72 mm 4:3 4/3” 18.0 mm x 13.5 mm 22.5 mm 4:3 1.8” (APS-C) 22.7 mm x 15.1 mm 45.72 mm 3:2 Filme 35 mm 36mm x 24 mm 43.3 mm 3:2 Diagonal Razão largura altura FONTE: (BERGER, 2011). A câmera junta todas as informações e manda para o sistema de armazenamento, no caso das câmeras portáteis a memória interna ou um cartão de memória, no caso dos sistemas computacionais o computador armazena em seu disco rígido ou transmite para um local remoto. 4. PROCESSO GERAL DO PROGRAMA PARA DETECÇÃO DE ESTRELAS Na tentativa de achar um vetor para atitude de satélites uma rotina será montada no LABVIEW VISION BUILDER 3.6 para tentar determinar as estrelas. O programa irá fazer todo o processamento da imagem, a procura do padrão e irá mostrar os resultados. 4.1. Método utilizado: triângulo planar. Utilizando esse método simples o programa irá formar os ângulos entre vários grupos de três estrelas para comparar com o banco de dados. 4.2. Construção da rotina no software. FIGURA 4.1 - Diagrama de blocos da rotina completa. Nesse diagrama (FIG. 3.1) podemos ver o bloco em verde “Start” que é de onde o rotina começa a ser operada. A ligação indicada por uma seta descrita como “default” é a ligação padrão criada pelo próprio programa é o caminho seguido preferencialmente pelo programa que liga um bloco a outro, porém o programador pode adicionar regras para seu funcionamento. As outras ligações descritas como 38 “Transition” são caminhos alternativos criados pelo programador para que o programa siga uma sequência de seu interesse. O bloco em vermelho “End” indica o final da rotina. Os outros blocos serão descritos ao longo do texto. Para esse trabalho é necessário primeiramente processar a imagem para obter somente informações relevantes para o processo, que está simbolizado no diagrama do programa como “Aquisição e detecção de estrelas” (FIG. 3.1): FIGURA 4.2 - Aquisição, pré-processamento e detecção de estrelas O trabalho foi feito com base em um banco de imagens obtidas em Ouro Preto, na portaria dos laboratórios da Escola de Minas, com a câmera apontada para o leste por volta das três da manhã, umas das imagens obtidas é a FIG. 3.3. FIGURA 4.3 - Imagem original 39 O LABVIEW simula a aquisição de imagens a partir desse banco de dados. A imagem passa para outra ferramenta, o Vision Assistant 1 (FIG. 3.2), que irá realçar as informações mais importantes. A seguir a parte interna do bloco com mais detalhes: FIGURA 4.4 - Etapa de pré-processamento da imagem Esse processo irá transformar a imagem original, RGB, em uma imagem em escala de cinza, pois nesse caso as cores não serão tão importantes. O que precisamos mesmo é a intensidade do brilho, a ferramenta Extract HSI (FIG. 3.4) faz isso. Depois a imagem é suavizada pelo método da mediana dos pontos (Smoothing – Median (FIG. 3.4)), depois a imagem é subtraída por uma constante (Subtract Constant 2 (FIG. 3.4)) para que ruídos na imagem e pequenas estrelas não interfiram no processo. Em seguida a imagem é multiplicada por uma constante (Multiply Constant (FIG. 3.4)) para que seja realçada para facilitar o processamento, e por último as estrelas achadas são dilatadas (Dilate 1). Voltando, a função Detect Objects (FIG 3.2) que irá detectar a imagem dentro de limites estabelecidos de brilho e tamanho (em pixels). Esse bloco faz com que todos os objetos localizados sejam ordenados por tamanho em pixels e armazenam sua localização na imagem em relação ao seu pixel central. Por último o bloco Set Variable 1 ajusta uma variável interna para que é utilizada nos processos de reconhecimento de padrões. 40 FIGURA 4.5 - Imagem pré-processada com objetos detectados (objetos pequenos foram desconsiderados). Imagem FIG. 3.5 que mostra as estrelas detectadas e o índice delas, organizada pelo tamanho em pixels. FIGURA 4.6 - Segundo bloco do processo geral(FIG 3.1), análise dos ângulos. No segundo bloco do diagrama de blocos do programa (FIG 3.1) a parte que irá reconhecer padrões, as ferramentas Index Measurements 1, 2 e 3 (FIG 3.6) irão puxar da ferramenta anterior Detect Objects 1 (FIG 3.2) a localização dos pixels centrais das estrelas detectadas e armazenar para utilização nas ferramentas 41 Geometry 1, 2 e 3 (FIG. 3.6) que irão calcular os três ângulos do triângulo formado pelas três estrelas selecionadas. FIGURA 4.7 – Representação dos triângulos formados entre as sete principais estrelas. Por último nesse bloco (FIG. 3.6) tem o Calculator 1 que é o responsável para fazer as comparações entre os ângulos encontrados pelo programa com um banco de dados. Dentro dessa ferramenta (FIG. 3.7) algumas operações são realizadas com o intuito de ajustar os dados obtidos. Por exemplo, o ângulo pode ser maior que 180° dependo da ordem em que os pontos forem selecionados, sendo assim ele deve ser adequado para ficar entre 0 e 179º que é a característica dos ângulos internos de um triângulo. Os ângulos são ordenados do maior para o menor e comparados com os dados do banco, que em uma análise prévia os ângulos do cinturão de Orion são: 172,42º, 3,76° e 3,82°. Foi estabelecida uma margem de erro de um grau para os ângulos menores e dois graus, para mais ou para menos, para o ângulo maior. Essa ferramenta pode ser facilmente substituída por um bloco do LABVIEW 8.5 que tem muito mais ferramentas, que pode, por exemplo, puxar informações do 42 MATLAB, e dessa forma tem-se um banco de dados muito mais amplo, e com mais funções. A ferramenta então retorna um valor booleano que indicará se o padrão Orion, referente às três estrelas do Cinturão de Orion (ou Três Marias) foi localizado na imagem. FIGURA 4.8 – “Calculator” comparação entre os ângulos A precisão das câmeras, que por objetivo do projeto são câmeras simples, faz com que estrelas de magnitudes muito próximas ao serem fotografadas apareçam com tamanho maior ou menor eventualmente em uma fotografia, esse é também um dos motivos de ter uma margem de erro nos ângulos. Dessa forma tem-se que considerar que o programa pode estar analisando três estrelas que não sejam realmente as três maiores estrelas presentes. Sendo assim, o cálculo será feito para uma relação de ângulos entre as sete principais estrelas entre si em grupos de três, e daí concluir se um padrão foi encontrado. Parte do diagrama de blocos da rotina completa do programa (FIG. 3.1). 43 FIGURA 4.9 - Ciclo de análise das estrelas. State 1, 2 e 4 (FIG. 3.9) que têm a função de manipular variáveis internas do programa que cuidam de fazer o programa testar todas as possibilidades de combinações entre três estrelas, dentro das sete principais estrelas achadas. FIGURA 4.10 – Etapa final do processamento, representação dos resultados. A etapa final, representada no diagrama da rotina completa como “Analisar Resultado” (FIG. 3.1) é detalhada no diagrama acima (FIG. 3.10). Ao encontrar o padrão procurado o programa localiza dentro da imagem um ponto de referência para o programa se orientar neste caso o centro de massa das estrelas, que nada mais é que a média dos centros de cada estrela, que pode ser achado pelo programa desde que feitas algumas considerações. Após achar o centro de massa o programa calcula a distância em relação ao centro da imagem. Considerando o centro da imagem um centro de coordenadas cartesianas a distância do centro de massa encontrado ao centro da imagem é dado em x e y, isso tudo é feito no trecho do programa mostrado na imagem de cima. 44 A seguir a FIG. 3.11 mostra a imagem após o processamento. É importante lembrar que todas essas ilustrações são feitas apenas na tela de configuração do programa com a função de ilustrar ao programador o que ocorre na imagem eu suas diferentes etapas. Para o funcionamento embarcado todas elas são ocultas, e somente valores numéricos como posição e informações como falha ou acerto são fornecidas para que o programa fique leve e eficiente. FIGURA 4.11 – Ilustração final do processamento, centro de massa, e coordenadas cartesianas. É possível observar que o programa localizou seu padrão, o Cinturão de Orion, e forneceu a posição (FIG. 3.11). No fim de tudo o programa calculou o tempo gasto para realizar todas as tarefas, como mostrado na imagem abaixo. 45 FIGURA 4.12 – Cálculo do tempo de processamento. O tempo de processamento médio foi de 0,471 segundos, calculado em 50 análises (FIG. 3.12). Esses testes foram feitos em um computador com processador Intel i5 2,4GHz com Windows 7 e 3,8GB de memória RAM utilizável, uma capacidade de processamento acima do possível em pequenos satélites. Porém todas as funções gráficas foram mostradas, o que não ocorreria nos sistemas embarcados, além disso, o tempo de aquisição das imagens foi de quatro segundos, logo o tempo de processamento pode ser considerado aceitável levando em conta que até celulares modernos tem processadores Dual Core com 1GB de memória RAM. 5. PROCESSO GERAL DO PROGRAMA PARA DETECÇÃO DO HORIZONTE E ESTIMAÇÃO DE ATITUDE Assim como no processo para detecção de estrelas, foi montada no software uma rotina que irá detectar o horizonte da Terra funcionando como um sensor de imagem em duas dimensões. Isso possibilitará determinar até duas inclinações diferentes do satélite em relação à Terra. A seguir o diagrama de blocos do processo geral para detecção do horizonte (FIG. 4.1). A rotina de detecção do horizonte segue a sequencia esse diagrama. Primeiramente o programa adquire e prepara a imagem para ser processada. Depois é feita uma análise para saber se o planeta se encontra na parte inferior ou superior da imagem, caso não localize o programa analisa os lados direito e esquerdo. Por último o programa tenta localizar planeta nos cantos da imagem, e definem em qual quadrante ele está. Se todas as etapas falharem o programa finaliza e reinicia novamente analisando a próxima imagem. Em todos os casos o programa dá uma resposta ao final indicando o resultado. FIGURA 5.1 - Diagrama de blocos do processo geral para detecção de horizonte. 47 Durante este trabalho, a Lua servirá como modelo da Terra. Essa simulação foi possível graças ao telescópio TASCO (FIG. 1.7) com a câmera BASLER (FIG. 1.6) acoplada. Várias fotos foram feitas entre as 19 horas e 19 horas e 15 minutos do dia 12 de setembro de 2011 e salvas no computador do laboratório pelo próprio VISION BUILDER. O programa simula a aquisição de fotos como se fosse uma aquisição feita em tempo real acessando esse banco de dados. FIGURA 5.2 - Imagem da Lua tirada pelo telescópio com a câmera acoplada. Ao tentar detectar o horizonte é importante limpar bem a imagem para evitar que certas interferências não atrapalhem o processo ou diminua sua precisão. Ao analisar várias imagens é possível observar que a atmosfera é bem visível na borda da imagem do planeta. Sendo assim é necessário retirá-la para ter uma noção melhor do posicionamento. Um detalhe importante é que a Terra, também conhecida como planeta água, é rica em azul, sendo assim é necessário valorizar essa cor na hora do pré-processamento. 48 FIGURA 5.3 - Pré-processamento. A primeira parte do processo é o pré-processamento, onde o programa simula a aquisição da imagem (Simulate Acquisition 1 (FIG. 4.3)), depois é feita um processamento para valorizar o que mais importa na imagem nesse caso o globo terrestre (Vision Assistant 1 (FIG. 4.3)). Depois desta etapa concluída, uma ferramenta do programa chamada Find Circular Edge 1 (FIG. 4.3), que significa encontrar borda circular, localiza alguma forma circular significativa, sendo que seus parâmetros são definidos por tamanho mínimo e máximo do círculo para evitar que interferências influenciem no resultado do processo. A estratégia que o Find Circular Edge 1 utiliza é traçar várias retas partindo de um ponto central, quando as retas cruzam bordas na imagem, como a borda de um planeta por exemplo, a ferramenta registra esse ponto e depois faz uma interpolação entre todos os pontos localizados na tentativa de formar uma circunferência, o processamento feito e o círculo destacado está na FIG. 4.4. Para isso é necessário fazer uma análise das imagens obtidas pelo satélite ou fazer uma estimativa de qual tamanho terá a Terra em pixels na imagem. Neste trabalho as imagens foram analisadas e o tamanho máximo e mínimo foi definido como o dobro do círculo localizado na imagem localizada e metade do círculo respectivamente. 49 FIGURA 5.4 - Imagem após o pré-processamento e da detecção do círculo. A estratégia para determinar a posição do horizonte em relação ao satélite é de passar várias linhas verticais pela imagem e analisar quantas delas cruza alguma borda presente na imagem, essas linhas são mostradas na FIG. 4.5. Essa ferramenta chamada de Find Edges pode ser utilizada para localizar uma borda de uma parte clara para escura, ou vice-versa nesse trabalho, ambas são utilizadas e caso pelo menos três bordas no mesmo sentido e com mesma orientação de cor (horizontal e vertical, claro para escuro ou vice-versa) no total de cinco, é possível determinar que o planeta se encontra na parte de cima ou de baixo da imagem. Caso o detector de bordas na vertical não localiza nada o próximo passo é fazer uma análise na horizontal utilizando os mesmo critérios e ferramentas utilizados no passo anterior. Se em nenhum dos dois passos anteriores o horizonte foi localizado, é possível concluir que ou a imagem não mostra o horizonte, ou possivelmente ele está no canto da imagem e por isso não foi localizado. Sendo assim uma última etapa analisa todos os cantos da imagem, utilizando um detector de bordas na vertical e um na horizontal a três pixels de distância do canto da imagem, e caso 50 haja sinal do planeta a pelo menos três pixels do canto da imagem ele poderá ser localizado (FIG. 4.7). FIGURA 5.5 - Outra imagem, analisando as linhas verticais para localizar o planeta. Após localizar a posição do planeta na imagem é necessário calcular de forma aproximada a distância da borda do planeta ao limite da imagem em número de pixels para se ter uma noção da inclinação do satélite. Para isso é feita uma análise do ângulo que o planeta está inclinado na imagem dois métodos diferentes podem ser utilizados. Um método para quando o planeta está em uma das bordas da imagem, borda direita, borda esquerda, borda de cima ou borda de baixo. Outro para quando o planeta está em alguns dos cantos da imagem, canto inferior direito e esquerdo e canto superior direito ou esquerdo. Primeiramente para o caso em que o planeta está nas bordas é necessário traçar três detectores de bordas um no centro, outros dois ao lado simetricamente à aproximadamente 120 pixels de distância. O programa VISION BUILDER tem todas as ferramentas necessárias para esse cálculo. A ferramenta traça uma reta entre dois pontos da borda do planeta e forma um ângulo com a horizontal, dessa forma temos a inclinação aproximada do planeta. 51 A reta central calcula a distância aproximada da borda do planeta à borda da imagem. FIGURA 5.6 - Imagem que mostra o cálculo do ângulo de inclinação e da distância do planeta à borda Já para os casos em que o planeta se encontra nos cantos da imagem é necessário fazer um cálculo um pouco diferente. Aproveitando as retas dos cantos da imagem que servem para determinar em qual quadrante a imagem está, é possível traçar uma reta onde os detectores de borda encontram a borda, ao se juntar essa reta com a horizontal já temos um ângulo de inclinação para a posição do planeta em relação à horizontal. Criando uma reta que vai do centro da imagem até a reta criada anteriormente é possível ter a distância do planeta ao centro da imagem em pixels. 52 FIGURA 5.7 - Imagem que mostra o cálculo do ângulo de inclinação e da distância do planeta ao centro da imagem. FIGURA 5.8 – Cálculo do tempo de processamento da detecção de horizonte. Lembrando que o programa simula a aquisição de imagens a partir de um banco de imagens, e não da aquisição direta pelas câmeras, o programa para detecção de horizonte teve um tempo de processamento médio menor que o tempo de aquisição 53 da câmera, analisando 18,87 imagens por segundo (FIG. 4.8) contra 17 imagens por segundo da câmera (TAB. 1.1) o que é muito positivo. Lembrando ainda as considerações feitas no processamento para detecção de estrelas, o processador utilizado na simulação é mais potente que os que são utilizados em pequenos satélites, porém na simulação computacional os gráficos estão presentes e exigem cálculos extremamente custosos. Então uma consideração compensa a outra e o tempo de processamento ainda pode ser considerado excelente. 6. CONCLUSÃO Os testes feitos no laboratório com as imagens adquiridas na portaria do laboratório mostram que em todas as tentativas de se localizar o Cinturão de Orion foram concluídas com êxito e nas seis imagens do Cinturão foi localizado e sua posição foi indicada. Não houve nenhum resultado errado. A mesma experiência foi feita com a constelação do Cruzeiro do Sul, ou Crux, e nessa experiência os testes foram mais amplos envolvendo imagens obtidas de banco de dados de agências espaciais e imagens postadas por pessoas comuns na internet. A experiência com a constelação Crux foi mais complexa, pois, as condições da imagem variavam bastante em relação ao tamanho em pixels e as condições de brilho da imagem. Porém em todos os casos o padrão foi encontrado o que comprova a eficiência do método que por utilizar ângulos suporta uma boa variação de tamanho das amostras, já que os ângulos são os mesmos. Isso mostra que com câmeras comuns na superfície da Terra onde a atmosfera e toda a interferência da iluminação é possível montar rastreadores de estrelas eficientes. Em operação na ausência de atmosfera as imagens serão melhores e o método será ainda mais eficiente. O detector de horizonte também funcionou muito bem, localizando o círculo da Lua que serviu como modelo do planeta Terra. Seu tempo de processamento foi rápido, o que ajuda muito no caso de processadores menos robustos que são embarcados nos pequenos satélites. O pré-processamento da imagem foi eficaz reduzindo bastante ou totalmente a atmosfera aumentando assim a precisão do detector. Esse método pode ser facilmente adaptado para uma câmera de infravermelho que é mais eficiente por representar o globo terrestre com menos interferências da atmosfera e das nuvens quando presentes em excesso, já que quase todo o processo em feito com a imagem em escala de cinza, a mesma utilizada no processamento de imagens de sensores infravermelho. Esse trabalho é baseado em estudos feitos no programa de iniciação científica, e irá continuar até julho de 2012. Como sugestões de trabalhos futuros, no qual algumas já estão em andamento, têm-se para rastreadores de estrelas: 55 Montagem de um banco de dados com os ângulos das principais estrelas, baseados em mapas estelares como o FK5; Total integração desse banco de dados com o VISION BUILDER 3.6; Testes em computadores inferiores para ter uma noção do desempenho real; Otimização do banco de dados para melhor desempenho do programa; Melhorar a rotina, avaliar métodos repetitivos e tentar aperfeiçoa-lo para aumentar a eficiência do método; Para a detecção de horizonte: Obtenção de imagens reais do horizonte da Terra para testes e correções necessárias pelas diferenças de cores e atmosferas; Testes com imagens de câmeras infravermelhas e possíveis correções. Melhorar a rotina, avaliar etapas repetitivas e tentar aperfeiçoá-las para aumentar a eficiência do método; REFERÊNCIAS BIBLIOGRÁFICAS ALECRIM, E. Formatos de imagens: JPEG, GIF, PNG e outros. Publicado em 15/05/2011 - Atualizado em 01/08/2011. Disponível em: <http://www.infowester.com/imagens.php>. Acesso em 30 out. 2011. BASLER. Camera Specification. 2007. BERGER, S. Tudo Que Você Precisa Saber Sobre Megapixels. Disponível em: http://www.clubedohardware.com.br/artigos/Tudo-o-Que-Voce-Precisa-Saber-SobreMegapixels/1591/2, acesso em 30 out. 2011. BERGER, S. Tudo Que Você Precisa Saber Sobre Sensores de Câmeras Digitais. Disponível em: <http://www.clubedohardware.com.br/artigos/1626>. Acesso em 30 out. 2011. CARVALHO, A. A. de. Referencial teórico para a monografia apresentada ao Departamento de Ciência da Computação da Universidade Federal de Lavras, como parte das exigências do Curso de Ciência da Computação, para obtenção do título de bacharel: Fundamentação Teórica para Processamento Digital de Imagens. Lavras, Minas Gerais, Brasil, 2003. CHÁVEZ, G. C. Notas de aula turma 2010/02. Disponível em: <https://sites.google.com/site/gcamarac/bcc-326---processamento-de-imagens-201002>. Acesso em: 06 out. 2011. COLE, C. L.; CRASSIDIS J. L. Fast Star Pattern Recognition Using Planar Triangles. AIAA Journal of Guidance, Control, and Dynamics, Vol. 29, No. 1, Jan Feb.2006, páginas 64-71. Disponível em: <http://www.acsu.buffalo.edu/~johnc/star_id06.pdf>. Acesso em 01 nov. 2011. DIAZ, K. D. A Thesis presented to the Faculty of California Polytechnic State University San Luis Obispo In Partial Fulfillment of the Requirements for the 57 Degree Master of Science in Aerospace Engineering: Performance Analysis of a Fixed Point Star Tracker Algorithm for Use Onboard a Picosatellite. 2006. FARRER, H. et al. Algoritmos Estruturados. Terceira Edição. Livros Técnicos e Científicos Editora S.A.1999. GREWAL M. S.; WEILL L. R.; ANDREWS, A. P. Global positioning systems, inertial navigation, and integration. Apêndice C pag. 324. GUIMARÃES, A. M.; LAGES, N. A. C. Algoritmos e Estruturas de dados. Rio de Janeiro: Livros Técnicos e Científicos Editora S.A., 1985. HALL, C.D. Spacecraft attitude dynamics and control: Lectures notes posted on Handouts page. Disponível em: <http://www.aoe.vt.edu/~cdhall/courses/aoe4140>. Acesso em: 29 abr. 2006. MAKOVEC, K.L. A nonlinear magnetic controller for three‐axis stability for nanosatellites. Master thesis. Virginia Polytechnic Institute, USA, 2001. NEVES JÚNIOR, C. R. Monografia de graduação em engenharia de controle e automação: Desenvolvimento de um controlador de recarga de bateria para aplicações em satélites. Ouro Preto: UFOP, Colegiado do Curso de Controle e Automação – Cecau, 2010. NI VISION BUILDER. NI Vision Builder for Automated Inspection: Configuration Help. Versão 370566J-01. Janeiro de 2010. NI LABVIEW. LabVIEW™ Help. Versão 371361G-01. Junho de 2010. RENSBURG, H. M. van. An Infrared Earth Horizon Sensor for a LEO Satellite. 2008. Disponível em: <http://www.google.com.br/url?sa=t&rct=j&q=infrared%20earth%20horizon%20senso r%20for%20a%20leo%20satellite&source=web&cd=2&ved=0CDIQFjAB&url=http%3 A%2F%2Fscholar.sun.ac.za%2Fbitstream%2Fhandle%2F10019.1%2F1752%2FVan 58 %2520Rensburg%2C%2520HM.pdf%3Fsequence%3D1&ei=UIzBTojHFePZ0QGDtv T5BA&usg=AFQjCNFgjb-gO9svjkqc4tpksNipSJb8VA&cad=rja>. Acesso em: 01 nov. 2011. ROCHA, R. Relatório Técnico Científico Final: Desenvolvimento de um sistema para estimação conjunta de atitude e órbita de satélites artificiais utilizando painéis fotovoltaicos como sensor solar. Ouro Preto: UFOP, Departamento de Engenharia de Controle e Automação, 2010. SUZUKI, M. Disponível em: <http://www.tsgc.utexas.edu/spacecraft/topex/atti.html>. Acesso em: 10 nov. 2011. TASCO. Instruction Manual. Disponível em: <www.tasco.com>. Acesso em: 15 out. 2011. UNIVERSITY OF TOKYO. XI-V (sai five). Disponível em: <http://www.space.t.utokyo.ac.jp/cubesat/index-e.html>. Acesso em 21 nov. 2011.