X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil
ESTABILIZAÇÃO FUZZY DA POSTURA DE UM ROBÔ HUMANÓIDE
Felipe Brandão Cavalcanti∗, Nelson Buzeto∗, Adolfo Bauchspiess∗, Geovany A. Borges∗
∗
LARA - Laboratório de Automação e Robótica
Departamento de Engenharia Elétrica - Universidade de Brası́lia
70910-970 Brası́lia, DF, Brasil
Emails: [email protected], [email protected], [email protected], [email protected]
Abstract— This work focuses on the implementation of a Fuzzy pose stabilitzation controller for humanoid
robots’ equilibrium, relying only on the actuation of the hip, foot and knees of the robot. Expert knowledge is
translated into Fuzzy sets and rules, using angular speed and inclination as the inputs of the controller. Results
show that the Fuzzy controller is an interesting alternative to traditional non-linear controllers when a model is
not available or when the complexity of such implementation is considered.
Keywords—
Fuzzy control, humanoid robotics, bipedal robotics, robot equilibrium.
Resumo— Esse trabalho implementa de um controlador Fuzzy de pose para o equilı́brio de robôs do tipo
humanóide, atuando apenas nos quadris, pés e joelhos do robô. O conhecimento especialista é traduzido em
conjuntos Fuzzy e regras para equilı́brio, com a velocidade angular e inclinação do robô como entradas. Os resultados mostram que o controlador Fuzzy é uma alternativa interessante aos controladores não-lineares tradicionais
quando o modelo é não está disponı́vel ou quando se considera a complexidade de tal implementação.
Palavras-chave—
1
Controle Fuzzy, robótica humanóide, robótica bı́pede, equilı́brio de robôs.
Introdução
O robô humanóide sempre foi um dos principais
representantes do estado da arte no campo da robótica - robôs que se parecem com humanos e muitas vezes agem como tais são, para muitos, fascinantes em vários aspectos, tornando-os excelentes
objetos para pesquisas na área de controle. Dentro
do universo de tópicos que podem ser abordados
no campo da robótica bı́pede, uma área que recebe destaque é o controle de postura, considerada
parte essencial de um robô humanóide autônomo
(Hirai et al., 1998).
Na classe de robôs com pés, os robôs bı́pedes apresentam uma vantagem clara na questão da
manobrabilidade - eles precisam de pouco espaço
para se locomover. Entretanto, isso prejudica o
equilı́brio, exigindo um bom sistema de controle
de postura para viabilizar o seu uso. Os robôs
humanóides também combinam as vantagens do
robô bı́pede com as de um robô manipulador, permitindo uma interação muito grande com o ambiente e as ferramentas utilizadas por seres humanos. Uma das principais restrições dos robôs móveis equipados com rodas é a limitação de locomoção em ambientes acidentados ou projetados para
seres humanos, locais onde os robôs com pés, especialmente os robôs bı́pedes, são claramente mais
apropriados (Prahlad et al., 2008).
Além disso, a solução do problema de estabilização do robô humanóide pode ser adaptado
para controlar próteses de forma ativa, auxiliando
pessoas com restrições de locomoção.
O desafio de controlar a postura do robô humanóide já vem sendo estudado desde o final da
década de 60 (Vukobratovic and Borovac, 2004),
o que levou a criação de várias abordagens para
ISSN: 2175-8905 - Vol. X
a solução do problema. Nota-se que todas exigem
uma grande quantidade de medidas sobre o estado
atual do robô e seu ambiente - informações normalmente disponibilizadas por meio de uma rede
de sensores instalada no próprio robô, e algumas
vezes no ambiente onde este se encontra. Notase também que um modelo dinâmico é necessário
para a implementação de uma estratégia de controle convencional.
A estabilização estática do robô é o primeiro
passo para se realizar um controle completo de
marcha. O principal objetivo desse trabalho é o
estudo e a implementação de um sistema de controle de estabilização do robô humanóide baseado
em lógica Fuzzy, melhorando sua resposta a pertubações, como forças externas, colisões e variações
no ambiente tais como degraus ou inclinações.
Este trabalho utiliza o robô Bioloid (Robotis,
2009), ilustrado na Figura 1, da empresa coreana
Robotis. Ao robô foram acrescentados sensores
para ser uma plataforma completa de pesquisa
(Cavalcanti and Borges, 2009) (Globo, 2011), e os
estimadores de orientação e um controle proporcional foi desenvolvido em (Cavalcanti and Borges, 2010). O robô conta com 18 graus de liberdade, Linux embarcado com a extensão em tempo
real Xenomai (Xenomai, 2011), sensores de Zero
Moment Point (ZMP), unidade de medidas inerciais e uma Application Programming Interface
(API) completa de aquisição de dados e controle.
Este trabalho está organizado da seguinte maneira: a seção 2 trata da descrição da plataforma
de pesquisa utilizada; a seção 3 apresenta a implementação do algoritmo de controle Fuzzy, os
resultados são apresentados na seção 4, e na seção
5 estão relatadas as conclusões.
123
X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil
Figura 2: Modelo enumerando as juntas da plataforma Bioloid/UnB.
Figura 1: A plataforma Bioloid, da Robotis, acrescida de instrumentação UnB.
2
2.1
A plataforma Bioloid/UnB
Construção mecânica
A plataforma Bioloid/UnB conta com 18 servomotores AX-12+, capazes de fornecer 16,7 kgf·cm
de torque, além de fornecer dados de posição, torque e velocidade em tempo real (Robotis, 2006).
Cada junta conta com um servo-motor dedicado.
Para este estudo de estabilidade, a plataforma
original foi modificada através da remoção dos
braços do robô, diminuindo em 6 a quantidade de
juntas a serem atuadas. Esta modificação foi feita
visando a construção de um sistema de controle
que dependesse somente da ação abaixo do torso
do robô, permitindo que os braços manipuladores
fossem dedicados a outra tarefa. Além disso, todo
o estudo foi feito somente no plano sagital, tendo
em vista que podemos considerar os pertubações
nos planos frontal e sagital independentes.
A plataforma como utilizada conta então com
6 juntas executando o controle de estabilidade os dois pés, os dois joelhos e as duas juntas do
quadril. Na prática, como os movimentos de cada
par de servos são idênticos, o sistema conta com 3
graus de liberdade efetivos, o que facilita bastante
o ajuste dos controladores Fuzzy e a captura do
conhecimento especialista em equilı́brio. Um modelo ilustrativo do robô, substituindo as estruturas
por massas pontuais, pode ser vista na Figura 2.
(Cavalcanti and Borges, 2009). A principal modificação foi a parte de software - o código do controlador original foi substituı́do por um código cuja
única função era de repassar as referências do sistema de controle, com garantia de determinismo
e o acesso às funcionalidades mais avançadas dos
servo-motores das juntas.
Além do software do controlador, um computador embarcado Gumstix Verdex XL6-P foi instalado no robô. O sistema foi preparado com Linux
modificado pela extensão em tempo real Xenomai,
e drivers apropriados foram desenvolvidos a fim de
garantir a operação em tempo real. Esse sistema
embarcado é o responsável por toda estimação e
controle da plataforma. Essa abordagem permite
1
s.
o controle em intervalos de até 33
A fim de suprir os dados necessários para o
controle do robô, uma unidade de medidas inerciais (Inertial Measurement Unit - IMU), com girômetros e acelerômetros de 3 eixos foi instalada no
torso do robô, permitindo que a inclinação em relação a gravidade fosse estimada através de um
Filtro de Kalman. Uma visão geral da arquitetura do sistema do Bioloid/UnB pode ser vista na
Figura 3.
Esta arquitetura permitiu a implementação de
todos os algoritmos em C. Os controladores Fuzzy
foram projetados, validados e sintetizados utilizando o XFuzzy 3.0 (Xfuzzy Team, 2003). A arquitetura também permite a aquisição de dados
offline e online, facilitando a avaliação dos resultados obtidos.
3
3.1
2.2
Arquitetura de sistema
O que viabilizou a implementação do controlador
de postura na platarma Bioloid/UnB é o trabalho de instrumentação, descrito em detalhes em
ISSN: 2175-8905 - Vol. X
O controlador Fuzzy
Funcionamento do processo de controle
O controlador proposto atua diretamente sobre a
referência de posição e o módulo da velocidade de
cada junta do robô, que já contam com controladores PIDs locais. O controlador Fuzzy tem como
124
X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil
Girômetros
Placa de Sensores
3.2
IMU
ATMega8
Acelerômetros
TTL 3.3V
Dynamixel AX-12+ - Junta 1
Filtro de Kalman
Gumstix Verdex XL6P
Dynamixel AX-12+ - Junta 2
...
RS232
Dynamixel AX-12+ - Junta 18
RS232
CM-5
Sensor de ZMP - Pé 1
Bioloid Bus
(TTL)
Controlador de Alto Nível
/ Computador
Sensor de ZMP - Pé 2
Figura 3: Arquitetura de sistema do robô Bioloid/UnB.
entrada a velocidade e posição angular do robô em
relação ao vetor gravidade. A ação de controle
(ou seja, a referência do controlador PID local da
junta) é a soma entre o ângulo da junta determinado pela pose atual, e a componente Fuzzy
multiplicada por uma constante:
ui = θref + Ki δf uzzy (v, φ)
(1)
γi = Ki0 γf uzzy (v, φ)
(2)
O Controlador
O controlador utilizado foi um controlador Fuzzy
do tipo Mamdani (Aguiar and Junior, 2007), o
qual permite uma facilidade maior em definir regras e conjuntos de pertinência baseados em conhecimento especialista sobre o processo. Utilizando como base funções de pertinência diferenciadas para cada entrada ou saı́da do sistema de
controle foi obtida uma dinâmica especı́fica para
cada junta.
As funções de pertinência escolhidas para a
posição angular de entrada (ou seja, o erro em relação a gravidade) se resumem a apenas 5 posições
diferentes. Tais funções de pertinência se encontram evidenciadas na imagem a seguir onde o ângulo mı́nima apresentado é de -90◦ e o máximo
é de 90◦ . As funções a seguir estão respectivamente da esquerda para a direita nomeadas como:
“Muito Negativo”, “Pouco Negativo”, “Equilı́brio”,
“Pouco Positivo” e “Muito Positivo”, como ilustradas pela Figura 5. O alinhamento do robô com a
gravidade (ou seja, 0◦ ) é a posição de equilı́brio
do robô.
onde,
• ui é a referência ângular da i-ésima junta
• γi é a velocidade da i-ésima junta
• θref é o ângulo planejado da i-ésima junta
• δf uzzy é o fator de modificação da referência
(controlador Fuzzy)
• γf uzzy é o fator de modificação da velocidade
(controlador Fuzzy)
• v é a velocidade angular
• φ é a estimação da inclinação do torso do robô
em relação à vertical
• Ki e Ki0 são constantes de atenuação da iésima junta
O sistema se baseia em levar o robô como um
todo para uma pose de referência, ou seja, uma
pose marginalmente estável. Quando uma pertubação é detectada através dos sensores de aceleração e velocidade angular, o controlador Fuzzy
modifica as referências das juntas, a fim de manter o equilı́brio do robô. Quando a pertubação
deixa de existir, o controlador Fuzzy volta lentamente a ter ação zero - ou seja, o único sinal de
atuação nas juntas passa a ser a referência angular da pose original. Esse controle atua nas juntas
dos pés, joelhos e quadril do robô. Tal arranjo é
ilustrado na Figura 4.
ISSN: 2175-8905 - Vol. X
Figura 5: Funções de pertinência para a inclinação
do robô.
Tabela 1: Legenda da Figura 5.
Legenda
Mnemônico
1
Muito Negativo
2
Pouco Negativo
3
Estável
4
Pouco Positivo
5
Muito Positivo
A influência do módulo da velocidade angular instantânea do robô foi definida pelas seguintes
funções de pertinência respectivamente mostradas
na Figura 6: ”Muito Devagar”, ”Devagar”, ”Normal”, ”Rápido”, ”Muito Rápido”.
Tabela 2: Legenda da Figura 6.
Legenda
Mnemônico
1
Muito Devagar
2
Devagar
3
Normal
4
Rápido
5
Muito rápido
125
X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil
Referência
de velocidade
da i-ésima junta
Referência
de posição da
i-ésima junta
Pose de
referência
Controlador
Fuzzy
+
+
-
θi
Controlador local da
junta - posição
++
+
-
θ˙i
Controlador local da
junta - velocidade
Estimação de inclinação e velocidade angular
Estado do robô
Motor da i-ésima
junta
Dinâmica do robô
Filtro de
Kalman
Acelerômetro Inclinação
com a
gravidade
Girômetro Velocidade
angular do
robô
Figura 4: Diagrama do controlador Fuzzy.
Figura 6: Funções de pertinência para o módulo
da velocidade angular do robô.
Para as saı́das do sistema foram projetadas
funções de pertinência para a referência de posição e velocidade angular desejada para o controlador PID local do pé, joelho, e quadril. Dessa
forma, foram desenvolvidos os seguintes grupos de
funções de pertinência para a saı́da angular correspondente ao quadril, apresentados na Figura
7: “Muito Negativo”, “Pouco Negativo”, “Ligeiramente negativo”, “Parado”, “Ligeiramente positivo”, “Pouco Positivo” e “Muito Negativo”.
O conjunto de regras que definem o modelo
segue uma lógica empı́rica de forma a descrever
ao sistema o que um ser humano usualmente faz
quando sobre as mesmas influências e condições.
A base de todo o sistema de equilı́brio implementado consiste em levar o centro de massa do
sistema para um ponto de equilı́brio. Dessa forma,
quando o sistema sofre uma perturbação na velocidade a reação implementada é de o robô primeiramente levar seu centro de gravidade para uma
posição de altura inferior proporcionalmente a velocidade adquirida. Para isso seus joelhos e pés se
inclinam para a frente mantendo seu tronco estável. Caso o sistema seja levado para um ângulo diferente do referencial (no caso, o vetor gravidade)
esse agirá de forma a compensar o deslocamento
com um deslocamento do tronco (e.g. caso o robô
caia para trás esse há de inclinar seu tronco para
a frente proporcionalmente à inclinação sofrida e
proporcionalmente à velocidade adquirida).
Dessa forma o conjunto de regras que se aplicam a movimentação do joelho se resumiu as regras indicadas pela Tabela 3.
Tabela 3: Conjunto de regras para o pé e joelho.
Módulo da Velocidade
Muito Devagar
Devagar
Normal
Rápido
Muito Rápido
Figura 7: Funções de pertinência para a angulação
de saı́da para pé e joelho.
Para o joelho e pé as funções de pertinência
utilizadas para o ângulo de saı́da (referência do
controlador PID local) são as semelhantes às utilizadas para o erro angular de entrada.
Para a velocidade de deslocamento das juntas dos joelhos e pé foram escolhidas 5 funções de
pertinência semelhantes as apresentadas para velocidade de entrada. Para as funções de pertinência constam os mesmos mnemônicos apresentados
para a entrada de velocidade porém com apenas a
diferença de escala para os valores. Dessa forma se
torna dispensável a apresentação gráfica da saı́da
de velocidade para pé e joelhos.
ISSN: 2175-8905 - Vol. X
Delta do pé/Joelho
Estável
Pouco Positivo
Pouco Positivo
Muito Positivo
Muito Positivo
Velocidade de saı́da
Muito Devagar
Pouco Devagar
Normal
Pouco Rápido
Muito Rápido
Quanto ao posicionamento do quadril foi necessária uma quantia maior de regras (Tabela 4).
Basicamente as regras servem para definição para
o sistema que esse deve se posicionar na direção
oposta a inclinação que esta sendo sofrida pelo
sistema de forma a levarmos seu centro de massa
para um ponto de equilı́brio. Observa-se que o
robô corrigirá sua postura de forma mais brusca
quando estiver mais desestabilizado e deverá agir
de forma mais sutil quando levemente deslocado
da referência ou deslocado mais porém com velocidade angular relativamente reduzida.
Após a definição das funções de pertinência
e regras apropriadas houve um processo iterativo
de forma a determinar os coeficientes de atenuação para cada junta obtendo uma resposta mais
satisfatória quanto ao equilı́brio e à dinâmica do
sistema.
126
X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil
Tabela 4: Conjunto de regras para o quadril.
Erro do ângulo
Muito para trás
Pouco para trás
Estável
Pouco para frente
Muito para frente
Muito para trás
Muito para frente
Muito para trás
Muito para frente
Estável
Estável
Módulo da Velocidade
Não é devagar
Não é devagar
Não é devagar
Não é devagar
Não é devagar
Devagar
Devagar
Muito devagar
Muito devagar
Devagar
Muito Devagar
4
4.1
Delta do Quadril
Pouco Positivo
Pouco Positivo
Parado
Pouco Negativo
Pouco Negativo
Pouco Positivo
Pouco Negativo
Muito Positivo
Muito Negativo
Parado
Parado
Resultados
Análise Qualitativa
Após várias iterações nas funções de pertinência e
no conjunto de regras, um controlador com bom
desempenho foi derivado. O método inicial de
análise foi a resposta a pequenas pertubações nesse caso, pequenos empurrões no torso do robô.
O robô agia como esperado - em um primeiro momento, o controlador fazia com que o robô cedesse
a pertubação, enquanto abaixava o centro de gravidade através da atuação nos joelhos e pés. Com
o tempo, o robô voltava a sua posição de referência. Contudo, a pertubação não era suficiente para
desestabilizar o robô sem o sistema de controle.
Para pertubações muito pequenas, o robô simplesmente não reagia, pois a própria inércia do
robô já era o suficiente para estabilização.
Os melhores resultados foram para grandes
pertubações e para quando os pés eram mantidos em algum ângulo em relação ao solo e o robô
era solto no plano. Nesses casos, o robô desceu o
centro de gravidade, e a ação do quadril tendeu
a diminuir o efeito da pertubação. Após a absorção do impacto, o robô voltava lentamente a sua
referência.
O sistema de controle aparentou aumentar as
oscilações do sistema em geral, mas aumentou a
faixa de rejeição de pertubações do robô - ou seja,
a resposta transiente foi sacrificada em nome da
estabilidade.
4.2
Análise Quantitativa
A análise quantitativa foi realizada aplicando uma
pertubação controlada e analisando os gráficos de
atuação (Figura 8) e inclinação do robô (Figura
9). A pertubação escolhida foi a força exercida
por uma pequena massa, acelerada por uma mola,
no torso do robô. Podemos classificar a pertubação como pequena, ou seja, o robô era capaz de
se estabilizar sem a ação do sistema de controle
Fuzzy. As Figuras 8 e 9 só mostram os servos do
lado direito do robô, pois a ação do lado esquerdo
é análoga. O momento da pertubação está marcado no gráfico.
O que nota-se é que os controladores internos
das juntas tentam manter a referência a todo custo
ISSN: 2175-8905 - Vol. X
na ausência do controlador Fuzzy - ou seja, as referências dos controladores locais não mudam e as
pequenas pertubações nas juntas sem controle na
Figura 8 são devido a ruı́dos no sistema. Já com
o controlador Fuzzy, observa-se a ação de controle
nos pés e joelhos, e algumas pequenas ações de
controle no quadril.
Pelo gráfico de inclinação, observa-se que o
robô sem controle cede a pertubação, e depois
volta a referência pela inércia - a oscilação se deve
a configuração natural de pêndulo invertido do
robô humanóide.
Já o sistema de controle fez com que o robô se
inclinasse de forma contrária ao pertubação, oscilasse um pouco, e voltasse lentamente ao ponto de
operação (com um pequeno erro de regime pemamente). Essa ação de assemelha a ação de um ser
humano, e confirma a suspeita que o regime transiente foi sacrificado em nome de uma maior faixa
de estabilidade. Esses gráficos mostram que o sistema de controle está agindo como esperado, mas
também mostram que ainda existe muita margem
para melhoria na base de regras e nas funções de
pertinência.
5
Conclusão
Os resultados obtidos mostram claramente que a
presença do sistema de controle aumenta a faixa
de estabilidade do robô ao custo de oscilações no
regime transitório. Tal comportamento era o esperado, pois é bastante semelhante ao comportamento do ser humano.
No balanço geral, a inserção do controlador foi
considerada vantajosa, salvo nos casos extremos
(pequenas pertubações e necessidade de mudança
de região de apoio).
A principal dificuldade encontrada na solução
Fuzzy é a captura do conhecimento especialista,
pois o equilı́brio do ser humano é algo feito de
forma autônoma. A ausência dos braços do robô
também dificultaram muito a estabilização e a criação da base de regras.
Outra dificuldade encontrada foi o custo computacional introduzido pelo controlador Fuzzy em torno de 30 milisegundos, o que limitou a taxa
de amostragem do robô.
Trabalhos futuros devem focar no uso dos braços como auxı́lio na estabilização de postura, e na
captura mais sistemática do conhecimento especialista. O uso de informações extraı́da da cinemática direta e dos sensores de ZMP também podem
ser incorporados para implementação de um sistema de controle completo.
Agradecimentos
Os autores agradecem o CNPq pelas bolsas concedidas através do ProIC-UnB e para os colegas
do LARA pelo apoio ao longo do projeto.
127
X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil
Figura 8: Gráfico de atuação dos servos.
Figura 9: Gráfico de inclinação com uma pertubação controlada.
Referências
Aguiar, H. and Junior, O. (2007). Inteligência Computacional aplicada a administração,
economia, engenharia em Matlab, Thomson
Learning, São Paulo, São Paulo, Brasil.
Cavalcanti, F. B. and Borges, G. A. (2009). Instrumentação inercial para um robô humanóide, XV Congresso de Iniciação Cientı́fica
da Universidade de Brası́lia, Brası́lia, DF,
Brasil.
Robotis (2006). Dynamixel ax-12 user’s manual.
URL:
http://www.robotis.com/zbxe/
dynamixel_en
Robotis (2009). Educational robot kit ‘bioloid’.
URL:
http://www.robotis.com/zbxe/
bioloid_en
Vukobratovic, M. and Borovac, B. (2004). Zero
moment point - thirty five years of its life,
International Journal of Humanoid Robotics
1(1): 157–173.
Cavalcanti, F. B. and Borges, G. A. (2010). Estabilização de marcha para um robô humanóide, XVI Congresso de Iniciação Cientı́fica
da Universidade de Brası́lia.
Xenomai (2011). Xenomai: Real-time framework
for linux.
URL:
http://www.xenomai.org/index.
php/Main_Page
Globo (2011). Universitário inventor ganha bolsa
para estudar nos estados unidos, Entrevista
para Flávia Marsola - DFTV - TV Globo,
concedida dia 8 de Abril de 2011.
URL: http://dftv.globo.com/
Xfuzzy Team, Instituto de Microeletronica de Sevilla, C. N. d. M. (2003). Xfuzzy 3.0.
URL:
http://www2.imse-cnm.csic.es/
Xfuzzy/
Hirai, K., Hirose, M., Haikawa, Y. and Takenaka,
T. T. (1998). The development of honda
humanoid robot, IEEE International Conference on Robotics and Automation, Vol. 2,
pp. 1321–1326.
Prahlad, V., Dip, G. and Meng-Hwee, C. (2008).
Disturbance rejection by online zmp compensation, Robotica 26: 9–17.
ISSN: 2175-8905 - Vol. X
128
Download

ESTABILIZA¸C˜AO FUZZY DA POSTURA DE UM ROBˆO