ESTUDO COMPARATIVO DE CONTROLADORES DE SEGUIMENTO DE TRAJETÓRIA PARA
ROBÔS DE TRAÇÃO DIFERENCIAL: FUZZY, GANHOS FIXOS E BACKSTEPPING
EDUARDO ENRICO V. TOMMASI 1, HEITOR G. DE FARIA
1,
MARCO ANTONIO DE S. L. CUADROS
1, GUSTAVO M.
ALMEIDA1, CASSIUS Z. RESENDE
1 , DANIEL FERNANDO TELLO GAMARRA
2
1. Instituto Federal do Espírito Santo - Campus Serra
Rodovia ES 010, Km 6,5, 29173-087 Manguinhos, Serra, ES, Brasil.
E-mails: [email protected], [email protected]
2. Universidade Federal de Santa Maria - Control and Automation Engineering, Santa Maria, RS-Brazil. E-mails: [email protected]
Abstract This paper shows a performance comparison of three trajectory tracking controllers for differential drive robot. One is a fuzzy controller that corrects the robot position errors associating the position error with the linear velocity of the robot, in
addition to associate the orientation error of the robot with the angular velocity. In the sequence, the article presents two other
controllers that are designed following a methodology that ensures system stability, which are the kinematic trajectory tracking
controller of fixed gains and the back-stepping controller. Ultimately, experimental results are presented and the three controllers
are compared using the performance index IAE.
Keywords Control of Robots, Mobile Robot, Trajectory Tracking
Resumo O presente trabalho apresenta uma comparação do desempenho de três controladores de seguimento de trajetória pa-ra robôs de tração diferencial. Um deles é um controlador fuzzy próprio, que para corrigir os erros de posição do robô relaciona o
erro de posição com a velocidade linear do robô, além de relacionar o erro de orientação do robô com a velocidade angular. Na
sequência o artigo apresenta dois outros controladores projetados seguindo metodologias que garante a estabilidade do sistema,
que são o controlador cinemático de seguimento de trajetória de ganhos fixos e o controlador backstepping. Ao final, resultados
experimentais são apresentados e os três controladores são comparados utilizando-se o índice de desempenho IAE.
Palavras-chave Controle de Robôs, Robôs Móveis, Seguimento de Trajetória.
1 Introdução
A comparação de desempenho de três controladores
de seguimento de trajetória para robôs de tração
diferencial é apresentada neste artigo. Os referidos
controladores são: o controlador cinemático de se-
guimento de trajetória de ganhos fixos (Martins et
al., 2008) e (Resende et al. 2012), o controlador
back-stepping (Fierro e Lewis, 1998) e (Jun Ye,
2008), e um controlador fuzzy do tipo Mandani pró-
prio.
Para o desenvolvimento do controlador fuzzy,
foram escolhidas duas entradas, que são o erro de
posição e o erro de orientação do robô. Já as saídas
do controlador fuzzy são a velocidade linear e a velo-
cidade angular de referência para o robô controlado.
Inicialmente utilizada por (Antonelli et al., 2007) e
por (Zapata et al, 2010), a opção de escolher as velo-
cidades linear e angular como saídas do controlador
é interessante, já que a maioria dos robôs comerciais
possuem estas duas grandezas como variáveis de
controle. Para corrigir os erros de posição do robô, as
regras fuzzy do controlador relacionam o erro de
posição com a velocidade linear do robô, e também
relacionam o erro de orientação do robô com a velo-
cidade angular.
A metodologia fuzzy do tipo Mandani possui a
vantagem e a facilidade de permitir o controle de um
sistema sem necessariamente conhecer sua dinâmica.
Porém, a comprovação da estabilidade do controla-
dor não é trivial (Sala e Ariño, 2009), ou seja, se a
comprovação da estabilidade do controlador é essen-
cial, o controlador fuzzy do tipo Mandani deixa de ser
interessante.
Na literatura há controladores projetados de ma-
neira rigorosa, seguindo metodologias que garante a
estabilidade do sistema. Nesta linha cita-se o contro-
lador cinemático de seguimento de trajetória de ga-
nhos fixos desenvolvido por (Martins et al., 2008) e o
controlador backstepping desenvolvido por (Fierro e
Lewis, 1998). A principal diferença entre os últimos
trabalhos citados é que no trabalho de (Martins et al.,
2008) a posição do robô é definida por um ponto que
está a frente do eixo virtual que liga as rodas do robô.
Já no trabalho de (Fierro e Lewis, 1998) a posição do
robô é definida pelo ponto médio de tal eixo virtual.
Os três controladores citados foram implemen-
tados utilizando o software LabVIEW Robotics Mo-
dule e a plataforma robótica DaNI 2.0. Para compa-
rá-los utilizou-se o índice de desempenho Integral of
Absolute Error (IAE) que é baseado no cálculo da
integral do erro absoluto.
O restante deste artigo é organizado da seguinte
maneira: a Seção 2 apresenta os modelos cinemáticos
do robô móvel de tração diferencial; a Seção 3 apre-
senta os três controladores implementados; a Seção 4
detalha a plataforma robótica DaNI 2.0; a Seção 5
apresenta resultados de simulação, a Seção 6 apre-
senta os resultados experimentais, e, finalmente a
Seção 7 apresenta as conclusões obtidas no trabalho.
2 Modelo Cinemático do Robô Móvel de Tração
Diferencial
A configuração do robô móvel utilizado nesse traba-
lho está ilustrada na Figura 1. Um robô de tração
diferencial possui duas rodas paralelas de tração,
independentes uma da outra, e uma roda de apoio
(roda boba ou caster).
Figura 1. Modelo do robô móvel de tração diferencial.
No modelo da Figura 1, considera-se que as du-
as rodas motoras do robô são idênticas, com raio r, e
atuadores independentes. A distância entre as duas
rodas (tamanho do eixo virtual) é de 2L. A postura
do robô é definida pelos parâmetros ,
onde é o ângulo de orientação do robô, e ( ) é a
posição do robô no Sistema de Eixos Cartesianos xy.
O ponto C (considerado como centro de massa do
robô) será utilizado como ponto de referência, ou
ponto de interesse para o controle do robô no caso
dos controladores Fuzzy e backstepping, já no caso
especifico do controlador de ganhos fixos o ponto de
interesse será o ponto Di, que está a metros a frente
do eixo virtual que liga as rodas do robô.
A equação 1 representa o modelo cinemático do
robô utilizado no desenvolvimento dos controladores
Fuzzy e backstepping
, (1)
onde v e w são, respectivamente, as velocidades
linear e angular robô. Ressalta-se que em tal modelo
considera-se como a posição do robô o ponto de
interesse C.
A equação 2 apresenta o modelo cinemático
não holonômico de acessibilidade melhorada utiliza-
do no desenvolvimento do controlador cinemático de
ganhos fixos. Neste modelo a posição do robô é
definida pelo ponto de interesse Di (ver Figura 1).
(2)
Em relação ao comportamento do robô, quando
v1=v2 o robô ira se deslocar em linha reta. Se a velo-
cidade da roda direita (v1) for menor que a velocida-
de da roda esquerda (v2), o robô irá se mover em uma
trajetória circular no sentido horário.
3 Controladores
3.1 Controlador Cinemático de Seguimento de Traje-
tória de Ganhos Fixos (CCSTGF)
Partindo da equação 2, para cálculos posteriores é
definida a matriz A, dada por
(3)
Pode-se obter facilmente também sua inversa, que é
descrita por
. (4)
Utilizando a matriz inversa dada pela equação 4,
pode-se obter a cinemática inversa do robô, dada por
(5)
A partir das equações anteriormente descritas, é
possível propor a seguinte lei de controle:
, (6)
onde e são as saídas do controlador cinemáti-
co, e são as velocidades das posições desejadas
em X e Y, e são os erros de
posição nos eixos X e Y, e são os
ganhos do controlador, e são constan-
tes de saturação, e são as coordenadas
atual e desejada do ponto de interesse do robô.
Para o sistema em malha fechada, consideran-
do-se o seguimento perfeito de velocidade, ou seja,
e , pode-se determinar os valores de
velocidade do ponto de interesse do robô nas dire-
ções X e Y, substituindo-se a equação 6 na equação
2, obtendo-se que
(7)
x
y
o
2L
2r
v v2
v1 C
a Di
w
Para erros de posição elevados, a equação 7 po-
de ser aproximada por
(8)
uma vez que para ,
, e para ,
, onde representa o sinal do ar-
gumento. Assim, os valores das constantes de satura-
ção e da equação 7 podem ser determinados a
partir das seguintes considerações de velocidade
máxima:
Limites de velocidade para a trajetória pla-
nejada:
Limites de velocidade para o ponto de inte-
resse do robô nas direções X e Y:
Continuando, considerando que a velocidade da
trajetória planejada tenha o valor máximo permitido,
ou seja, , para que os limi-
tes de velocidade para o ponto de interesse do robô
sejam cumpridos, tem-se:
e . Concluin-
do-se que a adequação dos valores para as constantes
de saturação é dada por: .
Onde quanto maior os valores de e , mais rápido
o robô irá alcançar a trajetória de referência.
Já os valores adequados dos ganhos e são
determinados de forma experimental, que consiste
em executar o algoritmo de controle em tempo real
no robô e ajustar os ganhos de forma que o robô
seguisse a trajetória de forma mais adequada.
3.2 Controlador Backstepping
O segundo projeto refere-se à técnica de controle
Backstepping, o desenvolvimento do mesmo foi
baseado nos trabalhos de (Fierro e Lewis , 1996) e
(Ye, 2008). A Figura 2 apresenta os erros considera-
dos no desenvolvimento desse controlador, e que
estão organizados na forma matricial na equação (9)
(9)
A equação (10) apresenta a lei de controle do
controlador Backstepping apresentado em Kanayama
(1990) e bastante utilizada e recomendado nos traba-
lhos de (Fierro e Lewis, 1996), (Jiang e Nijmeijer,
1997) e (Kukao, Nakagawa e Adachi, 2000)
, (10)
onde , e são parâmetros de sintonia do con-
trolador, e são as saídas do controlador. Os
ganhos , e devem ser tais que o erro de posi-
ção do robô seja minimizado.
Figura 2. Erros no controlador Backstepping.
3.3 Controlador Fuzzy
O controlador de trajetória Fuzzy foi projetado com
as seguintes etapas: definição das variáveis de entra-
da e saída, criação das funções de pertinência, cria-
ção das regras do controlador, definição do método
de “defuzzificação” e ajuste de ganhos das variáveis
de saída.
Figura 3. Erros controlador fuzzy.
As regras do controlador Fuzzy foram definidas
a partir de duas entradas: o ângulo γ (erro de orienta-
ção) e a distância D (erro de posição), ambos ilustra-
das na Figura 3. O erro de orientação γ é calculado a
partir da equação 11
(11)
onde α é o ângulo do vetor D e θ o ângulo de orienta-
ção do robô. Já o erro de posição D é obtido através
da equação 12
X o
θr
θ
x
y
xr
yr
e1
e2
Y
. (12)
As duas saídas do controlador Fuzzy foram de-
finidas como sendo as velocidades linear e angular
de referência para o robô controlado. A velocidade
linear de referência será utilizada para minimizar o
erro D, assim como a velocidade angular de referên-
cia será utilizada para reduzir o erro γ.
A Tabela 1 apresenta todos os conjuntos fuzzy
criados para cada variável de entrada e saída do con-
trolador.
Tabela 1. Descrição dos conjuntos fuzzy.
Variável Sigla do
Conjunto
Descrição
γ
NG
NP
ZE
PP
PG
Negativo Grande
Negativo Pequeno
Zero
Positivo Pequeno
Positive Grande
D
MP
P
M
G
MG
Muito Pequeno
Pequeno
Médio
Grande
Muito Grande
v
MLe
Le
Me
Ra
MRa
Muito Lento
Lento
Médio
Rápido
Muito Rápido
EsRa
EsLe
Reto
DiLe
DiRa
Esquerda Rápido
Esquerda Lento
Reto
Direita Lento
Direita Rápido
Para relacionar as entradas e saídas anterior-
mente descritas, foram criadas 25 regras no formato
de regras if-then (se-então). Sendo que estas estão
apresentadas na Tabela 2.
Tabela 2. Tabela de regras fuzzy.
γ
NG NP ZE PP PG
D
MP MLe
EsRa
MLe
EsLe
MLe
Reto
MLe
DiLe
MLe
DiRa
P Le
EsRa
Le
EsLe
Le
Reto Le
DiLe
Le
DiRa
M Me
EsRa
Me
EsLe
Me
Reto
Me
DiLe
Me
DiRa
G Ra
EsRa
Ra
EsLe
Ra
Reto
Ra
DiLe
Ra
DiRa
MG MRa
EsRa
MRa
EsLe
MRa
Reto
MRa
DiLe
MRa
DiRa
O método de “defuzzificação” selecionado foi o
Centro da Area (CoA), também conhecido como
Centro de Gravidade (CoG).
4 Plataforma de Desenvolvimento
Os experimentos desse trabalho foram realizados em
duas etapas: simulações e testes práticos. A etapa de
simulação e todo o desenvolvimento dos códigos foi
implementado no software LabVIEW. Nos experi-
mentos práticos foi utilizado robô DaNI 2.0 (Figura
9), que forma parte do LabVIEW Robotics Starter
Kit. O DaNI 2.0 possui uma placa NI sbRIO que
integra um processador de tempo real, uma placa
FPGA e uma placa de entradas e saídas digitais e
analógicas. Essa placa possui integração com o Lab-
VIEW, possibilitando sua programação desde que os
módulos FPGA, Real-Time e Robotics estejam devi-
damente instalados. Uma adaptação extra foi feita na
estrutura original, adicionando um roteador Wi-Fi a
estrutura, permitindo a comunicação com o compu-
tador e monitoramento em tempo real do robô.
Figura 9. Estrutura e componentes do DaNI 2.0.
5 Resultados de Simulação
O modulo de robótica do software LabVIEW contém
um ambiente de simulação que permite testar e im-
plementar os códigos desenvolvidos para o DaNI 2.0.
Com pequenas alterações é possível testar os códigos
simulados no robô real. Um código foi desenvolvido,
para os três controladores, afim de realizar a simula-
ção e verificar o desempenho dos controladores antes
dos testes práticos.
Os resultados de simulação para os Controlado-
res CCSTGF, Backstepping e Fuzzy são mostrados
na Figura 10.
Figura 10. Simulação trajetória 8 (Gráfico xy).
1 1.5 2 2.5 3
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
X(m)
Y(m
)
Posição Desejada
Posição do Robô Cinemático
Posição do Robô Backstepping
Posição do Robô Fuzzy
O controlador Cinemático CCSTGF foi sintoni-
zado com ganhos , com constantes de
saturação . Já o valor de “a” utilizado
foi de cm. O controlador Backstepping foi sinto-
nizado com os ganhos: , e ,
para as velocidades m/s e rad/s.
Nota-se a posição inicial do robô foi (2;0,5) e que
após a inicialização o robô segue o trajeto desejado.
Nas Figuras 11 e 12 são mostrados os gráficos
comparativos dos erros absolutos nos eixos X e Y,
respectivamente. Nos gráficos e possível verificar o
desempenho de cada controlador em relação ao sinal
de referência.
Figura 11. Erro absoluto dos controladores para a variável x.
Figura 12. Erro absoluto dos controladores para a variável y.
Para análise e comparação dos resultados tanto
de simulação quanto práticos, foi utilizado o índice
de desempenho Integral Absolute Erros (IAE) que é
calculado através da integração do erro absoluto no
período de tempo analisado.
A Tabela 3 contém os indicadores de desempe-
nho dos três controladores obtidos para cada variável
durante as simulações.
Tabela 3. Valores de IAE de cada controlador na simulação.
Variável Backstep-
ping
Cinemático
CCFGT
Fuzzy
X 6.7134 25.1309 34.2814
Y 4.0363 13.1100 17.3630
Através da análise da tabela contendo os índices
pode-se verificar o desempenho superior do contro-
lador Backstepping em relação ao Cinemático
CCFGT e Fuzzy. Já os controladores Cinemático e
Fuzzy mostram desempenho semelhante.
6 Resultados Práticos
Nos testes de simulação, a posição do robô foi obtida
utilizando funções internas. Contudo, nos testes reais
isso não e possível, portanto, foi utilizada a odome-
tria do tipo Dead Reckoning. A postura é estimada
tendo como referência a posição inicial do robô e
utilizando a leitura dos encoders para determinar a
postura atual do robô. A Figura 13 mostra uma mon-
tagem de imagens dos testes práticos realizados com
o DaNI 2.0.
Figura 13. Imagem de testes práticos.
Para a parte prática não houve mudanças quanto
a sintonia do controlador Cinemático de ganhos
fixos, pois os distúrbios da dinâmica do robô DaNI
não foram suficientes para afetar o desempenho do
mesmo sobre o modelo cinemático.
Durante a execução da tarefa prática com o con-
trolador Backstepping notou-se um comportamento
não satisfatório do robô DaNI, ao adotar os mesmos
parâmetros de controle utilizados durante a simula-
ção, caracterizando uma resposta on-off ao sistema.
Como correção foram necessários pequenos ajustes
nos ganhos e nas velocidades da trajetória de refe-
rência. Os valores adotados para os ganhos foram:
, e , para as velocidades
e .
Figura 14. Prática trajetória 8 (Gráfico xy).
0 10 20 30 40 50 60 700
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
Tempo (s)
Err
o X
(m
)
Erro Fuzzy
Erro Cinemático
Erro Backstepping
0 10 20 30 40 50 60 700
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
Tempo (s)
Err
o Y
(m
)
Erro Fuzzy
Erro Cinemático
Erro Backstepping
1 1.5 2 2.5 3
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
X(m)
Y(m
)
Posição Desejada
Posição do Robô Cinemático
Posição do Robô Backstepping
Posição do Robô Fuzzy
Nas Figuras 15 e 16 são mostrados os gráficos
comparativos dos erros absolutos nos eixos X e Y,
respectivamente Nos gráficos é possível verificar o
desempenho de cada controlador em relação ao sinal
de referência.
Figura 15. Comparativo controladores para a variável x.
Figura 16. Comparativo controladores para a variável y.
A Tabela 4 contém os indicadores de desempe-
nho dos três controladores obtidos para cada variável
durante os experimentos práticos.
Tabela 4. Valores de IAE de cada controlador nos experimentos.
Variável Backstep-
ping
Cinemático
CCFGT
Fuzzy
X 9.3895 43.3502 43.0163
Y 6.3936 21.6197 23.9376
7 Conclusão
Entre as contribuições apresentadas neste trabalho é
possível mencionar a implementação em simulação e
experimentalmente de três controladores de segui-
mento de trajetórias para um robô móvel, os referidos
controladores são o cinemático CCSTGF, Fuzzy e
Backstepping. Os controladores foram testados utili-
zando a plataforma robótica DANI 2.0 que forma
parte do Labview Robotics Starter kit. Outra contri-
buição do artigo é a avaliação dos controladores de
seguimento de trajetória utilizando o índice de de-
sempenho IAE. Da analise dos resultados pode-se
concluir que o controlador Backstepping apresentou
um melhor desempenho tanto na simulação como nos
testes práticos em comparação com os controladores
Fuzzy y cinemático CCSTGF. Finalmente, é necessá-
rio sublinhar o projeto de um controlador fuzzy de
seguimento de trajetórias próprio como outra contri-
buições deste artigo.
Agradecimentos
Agradecemos ao CNPq, à SETEC/MEC e ao IFES
pelo apoio concedido às pesquisas que deram origem
a estes textos.
Referências Bibliográficas
Antonelli, G, Chiaverini, S. e Fusco, G. (2007). A
fuzzy-logic-based approach for mobile robot
path tracking. IEEE Trans. Fuzzy Syst., 15( 2):
211–221,
Fierro, R. e Lewis, F.L. (1998). Control of a
nonholonomic mobile robot using neural net-
works, IEEE Transactions on Neural Networks
9(4): 589-600.
Jiang, Z .P. e Nijmeijer, H. (1997). Tracking control
of mobile robots: a case study in backstepping.
Automatica 33: 1393–1399.
Jun Ye, (2008). Tracking control for nonholonomic
mobile robots: integrating the analog neural
network into the backstepping technique,
Neurocomputing, 71: 3373-3378.
Kanayama Y. et al. (1990), A stable tracking control
method for an autonomous mobile robot, in
Proc. IEEE Int. Conf. Robotics and Automation,
384–389.
Kukao, T.; Nakagawa, H. e Adachi, N. (2000). Adap-
tive tracking control of a nonholonomic mobile
robot. IEEE Trans. Robotics Automation 16:
609–615.
Martins, F. N., Celeste, W. C., Carelli, R., Sarcinelli-
Filho, M. e Bastos-Filho, T. F. (2008). An adap-
tive dynamic controller for autonomous mobile
robot trajectory tracking, Control Engineering
Practice 16(11): 1354-1363.
Resende, C. Z., Carelli, R., Bastos-Filho, T. F. e
Sarcinelli-Filho, M. (2012). Embedding obstacle
avoidance to trajectory tracking for unicycle
mobile robots. IEEE/RSJ International Confer-
ence on Intelligent Robots and Systems. [S.l.:
s.n.], 2012.
Sala, A. e Ariño, C. V. (2009). Reduciendo distan-
cias entre el control borroso y el control no line-
al: luces y sombras, Revista Iberoamericana de
Automática e Informática Industrial 6(2): 26-35.
Zapata, E. et al (2010). Fuzzy decentralized control
for guidance of a convoy of robots in non-linear
trajectories. 15th IEEE Int. Conf. on Emerging
Technologies and Factory Automation.
0 10 20 30 40 50 60 700
0.05
0.1
0.15
0.2
Tempo (s)
Err
o X
(m
)
Erro Fuzzy
Erro Cinemático
Erro Backstepping
0 10 20 30 40 50 60 700
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
Tempo (s)
Err
o Y
(m
)
Erro Fuzzy
Erro Hip
Erro Back
Top Related