57
Curso de Engenharia de Controle e Automação Raphael Bartholo Costa Modelagem e Simulação de um Manipulador Robótico para Deslocamento de Carga Sorocaba, 2014

Curso de Engenharia de Controle e Automação · Ao homem, não é incomum sua procura de métodos e ferramentas para facilitar e agilizar suas tarefas diárias. ... 2.1.1 Sistema

Embed Size (px)

Citation preview

Curso de Engenharia de Controle e Automação

Raphael Bartholo Costa

Modelagem e Simulação de

um Manipulador Robótico para

Deslocamento de Carga

Sorocaba,

2014

2

Raphael Bartholo Costa

MODELAGEM E SIMULAÇÃO DE UM MANIPULADOR

ROBÓTICO PARA DESLOCAMENTO DE CARGA

Trabalho de Conclusão de curso

apresentado ao Campus Experimental

de Sorocaba, Universidade Estadual

Paulista, como parte dos requisitos

para obtenção do grau de bacharel em

Engenharia de Controle e Automação.

Orientador: Prof. Dr. Galdenoro Botura Junior

3

Resumo

Esse trabalho apresenta a modelagem de um manipulador serial de 3 segmentos medindo 20cm, 15cm e 5cm respectivamente através do desenvolvimento da cinemática e dinâmica diretas e inversas com o intuito de validar e especificar um projeto de um braço robótico para movimentar uma carga estipulada em 100g. A cinemática foi desenvolvida através da notação de Denavit-Hartenberg e a dinâmica com a abordagem Lagrangeana de Energia. Para os cálculos e devidas simulações foi utilizado o Software Matlab. Em uma segunda etapa foi projetado uma solução de controle do manipulador utilizando-se uma placa manufatura baseada no microcontrolador PIC e desenhado uma placa de potência para alimentação dos servomotores do manipulador. Após validação do modelo matemático, este trabalho procura verificar o material acrílico de uma determinada forma geométrica de barra utilizando-se para isso a simulação por diagrama de esforços disposto no Software de simulação de CAD e CAE, NX da Siemens. Palavras-Chave: Cinemática Inversa; Dinâmica Inversa; Manipulador Serial;

4

Abstract

This essay presents the modeling of a serial manipulator with 3 segments measuring 20cm, 15cm and 5cm respectively through the development of forward and inverse kinematics and dynamics in order to validate and specify a project of a robotic arm to move a load with 100g. The kinematics was developed through the Denavit-Hartenberg notation and the inverse dynamics through the Lagrangian energy approach. For calculations and simulations, a software named Matlab was used. In a second step, a solution has been designed to control the manipulator using a manufactured board based on PIC microcontroller. In addition, designed a power supply board for the servomotors of the manipulator. After validation of the mathematical model, this paper tries to verify the acrylic material, for a determined geometric shape beam, using the simulation of load diagram through a CAD and CAE software named NX from Siemens.

Keywords: Inverse kinematics; Inverse Dinamics; Serial Manipulator

5

Lista de Figuras

Figura 1 - Relação de preço de Robôs com o custo de mão de obra Humana (The International Federation of Robotics, 2001) ..................................................................... 10

Figura 2 -Estimativa de Remessas de Robôs Industriais ao redor do mundo (The International Federation of Robotics, 2013) ..................................................................... 10

Figura 3 - Equação de Energia do método Langrangeano de Dinâmica Inversa (Craig,2005) ...................................................................................................................... 22

Figura 4 - Servomotor explodido (Pictronics,2010) ............................................. 24

Figura 5 - Servomotor transparente e montado. (Pictronics,2010) ....................... 24

Figura 6 - Sinal de controle PWM (Pictronics,2010) ........................................... 25

Figura 7 - Esquemático Manipulador Serial ......................................................... 26

Figura 8 - Desenho do projeto do Manipulador .................................................... 26

Figura 9 - Bases adotadas para o manipulador ..................................................... 27

Figura 10 - Esquematico da Solução 1(Vista Lateral) .......................................... 31

Figura 11 - Esquematico da Solução 2(Vista Lateral) .......................................... 32 Figura 12 - Esquemático da Solução 3(Vista Lateral) .......................................... 32

Figura 13 - Esquemático da Solução 3(Vista de cima) ......................................... 33

Figura 14 - Diagrama de Forças............................................................................ 35

Figura 15 - Diagrama de Esforços (von mises) .................................................... 36

Figura 16 - Figura Ilustrativa da Placa Cotada. (SmartRadio, 2014) .................... 37

Figura 17 - Esquema de ligação eletrônica do manipulador ................................. 38

Figura 18 - Desenho da Placa de Potência ............................................................ 39

6

Lista de Tabelas

Tabela 1 - Remessas anuais estimadas de robôs industriais multipropósito em países selecionados. Em números de unidades. (The International Federation of Robotics, 2013) ................................................................................................................................. 11

Tabela 2 - Matrizes de transformação para mudança de base .............................. 28

Tabela 3 - Tabela de Custo do Manipulador ......................................................... 56

7

Sumário

1 Introdução .................................................................................... 9

1.1 Robótica .................................................................................................... 9

1.2 Objetivos ................................................................................................. 12

1.3 Revisão bibliográfica............................................................................... 12

2 Conceituação .............................................................................. 13

2.1 Descrições espaciais e transformações .................................................... 13

2.1.1 Sistema de referência inercial ........................................................... 13

2.1.2 Sistema de referencial móvel ............................................................ 14

2.1.3 Vetor Posição .................................................................................... 17

2.1.4 Vetor Velocidade............................................................................... 17

2.1.5 Vetor Aceleração ............................................................................... 18

2.1.6 Distribuição de Massa ....................................................................... 19

2.2 Notação de Denavit- Hartenberg ............................................................. 20

2.3 Cinemática do manipulador .................................................................... 20

2.3.1 Descrição de Ligações ....................................................................... 20

2.4 Cinemática Inversa .................................................................................. 21

2.5 Dinâmica do manipulador ....................................................................... 22

2.6 Dinâmica inversa ..................................................................................... 22

2.7 Funcionamento do Servo Motor .............................................................. 23

3 Resultados e discussões ................ Error! Bookmark not defined.

3.1 Desenvolvimento ..................................................................................... 25

3.1.1 Modelagem da parte Mecânica ......................................................... 25

3.1.2 Denavit-Hartenberg ........................................................................... 27

3.1.3 Cinemática Inversa ............................................................................ 29

3.1.4 Dinâmica Inversa............................................................................... 30

3.1.5 Validação do modelo ......................................................................... 31

3.1.5.1 Validação cinemática ................................................................. 31

3.1.5.2 Validação Dinâmica ................................................................... 34 3.1.6 Diagrama de esforços ........................................................................ 35

3.1.7 Programação ...................................................................................... 36

3.1.7.1 Escolha do Sistema de Controle ................................................. 36

3.1.8 Acionamento ..................................................................................... 38

4 Conclusão ................................................................................... 40

5 Referências Bibliográficas .......................................................... 42

6 Anexos ......................................... Error! Bookmark not defined.

6.1 Circuito impresso de placa de potência ................................................... 45

6.2 Design da placa SmartPIC....................................................................... 46

6.3 Pinagem do PIC ....................................................................................... 47

6.4 Programa de controle de braço para o PIC .............................................. 48

6.5 Modelo matemático desenvolvido no MATLAB.................................... 52

6.5.1 Dinâmica Direta ................................................................................ 52

8

6.5.2 Dinâmica Inversa............................................................................... 53 6.6 Tabela de Custo ....................................................................................... 56

9

1 Introdução

1.1 Robótica

Ao homem, não é incomum sua procura de métodos e ferramentas para facilitar e agilizar suas tarefas diárias. Partindo dessa característica humana é que diversos filósofos e cientistas pesquisam e procuram desenvolver técnicas para tornar equipamentos assim uma realidade.

Robótica, por definição, é o conjunto de estudos e técnicas que têm o objetivo de conceber sistemas capazes de substituírem o homem nas suas funções motoras, sensoriais e intelectuais (Dicionário Priberam,2014). Os constantes estudos e aperfeiçoamento da robótica permitiram a criação de uma série de aparelhos capazes de agir de maneira automática em uma dada função, os chamados robôs.

O termo robô foi utilizado pela primeira vez em um romance de Karen Capek em 1921 chamado “Rossum’s Universal Robots” (Os Robôs Universais de Rossum, tradução livre). Nesse romance os robôs eram representados por máquinas de trabalho incansáveis, de aspecto humano, com capacidades avançadas mesmo para os robôs atuais.

Como o próprio inventor Nicola Tesla enunciou em seu livro: “... I conceived the idea of constructing an automaton which would mechanically

represent me, and which would respond, as i do myself, but of course, in a much more

primitive manner, to external influences. Such an automaton evidently had to have motive

power, organs for locomotion, directive organs, and one or more sensitive organs so

adapted as to be excited by external stimuli …”( N. Tesla, 1983) Diante deste conceito, segundo Rosário (2010) não é difícil de imaginar que trata-

