2012 - puc-rio · mas, para que esta relação “troca e queda” seja bem harmoniosa ao ponto do...
TRANSCRIPT
Robô Bípede na plataforma Lego Rodrigo Santos Vieira
Iniciação Científica
Programação de Robô Bípede na plataforma LEGO Mindstorms
utilizando técnicas inteligentes de programação
Aluno: Rodrigo Santos Vieira Matrícula: 0821219
Orientadora: Pós-doutora Professora Karla Tereza Figueiredo Leite
2012.1
Robô Bípede na plataforma Lego página 2
Sumário
Introdução ....................................................................................................................................... 3
Objetivos ......................................................................................................................................... 4
Metodologia .................................................................................................................................... 4
1. Estudo do Corpo Humano em repouso .................................................................................... 5
2. Estudo dos membros inferiores em movimento ....................................................................... 9
3. Estudo das Especificações Técnicas das peças disponíveis para a montagem do Robô e
Especificações de software ................................................................................................................11
6. Definição do modelo do robô e de seus movimentos ..............................................................17
7. Construindo o robô ................................................................................................................20
8. Simulador de movimento para implementação da programação das técnicas inteligentes ........27
9. Primeiro teste – Verificando se a montagem do robô é válida .................................................38
10. Propostas futuras ...................................................................................................................40
11. Bibliografia ...........................................................................................................................41
Robô Bípede na plataforma Lego página 3
Introdução
É crescente a utilização de robôs no resgate de feridos em acidentes, mas a
tecnologia tem potencial para ampliar esse uso. Além de maior precisão, podendo chegar mais
rapidamente aos feridos, os robôs podem evitar riscos para os bombeiros e pessoal de resgate.
É por isto que engenheiros do mundo todo procuram desenvolver robôs de resgate cada vez
mais precisos e com maior autonomia. Além dos desastres naturais, principalmente os
terremotos, que vitimam milhares de pessoas anualmente, um grande número de trabalhadores
da construção civil e de minas é vítima de acidentes que resultam em soterramentos. Nem
sempre os locais onde estão as vítimas são acessíveis aos bombeiros, e um robô que possa
levar água, alimentos e oxigênio, pode fazer a diferença entre a vida e a morte do acidentado,
que poderá ser atendido antes que o pessoal de resgate chegue até ele. Também são
importantes os robôs utilizados em inspeções técnicas em locais de difícil acesso ou
insalubres. A maioria dos estudos teóricos e práticos sobre robôs móveis está relacionada a
robôs que se deslocam através do uso de rodas, o que facilita bastante o controle, mas
dificulta a sua capacidade de deslocarem em ambientes irregulares, nos quais podem ser
encontrados desníveis e/ou degraus. Dessa forma, para que um robô móvel possa se deslocar
livremente em ambientes irregulares, ele deveria ser dotado do mesmo mecanismo de
locomoção utilizado pelos seres humanos ou animais. Assim, como a maioria dos seres vivos
ele precisaria de pernas (BEKEY, 2005). A execução deste projeto contribuirá com o avanço
do conhecimento e para o desenvolvimento de máquinas mais inteligentes com o objetivo de
substituir o Homem em atividades que possam causar o prejuízo à saúde ou mesmo à própria
vida deste. Dessa forma, a motivação deste projeto é desenvolver pesquisa na área de robótica
através de modelos de robôs com capacidade de navegação para atingir metas específicas, tais
como encontrar pessoas feridas em desastres e realizar inspeções.
Robô Bípede na plataforma Lego página 4
Objetivos
O trabalho proposto, a ser desenvolvido em parceria com outro aluno, tem por
objetivos desenvolver o conhecimento sobre: a tecnologia de sensores para geolocalização e
monitoramento do deslocamento (acelerômetros, giroscópios, etc) para navegação autônoma
de robô bípede através da plataforma LEGO MindStorm, visando o desenvolvimento de
caminhar baseado em comportamento humanóide. A pesquisa será capaz de oferecer
capacitação no uso de robôs reais a partir do desenvolvimento de modelos que permitam o
robô real caminhar e realizar deslocamentos básicos, imitando a dinâmica da marcha humana.
Assim, será possível estudar estratégias de controle para manter sua estabilidade em ambiente
estruturado. Serão investigadas técnicas baseadas em inteligência computacional tais como
Lógica Fuzzy, capazes de dotar o agente-robô com raciocínio para realizar suas tarefas
autonomamente
Metodologia
A metodologia consistirá, primeiramente, de estudo e compreensão dos modelos e
sensores oferecidos pela LEGO MindStorm apropriados para realizar tarefas de locomoção e
controle, pois o laboratório ao qual a professora orientadora está relacionada possui 10 robôs
dessa plataforma. O próximo passo é a investigação, o desenvolvimento e a aplicação, em
ambiente real, de modelos computacionais inteligentes que auxiliem o agente-robô a atingir
suas metas considerando os sensores disponíveis para o caminhar (acelerômetros, giroscópios,
sensor de som, ultrassom). Finalmente, os resultados serão observados e relatados. Atividades
a serem realizadas: I. Levantamento bibliográfico relacionado ao tema; II. Estudo e
investigação modelagem para navegação do agente-robô bípede na plataforma LEGO
MindStorm; III. Desenvolvimento de modelos de navegação e controle para robô bípede
baseado em inteligência computacional utilizando em Lógica Fuzzy na plataforma
MindStorm; IV. Testes e avaliações de desempenho de tais modelos; V.
Documentação através de relatórios e produção de um artigo sobre a pesquisa
desenvolvida e sobre os resultados obtidos.
Robô Bípede na plataforma Lego página 5
Figura 1 - Esqueleto humano
1. Estudo do Corpo Humano em repouso
Segundo os autores Carlos Barros e Wilson Roberto Paulino no livro “O Corpo
Humano”, a locomoção do ser humano é devida a uma atuação dos ossos, músculos e
ligamentos localizados nos membros inferiores, no qual esse movimento é coordenado e
comandado pelo cérebro.
Ossos
Os ossos são elementos estruturais que dão firmeza ao
corpo para manter-se ereto. São constituídos de cálcio e
extremamente rígidos. A união entre os ossos são chamadas
articulações, nelas encontram-se fluidos que permitem que um
osso rotacione em relação ao outro com um certo grau de
liberdade, não permitindo que um osso se separe do outro.
Pode-se dizer, então, que a estrutura óssea dos membros
inferiores é formada por estes principais grupos de ossos:
I - Ossos do quadril (púbis, ilíaco, sacro, etc);
II - Ossos da Coxa (fêmur);
III - Ossos do Tornozelo (tíbia e fíbula);
IV- Ossos do Pé (tarsos, metatarsos, falanges, etc).
Já as articulações se separam em 3 principais:
A – Articulação do quadril;
B – Articulação do joelho;
C – Articulação do pé.
Robô Bípede na plataforma Lego página 6
Figura 2 - Ossos dos membros inferiores
Músculos
Para a locomoção é utilizado o sistema muscular para proporcionar as
movimentações dos ossos em torno de suas articulações.
As contrações e relaxamentos dos músculos fazem com que seus tamanhos
reduzam ou aumentem drasticamente, resultando em movimentações com alto módulo de
força e de velocidade. E, para que essa capacidade de deslocamento se transforme em uma
ação de movimento do corpo, há elementos chamados tendões que ligam os ossos aos
músculos.
Robô Bípede na plataforma Lego página 7
Figura 3 - Músculos ligado aos ossos pelos tendões
Dimensão dos membros inferiores
Inspirado no Homem Vitruviano, desenho de Leonardo da Vinci que ilustrou as
proporções do corpo humano descritas pelo arquiteto Romano Marcos Vitrúvio Polião, este
trabalho se desenvolverá em torno das proporções de tamanho e de distribuição do peso do
corpo humano, no intuito de repetir este modelo no robô a ser construído.
Vitrúvio, a partir de teorias de geometria, expôs que em todo corpo humano há
proporções de tamanho entre as partes constituintes e que todas as proporções encontradas se
baseiam na razão áurea, a divina proporção (1,66). Além disso, Vitrúvio reparou que o centro
de gravidade do ser humano em posição ereta está contido no umbigo.
Robô Bípede na plataforma Lego página 8
Figura 4 - O Homem Vitruviano
Como estas informações ainda não são suficientes, a consulta em revistas técnicas
de ilustração se fez necessária. Segundo as mesmas, o corpo pode ser esboçado a partir da
definição do tamanho da cabeça humana.
Figura 5 - Esboço do corpo humano
A partir do desenho acima, pode-se ver que a proporção aproximada da coxa, do
tornozelo e do pé com relação à cabeça é, respectivamente, de 2, 2 e 1/4; ou seja, as medidas
das coxas e tornozelos são iguais e a medida do pé é um oitavo do tamanho da coxa.
Em posse desses dados, a montagem do robô se fará de forma mais fácil.
Robô Bípede na plataforma Lego página 9
2. Estudo dos membros inferiores em movimento
A caminhada humana consiste de: enquanto um pé está apoiado ao chão, o outro
realiza um movimento que desloca o centro de massa do corpo, fazendo o mesmo tombar para
frente e se apoiar no pé que estava se movimentando. Se o processo for repetido por
sucessivas vezes, variando o pé de apoio, ocorrerá o deslocamento em grandes distancias do
corpo para avante.
Mas, para que esta relação “troca e queda” seja bem harmoniosa ao ponto do ser
humano não se desequilibrar e cair no chão, nada melhor que estudar o movimento de
caminhada, “passo a passo”, de um ser humano através de um filme.
No processo de análise do filme nota-se que o ser humano utiliza um sistema de
rotação do quadril para compensar o deslocamento do centro de massa do corpo durante o
movimento da caminhada e, assim, o corpo mantém o equilíbrio. Como a versão do robô a ser
criado terá muitas limitações de movimento (motivo será explicado em alguns tópicos a
frente), as pernas terão que ser ligeiramente arqueadas, principalmente na posição inicial, em
alguns graus para haver algum espaço de compensação no movimento de caminhada para que
haja equilíbrio.
Figura 6 - Balanceamento realizado pelos quadris
Repara-se, todavia, que o movimento de caminhada pode ser dividido em etapas.
Então, serão separados através de fotos, alguns frames que mostrem mudanças significativas
de movimento em grupos musculares importantes (os quais estão ligados aos ossos da coxa,
tornozelo e pé). Este foi um dos melhores resultados encontrados, pois através dos quadros
Robô Bípede na plataforma Lego página 10
principais serão extraídos os ângulos para, posteriormente, serem aplicados ao robô e, dessa
forma, o mesmo possa repetir o movimento humano.
A primeira foto refere-se ao movimento inicial no qual a pessoa sairá da posição de
repouso com os dois pés “lado a lado” apoiados ao chão; e, por este motivo, esta requer uma
análise diferente. Para as demais, nota-se 8 quadros principais que se repetem ao longo da
caminhada, porém com os 4 primeiros movimentos semelhantes aos 4 últimos, apenas com a
diferença de estarem com os pés de apoio trocados.
E os ângulos a serem passados para o robô serão medidos a partir da posição de
cada seção da perna com relação ao referencial (o ângulo zero), contido numa reta paralela ao
eixo vertical.
22,5°
24,2°
24,8°
90,0°90,0°
24,1°
31,9°
22,9°
59,0°
90,0°
23,4°
40,7°
39,2°
23,2°
85,9°90,0°
21,1°
9,7°
28,8°
23,2°
90,0°90,0°
21,1°
17,3°
90,0°
38,8°
39,1° 10,6°
14,6°
2,9°
Figura 7 - Principais movimentos de caminhada humana
Posição inicial
Robô Bípede na plataforma Lego página 11
3. Estudo das Especificações Técnicas das peças disponíveis para a
montagem do Robô e Especificações de software
Para esta iniciação científica foi escolhido o Kit da empresa LEGO de peças
montáveis chamado “LEGO NXT Mindstorm 2.0”, por ser uma plataforma robótica
relativamente barata, por habilitar a montagem de qualquer robô dada a sua facilidade de
encaixe entre peças e por ter uma vasta gama de soluções em software para a sua
programação.
Este Robô é dividido em peças montáveis, sensores, atuadores, e na central de
comando denominada de Bricx NXT .
Figura 8 - Caixa do kit Lego NXT Mindstorm
Abaixo segue as especificações técnicas de cada uma das partes citadas acima.
Bricx NXT
Segundo a fabricante LEGO estes são os dados de Hardware da Central de
Comandos:
Robô Bípede na plataforma Lego página 12
Processador
principal
Atmel 32 bit ARM processador, AT91SAM7S256
(256KB flash)
64KbRAM
48Mhz
Co- Processador
Atmel 8 bit
4KB flash
512 ByteRAM
48Mhz
Bluetooth
wirelless communication Suporta Serial Port Profile(SPP)
USB 2.0
Communication Full speed port 12 Mbits/s
Entradas 4 entradas de 6 fios com conectores RJ-12, com
entradas digitais e analógicas, (uma porta é de alta velocidade)
Saídas 3 saídas para motores ( também para leitura dos
encoders dos motores)
Display 100x64 pixel LCD Preto e Branco. Área de
visualização: 26X 40,6mm
Loudspeaker 8-bit de resolução
Butons interface Tem 4 botões de interface
Alimentação 6 pilhas AA ou Bateria recarregável específica para
o kit
Robô Bípede na plataforma Lego página 13
Bateria
Projetada para uso com LEGO NXT Mindstorm, é
fabricada de Lithium Ion Polymer para fornecer 7,4V e
1400ma/h contra os 9V disponíveis por pilhas AA. Entretanto,
é recarregável e o efeito memória é nulo (possui um plugue
DC para a conexão de um carregador) ; sendo, dessa forma,
uma ótima alternativa para pilhas normais „AA‟. Seu peso é de
aproximadamente 108g e quando conectado ao bricx o peso
total fica em torno de 256g
Motores
Este motor é específico para o conjunto NXT
(2006). Inclui um codificador de rotação (encoder),
retornando em graus ao bricx NXT a posição de rotação do
eixo com um erro de ±1°. A rotação completa tem 360º. E
os graus rotacionados são acumulados. Sua velocidade de
rotação é lenta, porém tem um bom torque – minimizando
a necessidade de reduções de rotação. Peso estimado: 80g.
4. Relação Potência x Velocidade
A potência do Motor é dada numa escala de 0 a 100%, porém não há dados na
literatura que digam o quanto de potência é consumida ou qual é a velocidade de rotação se
for aplicada tal percentagem. Uma possível explicação seria que a própria fabricante LEGO
não distribui estes dados, pois sabe que o consumo de potência pelo motor varia conforme o
“peso” da carga que o motor estiver suportando.
Mas, o professor Philippe E. Hurbain, com a publicação em seu site com o título de
“LEGO® 9V Technic Motors compared characteristics”, mostrou por meio de diversos
experimentos em vários motores da marca LEGO, como se comporta a velocidade do motor
NXT conforme a carga aplicada, através do gráfico 1 de ‘Velocidade(rpm) versus Potência
(%)’.
Robô Bípede na plataforma Lego página 14
Motor não carregado; alimentação do NXT de
9V (pilhas alcalinas). Resultado: comportamento linear
com o máximo de 160rpm.
Motor não carregado; alimentação do
NXT de 7.2V (baterias NiMH e de Lithium-ion) –
Resultado: comportamento linear.
Motor com carga de 11,5 N.cm de
torque aplicado no eixo. NXT alimentado com 9V, sem
utilizar o controle de energia nos motores. Resultado:
até 40% o motor está parado. Acima deste valor, varia
linearmente.
Motor com carga de 11,5 N.cm aplicada. Alimentação do NXT de 9V, com
controle de energia nos motores – obs.: movimento abaixo de 10% muito irregular – linear até
60%. Após, estabiliza para 120rpm.
Motor com carga de 11,5 N.cm aplicada, com 7,2V de alimentação no NXT,
com controle de energia nos motores. Comportamento Linear até 40%. Após, a velocidade se
estabiliza em 90rpm.
5. Analisando o torque aplicado ao motor
Para analisar o torque máximo que o motor pode aguentar, o Professor Philippe diz
que se for aplicado a velocidade máxima no motor e se gradualmente este for frenado até seu
eixo travar, será notado que o motor funcionou até uma carga de 50N.cm consumindo 2A de
corrente. Este valor de corrente é muito elevado para um aparelho eletrônico tão sensível.
Naturalmente, através de um gráfico de Corrente(mA) versus Torque(N.cm) ele propôs uma
faixa de valores aceitáveis de carga para o motor, que fica entre 0 e 15N.cm, pois nessa faixa
a corrente do motor varia de 0 a 500mA. Há possibilidade de se operar acima de 15N.cm
desde que seja por poucos segundos.
Gráfico 1 - RPM versus Potência (%)
Robô Bípede na plataforma Lego página 15
Gráfico 2 - Corrente versus torque
Software
A própria LEGO fornece um software de programação do bricx NXT (chamado de
LEGO Mindstorm NXT 2.0). Nele há todos os recursos para acessar motores e sensores.
Porém sua estruturação foi feita para que, de forma intuitiva, crianças e adolescentes possam
confeccionar simples programas. Logo, este programa contém algumas limitações de
programação mais avançada, não levando, consequentemente, o NXT ao total potencial de
programação que ele possui.
Figura 9 - Software disponibilizado pela LEGO
Robô Bípede na plataforma Lego página 16
Além disso, como serão utilizadas técnicas inteligentes de programação como
Redes Neurais, Algoritmos Genéticos e Lógica Fuzzy, uma das melhores ferramentas para se
desenvolver esta programação é o MAT LAB. Ele é um software que realiza cálculos
especializados para a engenharia, e nele já há toolkits prontos para se aplicar as técnicas
inteligentes. Neste trabalho será utilizado a versão 2011b.
Figura 10- Logo do software MATLAB
Mas para que o MATLAB seja utilizado para controlar o LEGO é preciso adicionar
um toolkit de comunicação e controle. Há vários no mercado. O mais simples e mais
desenvolvido é o kit da RWTH Aachen University chamado “RWTH - Mindstorms NXT
Toolbox for MATLAB”.
Esta ferramenta foi projetada para controlar o LEGO Mindstorm NXT com o
MatLab via conexão Bluetooth ou USB, através de funções que interagem diretamente com o
robô em tempo real, controlando-o remotamente. Neste trabalho será utilizada a versão 4.07.
Figura 11 - logo da RWTH - Mindstorms NXT Toolbox for MATLAB
Robô Bípede na plataforma Lego página 17
6. Definição do modelo do robô e de seus movimentos
Segundo os pesquisadores e desenvolvedores do Wabian-2R do laboratório Atsu
Takanishi da Waseda University do Japão, um robô humanoide que consegue reproduzir
perfeitamente com todos os graus de liberdade o movimento do caminhar humano, deve
possuir os atuadores descritos na figura abaixo:
Figura 12 - Robô Wabian
Conforme o modelo do Wabian, para ser produzido um robô que reproduza todos
os movimentos dos membros inferiores humanos, será preciso mais de 18 atuadores. Como
cada Central NXT possui apenas 3 saídas para motores, precisa-se de 6 NXTs ligados uns aos
outros para que o robô ande. Se pensarmos que cada atuador pesa 80g e cada NXT com
Bateria pesa mais de 256g, fora o peso das peças, o robô a ser construído teria uma grande
dimensão e um peso excessivo (acima de 3kg), aplicando um grande torque nos eixos dos
motores e por consequência seria preciso fazer reduções nos mesmos, tornando o robô
extremamente lento.
Por consequência, o número de graus de liberdade de rotação do modelo abordado
deverá ser limitado, até que se encontre o modelo mais simples possível que satisfaça as
condições do trabalho.
Os primeiros graus de liberdade de rotação que serão cortados são os de rotação do
quadril em relação com a coluna e as pernas. Estas rotações estão atreladas a possibilidade de
Robô Bípede na plataforma Lego página 18
Figura 13 - Modelo simples
do robô bípede
se incluir 4 motores no humanoide. Como esse robô precisa da rotação do quadril, essa
necessidade será sanada adotando-se leves angulações nas partes das pernas para que as
mesmas fiquem ligeiramente arqueadas, dando espaço suficiente para algumas reações de
equilíbrio.
Os segundos graus de liberdade que serão excluídos são os de rotação e de
movimento lateral da coxa. Com esses, são menos 4 atuadores.
Por fim, outros graus de liberdade eliminados são os minuciosos dos pés, retirando-
se o movimento dos dedos e o movimento lateral dos pés. Menos 4 atuadores.
Com isso, o modelo mais simples foi definido,
constituído de somente 6 atuadores. Nesta condição, o robô usará 6
motores e 2 bricxs e pesará perto de um quilograma com a bateria
incluída.
Modelo de 3 articulações:
1 - Articulação do quadril: une o fêmur com os ossos do quadril;
2 - Articulação do Joelho: une o fêmur com os ossos do tornozelo;
3 - Articulação do pé: une os ossos do tornozelo com os ossos do pé;
A – Fêmur - osso da coxa;
B – Tornozelo - ossos da panturrilha;
C – Pé - ossos do pé;
D – Quadril - Ossos da Bacia;
E – Tronco - ossos do restante do corpo;
d – perna direita;
e – perna esquerda.
A
B
C
e
D
2
d
E
1
3
Robô Bípede na plataforma Lego página 19
Como descrito nas primeiras partes do trabalho, para se estimar a posição das
pernas do robô usam-se os ângulos que cada parte da perna faz com relação ao eixo vertical.
Conforme imagem:
Ang1 – Ângulo medido entre a vertical e o
fêmur na junta do quadril;
Ang2 – Ângulo medido entre a vertical e o
tornozelo na junta do joelho;
Ang3 – Ângulo medido entre a vertical e o pé
na junta do pé.
Com relação à referência de medida dos ângulos:
+_
0ºAngulos
positivos
Angulos
negativos
Articulação
Osso
Posição 1
Osso
Posição 2 .
Figura 15 - Como foram medidos os ângulos na perna
B
C
1
2
3
AAng1
Ang2
Ang3
Figura 14 - Perna do Robô e seus ângulos
Robô Bípede na plataforma Lego página 20
7. Construindo o robô
Foram construídas diversas versões mostradas abaixo:
Mas, o robô somente foi corretamente montado quando foram respeitadas algumas
regras:
1. Construir o robô adotando o menor tamanho possível para diminuir o braço de
alavanca do torque no motor;
2. Possuir o menor peso possível para diminuir a magnitude do torque no motor;
3. Necessita-se que as pernas estejam lateralmente mais próximas uma da outra para
diminuir o torque lateral quando uma perna for levantada, já que a compensação do
centro de massa pela rotação do quadril não será possível.
4. O tamanho do tornozelo seja aproximadamente igual ao da coxa.
Robô Bípede na plataforma Lego página 21
Com as regras e o modelo definido habilita-se a próxima fase que é o desenho do
protótipo no software da LEGO (LEGO Digital Designer) do modelo que será passado para o
mundo real.
11
2,5
0m
m1
17
,50m
m9
7,5
0m
m
34
2,5
0m
m
15
,00
mm
105,00mm
65,00mm
39,00mm
7,50mm55,00mm
73,50mm
47,00mm
Figura 16 - Primeiro Protótipo implantado – versão janeiro 2012
Esse modelo foi implantado e após alguns testes básicos, como o de levantar a
perna e mandá-lo parar e segurá-la no ar não houve um resultado satisfatório. O robô somente
conseguia segurar a perna por pouco tempo. Foi reparado, também, que a cabeça ainda estava
muito pesada, fazendo desequilibrar-se quando colocado de pé com as suas articulações
travadas. Além disso, é notável a dificuldade de manuseio devido a muitas articulações e de
realização de testes. Logo, foram feitas modificações no robô.
A primeira modificação feita foi na redução de peso, para isso foram retirados os
itens mais pesados do robô, que são as baterias. A partir de uma base de conexão, conectamos
externamente as duas baterias ao NXT via dois cabos de alimentação.
A segunda modificação seria no tamanho do NXT. Foram retiradas algumas peças e
as distâncias diminuídas entre os motores. As mudanças de tamanho foram pequenas,
entretanto, muito significativas para a condição de parada no ar.
Robô Bípede na plataforma Lego página 22
A terceira modificação foi a construção de uma base para segurar o NXT, com o
objetivo de serem realizados diversos testes sem ter que segurá-lo, reajeitando sua posição e
se preocupando com o equilíbrio, até que toda a programação esteja completa e o robô possa
andar sozinho.
Nesta base criou-se uma plataforma que segura o NXT com esquemas de
contrapeso, pois, além de segurar o LEGO, ele também dá certa liberdade de locomoção com
relação ao eixo vertical. Isso é vantajoso, porque, quando as pernas se movimentam,
geralmente o robô altera sua altura. E, para facilitar o processo ainda mais, construiu-se uma
pequena esteira para que o robô possa andar sem que saia do lugar.
No final este foi o resultado:
105
,00m
m1
04
,70m
m9
5,0
0m
m
32
4,0
0m
m
19,3
0m
m
99,08mm80,00mm
32,00mm
40,00mm63,00mm
49,00mm
32
4,0
0m
m
Figura 17- Robô final – versão março 2012
Robô Bípede na plataforma Lego página 23
Figura 18 - Baterias ligadas aos Bricx NXT externamente
Figura 19 - Plataforma criada para suspender o robô bípede
Robô Bípede na plataforma Lego página 24
A partir desse modelo pronto, foram realizados testes preliminares com o
intuito de verificar se o mesmo poderia suportar as forças e torques aplicados e se ele
conseguiria realizar o movimento de caminhada. Após muitos testes, o modelo foi invalidado,
pois o torque estava muito grande para as articulações de coxas e tornozelos.
Durante todo o primeiro semestre de 2012, foram relatados os seguintes erros
com este modelo:
Pés do lego muito frágeis e pequenos - necessidade de produção de um pé com
material fora da plataforma;
A trava do motor elétrica consome muita energia e é forte, porém não era suficiente
para aguentar o torque aplicado principalmente aos eixos da coxa e do pé;
Tempo de reenvio de comando para alteração de velocidade o motor é muito grande e,
como a quantidade de giro do eixo é também de mesma magnitude, o controle dos
ângulos era prejudicado, deste modo, não havia possibilidade de controlar o robô;
O torque aplicado à coxa era muito grande quando uma das pernas era levantada,
assim, conseguia alcançar o ângulo requerido;
O torque aplicado ao pé era muito grande de forma que não deixava o robô ficar ereto;
Foi constatado que o movimento pélvico de equilíbrio é crucial, pois, sem esse
controle, o robô caía quando uma das pernas era levantada;
Como os motores foram feitos para imprimir grandes velocidades e muitas
quantidades de giros em um robô de rodas, para que o movimento da caminhada fosse
realizado, era necessário reduzir muito a velocidade para imprimir pequenos ângulos,
de forma que a potência aplicada ao motor ficasse em torno de 10% do seu melhor
desempenho, ou seja, o torque do motor estava prejudicado, não realizando o que
deveria.
Desta forma, houve a necessidade de modificar o modelo para um novo. As
modificações foram cruciais: as articulações citadas acima receberam reduções mecânicas
compostas de engrenagens; as cabeças do robô foram retiradas e coladas em um suporte; foi
criado um “novo pé” com material alternativo e foi criado um movimento de “molejo” nos
pés, o qual substitui o movimento pélvico.
Robô Bípede na plataforma Lego página 25
Figura 20 - Robô – versão início de julho 2012
Podem-se ver os detalhes da redução através de engrenagem no motor. Uma volta
completa do motor equivale a 120° de rotação da articulação.
Figura 21 - Detalhes das articulações da coxa, do joelho e do pé, respectivamente
O movimento de “molejo” no pé foi criado para que o robô suporte seu próprio
peso quando o robô estiver apoiado somente em um só pé.
Robô Bípede na plataforma Lego página 26
Figura 22 - "Molejo" realizado pelo pé do robô
O suporte serve somente para carregar os NXTs e eles são interligados aos
atuadores através de cabos, não influenciando no movimento do robô. Para acompanhar a
caminhada do robô foram colocados motores e rodas.
Figura 23 - Suporte
Robô Bípede na plataforma Lego página 27
8. Simulador de movimento para implementação da programação das
técnicas inteligentes
Agora com os principais movimentos e com o robô definidos, há a necessidade de
se criar um simulador para extrair corretamente os valores angulares encontrados no filme
gravado. Isso possibilitará fazer algumas correções no movimento. O simulador também
possibilitará a construção e teste dos cálculos cinemáticos do robô.
Figura 24 - Simulador do Robô Bípede
O simulador foi criado em cima do modelo tridimensional Cartesiano, onde o
principal movimento analisado, o movimento pela lateral do corpo, está contido dentro dos
eixos X e Y, correspondentes ao deslocamento para frente e a altura do robô.
Mas para fazer o simulador, primeiro houve a necessidade de se fazer a cinemática
direta, que são os cálculos necessários para estimar a posição do robô.
Descrição da cinemática para somente uma perna:
Nesta parte definimos uma função chamada de cálculo de posição de perna (
“[Xjuntas, Yjuntas] = CalculoPosicaoPerna(angCoxa, angTornozelo, angPe);” ), que irá
Robô Bípede na plataforma Lego página 28
servir tanto para a perna esquerda quanto para a perna direita, onde ao introduzir-se os
ângulos no qual as partes das pernas se encontram a função retorna os valores em X e Y de
cada articulação.
Acontecem as seguintes operações dentro dessa função:
1) Aquisição dos Ângulos atuais das partes com relação ao referencial vertical zero
AC, AT e AP = ângulos da coxa, do tornozelo e do pé, respectivamente.
2) Definição dos Raios, tamanhos das partes da perna.
RaioCoxa = 10,5cm
RaioTornozelo= 10,5cm
RaioPe = 2cm
Raio planta do pé 1=2cm
Raio planta do pé 2=1cm
3) Calculo dos Ângulos acumulados nas juntas
Junta quadril = AC;
Junta joelho = AT +Junta quadril;
Junta pé Direito= AP+ Junta Joelho;
4) Cálculo do Posicionamento em X e Y das juntas - Aplicando matriz de senos e
cossenos
Será utilizado como referencial o quadril, então, como o robô estará em uma esteira
não haverá deslocamento em X do quadril e, o Y do quadril será a soma de todos os Y das
partes.
Robô Bípede na plataforma Lego página 29
Depois desses passos, a função retorna as matrizes X juntas e Y juntas, com os
valores X e Y calculados para a perna.
Cinemática considerando as duas pernas
Após serem obtidos os valores em X e Y de cada perna, repara-se que uma perna
não sofreu interação da outra. Logo, serão feitos estes cálculos agora.
Em X as duas pernas já estão interagidas com os valores de X dos quadris igual a
zero, mas em Y serão encontrados valores diferentes para cada perna, basta, então, que seja
igualado à posição em Y dos dois quadris com as seguintes sequências:
1) Medição da diferença de altura entre as pernas devido à movimentação
2)
3) Escolha do que tem o menor entre Y e para ser
acrescido de DeltaY
Com estes dados já podemos rodar a primeira simulação
Simulador 1
A primeira simulação teve o total de 9 frames e seu principal intuito foi de rejustar
os valores dos ângulos para o melhor caminhar. Os 9 frames feitos foram estes:
Frame 1- posição inicial;
Frames 2, 3, 4, 5 - movimento da perna direita à frente com a perna esquerda apoiada;
Frames 6, 7, 8, 9 - movimento da perna esquerda à frente com a perna direita apoiada.
Robô Bípede na plataforma Lego página 30
Tabela 1 - Tabela com os ângulos das pernas reajustados
Frame
Perna Esquerda Perna Direita
Ang
Coxa
Ang
Tornozelo Ang Pé Ang Coxa
Ang
Tornozelo Ang Pé
1 20 -20 0 20 -20 0
2 20 -20 0 30 -30 0
3 10 -20 0 40 -20 -20
4 0 -25 0 30 5 10
5 -5 -30 -6 25 5 0
6 30 -30 0 20 -20 0
7 40 -20 -20 10 -20 0
8 30 5 10 0 -25 0
9 25 5 0 -5 -30 -6
Então para termos uma caminhada sucessiva, somente é preciso repetir esta série de
quadros.
Abaixo estão as figuras dos 5 primeiros frames.
Figura 25 - Frames dos passos do Robô simulado
Posição inicial
Robô Bípede na plataforma Lego página 31
Simulador 2
Para a segunda simulação foi aplicado uma harmonização dos movimentos para que
eles ocorram de forma suave. Para isto acontecer incrementaram-se algumas dezenas de
pequenos passos entre cada estágio, onde a taxa de mudança dos passos e a quantidade dos
mesmos serão definidos pela diferença angular que deverá ser aplicada em cada parte da
perna. A diferença angular é definida pela subtração do ângulo correspondente ao estágio
atual e pelo ângulo do próximo estágio a ser alcançado. O mais importante é que,
independente da diferença angular de cada parte da perna, as partes tem que chegar ao mesmo
tempo no lugar a ser alcançado.
Abaixo segue uma tabela com a diferença angular entre estágios
Delta Frame
Perna Esquerda Perna Direita
DeltaAng
Coxa
DeltaAng
Tornozelo
DeltaAng
Pé
DeltaAng
Coxa
DeltaAng
Tornozelo
DeltaAng
Pé
1-2 0 0 0 10 -10 0
2-3 -10 0 0 10 10 -20
3-4 -10 -5 0 -10 25 30
4-5 -5 -5 -6 -5 0 -10
5-6 35 0 6 -5 -25 0
6-7 10 10 -20 -10 0 0
7-8 -10 25 30 -10 -5 0
8-9 -5 0 -10 -5 -5 -6
9-2 -5 -25 0 35 0 6
Depois de feita esta tabela, a definição do número de passos e tamanho dos passos
que acrescerá em cada ângulo estão definidos abaixo:
Velocidade Média= soma dos DeltaAngs/6;
Referencia= Maior Delta Ang
Tamanho do passo médio= Velocidade média/8
Número de passos = Referencia/Tamanho do passo médio
Tamanho do passo para cada Delta ang=Delta Ang/ Número de passos.
Robô Bípede na plataforma Lego página 32
Exemplo Delta Frame 3-4
Delta Frame
Perna Esquerda Perna Direita
DeltaAng
Coxa
DeltaAng
Tornozelo
DeltaAng
Pé
DeltaAng
Coxa
DeltaAng
Tornozelo
DeltaAng
Pé
3-4 -10 -5 0 -10 25 30
Velocidade Média= (10+5+0+10+25+30)/6=13,33
Tamanho do passo Médio = Velocidade Média*(1/8) = 1,667º
Número de passos = MaiorDelta/ Tamanho do passo Médio=30/1,667=18
Tamanho do passo para:
Coxa Esquerda DeltaAng Coxa/ Número de passos=10/18=0,555º
Tornozelo Esquerdo DeltaAngTornozelo /Número de passos =5/18=0,278º
Pé Esquerdo DeltaAng Pé/Tamanho do passo=0/15=0,00º
Coxa Direita DeltaAng Coxa/Tamanho do passo=10/15=0,555º
TornozeloDireito DeltaAng Tornozelo /Tamanho do passo=25/15=1,39º
Pé Direito DeltaAng Pé/Tamanho do passo=30/18=1,67º
A velocidade de cada parte da perna é definida por um delta de tempo no qual um
passo é aplicado e pelo tamanho do mesmo. Como esta é uma simulação, foi “setado” um
valor muito pequeno de delta tempo, correspondente a 100ms =0,1s;
Velocidade Angular= tamanho passo/delta tempo
Aproveitando o exemplo anterior, a Velocidade Angular para cada parte da perna
será:
Coxa Esquerda 0,555/0,1=5,55 graus/seg;
Tornozelo Esquerdo 0,278/0,1=2,78 graus/seg;
Pé Esquerdo 0,00/0,1=0 graus/seg;
Coxa Direita 0,555/0,1= 5,55 graus/seg;
Tornozelo Direito 1,39/0,1= 13,9 graus/seg;
Pé Direito 1,67/0,1= 16,7 graus/seg.
Robô Bípede na plataforma Lego página 33
Juntando todas essas informações ao Segundo simulador, foi gerado um vídeo de
simulação postado no Site do “YouTube” com o título de “Segunda Simulação do Robô
Bípede para Lego NXT”.
Simulador 3
No terceiro simulador, foram acrescidos os deslocamentos em X. Para este
problema, ao invés do Robô se apoiar no chão e o mesmo se deslocar para frente, foi feita
uma adaptação cujo ambiente, o chão, está se deslocando para trás e o robô foi mantido fixo
em sua posição no eixo X.
Para isso foi definido que: se uma das pernas estiver acima do chão em até 3 mm, a
mesma é considerada como apoio e seu valor em X se torna fixo. Se considerado que o
primeiro toque ao solo, quando a primeira perna tocar chão no ponto mais distante à frente,
for um valor fixo de X, todo o movimento para frente do corpo não será representativo para o
pé desta perna, mas totalmente representativo para as outras partes. Verifica-se que, quando
esta perna de apoio está “atrás” e outra perna estiver a “frente” por consequência do
movimento, o corpo todo obterá um grande deslocamento frontal em X, de forma que, quando
a perna a frente tocar o solo e a perna de trás se levantar, ela se tornará um novo valor fixo de
X e todo o processo será repetido de modo que os deslocamentos serão somados.
No primeiro ciclo, quando o primeiro pé toca o chão, anotamos este valor uma
única vez na variável chamada “Xacumulado” enquanto este pé servir de apoio. Este valor
somente irá ser atualizado quando o outro pé tocar o chão e, também, este valor somente irá
ser somado a “Xacumulado” uma única vez.
Mas, para isso, precisamos fazer algumas modificações na cinemática das posições
das pernas.
Primeiro calculamos a posição das juntas para cada perna usando a função Cálculo
Posição Perna.
[XjuntasEsquerda, YjuntasEsquerda]=CalculoPosicaoPerna(ACE, AJE, APE);
[XjuntasDireita, YjuntasDireita]=CalculoPosicaoPerna(ACD, AJD, APD);
Onde,
Robô Bípede na plataforma Lego página 34
Após verificado qual perna obteve o menor valor de YPé , os Valores de X serão
readaptados da seguinte forma:
Com mais algumas adaptações o simulador rodou perfeitamente, estimando
também o deslocamento em X.
Simulador 4
Neste simulador foi aplicado o modelo Fuzzy para que ele coordene o movimento
com os ângulos descritos acima. Também foram simulados os sensores giroscópio para
controlar o equilíbrio do robô.
Figura 26 - Sensor giroscópio e sentido de rotação
O giroscópio mede a velocidade angular de rotação com uma resolução de até
+/- 360° por segundo.
Robô Bípede na plataforma Lego página 35
Para passar os valores dos ângulos que foram estabelecidos com relação à
referência vertical para valores de rotação que cada motor deverá fazer, utilizaram-se os
seguintes cálculos:
Depois, são estabelecidas as diferenças angulares que consistem na subtração da
posição futura do odômetro desejada do robô com a posição atual do odômetro.
Os valores das 6 diferenças angulares encontradas são enviadas para as variáveis de
entrada do sistema fuzzy montado para controlar a caminhada e do mesmo saem 6 variáveis
com os valores das potências para os motores.
Outro sistema fuzzy foi montado para controlar o equilíbrio do robô onde somente
há uma entrada correspondente à leitura do giroscópio e saem 6 valores para os motores.
O sistema fuzzy de controle da caminhada é constituído de:
Tela principal
Figura 27 - Toolbox de Lógica Fuzzy
Robô Bípede na plataforma Lego página 36
Entrada Fuzzy
Dentro das variáveis de entrada fuzzy estão “desenhados” os conjuntos fuzzy, onde
após serem lidos os valores dos sensores, alguns desses conjuntos são ativados e, por
consequência, ativam as regras de inferência. Os limites superior e inferior vão de -80° a 80°.
Figura 28 - Conjuntos Fuzzy das variáveis de entrada
Regras Fuzzy
Após estas regras ativadas, ativam-se, por consequência, os conjuntos das variáveis
de saída.
Figura 29 - Regras de inferência Fuzzy
Robô Bípede na plataforma Lego página 37
Saída Fuzzy
Quando os conjuntos das variáveis de saída são ativados, para que gerem uma
resposta de saída, os mesmos são “defuzzificados” pela regra dos centroides. O centroide
analisa toda a área ativada e extrai da mesma o valor médio em X da distribuição dessa área,
sendo este o valor de saída.
Figura 30 - Conjuntos Fuzzy das variáveis de saída
Quanto ao sistema fuzzy de equilíbrio, as grandes modificações relevantes
estão no conjunto de entrada e saída e nas regras.
Figura 31 - Entrada e Saída do sistema de equilíbrio fuzzy, respectivamente
Os resultados foram promissores na adequação da programação inteligente
para controle do robô bípede simulado. A partir deles, somente colocando os comandos
Robô Bípede na plataforma Lego página 38
específicos para a leitura dos odômetros dos sensores, o simulador poderá ser implantado em
modelo real.
9. Primeiro teste – Verificando se a montagem do robô é válida
Os primeiros testes com o antigo modelo foi realizado através da montagem de uma
estrutura simples com apenas uma perna, no qual foi aplicado o movimento de caminhada, de
modo que essa perna estivesse suspensa.
Figura 32 – Passo a passo do movimento com uma perna suspensa
Robô Bípede na plataforma Lego página 39
O movimento parece bom, porém, quando aplicado ao modelo de duas pernas e o
mesmo é encostado no chão, as reações do robô são muito diferentes, não conseguindo
realizar quase nenhum movimento.
Conforme foi dito anteriormente, o modelo antigo não passou no teste de
validação, pois, mesmo quando os motores estavam travados eletricamente, ocorreram muitas
folgas nas articulações, não fazendo com o que o robô não suportasse o próprio peso e não se
mantivesse, de forma nenhuma, de pé. Outra questão é ele não conseguir se manter
equilibrado quando ele estiver apoiado em um só pé. Por essas razões, o novo modelo (versão
início de junho 2012) foi montado.
Os testes realizados previamente já mostraram a grande possibilidade de ele
realizar a caminhada.
Agora, foi efetuado todo o movimento de caminhada com o robô, demonstrando um
grande sucesso deste modelo. Entretanto, o movimento criado foi passo a passo, em que cada
atuador foi ativado separadamente, “dando uma deslocação muito dura, robótica”. Sendo
assim, há grande possibilidade de instalar o fuzzy e torná-la mais suave.
Esse foi o último passo dado na presente data (31/07/2012), em que estão realizados
mais alguns testes e gravações de vídeo.
Robô Bípede na plataforma Lego página 40
10. Propostas futuras
As propostas futuras são de adaptar o sistema que controla o movimento de
caminhada e de equilíbrio do corpo do robô bípede simulado, utilizando a lógica Fuzzy e a
medida do sensor de Aceleração (substituto do sensor giroscópio por dar informações de
desequilíbrio nos três eixos), no novo modelo de robô.
Outra proposta será substituir o modelo de cinemática direta por uma Rede Neural.
A função da mesma, depois de terminado todo o processo de treinamento da Rede, será de
após inserido 6 valores de ângulos correspondentes a cada uma das 6 partes das pernas do
humanoide, a Rede Neural retorne o valor da posição do robô. Também pode-se criar um
modelo de Rede Neural que faça a cinemática inversa, que seria a partir da posição em X e Y
das pernas, a Rede retorne os valores dos ângulos. Este processo é mais difícil e exige mais
tempo de pesquisa.
Uma proposta a ser feita é que: se as duas redes neurais forem bem desenvolvidas,
pode-se utilizar o simulador montado para fabricarem uma programação utilizando a técnica
do „Reinforcement learning‟ (Aprendizado por Reforço), que fará o robô aprender a andar
sozinho, sendo este um dos ápices deste projeto.
Uma vasta gama de outras propostas pode ser feita, como a de aplicar outras
programações inteligentes para fazer este robô desviar de obstáculos, subir em escadas e
objetos, além de se localizar e mapear um ambiente. Mas para cada um desses tópicos
necessita-se de um tempo grande de pesquisa, estudo e desenvolvimento.
Robô Bípede na plataforma Lego página 41
11. Bibliografia
Site da lego mindstorm – “página de suporte”
http://mindstorms.lego.com/en-us/support/files/default.aspx
Site do professor Phellipe Hubain – “LEGO® 9V Technic Motors compared characteristics”
http://www.philohome.com/motors/motorcomp.htm
Site Complubot – Informações técnicas do Lego NXT
http://complubot.educa.madrid.org/pruebas/lego_nxt_version_educativa/lego_nxt_version_ed
ucativa_index.php
Site com informações do Robô Wabian.
http://www.takanishi.mech.waseda.ac.jp/top/research/wabian/index.htm
Site do toolbox - RWTH - Mindstorms NXT Toolbox for MATLAB
http://www.mindstorms.rwth-aachen.de/