Академический Документы
Профессиональный Документы
Культура Документы
Fabrı́cio de Oliveira Coelho∗, João Pedro Carvalho de Souza∗, Milena Faria Pinto∗,
Guilherme Marins Maciel∗, André Marcato∗
∗
Universidade Federal de Juiz de Fora
Programa de Pós-Graduação em Engenharia Elétrica
Juiz de Fora, Minas Gerais, Brasil
Abstract— The accurately estimated localization is critical for an autonomous robot navigation. In this
context, the present paper proposes a localization method using odometry and computational vision. The
joining of the sensor information is done by the Extended Kalman filter. The results are valid graphically
and quantitatively for location with both known and unknown starting point.
A robótica móvel destaca-se na execução das mais Dado a importância de um sistema de localização
distintas tarefas, tais como: limpeza, vigilância e na área da robótica móvel, o presente trabalho
suporte a deficientes (da Silva Lima, 2010). Uma propõem um método de localização de robôs mó-
aplicação interessante na área de robótica móvel veis em ambientes simulados, conhecidos e estáti-
encontra-se em sua utilização em áreas de riscos cos utilizando o algoritmo de filtro de Kalman Es-
ao ser humano (Lattanzi and Miller, 2017). Adi- tendido (FKE). Opta-se por utilizar visão compu-
cionalmente os custos também são mitigados nes- tacional com uma câmera convencional. Os custos
ses casos. Contudo, a robótica móvel apresenta-se dessa abordagem são reduzidos em comparação a
como um desafio, visto que, diversos problemas um laser scan sem que haja perda de generali-
realizados de maneiras simples por seres humanos dade. Este trabalho também irá localizar o robô
são custosos para robôs, entre estes citam-se a lo- nos momentos que a posição inicial de navegação
calização e a navegação. é desconhecida bem como a solução para o pro-
Segundo (Thrun et al., 2005), a localização é blema de sequestro do robô em casos especı́ficos.
um problema básico em robótica, pois todas as O trabalho divide-se em seções e subseções. A
tarefas desempenhadas necessitam da posição em Seção 1 apresenta, além da introdução, os traba-
que o robô se encontra. Para isso é necessário que lhos correlacionados ao tema. A Seção 2 aborda a
o sistema robótico extraia o mı́nimo de caracte- modelagem do robô móvel, da odometria e da vi-
rı́sticas do ambiente. Já a navegação autônoma são computacional. Na Seção 3 será apresentado
consiste em deslocar um robô por um ambiente o algoritmo FKE com o propósito de localização.
tendo como objetivo atingir determinada posição Por fim, as Seções 4 e 5 expõem os resultados e as
caracterizada pela ausência de quaisquer controle conclusões respectivamente.
humano (Figueiredo, 1999). Metodologias que de-
mandam pouco processamento sempre serão pre- 1.2 Trabalho Correlacionados
teridas para que robôs desloquem-se e localizem-se
com eficiência. Para que um robô se localize, necessita-se da ex-
Conforme indicado em (Leite et al., 2015), a tração de informações do ambiente em que está
localização de robôs é susceptı́vel a diversos ti- inserindo. Estas extrações podem ser realizadas a
pos de problemas durante a missão como citam-se partir de diversos sensores: lasers, sonares, câme-
a imprecisão e ruı́do sensorial, determinação da ras, dentre outros. Em (Fox et al., 1999) os auto-
posição inicial e sequestro (Engelson and McDer- res propõe a localização utilizando um algoritmo
mott, 1992). Este último consiste na locomoção baseado no problema de Monte Carlo (filtro de
feita por um agente externo ao robô, avaliando o Partı́culas). Os resultados alcançados utilizando o
comportamento do sistema nessas situações. filtro de partı́culas foram satisfatórios, entretanto,
1139
XIII Simpósio Brasileiro de Automação Inteligente
Porto Alegre – RS, 1o – 4 de Outubro de 2017
O movimento consiste em dividir o desloca-
mento realizado pelo robô em 3 movimentos bá-
sicos conforme apresentado na Figura 2. Pri-
meiro rotacionando-o (δrot1 ), depois deslocando-o
(δtrans) até o ponto xt e yt , e por fim, realizando
a última rotação (δrot2). Definindo a posição no Figura 3: AR Code.
instante t como Xt = [xt yt θt ] e no instante t − 1
como Xt−1 = [xt−1 yt−1 θt−1 ], os 3 movimentos de marcadores M = {m1 , m2 , ...}. Cada um des-
podem ser descritos de acordo com as Equações 3, ses elementos é caracterizado pela posição global
4 e 5. no mapa mj,x e mj,y .
De posse da distância euclidiana (r) e o ân-
gulo (φ) de orientação do robô até o marcador,
define-se o vetor Z como o conjunto de marca-
dores observados quando o robô se encontra na
posição Xt = [xt yt θt ]T . O modelo para um mar-
cador qualquer i associado ao AR Code j presente
no mapa e pertencente ao vetor Zt no instante t
é definido pela função h(xt , yt , θt ), conforme mos-
trado na Equação 7.
q
(mj,x − xt )2 + (mj,y − yt )2
rti
σ 2
h = Zit = = + 2r
φit −1 mj,y − yt
tan − θt σφ
Figura 2: Modelo de Movimento. (Adaptado de mj,x − xt
Thrun et al., 2006). (7)
As variáveis σr2 e σφ2 pertencem ao vetor Ec
e correspondem aos ruı́dos gaussianos com média
−1 yt − yt−1 0 e variância σr2 , σφ2 para distância e ângulo na
δ̂rot1 = tan − θt−1 (3)
xt − xt−1 extração dos AR codes, respectivamente.
p
δ̂trans = (xt−1 − xt )2 + (yt−1 − yt )2 (4) 3 Filtro de Kalman Estendido
δ̂rot2 = θt − θt−1 − δ̂rot1 (5)
O filtro de Kalman é uma técnica recursiva vol-
O modelo definido pelas Equações 3, 4 e 5 le- tada para sistemas dinâmicos, lineares que estão
vam em consideração apenas as leituras da odo- submetidos à ruı́dos (Kalman et al., 1960). A odo-
metria no instante t − 1 e t. O valor obser- metria e a câmera estão sob efeitos de ruı́dos gaus-
vado pelo sensor odométrico Mo é modelado pela sianos, entretanto seus respectivos modelos não
Equação 6, onde Mi = (δ̂rot1 δ̂trans δ̂rot2 )T e são lineares. Neste contexto, é necessário utilizar
Eo = (rot1 trans rot2 )T . A matriz Eo repre- o filtro de Kalman Estendido.
senta ruı́dos gaussianos para cada movimento . A O algoritmo FKE pode ser dividido em duas
média de cada ruı́do modelado é igual a zero e a fases: predição e atualização. Neste trabalho, a
2 2 2 primeira faz uma estimativa do estado a partir da
variância é igual a σrot1 , σtrans e σrot2 , respecti-
vamente. odometria. Já a segunda, consiste em atualizar a
Mo = Mi + Eo (6) predição, ou seja, corrigir o estado encontrado na
primeira fase. O sistema em que o FKE atuará na
2.3 Modelo da Câmera localização é definido nas Equações 8 e 9 (Thrun
et al., 2005), onde o sistema define a posição atual
Um método alternativo de sensoriamento que ob- (Xt ) dada as observações (Zt ) realizadas pela câ-
jetiva auxiliar a localização de robôs é a visão mera.
computacional (Suriyon et al., 2011). Algoritmos Xt = g(ut , Xt−1 ) + Eo (8)
de visão computacional, através de uma câmera,
podem detectar caracterı́sticas artificiais denomi- Zt = h(Xt ) + Ec (9)
nadas AR codes (Augmented Reality Code), Fi- Para se obter a posição Xt a partir da mo-
gura 3. Além de identificar caracterı́sticas, esses delagem do robô é necessário utilizar os sensores
algoritmos são capazes de estimar posição e orien- odométricos a partir do modelo de odometria. A
tação relativa, sendo empregado em diversos tra- função h corresponde ao modelo de observação da
balhos de robótica (Carvalho et al., 2016). câmera. Ambas funções são não lineares e foram
A contribuição do uso do AR Code na locali- definidas nas seções 2.2 e 2.3. Já as variáveis Eo e
zação é a associação do marcador artificial com o Ec correspondem aos ruı́dos gaussianos de odome-
seu respectivo mapa preestabelecido, já que os AR tria e de observação, respectivamente. A variável
codes distribuı́dos no ambientes serão únicos. O ut corresponde às unidades de controle, velocidade
mapa é definido previamente como um conjunto linear e angular.
1140
XIII Simpósio Brasileiro de Automação Inteligente
Porto Alegre – RS, 1o – 4 de Outubro de 2017
3.1 Fase de Predição 3.2 Fase de Atualização
A primeira fase do FKE utiliza apenas o modelo A segunda fase é responsável por corrigir a estima-
odométrico e é formada por duas Equações apre- tiva realizada pela predição. Esta fase só acontece
sentadas em 10 e 15. caso alguma observação feita pela câmera exista.
Neste sentindo, nas condições em que a câmera
X̄t = g(ut , X̄t−1 ) (10) não capture nenhum AR code a predição é a me-
Na Equação 10 realiza-se a predição da posi- lhor estimativa para o estado do sistema.
ção (X̄t ) a partir da posição anterior (X̄t−1 ) sub- A fase de atualização visa encontrar a posição
metidos à determinados sinais de controle (ut ). A (X̄t ) por estimação corrigindo a posição encon-
predição da posição é encontrada somando os in- trada na fase de predição. Primeiramente deve-se
crementos ∆x, ¯ ∆y ¯ à posição anterior (X̄t−1 ).
¯ e ∆θ obter o ganho de Kalman (Kt ) conforme mostrado
Pode-se chegar aos incrementos para o modelo de na Equação 19.
movimento a partir da Figura 2 conforme as Equa- Kt = Σ̄t H0t (Ht Σ̄t H0t + Qt )−1 (19)
ções 11, 12 e 13.
Na Equação 19, Ht (Equação 20) corresponde
¯ = δtrans cos(θt−1 + δrot1 )
∆x (11) ao jacobiano da função de observação (Equação 7)
¯ = δtrans sin(θt−1 + δrot1 ) para cada um dos i marcadores encontrados pela
∆y (12)
câmera. Já a matriz Qt corresponde à matriz di-
¯ = δrot1 + δrot2
∆θ (13) agonal de covariâncias do modelo da câmera.
Então a nova posição é dada pela função ∂hi1 ∂hi1 ∂hi1 x̄t − mj,x ȳt − mj,y
0
o(δrot1 , δtrans , δrot2 ), explicitada na Equação 14. ∂ x̄
t ∂ ȳt ∂ θ̄t rti rti
Ht = =
∂hi2 ȳt − mj,y mj,x − x̄t
∂hi2 ∂hi2
2 2 −1
¯ rti rti
∆x ∂ x̄t ∂ ȳt ∂ θ̄t
¯ (14)
o(δrot1 , δtrans , δrot2 ) = X̄t = X̄t−1 + ∆y (20)
¯
∆θ O cálculo do ganho de Kalman no algoritmo
implementado considera todos AR codes presentes
A equação 15 é denominada erro de predição e
no ângulo de abertura da câmera, essa caracterı́s-
quantifica como está a estimativa da posição dada
tica garante uma melhoria na estimativa da posi-
pelo algoritmo.
ção. Após encontrar o ganho de Kalman, realiza-
Σ̄t = Gt Σt−1 GT
t + Rt (15) se a atualização do erro de predição e estima-se a
posição (X̄t ), conforme Equações 21 e 22.
O FKE manipula as não linearidades obtidas
nos modelos através do jacobiano. Considerando X̄t = X̄t + Kt (Zt − h(X̄t )) (21)
que as unidades de controle são constantes e não
dependem da posição, o termo Gt (Equação 16) Σ̄t = (I − Kt Ht )Σ̄t (22)
corresponde ao jacobiano da função de desloca-
Na Equação 21, o termo h(X̄t ) corresponde
mento (g) do robô em relação à posição X̄t (Equa-
à observação feita pelo robô utilizando a posição
ção 2). Já a matriz Rt é definida através da Equa-
estimada na fase de predição e o marcador identifi-
ção 17.
cado pela câmera. A parcela Zt −h(X̄t ) é denomi-
∂g1 ∂g1 ∂g1 nada inovação, ou seja, mostra o quanto o ganho
∂ x̄t ∂ ȳt ∂ θ̄t ¯
de Kalman deve ser efetivo na atualização do X̄t .
∂g 1 0 −∆y
2 ∂g2 ∂g2 ¯ Neste sentido, esta parcela compara a observação
Gt = = 0 1 ∆x
∂ x̄t ∂ ȳt ∂ θ̄t real com uma observação realizada do ponto esti-
∂g ∂g ∂g 0 0 1
3 3 3 mado na fase de predição.
∂ x̄t ∂ ȳt ∂ θ̄t
(16) 3.3 Algoritmo FKE
Rt = Ot Mt OT
t (17) O filtro de Kalman Estendido baseado na localiza-
ção, necessita de dois parâmetros na sua iniciali-
A variável Ot (Equação 18) é o jacobiano do
zação. O primeiro é uma posição inicial estimada
modelo de movimento utilizado na odometria con-
e o segundo é um erro de predição que deverá ser
forme mostrado na Equação 14 e Mt é a matriz di-
diferente de 0. Ao final do algoritmo, para que
agonal de covariâncias definida pelos ruı́dos gaus-
a recursividade seja aplicada, define-se a posição
sianos relacionados à odometria que estão presen-
estimada e o erro de predição conforme as Equa-
tes no modelo do sistema (Eo ).
ções 23 e 24.
∂o1 ∂o1 ∂o1 X̄t−1 = X̄t (23)
¯
∆x
¯
−∆y 0
∂δrot1 ∂δtrans ∂δrot2
∂o2 ∂o2 ∂o2 δ̂trans Σ̄t−1 = Σ̄t (24)
¯
Ot = = ¯ ∆y
∂δrot1 ∂δtrans ∂δrot2 ∆y 0 Uma estrutura esquemática com as variáveis
∂o3 ∂o3 ∂o3 δ̂trans
∂δrot1 ∂δtrans ∂δrot2 1 0 1 do filtro de Kalman Estendido implementado com
(18) propósitos de navegação está na Figura 4.
1141
XIII Simpósio Brasileiro de Automação Inteligente
Porto Alegre – RS, 1o – 4 de Outubro de 2017
7
Caminho Verdadeiro
6 Odometria
y (m)
4
2 4 6 8
x (m)
1.5
Erro em x
Erro (m)
1
Erro em y
0.5
0
0 200 400 600 800 1000 1200 1400
|θ °t -θ °true |
Figura 4: Fluxograma do proposto filtro de Kal- 2
man Estendido.
0
0 200 400 600 800 1000 1200 1400
Tempo (passos)
4
nas Figuras correspondentes aos resultados.
3
2 4 6 8
x (m)
1142
XIII Simpósio Brasileiro de Automação Inteligente
Porto Alegre – RS, 1o – 4 de Outubro de 2017
0.8
Erro em x tretanto, a medida em que o robô se movimenta a
Erro (m)
0.6
Erro em y
0.4 estimativa da localização é melhorada. No fim da
0.2
0
missão, os erros são pequenos quando comparados
0 200 400 600 800 1000 1200 1400
5
aos do inı́cio.
|θ °t -θ °true | 4
2 4
1 Erro em x
Erro (m)
0
0 200 400 600 800 1000 1200 1400 2
Erro em y
Tempo (passos)
0
0 200 400 600 800 1000 1200
|θ °t -θ °true |
40
o 20
Caso xm (m) ym (m) θm
0
1 0.40 0.53 1.73 0 200 400 600
Tempo (passos)
800 1000 1200
0.6
0.4
Erro em y Seção 1. O robô inicia a navegação do ponto
0.2 Xi , entretanto, no meio da missão, o dispositivo é
0
6
0 200 400 600 800 1000 1200 1400 deslocado de maneira instantânea para a posição
Xs = [0.5 6 3π T
2 ] . As Figuras 13 e 14 mostram os
|θ °t -θ °true |
2 resultados.
0
0 200 400 600 800 1000 1200 1400
Tempo (passos)
6
Figura 10: Erros absolutos para o FKE.
5
4
y (m)
7
Caminho Verdadeiro 3
Erro em x
6 FKE
Erro (m)
2
Erro em y
1
5
0
y (m)
3
100
2
0
0 50 100 150 200 250 300 350 400
1 Tempo (passos)
2 4 6 8
x (m) Figura 14: Erros absolutos para o sequestro de
Figura 11: Estimativa da posição via FKE. robôs.
Quando a posição inicial é desconhecida o Para o Caso 4, percebe-se que o robô conse-
robô começa com grandes erros na localização, en- gue se localizar após ser sequestrado. Contudo, há
1143
XIII Simpósio Brasileiro de Automação Inteligente
Porto Alegre – RS, 1o – 4 de Outubro de 2017
uma necessidade que o sistema de visão computa- Figueiredo, M. (1999). Navegação Autônoma de
cional observe AR Codes para que a localização Robôs, Livro da VII ERI (Escola de Informá-
volte a ser eficiente. tica da SBC).
1144