se de uma área que envolve muitas outras disciplinas como mecânica, elétrica, eletrônica, física, computação, entre outras dependendo do propósito da máquina a ser construída.

Esta área, apesar de complexa, constitui um mercado mundial de automação industrial de um valor aproximado em 2012 de 26 bilhões de dólares (The International Federation of Robotics, 2013). E vem apresentando, conforme as figuras 1 e 2, um mercado crescente e cada vez mais competitivo demonstrando uma tendência mundial e a importância da robótica no mercado industrial moderno.

10

Figura 1 - Relação de preço de Robôs com o custo de mão de obra Humana (The

International Federation of Robotics, 2001)

Figura 2 -Estimativa de Remessas de Robôs Industriais ao redor do mundo (The

International Federation of Robotics, 2013)

Abaixo (Tabela 1), segundo esse mesmo estudo sobre as tendências de remessas

mundiais:

11

Tabela 1 - Remessas anuais estimadas de robôs industriais multipropósito em países

selecionados. Em números de unidades. (The International Federation of Robotics, 2013)

Esses dados nos mostram que no Brasil e no mundo, a robótica é uma realidade na

indústria e junto a sua característica multidisciplinar, caracteriza uma área conveniente para estudo na engenharia de controle e automação.

12

1.2 Objetivos

Como mostrado, a robótica é um setor tecnológico que vem crescendo

intensamente nos últimos anos. A aplicação de manipuladores robóticos em linhas industriais pode ser observada com uma frequência cada vez maior.

Os benefícios obtidos com a implementação de robôs em um processo industrial são diversos: aumento da qualidade do produto final, aumento da confiabilidade na produção, aumento da velocidade de produção, redução das perdas produtivas, entre outros benefícios (PIRES,2002).

O trabalho tem como objetivo realizar um estudo sobre a cinemática e a dinâmica de um manipulador com o intuito de formar um projeto conciso e coerente para uma futura construção de um braço robótico.

1.3 Revisão bibliográfica

A utilização e aplicação de manipuladores robóticos estende-se por muitos

campos do conhecimento. Desde pequenos deslocamentos de carga até o controle de um robô humanoide, a complexidade dos algoritmos faz necessário o uso de diversas técnicas matemáticas.

Segundo Rosenbaum (1991 apud Gobbi L. T. B.,1998), em qualquer teoria de controle motor, três níveis de análise são importantes. Em um primeiro nível, um problema representativo do sentido do movimento é decidir subir o primeiro degrau de uma escada com o pé direito ou esquerdo. Em um segundo nível está o problema da cinemática inversa, que se refere a converter o movimento planejado em um conjunto de ângulos articulares no campo espaço temporal. Em um nível mais profundo está o problema da dinâmica inversa (DI), que determina as forças a serem produzidas para gerar os ângulos articulares desejados. Modelar e garantir o controle de todos estes níveis são de suma importância para o correto funcionamento de um projeto real.

Tomando como exemplo a movimentação corporal coordenada, o sistema nervoso central utiliza uma equação específica e abstrata. A Dinâmica Inversa pode identificar e quantificar as forças e padrões articulares implícitos que agem nos membros e suas mudanças com o contexto e com a experiência (Schneider et al., 1990 apud Gobbi L. T. B.,1998).

Outra excelente aplicação de manipuladores robóticos é o aprendizado de movimentação de braços robóticos humanoides através da imitação de movimentos humanos utilizando-se cinemática inversa (Hsien-I Lin1, Yu-Cheng Liu, and Chi-Li Chen, 2011). Projetos como estes mostram a grande quantidade de aplicações possíveis e as diversas melhorias que podem ser feitas, desde que conhecidas as técnicas adequadas.

K. Kozlows ki e P.Herman, (2000) compararam em seus estudos os diversos algoritmos de controle para manipuladores robóticos seriais, comparando estratégias de controle PID e dinâmica inversa, demonstrando que é possível utilizar técnicas que transcendem a robótica convencional em termos de controle de movimentos.

13

Duas estratégias comumente utilizadas em manipuladores são as seriais e paralelas (mais utilizada em robôs industriais). A utilização de modelos híbridos é comum devido à complexidade dos sistemas encontrados fora dos ambientes acadêmicos (BONILLA A. A.C., 2004).

Desta forma, a utilização de manipuladores robóticos exige tanto um grande conhecimento de robótica quanto noções de modelagem matemática. A escolha da estratégia de controle adequada é essencial para a otimização do funcionamento, bem como a comparação de diversas técnicas torna cada vez mais segura a abordagem escolhida.

Neste trabalho será apresentada uma técnica para o controle de um manipulador robótico serial, ressaltando os cálculos da cinemática e dinâmica inversa do sistema, e os passos para validação e especificação de materiais.

2 Conceituação

2.1 Descrições espaciais e transformações

Neste projeto são abordados conceitos relacionados com sistemas de referência inercial e móvel, matrizes de transformação de coordenadas do sistema móvel para o inercial e vice-versa.

2.1.1 Sistema de referência inercial

Para se descrever o movimento de uma partícula é necessário, antes de tudo que se

defina um sistema de referência, onde os vetores de posição, velocidade e aceleração possam ser representados. Toda interpretação dos movimentos é, então, realizada neste referencial escolhido. Um sistema de referência é definido como uma base vetorial, representada por vetores unitários, ou versores. Este sistema de referência ou base pode ser inercial ou móvel(Craig,2005).

Vetor de posição – Vetor de velocidade – O vetor de velocidade absoluta é definido como a derivada

do vetor de posição. É muito importante ressaltar aqui, que a derivada do vetor de posição deve ser realizada quando o vetor de posição está representado no sistema de referência inercial, ao se desejar obter informações absolutas. O fato de se derivar um vetor de posição, quando este está representado numa base móvel (girante), leva incondicionalmente à perda de informações(Craig,2005). Assim, o vetor de velocidade absoluta fica definido como:

14

Vetor de aceleração – O vetor de aceleração absoluta é definido como a derivada

segunda do vetor de posição. É muito importante ressaltar aqui, mais uma vez, que a derivada segunda do vetor de posição deve ser também realizada no sistema inercial, quando deseja obter informações sobre a aceleração absoluta (Craig,2005).

2.1.2 Sistema de referencial móvel

Em muitos casos práticos a descrição de determinadas trajetórias e movimentos de

partículas fica muito mais simples, se um ou mais sistemas de referência móvel forem definidas. O objetivo da utilização de sistemas móveis de referência na cinemática é facilitar a representação de determinados movimentos complexos, subdividindo-os em vários movimentos mais simples, que se somam para compor o movimento absoluto. Aqui se distinguem dois tipos de sistema de referência móvel: (a) com translação pura, (b) com rotação pura. Todos os outros movimentos poderão sempre ser descritos como uma composição destes dois tipos de movimento: a rotação e a translação(Craig,2005).

Portanto, é fundamental estabelecer sempre uma relação entre os vários sistemas de

referência (inercial e móvel), para se viabilizar a passagem de um sistema móvel para inercial, ou vice-versa, sem dificuldades. Introduz-se aqui o conceito de matriz de transformação de coordenadas, a qual é responsável por transformar a representação de um vetor descrito numa dada base (por exemplo, o móvel) para outra base (por exemplo, a inercial)(Craig,2005).

(a) Sistema Móvel em Translação

Quando o sistema só translada, a matriz de transformação de coordenadas, a qual leva um vetor representado numa base para outra, é a matriz identidade, sendo esta constante e invariante no tempo(Craig,2005).

15

Dado um vetor , o qual descreve a posição de uma partícula B em relação ao sistema inercial, pode-se reescrevê-lo como a soma de dois vetores, um representado sistema inercial e outro no sistema móvel:

Onde é o vetor que descreve a posição do ponto A, origem do sistema móvel de referência, em relação ao ponto O. Este vetor é descrito diretamente no sistema inercial. O vetor descreve a posição do ponto B em relação ao ponto A, e sua representação é feita normalmente no sistema móvel de referência B1. Ao se somar os vetores, é necessário que todos eles estejam representados numa mesma base (Craig,2005). O vetor é, então, transformado para a base inercial com o auxilio da matriz de transformação de coordenadas, ou seja:

para que a soma dos vetores seja possível.

Utilizando-se a definição de velocidade absoluta, pode-se definir a descrição da velocidade.

Da mesma maneira para a aceleração:

16

(b) Sistema móvel em rotação

Antes de tudo, é necessário que se estabeleça uma relação entre os cursores do sistema inercial e do sistema móvel de referência. Esta relação será sempre dada pela matriz de transformação de coordenadas. O fato de um sistema móvel girar implica que os cursores do sistema inercial e os cursores do sistema móvel deixem de ser paralelos, e passem a guardar uma relação que depende do ângulo entre os cursores da base inercial e da base móvel(Craig,2005).

