Upload
vungoc
View
213
Download
0
Embed Size (px)
Citation preview
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL
FACULDADE DE ENGENHARIA
INSTRUMENTAÇÃO DE UMA PLATAFORMA DE STEWART PARA
VALIDAÇÃO DE ESTIMADORES DE POSIÇÃO E ORIENTAÇÃO
BASEADOS EM FUSÃO DE SENSORES
Porto Alegre, 27 de novembro de 2017.
Autor: José Vinícius Melo
Pontifícia Universidade Católica do Rio Grande do Sul
Curso de Engenharia Elétrica
Av. Ipiranga 6681, - Prédio 30 - CEP: 90619-900 - Porto Alegre - RS - Brasil
Email: [email protected]
Orientador: Prof. Aurélio Tergolina Salton
Pontifícia Universidade Católica do Rio Grande do Sul
Av. Ipiranga 6681, - Prédio 30 - Bloco A - Sala 226 - CEP: 90619-900 - Porto Alegre
- RS- Brasil
Email: [email protected]
RESUMO
Este trabalho aborda os métodos utilizados para a instrumentação de uma plataforma de
Stewart utilizada na validação de um estimador de posição e orientação para sistemas com seis
graus de liberdade. O estimador baseia-se na fusão de sensores – um giroscópio, um
acelerômetro e uma câmera – através de um Filtro de Kalman Estendido. Os modelos utilizados
para o sistema e os sensores são baseados na representação por quatérnios. Os métodos
utilizados para a instrumentação e aquisição de dados são detalhados, assim como as técnicas
utilizadas para o processamento dos dados da câmera através da biblioteca OpenCV. Por fim,
a cinemática direta é utilizada para validar os modelos dos sensores e os resultados da estimativa
de posição e orientação obtidos com a aplicação do filtro.
Palavras-chave: Fusão de Sensores, Filtro de Kalman Estendido, Quatérnios,
Processamento de Imagens.
ABSTRACT
This work discusses the methods used in the instrumentation of a Stewart platform used
to validate a pose estimator to six degrees of freedom systems. The estimator is based on a
sensor fusion of a gyroscope, an accelerometer and a camera through an Extended Kalman
Filter. The models used for the system and sensors are based in quaternions. The approach used
in instrumentation and data acquisition is detailed, as well as the techniques applied to camera
data processing through the OpenCV library. Finally, the forward kinematic is used to validate
the sensor models and the pose results from filter application.
Key-words: Sensor Fusion, Extended Kalman Filter, Quaternions, Image Processing.
Toda a nossa ciência, comparada com a realidade, é primitiva e
infantil - e, no entanto, é a coisa mais preciosa que temos.
Albert Einstein (1879 - 1955)
SUMÁRIO
1 INTRODUÇÃO ....................................................................................................... 1
1.1 Motivações ........................................................................................................ 2
1.2 Objetivos ........................................................................................................... 2
1.3 Estrutura ............................................................................................................ 3
2 REFERENCIAL TEÓRICO .................................................................................... 4
2.1 Plataforma de Stewart ....................................................................................... 4
2.2 Filtro de Kalman Estendido .............................................................................. 5
2.3 Quatérnios ......................................................................................................... 8
2.4 Modelos do Giroscópio e do Acelerômetro .................................................... 10
2.5 Modelo da Câmera .......................................................................................... 12
3 METODOLOGIA .................................................................................................. 14
3.1 Instrumentação e Aquisição de Dados ............................................................ 14
3.2 Validação dos Modelos ................................................................................... 15
3.3 Filtro de Kalman Estendido ............................................................................ 16
4 APLICAÇÃO E RESULTADOS........................................................................... 18
4.1 Instrumentação e Aquisição de Dados ............................................................ 18
4.1.1 Módulo Central ......................................................................................... 18
4.1.2 Atuadores .................................................................................................. 20
4.1.3 Sensores Inerciais ...................................................................................... 21
4.1.4 Processamento de Imagem e Aquisição dos Marcadores ......................... 23
4.2 Validação dos Modelos ................................................................................... 27
4.2.1 Estimativa da Posição e Orientação através da Cinemática Direta ........... 27
4.2.2 Simulação dos Sensores ............................................................................ 30
4.3 Filtro de Kalman Estendido ............................................................................ 32
5 CONCLUSÃO ....................................................................................................... 34
6 APÊNCIDES .......................................................................................................... 35
6.1 Apêndice A ..................................................................................................... 35
6.2 Apêndice B ..................................................................................................... 36
6.3 Apêndice C ..................................................................................................... 38
7 REFERÊNCIAS .................................................................................................... 42
1
1 INTRODUÇÃO
O estudo de sistemas dinâmicos com seis graus de liberdade (Six Degrees of Freedom –
6-DOF) é de suma importância para a engenharia, pois abrange uma vasta gama de processos
e são utilizados em diversas áreas. Eles são úteis em muitas aplicações, como, por exemplo,
simuladores de voo (STEWART, 1965), braços robóticos (KUMRA, SAXENA e MEHTA,
2012), manipuladores paralelos (DE FARIA, 2016), etc. A plataforma de Stewart, por exemplo,
é um manipulador paralelo com 6 atuadores lineares e pode ser usada para garantir a
estabilidade na transferência de cargas entre portos ou grandes embarcações para navios
menores, reduzindo o tempo e custo envolvidos, além de garantir maior segurança (MELLO,
2011). Sendo assim, são de grande interesse para a indústria e o meio acadêmico, permitindo a
aplicação de diversas técnicas de controle.
Sistemas 6-DOF são estudados há diversas décadas em busca de técnicas de controle
eficazes e robustas, portanto, a determinação de sua posição e orientação é essencial.
Normalmente, a posição e orientação são inferidas através de sensores inerciais (Inertial
Measurement Unit - IMU), como, por exemplo, acelerômetros, giroscópios e magnetômetros.
Para tal, são usados sensores de alta precisão e com preços muito elevados. Sensores mais
comuns e baratos podem ser uma alternativa, contudo, o drift causado pelo processo de
integração dos erros numéricos faz o sinal divergir ao longo do tempo. Uma possível solução
para o uso dessas unidades inerciais é a utilização de outros sensores através de técnicas de
correção ou fusão de sinais (XU e LI, 2007). Este trabalho considera a fusão do sinal
proveniente de uma IMU com uma câmera através do uso do Filtro de Kalman Estendido
(Extended Kalman Filter - EKF).
O EKF é uma das técnicas mais utilizadas para a fusão e filtragem de sinais, pois fornece
um método de predição e correção, minimizando a covariância do erro de estimação. No passo
de predição, o modelo do sistema é utilizado para inferir a saída desejada e, posteriormente, a
correção é realizada através dos sensores. O EKF tem sido largamente utilizado para a fusão de
sensores inerciais e sensores de imagem. Em (NÜTZI, WEISS, et al., 2011), é feita a estimativa
de escala na técnica de mapeamento e localização simultânea utilizada em veículos aéreos
autônomos, eliminando a necessidade da utilização de duas câmeras. Em (ZHANG, FANG, et
al., 2017), é realizada a estimativa de posição e orientação de raquetes de tênis, possibilitando
que robôs utilizados como oponentes em treinos tenham uma resposta mais rápida e acurada,
facilitando o controle envolvido.
2
Para a aplicação do EKF é necessário representar o sistema através de seu modelo
matemático linearizado. Para o modelamento de um corpo rígido, esses modelos normalmente
possuem diversas não-linearidades que precisam ser simplificadas, podendo comprometer a
efetividade do filtro. Uma alternativa é a representação desse modelo através do uso de
quatérnios, onde diversas não-linearidades são eliminadas. Quatérnios são uma extensão dos
números complexos e fornecem uma forma simplificada e compacta para representar a
orientação e translação de um corpo rígido, por isso são largamente utilizados em diversas áreas,
como, por exemplo, computação gráfica (BAEK, JEON, et al., 2017).
1.1 Motivações
A principal motivação para realizar este trabalho é atuar em conjunto com pesquisadores
do Grupo de Automação e Controle de Sistemas (GACS) no desenvolvimento de um estimador
de posição e orientação de sistemas 6-DOF baseado em fusão de sensores. Este projeto permite
a aplicação de diversos conteúdos abordados durante a graduação, como, por exemplo,
desenvolvimento de hardware e firmware, bem como o aprendizado de novas técnicas através
do uso de processamento de imagens e o estudo de estimadores. Como consequência, é possível
unir teoria e prática, levando a um aperfeiçoamento das técnicas adquiridas ao longo do curso
de Engenharia Elétrica.
1.2 Objetivos
Tendo em vista o contexto abordado, o principal objetivo deste trabalho é realizar a
instrumentação e sensoriamento de uma plataforma de Stewart, que será utilizada para
validação de um estimador de posição e orientação de sistemas 6-DOF através da fusão de uma
IMU e uma câmera utilizando um Filtro de Kalman Estendido baseado na representação por
quatérnios. A fusão de sensores utiliza dados provenientes de um acelerômetro, de um
giroscópio e dados de uma câmera, onde a projeção nas imagens de marcadores com posição
conhecida está relacionada com a posição e orientação da câmera, situada no topo da
plataforma. A plataforma de Stewart utilizada pertence ao GACS, situada na sala 219 do bloco
A do prédio de Engenharia da Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS).
Para atingir os objetivos propostos, as seguintes metas foram traçadas:
1. Estudo e compreensão do Filtro de Kalman Estendido e do modelamento matemático
dos sensores utilizados;
3
2. Projeto e desenvolvimento de hardware e firmware para um módulo central de
comunicação e controle para a plataforma de Stewart;
3. Desenvolvimento de um protocolo de comunicação para controle e aquisição de dados
dos atuadores;
4. Projeto e desenvolvimento de hardware e firmware para um módulo de IMU utilizada
no sensoriamento da plataforma;
5. Desenvolvimento de um software em linguagem C++ para a aquisição de dados e
processamento de imagens através do uso de bibliotecas do OpenCV (Open Source Computer
Vision Library);
6. Validação dos modelos adotados através da comparação entre as respostas dos
sensores com as simulações obtidas a partir da cinemática direta do deslocamento dos
atuadores;
1.3 Estrutura
Este trabalho é organizado da seguinte maneira: na Seção 2 são apresentados os
principais conceitos matemáticos que possibilitam inferir a posição e orientação de um corpo
rígido. Na Seção 3 é apresentada a metodologia proposta a partir de um diagrama mostrando
integração entre todos os componentes envolvidos no trabalho, assim como o processo de
validação dos modelos utilizados. Na Seção 4, a aplicação da metodologia é apresentada, bem
como os principais resultados obtidos. Por fim, na Seção 5 são apresentadas as principais
considerações e conclusões em relação ao trabalho proposto.
4
2 REFERENCIAL TEÓRICO
Nesta seção são abordados os principais conceitos utilizados para a aplicação da
metodologia proposta. Primeiramente, são definidas as equações necessárias para a descrição
geométrica da plataforma de Stewart. A seguir, o Filtro de Kalman Estendido é apresentado
como ferramenta para a filtragem e fusão de sensores, bem como o algoritmo necessário para
sua execução, possibilitando a estimativa de posição e orientação em sistemas dinâmicos com
seis graus de liberdade. Na sequência, é dada uma breve introdução à teoria dos quatérnios,
assim como as principais equações matemáticas utilizadas para a representação da dinâmica de
posição e orientação de um corpo rígido. Por fim, são demostrados os modelos matemáticos
para o uso do giroscópio, do acelerômetro e da câmera, que são utilizados no passo de correção
do Filtro de Kalman Estendido.
2.1 Plataforma de Stewart
Uma plataforma de Stewart consiste em uma base fixa e uma móvel, conectadas por
juntas através de seis hastes ou atuadores lineares, fornecendo ao sistema a capacidade de
movimentação com seis graus de liberdade. Tal configuração foi proposta por Doug Stewart
em 1965 para ser utilizada em simuladores de voo (STEWART, 1965). Este trabalho utiliza
uma plataforma de Stewart como ambiente de simulação e validação, portanto é de particular
interesse a descrição geométrica da plataforma.
Figura 1 - Plataforma de Stewart: (a) estrutura geral, (b) relações geométricas das bases da plataforma.
(a)
(b)
Fonte: Retirado de (DE FARIA, 2016).
5
Considere a plataforma de Stewart da Figura 1(a), onde são definidas as coordenadas de
referência do sistema. 𝑂𝐼 é o sistema de coordenadas globais. 𝑂𝐵 e 𝑂𝑇 são sistemas de
coordenadas locais para a base e topo da plataforma, respectivamente. O manipulador possui
𝑖 = (1,… ,6) hastes onde cada junta 𝑏𝑖 e 𝑡𝑖 são vértices de um hexágono inscrito em um círculo
de raio 𝑟𝐵 e 𝑟𝑇. Como mostra a Figura 1(b), os ângulos 𝜑𝐵 e 𝜑𝑇 definem o tamanho das bordas
da plataforma e espaço entre cada par de juntas (DE FARIA, 2016).
As juntas 𝑏𝑖 e 𝑡𝑖 são geometricamente definidas por um vetor 𝐵𝑖 ∈ ℝ3 e 𝑇𝑖 ∈ ℝ
3 para a
base e o topo da plataforma, respectivamente, relativos aos seus respectivos sistemas de
coordenadas locais e são dados por:
𝐵𝑖 = [𝑟𝐵 cos(𝜆𝑖)
𝑟𝐵 sin(𝜆𝑖)0
], 𝑇𝑖 = [𝑟𝑇 cos(𝜓𝑖)
𝑟𝑇 sin(𝜓𝑖)0
], (2.1)
onde:
𝜆𝑖 = {
𝑖𝜋
3−𝜑𝐵2, 𝑖 = (1,3,5)
𝜆𝑖−1 − 𝜑𝐵, 𝑖 = (2,4,6)
𝜓𝑖 = {
𝑖𝜋
3−𝜑𝑇2, 𝑖 = (1,3,5)
𝜓𝑖−1 − 𝜑𝑇 , 𝑖 = (2,4,6).
(2.2)
2.2 Filtro de Kalman Estendido
Em diversas áreas da engenharia é recorrente o uso de sensores, contudo, os sinais
medidos normalmente trazem erros agregados decorrentes de ruídos integrados à medição. O
Filtro de Kalman é uma das técnicas mais conhecidas para a filtragem de sinais, pois fornece
um método recursivo para estimação de estados na presença de ruído, cuja estimativa é uma
função densidade de probabilidade Gaussiana com média 𝜇 e covariância Σ. No contexto de
localização, a saída do Filtro de Kalman é uma distribuição de prováveis posições ao invés de
uma única estimação (CHOSET, 2005).
O Filtro de Kalman pode ser considerado uma aplicação direta dos filtros de Bayes para
sistemas dinâmicos lineares, podendo ser separado em duas etapas distintas: predição e
correção. Na primeira, a estimativa é dada através do modelo matemático do sistema e,
posteriormente, a correção é realizada através dos dados provenientes de sensores. A incerteza
resultante na saída do filtro é menor que a dada pelo modelo ou pelos sensores, minimizando a
covariância do erro de estimação (THRUN, BURGARD e FOX, 2005). Por ser limitado a
6
sistemas dinâmicos lineares, uma extensão da teoria foi desenvolvida para sistemas discretos
não-lineares, conhecida como Filtro de Kalman Estendido.
Para estimar os estados, é necessário definir as equações que integram a dinâmica do
sistema com os dados medidos pelos sensores. O filtro baseia-se no modelo em espaço de
estados sujeito a ruído gaussiano aditivo:
𝑥𝑘 = 𝑔(𝑢𝑘, 𝑥𝑘−1) + 𝜖𝑘,
𝑧𝑘 = ℎ(𝑥𝑘) + 𝛿𝑘, (2.3)
onde 𝑘 é a amostra do tempo discreto, o vetor 𝑥𝑘 ∈ ℝ𝑛 representa os estados e o vetor 𝑢𝑘 ∈ ℝ
𝑚
a entrada do sistema. A variável 𝑧𝑘 ∈ ℝ𝑝 representa o sinal medido pelos sensores. As
incertezas do modelo são dadas por 𝜖𝑘, que possui média zero e covariância 𝑅𝑘. O ruído 𝛿𝑘
integrado a medição possui média zero e covariância 𝑄𝑘.
O Filtro de Kalman Estendido processa a cada amostra temporal 𝑘 a estimativa
Gaussiana do vetor de estados 𝑥𝑘, que possui média 𝜇𝑘 e covariância Σ𝑘. Para tratar o sistema
da Equação (2.3), faz-se uso da aproximação de Taylor de primeira ordem, ou seja, aproxima-
se a função não linear 𝑔(∙) por:
𝑔(𝑢𝑘, 𝑥𝑘−1) ≈ 𝑔(𝑢𝑘, 𝜇𝑘−1) +
𝜕𝑔(𝑢𝑘,𝜇𝑘−1)
𝜕𝜇𝑘−1⏟ =:𝐺𝑘
(𝑥𝑘−1 − 𝜇𝑘−1), (2.4)
sendo 𝐺𝑘 a Matriz Jacobiana do modelo. A mesma aproximação pode ser feita para as não-
linearidades envolvendo os sensores:
ℎ(𝑥𝑘) ≈ ℎ( �̅�𝑘) +
𝜕ℎ( �̅�𝑘)
𝜕�̅�𝑘⏟ =:𝐻𝑘
(𝑥𝑘 − �̅�𝑘). (2.5)
A Tabela 1 apresenta o algoritmo resultante do Filtro de Kalman Estendido. Nas linhas
2 e 3 é realizada a predição dos estados e da covariância através do modelo do sistema.
Posteriormente, nas linhas 4 até 6, o chamado Ganho de Kalman 𝐾𝑘 é calculado e a medição é
incorporada através do sinal 𝑧𝑘, corrigindo o valor estimado. É interessante notar que 𝐾𝑘
representa a relevância que o sinal medido através dos sensores terá na composição do sinal
filtrado. Por fim, um novo valor de covariância Σ𝑘 é calculado para a próxima interação do
filtro.
7
Tabela 1 - Algoritmo do Filtro de Kalman.
1: 𝐀𝐥𝐠𝐨𝐫𝐢𝐭𝐦𝐨 𝐅𝐢𝐥𝐭𝐫𝐨_𝐊𝐚𝐥𝐦𝐚𝐧_𝐄𝐱𝐭𝐞𝐧𝐝𝐢𝐝𝐨(𝜇𝑘−1, Σ𝑘−1, 𝑢𝑘, 𝑧𝑘)
2: 𝜇𝑘= 𝑔(𝑢𝑘, 𝜇𝑘−1)
3: Σ𝑘 = 𝐺𝑘Σ𝑘−1𝐺𝑘𝑇 + 𝑅𝑘
4: 𝐾𝑘 = Σ𝑘𝐻𝑘𝑇(𝐻𝑘Σ𝑘𝐻𝑘
𝑇 + 𝑄𝑘)−1
5: 𝜇𝑘 = 𝜇𝑘 + 𝐾𝑘(𝑧𝑘 − ℎ(𝜇𝑘))
6: Σ𝑘 = (𝐼 − 𝐾𝑘𝐻𝑘)Σ𝑘
7: return 𝜇𝑘, Σ𝑘
Fonte: THRUN, BURGARD e FOX (2005).
Para um melhor entendimento do funcionamento do Filtro de Kalman Estendido, a
Figura 2 ilustra graficamente o funcionamento do filtro. A Figura 2(a) mostra um exemplo da
representação das estimativas dos sensores e do modelo. Como os dados são representados por
uma função densidade de probabilidade gaussiana, possuem média e covariância atribuídas.
Como pode ser visto, o modelo fornece uma medida mais precisa, pois possui uma covariância
(incerteza) menor que o resultado apresentado pelos sensores. A Figura 2(b) mostra a estimativa
após a aplicação do Filtro de Kalman Estendido, onde o resultado possui uma covariância
menor que a dada pelo modelo ou pelos sensores, garantindo uma incerteza menor após a
aplicação do filtro.
Figura 2 - Funcionamento do Filtro de Kalman Estendido.
Fonte: O autor.
8
Em consequência de suas características, o Filtro de Kalman Estendido também pode
ser utilizado para a fusão de sensores. Este trabalho tem particular interesse nessa
funcionalidade, pois faz uso da visão computacional para corrigir problemas advindos da
utilização de uma IMU, fornecendo uma estimativa mais precisa.
2.3 Quatérnios
Quatérnios podem ser utilizados em diferentes áreas da matemática teórica e aplicada,
possuindo particular uso para rotações tridimensionais, pois fornecem uma alternativa aos
tradicionais ângulos de Euler, reduzindo o esforço computacional envolvido. Quatérnios podem
ser definidos como uma extensão dos números complexos e foram originalmente desenvolvidos
pelo matemático William Rowan Hamilton (HAMILTON, 1844). A história diz que enquanto
Hamilton estava andando com sua esposa pelas ruas de Dublin, teria, após um insight, gravado
nas pedras de uma ponte a equação que deu origem aos quatérnios (KUIPERS, 1999) e que
atualmente é local de peregrinação de matemáticos do mundo inteiro.
Um quatérnio pode ser definido da seguinte maneira:
𝒒 = 𝜂 + ε1𝑖 + ε2𝑗 + ε3𝑘, (2.6)
onde 𝒒 ∈ ℍ é um número hipercomplexo, 𝜂 ∈ ℝ é a parte real e 휀 = [ε1 ε2 ε3]𝑇 ∈ ℝ3 é a parte
imaginária do quatérnio. Também temos as componentes 𝑖, 𝑗 e 𝑘 que determinam a base padrão
de ortogonalidade de ℝ3 e devem satisfazer a seguinte relação:
𝑖2 = 𝑗2 = 𝑘2 = 𝑖𝑗𝑘 = −1. (2.7)
O quatérnio também pode ser representado em sua forma vetorial, que é dada por:
𝒒 → 𝑞 = [𝜂휀] ∈ ℝ4. (2.8)
Como já citado anteriormente, operações envolvendo quatérnios fornecem uma
alternativa aos Ângulos de Euler para rotações no espaço tridimensional, por isso são
largamente utilizados em diversas áreas, como, por exemplo, computação gráfica. Por conta de
sua simplicidade, elegância matemática e falta de singularidades, também são muito populares
para representação da posição e orientação de um corpo rígido (DIEBEL, 2006).
Um quatérnio 𝒒𝒓 com tamanho unitário, ou seja, ‖𝒒𝒓‖ = 1, representado por:
𝒒𝒓 → 𝑞𝑟 = [cos (
𝜃
2)
r sin (𝜃
2)
] (2.9)
pode ser utilizado para efetuar uma rotação de um ângulo 𝜃 ∈ ℝ em torno do vetor 𝑟 ∈ ℝ3.
Utilizando a Equação (2.9), podemos definir a seguinte relação:
9
𝑦 = 𝑅(𝑞𝑟)𝑥, (2.10)
onde o vetor 𝑦 ∈ ℝ3 é o resultado da rotação do vetor 𝑥 ∈ ℝ3 por um ângulo 𝜃 em torno de 𝑟.
Esta propriedade é resultado da multiplicação de 𝑅(𝑞𝑟) ∈ ℝ3×3 pelo vetor 𝑥, onde 𝑅(𝑞𝑟) é
chamada Matriz de Rotação e pode ser definida por:
𝑅(𝑞) = 𝐼3 + 2𝜂𝑆(휀) + 2𝑆2(휀), (2.11)
onde 𝐼3 é uma matriz identidade de ordem três e o operador 𝑆(∙) representa o produto cruzado
e é dado pela Equação (2.12), descrita por:
𝑆(휀) = [0 −휀3 휀2휀3 0 −휀1−휀2 휀1 0
] , ∀ 휀 = [
휀1휀2휀3] ∈ ℝ3. (2.12)
Para melhor entendimento de uma operação de rotação envolvendo quatérnios, a Figura
3 representa a rotação do vetor 𝑥 em torno do eixo de rotação 𝑟 por um ângulo 𝜃 e pode ser
vista abaixo:
Figura 3 – Representação de rotação utilizando quatérnios.
Fonte: Adaptado de (Underwater Navigation System, 2017).
As Equações (2.13) e (2.14) representam, respectivamente, a equivalência dos Ângulos
de Euler 𝛼, 𝛽 e 𝛾 a partir de 𝑞 e vice-versa, dadas por:
[
𝛼𝛽𝛾] =
[ arctan (
2(𝜂𝜀1+𝜀2𝜀3 )
1−2(𝜀12+𝜀2
2))
arcsin(2(𝜂휀2 + 휀3휀1 ))
arctan (2(𝜂𝜀3+𝜀1𝜀2 )
1−2(𝜀22+𝜀3
2))]
, (2.13)
𝑞 =
[ cos (
𝛼
2) cos (
𝛽
2) cos (
𝛾
2) − sin (
𝛼
2) sin (
𝛽
2) sin (
𝛾
2)
sin (𝛼
2) cos (
𝛽
2) cos (
𝛾
2) − cos (
𝛼
2) sin (
𝛽
2) sin (
𝛾
2)
cos (𝛼
2) sin (
𝛽
2) cos (
𝛾
2) − sin (
𝛼
2) cos (
𝛽
2) sin (
𝛾
2)
cos (𝛼
2) cos (
𝛽
2) sin (
𝛾
2) − sin (
𝛼
2) sin (
𝛽
2) cos (
𝛾
2)]
. (2.14)
10
Por fim, podemos representar as dinâmicas de posição e orientação de um corpo rígido
baseado em quatérnios pela Equação (2.15), dada por:
[
�̇��̇��̇��̇�
] =
[ 1
2[
−휀𝑇
𝜂𝐼3 + 𝑆(휀)]𝜔
𝛼𝑣
𝑎 − 𝑔 ]
, (2.15)
onde 𝑞 ∈ ℝ4 representa a orientação em quatérnios, 𝜔 ∈ ℝ3 é o vetor de velocidade angular,
𝛼 ∈ ℝ3 é o vetor de aceleração angular, 𝑝 ∈ ℝ3 é o vetor de posição linear, 𝑣 ∈ ℝ3 é o vetor
de velocidade linear, 𝑎 ∈ ℝ3 é o vetor de aceleração linear, 𝑔 é o vetor de aceleração
gravitacional (DE FARIA, 2016). No contexto desse trabalho, o modelo descrito pela Equação
(2.15) é utilizado no Filtro de Kalman Estendido para descrever a dinâmica do topo da
plataforma.
2.4 Modelos do Giroscópio e do Acelerômetro
Um giroscópio é um dispositivo capaz de medir a velocidade angular e pode ser
representado como um vetor 𝜔𝐺 ∈ ℝ3, definido a partir de 𝑂𝑆, que é o sistema de coordenadas
locais do sensor, como pode ser visto na Figura 4. É interessante notar que o sensor pode estar
orientado de forma distinta em relação ao sistema de interesse, portanto, é necessário obter um
modelo que relacione a velocidade angular 𝜔𝐺 medida pelo sensor com a velocidade angular 𝜔
da plataforma, que é referenciada em coordenadas globais 𝑂𝐼. Tendo em vista as considerações
abordadas e a teoria de quatérnios apresentada anteriormente, podemos definir as matrizes de
rotação 𝑅(𝑞𝐺) e 𝑅𝑇(𝑞), que podem ser utilizadas para relacionar 𝜔 com as medidas obtidas
pelo sensor. Então, o modelo do giroscópio pode ser representado por:
𝜔𝐺 = 𝑅(𝑞𝐺)𝑅𝑇(𝑞)𝜔 + 𝑏𝐺 + 𝛿𝐺 , (2.16)
onde 𝑅(𝑞𝐺) descreve a orientação do sensor na plataforma, 𝑅𝑇(𝑞) é utilizada para transformar
do sistema de coordenadas globais da plataforma para o sistema de coordenadas locais do
sensor. Ainda temos 𝑏𝐺 ∈ ℝ3, que é 𝑜𝑓𝑓𝑠𝑒𝑡 do sensor e representa o valor constante da
diferença entre o valor medido e o valor real e 𝛿𝐺 representa o ruído do sensor, que possuí média
zero e covariância 𝑄𝐺.
11
Figura 4 - Representação do sistema de coordenadas locais para o sensor.
Fonte: O autor.
Um acelerômetro, por outro lado, é um sensor capaz de medir as acelerações que atuam
em seus eixos e pode ser representado como um vetor 𝑎𝐴 ∈ ℝ3, definido em 𝑂𝑆, que é o sistema
de coordenadas locais do sensor. O acelerômetro mede as acelerações relativas às translações
do sistema de interesse juntamente com a aceleração da gravidade. Outro fator que deve ser
levado em consideração para descrever um modelo para o sensor, é o fato de que quando
instalado fora da origem do sistema e submetido a uma rotação, o acelerômetro também mede
as forças inerciais decorrentes dessa dinâmica (STEVEN C, RICHARD P, et al., 2008),
denominadas força de coriolis e força centrífuga, como ilustra a Figura 5.
Figura 5 - Representação das forças inerciais.
Fonte: Adaptado de (CORIOLIS FORCE, 2017).
Com isso, podemos obter o modelo do acelerômetro, dado por:
𝑎𝐴 = 𝑅(𝑞𝐴)𝑅𝑇(𝑞)((𝑎 + 𝑔) + 𝐻(𝜔, 𝛼)𝑜𝐴) + 𝑏𝐴 + 𝛿𝐴, (2.17)
onde 𝑅(𝑞𝐴) e 𝑅𝑇(𝑞) são matrizes de rotação utilizadas para orientar as acelerações do sistema
de interesse para o sistema de coordenadas locais do sensor e 𝑜𝐴 ∈ ℝ3 representa o offset do
sensor em relação origem de 𝑂𝐼. Os efeitos das forças inercias são dadas por (VANCIN, 2016):
𝐻(𝜔, 𝛼) = 𝑆(𝜔)2 + 𝑆(𝛼). (2.18)
12
Por fim, 𝑏𝐴 ∈ ℝ3 é 𝑜𝑓𝑓𝑠𝑒𝑡 de medição do sensor e 𝛿𝐴 representa o ruído integrado na medição,
que possuí média zero e covariância 𝑄𝐴.
2.5 Modelo da Câmera
Como descrito anteriormente, o Filtro de Kalman Estendido efetua um passo de correção
baseado em dados medidos por sensores para corrigir a estimativa fornecida pelo modelo. Este
trabalho considera imagens de uma câmera para efetuar a correção, onde as relações entre
pontos previamente conhecidos no espaço tridimensional levam a uma projeção nas imagens
que estão relacionadas com a posição e orientação da câmera. Como este trabalho busca
instrumentar uma câmera como sensor e fazer a validação de seu modelo, serão demostradas as
equações matemáticas do processo de formação de imagem.
Figura 6 - Representação da captura de um ponto por uma câmera.
Fonte: Adaptado de (MARIOTTINI e PRATTICHIZZO, 2005).
A Figura 6 mostra uma câmera com orientação 𝑞 e posição 𝑝, onde um ponto 𝜉𝑖 ∈ ℝ3,
referenciado nas coordenadas globais, tem sua projeção no plano da imagem dado por 𝑚𝑖 ∈
ℝ2. Baseado em (MARIOTTINI e PRATTICHIZZO, 2005), obtém-se a seguinte relação:
𝑍𝑐�̃�𝑖 = 𝐾𝐶𝑅(𝑞𝐶)𝑅𝑇(𝑞)(𝜉𝑖 − 𝑝), (2.19)
onde �̃�𝑖 = [𝑚𝑖 1]𝑇 é a posição em pixels da projeção do ponto 𝜉𝑖 no frame de imagem, 𝑅(𝑞𝐶)
e 𝑅𝑇(𝑞) são matrizes de rotação utilizadas para orientar a câmera em relação ao sistema de
coordenadas globais e 𝐾𝐶 ∈ ℝ3×3 é a matriz com os parâmetros intrínsecos, dada por:
13
𝐾𝐶 = [𝑓𝑠𝑥 𝑓𝑠𝜃 𝑜𝑥0 𝑓𝑠𝑦 𝑜𝑦0 0 1
]. (2.20)
Os termos da matriz 𝐾𝐶 são parâmetros de calibração da câmera, onde (𝑜𝑥, 𝑜𝑦) é a coordenada
em pixels do ponto principal no plano da imagem (intersecção entre o plano da imagem e o eixo
𝑧𝑐), 𝑠𝑥 e 𝑠𝑦 representam o número de pixels por unidade de distância nas coordenadas da
imagem, 𝑓 é a distância focal e 𝑓𝑠𝜃 representa a inclinação do pixel (MA, SOATTO, et al.,
2012).
Por fim, 𝜉𝑖 pode ser descrito pelas coordenadas da câmera, de acordo com a Figura 6,
onde 𝜉𝑖 = [𝑋𝑐, 𝑌𝑐, 𝑍𝑐]𝑇. O parâmetro 𝑍𝑐 normalmente é desconhecido, portanto, podemos
simplificar a Equação (2.19) aplicando o operador de produto cruzado em ambos os lados da
equação (VANCIN, 2016), pois 𝑆(�̃�𝑖)�̃�𝑖 = 0, resultando em:
0 = 𝑆(�̃�𝑖)𝐾𝐶𝑅(𝑞𝐶)𝑅𝑇(𝑞)(𝜉𝑖 − 𝑝). (2.21)
14
3 METODOLOGIA
Esta seção aborda, de maneira concisa, todos os métodos utilizados para a
instrumentação e sensoriamento da plataforma de Stewart, que possibilitam estimar a posição
e orientação do topo da plataforma através do Filtro de Kalman Estendido, bem como os
procedimentos utilizados para a validação do sistema. Diagramas são mostrados, possibilitando
ao leitor um melhor entendimento do processo como um todo. Primeiramente, é mostrada uma
visão geral do processo de aquisição de dados, bem como a integração de todos os sensores
envolvidos. Posteriormente, são mostrados os métodos utilizados para a validação dos modelos
adotados. A Figura 7 mostra a renderização da plataforma de Stewart utilizada.
Figura 7 - Plataforma de Stewart utilizada.
Fonte: O autor.
3.1 Instrumentação e Aquisição de Dados
Como já citado, o Filtro de Kalman Estendido utiliza, em seu passo de correção, dados
de um acelerômetro, um giroscópio e uma câmera, portanto, foram desenvolvidos os hardwares
e firmwares necessários para o sensoriamento e aquisição de dados da plataforma. O Diagrama
1 mostra a integração de todos os sensores. O módulo central faz o gerenciamento dos dados
obtidos do módulo da IMU, localizado no topo da plataforma, há uma taxa de amostragem pré-
definida e transmite para um computador, que efetua a aquisição e processamento da imagem
dos marcadores, finalizando o processo com o armazenamento dos dados. O módulo central
também faz a aquisição do deslocamento dos atuadores, que possibilita, através de cinemática
direta, inferir com precisão a posição e orientação do topo da plataforma de Stewart, permitindo
validar o sistema.
15
Diagrama 1 - Processo de aquisição de dados.
Fonte: O autor.
A plataforma de Stewart utilizada possui seis atuadores lineares movidos por motores
DC com sensor encoder embutido, permitindo medir o deslocamento angular do eixo do motor
e, consequentemente, o deslocamento linear do atuador. Cada atuador possui um módulo de
controle próprio, que são conectados através de um barramento de comunicação RS-485 com o
módulo central. Através de um protocolo de comunicação, o módulo central controla cada um
dos atuadores e faz a aquisição de dados dos encoders, que são utilizados para efetuar a
cinemática direta para posterior validação do sistema.
Através de um programa em linguagem C++, os dados são recebidos e armazenados em
um computador, possibilitando também um sincronismo com a aquisição das imagens. O
processamento de imagens é realizado com o uso de funções do conjunto de bibliotecas do
OpenCV. A partir dos dados da câmera, são obtidos as posições 𝑚𝑖 de cada um dos marcadores
no frame de imagem, que também são utilizados no processo de correção do Filtro de Kalman
Estendido.
3.2 Validação dos Modelos
Este trabalho busca, além de efetuar a instrumentação e sensoriamento da plataforma,
validar os modelos utilizados através dos dados de deslocamento dos atuadores lineares. Essa
validação é de grande relevância, pois dessa forma é possível garantir uma descrição fiel dos
modelos utilizados em relação ao sistema real, possibilitando a aplicação do algoritmo do Filtro
de Kalman Estendido. O Diagrama 2 ilustra o processo de validação, onde os sinais
provenientes dos módulos dos atuadores são tratados, possibilitando a simulação dos sensores
e a comparação com os valores medidos da IMU e das posições dos marcadores, obtidas pelo
processamento de imagens da câmera.
16
Diagrama 2 - Processo de validação dos modelos utilizados.
Fonte: O autor.
A cinemática direta é um processo que busca estimar posição �̅� e orientação �̅� do topo
da plataforma a partir do valor de tamanho dos atuadores lineares. Embora também seja uma
técnica que possibilite estimar posição e orientação, sua implementação é difícil, pois para um
mesmo conjunto de dados de tamanho dos atuadores lineares, são múltiplas soluções possíveis
para posição e orientação do topo. Tendo em vista as considerações abordadas, a cinemática
direta leva a algoritmos lentos e que demandam de grande esforço computacional, contudo, é
um excelente mecanismo para validação, tanto dos modelos, como do próprio Filtro de Kalman
Estendido.
A partir dos valores de �̅� e �̅� podemos estimar também todas as outras variáveis que
definem a dinâmica da plataforma, como mostra a Equação (2.15). Assim, os modelos das
Equações (2.16), (2.17) e (2.19) que descrevem o giroscópio, o acelerômetro e a câmera,
respectivamente, podem ser utilizados para simular os sensores. Por fim, os dados dos sensores
simulados podem ser comparados com os dados medidos, possibilitando validar os modelos e
garantir a descrição matemática de todo o sistema.
3.3 Filtro de Kalman Estendido
A dedução das equações e a aplicação do Filtro de Kalman Estendido não fazem parte
do escopo desse trabalho, porém tanto os modelos como os resultados obtidos em conjunto com
os pesquisadores do GACS serão apresentados, objetivando mostrar a eficiência dos modelos.
�̅�, �̅�
�̅�, �̅�
�̅�, �̅�
17
O Diagrama 3 ilustra o processo de estimativa e validação. O filtro estima posição e orientação
através da fusão dos dados da IMU e das posições dos marcadores. Como já foi demostrado,
essa mesma estimativa é viável através da cinemática direta, que embora resulte em um
processo lento e que demanda de um grande esforço computacional, possibilita validar o os
resultados obtidos através da comparação entre as estimativas de ambos os processos utilizados.
Diagrama 3 - Estimativa de posição e orientação através do Filtro de Kalman Estendido.
Fonte: O autor.
�̅�, �̅�
�̂�, �̂�
𝑒𝑟𝑟𝑜
18
4 APLICAÇÃO E RESULTADOS
Nesta seção são detalhados todos os procedimentos adotados para a aplicação da
metodologia proposta, bem como os resultados obtidos ao longo do desenvolvimento deste
trabalho. Primeiramente, são demonstrados todos métodos utilizados para a aquisição de dados
dos atuadores e da IMU, bem como as principais considerações relativas aos hardwares
desenvolvidos. Também são demonstrados os procedimentos adotados para aquisição e
processamento das imagens, utilizadas para a obtenção da posição dos marcadores. O sistema
é validado através da base teórica apresentada previamente utilizando a cinemática direta do
deslocamento dos atuadores da plataforma de Stewart, onde os modelos adotados são simulados
e comparados com os dados medidos.
4.1 Instrumentação e Aquisição de Dados
4.1.1 Módulo Central
Como descrito pelo Diagrama 1, desenvolveu-se um módulo central de processamento
responsável por efetuar a comunicação e aquisição de dados dos módulos de controle dos
atuadores e da IMU. O módulo central também é responsável por fazer a comunicação com um
computador, onde os dados são armazenados. Os principais componentes utilizados podem ser
vistos na Tabela 2.
Tabela 2 - Componentes utilizados para o módulo central.
Tipo Part Number Empresa
Microcontrolador STM32F072RBT6 STMicroelectronics
Transceptor ST485E STMicroelectronics
Regulador Chaveado MP158EN Monolithic Power Systems
Regulador Linear TLV2217 Texas Instruments
Fonte: O autor.
Para a escolha do microcontrolador, levou-se em consideração a necessidade de uma
comunicação com altas taxas de transmissão de dados. O microcontrolador utilizado possui um
núcleo ARM Cortex-M0 de 32 bits com um módulo USB integrado, tornando a comunicação
com computador rápida e eficiente. Ele também pode operar em uma frequência de até 48 𝑀𝐻𝑧,
com 128 𝐾𝑏𝑦𝑡𝑒𝑠 de memória flash e 16 𝐾𝑏𝑦𝑡𝑒𝑠 de memória SRAM, configurando ao módulo
alta capacidade de processamento. Por fim, o microcontrolador também possui suporte em
19
hardware para controle de fluxo de sinal para transceptores RS-485, que é a interface de
comunicação com os outros módulos do sistema.
Para o projeto e desenvolvimento da placa de circuito impresso, utilizou-se o software
Altium Designer, da Empresa Altium. O esquemático completo do circuito pode ser visualizado
no Apêndice C e o resultado pode ser visto renderizado na Figura 8.
Figura 8 - Placa de circuito impresso do módulo central: (a) top layer, (b) bottom layer, (c) renderização
do top, (d) renderização do bottom.
(a)
(b)
(c)
(d)
Fonte: O autor.
20
Por fim, o desenvolvimento de um projeto com média e alta complexidade demanda de
ferramentas de suporte que permitam acelerar seu desenvolvimento. Tendo em vista esse
contexto, outro fator relevante para a escolha do microcontrolador adotado é seu suporte a serial
wire debug (SWD), que acelera significativamente o desenvolvimento de qualquer firmware.
Nesse projeto foi utilizado o software µVision IDE, da empresa Keil, tanto para
desenvolvimento do firmware para o módulo central, como para o módulo da IMU, que será
detalhando adiante.
4.1.2 Atuadores
A medição do deslocamento linear dos atuadores é de grande relevância para o trabalho
proposto, pois através de cinemática direta é possível obter a posição e orientação do topo da
plataforma para validar os modelos adotados e os resultados encontrados com a aplicação do
Filtro de Kalman Estendido. A plataforma de Stewart utilizada possui controladores próprios
para cada atuador, que já haviam sido desenvolvidos, conectados através de uma rede RS-485,
como mostra a Figura 9. Cada módulo pode retornar a posição dos atuadores baseado na leitura
dos encoders presentes em cada um dos motores DC.
Figura 9 - Rede RS-485 para aquisição e controle dos atuadores.
Fonte: O autor.
RS-485 é um padrão de hardware utilizado para transmissão de informação a longas
distâncias em ambientes ruidosos. A principal característica dessa topologia de implementação
é o fato de que a informação é transmitida através de um par diferencial, onde o estado lógico
se dá pela diferença de potencial, positiva ou negativa. Como consequência, a RS-485 se torna
uma excelente escolha para ser utilizada em ambientes com altos níveis de ruído, pois ele é
induzindo no meio de transmissão, não alterando a diferença de tensão no par.
Para o controle e aquisição dos dados de todos os módulos dos atuadores, desenvolveu-
se um protocolo de comunicação próprio para a plataforma de Stewart, que pode ser utilizado
21
em conjunto com o módulo central para trabalhos futuros, como, por exemplo, efetuar o
controle da plataforma. A Figura 10 mostra o frame de comunicação, onde cada módulo
“escravo” pode acessar e ser acessado pelo “mestre” através de um endereço próprio. Com o
protocolo desenvolvido, é possível controlar cada atuador separadamente e fazer a aquisição do
valor dos encoders. Em decorrência do alto nível de ruído proveniente dos motores DC,
utilizou-se o método de detecção de erros conhecido como CRC (Cyclic Redundancy Check),
garantindo robustez e confiabilidade para a comunicação. Outro fator a ser levado em
consideração é que o protocolo possui um pacote de dados variável, permitindo uma troca de
dados bastante flexível.
Figura 10 - Protocolo de comunicação.
Fonte: O autor.
4.1.3 Sensores Inerciais
Uma unidade de sensores inerciais é um dispositivo eletrônico capaz de medir
aceleração linear e velocidade angular através do uso de acelerômetros e giroscópios. Tais
dispositivos fornecem informações valiosas para descrever a dinâmica de um corpo rígido.
Integrando a aceleração linear podemos inferir a velocidade linear de um corpo e de forma
similar, integrando a velocidade linear podemos determinar sua posição linear. O mesmo pode
ser feito para o giroscópio, onde a posição angular também pode ser inferida com a integração
da velocidade angular. Pelos motivos citados, esses sensores são largamente utilizados em
diversas aplicações, como, por exemplo, estimar os ângulos necessários para o controle de um
veículo aéreo não tripulado.
Para uma correta estimativa, o processo de integração dos dados provenientes desses
sensores inerciais requer medidas com alta precisão, pois erros numéricos são integrados e
levam ao processo conhecido como drift. Por exemplo, sensores comerciais comuns possuem
desvios em relação ao valor real de medição, conhecidos como offset. A contínua integração
desse offset faz o sinal se deslocar continuamente em relação ao valor esperado. Portando,
22
embora sensores inercias sejam uma boa alternativa para diversas aplicações, constantemente
necessitam da medição de outros sensores para uma correta estimativa.
Outra grande fonte de problemas envolvendo unidades inerciais é a escolha de sensores
pouco precisos e que retornam medições com altos níveis de ruído. Para o desenvolvimento
desse trabalho, optou-se pelo sensor LSM6DS3H, da empresa STMicroelectronics, que possui
um acelerômetro e um giroscópio, cada um com medição nos 3 eixos. Para uma escolha
apropriada, levou-se em consideração as capacidades de medição de ambos os sensores. O
acelerômetro possui fundo de escala de até ±16 𝑔, ou seja, mede acelerações de até 16 vezes a
aceleração da gravidade, enquanto o giroscópio possui fundo de escala de ±2000 𝑑𝑝𝑠. Outro
fator determinante para a escolha do sensor é sua taxa de amostragem e ambos os sensores
trabalham com altas taxas de até 3,33 𝑘𝐻𝑧. Os principais componentes utilizados no projeto do
módulo para instrumentação da IMU podem ser vistos na Tabela 3.
Tabela 3 - Componentes utilizados para o módulo da IMU.
Tipo Part Number Empresa
Sensor LSM6DS3H STMicroelectronics
Microcontrolador STM32F030F4P6 STMicroelectronics
Transceptor ST485E STMicroelectronics
Regulador Chaveado MP158EN Monolithic Power Systems
Regulador Linear TLV2217 Texas Instruments
Fonte: O autor.
O microcontrolador utilizado possui um núcleo ARM Cortex-M0 de 32 bits e pode
operar em uma frequência de até 48 𝑀𝐻𝑧, com 14 𝐾𝑏𝑦𝑡𝑒𝑠 de memória flash e 4 𝐾𝑏𝑦𝑡𝑒𝑠 de
memória SRAM. A comunicação com o módulo central é feita através de comunicação serial
RS-485, portanto, da mesma forma que o módulo central, esse microcontrolador também possui
suporte em hardware para controle de fluxo de sinal para transceptores RS-485.
Para o projeto e desenvolvimento da placa de circuito impresso, utilizou-se o software
Altium Designer. O esquemático completo pode ser visto no Apêndice C e o resultado final da
placa de circuito impresso pode ser visto na Figura 11.
23
Figura 11 - Placa de circuito impresso do módulo da IMU: (a) top layer, (b) bottom layer, (c) renderização
do top, (d) renderização do bottom.
(a)
(b)
(c)
(d)
Fonte: O autor.
4.1.4 Processamento de Imagem e Aquisição dos Marcadores
A visão computacional é uma área há muito explorada na engenharia, contudo, a
aquisição, processamento e análise de imagens são processos complexos e demandam de grande
esforço computacional. O OpenCV é um conjunto de bibliotecas open source voltado para
processamento de imagens, possuindo mais de 2500 algoritmos otimizados que permitem
abstrair o baixo nível, acelerando significativamente o desenvolvimento de um projeto. Esses
algoritmos podem ser usados para reconhecimento de faces e ações humanas, identificação de
objetos, extração de modelos 3D, aplicação de filtros, etc. Por suportar diversas linguagens de
24
programação, como C++, Python e MATLAB, se tornou a escolha mais adequada para o
presente trabalho.
Tendo em vista a aquisição de imagens com alta qualidade, utilizou-se uma webcam
Logitech C270, com resolução HD, posicionada no topo da plataforma, como mostra a Figura
12(a). Os marcadores foram posicionados na base da plataforma e podem ser vistos na Figura
12(b). Como vemos, três marcadores foram posicionados no mesmo plano e um deles em um
plano diferente, pois dessa forma a posição de um marcador em relação ao outro na imagem
resulta em diferenças mais significativas a medida que a plataforma se move, sendo assim, uma
estimativa mais precisa sobre a posição e orientação do topo da plataforma pode ser obtida.
Figura 12 – Processamento de imagem: (a) posicionamento da câmera, (b) posicionamento dos
marcadores.
(a)
(b)
Fonte: O autor.
Para o correto funcionamento do Filtro de Kalman Estendido, a sincronização da
aquisição da IMU com a captura da imagem dos marcadores é de vital importância. Para
garantir a sincronização, utilizou-se um programa em linguagem C++, desenvolvido no
software Visual Studio, da empresa Microsoft, onde os dados são obtidos do módulo central, a
uma taxa de amostragem específica, via comunicação serial, dando início ao processo de
aquisição e processamento de imagem. O processo pode ser visualizado no Fluxograma 1, onde
são mostrados os principais procedimentos para a aquisição de um marcador e as principais
funções utilizadas encontram-se listadas e detalhadas no Apêndice A.
Após a captura, a imagem deve ser convertida do padrão RGB (do inglês Red, Green e
Blue) para HSV (do inglês Hue, Saturation e Value). O padrão RGB é largamente adotado para
captura e a armazenamento de imagens, pois através da combinação de três cores primárias
(vermelho, verde e azul) em diferentes intensidades é possível representar todas as outras cores
25
que um olho humano é capaz de perceber. Contudo, a representação das cores no modelo RGB
não é intuitiva, portanto, a computação gráfica muitas vezes adota o padrão HSV, onde as cores
são representadas em função de sua tonalidade, saturação e brilho, se assemelhando mais com
percepção humana para representação do espectro de cores.
Fluxograma 1 - Processo de aquisição dos marcadores.
Fonte: O autor.
Após a conversão, o marcador desejado pode ser obtido através da escolha de uma faixa
de tonalidade, saturação e brilho permitida. Para ilustrar esse processo, considere as imagens
da Figura 13, onde a imagem capturada da Figura 13(a) é convertida para a imagem binária da
Figura 13(b) de acordo com a faixa de interesse escolhida, ou seja, de acordo com o marcador
desejado, que neste caso é o marcador de cor azul. Após esse procedimento, a detecção de
contorno pode ser realizada, como mostra Figura 13(c). Se a imagem possuir contornos, ou seja,
se um marcador está no campo de visão da câmera, é possível então obter a coordenada do
marcador através das propriedades de momentos invariantes da imagem.
Da mecânica fundamental, o momento de inercia de área descreve matematicamente a
distribuição de matéria em torno de um eixo ou ponto arbitrário. De forma semelhante, o plano
de irradiação de uma imagem binária, denotado por 𝑓(𝑥, 𝑦), pode ser descrito em função de
seus momentos invariantes (TEAGUE, 1980), onde:
𝑀00 = ∑ ∑ 𝑓(𝑥, 𝑦)𝑦𝑥 , (3.01)
26
é o momento de ordem zero e representa a área da imagem. Os momentos de primeira ordem
são dados por:
𝑀10 = ∑ ∑ 𝑥𝑓(𝑥, 𝑦)𝑦𝑥 , (3.02)
𝑀01 = ∑ ∑ 𝑦𝑓(𝑥, 𝑦)𝑦𝑥 . (3.03)
Com isso, podemos encontrar o centroide da imagem (�̅�, �̅�), onde �̅� = 𝑀10/𝑀00 e �̅� =
𝑀01/𝑀00, que no contexto desse trabalho é coordenada do marcador. A Figura 13(d) mostra o
resultado do processo descrito, onde a coordenada 𝑚𝑖 do marcador é localizada, finalizando o
processamento da imagem. Por fim, os dados dos encoders, da IMU e das coordenadas de todos
os marcadores são armazenados para serem utilizados na aplicação do Filtro de Kalman
Estendido e na validação dos modelos utilizados.
Figura 13 - Processamento de imagem através do OpenCV: (a) imagem capturada, (b) threshold da
imagem, (c) detecção de contorno, (d) posição do marcador.
(a)
(b)
(c)
(d)
Fonte: O autor.
𝒎𝑖
27
4.2 Validação dos Modelos
4.2.1 Estimativa da Posição e Orientação através da Cinemática Direta
A análise cinemática da plataforma de Stewart consiste no estudo da relação entre a
posição e orientação do topo da plataforma com o valor de tamanho ou deslocamento dos
atuadores lineares. Essa relação é classificada como inversa ou direta. A primeira consiste em
encontrar uma solução para o deslocamento dos atuadores em função da posição e orientação
desejadas para o topo da plataforma, enquanto a segunda busca encontrar uma relação para
posição e orientação do topo a partir do deslocamento dos atuadores.
A cinemática inversa pode ser solucionada a partir de uma abordagem da geometria da
estrutura e leva a um único resultado, contudo, a cinemática direta requer uma abordagem
diferente, levando a múltiplas soluções. Em (CARDONA, 2015), a plataforma é modelada em
função das restrições de movimento para cada uma das partes móveis através de uma série de
equações que definem essas restrições e então métodos numéricos são utilizados para encontrar
a solução para a cinemática direta. Este trabalho considera o uso de métodos matemáticos para
minimizar uma função de custo 𝐽 do erro do valor medido em relação ao valor estimado para o
tamanho dos atuadores. O Fluxograma 2 ilustra o processo de minimização para uma
determinada amostra 𝑘 do valor medido 𝐿𝑚𝑒𝑑𝑖𝑑𝑜𝑖 de tamanho dos atuadores com 𝑖 = (1,… ,6).
Fluxograma 2 - Processo de minimização da função de custo através da função fminsearch do MATLAB.
Fonte: O autor.
Para realizar a minimização, utilizou-se a função fminsearch do software MATLAB,
que pode ser utilizada para encontrar um valor mínimo para uma função multivariável a partir
𝑝𝑥, 𝑝𝑦, 𝑝𝑧 , 𝛼, 𝛽, 𝛾
𝐵𝑃, 𝑆𝑃, 𝐿𝑒𝑠𝑡𝑖𝑚𝑎𝑑𝑜
𝐿𝑚𝑒𝑑𝑖𝑑𝑜 − 𝐿𝑒𝑠𝑡𝑖𝑚𝑎𝑑𝑜 argmin 𝐽 < Ε
𝑝𝑜𝑠𝑖çã𝑜 = [𝑝𝑥, 𝑝𝑦, 𝑝𝑧]
𝑜𝑟𝑖𝑒𝑛𝑡𝑎çã𝑜 = [𝛼, 𝛽, 𝛾]
28
de um valor inicial. Neste contexto, valores iniciais de posição (𝑝𝑥, 𝑝𝑦 e 𝑝𝑧) e orientação (𝛼, 𝛽
e 𝛾) são utilizados para estimar o valor dos atuadores. Para isso, são utilizadas as Equações
(2.1) e (2.2) para encontrar os vetores 𝐵𝑖 e 𝑇𝑖 que definem as juntas da plataforma em seus
respectivos sistemas de coordenadas locais. Então, a teoria de quatérnios pode ser utilizada para
rotacionar e transladar cada uma das juntas para o sistema de coordenadas globais:
𝐵𝑃𝑖 = 𝐵𝑖𝑅(𝑞𝐵) + [𝑝𝑥 𝑝𝑦 0]
𝑇,
𝑇𝑃𝑖 = 𝑇𝑖𝑅(𝑞𝑇) + [𝑝𝑥 𝑝𝑦 𝑝𝑧]𝑇,
(4.01)
onde 𝑞𝐵 e 𝑞𝑇 são quatérnios utilizados para rotacionar cada uma das juntas da plataforma e
podem ser obtidos a partir da Equação (2.14), que relaciona os ângulos de Euler com o quatérnio
equivalente.
É interessante notar que os ângulos 𝛼, 𝛽 e 𝛾 são utilizados para rotacionar apenas o topo
da plataforma, pois a base permanece fixa ao longo do tempo. A Figura 14 mostra o resultado
da simulação para a plataforma em seu estado inicial.
Figura 14 - Simulação da plataforma de Stewart, onde 𝒑𝒙 = 𝟎. 𝟕𝟎, 𝒑𝒚 = 𝟎. 𝟓𝟎, 𝒑𝒛 = 𝟎. 𝟓𝟖, 𝜶 = 𝟎°, 𝜷 = 𝟎°
e 𝜸 = 𝟎°.
Fonte: O autor.
Dessa forma, podemos encontrar o valor estimado de tamanho dos atuadores, onde:
𝐿𝑒𝑠𝑡𝑖𝑚𝑎𝑑𝑜𝑖 = √(𝐵𝑃𝑖 − 𝑇𝑃𝑖)𝑇(𝐵𝑃𝑖 − 𝑇𝑃𝑖).
(4.02)
Com isso, temos:
29
𝐽 =∑(𝐿𝑚𝑒𝑑𝑖𝑑𝑜𝑖 − 𝐿𝑒𝑠𝑡𝑖𝑚𝑎𝑑𝑜𝑖)2.
6
𝑖=1
(4.03)
O algoritmo da função fminsearch estima a orientação e posição a partir de interações,
onde os valores de 𝑝𝑥, 𝑝𝑦, 𝑝𝑧, 𝛼, 𝛽 e 𝛾 são modificados até a condição dada pelo Fluxograma
2 ser estabelecida, onde Ε é o mínimo valor admitido para 𝐽. Por fim, os dados de posição e
orientação estimados são armazenados, sendo que para o último é necessário efetuar uma
conversão dos ângulos de Euler encontrados para quatérnios, que serão utilizados para a
simulação dos sensores.
Por fim, para a simulação dos sensores, a plataforma foi programada para efetuar
movimentos que possibilitassem uma dinâmica capaz de estimular todos os sensores. O
resultado do deslocamento dos atuadores e da estimativa para a posição e orientação do topo da
plataforma dada pela cinemática direta pode ser visto na Figura 15.
Figura 15 - Cinemática direta: (acima) deslocamento dos atuadores ao longo do tempo, (inferior esquerda)
estimativa da posição do topo, (inferior direita) estimativa da orientação do topo.
Fonte: O autor.
30
4.2.2 Simulação dos Sensores
Para simular os sensores, todos os processos descritos anteriormente foram considerados
e o pós-processamento dos dados foi realizado no software MATLAB. Para uma melhor
compreensão, as etapas executadas podem ser separadas da seguinte maneira:
1. Programação da plataforma através do módulo central para execução de movimentos
capazes de excitar todos os sensores;
2. Aquisição dos dados de deslocamento dos atuadores e da IMU a taxas de amostragem
𝐹𝑎𝑐𝑡 e 𝐹𝑖𝑚𝑢, respectivamente;
3. Aquisição da posição dos marcadores através do processamento de imagens dos dados
da câmera a uma taxa de amostragem 𝐹𝑐𝑎𝑚;
5. Armazenamento dos dados de todos os sensores;
6. Obtenção da posição estimada �̅� e orientação estimada �̅� através da cinemática direta
dos dados de deslocamento dos atuadores;
7. Obtenção da velocidade angular estimada �̅�, aceleração angular estimada �̅�,
velocidade linear estimada �̅� e aceleração linear estimada �̅� através da Equação (2.15);
8. Simulação dos sensores com o uso das Equações (2.16), (2.17) e (2.19);
Em decorrência do fato que a câmera utilizada possui limitação de apenas 24 quadros
por segundo, sua taxa de amostragem foi reduzida em relação a taxa de amostragem dos outros
sensores para comportar essa limitação. Os valores utilizados podem ser vistos na Tabela 4.
Tabela 4 - Taxas de amostragem utilizadas.
Tipo Símbolo Valor [𝐻𝑧]
Atuadores 𝐹𝑎𝑐𝑡 104
IMU 𝐹𝑖𝑚𝑢 104
Câmera 𝐹𝑐𝑎𝑚 104/5
Fonte: O autor.
Por fim, as Figuras 16, 17 e 18 mostram os resultados da simulação dos sensores e a
comparação com os valores medidos. Como pode ser visto, os sensores giroscópio e
acelerômetro possuem uma dinâmica com alto grau de similaridade, diferindo apenas no nível
de ruído agregado. A câmera também apresenta alto grau de similaridade, porém com baixo
nível de ruído, pois é uma característica desse sensor. A análise dos resultados mostra que que
os modelos representam uma descrição fiel dos sensores, provando que o ambiente de
simulação condiz matematicamente com o sistema real.
31
Figura 16 - Simulação do sensor giroscópio e comparação com os dados medidos.
Fonte: O autor.
Figura 17 - Simulação do sensor acelerômetro e comparação com os dados medidos.
Fonte: O autor.
32
Figura 18 - Simulação da câmera e comparação com os dados medidos.
Fonte: O autor.
4.3 Filtro de Kalman Estendido
A aplicação do Filtro de Kalman Estendido foi realizada em conjunto com os
pesquisadores do GACS utilizando o software MATLAB e o algoritmo apresentado na Tabela
1. As equações utilizadas no filtro encontram-se no Apêndice B. As estimativas apresentadas
aqui utilizam os dados dos sensores aplicados para a validação dos modelos, onde o tempo de
amostragem considerado é 𝑇𝑠 = (1/104) 𝑠. As comparações são realizadas utilizando as
estimativas feitas através da cinemática direta, possibilitando o cálculo dos erros de estimação.
Os valores iniciais dos estados 𝑞, 𝜔, 𝛼, 𝑝, 𝑣, 𝑎, 𝑏𝐺 e 𝑏𝐴 necessitam ser inicializados na
aplicação do filtro. Para os resultados da estimativa da Figura 19, os estados foram inicializados
com os valores conhecidos, pois o sistema parte de uma posição inicial de referência. Como
pode ser observado, o filtro faz a estimativa de posição (�̂�𝑥, �̂�𝑦 e �̂�𝑧) e orientação (�̂�, �̂� e 𝛾),
onde a dinâmica é estimada com grande precisão. Os erros obtidos podem ser visualizados nos
gráficos inferiores da mesma figura.
Por fim, a Figura 20 mostra os resultados obtidos quando o sistema parte de uma posição
inicial totalmente desconhecida, objetivando demostrar uma aplicação prática. Como pode ser
visto, apesar das condições iniciais dos estados serem desconhecidas, filtro converge
33
rapidamente e passa a estimar corretamente a dinâmica do sistema, onde o erro converge a zero
à medida que o tempo transcorre.
Figura 19 - Estimativa de posição e orientação através do Filtro de Kalman Estendido com posição inicial
conhecida.
Fonte: O autor.
Figura 20 - Estimativa de posição e orientação através do Filtro de Kalman Estendido com posição inicial
desconhecida.
Fonte: O autor.
34
5 CONCLUSÃO
Projetos na área de pesquisa e desenvolvimento são essenciais para a constante inovação
tecnológica da qual nossa sociedade demanda. Novas tecnologias são cada vez mais exploradas,
atingindo domínios distintos para os quais inicialmente haviam sido desenvolvidas. Dentro
desse contexto, o desenvolvimento desse trabalho foi de grande relevância para o aluno,
proporcionando um aperfeiçoamento de suas capacidades, tanto técnicas, através de
conhecimentos fundamentais da Engenharia Elétrica, como teóricas, com o estudo de temas que
não são abordados durante a graduação.
Neste trabalho foram desenvolvidos hardwares e firmwares necessários para a
instrumentação e sensoriamento de uma plataforma de Stewart, com foco na aplicação de um
algoritmo capaz de estimar a posição e orientação do topo da plataforma. Para a estimativa,
considerou-se o uso da fusão de uma IMU com uma câmera através de um Filtro de Kalman
Estendido baseado na representação por quatérnios. Os principais conceitos relativos ao filtro
foram abordados, possibilitando um entendimento do processo e também a base teórica
necessária para validar os modelos dentro das finalidades consideradas.
Na aplicação da metodologia proposta, foram demostrados os principais pontos levados
em consideração para o projeto dos hardwares desenvolvidos. As ferramentas necessárias para
efetuar o processamento de imagens foram detalhadas, possibilitando que este documento possa
ser utilizado como ponto de partida para trabalhos que possam vir a utilizar a fusão de uma
câmera para a correção de outros sensores. Um método para o cálculo da cinemática direta para
um sistema do tipo plataforma de Stewart foi apresentado possibilitando a validação dos
modelos através da simulação dos sensores e da comparação com os dados medidos, garantindo
assim uma descrição matemática do sistema utilizado. Por fim, os resultados da aplicação do
filtro foram apresentados objetivando validar o sistema como um todo.
Este trabalho considerou apenas a validação do algoritmo capaz de estimar a posição e
orientação do topo da plataforma de Stewart, abrindo diversas possibilidades para trabalhos
futuros. A estimativa dada pelo filtro viabiliza, por exemplo, um controle com feedback da
plataforma. Para isso, a implementação do algoritmo do Filtro de Kalman Estendido em tempo
real é de vital importância e pode ser explorada, tanto a nível de graduação, como pós-
graduação. Por ser um algoritmo genérico de estimativa de posição e orientação para sistemas
6-DOF, torna-se uma ferramenta que pode de ser utilizada em diversas áreas.
35
6 APÊNCIDES
6.1 Apêndice A
Aqui são apresentadas as principais funções utilizadas no processamento de imagens
para a obtenção da posição dos marcadores. As funções fazem parte do conjunto de bibliotecas
do OpenCV e são detalhas em função dos parâmetros utilizados durante o desenvolvimento
desse trabalho e são referenciadas em (BRADSKI e KAEHLER, 2008).
1. cv::cvtColor (imgRGB, imgHSV, COLOR_BGR2HSV);
Está função é usada para converter de um padrão de representação para outro. O
parâmetro de entrada da função é o vetor imgRGB da imagem capturada, que é convertido do
padrão HSV para RGB e armazenado em imgHSV. O padrão de conversão é dado por
COLOR_BGR2HSV, que faz parte dos códigos de conversão dessa função.
2. cv::inRange (imgHSV, Scalar(lowBoundsHue, lowBoundsSat, lowBoundsVal),
Scalar(upBoundsHue, upBoundsSat, upBoundsVal), imgTHR);
Está função avalia os elementos de um vetor de entrada imgHSV e compara para definir
se fazem parte de um intervalo determinado pelos parâmetros que definem esses limites
(segundo e terceiro parâmetros). O parâmetro de saída imgTHR é um vetor binário, onde os
elementos que fazem parte dos limites recebem valor ‘1’; caso contrário recebem valor ‘0’.
3. cv:: findContours (imgTHR, contours, mode, method);
Está função retorna os contornos de uma imagem binária imgTHR e armazena em um
vetor de ponteiros contours baseado em um modo mode e um método method. Com mode =
CV_RETR_CCOMP, os contornos são organizados em dois níveis de hierarquia (um
contendo os limites externos e o outro os limites internos). Por fim, method define o algoritmo
de aproximação.
4. moments = cv::moments(contour);
Está função calcula todos os momentos até terceira ordem de um polígono, neste caso
um dos contornos contour do vetor de contornos contours. Os momentos das Equações (3.01),
(3.02) e (3.03) podem ser obtidos pelos parâmetros de saída moments.m00, moments.m10,
moments.m01, respectivamente.
36
6.2 Apêndice B
Aqui são apresentados os modelos utilizados no algoritmo do Filtro de Kalman
Estendido baseados na teoria abordada previamente. Da mesma forma que o filtro pode ser
divido em duas etapas, os modelos também são apresentados dessa maneira, de acordo com as
etapas de predição e correção.
A. Predição
Para representar o sistema é necessário descrever sua dinâmica em função dos termos
apresentados na Equação (2.15). Considere o vetor de estados 𝑥 ∈ ℝ25 que representa essa
dinâmica e os vetores com os valores de offset dos sensores inerciais:
𝑥 =
[ 𝑞𝜔𝛼𝑝𝑣𝑎𝑏𝐴𝑏𝐺]
. (6.01)
Com isso o sistema pode ser representado em função de suas derivadas:
�̇� = 𝑔(𝑥) =
[ 𝐹(𝜔)𝑞𝛼03𝑣𝑎03×103×103×1 ]
=
[ 𝐺(𝑞)𝜔𝛼03𝑣𝑎03×103×103×1 ]
, (6.02)
onde a derivada do quatérnio é representada em função de 𝐹(𝜔) ∈ ℝ4×4 e 𝐺(𝑞) ∈ ℝ3×4, dados
por:
𝐹(𝜔) =1
2[0 −𝜔𝑇
𝜔 −𝑆(𝜔)] e 𝐺(𝑞) =
1
2[
−휀𝑇
𝜂𝐼3 + 𝑆(휀)]. (6.03)
O modelo contínuo pode ser discretizado baseado no método de Euler Forward, onde
𝑇 é período de amostragem:
�̇� =𝑥𝑘+1 − 𝑥𝑘
𝑇𝑠. (6.04)
Da Equação (2.4), podemos obter a Matriz Jacobiana 𝐺𝑘 ∈ ℝ25𝑥25:
𝐺𝑘(𝑥𝑘) = 𝐼25 + 𝑇𝑠 𝑑𝑖𝑎𝑔{Φ(𝑥𝑘),Ψ, 09×6}, (6.05)
onde 𝐼25 é uma matriz identidade de ordem 25 e:
37
Φ(𝑥𝑘) = [𝐹(𝜔𝑘) 𝐺(𝑞𝑘) 04×303×4 03×3 𝐼303×4 03×3 03×3
], Ψ = [
03×3 𝐼3 03×303×3 03×3 𝐼303×3 03×3 03×3
]. (6.06)
Por fim a matriz de covariâncias 𝑅𝑘 pode ser representada por:
𝑅𝑘 = 𝑇𝑠2 𝑑𝑖𝑎𝑔{𝑄𝑅,𝑞 , 𝑄𝑅,𝜔, 𝑄𝑅,𝛼, 𝑄𝑅,𝑝, 𝑄𝑅,𝑣, 𝑄𝑅,𝑎, 𝑄𝑅,𝑏𝐺 , 𝑄𝑅,𝑏𝐴}, (6.07)
onde 𝑄𝑅,(.) representa a covariância considerada para cada estado do modelo.
B. Correção
O Filtro de Kalman Estendido efetua o passo de correção baseado em um giroscópio,
um acelerômetro e uma câmera. O vetor 𝑧 ∈ ℝ12 que representa os sensores pode ser descritor
por,
𝑧 = [
𝜔𝐺𝑎𝐴
02𝑁×1 ], (6.08)
onde 𝑁 é o número de marcadores existentes e o modelo não-linear de saída é:
ℎ(𝑥) =
[
𝑅(𝑞𝐺)𝑅𝑇(𝑞)𝜔 + 𝑏𝐺
𝑅(𝑞𝐴)𝑅𝑇(𝑞)((𝑎 + 𝑔) + 𝐻(𝜔, 𝛼)𝑜𝐴) + 𝑏𝐴
𝐶𝐶 𝑆(�̃�1)𝐾𝐶𝑅(𝑞𝐶)𝑅𝑇(𝑞)(𝜉1 − 𝑝)
⋮𝐶𝐶 𝑆(�̃�𝑁)𝐾𝐶𝑅(𝑞𝐶)𝑅
𝑇(𝑞)(𝜉𝑁 − 𝑝) ]
, (6.09)
onde 𝐶𝐶 é uma matriz auxiliar usada para converter o vetor tridimensional para um vetor
bidimensional, dada por:
𝐶 = [1 0 00 1 0
]. (6.10)
A matriz de covariâncias 𝑄𝑘 da medição dos sensores é:
𝑄𝑘 = 𝑑𝑖𝑎𝑔{𝑄𝑄,𝜔𝐺 , 𝑄𝑄,𝑎𝐴 , 𝑄𝑄,𝐶1 , … , 𝑄𝑄,𝐶𝑁}, (6.11)
onde 𝑄𝑄,(.) representa a covariância considerada para cada sensor.
A Matriz Jacobiana 𝐻𝑘 ∈ ℝ12×25 das derivadas parciais de ℎ(𝑥𝑘) é dada por:
𝐻𝑘(𝑥𝑘) = [Γ𝑘(𝑥𝑘) Ξ𝑘(𝑥𝑘) Π𝑘(𝑥𝑘) Ω𝑘(𝑥𝑘)], (6.12)
onde:
Γ𝑘(𝑥𝑘) =
[
𝑅(𝑞𝐺)𝐽(𝑞𝑘, 𝜔)
𝑅(𝑞𝐴)𝐽(𝑞𝑘, 𝑎𝑘 − 𝑔)
𝐶𝐶 𝑆(�̃�1𝑘)𝐾𝐶𝑅(𝑞𝐶)𝐽(𝑞𝑘, (𝜉1 − 𝑝𝑘))
⋮𝐶𝐶 𝑆(�̃�𝑁𝑘
)𝐾𝐶𝑅(𝑞𝐶)𝐽(𝑞𝑘, (𝜉𝑁 − 𝑝𝑘))]
, (6.13)
38
Ξ𝑘(𝑥𝑘) =
[
𝑅(𝑞𝐺)𝑅𝑇(𝑞𝑘) 03×3
𝑅(𝑞𝐺)𝑅(𝑞𝑘)𝑇𝑊(𝜔𝑘, 𝑜𝐴) −𝑅(𝑞𝐴)𝑅(𝑞𝑘)
𝑇𝑆(𝑜𝐴)02×3 02×3⋮ ⋮
02×3 02×3 ]
, (6.14)
Π𝑘(𝑥𝑘) =
[
03×303×3
−𝐶𝐶 𝑆(�̃�1𝑘)𝐾𝐶𝑅(𝑞𝐶)𝑅(𝑞𝑘)𝑇
⋮−𝐶𝐶 𝑆(�̃�𝑁𝑘
)𝐾𝐶𝑅(𝑞𝐶)𝑅(𝑞𝑘)𝑇]
, (6.15)
Ω𝑘(𝑥𝑘) =
[ 03×3 03×3 𝐼3 03×303×3 𝑅(𝑞𝐴)𝑅
𝑇(𝑞𝑘) 03×3 𝐼302×3 02×3 02×3 02×3⋮ ⋮ ⋮ ⋮
02×3 02×3 02×3 02×3]
. (6.16)
As derivadas parciais são dadas por:
𝐽(𝑞, 𝑢) ≔
𝜕𝑅(𝑞)𝑢
𝜕𝑞=𝜕(𝐼3 − 2𝜂𝑆(휀) + 2𝑆
2(휀))𝑢
𝜕 [𝜂휀]
= 2[−𝑆(휀)𝑢 𝑆(𝑢)𝜂 +𝑊(휀, 𝑢)] ∀ 𝑢 ∈ ℝ3,
(6.17)
onde:
𝜕𝑆(𝑦)𝑢
𝜕𝑦= −𝑆(𝑢) ∀ 𝑦, 𝑢 ∈ ℝ3 (6.18)
e
𝑊(𝑦, 𝑢) ≔𝜕𝑆2(𝑦)𝑢
𝜕𝑦= 𝑦𝑢𝑇 − 2𝑢𝑦𝑇 + 𝑦𝑇𝑢𝐼3 ∀ 𝑦, 𝑢 ∈ ℝ
3. (6.19)
Por fim, a estimativa do quatérnio de orientação 𝑞 deve ser normalizada depois de ambos
os passos de predição e correção do filtro (MARKLEY e CRASSIDIS, 2014), onde:
�̅� =𝑞
||𝑞|| (6.20)
6.3 Apêndice C
Aqui são apresentados os esquemáticos resultantes dos projetos do módulo central e do
módulo da IMU, respectivamente.
42
7 REFERÊNCIAS
BAEK, J. et al. Visualizing Quaternion Multiplication. IEEE Access, 2017.
BRADSKI, G.; KAEHLER, A. Learning OpenCV: Computer vision with the OpenCV
library. [S.l.]: "O'Reilly Media, Inc.", 2008.
CARDONA, M. A new approach for the forward kinematics of general stewart-gough
platforms. Central American and Panama Convention (CONCAPAN XXXV), 2015 IEEE
Thirty Fifth, p. 1-6, 2015.
CHOSET, H. Principles of robot motion: theory, algorithms, and implementation.
[S.l.]: MIT press, 2005.
CORIOLIS FORCE. HyperPhysics, 2017. Disponivel em: <http://hyperphysics.phy-
astr.gsu.edu/hbase/corf.html>. Acesso em: 5 Novembro 2017.
DE FARIA, P. F. Quaternion-based dynamic control of a 6-DOF Stewart Platform for
periodic disturbance rejection. Pontifícia Universidade Católica do Rio Grande do Sul,
2016.
DIEBEL, J. Representing attitude: Euler angles, unit quaternions, and rotation vectors,
v. 58, p. 1-35, 2006.
HAMILTON, W. R. Ii. on quaternions; or on a new system of imaginaries in algebra.
Philosophical Magazine Series 3, v. 25, p. 10-13, 1844.
KUIPERS, J. B. Quaternions and rotation sequences. [S.l.]: Princeton university
press, v. 66, 1999.
KUMRA, S.; SAXENA, R.; MEHTA, S. Design and development of 6-DOF robotic
arm controlled by Man Machine Interface. Computational Intelligence & Computing
Research (ICCIC), 2012 IEEE International Conference on, p. 1-5, 2012.
MA, Y. et al. An invitation to 3-d vision: from images to geometric models. Springer
Science \& Business Media, v. 26, 2012.
MARIOTTINI, G. L.; PRATTICHIZZO, D. EGT for multiple view geometry and visual
servoing: robotics vision with pinhole and panoramic cameras. IEEE Robotics \& Automation
Magazine, v. 12, p. 26-39, 2005.
MARKLEY, F. L.; CRASSIDIS, J. L. Fundamentals of spacecraft attitude
determination and control. [S.l.]: Springer, v. 33, 2014.
MELLO, C. B. Controle de Trajetória de uma Plataforma Stewart para Simulação de
Transferência de Carga Fora de Porto. Universidade Federal do Rio de Janeiro, Rio de
Janeiro, 2011.
43
NÜTZI, G. et al. Fusion of IMU and vision for absolute scale estimation in monocular
SLAM. Journal of intelligent \& robotic systems, v. 61, p. 287-299, 2011.
STEVEN C, F. et al. The Mechanical Universe: Mechanics and Heat. [S.l.]:
Cambridge University Press, 2008.
STEWART, D. A platform with six degrees of freedom. Proceedings of the institution
of mechanical engineers, v. 180, p. 371-386, 1965.
TEAGUE, M. R. Image analysis via the general theory of moments. Journal of the
Optical Society of America (1917-1983), v. 70, p. 920-930, 1980.
THRUN, S.; BURGARD, W.; FOX, D. Probabilistic robotics. [S.l.]: MIT press, 2005.
UNDERWATER Navigation System, 2017. Disponivel em:
<http://www.ece.montana.edu/seniordesign/archive/SP14/UnderwaterNavigation/Quaternions
.html>. Acesso em: 14 out. 2017.
VANCIN, P. Fusão de Imagens e Sensores Inerciais para a Estimação e Controle de
Veículos Autônomos. Pontifícia Universidade Católica do Rio Grande do Sul, Porto Alegre,
2016.
XU, D.; LI, Y. F. A new pose estimation method based on inertial and visual sensors
for autonomous robots. Robotics and Biomimetics, 2007. ROBIO 2007. IEEE International
Conference on, p. 405-410, 2007.
ZHANG, K. et al. Fusion of vision and IMU to track the racket trajectory in real time.
Mechatronics and Automation (ICMA), 2017 IEEE International Conference on, p. 1769-
1774, 2017.