UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA DE P ´OS-GRADUA ¸C ˜AO EM ENGENHARIA
EL ´ETRICA
Gabriel Mariano Marcelino
DESENVOLVIMENTO E IMPLEMENTA ¸C ˜AO DE UM ALGORITMO PARA EXTRA ¸C ˜AO DE CENTROIDES EM
STAR TRACKERS PARA CUBESATS UTILIZANDO FPGAS
Disserta¸c˜ao submetida ao Pro-grama de P´os-Gradua¸c˜ao em Enge-nharia El´etrica da Universidade Fe-deral de Santa Catarina para a ob-ten¸c˜ao do Grau de Mestre em En-genharia El´etrica.
Orientador: Prof. Dr. Eduardo Augusto Bezerra
Florian´opolis 2019
através do Programa de Geração Automática da Biblioteca Universitária da UFSC.
Marcelino, Gabriel Mariano
Desenvolvimento e Implementação de um Algoritmo para Extração de Centroides em Star Trackers para CubeSats Utilizando FPGAs / Gabriel Mariano Marcelino ; orientador, Eduardo Augusto Bezerra, 2019.
96 p.
Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós Graduação em Engenharia Elétrica, Florianópolis, 2019.
Inclui referências.
1. Engenharia Elétrica. 2. Sistemas Embarcados. 3. Nanossatélites. 4. Determinação de Atitude. 5. Star Trackers. I. Bezerra, Eduardo Augusto. II. Universidade Federal de Santa Catarina. Programa de Pós-Graduação em Engenharia Elétrica. III. Título.
Resumo
Os algoritmos que envolvem a determina¸c˜ao de atitude usando star trackers podem ser separados em trˆes etapas: extra¸c˜ao de centroides, identifica¸c˜ao de estrelas e computa¸c˜ao dos quat´ernios. Quando essas etapas s˜ao feitas usando um microprocessador, devido a inerente alta quantidade de informa¸c˜oes contidas em uma imagem, a extra¸c˜ao dos centroides consome recursos consider´aveis quando comparada com as demais etapas. Como imagens de c´eu estrelado podem ser vistas como matrizes esparsas, a maior parte das informa¸c˜oes adquiridas podem ser descartadas. Fazendo um pr´e-processamento dos pixels usando l´ogica program´avel, o n´ıvel de carga do processador ´e reduzido substanci-almente. Um m´etodo para identificar centroides de estrelas em star trackers a partir do fluxo de pixels vindos de um sensor de imagem, ´e apresentado. Este fluxo ´e recebido por um hardware dedicado imple-mentado em FPGA, que filtra os pixels de estrelas e os envia para um processador, que estima os centroides da respectiva imagem utilizando um Filtro de Kalman. Com este m´etodo, h´a uma redu¸c˜ao substancial no consumo de mem´oria e de processamento durante todo o processo de determina¸c˜ao de atitude, o que facilita a implanta¸c˜ao destes sensores em sat´elites de pequeno porte. Ap´os a apresenta¸c˜ao e discuss˜ao dos m´etodos propostos, apresenta-se uma simula¸c˜ao hardware-in-the-loop feita para testar o funcionamento e o desempenho do sistema proposto, juntamente com uma verifica¸c˜ao. Para isto, utilizou-se um prot´otipo de sensor composto por um hardware real e desenvolvido especialmente para este trabalho, al´em de uma plataforma de simula¸c˜ao e testes desen-volvida usando o ambiente UVM-SystemC. Nestes testes, al´em da com-prova¸c˜ao do funcionamento do esquema proposto, foi poss´ıvel alcan¸car uma precis˜ao de subpixel na estimativa das coordenadas dos centroi-des, al´em de tempos de execu¸c˜ao consideravelmente menores quando em compara¸c˜ao com m´etodos baseados no processamento de imagens por completo.
¸
Abstract
The algorithms involved in attitude determination using star trackers can be separated into three parts: centroid extraction, star identifica-tion and quaternion estimaidentifica-tion. When performing all the computaidentifica-tions using a microprocessor, due to the inherent high information content present in an image, the centroid extraction step consumes considerable resources when compared to the other two steps. Because starry sky images can be seen as a sparse matrix, most of the information acqui-red by the image sensor can be discarded. By pre-processing the pixels using programmable logic, the main processor is relieved of substan-tial work. A method to identify star centroids in star trackers directly from the pixel stream transmitted by an image sensor is presented. This stream is received by a dedicated hardware implemented in an FPGA, that filters the star pixels and transmits them to a processor, which computes the centroids of the respective image using a Kalman Filter. With this method, there is a substantial decrease in memory consumption and a reduction of the processor usage during the whole attitude determination computation, what turns the use of these sen-sors easier in small satellites. After the presentation and discussion of the proposed method, a hardware-in-the-loop simulation is presented to test the functionality and the performance of the system, along with a verification process. For that, a prototype with real hardware and developed specially for this work, was used together with a simulation and tests platform, developed using the UVM-SystemC environment. In these tests, besides the proof of concept of the proposed scheme, it was possible to achieve a subpixel precision in the centroid coordinates estimation, and also quite lower execution times in comparison with methods based on the processing of whole images.
Keywords: Embedded systems. Nanosatellites. Attitude determina-tion. Star Trackers.
Lista de Figuras
1.1 N´umero de nanossat´elites lan¸cados at´e outubro de 2018, e previs˜ao at´e 2023. . . 2 1.2 Nanossat´elite da rede BRITE com um star tracker
ins-talado em uma das faces. . . 3 1.3 Exemplos de star trackers comerciais para CubeSats. . . 5 1.4 Conjunto de centroides identificados em uma imagem,
com ´ındices indicando a ordena¸c˜ao das intensidade den-tro do conjunto. . . 6 2.1 Esquemas de hardware normalmente utilizados em star
trackers. . . 10 3.1 “FloripaSat” parcialmente montado (sem os pain´eis
sola-res e o m´odulo de antena cobrindo toda a estrutura). . . 15 3.2 Vis˜ao explodida do modelo 3D do “FloripaSat” com todos
os seus subsistemas e m´odulos. . . 16 3.3 Sistema de controle de atitude do “FloripaSat-I” (´ım˜a de
terra rara, em vermelho, e barras de histerese, em verde, dispostos ao longo da estrutura). . . 17 3.4 M´odulos com os experimentos a serem testados no “FloripaSat-I”. . . 18 3.5 Diagrama de blocos do m´odulo “Payload X” (com a
ilus-tra¸c˜ao de um sensor de imagens como um poss´ıvel futuro perif´erico). . . 20 4.1 Malha de controle t´ıpica de um sistema de controle de
atitude ativo de um sat´elite. . . 21 4.2 Ilustra¸c˜ao do centroide um uma figura geom´etrica gen´erica. 23 4.3 Demonstra¸c˜ao simplificada do funcionamento do
4.4 Exemplos de atuadores de m´odulos de controle de ati-tude ativos para CubeSats. . . 29 5.1 Representa¸c˜ao gaussiana de uma estrela. . . 35 5.2 Estrela como gaussiana saturada no valor limite do
con-versor AD do sensor (8 bits neste caso). . . 36 5.3 Compara¸c˜ao entre uma estrela gerada por simula¸c˜ao e
uma real. . . 36 5.4 Valores da estimativa das coordenadas do centroide de
uma estrela utilizando um filtro de Kalman, ao longo das itera¸c˜oes. . . 39 5.5 Fluxograma geral do algoritmo proposto. . . 40 5.6 Demonstra¸c˜ao do funcionamento do algoritmo proposto.
Coordenadas dos pixels (pontos pretos). Pixels de uma estrela com varia¸c˜ao de intensidade nas bordas (quadra-dos brancos e cinzas). Centroide real da estrela (cruz verde). Centroide calculado (c´ırculo verde). . . 41 5.7 Poss´ıveis configura¸c˜oes de hardware propostas. . . 44 5.8 Diagrama de blocos da pr´e-filtragem por limiar em
hard-ware. . . 46 6.1 Formas de onda da transmiss˜ao de uma imagem
utili-zando o protocolo CSI-2 visualizadas no GTKWave. . . 48 6.2 Diagrama geral da plataforma de testes/simulador em
UVM-SystemC. . . 50 6.3 Diagrama dos componentes mecˆanicos de um star tracker. 51 6.4 Demonstra¸c˜ao do funcionamento de um defletor ´optico
cˆonico. . . 52 6.5 Exemplo de star tracker com defletor ´optico. . . 52 6.6 Distˆancia focal × ˆAngulo de abertura para as lentes e
sensores utilizados. . . 54 6.7 Lentes utilizadas (da esquerda para a direita):
Monta-gem CS ajust´avel de 6 `a 60 mm, e fixa de 6 mm. . . 54 6.8 Diagrama dos sinais da interface CSI-2. . . 56 6.9 M´odulos de cˆamera utilizados. . . 57 6.10 Compara¸c˜ao da precis˜ao te´orica em fun¸c˜ao da distˆancia
focal dos sensores MT9D111 e MT9P031. . . 59 6.11 Placa de desenvolvimento ZedBoard. . . 60 6.12 Diagrama de hardware utilizado com a ZedBoard. . . 61 6.13 M´odulo do sensor MT9D111 conectado `a ZedBoard. . . 61 6.14 Placa de adapta¸c˜ao ArduCam-ZedBoard. . . 62
Lista de Figuras
6.15 Diagrama de fluxo simplificado do processamento dos dados ao longo dos blocos do sistema. . . 63 6.16 Diagrama de blocos do processador LEON3. . . 64 6.17 Esquema do sensor implementado no processador LEON3. 64 6.18 Esquema utilizado para simular um c´eu estrelado
inci-dindo sobre o sensor. . . 65 6.19 Simula¸c˜ao de um c´eu estrelado utilizando um monitor e
uma caixa escura. . . 66 6.20 Sensor de imagem apontado para o monitor instalado em
uma abertura na caixa escura. . . 67 7.1 Varia¸c˜ao da quantidade de estrelas identificadas em
fun-¸
c˜ao do limiar de intensidade. . . 70 7.2 Desempenho na determina¸c˜ao das coordenadas dos
cen-troides. . . 73 7.3 Imagens com diferentes valores de FOV, mas com
atitu-des equivalentes. . . 76 7.4 Imagens obtidas na simula¸c˜ao hardware-in-the-loop
uti-lizando um monitor de LCD para gerar o c´eu estrelado. 78 7.5 Imagem obtida com o sensor na simula¸c˜ao
hardware-in-the-loop. . . 79 7.6 Centroides identificados na Figura 7.5 (c´ırculos verdes)
com os respectivos ´ındices indicando a ordem de inten-sidade dentro do conjunto. . . 80 7.7 Imagem da Figura 7.5 com as distor¸c˜oes corrigidas. . . . 81 A.1 Exemplo de fotos utilizadas no processo de calibra¸c˜ao da
lente/sensor. . . 93 A.2 Exemplo de aplica¸c˜ao do processo de corre¸c˜ao de distor¸c˜ao. 94 B.1 Diagrama de blocos da implementa¸c˜ao do hardware na
Lista de Tabelas
1.1 Compara¸c˜ao da precis˜ao dos tipos mais comuns de sen-sores de determina¸c˜ao de atitude. . . 4 2.1 Compara¸c˜ao das caracter´ısticas de implementa¸c˜ao com
alguns trabalhos relacionados. . . 14 6.1 Principais caracter´ısticas das lentes utilizadas. . . 55 6.2 Principais caracter´ısticas dos sensores MT9P031 e
MT9-D111. . . 57 7.1 Matriz de confus˜ao, em forma de tabela, da identifica¸c˜ao
das regi˜oes (ou pixels) de estrelas. . . 70 7.2 Tempos de execu¸c˜ao no SoC Zynq-7000 para diferentes
etapas de um ciclo do processamento de uma imagem. . 74 7.3 Tempos de execu¸c˜ao no SoC Zynq-7000 com um FOV
simulado de 8◦. . . 76 7.4 Compara¸c˜ao de desempenho da etapa de extra¸c˜ao de
centroides. . . 81 7.5 Consumo de recursos do projeto no SoC Zynq-7000. . . 82 7.6 Medidas de consumo de energia. . . 82
Lista de Siglas
MCU Microcontroller Unit. SEU Single Event Upset.
ADCS Attitude Determination and Control System. ADC Attitude Determination and Control.
AMBA Advanced Microcontroller Bus Architecture. AXI Advanced eXtensible Interface.
BDS BeiDou Navigation Satellite System.
BRAVE Big Re-programmable Array for Versatile Environments. CCD Charge-Coupled Device, ou dipositivo de carga acoplada. CMOS Complementary Metal-Oxide-Semiconductor, ou
semicon-dutor de metal- ´Oxido complementar. CRT Cathode Ray Tube.
CSI Camera Serial Interface. ESA European Space Agency.
FF Flip-Flop.
FIFO First In, First Out.
FOV Field Of View (campo de vis˜ao). FPGA Field Programmable Gate Array. GHDL G Hardware Design Language.
GLONASS Globalnaya Navigatsionnaya Sputnikovaya Sistema (Sis-tena de Navega¸c˜ao Global por Sat´elite).
GNSS Global Navigation Satellite System. GPS Global Positioning System.
I2C Inter-Intergrated Circuit.
IMU Inertial Measurement Unit. LCD Liquid Crystal Display. LEO Low Earth Orbit.
LUT Look-Up Table.
MIPI Mobile Industry Processor Interface. PSF Point Spread Function.
RF Radio Frequency.
RISC Reduced Instruction Set Computer.
RUSH Rapid recovery from SEUs in reconfigurable Hardware. SET Single Event Transient.
SoC System on a Chip. VGA Video Graphics Array.
Sum´
ario
1 Introdu¸c˜ao 1 1.1 Determina¸c˜ao de atitude . . . 2 1.2 Star trackers . . . 5 1.3 Objetivos . . . 7 1.4 Organiza¸c˜ao da disserta¸c˜ao . . . 8 2 Trabalhos Relacionados 9 2.1 Esquemas utilizados . . . 102.1.1 Algoritmos de extra¸c˜ao de centroides . . . 11
2.2 Uso de FPGAs em star trackers . . . 12
2.3 Outros trabalhos . . . 12
2.4 Compara¸c˜ao de implementa¸c˜ao . . . 12
3 Contextualiza¸c˜ao 15 3.1 Experimentos com FPGAs . . . 18
4 Fundamenta¸c˜ao Te´orica 21 4.1 Determina¸c˜ao de atitude . . . 22
4.1.1 Determina¸c˜ao de atitude utilizando star trackers 22 4.2 Predi¸c˜ao de atitude . . . 27
4.3 Controle de atitude . . . 27
5 Trabalho Proposto 31 5.1 Algoritmo . . . 31
5.1.1 Representa¸c˜ao de uma estrela . . . 33
5.1.2 Detec¸c˜ao de estrelas . . . 35
5.1.3 Determina¸c˜ao das coordenadas dos centroides uti-lizando um Filtro de Kalman . . . 37
5.1.4 Fluxograma . . . 38
5.2 Topologia . . . 44 5.2.1 Esquema de hardware . . . 44 5.2.2 Etapa de software . . . 46 6 Simula¸c˜ao e Implementa¸c˜ao 47 6.1 Simula¸c˜ao . . . 47 6.1.1 GHDL . . . 47
6.1.2 Plataforma de testes utilizando o ambiente UVM-SystemC . . . 49
6.2 Implementa¸c˜ao . . . 49
6.2.1 Defletor ´optico . . . 50
6.2.2 Lente . . . 52
6.2.3 Interface do sensor de imagem . . . 53
6.2.4 Sensor de imagem . . . 55 6.2.5 Kit de desenvolvimento . . . 59 6.2.6 Esquema utilizado . . . 60 6.3 Simula¸c˜ao hardware-in-the-loop . . . 64 6.3.1 Ambiente de testes . . . 65 7 Resultados 69 7.1 Desempenho . . . 69 7.1.1 Detec¸c˜ao de estrelas . . . 69
7.1.2 Determina¸c˜ao dos centroides . . . 71
7.1.3 Tempo de execu¸c˜ao . . . 72
7.2 Testes com imagens reais utilizando a plataforma de si-mula¸c˜ao . . . 77
7.2.1 Distor¸c˜ao e corre¸c˜ao das coordenadas . . . 78
7.3 Compara¸c˜ao de desempenho . . . 80
7.4 Consumo de recursos . . . 82
8 Conclus˜ao 85 8.1 Trabalhos futuros . . . 86
Referˆencias Bibliograficas 90 Apˆendices 91 A Calibra¸c˜ao da Lente 91 A.1 Funcionamento . . . 91 B Diagrama de Blocos da Implementa¸c˜ao em Hardware 95
CAP´
ITULO 1
Introdu¸
c˜
ao
C
om o surgimento do padr˜ao CubeSat [1] de nanossat´elites na ´area espacial (padr˜ao com unidades em forma de cubo, com 10 cm de aresta e at´e 1,33 kg de massa por unidade), a utiliza¸c˜ao dos mesmos para experimentos e aplica¸c˜oes em ´orbita baixa (LEO, Low Earth Or-bit ) vem crescendo a cada ano [2]. O baixo custo e a maior facilidade de se conseguir oportunidades de lan¸camento, aliados `a gama de m´odulos e componentes padronizados e dispon´ıveis atualmente, possibilitaram a utiliza¸c˜ao destes tipos de sat´elites em aplica¸c˜oes que anteriormente n˜ao seria poss´ıvel, devido ao alto custo agregado. Algumas dessas apli-ca¸c˜oes, incluem repetidores de comunica¸c˜ao, monitoramento terrestre (mapeamento, meteorologia, etc.), aplica¸c˜oes de astronomia, entre ou-tras [3].Para ilustrar esse crescimento nos ´ultimos anos, o gr´afico da Fi-gura 1.1 apresenta a quantidade de nanossat´elites lan¸cados desde 1998 (ano do surgimento do padr˜ao CubeSat) at´e atualmente, e uma previs˜ao para os pr´oximos anos.
Devido as dimens˜oes reduzidas destes tipos de sat´elites, h´a a ne-cessidade do uso de componentes ou m´odulos fisicamente menores, e principalmente de baixo consumo energ´etico, sendo este fator, uma das grandes limita¸c˜oes desses dispositivos.
Um problema de grande importˆancia para um melhor funciona-mento de CubeSats, ´e a determina¸c˜ao e o controle de atitude. Para esta tarefa, geralmente h´a um subsistema respons´avel somente pela de-termina¸c˜ao e controle da orienta¸c˜ao espacial do sat´elite.
Um sistema de controle de determina¸c˜ao de atitude preciso, permite a utiliza¸c˜ao de um m´odulo de comunica¸c˜ao mais robusto (utilizando-se antenas diretivas, pode-(utilizando-se obter um sistema com maiores taxas de transferˆencia de dados), a utiliza¸c˜ao de um sistema de aquisi¸c˜ao de
Figura 1.1: N´umero de nanossat´elites lan¸cados at´e outubro de 2018, e previs˜ao at´e 2023. Nanosatellite launches 2 10 2 7 4 22 9 10 14 19 12 25 88 141 129 88 294 344 497 271 79 4 1 273 431 546 586 622 703 www.nanosats.eu 2018/10/28 1998 2000 2002 2003 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 Nanosatellites Launched Launch failures Announced launch year
Nanosats.eu (2018 January) prediction
Fonte: http://nanosats.eu/ (2018) [2].
imagens tanto astronˆomicas quanto terrestre, e uma capta¸c˜ao de ener-gia mais eficiente com um maior controle sobre o posicionamento dos pain´eis solares em rela¸c˜ao ao Sol. Al´em de melhorar a estabiliza¸c˜ao do sat´elite em situa¸c˜oes adversas, como colis˜ao com detritos, falhas durante o lan¸camento, erros durante manobras, etc.
Um dos tipos de sensores usados para a determina¸c˜ao de atitude em sat´elites ´e o star tracker (rastreador de estrelas), tamb´em chamado de star sensor (sensor de estrelas). Este tipo de dispositivo ´e composto por um sensor de imagem com uma lente acoplada atrav´es de uma montagem, e uma unidade de processamento para o controle do sensor e os c´alculos para a obten¸c˜ao da atitude. Um exemplo de nanossat´elite com um star tracker, pode ser visto na Figura 1.2.
1.1
Determina¸
c˜
ao de atitude
Um m´odulo de determina¸c˜ao de atitude tem o objetivo de determi-nar em tempo real, a orienta¸c˜ao espacial do sat´elite, tendo geralmente
1.1. Determina¸c˜ao de atitude
Figura 1.2: Nanossat´elite da rede BRITE com um star tracker instalado em uma das faces.
Fonte: http://www.asc-csa.gc.ca/eng/satellites/brite/default.asp
a Terra como referencial.
Os tipos mais comuns de sistemas de determina¸c˜ao de atitude, encontram-se listados a seguir [4]:
• Magnetˆometros: Utiliza o campo magn´etico da Terra como refe-rˆencia.
• Sun sensors (Sensores de Sol): Utiliza o Sol como referˆencia de posicionamento.
• Earth sensors (Sensores de Terra): Estima a posi¸c˜ao da Terra em rela¸c˜ao ao sat´elite.
• Star sensors (Sensores de Estrelas): Utiliza conjuntos de estrelas para determinar a atitude (o nome star tracker ´e mais utilizado para este tipo).
• Girosc´opios: Utiliza a dinˆamica do pr´oprio sat´elite para estimar a sua orienta¸c˜ao.
• Antena diretiva: Orienta¸c˜ao atrav´es da potˆencia de sinais de RF (geralmente o pr´oprio sistema de comunica¸c˜ao do sat´elite). • Receptor GNSS: Atitude estimada utilizando uma rede de sat´
Tamb´em ´e comum a utiliza¸c˜ao de uma combina¸c˜ao de sensores para a obten¸c˜ao de melhores resultados, como por exemplo: Earth e sun sensors ou star trackers com girosc´opios.
Na Tabela 1.1, encontra-se uma compara¸c˜ao da precis˜ao obtida nes-ses tipos de sensores. Como pode-se perceber, os star trackers, s˜ao a classe de sensores que apresentam o menor erro na determina¸c˜ao de atitude (neste caso, medido em graus em rela¸c˜ao aos eixos cartesianos do pr´oprio sat´elite).
Tabela 1.1: Compara¸c˜ao da precis˜ao dos tipos mais comuns de sensores de determina¸c˜ao de atitude.
Sensor Erro Total [◦]
Estabiliza¸c˜ao nos trˆes eixos
CCD Star Tracker ∼=-0,00083 (3 arc sec) Fixed Head Star Tracker 0,004 `a 0,014 Fine Sun Sensor 0,006 `a 0,26 Digital Sun Sensor 0,09 `a 0,3
Horizon Sensor 0,1 `a 0,5
3-Axis Magnetometer 0,5 `a 1,2 Estabiliza¸c˜ao de um ´unico eixo Multi-Slit Star Sensor 0,017 1-Axis Fine Sun Sensor 0,05 1-Axis Digital Sun Sensor 0,1 `a 0,7 V-Slit Sun Sensor 0,1 `a 0,25
Horizon Sensor 0,1 `a 1,0
Magnetometer 0,7
GNSS Receiver 0,3 `a 0,5
Fonte: Adaptado de [4].
H´a ainda, outras poss´ıveis aplica¸c˜oes para estes tipos de sensores, como por exemplo na ´area militar (determina¸c˜ao de atitude em m´ısseis e foguetes intercontinentais), observat´orios de astronomia (posiciona-mento de telesc´opios), navega¸c˜ao a´erea e mar´ıtima, etc [5].
Para um m´odulo completo de controle de atitude, ainda s˜ao necess´ a-rios atuadores, como magnetorquers, rodas de rea¸c˜ao (reaction wheels), ou propulsores (thrusters), que efetuam o controle f´ısico da orienta¸c˜ao do sat´elite em rela¸c˜ao a um valor de referˆencia.
1.2. Star trackers
1.2
Star trackers
Os star trackers, como j´a mencionado, s˜ao os tipos de sensores para determina¸c˜ao de atitude que fornecem os resultados com maior preci-s˜ao em compara¸c˜ao a outros tipos de sistemas. O seu funcionamento ´
e dividido basicamente em trˆes etapas [6]: detec¸c˜ao e estima¸c˜ao dos centroides das estrelas, identifica¸c˜ao de estrelas, e determina¸c˜ao de ati-tude. Tem-se como entrada do sistema uma imagem, e como sa´ıda um quat´ernio (ou quaternion) ou os ˆangulos de Euler (dependendo da representa¸c˜ao adotada), representando a respectiva atitude do sensor. Dois exemplos de star trackers comerciais para CubeSats podem ser vistos na Figura 1.3.
Figura 1.3: Exemplos de star trackers comerciais para CubeSats. (a) Berlin Space Technologies Star
Tracker ST200.
(b) Berlin Space Technologies Star Tracker ST400.
Fonte: Berlin Space Technologies [7].
A etapa de detec¸c˜ao de centroides, consiste na estima¸c˜ao das coor-denadas (em duas dimens˜oes) de cada estrela presente na imagem ad-quirida, juntamente com as suas intensidades (como necessita-se apenas das diferen¸cas entre as estrelas na imagem, geralmente este parˆametro ´
e normalizado para cada imagem). A intensidade est´a relacionada ao tamanho e `a distˆancia da estrela, o que acaba refletindo na cor (inten-sidade) e na quantidade de pixels da mesma.
Um exemplo de resultado da etapa de detec¸c˜ao de centroides pode ser visto na Figura 1.4.
Figura 1.4: Conjunto de centroides identificados em uma imagem, com ´ındices indicando a ordena¸c˜ao das intensidade dentro do conjunto.
Fonte: Figura do autor.
J´a na etapa de identifica¸c˜ao de estrelas, utiliza-se os centroides ob-tidos na etapa anterior para procurar a melhor correla¸c˜ao entre o con-junto obtido, e um banco de dados previamente definido. Este banco de dados cont´em um cat´alogo de estrelas com as suas respectivas posi¸c˜oes e intensidades em rela¸c˜ao `a Terra (cat´alogo que ´e normalizado em uma esfera de raio unit´ario).
Por fim, a etapa final consiste na determina¸c˜ao da atitude por meio da correspondˆencia entre o conjunto de estrelas obtidos na imagem do sensor e no cat´alogo. Como resultado, chega-se `a atitude do sat´elite, que geralmente ´e representada na forma de um quat´ernio. Para me-lhores resultados nesta etapa, pode-se utilizar a dinˆamica do sat´elite para estimar o erro e/ou a pr´oxima medida, atrav´es do uso dos valores passados (por exemplo, utilizando-se um Filtro de Kalman [8]).
1.3. Objetivos
1.3
Objetivos
Sendo os rastreadores de estrelas atualmente uma das melhores op-¸
c˜oes para a determina¸c˜ao de atitude em sat´elites, e considerando as limita¸c˜oes de espa¸co e consumo de energia como as principais dificulda-des para a sua utiliza¸c˜ao em sat´elites de pequeno porte [9], o objetivo principal desse trabalho ´e a proposta de um algoritmo e uma topologia que visa reduzir os requisitos para a integra¸c˜ao destes sensores em Cu-beSats. Como a etapa de identifica¸c˜ao dos centroides ´e a que consome mais recursos energ´eticos e a que exige maior poder de processamento e espa¸co de mem´oria, prop˜oe-se um m´etodo para reduzir principalmente o consumo de mem´oria, a carga computacional e consequentemente o tempo de execu¸c˜ao da etapa de determina¸c˜ao dos centroides.
O m´etodo proposto utiliza-se do uso de l´ogica program´avel para re-alizar a ponte entre o sensor de imagem e o processador principal, al´em de tamb´em realizar um pr´e-processamento dos pixels recebidos serial-mente. Na lista abaixo encontra-se uma s´ıntese dos objetivos gerais deste trabalho:
• Desenvolver um algoritmo de identifica¸c˜ao e determina¸c˜ao dos centroides de estrelas em uma imagem.
• Realizar o processamento dos centroides sem armazenar toda a imagem capturada, guardando somente os pontos de interesse (re-gi˜oes com estrelas) e sem a necessidade do uso de mem´orias ou buffers externos.
• Desenvolver o hardware de interface e pr´e-processamento em l´ o-gica program´avel, mais especificamente em um FPGA.
• Desenvolver a interface de comunica¸c˜ao entre o FPGA e o sensor de imagens utilizando o padr˜ao CSI-2 (Camera Serial Interface), comumentemente utilizado pelos modelos comerciais destes tipos de sensores.
• Testar o funcionamento da topologia proposta em imagens reais, capturadas pelo conjunto.
• Integrar o m´etodo desenvolvido com os m´odulos de indentifica¸c˜ao de estrelas e determina¸c˜ao de atitude j´a desenvolvidos em outros trabalhos do grupo de pesquisa.
• Testar, validar e estimar a precis˜ao do sistema atrav´es de simu-la¸c˜oes hardware-in-the-loop.
• Obter, ao final, um prot´otipo de um star tracker a ser utilizado em futuros CubeSats a serem desenvolvidos pelo grupo de pesquisa e/ou em outros projetos externos.
1.4
Organiza¸
c˜
ao da disserta¸
c˜
ao
No Cap´ıtulo 2 discute-se trabalhos relacionados e realiza-se uma compara¸c˜ao com os principais sistemas utilizados atualmente e com projetos semelhantes.
No Cap´ıtulo 3 h´a uma contextualiza¸c˜ao do projeto, onde apresenta-se alguns trabalhos relacionados e que est˜ao sendo atualmente desen-volvidos pelo grupo de pesquisa, al´em de um prospecto de aplica¸c˜ao e utiliza¸c˜ao deste sensor em futuras miss˜oes ou sat´elites.
No Cap´ıtulo 4 apresenta-se uma revis˜ao te´orica dos sistemas de determina¸c˜ao e controle de atitude.
No Cap´ıtulo 5 tem-se a apresenta¸c˜ao e o desenvolvimento do algo-ritmo proposto, onde tem-se o equacionamento e a teoria envolvida. Neste cap´ıtulo, tamb´em h´a um detalhamento da topologia proposta.
No Cap´ıtulo 6 tem-se os detalhes t´ecnicos envolvidos no desenvolvi-mento da implementa¸c˜ao real do sensor. Primeiramente discute-se as simula¸c˜oes realizadas e ap´os, apresenta-se as ferramentas, os compo-nentes e plataformas utilizadas para a realiza¸c˜ao dos testes e ensaios para a aferi¸c˜ao do funcionamento do esquema proposto.
Ap´os o desenvolvimento e descri¸c˜ao dos testes, no Cap´ıtulo 7 apresenta-se alguns resultados obtidos ao longo do deapresenta-senvolvimento do projeto juntamente com uma an´alise dos mesmos.
Por fim, no Cap´ıtulo 8 h´a a conclus˜ao do trabalho com uma discus-s˜ao de poss´ıveis melhorias e uma listagem de atividades futuras.
CAP´
ITULO 2
Trabalhos Relacionados
A
utiliza¸ou mar, vem ocorrendo praticamente desde o in´ıcio das primeirasc˜ao das estrelas para a orienta¸c˜ao e a navega¸c˜ao em terra civiliza¸c˜oes. As posi¸c˜oes dos corpos estelares j´a vem sendo documen-tada, mesmo que de forma rudimentar, desde muito tempo. Com o avan¸co da navega¸c˜ao oceˆanica, as estrelas tornaram-se umas das prin-cipais referˆencias para se obter o posicionamento, dire¸c˜ao e/ou rumo das embarca¸c˜oes [5]. O uso de instrumentos anal´ogicos como os sextan-tes e os astrol´abios, auxiliava na execu¸c˜ao desta tarefa [10]. Somente nas ´ultimas d´ecadas que os corpos celestes passaram a desempenhar um papel secund´ario, devido ao aparecimento dos sistemas de posicio-namento por sat´elite. Desde ent˜ao, os sistemas de referˆencia celestial tem tido maior destaque na ´area espacial e militar, especialmente em sat´elites, foguetes, sondas e armamentos.No in´ıcio da explora¸c˜ao espacial, devido `as limita¸c˜oes das tecnolo-gias dispon´ıveis, os sistemas de posicionamento e navega¸c˜ao eram pouco eficientes. Por exemplo, os primeiros star trackers funcionavam com cˆ a-meras de filme, atrav´es de um processo quase que totalmente anal´ogico [5]. Com o avan¸co da eletrˆonica e o crescimento exponencial da capaci-dade de processamento dos dispositivos embarcados, o uso desses tipos de sensores e sistema vem se tornando cada vez mais acess´ıvel.
Mais especificamente com rela¸c˜ao aos star trackers, o seu uso co-me¸cou a ser mais difundido com o surgimento dos primeiros cat´alogos de estrelas p´ublicos na d´ecada de 90, como por exemplo o Hipparcos [11]. Apesar do surgimento do padr˜ao CubeSat em 1999 [1], o uso des-tes sensores em sat´elites de pequeno porte s´o come¸cou `a ser explorado no final dos anos 2000, possivelmente devido `as limita¸c˜oes tecnol´ogicas (tamanho f´ısico e consumo de energia necess´arios) e falta de solu¸c˜oes comerciais [12].
Os trabalhos de pesquisa envolvendo star trackers em nanossat´elites tˆem maior destaque nos ´ultimos 10 anos, com uma maior quantidade de teses e artigos neste per´ıodo. O que coincide com o avan¸co dos sistemas embarcados de dispositivos m´oveis, que facilitaram o acesso `
a uma grande variedade de componentes miniaturizados e com maior eficiˆencia energ´etica, caracter´ısticas que s˜ao essenciais para sat´elites do tipo CubeSat.
Na se¸c˜ao a seguir, encontra-se uma descri¸c˜ao dos modelos e esque-mas de star trackers mais comumentemente empregados nos modelos atuais.
2.1
Esquemas utilizados
A maior parte dos modelos desenvolvidos em pesquisas e projetos, e at´e mesmo os modelos comerciais de star trackers, empregam uma abor-dagem muito pr´oxima aos modelos de cˆameras convencionais para a re-aliza¸c˜ao da captura das imagens e processamento das mesmas. Ou seja, capta-se uma imagem com um sensor de imagem comum, armazena-se a mesma por completo em uma buffer de mem´oria e faz-se a extra¸c˜ao dos dados necess´arios acessando-se a mesma atrav´es deste buffer [6, 9]. Na Figura 2.1 h´a um diagrama com os dois tipos de esquemas mais utilizados.
Figura 2.1: Esquemas de hardware normalmente utilizados em star trackers.
(a) FPGA para controle de acesso `a me-m´oria. Sensor de Imagens SRAM µC FPGA CSI-2 I2C
(b) Microcontrolador j´a com um barra-mento CSI-2 nativo.
Sensor de
Imagens µC SRAM
CSI-2
I2C
Fonte: Figura do autor.
Como ilustrado na Figura 2.1(a), alguns modelos utilizam FPGAs, mas somente para implementar um receptor da interface CSI-2 do
sen-2.1. Esquemas utilizados
sor de imagens, e um controlador de escrita e leitura do buffer de me-m´oria, onde geralmente utilizam-se chips de SRAM ou SDRAM com alguns poucos megabytes. Neste caso, o processador ou microcontrola-dor que faz o processamento por software, acessa a imagem utilizando o FPGA como ponte. Por exemplo, este m´etodo ´e empregado em [6, 9]. Outro esquema tamb´em empregado, utiliza microcontroladores mais robustos e que j´a possuem um receptor do protocolo CSI-2 implemen-tado em hardware. Desta forma, o sensor de imagens ´e conectado dire-tamente ao mesmo, enviando as imagens que s˜ao redirecionadas `a uma mem´oria vol´atil externa (geralmente atrav´es de DMA). Nesta situa¸c˜ao, devido `a maior complexidade do microcontrolador, geralmente ocorre um maior consumo de energia e recursos, o que pode levar `a necessi-dade do compartilhamento do mesmo com outros m´odulos ou tarefas do sat´elite (por exemplo, as rotinas do star tracker sendo processadas pelo computador de bordo, junto com outras tarefas e programas). Este tipo de modelo est´a exemplificado na Figura 2.1(b), e foi o utilizado em [13, 14, 15].
H´a ainda uma outra varia¸c˜ao, onde h´a um FPGA e um microcon-trolador, mas cada um com um m´odulo de mem´oria exclusivo, sem o compartilhamento de espa¸co de mem´oria entre ambos [6].
2.1.1
Algoritmos de extra¸
c˜
ao de centroides
Com rela¸c˜ao ao algoritmo proposto para a identifica¸c˜ao das regi˜oes de estrelas, a classifica¸c˜ao por limiar de intensidade ´e vastamente em-pregada. Como por exemplo em [12, 10, 6, 13]. J´a a implementa¸c˜ao desta etapa em hardware ´e pouco explorada, com uns dos poucos exem-plos sendo [10, 6].
Com rela¸c˜ao ao algoritmo de extra¸c˜ao de centroides proposto, n˜ao foram encontrados trabalhos que utilizassem um Filtro de Kalman para estimar as coordenadas dos centroides a partir do fluxo de pixels vindo do sensor de imagens. Por´em, h´a projetos que utilizam este filtro para estimar ou rastrear a atitude final do sensor, a ser utilizada como refe-rˆencia para o atuador no controle da atitude [16, 17].
Nos trabalhos relacionados utilizados como base, n˜ao foi encontrado um projeto que combine o conjunto proposto, com a classifica¸c˜ao dos pixels implementada em hardware e o uso de um Filtro de Kalman em software para extrair as coordenadas dos centroides a partir de uma lista de pixels de estrelas.
2.2
Uso de FPGAs em star trackers
Solu¸c˜oes que utilizam hardware customizado para realizar parte ou todo processamento das imagens ainda s˜ao pouco exploradas. Atual-mente existem soAtual-mente alguns poucos trabalhos que empregam este tipo de recurso para melhorar a eficiˆencia ou simplificar este tipo de sensor.
Desses trabalhos, pode-se destacar [18, 19, 10], que implementaram todo o processo de extra¸c˜ao dos centroides em um FPGA. Com maior destaque para o segundo trabalho que realiza o processamento dire-tamente a partir do fluxo de pixels vindo do sensor de imagens, sem armazenar os quadros da cˆamera por completo. J´a os outros dois, uti-lizam t´ecnicas semelhantes, mas armazenam as imagens por completo ou parcialmente em buffers de mem´oria.
Um outro projeto de destaque ´e o [20], que apresenta todo um pro-jeto de um chip para a identifica¸c˜ao de centroides utilizando a tecno-logia ASIC. Neste caso h´a o problema do alto custo envolvido para a fabrica¸c˜ao destes tipos de dispositivos, o que vai contra as diretrizes comumentemente adotadas na escolha dos componentes a serem utili-zados em CubeSats, onde um dos focos ´e o baixo custo.
Tamb´em h´a trabalhos que partem para o uso de DSPs para realizar o processamento dos centroides em software com um tempo reduzido, este ´e o caso de [9].
2.3
Outros trabalhos
Existem outros tipos de trabalhos com foco somente nos algoritmos de extra¸c˜ao de centr´oides. Mas nestes casos, geralmente n˜ao tem-se a preocupa¸c˜ao da implementa¸c˜ao do sistema, ou seja, n˜ao tem-se em vista a capacidade de processamento e/ou energia limitadas para estes tipos de sensores em aplica¸c˜oes espaciais de pequeno porte. Exemplos: [21], [22] e [23].
H´a ainda trabalhos com o prop´osito do uso de star trackers em outros tipos de aplica¸c˜oes, como espa¸conaves e/ou foguetes [24].
2.4
Compara¸
c˜
ao de implementa¸
c˜
ao
A partir das principais caracter´ısticas de implementa¸c˜ao encontra-das nos trabalhos apresentados, na Tabela 2.1 h´a uma compara¸c˜ao do modelo proposto com alguns dos trabalhos relacionados. Nesta tabela
2.4. Compara¸c˜ao de implementa¸c˜ao
considerou-se apenas os trabalhos mais pr´oximos a este, ou seja, com um sensor de imagens dedicado e com todo o processamento sendo executado de forma embarcada.
T ab el a 2. 1: Comp ara¸ c˜ ao d as carac ter ´ıst icas de im pl em en ta¸ c˜ ao com al gu ns trab al hos re laci onad os. M o de lo s C ar ac te r´ı sti ca M o de lo pr op os to C ub e St ar [6] M o de lo de [10] Pi coSt ar [9] Mo de lo de [19] Uso d e F P G A 3 3 3 7 3 Uso d e µ C ou pr o cess ador 3 3 3 3 3 Ar maze nam en to total d as imagen s 7 3 7 3 7 Ar maze nam en to par ci al d as imagen s 3 7 7 7 7 P ro ces same n to em har dwar e 3 7 3 7 3 P ro ces same n to em sof twar e 3 3 7 3 3 Uso d e m em´ or ia n ˜ao-v ol´ at il ex te rn a 7 3 7 7 7 P re ci s˜ao d e su b -p ix e l 3 3 7 3 3 T ax a d e at u ali za¸ c˜ ao 4, 16 1 < 1 Hz -4, 4 Hz 10 Hz 1P ara u m F O V d e 15 ◦. C om o dem ons trado no C ap ´ıtulo 7, co m um F O V de 8 ◦ p o de-se atin gir um a ta xa de a tuali za¸ c ˜ao d e 26 ,5 H z.
CAP´
ITULO 3
Contextualiza¸
c˜
ao
O
trabalho proposto se contextualiza com as atividades do grupo de pesquisa, que tem focado em projetos de pesquisa e desenvolvi-mento na ´area espacial, e vem desenvolvendo um nanossat´elite (Cube-Sat 1U) nos ´ultimos anos, denominado “FloripaSat-I” [25]. Este sat´elite tem o seu lan¸camento previsto para o ano de 2019 e pode ser visto nas Figuras 3.1 e 3.2.Figura 3.1: “FloripaSat” parcialmente montado (sem os pain´eis solares e o m´odulo de antena cobrindo toda a estrutura).
Figura 3.2: Vis˜ao explodida do modelo 3D do “FloripaSat” com todos os seus subsistemas e m´odulos.
Fonte: Projeto FloripaSat.
O sat´elite em desenvolvimento utiliza um sistema de controle de atitude passivo, que consiste na utiliza¸c˜ao de ´ım˜as de terra rara e bar-ras de histerese, que s˜ao dispostos geometricamente de uma maneira `a se alinharem com o campo magn´etico da Terra quando em opera¸c˜ao.
Este tipo de sistema ´e o de menor complexidade dentre os sistemas de controle de atitude. Nele, tem-se a desvantagem de n˜ao se ter controle sobre a orienta¸c˜ao do sat´elite, j´a que trata-se de um sistema passivo.
A posi¸c˜ao final, ap´os a estabiliza¸c˜ao inicial, ´e definida durante a fase de projeto atrav´es do posicionamento dos elementos magn´eticos em rela¸c˜ao ao sat´elite e `as respectivas polaridades. Um problema que ocorre em sistemas deste tipo ´e em rela¸c˜ao ao tempo de estabiliza¸c˜ao, que varia conforme as condi¸c˜oes de lan¸camento do sat´elite, podendo levar semanas em alguns casos, o que pode gerar perda de dados e principalmente perda de vida ´util do dispositivo.
Este subsistema encontra-se representado na Figura 3.3, onde ´e pos-s´ıvel visualizar o ´ım˜a de terra rara e as barras de histerese instalados ao longo da estrutura mecˆanica.
Figura 3.3: Sistema de controle de atitude do “FloripaSat-I” (´ım˜a de terra rara, em vermelho, e barras de histerese, em verde, dispostos ao longo da estrutura).
Fonte: Projeto FloripaSat.
Atualmente j´a encontra-se em pesquisa modelos de controle de ati-tude ativos, que juntamente com o star tracker aqui desenvolvido, per-mitir´a em futuras miss˜oes o uso de um sistema de controle de atitude muito mais robusto e preciso que o atual.
3.1
Experimentos com FPGAs
O sat´elite “FloripaSat-I” contar´a, al´em dos m´odulos embarcados para o m´ınimo funcionamento do sat´elite, com dois m´odulos como carga ´
util: O m´odulo RUSH (Rapid recovery from SEUs in reconfigurable Hardware, ou recupera¸c˜ao r´apida de SEUs em hardware reconfigur´ a-vel) e o m´odulo “Payload X”. Ambos podem ser vistos na Figura 3.4. Figura 3.4: M´odulos com os experimentos a serem testados no “FloripaSat-I”.
(a) M´odulo RUSH. (b) Modelo 3D do “Payload X”.
Fonte: http://www.acser.unsw.edu.au/RUSH e http://floripasat.space/.
O primeiro foi desenvolvido pela University of New South Wales (UNSW), e carrega um experimento desenvolvido em um SoC Xilinx Zync-7000, com o objetivo prim´ario de demonstrar e validar novas abor-dagens para recupera¸c˜ao de SEUs em FPGAs, e objetivo secund´ario de mapear a ocorrˆencia de SEUs na termosfera e executar a reconfigura¸c˜ao de hardware em ´orbita.
J´a o “Payload X”, ´e um m´odulo desenvolvido pelo grupo de pesquisa em parceria com a companhia francesa NanoXplore. O mesmo possui um FPGA da fam´ılia BRAVE (Big Re-programmable Array for Versa-tile Environments) desta mesma empresa, e tem o objetivo de testar e validar o respectivo SoC pela primeira vez em uma miss˜ao espacial real. Este FPGA tem como principal caracter´ıstica a de ser resistente a ra-dia¸c˜ao ionizante do espa¸co. O m´odulo tamb´em possu´ı perif´ericos como uma IMU, mem´orias vol´ateis e n˜ao-vol´ateis e um sistema de
reconfigu-3.1. Experimentos com FPGAs
ra¸c˜ao de hardware em voo, que juntos permitir˜ao executar experimentos para a valida¸c˜ao de todo o conjunto.
Para o desenvolvimento deste m´odulo, um kit de desenvolvimento foi fornecido juntamente com todas as ferramentas necess´arias. Como este chip ainda n˜ao est´a dispon´ıvel comercialmente, poucas institui¸c˜oes do mundo tˆem acesso `a ele, podendo assim, ser considerado como ´unico. Desta forma, esta ser´a a primeira vez que este m´odulo ser´a levado ao espa¸co, evento que ser´a de grande impacto para a comunidade cient´ıfica e aeroespacial em geral. O m´odulo encontra-se atualmente em processo de montagem, e uma imagem do modelo 3D do mesmo pode ser vista na Figura 3.4(b).
A ideia principal por tr´as destes experimentos envolvendo FPGAs a bordo do sat´elite, ´e a de que em futuras miss˜oes se consiga realizar todo o processamento necess´ario no sat´elite em um ´unico m´odulo (ou chip), conceito conhecido como Satellite-on-a-Chip. Ao se utilizar pro-cessadores sintetiz´aveis, como o LEON, MicroBlaze, etc., tem-se uma infinidade de poss´ıveis configura¸c˜oes de hardware e software. Tudo isso, em um hardware resistente `a SEUs e SETs, o que para a ´area espacial ´
e algo de grande relevˆancia, pois aumentam-se as chances de sucesso das miss˜oes.
Desta forma, pretense utilizar o star tracker apresentado e de-senvolvido neste trabalho nesta plataforma, como pode ser visto no diagrama da Figura 3.5. Em um futuro m´odulo contendo um FPGA deste tipo, o star tracker poder´a ter o seu hardware dedicado e um processador exclusivo ou compartilhar um processador com outros sub-m´odulos ou subsistemas do sat´elite (neste caso, como uma tarefa em paralelo no processador).
O star tracker possivelmente estar´a instalado e em funcionamento, juntamente com um sistema de controle de atitude ativo, na miss˜ao SERPENS-2 financiada pela agˆencia espacial brasileira (AEB), que con-siste em um CubeSat 3U a ser desenvolvido pelo grupo de pesquisa e com previs˜ao de lan¸camento para 2020.
Figura 3.5: Diagrama de blocos do m´odulo “Payload X” (com a ilustra-¸c˜ao de um sensor de imagens como um poss´ıvel futuro perif´erico).
DDR2 RTC Flash SRAM 2 GB 2 GB 4 MB 4 SPI 31 2 I2C 30 Flash 128 MB
FPGA
µC
Switch Reset 4 4 SPI SPI Main Bus 4 UART 2 I2C 8 SPI/GPIO Power 3 JTAG JTAG 4 SPI NanoXplore BRAVE MSP430 2 Image Sensor I2C/CSI 15CAP´
ITULO 4
Fundamenta¸
c˜
ao Te´
orica
P
ara o correto funcionamento da maior parte dos sat´elites, ´e neces-s´ario o uso de um sistema de controle de atitude. Sistema esse que normalmente ´e chamado de ADC (Attitude Determination and Con-trol ) ou ADCS (Attitude Determination and ConCon-trol System). Esses tipos de sistemas podem ser divididos em trˆes etapas [4]: determina-¸c˜ao, predi¸c˜ao e controle. Cada umas dessas etapas encontra-se descrita de forma simplificada nas se¸c˜oes a seguir.
Em sistemas ativos, geralmente utiliza-se uma malha de controle fechada semelhante ao da Figura 4.1 [9]. Este trabalho baseia-se no desenvolvimento de um sensor de determina¸c˜ao de atitude, ou seja, a caixa “Sensor” deste diagrama.
Figura 4.1: Malha de controle t´ıpica de um sistema de controle de atitude ativo de um sat´elite.
Controlador Atuador Satélite
Sensor -+ Perturbações (torque) Atitude desejada Atitude real Erro Comando Controle (torque) Atitude medida Fonte: Adaptado da [9].
4.1
Determina¸
c˜
ao de atitude
A determina¸c˜ao de atitude ´e o processo de computar a orienta¸c˜ao do sistema em rela¸c˜ao a um referencial inercial (neste caso, a Terra). ´E a primeira etapa da cadeia de processos envolvendo a atitude, e onde ocorre a entrada de dados, que sendo processados, servem como referˆ en-cia para as etapas de controle e atua¸c˜ao (e predi¸c˜ao quando aplic´avel). O modo de funcionamento desta etapa varia com o tipo de sensor utilizado. Para os star trackers, esse processo pode ser dividido basica-mente em trˆes partes: extra¸c˜ao dos centroides, identifica¸c˜ao das estrelas e computa¸c˜ao da atitude.
A seguir, h´a uma breve discuss˜ao sobre cada uma dessas etapas.
4.1.1
Determina¸
c˜
ao de atitude utilizando star
trac-kers
Os star trackers, tˆem o seu funcionamento baseado na correla¸c˜ao das estrelas dentro do campo de vis˜ao (FOV, Field Of View ) do sensor de imagens e o seu conjunto ´optico, com as estrelas de um cat´alogo j´a conhecido.
Para a aquisi¸c˜ao das imagens, atualmente utiliza-se um esquema semelhante ao de cˆameras digitais modernas, que ´e composto basica-mente por um sensor de imagens, que pode utilizar a tecnologia CMOS ou CCD, aliado a um conjunto ´optico formado basicamente por uma lente e um suporte.
Com os avan¸cos da tecnologia CMOS, nos ´ultimos anos vem cres-cendo a prevalˆencia da utiliza¸c˜ao deste tipo de sensor em detrimento aos CCDs, devido principalmente ao menor custo, consumo de energia, menor complexidade de montagem e possibilidade da realiza¸c˜ao de um pr´e-processamento na mesma pastilha de sil´ıcio [6].
Para evitar a entrada e interferˆencia de raios de luz dispersos na lente, e consequentemente a introdu¸c˜ao de erros nos resultados, tam-b´em utiliza-se defletores ´opticos. Que basicamente s˜ao estruturas de material opaco e em forma de cone, que permitem somente a entrada de luz vinda diretamente em dire¸c˜ao ao sensor. Este elemento pode ser visto na Figura 1.3.
4.1.1.1 Extra¸c˜ao de centroides
Ap´os a captura da imagem, a primeira etapa de processamento con-siste na detec¸c˜ao das regi˜oes compostas por estrelas. O processo de
4.1. Determina¸c˜ao de atitude
detectar essas regi˜oes, trata-se de determinar as ´areas das imagens que contenham estrelas, ou seja, identificar conjuntos de pixels agrupados que representem uma estrela.
Com as estrelas detectadas, ´e necess´ario identificar as coordenadas do ponto central de cada uma delas. Esta coordenada ´e definida como o centroide da estrela, nome vindo da geometria e que representa o centro geom´etrico (para um plano) ou centro de massa (para um corpo em um plano tridimensional). Matematicamente, um centroide pode ser obtido pela Equa¸c˜ao 4.1 para um corpo, e pela Equa¸c˜ao 4.2 para um plano. Uma ilustra¸c˜ao do centroide de uma figura geom´etrica qualquer pode ser vista na Figura 4.2. Este ponto central tamb´em pode ser chamado de baricentro. xVc = R x · dV R dV , y V c = R y · dV R dV , z V c = R z · dV R dV (4.1) xAc = R x · dA R dA , y A c = R y · dA R dA (4.2)
Figura 4.2: Ilustra¸c˜ao do centroide um uma figura geom´etrica gen´erica.
Centroide 1 2 3 4 5 6 7 8 9 10 11 x y 1 2 3 4 5 6 7 0
Fonte: Figura do autor.
Junto com a identifica¸c˜ao dos centroides, ´e necess´ario orden´a-las por sua intensidade e/ou ´area (quantidade de pixels por estrela). Este parˆametro est´a ligado a estimativa de distˆancia (eixo z) das estrelas e ao parˆametro de magnitude presente nos cat´alogos de estrelas, ou seja, estrelas com maior intensidade de luz ou maior ´area que est˜ao mais pr´oximas do observador, e as com menor intensidade ou menor ´area que est˜ao mais longe.
Alguns problemas que surgem nesta etapa s˜ao com rela¸c˜ao `a satura-¸
c˜ao da imagem, seja por tempo de exposi¸c˜ao acentuado, por incidˆencia do Sol diretamente sobre o sensor, ou ainda pelo aparecimento de ob-jetos pr´oximos na cena (a pr´opria Terra, a Lua, entre outros). Um algoritmo para esta etapa precisa levar em considera¸c˜ao estas poss´ı-veis situa¸c˜oes e detecta-las propriamente, tomando medidas necess´arias quando cab´ıveis (por exemplo, reduzir o tempo de exposi¸c˜ao do sensor, ou descartar a imagem capturada).
Um resultado desta parte pode ser visto na Figura 1.4, onde os c´ırculos representam os centroides obtidos, e os n´umeros as respectivas posi¸c˜oes dentro de todo o conjunto (classifica¸c˜ao por intensidade).
Sendo esta etapa o foco deste trabalho, o funcionamento do m´etodo desenvolvido ser´a discutido com mais detalhes no Cap´ıtulo 5.
4.1.1.2 Identifica¸c˜ao das estrelas atrav´es de um cat´alogo e do algoritmo de grade
Com as coordenadas das estrelas e suas respectivas intensidades, a pr´oxima etapa consiste em correlacionar essas informa¸c˜oes com estrelas reais de um cat´alogo j´a definido.
Cat´alogos de estrelas s˜ao bancos de dados contendo informa¸c˜oes fotom´etricas de estrelas, coletadas por sat´elites especificamente cons-tru´ıdos para tal tarefa. Um cat´alogo frequentemente utilizado ´e o Hip-parcos [11] (High Precision Parallax Collecting Satellite). Este cat´alogo foi gerado com os dados obtidos pelo sat´elite cient´ıfico de mesmo nome, desenvolvido pela ESA e lan¸cado em 1989. Este foi o primeiro expe-rimento espacial com o objetivo de medir com precis˜ao a posi¸c˜ao de objetos celestiais para serem utilizados em astronomia de precis˜ao. A primeira vers˜ao deste cat´alogo foi publicada em 1997, contendo mais de 118200 estrelas. Em 2000, a segunda e aprimorada vers˜ao do ca-t´alogo foi publicada, contendo 2,5 milh˜oes de estrelas e denominado Hipparcos-2.
O algoritmo de grade [26] ´e geralmente utilizado para a identifica-¸
c˜ao de estrelas a partir de um cat´alogo. O seu funcionamento baseia-se resumidamente na descri¸c˜ao de cada estrela conhecida, utilizando as estrelas localizadas ao seu redor. Para cada uma das entradas de um cat´alogo, extrai-se descritores pelo posicionamento das estrelas vizinhas em uma grade. O mesmo processo ´e repetido para cada nova estrela a ser identificada durante o funcionamento do sensor. Comparando-se os descritores obtidos da estrela em teste, com o banco de descrito-res j´a conhecidos, assume-se que a mesma seja a estrela com a maior similaridade de descritores.
4.1. Determina¸c˜ao de atitude
A Figura 4.3 ilustra este processo. As etapas ilustradas nesta figura, encontram-se descritas logo abaixo:
• Figura 4.3(a): Regi˜ao de raio r ao redor da estrela em an´alise, com as estrelas vizinhas (pontos pretos) ao seu redor.
• Figura 4.3(b): Mesmo conjunto de estrelas, mas sobrepostas por uma grade e com a estrela em an´alise na posi¸c˜ao central. Nesta etapa, cada uma das estrela vizinhas ´e disposta de uma maneira em que cada uma ocupe somente um c´elula da grade (com lado g).
• Figura 4.3(c): Grade bin´aria resultante. Nesta etapa, o descritor da estrela em an´alise pode ser extra´ıdo contabilizando-se as c´ elu-las que contenham ou n˜ao uma estrela, iniciando na coordenada (0, 0).
Figura 4.3: Demonstra¸c˜ao simplificada do funcionamento do algoritmo de grade.
(a) Estrela com uma ´area de cobertura de raio r.
r
(b) Estrelas vizinhas po-sicionadas em uma grade.
g
(c) Grade bin´aria com c´ e-lulas contendo estrelas.
0 i
j Fonte: Figura do autor.
H´a ainda um passo intermedi´ario entre as Figuras 4.3(a) e 4.3(b), que consiste na rota¸c˜ao do conjunto, de forma a se posicionar a es-trela vizinha mais pr´oxima sobre o eixo x. Desta forma, garante-se a invariˆancia do algoritmo a rota¸c˜oes.
Para se calcular os descritores de uma determinada estrela, utiliza-se um vetor bin´ario, onde 1 indica uma estrela vizinha em uma determi-nada c´elula da grade, e 0 a n˜ao presen¸ca de uma estrela. Por exemplo, na Figura 4.3(c) o vetor resultante seria composto por 1’s indicando as
c´elulas em cinza e 0’s as c´elulas vazias, tendo como o origem o ponto (0, 0) do sistema de coordenadas (i, j). Este vetor resultante (~V ) pode ser visto na Equa¸c˜ao 4.3.
~ V = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] (4.3)
Aplicando-se este processo a todos os centroides identificados na etapa anterior, chega-se `a uma lista de estrelas do cat´alogo que corres-pondem ao conjunto de estrela da imagem em an´alise.
4.1.1.3 Computa¸c˜ao da atitude
A ´ultima etapa de todo o processo de determina¸c˜ao da atitude, ´e a computa¸c˜ao da atitude (est´atica). De maneira simplificada, esta etapa consiste em encontrar a matriz de rota¸c˜ao entre os vetores de referˆencia (do cat´alogo da etapa anterior) que est˜ao nas coordenadas inerciais, e os vetores das estrelas encontradas, que est˜ao nas coordenadas da estrutura do sensor.
Atualmente o algoritmo mais utilizado para resolver este problema ´e o QUEST [27]. A partir dele, consegue-se ao final, obter um quat´ernio que representa a atitude do sensor, e consequentemente do sat´elite.
Para representar a atitude final, uma representa¸c˜ao muito utilizada pela maior facilidade de se realizar opera¸c˜oes, s˜ao os quat´ernios.
Um sistema de representa¸c˜ao alternativo a este, que ´e mais simples e de visualiza¸c˜ao mais f´acil, s˜ao os ˆangulos de Euler (eleva¸c˜ao, rolagem e guinada). Neste caso, os valores indicam diretamente os ˆangulos do
4.2. Predi¸c˜ao de atitude
vetor da atitude. Apesar disso, os quat´ernios ainda s˜ao vastamente mais utilizados devido `a sua maior robustez matem´atica.
4.2
Predi¸
c˜
ao de atitude
A predi¸c˜ao de atitude, consiste em antecipar e prever o comporta-mento dinˆamico futuro do sat´elite, baseando-se no seu comportamento passado. Atrav´es de modelos matem´aticos, extrapola-se a sua orienta-¸
c˜ao espacial atrav´es do seu hist´orico. Ou seja, realiza-se o rastreamento (tracking) da atitude ao longo do tempo [4].
O desempenho desta etapa, depende da precis˜ao dos valores medi-dos e armazenamedi-dos, da quantidade de damedi-dos gravamedi-dos e da precis˜ao do modelo matem´atico utilizado, que s˜ao intimamente ligados ao hardware dispon´ıvel no sat´elite.
Apesar de melhorar o desempenho dos sistemas como um todo, esta etapa n˜ao ´e mandat´oria para o funcionamento de um sensor de determina¸c˜ao de atitude. Em boa parte dos casos a atitude est´atica j´a ´
e suficiente para se alcan¸car bons resultados [4].
4.3
Controle de atitude
O controle de atitude, trata-se da etapa onde ocorre a atua¸c˜ao no controle do sistema. Ele pode ser dividido em dois tipos: estabiliza¸c˜ao e manobra (maneuver ) [4], sendo que nem todos os sistemas utilizam os dois tipos (por exemplo, sistemas de controle passivos).
A estabiliza¸c˜ao ´e o processo de manter o sistema em uma orien-ta¸c˜ao fixa e j´a existente, mantendo-se o mais invulner´avel poss´ıvel `as perturba¸c˜oes do ambiente.
J´a o controle de atitude em manobra, ´e a atua¸c˜ao do sistema na mudan¸ca de um valor de atitude para outro, ou seja, reorienta¸c˜ao.
O controle de atitude em sat´elites, pode ser dividido em dois grupos: Sistemas passivos e ativos.
O primeiro tipo, por ser mais simples, ´e o mais adotado em projetos. Estes sistemas trabalham em malha aberta, e neste caso n˜ao requerem sensores para estimar a atitude em tempo real.
Os dois principais tipos de atuadores nesses sistemas, s˜ao:
• ´Im˜as e barras de histerese: Este ´e um tipo de atuador vas-tamente empregado, pela sua simplicidade e por requerer poucos recursos do sat´elite para o seu funcionamento. Basicamente s˜ao
compostos por ´ım˜as de terra-rara e barras de histerese, sendo os mesmos dispostos espacialmente de uma maneira onde o sat´elite tem a tendˆencia de se alinhar com o campo magn´etico da Terra (neste caso s´o ´e poss´ıvel uma estabiliza¸c˜ao sujeita a oscila¸c˜oes peri´odicas).
• Bobinas magn´eticas: Utiliza o mesmo princ´ıpio que o anterior, mas utilizando bobinas para gerar um campo magn´etico e assim interagir com o campo da Terra.
J´a os sistemas ativos, s˜ao mais robustos e apresentam uma eficiˆencia muito mais elevada, mas em contrapartida s˜ao muito mais complexos e demandam mais e energia e espa¸co f´ısico dos sat´elites.
Os trˆes principais tipos de atuadores nos sistemas ativos, s˜ao: • Bobinas magn´eticas: Tamb´em conhecidas como magnetorquers,
este tipo de atuador tamb´em pode ser empregado em sistemas ativos, com a diferen¸ca de se variar a intensidade do campo mag-n´etico resultante atrav´es da varia¸c˜ao da corrente circulando pelas bobinas. Diferente de um modelo passivo, neste caso ´e poss´ıvel realizar manobras. Um exemplo pode ser visto na Figura 4.4(b). • Rodas de rea¸c˜ao: Este ´e um atuador mecˆanico, e neste caso trabalhe-se com a lei de a¸c˜ao e rea¸c˜ao. Um motor el´etrico aplica um torque em um cilindro, que pela rea¸c˜ao, faz o sat´elite girar no sentido contr´ario. Utilizando-se um conjunto de motores pode-se realizar o controle de atitude nos trˆes eixos. Um exemplo de modelo pode ser visto na Figura 4.4(a).
• Propulsores: Outro modelo mecˆanico, mas muito mais avan-¸
cado. Nestes modelos, tem-se m´ultiplos propulsores instalados em regi˜oes fora do centro de massa do sat´elite, que quando ativos, geram torques em eixos espec´ıficos. Devido ao tamanho, consumo de energia e alta complexidade, geralmente s´o s˜ao utilizados em sat´elites de maior porte ou para miss˜oes mais avan¸cadas. Um exemplo de uma matriz de propulsores para CubeSats, pode ser vista na Figura 4.4(c).
4.3. Controle de atitude
Figura 4.4: Exemplos de atuadores de m´odulos de controle de atitude ativos para CubeSats.
(a) Rodas de rea¸c˜ao. (b) Magnetorquers.
CAP´
ITULO 5
Trabalho Proposto
E
ste cap´ıtulo apresenta com mais detalhes o trabalho proposto, que tem como principal ponto o desenvolvimento de um algoritmo para detec¸c˜ao e determina¸c˜ao dos centroides de estrelas em sensores star tracker. Este algoritmo tem como destaque uma maior simplifica¸c˜ao em termos de topologia, onde ao se utilizar um FPGA (ou outra tecnologia de descri¸c˜ao de hardware, como os CPLDs por exemplo) obt´em-se um menor consumo de mem´oria e uma arquitetura mais simples. Este tipo de abordagem tamb´em traz uma maior flexibiliza¸c˜ao para a integra¸c˜ao desses tipos de sensores com os demais m´odulos dos sat´elites, al´em de ganhos no tempo de execu¸c˜ao como ser´a discutido no Cap´ıtulo 7.O cap´ıtulo divide-se em duas partes: Primeiramente apresenta-se o algoritmo junto com a base te´orica utilizada e algumas exemplifica¸c˜oes de funcionamento, e logo ap´os, h´a a topologia de hardware proposta, que est´a diretamente relacionada com o algoritmo desenvolvido.
5.1
Algoritmo
A etapa de maior consumo de recursos em um star tracker, como energia e processamento, ´e a etapa de extra¸c˜ao dos centroides das es-trelas. Para extrair uma imagem de um c´eu estrelado, necessita-se de uma cˆamera, que geralmente apresenta um consumo de energia rela-tivamente alto em compara¸c˜ao com os demais componentes do sensor (algumas medidas de potˆencia podem ser vistas na Tabela 7.6). Ap´os a extra¸c˜ao da imagem, ´e preciso realizar um processamento na mesma, para estimar as regi˜oes de estrelas e as coordenadas dos seus respecti-vos centroides. Como cada imagem cont´em uma grande quantidade de informa¸c˜oes, o tempo necess´ario para esta parte do processamento ´e o
maior dentro da cadeia de etapas de todo o star tracker. Os tempos envolvidos em cada etapa ser˜ao melhor discutidos no Cap´ıtulo 7.
Um outro problema que surge durante o processamento das ima-gens, ´e com rela¸c˜ao ao armazenamento da imagem em um buffer de mem´oria. A abordagem mais usual, ´e o processamento da imagem em diversas itera¸c˜oes, o que requer acesso constante a qualquer regi˜ao da mesma e leva `a necessidade de quantidades consider´aveis de mem´oria de acesso r´apido. Como os microcontroladores utilizados geralmente n˜ao possuem mem´oria suficiente para tais opera¸c˜oes, parte-se para o emprego de m´odulos externos e dedicados de mem´oria RAM (como chips de SRAMs, SDRAMs, etc.). Para dimensionar este problema do consumo de mem´oria, em um sensor que envia uma imagem com uma resolu¸c˜ao de 800×600 pixels no formato RAW8 (sem compress˜ao e com 8 bits para cada canal), cada uma das imagens necessita de 1920000 bytes de mem´oria (1,92 MB ).
O uso de mem´orias externas traz algumas desvantagens, como a ne-cessidade da utiliza¸c˜ao de espa¸co f´ısico na placa de circuito impresso do sensor, um maior consumo de energia, al´em do aumento da possibili-dade da ocorrˆencia de perda de dados ou inser¸c˜ao de ru´ıdo por incidˆ en-cia de radia¸c˜ao ionizante sobre o chip, um problema que ´e comum em aplica¸c˜oes espaciais. Um outro problema relacionado, ´e com rela¸c˜ao `as diversas itera¸c˜oes durante o processamento neste tipo de abordagem, que acabam elevando o tempo de processamento total para cada ciclo, o que consequentemente reduz a taxa de atualiza¸c˜ao do sensor.
Para resolver esses problemas, prop˜oe-se a n˜ao utiliza¸c˜ao de buffers para armazenar as imagens do sensor1. Desta forma realiza-se o
pro-cessamento das mesmas diretamente a partir do fluxo de dados vindo do sensor de imagem. Uma vez que os sensores atuais normalmente utilizam um barramento paralelo para transmitir as imagens captura-das pixel a pixel de forma sequencial. Esse barramento ´e composto por sinais de sincronia e um fio para cada bit de um pixel, o que permite o acesso direto aos respectivos pixels dos pulsos de sincronia. Mais detalhes desse tipo de barramento podem ser encontrados na Subse-¸
c˜ao 6.2.3.
Uma outra caracter´ıstica desse tipo de aplica¸c˜ao que permite uma maior eficiˆencia de armazenamento de dados, ´e a de que imagens de c´eu estrelado podem ser consideradas como matrizes esparsas, j´a que a maior parte das imagens s˜ao compostas de regi˜oes escuras, com as
1Somente um buffer pequeno para armazenar os pixels de estrelas e suas
res-pectivas coordenadas. A topologia proposta n˜ao requer o armazenamento total das imagens.
5.1. Algoritmo
estrela ocupando uma ´area proporcionalmente muito menor. Desta forma, uma grande parte dos dados desse tipo de imagem pode ser des-cartado, j´a que n˜ao contribuem de forma significativa para o prop´osito final que ´e a identifica¸c˜ao de centroides.
Para isso, ´e necess´ario que o receptor dos dados do sensor tenha um barramento dedicado `a essa tarefa e que trabalhe com frequˆencias de clock compat´ıveis, al´em de ter a capacidade de processar grandes quantidades de informa¸c˜ao em um curto espa¸co de tempo. Estes re-quisitos podem ser atendidos com o uso de FPGAs ou CPLDs. Com a utiliza¸c˜ao desse tipo de tecnologia ´e poss´ıvel desenvolver um hardware digital customizado e dedicado `a esta tarefa.
Esta abordagem tamb´em leva `a necessidade de um algoritmo espe-c´ıfico que funcione com um fluxo cont´ınuo de dados vindos do sensor, e que n˜ao necessite acessar informa¸c˜oes de itera¸c˜oes passadas (pixels antigos ou em outras regi˜oes de um mesmo quadro).
5.1.1
Representa¸
c˜
ao de uma estrela
As principais caracter´ısticas das estrelas em imagens capturadas por sensores digitais no espectro vis´ıvel, s˜ao a maior intensidade de cor no centro (que diminui na dire¸c˜ao das bordas) e o formato circular. Uma equa¸c˜ao que se aproxima dessa caracter´ıstica ´e a fun¸c˜ao Gaussiana (neste caso vista superiormente em um plano tridimensional), que ´e definida genericamente pela Equa¸c˜ao 5.1.
g(x) = 1 σ√2πe −1 2( x−µ σ ) 2 (5.1) Onde:
• g(x): Representa a intensidade de cor da estrela ao longo do eixo x.
• σ: Indica a amplitude e o raio da estrela (quanto menor, maior o raio e menor a amplitude).
• x: A posi¸c˜ao ao longo de um dos eixos da imagem.
• µ: O deslocamento da fun¸c˜ao ao longo do eixo x. Neste caso, este fator ´e sempre igual a zero, j´a que o centroide de cada estrela corresponde `a posi¸c˜ao central da gaussiana.
Essa equa¸c˜ao, com amplitude normalizada em 255, σ2= 1 e µ = 0,
Um modelo mais realista para a representa¸c˜ao de uma estrela cap-turada por um star tracker, consiste em uma gaussiana sacap-turada (ou cortada). Este efeito est´a relacionado principalmente a dois fatores:
• Satura¸c˜ao dos sensores de imagem em capturas de longa exposi-¸
c˜ao: Devido `a baixa intensidade luminosa das estrelas do espa¸co profundo, ´e necess´ario fazer a captura da mesma atrav´es de uma amostragem de longo per´ıodo. Isto faz com que ocorra um au-mento na amplitude da gaussiana que representa a estrela, j´a que ocorre um “ac´umulo” de f´otons capturados durante a janela temporal de amostragem. Desta forma, a satura¸c˜ao da gaussi-ana ocorre no valor m´aximo dos conversores anal´ogico-digital do sensor, que limitam a amplitude da mesma. Por exemplo, para um conversor de 8 bits, esse valor ´e de 255, ou 28− 1. Este efeito pode ser visualizado na Figura 5.1(b) (neste caso n˜ao considera-se a amostragem ao longo dos pixels no eixo x).
• Amostragem e discretiza¸c˜ao do sinal feita pelos sensores de ima-gem digitais: Devido `a amostragem do sinal da estrela ao longo dos eixos x e y, e a pequena ´area ocupada por uma estrela em rela¸c˜ao `a uma imagem completa (ou seja, uma estrela tem poucos pixels de ´area), ocorre um “serrilhamento” da gaussiana que repre-senta uma estrela, fazendo com que nas ´areas pr´oximas ao centro ocorra o efeito de achatamento. Um exemplo dessa situa¸c˜ao pode ser visto na Figura 5.1(c).
As curvas das Figuras 5.1(a) e 5.1(b) podem ser vistas em um plano tridimensional (com o eixo z representando a intensidade de luz) nas Figuras 5.4(d) e 5.2 respectivamente.
O modelo apresentado serve como base para o desenvolvimento do algoritmo de detec¸c˜ao de estrelas e determina¸c˜ao dos respectivos cen-troides, e para as simula¸c˜oes de c´eu estrelado nas etapas de valida¸c˜ao e testes. Utilizando-se esse modelo para gerar a imagem de uma estrela artificialmente, chega-se `a imagem da Figura 5.3(a). Como compara-¸
c˜ao, na Figura 5.3(b) encontra-se uma estrela real capturada em uma foto de longa exposi¸c˜ao.
Para um modelo mais real´ıstico, poderia-se considerar ainda os ru´ı-dos presentes nesse tipo de sinal, como por exemplo o ru´ıdo atmosf´erico, ru´ıdo el´etrico do sensor de imagens, ru´ıdo t´ermico, entre outros. Para simplifica¸c˜ao, se utilizar´a como base uma modelo sem ru´ıdos.
5.1. Algoritmo
Figura 5.1: Representa¸c˜ao gaussiana de uma estrela. (a) Curva com amplitude normalizada
em 255. 3 2 1 0 1 2 3 x 0 50 100 150 200 250 y
(b) Curva com satura¸c˜ao em y = 255.
3 2 1 0 1 2 3 x 50 100 150 200 250 y
(c) Gaussiana discretizada por um con-versor AD de 8 bits e amostrada ao longo dos pixels de um sensor de ima-gens. 0 1 2 3 -1 -2 -3 x (pixels) y (conversões do ADC) 0 250 200 150 100 50
Fonte: Figura do autor.
5.1.2
Detec¸
c˜
ao de estrelas
Um m´etodo simples e eficaz para determinar quais pixels de uma imagem pertencem `a uma estrela, ´e a aplica¸c˜ao de um filtro de limiar de intensidade de cor. Neste filtro, a cada novo pixel da imagem em quest˜ao, avalia-se se a intensidade do mesmo est´a abaixo ou acima de um valor pr´e-definido (ou definido dinamicamente durante o funciona-mento do sistema). Como as estrelas s˜ao simplesmente pontos de luz no c´eu, se um pixel tiver um valor acima do limiar, o mesmo pertence `
Figura 5.2: Estrela como gaussiana saturada no valor limite do conver-sor AD do senconver-sor (8 bits neste caso).
x4 3 2 1 5 6 7 y 1 2 3 4 5 6 7 Intensidade 180 200 220 240
Fonte: Figura do autor.
Figura 5.3: Compara¸c˜ao entre uma estrela gerada por simula¸c˜ao e uma real.
(a) Estrela gerada por simula¸c˜ao. (b) Estrela real capturada em foto.
5.1. Algoritmo
centroides. Caso um pixel n˜ao passe pelo filtro, ele pode ser descartado. Utilizando-se este m´etodo, consegue-se diminuir a sensibilidade do sistema a ru´ıdos de baixa intensidade, ou mesmo a estrelas distantes e/ou com pouco brilho, que pouco influem na determina¸c˜ao da atitude final. Al´em de possibilitar um ganho substancial no consumo de me-m´oria. Por exemplo, em testes realizados por simula¸c˜ao, em imagens de 800 × 600 pixels e com um ˆangulo de FOV de 6◦, tem-se aproxi-madamente 700 pixels que passam pelo filtro, e que consequentemente pertencem `a estrelas, contra 480000 de toda a imagem.
5.1.3
Determina¸
c˜
ao das coordenadas dos centroides
utilizando um Filtro de Kalman
Considerando que o sinal de entrada tem um comportamento Gaus-siano (pixels de estrelas), e a caracter´ıstica de predi¸c˜ao dos filtros de Kalman, prop˜oe-se a utiliza¸c˜ao deste mesmo filtro para estimar as co-ordenadas centrais dos centroides. Para isso, pode-se utilizar um filtro de Kalman de uma dimens˜ao (aplicado separadamente em cada eixo da imagem), e com ganho constante e menor que 1, como apresentado nas equa¸c˜oes abaixo:
Zn = [xn, yn] (5.2) Kn= Gn· Kn−1 (5.3) Xn= Kn· Zn+ (1 − Kn) · Xn−1 (5.4) Com: X0= Z0 K0= 1 (5.5) Onde:
• x ´e a posi¸c˜ao de um pixel no eixo x. • y ´e a posi¸c˜ao de um pixel no eixo y. • Xn ´e a estimativa da itera¸c˜ao atual.
• K ´e o ganho de Kalman.