Suponha que o sistema móvel gire em torno do eixo Z no sentido positivo de acordo com a regra da mão direita.

Figura 1 – Projeção dos vetores unitários do sistema móvel sobre o sistema inercial

(Craig,2005). Projetando-se os cursores da base móvel sobre a base inercial, chega-se na seguinte

relação entre eles:

Reescrevendo as três equações de forma matricial, chega-se a:

Desta forma, qualquer vetor descrito numa base I ou B1 pode ser passado para

outra base B1 ou I, simplesmente quando os mesmos são multiplicados pela matriz de

17

tranformacao de coordenadas ou . Ressalta-se aqui, que as matrizes de tranformacao de coordenadas guardam propriedades importantes, como por exemplo, o seu determinante é sempre unitário e sua inversa é igual a sua transposta(Craig,2005).

E para rotações positivas nos eixos indicados Y e X tem-se as seguintes matrizes de tranformação de coordenadas:

Rotação positiva em torno do eixo Y:

Rotação positiva em torno do eixo X:

A matriz de transformação de coordenadas é uma matriz dependente do tempo, responsavel por transformar a representacao de um vetor descrito na base inercial para base móvel. Sua transposta, por sua vez, transforma um vetor descrito na base móvel para a base inercial(Craig,2005).

2.1.3 Vetor Posição

O vetor posição deve ser representado referente à base inercial, desta forma caso

possuímos uma base não inercial, é necessário que passe por uma transformação de base para trazer à base de referencia(Craig,2005).

ABIOAIABB

T

OAIOBIrrrTrr +=⋅+=

T

- Matriz de transformação para a base inercial.

2.1.4 Vetor Velocidade

O vetor velocidade absoluta é obtido derivando-se o vetor posição em relação ao

tempo, quando este é representado no sistema inercial:

18

( ) ( ) ( )lB

T

ABB

T

IAIABB

T

OAIOBIBIvTrTvrTr

dt

dr

dt

dV

Re111⋅+⋅×+=⋅+==

θθθω

AIv - é a velocidade linear absoluta do ponto A (ponto onde o sistema móvel está

posicionado) representada no sistema inercial.

( )ABB

T

IrT

1⋅×

θω - Produto vetorial da velocidade angular do sistema de referencia

móvel pelo vetor de posição ABIr inercial. O sistema tem origem no ponto A e segue até

o ponto de interesse B. Ressalta-se aqui que ABBr

1é escrito geralmente no sistema móvel

de referencia B1, para facilitar a representação do movimento. Quando este vetor é multiplicado pela matriz de transformação de coordenadas T

tem-se a sua representação

no sistema inercial.

lvRe

- é a velocidade relativa do ponto B em relação ao ponto A. Esta velocidade é

obtida quando se deriva o vetor posição ABBr

1 em relação ao tempo, quando este está

representado no sistema móvel de referencia cuja velocidade angular absoluta é ωI

. Derivando-se este vetor no sistema móvel tem-se a sua representação na base móvel B1. Faz-se então necessário multiplicá-lo pela matriz de transformação de coordenadas T

para obter a representação deste vetor na base inercial(Craig,2005).

2.1.5 Vetor Aceleração

O vetor posição é obtido derivando duas vezes o vetor posição em relação ao

tempo.

( ) ( )ABB

T

OAIOBIBIrTr

dt

dr

dt

da

1

22

⋅+==θ

( )lIlIIABIIIABIIAIBI

avrraaReRe

2 +×⋅+××+×+=

ωωωω

AIa - Aceleração linear absoluta do ponto A, onde a origem do sistema móvel

está posicionada, representada no sistema inercial I.

ABIIr×

ω - Produto vetorial da aceleração angular absoluta do sistema de

referência móvel pelo vetor de posição ABIr sendo ambos descritos no sistema inercial. O

vetor ABIr tem origem no ponto A e vai até o ponto de interesse B. Este termo está

diretamente relacionado com a aceleração tangencial, decorrente do vetor ωI

variar no

19

tempo e o vetor ABIr estar fixo nesta base móvel, sendo acelerado

angularmente(Craig,2005).

( )ABIIIr×× ωω - produto vetorial duplo da velocidade angular absoluta do

sistema de referencial móvel pelo vetor resultante da operação ( )ABIIr×ω . Este termo

está relacionado com a variação do vetor de velocidade em termos de sua direção. Este vetor gira com uma velocidade angular ω

I.

lIIvRe

2 ×⋅ ω - produto vetorial da velocidade angular absoluta do sistema móvel

pela velocidade relativa, ambas apresentadas no sistema inercial I. Este termo é conhecido como aceleração de Coriolis, e resulta da variação do vetor de velocidade relativa em termos de direção. Este vetor gira no espaço com uma velocidade angular ω

I(Craig,2005).

lIaRe

- aceleração relativa do ponto B em relação ao ponto A (origem do sistema

móvel de referência). Esta aceleração é obtida quando se deriva duas vezes o vetor posição em relação ao tempo, sendo este representado no sistema móvel de referência, cuja velocidade angular é ω

I. Derivando-se este vetor no sistema móvel tem-se a sua

representação na base móvel B1. Faz-se necessário, então multiplicá-lo pela matriz de transformação de coordenadas para obter a representação deste vetor na base inercial, e pode efetuar a soma de todos os termos numa mesma base(Craig,2005).

2.1.6 Distribuição de Massa

Em sistemas com simples grau de liberdade, comumente se fala da massa de um

corpo rígido. Nos casos de movimento rotacional sobre um simples eixo, a noção de momento de inércia é familiar. Para um corpo que possui liberdade nas três dimensões, existe uma infinidade de possibilidades de eixos de rotação. Nesses casos de rotação em torno de um eixo arbitrário, necessita-se de uma forma completa de caracterização de distribuição de massa em um corpo rígido. Aqui, se introduz o tensor de inércia, que para este propósito, pode ser pensado como a generalização do momento escalar de inércia de um objeto (Craig, 2005).

Para dado sistema arbitrário A, a matriz tensor de inércia é dada por:

20

Sendo:

Os elementos , e são chamados momentos de massa da inércia e os elementos com índices misturados são os chamados, produtos de massa da inércia. Se existe a possibilidade de escolher o sistema de referência é possível de zerar os produtos. Facilitando assim, as operações a serem feitas(Craig,2005).

2.2 Notação de Denavit- Hartenberg

2.3 Cinemática do manipulador

Cinemática é a ciência que trata do movimento sem levar em consideração as forças que o causam. Dentro da cinemática destacam-se a posição, velocidade e aceleração do manipulador.

2.3.1 Descrição de Ligações

Um manipulador pode ser pensado como um conjunto de corpos conectados em cadeia por juntas. Estes corpos são chamados de articulações. As juntas formam a conexão entre um par vizinho de articulações(Craig,2005).

Para dois eixos qualquer, existe uma distância bem definida entre eles. Esta distância é medida ao longo de uma linha que é perpendicular a ambos os eixos. Esta linha perpendicular é conhecida como comprimento da ligação, ai-1. Um outro parâmetro a ser definido é o ângulo formado entre o eixo i e i-1 a partir de ai-1 levando em

21

consideração a regra da mão direita. Esta variável é conhecida como giro da articulação, αi-1.

Articulações vizinhas possuem eixo de junta comum entre eles. Um parâmetro de interconexão é a distância ao longo deste eixo comum de um link para o próximo. Este parâmetro é chamado de articulação offset. O offset do eixo da junta é denominado di. O segundo parâmetro a quantidade de rotação entre um link e seu vizinho a partir do eixo comum. Este parâmetro é chamado de ângulo de junta θi.

Figura 1 – Parâmetros Denavit-Hartenberg (Craig,2005)

A definição dos mecanismos através destas quatro variáveis é uma convenção

usualmente chamada de notação de Denavit-Hartenberg.

2.4 Cinemática Inversa

Através da cinemática inversa é possível obter o conjunto de ângulos das juntas

que atingirão uma posição e uma orientação desejada com relação a um sistema de coordenadas de referência (base)(Craig,2005). - Solvabilidade

O problema de resolver as equações da cinemática inversa é não-linear. Dado um

valor numérico de 0

NT , tem-se que encontrar os valores de θ 1, θ 2, θ 3, ..., θ N considerando

as equações da cinemática direta. Como qualquer sistema de equações não-lineares, devemos nos preocupar com a existência de soluções, com soluções múltiplas e com método de solução(Craig,2005). Quanto ao método de solução existem basicamente duas estratégias: solução de forma fechada e solução numérica. Por ser iterativo, o método numérico geralmente é muito mais lento do que o método de forma fechada correspondente. Portanto, uma

22

ênfase maior será dada as soluções de forma fechada. Esta classe pode ser subdividida em dois métodos: algébrico e geométrico. Na verdade, tratam-se de métodos similares diferindo-se um do outro talvez pela forma de aproximação(Craig,2005).

2.5 Dinâmica do manipulador

Dinâmica é a ciência que estuda a relação entre força e movimento. A essência

