Visualizar - Polis Educacional

Transcrição

Visualizar - Polis Educacional
Carlos Eduardo Della Betta
0300181, 8° Semestre
MODELAGEM MATEMÁTICA E SIMULAÇÃO
COMPUTACIONAL GRÁFICA DE UM ROBÔ BÍPEDE
Jaguariúna
2006
Carlos Eduardo Della Betta
0300181, 8° Semestre
MODELAGEM MATEMÁTICA E SIMULAÇÃO
COMPUTACIONAL GRÁFICA DE UM ROBÔ BÍPEDE
Monografia apresentada à disciplina Trabalho
de Graduação, do curso de Ciência da
Computação da Faculdade de Jaguariúna, sob
orientação do Prof. Ms. André Mendeleck, como
exigência parcial para conclusão do curso de
graduação.
Jaguariúna
2006
Betta,
Carlos
Eduardo
Della.
Modelagem
matemática
e
simulação
computacional gráfica de um robô bípede. Monografia defendida e aprovada na
FAJ em 08 de dezembro de 2006 pela banca examinadora constituída pelos
professores:
_________________________________________________________________
Prof. Dr.
_________________________________________________________________
Prof. Dr.
_________________________________________________________________
Prof. Dr.
Dedico este humilde trabalho a todos
aqueles que com muito esforço e fé em
Deus, trilharam COMIGO este longo
caminho e cá estão como vencedores.
AGRADECIMENTOS
Primeiramente a Deus, que me deu a oportunidade de chegar onde
estou hoje.
A todos os meus amigos que com uma palavra, dica ou um simples
gesto me ajudaram. Agradeço a todos que me ajudaram na realização deste trabalho.
Particularmente agradeço: Meu
orientador, Prof. Ms.
André
Mendeleck, pelo seu apoio, confiança e paciência, que foram fundamentais para a
realização e finalização desta monografia.
Aos meus pais Mara e Carlos e irmã Thelds Milena, que com muito
amor me deram apoio, conselhos, e tiveram muita paciência com as longas noites em
claro.
Aos professores do curso de Ciência da Computação que, durante a
graduação, tanto contribuíram para o meu crescimento intelectual e pessoal.
Aos queridos amigos Danilo, Eder e Verdi pelas sugestões, dicas,
conversas e conselhos.
E de uma forma especial, a todos os amigos do curso de Ciência da
Computação pelos momentos alegres durante todos estes anos.
Ninguém é tão grande que não possa aprender,
nem tão pequeno que não possa ensinar.
(Píndaro, poeta romano)
BETTA, Carlos Eduardo Della. Modelagem matemática e simulação computacional de
um robô bípede. 2006. Monografia (Bacharelado em Ciência da Computação) – Curso de
Ciência da Computação da Faculdade de Jaguariúna, Jaguariúna.
RESUMO
Estudos na área de reabilitação têm como objetivo o desenvolvimento de elementos
mecatrônicos visando restaurar a função motora perdida. Atualmente, na reabilitação de
pacientes vítimas de desarticulação nos membros inferiores, que são maiores e mais
compactos, e adaptados para sustentar o peso do corpo para caminhar e correr (composto por
coxa, perna, tornozelo e pé), vem se desenvolvendo cada vez mais próteses robóticas de alta
tecnologia e performance. Que chegam a ter a real função dos membros. Para os projetos de
próteses devemos efetuar simulações para avaliação da viabilidade do mecanismo. A
implementação de um modelo computacional de um robô bípede com três articulações tendo
como inspiração biológica o andar do ser humano. Através do software 3D Blender criamos
um modelo computacional, aliado à linguagem de programação Python que fará a interação
com o usuário. Com os resultados das simulações, pode-se efetuar o desenvolvimento
modelos computacionais de robôs bípedes para o auxilio e para a confecção de próteses que
sejam cada vez mais aperfeiçoadas tecnologicamente e de fácil adaptação.
Palavras-chave:
COMPUTAÇÃO
GRÁFICA,
MARCHA HUMANA, ROBÔ BÍPEDE.
BLENDER,
PYTHON,
PRÓTESES,
BETTA, Carlos Eduardo Della. Modelagem matemática e simulação computacional de
um robô bípede. 2006. Monografia (Bacharelado em Ciência da Computação) – Curso de
Ciência da Computação da Faculdade de Jaguariúna, Jaguariúna.
ABSTRACT
Studies in the area as of rehabilitation they have as a objective the development of
mecatronics elements of refurbish the function on the pump stray. Currently at the
rehabilitation as of patients victims of desarticulation in the inferior members, that are bigger
and more compact and adapted to support the weight of the body to walk and to run
(composition for thigh leg ankle and foot) comes if developing each time prosthesis robotic of
high technology and performance. That they arrive to have the function real of the members.
For the projects of prosthesis it must effect simulation for evaluation of the viability of the
mechanism. In this work we implement a computational model of a robot bípede with three
joints having as biological inspiration the floor of the human being. Through software 3D
Blender we create a computational model ally to the programming language Python that will
make the interaction with the user. With the results of the simulations, the development can be
effected computational models of robots bípedes for assists it and the confection of perfected
prosthesis that are each time more tecnologicamente and of easy adaptation.
Key word: GRAPHICAL COMPUTATION, BLENDER, PYTHON, PROSTHESIS,
HUMAN BEING MARCHES, ROBOT BIPEDE
SUMÁRIO
LISTA DE ILUSTRAÇÕES .......................................................................................10
1. INTRODUÇÃO ......................................................................................................11
2. DESCRIÇÃO DO PROJETO ................................................................................18
2.1 Diagrama estrutural do projeto ................................................................................................................... 18
2.2 Metodologia.................................................................................................................................................... 19
2.3 A marcha ........................................................................................................................................................ 20
2.4 Movimentos articulares................................................................................................................................. 22
2.5 Giro pelo membro inferior de apoio ............................................................................................................ 24
2.6 Projeto ............................................................................................................................................................ 24
2.7 Modelagem matemática ................................................................................................................................ 25
2.8 Caso de Uso .................................................................................................................................................... 29
2.9 Interface ......................................................................................................................................................... 31
2.10 Diagrama funcional (FIG. 14) .................................................................................................................... 33
2.11 Simulação - Modelagem matemática (FIG. 15)......................................................................................... 34
2.12 Simulação do robô bípede estático ............................................................................................................. 36
2.13 Simulação perna esquerda (FIG. 21) ......................................................................................................... 37
2.14 Simulação do robô bípede se locomovendo no plano................................................................................ 39
3. CONCLUSÃO .......................................................................................................44
REFERÊNCIAS BIBLIOGRÁFICAS .........................................................................47
10
LISTA DE ILUSTRAÇÕES
FIGURA 1A – Robô bípede
12
FIGURA 1B – Plano Sagital
12
FIGURA 2
– I-Foot
13
FIGURA 3
– RunBot
13
FIGURA 4
– Asimo
14
FIGURA 5
– RABBIT
FIGURA 6
– Murata Boy
15
FIGURA 7
– Robô bípede RB1/RB2
16
FIGURA 8
– Eventos durante o ciclo da marcha humana
19
FIGURA 9
– Ciclo da marcha
20
FIGURA 10 – Ciclo de marcha
20
FIGURA 11 – Esquema cinemático do robô
22
FIGURA 12 – Membro inferior de apoio
23
FIGURA 13 – Modelo 2D com representação das variáveis da equação
25
QUADRO 1 – Perna diretora e Perna Esquerda
28
QUADRO 2 – Articulações
28
QUADRO 3 – Entrada de dados
29
QUADRO 4 – Executa ou fecha
29
FIGURA 14 – Diagrama Funcional
30
FIGURA 15 – Rotação do objeto
31
FIGURA 16 – Posição inicial
31
FIGURA 17 – Posição final
31
FIGURA 18 – Rotação do objeto
32
FIGURA 19 – Simulação robô bípede perna direita (posição inicial)
32
FIGURA 20 – Resultado dos dados inseridos no sistema
33
FIGURA 21 – Posição inicial da perna esquerda
33
FIGURA 22 – Posição final da perna esquerda
34
FIGURA 23 – Posição inicial 0,00º simulação quadril
34
FIGURA 24 – Posição final com a rotação de 9,60º para o quadril
35
15
FIGURA 25 – Comparação do Ciclo da marcha Vaughan et al., 1992
e o Ciclo de marcha produzido pela simulação computacional 36
FIGURA 26 – Rotação pelo membro de apoio
36
11
1. INTRODUÇÃO
O robô bípede é um exemplo antropomórfico (semelhante à forma humana) de robô, ou
seja, a forma e os movimentos do ser humano sendo aplicados nos robôs. Servindo como uma
plataforma de testes, o robô pode auxiliar no estudo e no desenvolvimento de próteses de
membros inferiores, além disso, os mecanismos projetados para executar os movimentos
articulares do robô podem ser utilizados como ponto de partida para o desenvolvimento de
próteses ativas dos membros inferiores. Suas principais características são o andar e apoiar
sobre duas pernas e sua grande flexibilidade da locomoção, transpondo obstáculos ao longo
do plano.
Através do robô bípede pode ser feita a analise da marcha humana, usada para estudos
de patologias que envolvem os membros inferiores. Pode ser utilizado também para o estudo e
ensino da marcha humana, reproduzindo, para a visualização dos profissionais de saúde,
padrões patológicos(parte da Medicina que estuda as doenças) de marcha atáxica ( Faria, J.
Lopes de – Patologia geral ), hemiparesia espástica, marcha talonante( VOLPON JB.
Semiologia ortopédica. Medicina, Ribeirão Preto, 29: 67-79, jan./mar. 1996 ).
O presente trabalho possui como objetivo o projeto e simulação de um robô bípede com
interface de controle via computador.
Os padrões de marcha que serão simulados são: a marcha normal e o giro pelo membro
de apoio.
O robô bípede construído é capaz de executar de forma assistida, padrões de marcha
reais. As características desse robô são semelhantes as de um corpo humano.
Um robô bípede é composto basicamente por quadril, duas coxas, duas pernas e dois pés
(FIG. 1A), tendo com um mínimo de 3 graus de liberdade para que possa se movimentar pelo
menos no plano sagital (FIG. 1B).
12
FIGURA 1A - Robô bípede
FIGURA 1B - Plano Sagital
O estudo do robô bípede é muito amplo, pois além da área médica, existe também uma
grande contribuição para o campo de robôs móveis, já que possui a habilidade de locomoção
em terrenos com grande número de restrições.
As técnicas de modelagem e simulação implementadas para o robô bípede podem
contribuir para a área da biomecânica, que é responsável pela descrição, análise e
interpretação dos movimentos dos membros do corpo humano (SILVA, 2000).
Além do uso para simulações da marcha humana em laboratórios, os robôs bípedes são
usados como meio de locomoção para deficientes, idosos ou somente como um veículo para
todo tipo de pessoa como mostra a FIG. 2, modelo desenvolvido pela Toyota..
Com o crescimento tecnológico, cada vez mais robôs bípedes são desenvolvidos com
aperfeiçoamentos tecnológicos, que engloba novos softwares que dão mais equilíbrio
capacitando o robô a ter uma marcha mais próxima a do ser humano.
13
Robôs bípedes como I-Foot (Toyota), Asimo(Honda), descritos abaixo, são exemplos
que demonstram os estudos, pesquisas e tecnologia são investidos no desenvolvimento de
robôs.
I-Foot é um robô bípede desenvolvido pela empresa Toyota, para se tornar um meio de
transporte para locomoção de idosos e deficientes físicos em pequenas distâncias. Suas
principais características são o design sofisticado e o andar preciso que o torna capaz de subir
escadas. É controlado através de um joystick instalado na sua cabine oval.
A articulação do joelho se comporta igual a de um pássaro, flexionando para traz,
trazendo a cabine bem perto ao solo para que o usuário tenha acesso à cabine.
O I-Foot pode carregar uma pessoa com até 60 kilos e caminhar a uma velocidade de
1,35 km/h. Seu peso total é de 200 kg, e aproximadamente 2,36 metros de altura.
FIGURA 2 - I-Foot
Fonte: TOYOTA, 2005.
RunBot é um robô bípede de apenas 30 centímetros, que é considerado um dos robôs
bípedes mais rápidos.
O programa que o faz andar é inspirado na forma em que os neurônios controlam seus
movimentos, chamado de controlador neuronal.
O controlador neuronal “aprende” enquanto anda, que dispensa a variedade de sensores
que há em outros robôs bípedes. O controlador responde da mesma forma que um reflexo de
um animal, fazendo com que as pernas se ajustem ao estagio do movimento.
Ele possui apenas dois sensores, um para detectar quando o pé sai e toca o chão.(FIG. 3)
14
FIGURA 3 - RunBot
Fonte: ROBÔ, 2006.
Asimo é o humanóide da HONDA, que interage com seres humanos e tem a capacidade
de executar tarefas simples em escritórios e empresas.
O robô mede 1,30 metros de altura, 52 kg. (FIG. 4), pode correr até a velocidade de 3
km/h, pela inclusão de avançados sensores e mecanismos de equilíbrio, apoiados no
movimento dos braços e da zona pélvica.
A tecnologia utilizada para os movimentos é a Posture Control permite que o robô
exiba um andar mais “humano”. Capaz de detectar e contornar obstáculos através da
tecnologia Autonomous Continuous Movement.
FIGURA 4 – Asimo
Fonte: ASIMO, 2006.
15
RABBIT é o robô bípede com o andar igual ao do ser humano.Com seu design não
muito atraente, mas sendo o único robô bípede capaz de andar exatamente como o ser
humano, inclusive com o balanço natural do corpo.
Ele incorpora conceitos extremamente avançados na forma de andar, que podem ser
aplicados nas próteses inteligentes que auxiliam na reabilitação de pacientes que perderam a
capacidade de andar. O robô tem muitas aplicações no campo médico, principalmente nas
chamadas próteses inteligentes, que se adaptam ao usuário, além de auxiliar na reabilitação
física de pacientes que perderam a capacidade de andar (FIG. 5).
FIGURA 5 – RABBIT
Fonte: ROBÔ, 2005a.
Murata Boy é um robô ciclista que tem um incrível poder de equilíbrio.Construído pela
empresa japonesa Murata Manufacturing, com o intuito de testar seus produtos.
Pode chegar a uma velocidade de 60cm/seg, detecta qualquer tipo de obstáculo e anda
para frente e traz.
Todos os comandos são emitidos via tecnologia sem fio pelo computador para o robô.
Ele é constituído por quatro tipos de sensores: dois sensores giroscópicos para detectar a
velocidade angular e inclinação; um sensor ultrasônico que detecta obstáculos; e um sensor de
choque para detectar a rugosidade da superfície.(FIG. 6)
16
FIGURA 6 - Murata Boy
Fonte: ROBÔ, 2005b.
RB-1 e RB inicialmente RB-1 em 2001, apresentado por pesquisadores da Unicamp.
Em 2002 com algumas modificações que passaram a permitir que o robô bípede girasse para
direita e para esquerda.
É constituído por sete segmentos em alumínio (dois pés, duas pernas, duas coxas, e uma
pelve).Ele tem 48 cm de altura e 2,2 kg.
Através da porta serial do computador os servomotores recebem dados para
movimentar-se para frente e para trás estaticamente, e de sensores de infravermelho para a
localização de obstáculos para a navegação em um plano (FIG. 7).
Seu caráter tecnológico agrega conceitos de dinâmica, inteligência artificial e eletrônica.
Possibilitando o envolvimento de profissionais de diferentes áreas para desenvolvimento de
próteses robotizadas.
FIGURA 7 - Robô bípede RB1/RB2
Fonte: BEZERRA & ZAMPIERRI, 2005.
17
18
2. DESCRIÇÃO DO PROJETO
Implementar um modelo computacional de um robô bípede com três articulações (um
sistema articulado consiste em um conjunto de hastes interligadas por pontos fixos e ou
móveis, permitindo-lhes uma série de movimentos) sendo como sua inspiração biológica o
andar do ser humano.
Através do software 3D Blender será criado o modelo computacional, aliado à
linguagem de programação Python que fará a interação com o usuário, e também a
modelagem matemática transformando os dados inseridos em coordenadas para que o robô se
movimente no plano. Neste caso será tratada a desarticulação do quadril, ou seja, pacientes
que tiveram amputação na articulação do fêmur. Após os experimentos e implementação
computacional, será criado um modelo real do robô bípede.
Através destas simulações, obter resultados para desenvolvimento de próteses que sejam
cada vez mais aperfeiçoadas tecnologicamente e de fácil adaptação.
2.1 Diagrama estrutural do projeto
19
2.2 Metodologia
Estudo da marcha humana e suas patologias, com ênfase na marcha que gira pelo
quadril e pelo membro de apoio;
Estudo das equações para implementação matemática para a execução dos
movimentos do robô bípede no plano tridimensional;
Modelagem de um modelo computacional de um robô bípede composto por quadril,
duas coxas, duas pernas e dois pés;
Programação das equações em Python para a modelagem matemática aliada ao
software de modelagem 3D (Blender);
Integração da codificação em Python (modelagem matemática) com o software de
modelagem 3D (Blender):
Teste da interface gráfica com a modelagem matemática;
Estudo dos movimentos do robô bípede, agregado aos resultados da modelagem
matemática;
Simulação (gráfica + matemática) do robô bípede estático, apenas com o movimento
das articulações;
Analise dos resultados (execução dos movimentos da animação);
Gerar interface para o usuário entrar com os valores;
Implementação da marcha do robô bípede em um determinado plano;
Programação para a saída de dados via porta serial do computador, para que o
modelo real possa receber os dados necessários para a execução dos movimentos;
Analisar resultados;
Conclusão.
20
2.3 A marcha
Através da marcha humana, aplicada ao modelo computacional, é simulado diversos
padrões de marcha para o estudo de patologias que envolvem o aparelho locomotor.
A marcha humana é uma seqüência de eventos rápidos, onde um ciclo de marcha iniciase quando o calcanhar do membro que esta em balanço toca a superfície de apoio, e termina
quando o calcanhar do mesmo toca novamente o solo de apoio. O ciclo da marcha é dividido
em duas fases, sendo a fase de apoio que corresponde ao membro de apoio que está em
contato com o solo, e a fase de balanço que é o membro inferior que não esta mais em contato
com o solo e esta se deslocando para frente (FIG. 8 e 9).
A FIG. 8 de Vaughan et al.,1992 ilustra o ciclo que começa no instante no qual um dos
pés (no caso o pé direito) entra em contato com o solo.
FIGURA 8- Eventos durante o ciclo da marcha humana
Fonte: VAUGHAN, et al., 1992.
Primeiro apoio duplo: quando os dois pés estão apoiados no solo;
21
Apoio simples: quando apenas um dos pés está em contato com o solo enquanto a
outra perna está em balanço;
Segundo apoio duplo: quando os dois pés estão novamente apoiados no solo.
FIGURA 9 - Ciclo da marcha
Fonte: VAUGHAN, et al.,1992.
A marcha é dividida em 8 fases, dos quais 5 ocorrem na fase de apoio e 3 durante a fase
de balanço (FIG. 10).
FIGURA 10 - Ciclo de marcha
Fonte: ROSE & GAMBLE, 1993.
22
CI (contato inicial): início do ciclo da marcha e representa o ponto no qual o centro
de gravidade do corpo está em sua posição mais baixa;
RC (reposta à carga): toda a superfície do pé está em contato com o solo;
MA (médio apoio): a perna em balanço passa pela perna apoiada e o centro de
gravidade do corpo está em sua posição mais alta;
AT (apoio terminal): o calcanhar perde contato com o solo;
PB (pré-balanço): os dedos do pé perdem contato com o solo, terminando a fase de
postura;
BI (balanço inicial): a perna é acelerada para frente;
BM (balanço médio): a perna em balanço passa pela perna apoiada;
BT (balanço terminal): desaceleração do pé preparando o próximo ciclo.
No ciclo completo o centro de gravidade é deslocado duas vezes em seu eixo vertical. A
posição mais alta do ciclo é o MA (médio apoio) e o posição mais baixa ocorre quando as
duas pernas estão sustentando peso com posição de apoiar o calcanhar e a outra em ponta de
dedos CI (contato inicial).
Com a análise dos ciclos da marcha humana é possível fazer a seleção adequada da
equação matemática para a implementação do modelo computacional.
Através da simulação feita com o modelo computacional com a comparação de padrões
de marcha.
2.4 Movimentos articulares
As articulações são responsáveis pela transmissão de movimento angular entre cada
membro movendo-se em direções diferentes.
O movimento ocorre em tomo de um eixo(X Y Z) e de um plano. A articulação sinovial
é uma articulação móvel livre, onde a maioria dos movimentos articulares ocorrem.
A articulação permite 3 movimentos: flexão/extensão, adução/abdução e rotação
interna/externa.
23
A flexão/extensão é o movimento do membro realizado no plano sagital.
A adução/abdução é o movimento do membro realizado no plano frontal.
E a rotação é o movimento do membro realizado na direção do seu próprio eixo.
Entre o pé e a perna há uma articulação que é denominada de tornozelo, entre a coxa e a
perna denominada joelho e por fim, a articulação entre a coxa e a pélvis que é denominada de
quadril.
O robô bípede proposto tem 3 graus de liberdade para cada perna, o joelho com o
movimento de flexão/extensão, o quadril e o tornozelo tenham apenas os movimentos de
flexão/extenção (FIG 11).
FIGURA 11 -: Esquema cinemático do robô
Fonte:
24
2.5 Giro pelo membro inferior de apoio
O giro pelo membro inferior de apoio consiste na troca alternada e que se repete
periodicamente. A princípio cada membro inferior durante o andar pode ser entendido como
um pêndulo.
Nesta fase o membro inferior contra-lateral está na fase de balanço e este membro
inferior comporta-se como um duplo pêndulo articulado no joelho.
A perna de apoio é assumida durante o andar, como um pêndulo invertido como
representado na FIG 12. Através de sua freqüência pode ser calculada e esta pode ser utilizada
como uma estimativa da freqüência de passada do andar.
Considerando que o gasto energético seria minimizado se andarmos com uma
freqüência igual à freqüência natural do sistema.
No modelo computacional (robô bípede) as pernas direita e esquerda do robô passam a
ser considerados atuadores principais no andar. Já que a rotação do corpo do robô passa a ser
feita pelo membro de apoio. Na FIG. 12 o robô faz a mudança de direção em cima do membro
de apoio.
FIGURA 12 - Membro inferior de apoio
Fonte:
2.6 Projeto
O projeto consiste em criar um modelo computacional tridimensional de um robô
bípede com três articulações (três para o lado direito e três para o lado esquerdo), que servirá
como base para implementação da programação em Python (linguagem de programação). Que
25
por sua vez fará a modelagem matemática através de equações estudadas do estudo da marcha
humana.
O modelo computacional terá uma interface para o controle de suas ações, que roda em
conjunto com a ferramenta de modelagem 3D (Blender). Através dessa interface o usuário
poderá executar diversos tipos de simulação, como por exemplo, padrões de marcha para uma
determinada patologia. Com o modelo computacional e a aplicação de modelagem
matemática dos dados rodando juntas, é controlado também o modelo real do robô bípede. Os
dados serão enviados via porta serial do computador, enviando em forma de texto as
instruções a serem executadas pelo robô.
A simulação do movimento e a animação gráfica são atribuídas aos valores das
coordenadas que é inserida através da interface para o usuário.
2.7 Modelagem matemática
Três pontos (A, B, C) representados no plano como A (Ax, Ay), B(Bx, By) e C (Cx,
Cy), sendo A posição X,Y do Fêmur, B posição X, Y da Tíbia, C posição X, Y do Pé. Como
mostra a FIG 13.
A partir da posição atual de cada ponto no plano em X, Y é calculado sua nova
posição/rotação com a equação:
A
Xa = r * cos (ө)
Ya = r * sen (ө)
B
Xb = Xa + r1 * cos(ө + ө1)
Yb = Ya + r1* sen(ө + ө1)
C
Xc = Xb + r2 * cos (ө + ө1 + ө 2)
Yc = Yb + r2* sen (ө + ө1 + ө 2)
26
FIGURA 13 - Modelo 2D com representação das variáveis da equação
O resultado desta equação será uma coordenada para X e uma para Y, dando assim a
respectiva rotação para a articulação selecionada (fêmur, tíbia e pé).
O trecho de código fonte abaixo demonstra o tratamento das coordenadas com a
modelagem matemática feita através da linguagem de programação Python.
#Importando bibliotecas
import Blender
from Blender import *
from Blender import NMesh
from math import *
from Blender.Draw import *
from Blender.BGL import *
import random
from random import *
#Biblioteca responsavel pela comunicação via porta serial
27
import sys, traceback
from Serial import Serial
# Eventos relacinados com a interface
Leg
= 10
Slide = 11
THor = 18
TVert = 19
#Frames por segundo na execucao da animacao
MT= MOVE_TIME = 8.0
# Objetos da cena
# O método objs = Object.Get() função que devolve a lista de objetos que
estão na cena.
# base = quadril
base = Object.Get("base")
# parte_superior = coxa direta
parte_superior = Object.Get("parte_superior")
# parte_inferior = perna direita
parte_inferior = Object.Get("parte_inferior")
# pe = pé direito
pe = Object.Get("pe")
# parte_superior _d = coxa esquerda
parte_superior_d = Object.Get("parte_superior_d")
#parte_inferior_d = perna esquerda
parte_inferior_d = Object.Get("parte_inferior_d")
#pe_d = pé esquerdo
pe_d = Object.Get("pe_d")
#obtém a Cena Corrente
sce = Blender.Scene.getCurrent()
# Valor inicial das variaveis de ângulo
Ang = Create(0.0)
Ang1 = Create(20.0)
Ang2 = Create(30.0)
Ang3 = Create(0.0)
# Perna direita inicia como opção atual (1), e esquerda a ser
selecionada(0)
IsInferior = Create(0)
IsSuperior = Create(1)
#Interface grafica e modelagem matematica GUI
#variaveis globais
def draw():
global Y, X, ang, ag, ang1, ag1, ang2, ag2, ang3, ag3, Ang, Ang1, Ang2,
Ang3
global XVar, YVar, AngVar
global IsSuperior, IsInferior
28
glRasterPos2f(120, 480)
#Botões Perna direita e Perna esquerda
Text("Selecione a articulacao")
IsInferior = Toggle("Perna esquerda", TVert, 20, 445, 125, 20,
IsInferior.val)
IsSuperior = Toggle("Perna direita", THor, 150, 445, 125, 20,
IsSuperior.val)
# Valor mínimo(-180) e máximo(180) para os botões de rotação.
# Atribuindo as variáveis de ângulo Ang, Ang1, Ang2, Ang3 aos botões de
valor de rotação Slider.
Ang = Slider(" Angulo Coxa
", Slide, 20, 375, 310, 20, Ang.val, 180.0, 180.0, -360)
Ang1 = Slider("Angulo Perna
", Slide, 20, 400, 310, 20, Ang1.val, 180.0, 180.0, -360)
Ang2 = Slider("Angulo Peh
", Slide, 20, 425, 310, 20, Ang2.val, 180.0, 180.0, -360)
Ang3 = Slider("Angulo Quadril ", Slide, 20, 350, 310, 20, Ang3.val, 180.0, 180.0, -360)
# Conversão
#Calculando o radiano de cada valor
# O radiano de cada angulo é dada pela seguinte formula angulo = graus * 2
* math.pi / #360.0, que em python #é tratado como ag=radians(Ang.val),
onde:
#ag = valor final já calculado
#radians = a função python para calcular o radiano
#Ang.val = valor de entrada (inserido pelo usuario)
ag=radians(Ang.val)
ag1=radians(Ang1.val)
ag2=radians(Ang2.val)
ag3=radians(Ang3.val)
#tomada de decisao perna direita ou esquerda
if IsInferior.val == 0:
#calculo da rotação da articulação
parte_superior.RotY = ag
parte_inferior.RotY = ag1
pe.RotY = ag2
base.RotZ = ag3
else:
#calculo da rotação da articulação
parte_superior_d.RotY = ag
parte_inferior_d.RotY = ag1
pe_d.RotY = ag2
base.RotZ = ag3
#zerando valores
ag = 0
ag1 = 0
ag2 = 0
ag3 = 0
#executando a animacao
Button("Executa", Leg, 25, 20, 50, 20, "Create Leg")
29
2.8 Caso de Uso
O ator é o usuário que vai inserir os dados nos sistema via interface
Use case – Selecionar Perna
Atores - Usuário
Descrição - Este caso de uso começa quando o usuário seleciona a perna desejada a ser
simulada
O sistema recebe 1 se for perna direita e 0 se for perna esquerda.
30
Interface4
Selecionar Perna
Usuário
Use case – Selecionar Articulação
Atores - Usuário
Descrição – O <ator> seleciona a articulação que deseja, da perna selecionada.
O sistema recebe 1 se for perna direita e 0 se for perna esquerda, indiferente de qual
seja selecionada o fluxo será desviado para a rotina das articulações.
Interface4
Selecionar
Articulação
Usuário
Use case – Inserir valor
Atores - Usuário
Descrição – O <ator> insere um valor correspondente à rotação na articulação selecionada.
O valor inserido é modelado pelo sistema e retorna o valor inserido com a
movimentação do objeto.
31
Interface4
Inserir Valor Pé
Usuário
Interface4
Inserir Valor Perna
Usuário
Interface4
Inserir Valor Coxa
Usuário
Use case – Criar Rotação
Atores - Usuário
Descrição – O <ator> executa o movimento da(s) articulação(ões).
Interface4
Criar Rotação
Usuário
2.9 Interface
A interface é separada por dois grupos chamados: Perna direita e Perna esquerda
(QUADRO 1). De simples uso, o usuário pode apenas utilizar o mouse, ou se preferir o
teclado.
Selecionar qual perna ira simular, direita ou a esquerda (a Perna direita inicia o
programa já selecionada).
32
QUADRO 1 – Perna diretora e Perna Esquerda
Em seguida selecionar a articulação, representada aqui como Ângulo Peh, Ângulo
Perna, Ângulo Coxa e Ângulo Quadril. Para selecionar, basta clicar com o mouse sobre a
barra de rolagem.
O sistema aceita números inteiros positivos/negativos e decimais positivos/negativos,
com o valor mínimo de –180 e o valor m1aximo de 180 (QUADRO. 2).
QUADRO 2 - Articulações
Entrar com os valores para a articulação selecionada, pela barra slider (barra de
rolagem), ou clicar no valor e digitar no teclado numérico (QUADRO. 3).
QUADRO 3 – Entrada de dados
33
Quando os valores são inseridos para a perna direita e a ação será somente executada
para a mesma. Ao selecionar a outra perna os valores da outra perna é zerado.
E para finalizar o processo Create para a simulação ser exibida ou Exit para saída do
sistema (QUADRO 4).
QUADRO 4 - Executa ou fecha
2.10 Diagrama funcional (FIG. 14)
1 -Selecionar perna a ser sumulada [direita ou esquerda];
2- Selecionar a articulação [Quadril | Coxa | Perna | Pé];
3-Entrar com o valor do movimento;
4-Executar.
34
FIGURA 14 - Diagrama Funcional
2.11 Simulação - Modelagem matemática (FIG. 15)
A modelagem dos dados no script estava sendo tratada da seguinte forma:
Objeto concatenado com a localização somado com tamanho do objeto articulado vezes
multiplicado pelo coseno do ângulo para X e seno do ângulo para Y.
parte_superior.LocX = (parte_superior.LocX + d1) * cos (ag)
parte_superior.LocY = (parte_superior.LocY + d1) * sin (ag)
onde:
parte_superior coxa
parte_inferior perna
pe
pé
35
.LocX localização em X
.LocY localização em Y
r distancia entre a articulação da coxa e da perna
r1 distancia entre a articulação da perna e do pé
r2 distancia entre a articulação do pé e a ponta dos dedos
cos coseno
sin seno
ag angulo da coxa
ag1 angulo da perna
ag2 angulo da pé
FIGURA 15 – Rotação do objeto
Nas FIG. 16 e 17 são testados a interação do software Blender com o script em Python
criado para o tratamento dos valores de entrada.
Na FIG. 16 a posição inicial do robô bípede antes da inserção dos seguintes valores:
Perna direita
Perna esquerda
Coxa
-45º
55º
Perna
-44º
-45º
Pé
10º
25º
Na FIG. 18, o resultado final dos cálculos dos valores.
FIGURA 16 - Posição inicial
FIGURA 17 - Posição final
Com a função do blender, .Rot concatenada ao objeto a equação foi reduzida a:
Atribui o grau de rotação ao objeto (parte_superior) junto à função (parte_superior.Rot
= ag) parte_superior.Rot = ag
36
onde :
FIGURA 18 – Rotação do objeto
O resultado obtido com a equação usando a função .Rot do Blender, é a mesma obtida
com a equação anterior descrita da modelagem matemática.
2.12 Simulação do robô bípede estático
Simulação do robô bípede estático, apenas para a visualização do modelo 3D
respondendo aos comandos da interface gráfica e também simulação da perna direita (FIG. 19
e 20).
FIGURA 19 - Simulação robô bípede perna direita (posição inicial)
37
Os valores correspondentes à 34, 80º para o Pé, -1,60 para a perna, 45,60 para a coxa e
0,00 para o quadril, foram inseridos nos sistema. A simulação foi executada com sucesso
como mostra a FIG. 20.
FIGURA 20 - Resultado dos dados inseridos no sistema
2.13 Simulação perna esquerda (FIG. 21)
38
FIGURA 21 - Posição inicial da perna esquerda
Os valores correspondentes à –3,60º para o Pé, -6,40 para a perna, -36,00 para a coxa e
0,00 para o quadril, foram inseridos nos sistema. A simulação foi executada com sucesso
como mostra a FIG. 22
FIGURA 22 - Posição final da perna esquerda
Simulação da rotação pelo quadril aplicando os mesmos cálculos que foram usados para
a rotação das outras articulações como demonstrados em Modelagem Matemática (FIG. 23 e
24).
39
FIGURA 23 – Posição inicial 0,00º simulação quadril
FIGURA 24 - Posição final com a rotação de 9,60º para o quadril
Após a simulação de movimentos em todas as articulações, pode-se ver que o
tratamento das coordenadas inseridas no sistema tem real ação sobre o modelo tridimensional.
2.14 Simulação do robô bípede se locomovendo no plano
Na FIG. 25 apresenta-se a simulação do ciclo de marcha humana, e a comparação com o
ciclo descrito por Vaughan et al., 1992. O ciclo normal de marcha humana é composto por
oito eventos (CI (contato inicial), RC (reposta à carga), MA (médio apoio), AT (apoio
terminal), PB (pré-balanço), BI (balanço inicial), BM (balanço médio), BT (balanço terminal)
separados por duas fases (fase de apoio e de balanço).
O robô bípede executou os ciclos e as fases da marcha humana executando movimentos
muito parecidos a um caminhar do ser humano em comparação com o exemplo citado por
Vaughan et al.,1992.
40
FIGURA 25 - Comparação do Ciclo da marcha Vaughan et al., 1992 e o Ciclo de marcha produzido
pela simulação computacional
Fonte: Vaughan et al., 1992.
Na FIG 26 é demonstrada a rotação pelo membro de apoio, onde a perna direita
encontra-se em contato com o chão enquanto a perna esquerda esta na fase de balanço. É
simulado o giro do robô sobre seu membro de apoio(inferior direito), que muda sua direção
em um determinado plano.
O giro pelo membro de apoio pode ter como exemplo um paciente que teve paralisia
devido alguma patologia como Marcha Espástica provocada por AVC(Acidente Vascular
Cerebral) que ocasionou a perda do movimento nos membros inferiores.
O paciente com a ajuda de um andador e órteses colocadas em suas pernas, caminha
levando primeiramente o andador um pouco a frente e logo após com um dos membros
inferior apoiado eleva o quadril para suspender e dar o balanço à outra perna e assim
sucessivamente. Ao mudar de direção em um plano acontece o mesmo, apenas com uma
diferença, alem do paciente elevar o quadril para suspender a outra perna, ele usa o membro
de apoio como “eixo” para a rotação do corpo, ocasionando a mudança de direção.
41
Na simulação feita com o modelo computacional caminhando, é levado em conta
somente o momento em que o robô muda a direção no plano, com o intuito de analisar a
rotação do corpo sobre o membro inferior de apoio. Analisando as ações executadas percebese que a simulação exerce a rotação sobre o membro de apoio, aplicando ao robô a rotação
necessária para a mudança de direção.
FIGURA 26 - Rotação pelo membro de apoio
Interação do software e do modelo computacional com o modelo real
O modelo real é composto por seis servo-motores:
dois são instalados no quadril em cada extremidade;
um em cada articulação dos joelhos;
um em cada articulação dos pés que formam o tornozelo.
Suas peças são em alumínio:
42
um quadril;
duas coxas;
dois pés.
Através da porta serial do computador é transmitido via cabo, os dados que exercem o
movimento em cima dos motores do robô bípede. O motor recebe o dados em forma de texto,
os ângulos para cada motor. Toda a comunicação via software é feita em Python.
O código a seguir demonstra como os dados são enviados via porta serial para o modelo
real:
#configurando a porta serial
config = Serial.PortDict()
config['port'] = Serial.COM1
config['baud'] = Serial.Baud19200
config['stopBits'] = Serial.OneStopBit
config['parity'] = Serial.NoParity
config['dataBits'] = Serial.WordLength8
port = Serial.Port(config)
#abilitando a porta serial
port.open()
try:
port.write('\r')
print 'Open: ', port.read(1, timed=4000)
#escrevendo na porta
port.write('R@1,0,1000,1\r') # ask for a 1000 bytes from array 1
print 'Data: ', port.read(1000, timed=4000)
port.write('X\r')
#fechando a porta
port.close()
except:
port.write('X\r')
port.close()
traceback.print_exc()
#d:\jdh\neurostar\python>d:\python22\python bip.py
43
#d:\python22\python bip.py
#Open: *
#Data:
# File "bip.py", line 17, in ?
#
print 'Data: ', port.read(1000, timed=4000)
# File "D:\PYTHON22\Serial\Serial.py", line 469, in read
#
raise SioError, \
44
3. CONCLUSÃO
Através de estudos de materiais de diversas áreas, possibilitaram desenvolver um robô
bípede antropomórfico de seis graus de liberdade (três para cada perna), composto por duas
pernas, dois pés e o quadril, capaz de movimentar-se em um determinado plano, com o
auxílio do Software Blender de modelagem 3D e a linguagem de programação Python. Com
esse robô bípede podem ser feitos estudos da simetria da marcha humana ou mesmo de
alguma patologia dos membros inferiores.
Nesse trabalho foi desenvolvido um modelo tridimensional que considera o robô como
um mecanismo livre que não possui ponto fixo e, cujo movimento depende de sua interação o
usuário através da interface gráfica do programa. A grande vantagem desse modelo é que ele
não possui nenhum tipo de restrição, podendo, assim, realizar a simulação e avaliação de
qualquer tipo de marcha.
Com o estudo da linguagem Python foi possível o desenvolvimento de um programa
para o tratamento das coordenadas a serem executadas pelo robô bípede.
Para o desenvolvimento do robô bípede e do programa responsável pelo seu
movimento, foi necessário estudar aspectos técnicos das amputações dos membros inferiores
para um desenvolvimento especifico de próteses robotizadas no intuito da reabilitação de
pessoas com amputação nos membros inferiores. A análise da marcha humana para
desenvolver um padrão de marcha para a simulação do robô bípede em um plano linear.
Com os resultados obtidos, que um modelo computacional pode simular a marcha
humana com êxito, e a simulação de um paciente portador de paralisia nos membros inferiores
que utiliza o membro inferior como apoio para rotação do corpo para a mudança de direção
com êxito. Pode-se concluir que através do modelo computacional do robô bípede
desenvolvido, é possível a criação de simulação de padrões de marchas para que o
profissional da área médica(um fisioterapeuta ou ortopedista) por exemplo, analise e ou
compare a forma de caminhar do paciente. Ou submeta o modelo computacional a diversas
situações, por exemplo, a de um paciente que é usuário de prótese e utilize a perna de apoio
como eixo para a rotação do corpo durante o caminhar, para analisar onde se esta aplicando
mais peso durante a marcha, e sanar algum tipo de desgaste ósseo ou a melhoria da prótese.
Assim modelos robotizados que auxiliem na criação de próteses que tornem a adaptação
do paciente mais fácil, rápida e confortável.
45
As simulações executadas são abordagem muito simples em comparação aos padrões
que podem ser simulados, abordando somente a marcha simples e rotação pela perna de
apoio. Porém, o script e o modelo tridimensional podem ser alterados para vários padrões de
marcha humana.
A implementação com o robô bípede real é um projeto futuro, onde será integrado o
software desenvolvido para a simulação de padrões de marcha.
Como esse trabalho, espera-se poder contribuir como uma ferramenta no auxílio aos
profissionais da área da saúde na análise da marcha para tratamento de diversos tipos de
patologia e para desenvolvimento de novas tecnologias para o desenvolvimento de próteses
robotizadas que ofereçam maior conforto e desempenho.
46
47
REFERÊNCIAS BIBLIOGRÁFICAS1
1.
ALVES, J.B.M. Controle de robô. Campinas: CARTGRAF, 1988.
2.
ASIMO: the honda humanoid Robot Asimo. 2006. Disponível em:
<http://world.honda.com/ASIMO/>. Acesso em: set. 2006.
3.
BEZERRA, C.; ZAMPIERI, D.E. Robôs bípedes. Disponível em:
<http://www.geocities.com/cadb1/rb.html>. Acesso em jun. 2006.
4.
FERREIRA, J.P.M.; CRISÓSTOMO, M.M.; COIMBRA, AP. Decreasing the dynamic
stability calculation time of a Biped Robot. Jornadas Luso-Espanholas, v. 1, p. 3,1033,108. Vilamoura, Portugal. 3-5 Julho 2003.
5.
FOLEY, J.D.; VAN DAM, A. Computer graphics: principles and practice.2.ed.
Boston: Addison-Wesley, 1996.
6.
VOLPON JB. ; Semiologia ortopédica. Medicina, Ribeirão Preto: 29: 67-79, jan./mar.
1996.
7.
FARIA, J. L ; Patologia geral: fundamentos das doenças, com aplicações clinicas,
Rio de Janeiro : Ed. Guanabara, c1998.
8.
MARK, L. Programming python. 2.ed. Beijing: O'Reilly, 2001.
9.
MATOS, G. Curso rápido de blender. Campinas: Píon Informática/Unicamp, 2005.
10. McGeer, T. Passive walking with Knees. In: INTERNATIONAL CONFERENCE ON
ROBOTICS AND AUTOMATION, Cincinnati, Ohio, May 1990. Anais... Los Amitos:
IEEE Computer Society Press, 1990. p. 1640-1645.
11. MORAES, J.C.T.B.M. Instrumentação para análise da biodinâmica do movimento
humano. In. AMADO, A.C.; BARBANTI, V.J. A biodinâmica do movimento
humano e suas relações interdisciplinares. São Paulo: Liberdade, 2000. Cap. 7, p.1544.
12. NUNES, M.P. Aspectos formais da linguagem python: análise léxica e modelo de
dados. Universidade Federal do Rio Grande: [s.n.], 1998. (Texto apresentado em
palestra do Grupo de Interesse em Linguagens de Programação da Fundação
Universidade Federal do Rio Grande). Disponível em:
<http://www.dmat.furg.br/~python/aspectos.html>. Acesso em: abr. 2006.
13. PARK, J.H.; KIM, K.D. Biped robot walking using gravity-compensated inverted
pendulum mode and computed torque control. In: INTERNATIONAL CONFERENCE
ON ROBOTICS AND AUTOMATION, Leuven, May 1998. Anais... Leuven: IEEE
Press, v. 4, p. 3528-3533.
14. PERSIANO, R.C.M., OLIVEIRA, A.A.F. Introdução à computação gráfica. Rio de
Janeiro: Livros Ténicos e Científicos, 1989.
15. PIÑERO-VALLE, A.; PAGNOTA, M. Projeto mecânico e construção de um robô
bípede para a reprodução da marcha humana autônoma. 2002. Monografia
(Graduação em Engenharia Mecânica) – Escola Politécnica, Universidade de São Paulo,
São Paulo. v. 2.
1
De acordo com a ABNT –Associação Brasileira de Normas Técnicas.
48
16. ROBÔ andarilho quebra recorde mundial de velocidade robótica. 2006. Disponível em:
<http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=010180060407>.
Acesso em: ago. 2006.
17. ROBÔ bípide anda com balanço no corpo, como o ser humano. 2005a. Disponível em:
<http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=010180050426>.
Acesso em: jun. 2006.
18. ROBÔ humanóide anda de bibicleta. 2005b. Disponível em:
<http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=010180051004>.
Acesso em: ago. 2006.
19. ROGERS, D.F., ADAMS, J.A. Mathematical elements for computer graphics. 2.ed.
New York: McGraw-Hill, 1990.
20. ROSE, J.; GAMBLE, J.G. Marcha humana. 2.ed. São Paulo: Premier; 1993.
21. ROUSSEL, R.L.; CANUDAS-DE-WIT, A. Generation of energy optimal complete gait
cycles for biped robots. In: INTERNATIONAL CONFERENCE ON ROBOTICS AND
AUTOMATION, Leuven, 1998. Anais... Leuven: IEEE p. 2036-2041, 1998.
22. SAMPAIO, R; CATALDO, E.; RIQUELME, R. Introdução à análise e ao
processamento de sinais usando o MATLAB. São José dos Campos: Gráfica do
INPE, 1998.
23. SETTINERI, L.I.C. Biomecânica: noções gerais. São Paulo: Atheneu, 1988.
24. TOYOTA lança robô que carrega passageiro e anda de verdade. 2005. Disponível em:
<http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=010180050519>.
Acesso em: set. de 2006.
25. VAUGHAN, C.L.; BRIAN, L.D.; O’CONNOR, J.C. Dynamics of human gait.
Champaign: Human Kinetics, 1992.
26. WIKIPÉDIA. Atrito. Disponível em: <http://pt.wikipedia.org.br/wiki/Atrito>. Acesso
em: 07 jun. 2006.
27. WIKIPÉDIA. Leis de Newton. Disponível em:
<http://pt.wikipedia.org/wiki/Leis_de_Newton>. Acesso em: 16 jun 2006.
28. WIKIPÉDIA. Movimento. Disponível em: <http://pt.wikipedia.org/wiki/Movimento>.
Acesso em: 25 maio 2006.
49
Prof. Ms. André Mendeleck
Carlos Eduardo Della Betta

Documentos relacionados