_____________________________________________________________________________                                 Fatec Carapi...
_____________________________________________________________________________                                             ...
_____________________________________________________________________________                                   Fatec Cara...
_____________________________________________________________________________                                 Fatec Carapi...
_____________________________________________________________________________                                 Fatec Carapi...
_____________________________________________________________________________                                 Fatec Carapi...
_____________________________________________________________________________                                     Fatec Ca...
_____________________________________________________________________________                                      Fatec C...
_____________________________________________________________________________                                  Fatec Carap...
_____________________________________________________________________________                                      Fatec C...
_____________________________________________________________________________                                    Fatec Car...
_____________________________________________________________________________                                    Fatec Car...
_____________________________________________________________________________                                   Fatec Cara...
_____________________________________________________________________________                                     Fatec Ca...
Próximos SlideShares
Carregando em…5
×

Cinemática para movimentos de carro com braço robô com animação 3D

972 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
972
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Cinemática para movimentos de carro com braço robô com animação 3D

  1. 1. _____________________________________________________________________________ Fatec Carapicuíba Trabalho (P2) de Física Turma: noturnaCinemática para Movimentos de Carro com braço Robô com animação 3DAlunos:Edgard Pinheiro Gonçalves1430431113051Ricardo da Verdade Silva1430431113074Kaique Nascimento1430431113064Maitê Boniolo1430431013176Marcel Holanda Cavalcante Ribeiro1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  2. 2. _____________________________________________________________________________ Fatec CarapicuíbaContentsProposta do projeto ..................................................................................................................... 3 Modelagem ............................................................................................................................... 3Projeto Chiforimpula .................................................................................................................. 4 Metodologia ............................................................................................................................. 4 Modelo ...................................................................................................................................... 5 Scripts e Aplicação .................................................................................................................. 7 Desafios................................................................................................................................... 12 Conclusão ............................................................................................................................... 13____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  3. 3. _____________________________________________________________________________ Fatec CarapicuíbaProposta do projeto Usar geometria e cinemática para modelar o seguinte manipulador de no mínimo 2 G.L.(Graus de liberdade), e executar a programação.Grupo de até 5 alunos, nota de 0 a 10, com entrega até dia 23/06/2012.Modelagem- Braço robô sobre base móvel (eixo x).- Para projetos 3D opcionalmente considere girar a Base no próprio eixo. y α2 L2.sen(α1 + α2) L2 L1.sen(α1) L1 α1 x L1.cos(α1) L2.cos(α1 + α2)____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  4. 4. _____________________________________________________________________________ Fatec CarapicuíbaProjeto Chiforimpula O nome do projeto é uma homenagem a um episódio do Chaves em que ele apresenta um desenho na escola (link na bibliografia), que mesmo com traços feios e tortos e não lembrando nada, (como normalmente são os desenhos de programadores..) conseguem expressar toda a criatividade nas entrelinhas. ( em nosso caso, em linhas de código. :) O projeto nasceu da integração das nossas matérias de Script para Jogos e Física, e sua conclusão foi possível graças a paciência, auxílio e materiais gentilmente fornecidos pelo professor Olímpio, sobre um projeto semelhante, que utilizamos como base, e aulas e dicas do professor Antônio.MetodologiaAdaptamos o código que recebemos em c, nas linguagens Python, procurando manter ascaracterísticas basicas de distancias , angulos, velocidade e força: Rotação 0° a 90° na Articulação 1 Rotação -45° a 90° Na Articulação 2 Rotação 360° na Base do Braço Movimentação das rodas nos planos x e y (para frente, para trás, esquerda e direita)____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  5. 5. _____________________________________________________________________________ Fatec CarapicuíbaModeloTambém Criamos um modelo em 3D no Programa Blender versão 2.63ª para receberem osScripts python.____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  6. 6. _____________________________________________________________________________ Fatec CarapicuíbaAdicionalmente recebeu um “Mangual” e um sistema 4x4 de tração.____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  7. 7. _____________________________________________________________________________ Fatec CarapicuíbaScripts e AplicaçãoA Simulação da Física em modelos 3D, mesmo com o auxílio das conhecidas Games Enginesnão é fácil ou intuitiva. As simulações de movimento estão prontas mas são como qualquerfórmula, sem noções de física e matemática, são impossíveis de aplicar. Abaixo demonstramosatravés do Mapa da estrutura, ou Outliner dos Objetos e Heranças, onde foram aplicados osscripts em Python. Controle.py e Fisica.py movetorre.py - Objeto concreto - Objeto vazio - Base do modelo (cubo, esfera, cone, etc.. ) - Restrições Fisicas - Visivel, Selecionavel e Renderizavel#Controle.py# importando modulosfrom bge import logic as g, events# obter o controlec = g.getCurrentController()____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  8. 8. _____________________________________________________________________________ Fatec Carapicuíba# obter o objeto conectado, o carroo = c.owner#obter o tecladotc = g.keyboard.events# variaveis carrofreio = 0.0virar = 0.0acelerador = 0.0# Comandos Carroif tc[events.WKEY]: acelerador -= 80.0if tc[events.SKEY]: acelerador = 80.0if tc[events.AKEY]: virar -= 1.5if tc[events.DKEY]: virar = 1.5if tc[events.SPACEKEY]: freio = 1.0#linkar fisica do Controle.py com o Fisica.pycarro = o["carro"]# aplicar aceleração nas rodas 1,2,3,4carro.applyEngineForce(acelerador,0)carro.applyEngineForce(acelerador,1)carro.applyEngineForce(acelerador,2)carro.applyEngineForce(acelerador,3)# vira roda 0.1carro.setSteeringValue(virar,0)carro.setSteeringValue(virar,1)#freia rodas 0, 1, 2, 3carro.applyBraking(freio,0)carro.applyBraking(freio,1)carro.applyBraking(freio,2)carro.applyBraking(freio,3)##########################################################Fisica.py#importar modulosfrom bge import logic as gimport PhysicsConstraints as pc____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  9. 9. _____________________________________________________________________________ Fatec Carapicuíba#obter controlec = g.getCurrentController()#obter Cena e Objetos da Cenas = g.getCurrentScene().objects#nome das Rodasrd_1 = s["roda001"]rd_2 = s["roda002"]rd_3 = s["roda003"]rd_4 = s["roda004"]# posicao das rodas x y zrd_p1 = [ -4.5, 3.0, -5.4 ]rd_p2 = [ 4.5, 3.0, -5.4 ]rd_p3 = [ -4.5, -3.0, -5.4 ]rd_p4 = [ 4.5, -3.0, -5.4 ]# angulo da suspensao x y zrd_an1 = [ 0.0, 0.0, -0.5]rd_an2 = [ 0.0, 0.0, -0.5]rd_an3 = [ 0.0, 0.0, -0.5]rd_an4 = [ 0.0, 0.0, -0.5]#Direçao de rolamento x y zrd_e1 = [ 0.0, 1.0, 0.0 ]rd_e2 = [ 0.0, 1.0, 0.0 ]rd_e3 = [ 0.0, 1.0, 0.0 ]rd_e4 = [ 0.0, 1.0, 0.0 ]#altura da suspensaord_as1 = 0.4rd_as2 = 0.4rd_as3 = 0.4rd_as4 = 0.4#raio das rodasrd_r1 = 1.897rd_r2 = 1.897rd_r3 = 1.897rd_r4 = 1.897# direcaord_d1 = Truerd_d2 = Truerd_d3 = Falserd_d4 = False____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  10. 10. _____________________________________________________________________________ Fatec Carapicuíba# Obter o objeto conectado, o carroo = c.owner# criando a fisicacarro = pc.createConstraint(o.getPhysicsId(),0,11)carro = carro.getConstraintId()o["carro"] = carro = pc.getVehicleConstraint(carro)# add as rodas no carrocarro.addWheel( rd_1, rd_p1, rd_an1, rd_e1, rd_as1, rd_r1, rd_d1 )carro.addWheel( rd_2, rd_p2, rd_an2, rd_e2, rd_as2, rd_r2, rd_d2 )carro.addWheel( rd_3, rd_p3, rd_an3, rd_e3, rd_as3, rd_r3, rd_d3 )carro.addWheel( rd_4, rd_p4, rd_an4, rd_e4, rd_as4, rd_r4, rd_d4 )# limite da rotaçao do carro, evitar capotamentocarro.setRollInfluence(0.05,0)carro.setRollInfluence(0.05,1)carro.setRollInfluence(0.05,2)carro.setRollInfluence(0.05,3)##########################################################movetorre.py#importar modulosimport bpyimport mathfrom bge import logic as g, events# get object listobjList = g.getCurrentScene().objects# Variaveistorre = objList[ "rotacaoTorre" ]umgl = objList[ "rotacaoPriSeg" ]dogl = objList[ "no2glCorda" ]#tempo velocidade Aceleraçãot=0.03; v=0.0; a=0.0;#distancia iniciall1 = 4.892;l2 = 4.892;l3 = 1.250;#variaveis auxiliaresx_ant=0.0; y_ant=0.0; z_ant=0.0;vx_ant=0.0; vy_ant=0.0; vz_ant=0.0;____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  11. 11. _____________________________________________________________________________ Fatec Carapicuíbat1=0.0; t2=0.0; t3=0.0;a1=0.0; a2=0.0; a3=0.0;x=0.0; y=0.0; z=0.0;ax=0.0; ay=0.0; az=0.0;vx=0.0; vy=0.0; vz=0.0;#obter o tecladotc = g.keyboard.events# Comandos do Primeiro Bracoif tc[events.UPARROWKEY]: a1 -= 0.02;if tc[events.DOWNARROWKEY]: a1 = 0.02;# Comandos do Segundo Bracoif tc[events.QKEY]: a2 -= 0.02;if tc[events.EKEY]: a2 = 0.02;# Comandos da torreif tc[events.LEFTARROWKEY]: a3 -= 0.02;if tc[events.RIGHTARROWKEY]: a3 = 0.02;t1 = ( 3.141596 * a1 ) / 180;t2 = ( 3.141596 * a2 ) / 180;t3 = ( 3.141596 * a3 ) / 180;x = ( l1 * math.cos(t2) + l3 * math.cos(t2+t3) ) * math.cos(t1);y = ( l2 * math.cos(t2) + l3 * math.cos(t2+t3) ) * math.sin(t1);z = ( l1+l2 * math.sin(t2) + l3 * math.sin(t2+t3) );#Velocidadevx = ( x - x_ant ) / t;vy = ( y - y_ant ) / t;vz = ( z - z_ant ) / t;#Aceleracaoax = ( vx - vx_ant) / t;ay = ( vy - vy_ant) / t;az = ( vz - vz_ant) / t;x_ant = x;y_ant = y;z_ant = z;vx_ant = vx;____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  12. 12. _____________________________________________________________________________ Fatec Carapicuíbavy_ant = vy;vz_ant = vz;#Imprime simulação de dadosprint ("x y z:",x, y, z);print ("Posicao t1 t2 t3:",t1, t2, t3);print ("Velocidade vx vy vz:",vx,vy,vz);#atualiza posição dos bracos e torreumgl.applyRotation((0,a1,0), False);umgl.applyRotation((0,a1,0), False);dogl.applyRotation((0,a2,0), False);dogl.applyRotation((0,a2,0), False);torre.applyRotation((0,0,a3), False);torre.applyRotation((0,0,a3), False);#########################################################Desafios Como sempre, a falta de tempo nos proporcionam desafios adicionais como falta de tempo para pesquisar e aprender as ferramentas, e estudar como aproveitar de forma mais inteligente a física no mundo dos games. Nos programas visuais como o Blender 2.63ª, a tendencia é encapsular toda a lógica debaixo de icones e biblioteca de scripts, Para demonstrar os principios que aprendemos decidimos realizar uma abstração no script movetorre.py, onde os angulos são dados em passos predefinidos que são incrementados 0.02 vezes 30 frames por segundo, ou seja: 0.6 por segundo que o usuario segurar os botões: • Seta para cima, Seta para baixo, (move bracos 1 e respectivamente braco2 e mangual verticalmente) • Seta Direita, Seta esquerda, (gira Base dos Braços e mangual no próprio eixo) • Tecla Q e Tecla E, (move braço 2 e respectivamente o mangual)Então capturamos estes dados para simular as contas que o blender está “escondendo” dousuário e imprimimos no console.____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  13. 13. _____________________________________________________________________________ Fatec CarapicuíbaDecidimos Utilizar a biblioteca PhysicsConstraints do blender parasimular os movimentos do carro como Aceleração, Inercia, Frenagem,etc.Nós também construimos um mangual, que demonstraria perfeitamentetodas as aplicações da fisica que estudamos, (e causaria maisdestruição..). Mas o modelo ficou muito pesado na renderização internado Blender. (a própria Mango, recomenda renderizadores externos.. masnão houve tempo para aplicarmos esta solução..), e trocamos por um“chocalho de bebê” gigante de 100Kg..A situação mais difícil foi acertar as heranças entre Objetos no Blender. Depois que aplicamosos conceitos de Design Patterns de programação (Obrigado Java..), Onde Objetos vaziosrepresentam interfaces e Objetos concretos as classes, facilitou bastante o trabalho.Não houve tempo hábil para realizar tratamento de erros no código e na física de colisão.. Entãoquando o carro se acerta ele entra em looping e literalmente sai voando pela tela..ConclusãoAprendemos física na prática, este tipo de projeto é altamente eficiente no ensino dos alunos epoderia ser iniciado nas primeiras semanas de aula e trabalhado em partes durante o semestre,para sua respectiva entrega no fim do semestre.Agradeçemos aos professores pela oportunidade e a todos que igualmente contribuiram para arealização deste projeto.____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  14. 14. _____________________________________________________________________________ Fatec CarapicuíbaBibliografiaOrigem do Chiforimpula / Chorofompila - http://www.youtube.com/watch?v=E0fmuHJFhckBlender 2.59 - Tutorial Python - Física de carro Realista - Parte 1 de 2 - #9 -http://www.youtube.com/watch?v=Jehf8sILOyABlender 2.59 - Tutorial Python - Física de carro Realista - Parte 2 de 2 - #9 -http://www.youtube.com/watch?v=ap2IVLdvQqMTutorial Blender 2.59 – Corrente - http://www.youtube.com/watch?v=rEqFRoiUktsPython Number cos() Function - http://www.tutorialspoint.com/python/number_cos.htmConteúdo do DVD que segue com o trabalho: • Programas o Blender 2.63ª – linux / windows (32 / 64bits) o Foxit Reader – leitor de PDF o Linux Ubuntu 11.04.ISO o DAEMON Tools Lite Setup linux / windows (32 / 64bits) o VirtualBox-4.1.0-73009-Win • Arquivos o Cinemática para Movimentos de Carro com braço Robô com animação 3D.pdf o ModeloTrabdeFisicaP2.pdf o novotanque.blend o robo.c____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br

×