desta parte da Física é estudar os movimentos dos corpos e suas causas. Dinâmica de mecanismos é um extenso e diversificado. Neste trabalho o foco será

o estudo de manipuladores, em especial métodos aplicados a manipuladores em série. Sendo assim, pensando no projeto do manipulador em si, o desenvolvimento vai se concentrar em dada trajetória e o ângulo θ, velocidade angular θ& e aceleração angular θ&& encontrarmos o vetor torque das juntas.

2.6 Dinâmica inversa

Como observado em Craig (2005) existem duas aproximações distintas para o

cálculo da dinâmica inversa de um manipulador. Pode-se utilizar o método iterativo de Newton-Euler que é baseado na descrição das forças e momentos de um corpo rígido e sua propagação nos demais links pertencentes ao manipulador. Ou o método Lagrangeano que enuncia uma abordagem pelo somatório de energia do sistema a ser estudado.

Para o projeto em questão foi abordado o método Lagrangeano por dois motivos. O primeiro motivo é que ao observar o seu método de cálculo, se percebe que o resultado obtido é diretamente o desejado Torque para a especificação do motor atuador ideal. Contrário do método de Newton-Euler onde este cálculo é leva ao resultado das forças necessárias. Necessitando uma segunda avaliação matemática para chegar ao parâmetro de projeto desejado.

O segundo motivo é que por esse trabalho retratar uma continuação de trabalhos passados, a abordagem de Newton-Euler se torna um assunto já estudado, tornando interessante então a análise de uma segunda abordagem para a comparação de resultados em um estudo posterior.

Figura 3 - Equação de Energia do método Langrangeano de Dinâmica Inversa (Craig,2005)

23

Onde k é a energia cinética do sistema:

E ki:

E u é a energia potencial do sistema:

Onde ui:

2.7 Funcionamento do Servo Motor

Neste trabalho, o enfoque não será o controle de posição dos motores. E sim o

projeto do braço como um todo e os cálculos envolvidos. Neste sentido, para um ganho de tamanho e torque foi utilizado servomotores como força motriz para as hastes que formam o braço robótico. Mecanismo esse que além de possuir a força adequada dispõe de um controle de posição.

“Servo motores são dispositivos de malha fechada, ou seja, recebem um sinal de

controle; verificam a posição atual e atuam no sistema indo para a posição desejada. ”

(Modelix Robotics,2013) Sua estrutura interna é simples e bem estruturada, composta de um estator, um

rotor, um potenciômetro para medida de rotação e sistema de engrenagens(Pictronics,2010).

24

Figura 4 - Servomotor explodido (Pictronics,2010)

Figura 5 - Servomotor transparente e montado(Pictronics,2010)

Seu sistema de controle funciona medindo o valor da resistência do potenciômetro

e o traduzindo em posição angular. A qualidade do potenciômetro influencia a precisão, estabilidade e vida útil do servomotor.

Essa medida realimenta um PID interno pertencente aos componentes eletrônicos discretos ou circuitos integrados que aciona o motor no sentido necessário e posição desejada.

O sinal de controle se utiliza do protocolo PWM (modulação por largura do pulso) que funciona em cima de uma onda de 50hz e com uma onda de largura que varia entre 1ms e 2ms. Sendo um pulso 1ms indicando uma angulação de – 90 graus e um pulso de 2ms indicando +90 graus. Os demais tamanhos de onda entre esses valores determinam valores proporcionais de ângulo(Pictronics,2010).

25

Figura 6 - Sinal de controle PWM (Pictronics,2010)

Os parâmetros para compra de um servomotor comercial varia entre fabricantes,

mas comumente se destaca as características peso (medido em gramas), torque (medido em kg.cm) e velocidade (medido em sec/60º - segundos para percorrer 60 graus).

Esse tipo de servomotores de baixo torque (até 15kg.cm) são amplamente usados em aeromodelismo, nautimodelismo e automodelismo por seu baixo peso, torque adequado e baixo custo (U $5 – 20) (ServoDatabase,2013).

Existem outros tipos de servomotores com maior potência e precisão, trifásicos, com realimentação de ângulo, posição e torque, porém são maiores, custosos e pesados. Não adequados ao propósito deste ensaio fugindo então do escopo, e assim, não serão abordados.

3 Modelagem

3.1 Desenvolvimento

O trabalho consiste em projetar um manipulador robótico através do estudo

detalhado da cinemática e dinâmica inversa de um manipulador industrial.

3.1.1 Modelagem da parte Mecânica

Como explanado na seção 1.1, o conceito de robô tem atrelado a si a aproximação

ao sistema humano. Neste sentido, ao imaginar um possível manipulador robótico para projeto, pensou-se em uma aproximação de um braço humano. Estipulou-se que um braço era determinado por 4 juntas e 3 ligações como ilustrado na figura 7:

26

Figura 7 - Esquemático Manipulador Serial

Sendo θ1 o ângulo de rotação em torno do eixo z, e demais ângulos θ2, θ3 e θ4

ângulos de rotação em torno do eixo y. Para tanto, é necessário um atuador em cada junta com o intuito de controlar estes

ângulos que serão parâmetro para todo o estudo deste ensaio. Como por exemplo, desta forma:

Figura 8 - Desenho do projeto do Manipulador

27

3.1.2 Denavit-Hartenberg

Primeiramente, a partir da matriz de Denavit-Hartenberg, que se encontra a

seguir, as matrizes de transformação do manipulador foram obtidas.

Sendo: a: distância entre Zi e Zi+1 medida ao longo de Xi

α: ângulo entre Zi e Zi+1 medida a partir de Xi

d: distancia entre Xi-1 e Xi medida ao longo de Zi θ: ângulo entre Xi-1 e Xi medida a partir de Zi

As bases determinadas estão ilustradas a seguir:

Figura 9 - Bases adotadas para o manipulador

Os seguintes valores(Tabela 2) foram obtidos a partir de uma análise da

disposição dos eixos nas bases de coordenadas:

28

Tabela 2 - Matrizes de transformação para mudança de base

i αi-1 ai-1 di θi

1 0 0 0 θ 1

2 90 L0 0 θ 2

3 0 L1 0 θ 3

4 0 L2 0 θ 4 5 0 L3 0 0 Matriz de transformação do sistema de coordenadas 1 para o sistema de

coordenadas 0

Matriz de transformação do sistema de coordenadas 2 para o sistema de

coordenadas 1

Matriz de transformação do sistema de coordenadas 3 para o sistema de

coordenadas 2

Matriz de transformação do sistema de coordenadas 4 para o sistema de coordenadas 3

29

Matriz de transformação do sistema de coordenadas 5 para o sistema de coordenadas 4

A matriz de transformação geral do manipulador, ou seja, do sistema de

coordenadas 4 para o sistema de coordenadas de referencia 0 é obtida pelo produto das matrizes acima. A operação pode ser observada a seguir:

TTTTTT4

5

3

4

2

3

1

2

0

1

0

5∗∗∗∗=

Então, sendo para efeitos de simplificação Ci = cos(θi) e Si = sin(θi).

Temos:

00

s4)*s3-c4*(c3*c2+c4)*s3-s4*(-c3*s2s4)*c3+c4*(s3*c2+s4)*s3-c4*(c3*s2

s4)*s3-c4*(c3*s2*s1-c4)*s3-s4*(-c3*c2*s1s4)*c3+c4*(s3*s2*s1-s4)*s3-c4*(c3*c2*s1

s4)*s3-c4*(c3*s2*c1-c4)*s3-s4*(-c3*c2*c1s4)*c3+c4*(s3*s2*c1-s4)*s3-c4*(c3*c2*c1

+

+

+

10

l2]*s3*c2+l1)+l2*(c3*s234*2*30

l0*s1+l2*s3*s2*s1-l1)+l2*(c3*c2*s1234*1*3c1-

l0*c1+l2*s3*s2*c1-l1)+l2*(c3*c2*c1234*1*3s1

scl

csl

ccl

3.1.3 Cinemática Inversa

Tendo a matriz transformação da origem em relação ao último link, pode-se

realizar então a cinemática inversa, que se trata apenas de isolar os ângulos de cada junta em relação aos pontos dados. Apresentada abaixo:

++++

+−++++

+−++++

=

1

2*)3*2(cos)12*3(cos*2)43sin(*2cos*3

1*12*3*2*1)12*3(cos*2cos*1)432cos(*1*3

1cos*12*3*2*1cos)12*3(cos*2cos*1cos)432cos(*1cos*3

1

LsenLLsenL

senLLsensensenLLsensenL

LLsensenLLL

z

y

x

θθθθθθθ

θθθθθθθθθθθ

θθθθθθθθθθθ

30

Sendo assim, resolvendo para x, y, z temos: x = L3*cos(θ1)*cos(θ2+ θ3+ θ4)+cos(θ1)*cos(θ2)*(cos(θ3)*L2+L1)-

cos(θ1)*sin(θ2)*sin(θ3)*L2+ cos(θ1)*L0 y = L3*sin(θ1)*cos(θ2+ θ3+ θ4)+sin(θ1)*cos(θ2)*(cos(θ3)*L2+L1)-

sin(θ1)*sin(θ2)*sin(θ3)*l2+ sin(θ1)*L0 z = L3*cos(θ2)*sin(θ3+ θ4)+sin(θ2)*(cos(θ3)*L2+L1)+cos(θ2)*sin(θ3)*L2.

3.1.4 Dinâmica Inversa

Como enunciado anteriormente a dinâmica inversa pode ser calculada usando a

abordagem Lagrangeana que segue:

Onde

k = k1 + k2 +k3+ k4+k5 e

u = u1+u2+u3+u4 + u5

Como:

Θ+Θ+Θ+Θ+Θ

Θ+Θ+Θ+Θ

Θ+Θ+Θ

Θ+Θ

=

02

1)

