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