2012 - pontifícia universidade católica do rio de janeiro

41
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

Upload: others

Post on 01-Feb-2022

3 views

Category:

Documents


0 download

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

DeltaAng

Coxa

DeltaAng

Tornozelo

DeltaAng

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

DeltaAng

Coxa

DeltaAng

Tornozelo

DeltaAng

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/