projeto sobrarm - pet - engenharia da computação ufc · figura 8: impressora 3d. 3.2 arduino,...
TRANSCRIPT
Universidade Federal do Ceara
Engenharia de Computacao
Programa de Educacao Tutorial
Projeto SobrArm
Alunos:Raimundo Farrapo PintoJuniorAbner SousaNascimento
Orientador:Ialis Cavalcante de Paula
Junior
SOBRAL - CE17 de fevereiro de 2016
Sumario
1 Introducao 2
2 Material Utilizado 2
3 Desenvolvimento 43.1 Modelo e impressao . . . . . . . . . . . . . . . . . . . . . . . . . . 43.2 Arduino, mecanica e controle manual . . . . . . . . . . . . . . . . 63.3 Reconhecimento de Gestos . . . . . . . . . . . . . . . . . . . . . . 8
4 Procedimento 8
5 Resultados e Discussoes 10
6 Conclusoes 10
1
1 Introducao
O projeto SobrArm objetiva empregar diferentes plataformas de desenvolvi-mento open-source, componentes eletronicos e impressao 3D para a construcaode um braco robotico, tendo em vista maximo custo-benefıcio e consciencia am-biental. O braco e capaz de movimentar 5 dedos com o auxılio de servo-motorese pode ser controlado por linha de comando, interface grafica ou captura devıdeo em tempo real, via reconhecimento de imagens.
2 Material Utilizado
• Fonte de PC;
Figura 1: Fonte de PC.
• 1 Kg - Filamento plastico PLA 3 mm;
2
Figura 2: Filamento PLA 3 mm.
• 5 - Servos-motores MG995 Tower Pro;
Figura 3: Servo-motor.
• Arduino UNO;
3
Figura 4: Arduino UNO.
• Fio de Nylon 0.7 mm;
Figura 5: Fio de Nylon.
3 Desenvolvimento
3.1 Modelo e impressao
O braco robotico utilizado no SobrArm baseia-se no projeto open-sourcefrances InMoov [2], que consiste em um robo humanoide, impresso em 3D, cons-tituıdo da metade superior do tronco, cabeca e bracos. Modificamos algumas
4
de suas pecas originais para reduzir o consumo de material e limitar a movi-mentacao apenas aos graus de liberdade estritamente necessarios a execucao doprojeto.
O material de impressao, poliacido lactico ou PLA [3], e um polımero pro-duzido a partir de recursos naturais, como amido de milho e cana-de-acucar.Por isso e biodegradavel e completamente atoxico. Este material se liquefaz a150 ℃, o que o torna uma das opcoes mais utilizadas na impressao 3D. Paraa confeccao das pecas na impressora definimos a temperatura do hotend em180 ℃e aquecemos a mesa a 70 ℃. A tabela abaixo apresenta o tempo medioaproximado de impressao das pecas:
Tabela 1: Tempo estimado de impressao das pecas
Peca Tempo2 Pecas da mao 3h cada
5 Dedos 2h cada5 Pecas do braco 8h cadaTotal aproximado 56h
O tempo pode variar conforme o modelo de impressora utlizado. Aplicamosfita dupla-face de papel sobre a mesa para garantir a aderencia do material eum cooler para ajudar no resfriamento das partes ja impressas. Isso garantiuque todas as pecas possuıssem boa qualidade de impressao. As figuras 6, 7 e 8mostram as pecas inicialmente confeccionadas e a impressora utilizada.
Figura 6: Pecas da mao. Figura 7: Pecas do braco.
5
Figura 8: Impressora 3D.
3.2 Arduino, mecanica e controle manual
Cada dedo esta conectado atraves de dois fios de nylon a um servo-motor,controlado pelo Arduino. Dessa maneira, e possıvel movimentar os dedos damao. A tensao no fio para a movimentacao dos dedos e exigente em termosde quilogramas-forca. Em decorrencia disso, fez-se necessaria a utilizacao demotores e fios fortes. A figura 9, a seguir, mostra a montagem final do braco,com o Arduino e a fonte de alimentacao. A variacao dos angulos aplicadosaos motores para movimentar os dedos pode mudar conforme a montagem.Em nosso primeiro prototipo, utilizamos os valores da tabela abaixo, obtidosempiricamente:
Tabela 2: Angulos utilizados para rotacionar os dedos
Angulo Dedo40 - 130 Mınimo15 - 140 Anelar0 - 120 Medio0 - 120 Indicador15 - 120 Polegar
6
Figura 9: Braco montado.
Os angulos sao transmitidos aos dedos via codigo utilizado no Arduino. De-finimos uma string padrao, a ser enviada para a porta de comunicacao serial naforma "d1:XX d2:XX d3:XX d4:XX d5:XX", na qual:
• "XX" e o angulo para que o motor deve ser alterado;
• "d1" representa o dedo mınimo;
• "d2" o dedo anelar;
• "d3" o dedo medio;
• "d4" o dedo indicador;
• "d5" o dedo polegar.
Assim, com uma unica string e possıvel alterar a posicao de todos os dedos.Desenvolvemos um software em Python que oferece um controle manual
sobre todos os dedos do braco. Nele ha uma conexao direta com o Arduino,sem necessidade de processamento de dados. Atraves dele, e possıvel variar emuma escala de 0 a 100 o grau de abertura de cada dedo, bem como realizarmovimentos pre-definidos.
7
3.3 Reconhecimento de Gestos
Para capturar e reconhecer gestos do usuario, aplicamos tecnicas de visaocomputacional [5], em conjunto com uma fonte de captura. O algoritmo quedesenvolvemos e capaz de reconhecer gestos em tempo real ou gravados emvıdeo, desde que as condicoes de iluminacao do ambiente sejam estaveis. Eleconsiste em 3 etapas:
• Captura de amostra visual do ambiente;
• Extracao do cenario e deteccao dos dados;
• Transmissao dos dados.
O processo de captura da amostra consiste, inicialmente, na extracao de umaimagem fixa, chamada de background ou cenario, que sera usada para subtrairos elementos visuais sobrepostos.
Na fase seguinte, o unico objeto com caracterısticas visuais diferente dobackground deve ser o braco do usuario. A cada frame, os pixels sao comparadoscom os dados armazenados. Assim, produzimos uma imagem binaria e combase nela obtermos um polıgono cujos vertices estao sobre as pontas dos dedos.Utilizamos o dedo medio como referencia para identificar os demais dedos. Paraisto, calculamos o angulo de cada vertice com o dedo medio e compararemoscom valores de angulos que obtivemos empiricamente.
Por fim, a distancia entre o dedo e o centro sera utilizada para calcular oquao aberto ou fechado este dedo se encontra e a informacao sera enviada aoArduino.
4 Procedimento
A configuracao final dos equipamentos e simples. Estabelecemos a comu-nicacao de um computador com o Arduino atraves de um cabo USB A-B (mesmoutilizado na maioria das impressoras), conectamos a fonte de alimentacao e exe-cutamos os softwares desenvolvidos.
Os motores do braco estao dispostos conforme a imagem 10. Para nos refe-rirmos a eles, utilizamos a nomenclatura descrita a seguir:
• M1, M2 e M3, parte superior, da esquerda para a direita, respectivamente;
• M4 e M5, parte inferior, tambem sob a mesma ordem.
O torque dos motores e elevado, 13 Kg.cm, o mesmo aplicado em projetos deaeromodelismo. Por conseguinte, em virtude da consideravel corrente necessariapara o funcionamento dos motores, optamos por empregar uma fonte externade computador.
8
Figura 10: Disposicao dos motores.
Os fios de alimentacao dos motores sao conectados a fonte e o fio de PWMas portas digitais do Arduino, conforme a ordem:
• M1 na porta 6, controlando o dedo anelar
• M2 na porta 10, controlando o dedo medio
• M3 na porta 11, controlando o dedo indicador
• M4 na porta 5, controlando o dedo mınimo
• M5 na porta 12, controlando o dedo polegar
A imagem 11 esquematiza as ligacoes dos motores com o Arduino.
Figura 11: Ligacoes dos motores e Arduino.
9
5 Resultados e Discussoes
O funcionamento do braco mecanico ocorreu de forma adequada. Emborasua capacidade de movimentacao seja substancialmente inferior a um bracoorganico, ou mesmo a proteses roboticas mais avancadas, o produto final e ade-quado a margem de custo a que se propoe. Futuros aprimoramentos quanto aomaterial e tecnologia de impressao utilizados abrirao novas possibilidades, comoa implementacao de partes flexıveis, reducao do atrito e melhoria do design.
Obtivemos resultados satisfatorios quanto ao reconhecimento de imagens. Osoftware foi capaz de detectar a posicao e grau de abertura dos dedos com rela-tiva precisao, desde que observada a qualidade do material capturado, condicoesde luz e resolucao da filmagem. Devido a alta demanda computacional do pro-cessamento de imagens, e necessario observar as configuracoes de hardware doaparelho que ira executar o software, porem, a maioria dos laptops domesticosdotados de webcam deve ser capaz de executa-lo com fluidez. Futuramentea aplicacao de tecnicas para a previsao de dados e eliminacao de ruıdos devemelhorar consideravelmente a precisao dos dados obtidos.
6 Conclusoes
Construımos um braco mecanico de baixo custo utilizando uma impressora3D e material plastico biodegradavel. Desenvolvemos uma interface grafica parao controle do braco, bem como um software capaz de detectar gestos manuaisem tempo real e transmiti-los ao robo. Futuros testes com novos materiais etecnicas de processamento serao realizados, para evoluir o prototipo atual eampliar sua eficiencia.
Referencias
[1] The BSD 3-Clause License. Open Source Initiative. Disponıvel em https:
//opensource.org/licenses/BSD-3-Clause, Acesso em: 8 fev. 2016.
[2] Open source 3d printed life-size robot. InMoov. Disponıvel em http://
inmoov.fr, Acesso em: 15 fev. 2016.
[3] PLA monomere (Polylactic Acid). Matbase. Disponıvel em http://
tinyurl.com/material-imp3d-PLA, Acesso em: 15 fev. 2016.
[4] Gary Bradski and Adrian Kaehler. Learning OpenCV: Computer vision withthe OpenCV library. O’Reilly Media, Inc., 2008.
[5] Rafael C. Gonzalez and Richard E. Woods. Digital Image Processing (3rdEdition). Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 2006.
10