2(

2

1

2

1)

2(

2

1

2

1)

22(

2

1

2

1

42

1

2

44

2

4

2

32

34

2

24

2

143

2

33

2

3

2

22

23

2

132

2

21

2

2

2

12

1

2

1

1

2

11

2

1

2

1

1

5

4

3

2

1

&&&&&

&&&&

&&&

&&

IzzL

dddm

IzzL

ddm

IzzLL

m

IzzL

m

k

k

k

k

k

Considerando:

31

E,

Considerando:

A partir daqui as equações ficam cada vez maiores e complexas tornando inviável sua representação, entretanto, todas elas estão expressas no anexo em linguagem Matlab.

Os memoriais de cálculo acerca de como foi encontrado d3, d4, z e w estão ao fim do trabalho como anexo.

Assim, resolvendo para τ, obtém-se os τ1, τ2, τ3, τ4 e τ5 que são os torques de cada junta para dado θ1, θ2, θ3, θ4 e θ5.

Com a informação de torque em mãos pode-se utilizar condições de contorno e determinar, a partir da especificação do material do manipulador e carga a ser deslocada, um acionamento adequado ao projeto.

3.1.5 Validação do modelo

Para a validação do modelo de cinemática e dinâmica inversa, a forma mais

simples é testar algumas soluções conhecidas e verificar se os resultados obtidos batem com o esperado.

3.1.5.1 Validação cinemática

Para verificação da cinemática, testemos algumas soluções:

Solução 1: θ1 = 0 ; θ2 = 0 ; θ3 = 0 ; θ4 = 0

Figura 10 - Esquematico da Solução 1(Vista Lateral)

32

Solução 2:

θ1 = 0 ; θ2 = 0 ; θ3 = 90 ; θ4 = 0

Figura 11 - Esquematico da Solução 2(Vista Lateral)

Solução 3:

θ1 = 0 ; θ2 = 0 ; θ3 = 90 ; θ4 = -90

Figura 12 - Esquemático da Solução 3(Vista Lateral)

Solução 4: θ1 = 90 ; θ2 = 0 ; θ3 = 0 ; θ4 = 0

33

Figura 13 - Esquemático da Solução 3(Vista de cima)

Seguindo as equações encontradas:

x = L3*cos(θ1)*cos(θ2+ θ3+ θ4)+cos(θ1)*cos(θ2)*(cos(θ3)*L2+L1)-cos(θ1)*sin(θ2)*sin(θ3)*L2+ cos(θ1)*L0

y = L3*sin(θ1)*cos(θ2+ θ3+ θ4)+sin(θ1)*cos(θ2)*(cos(θ3)*L2+L1)-

sin(θ1)*sin(θ2)*sin(θ3)*L2+ sin(θ1)*L0 z = L3*cos(θ2)*sin(θ3+ θ4)+sin(θ2)*(cos(θ3)*L2+L1)+cos(θ2)*sin(θ3)*L2.

Resultado Solução 1 x = L3 + L2 +L1+L0 y = 0 z = 0 Resultado solução 2 x = L1+L0 y = 0 z = L3 + L2 Resultado solução 3 x = L3 + L1 + L0 y = 0 z = L2 Resultado solução 4 x = 0 y = L3 + L2 +L1+L0 z = 0

34

Os resultados batem com o esperado e como a função é derivável em todo o

intervalo e é contínua eu posso inferir que ela é válida para todo o intervalo. Validando a modelagem cinemática proposta.

3.1.5.2 Validação Dinâmica

Na validação da Dinâmica foi necessário utilizar-se de algumas considerações

físicas como forma das hastes, material, velocidade do motor, peso da carga e local da aplicação da carga.

Para tanto, considerou-se uma haste retangular com seu eixo passando pelo fim da placa de momento de inércia:

123

22mwmh

I +=

Onde: m : massa do material. h : Altura da placa. w: espessura da placa (adotado 2 mm)

Como material, considerou-se o acrílico, de densidade 1180 kg/m³ e tensão de ruptura de 45 MPa.(MATWEB,2014) Para as dimensões, considerou-se a primeira haste de L1 = 20 cm, a segunda de L2 = 15 cm e a terceira haste L3 = 5 cm. E para a carga, considerou-se uma carga de 100 g, aplicada na extremidade do último ligamento. Assim, para a pior situação de torque, a Solução 1 testada acima (θ1 = 0 ; θ2 = 0 ; θ3 = 0 ; θ4 = 0), obteve-se pelo modelo do Matlab os seguintes resultados:

=

0

0529.0

2575.0

6377.0

0

5

4

3

2

1

τ

τ

τ

τ

τ

Unidades expressas em N.m. Resolvendo a mesma solução por teste de mesa segue:

35

Figura 14 - Diagrama de Forças

Onde F1 = m1.g, F2 = m2.g, F3 = m3.g. Para calcular a massa de cada haste usou-se m= v.d. Onde v é volume e d é densidade. Assim obtém-se m1 = 0.0626 Kg, m2 = 0.0469 Kg e m3 = 0.0156 Kg. Assim, o torque na junta da primeira haste tem fórmula:

)(**4)2

(**3)2

(**22

**1321

3

21

2

1

1

2LLLgm

LLLgm

LLgm

Lgm ++++++++=τ

)(**4)2

(**3)2

(**232

3

2

2

3LLgm

LLgm

Lgm ++++=τ

)(**4)2

(**33

3

4Lgm

Lgm +=τ

Resolvendo temos: τ2 = 0,6377

τ3 = 0,2575 τ4 = 0,0529 Conforme esperado e de acordo com o modelo feito no Matlab.

3.1.6 Diagrama de esforços

Aproveitando este caso que apresenta o maior torque de todo intervalo pois todas as forças de carga deste sistema são tipo força peso e, portanto, suas componentes terão maior valor quando perpendicular ao braço considerado para cálculo do torque, pode-se desenhar um diagrama de esforços e validar que o material escolhido, de fato, suporta as forças aplicadas a ele. Utilizando-se do software de CAD, CAE e simulação, NX – da Siemens, fez-se o diagrama de esforços para a barra que sofre o maior torque. A haste L1. Segue os resultados:

36

Figura 15 - Diagrama de Esforços (von mises)

Observa-se que a maior tensão encontrada foi de 0,172 MPa, muito abaixo da tensão de ruptura de 45 MPa do material, portanto, valida-se a utilização deste material para este projeto. Caso a tensão fosse superior a tensão de ruptura do material, outro material deverá ser escolhido. Além disso, a partir do torque de 0,6377 N.m também pode-se especificar também um motor para este projeto. Em pesquisa de mercado, o servomotor mais próximo deste valor encontrado foi um TGY-MG958 da Turnigy (SERVODATABASE,2014) com 11.95 kgf.cm, convertendo-se sua unidade assume um valor de 1,1719 N.m aproximadamente, atendendo o torque necessário neste projeto. Vale ressaltar que cada junta tem seu torque máximo exigido e deve-se especificar individualmente um motor para cada situação, mantendo o projeto mais coerente e menos custoso, afinal, o custo de um motor costuma ser proporcional a sua força motriz. Neste projeto, para a junta T2 o motor MG-16R da TowerPro (SERVODATABASE,2014) seria o motor especificado por ter mais de 2,6 N.m de Torque adequado ao carregamento desta junta. E finalmente, para a última junta o motor SG-50 da TowerPro(SERVODATABASE,2014) por possuir 0,58 N.m atendendo o torque máximo exercido nesta junta.

3.1.7 Programação

3.1.7.1 Escolha do Sistema de Controle

Para o controle do sistema de servomotores foi necessário definir um micro

controlador adequado, capaz de suprir o funcionamento de todos os servomotres do

37

manipulador robótico. A escolha foi o PIC 18F4550 (AllDataSheet, 2014) devido à sua versatilidade e facilidade de programação.

O programa foi escrito utilizando o próprio MPLab disponibilizado pela própria Microchip. Para o teste da programação foi utilizado o ambiente de simulação Proteus (ISIS Professional) e validada a lógica existente para a geração de pulsos para o braço robótico. Segue placa de testes na qual foi inserida o PIC. A opção por uma placa manufaturada foi uma escolha apenas por comodidade de ter a opção gravação in-circuit e periféricos já incorporados a placa para testes e depuração.

Figura 16 - Figura Ilustrativa da Placa Cotada. (SmartRadio, 2014)

Como os servos necessitam de um duty cicle de 1 a 2 milissegundos dentro de um

período de 20 milissegundos (ElectronicosCaldas,2014), o clock da placa de testes de 20MHz foi suficiente.

Muitos micro controladores como ARM, Freescale e outros podem também ser utilizados para o controle dos motores, no entanto não são objetos de estudo deste trabalho e podem ser sugeridos como pesquisas futuras.

Abaixo, figura com o esquema elétrico proposto:

38

Figura 17 - Esquema de ligação eletrônica do manipulador

3.1.8 Acionamento

Para o acionamento deste manipulador, vale lembrar que será necessária uma

alimentação elétrica para os motores e eletrônica. No caso da placa do micro controlador, por ser uma placa manufatura, a sua fonte de alimentação vem acompanhada. Porém, no caso dos servomotores uma placa de potência deve ser confeccionada. Abaixo, figura com o desenho da placa de potência:

39

Figura 18 - Desenho da Placa de Potência

Onde, os conectores J1, J2, J3, J4 e J5 são os pontos de encaixe dos fios de

alimentação e controle dos servomotores. J6 é o conector que fará ligação com a posta do PIC e J7 é o conector onde a fonte de energia deverá ser ligada.

40

4 Conclusão

Os torques máximos obtidos foram de 0,6377 N.m ,0,2575 N.m e 0,0529 N.m nas

juntas 2, 3 e 4 respectivamente, possibilitando o condicionamento de motores adequados para este carregamento para cada junta. Além disso, pode-se verificar através do software de simulação um esforço máximo de 0,172 MPa que se mostra muito inferior ao esforço máximo do material acrílico de 45 Mpa, validando assim a utilização do mesmo na confecção do manipulador. Assim foi elaborado um projeto eletrônico testado por simulação em software específico para atuar os motores conforme modelagem desenvolvida.

Como enunciado no início deste ensaio, o projeto de um manipulador robótico provou ser uma tarefa multidisciplinar, com grande complexidade matemática e de integração. Desde o levantamento teórico até a execução, constantemente conhecimentos de áreas distintas se cruzaram e foram necessárias para uma completa síntese do problema e concepção de uma solução. Neste ponto, o aliado veio na modelagem física do manipulador, que trouxe consigo a possiblidade de a partir dele especificar e projetar os demais itens. Sem a correta e verificada modelagem do sistema, validar cada item seria impossível ou apenas por estimativa.

O grande contraponto de um trabalho com sistemas de manipuladores seriais é que a mera inserção ou alteração de ligamentos, juntas, graus de liberdade ou até notação da base de localização adotada, requer um recalculo de todo o modelo, reespecificação e revalidação. Mas o método é conciso. A partir da decisão da topologia do manipulador, todo o trabalho de projeto segue um fluxo.

Ainda existe acerca dessa aplicação grande oportunidade para pesquisa, inclusive por misturar grandes áreas do conhecimento. Estudar outras topologias de manipulador, quanto a tipos de juntas, formas de ligamentos. Ou variar no tipo de motores e acionamentos que podem ser usados. Alguns vão requerer um controle de malha fechada de posição, torque e velocidade diferenciados pois cada tipo de motor tem suas limitações. Isso poderá inclusive ser um desafio para uma eletrônica de potência conforme demanda variável de potência. Sem contar na modelagem física, cálculo de esforços, técnicas de controle, comunicação, integração, etc

Mesmo não tendo sido estabelecido um limite financeiro para este trabalho, comumente este é um dos parâmetros de projeto e deve ser observado. Em um projeto como este, estimou-se em torno de R$ 560,00 (Lista de compras no Anexo) para execução, desconsiderando o custo das ferramentas necessárias para o trabalho e mão de obra.

Ainda, sugiro para futuros trabalhos, o teste de diferentes tipos de controle de posição como K. Kozlows ki e P.Herman, (2000) fizeram. Mas incluiria, controle fuzzy, neural por ter sua forma própria de modelar o sistema e comparar computacionalmente qual o mais eficiente. A modelagem algébrica, apesar de devolver o resultado exato, requer muito processamento trigonométrico da máquina e faz requerer um hardware robusto. Fica a curiosidade se em um mesmo hardware, o método de modelagem iterativo

41

não torna mais rápido a resposta no acionamento e flexível quanto a mudanças na arquitetura do manipulador.

42

5 Referências Bibliográficas

[1] Craig, J. J.; Introduction to Robotics – Mechanics and Control, Pearson

Prentice Hall, Third Edition, 2005.

[2] ServoDatabase. Disponível em:

http://www.servodatabase.com/servo/towerpro/sg90 – Acessado dia: 13/04/2014

[3] CARRARA, Valdemir. Apostila de Robótica. Universidade Brás

Cubas, São Paulo, 2008, Disponível em: http://carrara.us, Acesso em: 7/7/2013.

[4] Modelix Robotics, Disponível em:

http://www.leomar.com.br/modelix/index.php?option=com_content&view=article

&id=158%3Aservo-motores&catid=80%3Acomponentes. Acesso em: 20/7/2013

[5] Pictronics, disponível em: http://www.pictronics.com.br/artigos-

tecnicos/43-eletronica-e-automacao/89-como-funciona-um-servo-motor.html.

Acesso em: 20/7/2013

[6] Priberam Dicionário, disponível em www.priberam.pt, acesso em

12/03/2014 http://www.priberam.pt/dlpo/robotica - definição robótica

[7] N. Tesla, “My Inventions: Autobiography of Nicola Tesla”,

Willinston, VT: Hart Brothers, 1983.

43

[8] Rosário, João M., “Robótica Industrial I”. São Paulo,2010,

Editora Baraúna. Acessado em 10/05/2014. Disponível em:

http://issuu.com/editorabarauna/docs/robotica_industriali

[9] The International Federation of Robotics, and the United Nations,

"World Robotics 2001," Statistics, Market Analysis, Forecasts, Case Studies and

Profitability of Robot Investment, United Nations Publication, New York and

Geneva, 2001.

[10] The international Federation of Robotics, “Executive Summary”.

2013. Acessado em 10/05/2014. Disponível em:

http://www.ifr.org/uploads/media/Executive_Summary_WR_2013_01.pdf

[11] Microchip,2003. Disponível em:

http://pdf1.alldatasheet.com/datasheet-

pdf/view/93911/MICROCHIP/PIC18F4550.html. Acessado dia: 10/05/2014

[12] SmartRadio. 2014. Disponível em:

http://www.smartradio.com.br/loja-pic/?id=43. Acessado dia 18/06/2014

[13] EletronicoCaldas, 2014. Disponível em:

http://www.electronicoscaldas.com/datasheet/SG90_Tower-Pro.pdf. Acessado

dia: 11/06/2014.

[14] MATWEB, 2014. Disponível em: http://www.matweb.com/.

Acessado dia 13/06/2014.

44

[15] ServoDatabase. 2014. Disponível em:

http://www.servodatabase.com/servo/turnigy/tgy-mg958. Acessado dia:

13/06/2014.

[16] Gobbi L. T. B., “Aplicações da Dinâmica Inversa na Análise de

Movimentos Complexos”, 1998, UNESP, Departamento de Ed. Física, Rio Claro,

Evento: “Mesa Redonda no Seminário de Comportamento Motor”, Local: São

Paulo, SP. Disponível em:

http://www.rc.unesp.br/ib/efisica/leplo/palestras/lacom98.pdf, Acessado dia

15/06/2014.

[17] Lin H., Liu Y., Chen C. – “Evaluation of Human-Robot Arm

Movement Imitation”.2011, National Taipei University of Technology, Taipei,

Taiwan.

[18] Kozlowski K., Herman P., “A comparison of Control Algorithms for

Serial Manipulators in Terms of Quasi-Velocities”, 2000, Poznan University of

Technology, Poznan, Poland.

[19] BONILLA A. A. C., ”Cinemática Diferencial de Manipuladores

Empregando Cadeias Virtuais”, 2004. Universidade Federal de Santa Catarina,

Florianópolis, SC.

45

6 Apêndices

6.1 Circuito impresso de placa de potência

46

6.2 Design da placa SmartPIC

47

6.3 Pinagem do PIC

48

6.4 Programa de controle de braço para o PIC

#include <p18F4550.h> #define USE_AND_OR #include <timers.h> #include <usart.h> #include <stdlib.h> /** CONFIGURATION **************************************************/ // Configuration bits for PICDEM FS USB Demo Board (based on PIC18F4550) // #error "definido PIC 18F4550!!!!" #pragma config PLLDIV = 5 // (20 MHz crystal on PICDEM FS USB board) #pragma config CPUDIV = OSC1_PLL2 #pragma config USBDIV = 2 // Clock source from 96MHz PLL/2 #pragma config FOSC = HSPLL_HS #pragma config FCMEN = OFF #pragma config IESO = OFF #pragma config PWRT = OFF #pragma config BOR = ON #pragma config BORV = 3 #pragma config VREGEN = ON //USB Voltage Regulator #pragma config WDT = OFF #pragma config WDTPS = 32768 #pragma config MCLRE = ON #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF // #pragma config CCP2MX = ON #pragma config STVREN = ON #pragma config LVP = OFF // #pragma config ICPRT = OFF // Dedicated In-Circuit Debug/Programming #pragma config XINST = OFF // Extended Instruction Set #pragma config CP0 = OFF #pragma config CP1 = OFF // #pragma config CP2 = OFF // #pragma config CP3 = OFF #pragma config CPB = OFF // #pragma config CPD = OFF #pragma config WRT0 = OFF #pragma config WRT1 = OFF // #pragma config WRT2 = OFF // #pragma config WRT3 = OFF

49

#pragma config WRTB = OFF // Boot Block Write Protection #pragma config WRTC = OFF // #pragma config WRTD = OFF #pragma config EBTR0 = OFF #pragma config EBTR1 = OFF // #pragma config EBTR2 = OFF // #pragma config EBTR3 = OFF #pragma config EBTRB = OFF #define constTmr0 53543 #define constTmr1 35535 // tempo para 20 milisegundos #define M0 PORTDbits.RD0 // MOTOR0 #define M1 PORTDbits.RD1 // MOTOR1 #define M2 PORTDbits.RD2 // MOTOR2 #define M3 PORTDbits.RD3 // MOTOR3 #define M4 PORTDbits.RD4 // MOTOR4 void Configura_Tmr0 (void) { T0CONbits.T0PS2 = 1 ; //110 = 1:128 Prescale value T0CONbits.T0PS1 = 1; T0CONbits.T0PS0 = 0; T0CONbits.T08BIT = 0; //modo 16 bits T0CONbits.TMR0ON = 1; // ativa timer 0 T0CONbits.PSA = 1; // asigna o preescaler pra ele T0CONbits.T0CS = 0; WriteTimer0 ( constTmr0 ); // 48MHz 1 segundo pra estouro INTCONbits.TMR0IF = 0; } void Configura_Tmr1 (void) { T1CONbits.RD16=1; //it is suppose to count up to 65535 T1CONbits.T1RUN=0; //device clock is derive from a source different to timer1 osc T1CONbits.T1CKPS1=1; // 1:8 T1CONbits.T1CKPS0=1; T1CONbits.T1OSCEN=0; // Timer1 oscillator is shut off T1CONbits.TMR1CS=0; // Internal clock selected T1CONbits.TMR1ON=0; // stops Timer1 WriteTimer1 ( constTmr1 ); // 48MHz 1 segundo pra estouro PIR1bits.TMR1IF = 0; } void main( void ) {

50

int tt0,t20,i; tt0 = constTmr0-6000; t20 = constTmr1; Configura_Tmr0 (); Configura_Tmr1 (); TRISD = 0; LATD = 0; Led = 0; while( 1 ) { if ( INTCONbits.TMR0IF ) { INTCONbits.TMR0IF = 0; T0CONbits.TMR0ON=0; WriteTimer1(t20 - tt0/8 ); Led = 0; T1CONbits.TMR1ON=1; } if ( PIR1bits.TMR1IF ) { switch(i) { case 0: PIR1bits.TMR1IF = 0; T1CONbits.TMR1ON=0; WriteTimer0( 17535 ); M0 = 1; T0CONbits.TMR0ON=1; i++; break; case 1: PIR1bits.TMR1IF = 0; T1CONbits.TMR1ON=0; WriteTimer0( 17535 ); M1 = 1; T0CONbits.TMR0ON=1; i++; break; case 2: PIR1bits.TMR1IF = 0; T1CONbits.TMR1ON=0; WriteTimer0( 17535 ); M2 = 1; T0CONbits.TMR0ON=1; i++; break;

51

case 3: PIR1bits.TMR1IF = 0; T1CONbits.TMR1ON=0; WriteTimer0( 17535 ); M3 = 1; T0CONbits.TMR0ON=1; i++; break; case 4: PIR1bits.TMR1IF = 0; T1CONbits.TMR1ON=0; WriteTimer0( 17535 ); M4 = 1; T0CONbits.TMR0ON=1; i=0; break; } } if ( PORTDbits.RD7 == 1) { tt0 = tt0 - 300; while (PORTDbits.RD7 == 1) {} } } CloseTimer0(); // close modules }

52

6.5 Modelo matemático desenvolvido no MATLAB

6.5.1 Dinâmica Direta %%%% syms L1 L2 L3 T1 T2 T3 T4 m1 m2 m3 m4 g T1d T2d T3d T4d T1dd T2dd T3dd T4dd Izz1 Izz2 Izz3 t w1 w2 w3 w4; u_1 = 0; u_2 = m1*g*(L1/2)*sin(T2) + m1*g*(L1/2); u_3 = m2*g*(L1*sin(T2) + (L2/2)*sin(T2 +T3)) + m2*g*(L1+(L2/2)); u_4 = m3*g*(L1*sin(T2) + L2*sin(T2+T3) + (L3/2)*sin(T2+T3+T4)) + m3*g*(L1+L2+L3/2); u_5 = m4*g*(L1*sin(T2) + L2*sin(T2+T3) + (L3)*sin(T2+T3+T4)) + m4*g*(L1+L2+L3); k_1 = (1/2)*m1*((L1/2)^2)*T1d^2 + (1/2)* Izz1 * T1d^2; k_2 = (1/2)*m1*(((L1/2)^2)*T1d^2 + ((L1/2)^2)*T2d^2) + (1/2)* Izz1 * T2d^2; d3 = L1^2 + (L2/2)^2 + L1*L2*cos(T3); k_3 = (1/2)*m2*(d3*T1d^2 + d3*T2d^2 + ((L2/2)^2)* T3d^2) + (1/2)* Izz2 * T3d^2; d4 = L1^2 + L2^2 + (1/4)*L3^2 + 2*L1*L2*cos(T3)+ L2*L3*cos(T4)+ L1*L3*cos(T3+T4); k_4 = (1/2)*m3*(d4*T1d^2 + d4*T2d^2 + d4*T3d^2 + ((L3/2)^2)*T4d^2) + (1/2)*Izz3*T4d^2; k_5 = 0 u = u_1 + u_2 + u_3 + u_4 + u_5 k = k_1 + k_2 + k_3 + k_4 + k_5 dk_dT = [diff(k,T1) ; diff(k,T2) ; diff(k,T3) ; diff(k,T4) ; 0 ] du_dT = [diff(u,T1) ; diff(u,T2) ; diff(u,T3) ; diff(u,T4) ; 0 ] dk_dTd = [diff(k,T1d) ; diff(k,T2d) ; diff(k,T3d) ; diff(k,T4d) ; 0 ] ddk_dTd_t = diff(dk_dTd)

53

6.5.2 Dinâmica Inversa syms L1 L2 L3 T1 T2 T3 T4 m1 m2 m3 m4 g T1d T2d T3d T4d T1dd T2dd T3dd T4dd Izz1 Izz2 Izz3 TC1 TC2 TC3; %Derivada Primeira da Energia Cinética relação a Theta dk_dT =[ 0; 0; 1/2*m2*(-L1*L2*sin(T3)*T1d^2-L1*L2*sin(T3)*T2d^2)+1/2*m3*((-2*L1*L2*sin(T3)-L1*L3*sin(T3+T4))*T1d^2+(-2*L1*L2*sin(T3)-L1*L3*sin(T3+T4))*T2d^2+(-2*L1*L2*sin(T3)-L1*L3*sin(T3+T4))*T3d^2); 1/2*m3*((-L2*L3*sin(T4)-L1*L3*sin(T3+T4))*T1d^2+(-L2*L3*sin(T4)-L1*L3*sin(T3+T4))*T2d^2+(-L2*L3*sin(T4)-L1*L3*sin(T3+T4))*T3d^2); 0]; %Derivada Primeira da Energia Potencial du_dT = [ 0; g*m2*((L2*cos(T2 + T3))/2 + L1*cos(T2)) + g*m4*(L2*cos(T2 + T3) + L1*cos(T2) + L3*cos(T2 + T3 + T4)) + g*m3*(L2*cos(T2 + T3) + L1*cos(T2) + (L3*cos(T2 + T3 + T4))/2) + (L1*g*m1*cos(T2))/2; g*m4*(L2*cos(T2 + T3) + L3*cos(T2 + T3 + T4)) + g*m3*(L2*cos(T2 + T3) + (L3*cos(T2 + T3 + T4))/2) + (L2*g*m2*cos(T2 + T3))/2; (L3*g*cos(T2 + T3 + T4)*(m3 + 2*m4))/2; 0]; %Derivada segunda da Energia Cinética relação a Theta dk_dTd =[ 1/4*T1d*(2*m1*L1^2+4*Izz1+4*m2*L1^2+m2*L2^2+4*m2*L1*L2*cos(T3)+4*m3*L1^2+4*m3*L2^2+m3*L3^2+8*m3*L1*L2*cos(T3)+4*m3*L2*L3*cos(T4)+4*m3*L1*L3*cos(T3+T4)); 1/4*T2d*(m1*L1^2+4*Izz1+4*m2*L1^2+m2*L2^2+4*m2*L1*L2*cos(T3)+4*m3*L1^2+4*m3*L2^2+m3*L3^2+8*m3*L1*L2*cos(T3)+4*m3*L2*L3*cos(T4)+4*m3*L1*L3*cos(T3+T4)); 1/4*T3d*(m2*L2^2+4*Izz2+4*m3*L1^2+4*m3*L2^2+m3*L3^2+8*m3*L1*L2*cos(T3)+4*m3*L2*L3*cos(T4)+4*m3*L1*L3*cos(T3+T4)); 1/4*m3*L3^2*T4d+Izz3*T4d; 0]; TC1 =(2*m1*L1^2+4*Izz1+4*m2*L1^2+m2*L2^2+4*m2*L1*L2*cos(T3)+4*m3*L1^2+4*m3*L2^2+m3*L3^2+8*m3*L1*L2*cos(T3)+4*m3*L2*L3*cos(T4)+4*m3*L1*L3*cos(T3+T4)); TC2 =(m1*L1^2+4*Izz1+4*m2*L1^2+m2*L2^2+4*m2*L1*L2*cos(T3)+4*m3*L1^2+4*m3*L2^2+m3*L3^2+8*m3*L1*L2*cos(T3)+4*m3*L2*L3*cos(T4)+4*m3*L1*L3*cos(T3+T4)); TC3 =(m2*L2^2+4*Izz2+4*m3*L1^2+4*m3*L2^2+m3*L3^2+8*m3*L1*L2*cos(T3)+4*m3*L2*L3*cos(T4)+4*m3*L1*L3*cos(T3+T4));

54

%Derivada no tempo da Derivada da Energia cinética em relação a Theta dk_dTd_dt = [ (T1dd/4)*TC1 + (T1d/4)*(-4*m2*L1*L2*sin(T3)*T3d - 8*m3*L1*L2*sin(T3)*T3d - 4*m3*L2*L3*sin(T4)*T4d - 4*m3*L1*L2*sin(T3+T4)*(T3d + T4d)); (T2dd/4)*TC2 + (T2d/4)*(-4*m2*L1*L2*sin(T3)*T3d - 8*m3*L1*L2*sin(T3)*T3d - 4*m3*L2*L3*sin(T4)*T4d - 4*m3*L1*L2*sin(T3+T4)*(T3d + T4d)); (T3dd/4)*TC3 + (T3d/4)*(-8*m3*L1*L2*sin(T3)*T3d - 4*m3*L2*L3*sin(T4)*T4d - 4*m3*L1*L3*sin(T3+T4)*(T3d+T4d)); (T4dd/4)*(m3*L3^2 + 4*Izz3); 0]; %%m1 = 0.0626 Kg %%Izz1 = 2.1086 %%L1 = 20 cm = 0.2m %%T1d=T2d=T3d=T4d = 5.511 rad/s %%m2 = 0.0469 %%Izz2 = 1.5817 %%L2 = 15cm = 0.15m %%m3 = 0.0156 %%Izz3 = 0.5272 %%L3 = 5cm = 0.05m %%m4 = 0.1Kg -> 100 g h = 0.02; %altura e = 0.002; % espessura d = 1180; % densidade kg/m^3 Aço = 7829, Policarbonato = 1220 , Acrílico = 1180 %%% peça 1 v1 = h*e*L1; m1 = v1*d; Izz1 = m1/3*(L1^2 + (h/2)^2); %%% peça 2 v2 = h*e*L2; m2 = v2*d; Izz2 = m2/3*(L2^2 + (h/2)^2); %%%peça 3 v3 = h*e*L3; m3 = v3*d; Izz3 = m3/3*(L3^2 + (h/2)^2); %m1 = 0.0626; %Izz1 = 2.1086; L1 = 0.2; %m2 = 0.0469; %Izz2 = 1.5817; L2 = 0.15; %m3 = 0.0156; %Izz3 = 0.5272; L3 = 0.05;

55

T1dd = 0; T2dd = 0; T3dd = 0; T4dd = 0; T1d = 5.511; T2d = 5.511; T3d = 5.511; T4d = 5.511; % T1d = 0; % T2d = 0; % T3d = 0; % T4d = 0; T1=0; T2=0; T3=0; T4=0; g=9.81; m4 = 0.1 J = dk_dTd_dt - dk_dT + du_dT; simplify(J) J= subs (J)

Torque por extenso J = (T1dd*(4*Izz1 + 2*L1^2*m1 + 4*L1^2*m2 + 4*L1^2*m3 + L2^2*m2 + 4*L2^2*m3 + L3^2*m3 + 4*L1*L2*m2*cos(T3) + 8*L1*L2*m3*cos(T3) + 4*L2*L3*m3*cos(T4) + 4*L1*L3*m3*cos(T3 + T4)))/4 - (T1d*(4*L1*L2*T3d*m2*sin(T3) + 8*L1*L2*T3d*m3*sin(T3) + 4*L2*L3*T4d*m3*sin(T4) + 4*L1*L2*m3*sin(T3 + T4)*(T3d + T4d)))/4 (T2dd*(4*Izz1 + L1^2*m1 + 4*L1^2*m2 + 4*L1^2*m3 + L2^2*m2 + 4*L2^2*m3 + L3^2*m3 + 4*L1*L2*m2*cos(T3) + 8*L1*L2*m3*cos(T3) + 4*L2*L3*m3*cos(T4) + 4*L1*L3*m3*cos(T3 + T4)))/4 - (T2d*(4*L1*L2*T3d*m2*sin(T3) + 8*L1*L2*T3d*m3*sin(T3) + 4*L2*L3*T4d*m3*sin(T4) + 4*L1*L2*m3*sin(T3 + T4)*(T3d + T4d)))/4 + g*m2*((L2*cos(T2 + T3))/2 + L1*cos(T2)) + g*m4*(L2*cos(T2 + T3) + L1*cos(T2) + L3*cos(T2 + T3 + T4)) + g*m3*(L2*cos(T2 + T3) + L1*cos(T2) + (L3*cos(T2 + T3 + T4))/2) + (L1*g*m1*cos(T2))/2 (m2*(L1*L2*sin(T3)*T1d^2 + L1*L2*sin(T3)*T2d^2))/2 + (m3*((L1*L3*sin(T3 + T4) + 2*L1*L2*sin(T3))*T1d^2 + (L1*L3*sin(T3 + T4) + 2*L1*L2*sin(T3))*T2d^2 + (L1*L3*sin(T3 + T4) + 2*L1*L2*sin(T3))*T3d^2))/2 + (T3dd*(4*Izz2 + 4*L1^2*m3 + L2^2*m2 + 4*L2^2*m3 + L3^2*m3 + 8*L1*L2*m3*cos(T3) + 4*L2*L3*m3*cos(T4) + 4*L1*L3*m3*cos(T3 + T4)))/4 - (T3d*(8*L1*L2*T3d*m3*sin(T3) + 4*L2*L3*T4d*m3*sin(T4) + 4*L1*L3*m3*sin(T3 + T4)*(T3d + T4d)))/4 + g*m4*(L2*cos(T2 + T3) + L3*cos(T2 + T3 + T4)) + g*m3*(L2*cos(T2 + T3) + (L3*cos(T2 + T3 + T4))/2) + (L2*g*m2*cos(T2 + T3))/2

56

(T4dd*(m3*L3^2 + 4*Izz3))/4 + (L3*g*cos(T2 + T3 + T4)*(m3 + 2*m4))/2 + (L3*m3*(L1*sin(T3 + T4) + L2*sin(T4))*(T1d^2 + T2d^2 + T3d^2))/2 0

6.6 Tabela de Custo

Tabela 3 - Tabela de Custo do Manipulador

Lista de Itens Quantidade Reais Dólar Valor

PIC expert 1 R$ 250,00 0 R$ 250,00

Motor M1 1 R$ 0 15 R$ 33,799

Demais motores 3 R$ 0 10 R$ 67,599

Placa de acrílico (2x1m) 1 R$ 150,00 0 R$ 150,00

Conector 4 R$ 2,00 0 R$ 8,00

Fonte 5v 2A 1 R$ 40,00 0 R$ 40,00

Placa de cobre (4x10cm) 1 R$ 10,00 0 R$ 10,00

Total

R$ 559,398

1 Dólar = R$ 2,253 Referência: http://www.farnellnewark.com.br/

57

___________________________ ________________________

Orientador Aluno