Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
Controlo e Robótica
Trabalho Prático 1
CINEMÁTICA DIRETA E INVERSA
DO BRAÇO ROBÓTICO R700
Docente: Larissa Robertovna Labakhua
2
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
Índice
1) Introdução -------------------------------------------------------------------------------------------------------------- 3
2) Contexto Histórico ---------------------------------------------------------------------------------------------------- 4
3) Cinemática direta e cinemática inversa-------------------------------------------------------------------------- 8
4) Notação de Denavit-Hatenberg------------------------------------------------------------------------------------ 9
5)Cadeia Cinemática ----------------------------------------------------------------------------------------------------10
6) Trabalho Prático: -----------------------------------------------------------------------------------------------------12
8) Determinação dos parâmetros de Denavit-Hartenberg-----------------------------------------------------14
7) Determinação das matrizes parciais: ----------------------------------------------------------------------------15
9) Cinemática direta-----------------------------------------------------------------------------------------------------16
10) Cinemática Inversa: ------------------------------------------------------------------------------------------------17
11) Conclusão:------------------------------------------------------------------------------------------------------------19
Figura 1 - sistema articulado no espaço tridimensional.................................................................9
Figura 2 - R700 (Vector Robotic Arm), ..............................................................................................13
Figura 3 - Eixo referencial...................................................................................................................14
Figura 4 – Diagrama de blocos............................................................................................................17
3
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
1) Introdução
Neste trabalho de grupo pretende-se analisar os movimentos de um
braço robótico utilizando a cinemática direta e inversa.
O trabalho de grupo foi elaborado em várias etapas organizadas
utilizando os seguintes métodos:
• Utilizar a convenção de Denavit-Hartenberg para a
atribuiçãodesistemasdeeixos coordenados;
• Determinar os parâmetros de Denavit-Hartenberg;
• Determinar as matrizes individuais de transformação Ai.
• Determinar a matrizes de transformação geral para obter as
coordenadas cartesianas em termos das coordenadas de
juntas.
• Determinar a cinemática inversa.
4
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
2) Contexto Histórico
Como dizia Fernando Pessoa (1888-1935), poeta português
contemporâneo da revolução industrial, “Deus quer, o Homem sonha, a obra
nasce”.
Desde a idade média começaram a surgir os primeiros registos da
humanidade sonhar com robots em forma humana, como são exemplo os
textos descritivos do árabe Al-Jazari (1136-1206), e mais tarde em 1945
Leonardo da Vinci efetuou os primeiros esboços de um robot humanoide.
No entanto foi necessário esperar pelos desenvolvimentos
tecnológicos trazidos pela revolução industrial no século XX, de máquinas-
ferramentas capazes de produzir componentes com elevada precisão, a
disponibilidade de várias fontes de energia para atuação - hidráulica,
pneumática e elétrica, os conceitos sobre transmissão mecânica, motores,
suspensões, a disponibilidade de sensores. Tudo isto permitiu construir
máquinas que conseguem emular o "braço humano".
Karel Capek criou a palavra robot em 1920 para descrever máquinas
que se assemelham a humanos num jogo chamado Rossums Universal
Robots – o jogo era sobre uma sociedade que se tornou escravizada pelos
robots.
Issac Asimov, lendário escritor de ficção científica escreve em 1941
“Mentiroso” conto no qual descreve as 3 leis da robótica:
1. Um robot não pode ferir um ser humano, ou por inação permitir
que um ser humano sofra algum mal;
2. Um robot deve obedecer às ordens que são dadas por seres
humanos, exceto quando e se essas ordens entrarem em conflito
com a 1ª lei;
5
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
3. Um robot deve proteger a sua própria existência desde que tal
proteção não entre em conflito com as 1ª e 2ª leis.
O "braço humano" é constituído por uma junta de três graus de
liberdade - o ombro -, seguida de uma junta de um grau de liberdade - o
cotovelo - e, por fim, outra junta com três graus de liberdade - o punho. Tem,
portanto, sete graus de liberdade e é redundante, ou seja, não tem
configurações singulares.
A existência de configurações singulares significa a perda de
mobilidade nesses pontos, pelo que uma estrutura livre de singularidades
seria, em primeira análise, preferível.
No entanto, a grande maioria dos robôs manipuladores tem geralmente
seis eixos: os necessários para atingir qualquer posição/orientação no espaço
de trabalho do robô. Se as configurações singulares forem conhecidas, é
possível evitar passar por elas, mantendo, assim, o robô manipulador
controlado.
Como num "braço humano", os robôs manipuladores usam geralmente
as primeiras juntas para posicionar a estrutura formada pelas juntas
seguintes, denominada 'punho', que é utilizada para orientar o elemento-
terminal. As juntas utilizadas para posicionamento formam a estrutura
denominada 'braço': no homem, correspondem às juntas do ombro e do
cotovelo.
Um robô manipulador também usa as juntas do braço para a função de
posicionamento e as juntas do punho para a função de orientação. Em
robótica de manipulação, existem cinco tipos principais de braços:
cartesiano, cilíndrico, polar, revolução e SCARA (Selective Compliance
Assembly Robot Arm).
6
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
As juntas que seguem o braço formam, como já se disse, a estrutura
denominada 'punho', por analogia com o braço humano.
Os primeiros trabalhos em robótica de manipulação podem ser
encontrados alguns anos após o fim da Segunda Guerra Mundial. Máquinas
do tipo Master-Slave foram introduzidas e desenvolvidas para manipular
materiais perigosos, como os materiais radioativos (1940-50). Podemos citar
o "gantry-robot" - desenvolvido pela General Mills Corporation (EUA) em
1950, o "Planetbot" (1957), que foi o primeiro robô manipulador comercial
com coordenadas polares e o robô desenvolvido por Norman Diedrich no
Instituto Case, da Western Reserve University (em Cleveland, também nos
EUA), que foi o primeiro manipulador elétrico com juntas de revolução.
O primeiro robô industrial, o Unimate (Fig. 1), foi desenvolvido por
George Devol e Joseph Engelberger na empresa norte-americana Unimation
Inc. (1959-62). Esse robô era programado através de um computador e podia
ser usado em várias aplicações desde que devidamente reprogramado e
equipado com as ferramentas próprias.
Embora muito poderosa para época, tornou-se óbvio que a
flexibilidade e a adaptabilidade desta nova ferramenta poderia ser
largamente melhorada usando retroação sensorial. A investigação e o
desenvolvimento levados a cabo durante os anos 50 e 60 conduziu ao
desenvolvimento dos primeiros robôs controlados por computador.
Os manipuladores mecânicos evoluíram muito desde essa altura e
várias técnicas de controlo foram propostas para os controlar. No entanto,
muito trabalho tem ainda de ser feito, nomeadamente em termos de
programabilidade, controlo de força, retroação visual, integração sensorial e
até sobre as novas estruturas mecânicas e novos materiais conduzindo a
robôs mais leves e flexíveis.
7
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
Atualmente, um robô manipulador industrial é constituído por vários
elos rígidos ligados em série por juntas, tendo uma das extremidades fixa
(base) e outra livre para se mover (elemento terminal). As juntas são
geralmente atuadas por motores elétricos, embora também se usem atuadores
pneumáticos e hidráulicos. Um sistema de controlo computadorizado é
usado para controlar e supervisionar o movimento do robô, recorrendo a
informação sensorial para obter o estado do robô e do ambiente - posição das
juntas recorrendo a sensores de posição, força de contacto usando sensores
de força/momento, distância a objetos, etc. Isto é, o "software" de controlo
de movimento que corre nesse sistema utiliza a informação sensorial para
calcular os sinais de controlo necessários a fim de obter o movimento
desejado e enviar esses sinais aos atuadores.
Apesar de alguma sofisticação, os robôs atuais são utilizados em
vários ambientes de produção automatizados, executando tarefas repetitivas
em linhas de montagem. A robótica trata de máquinas multifuncionais e
reprogramáveis, que podem executar tarefas normalmente associadas a seres
humanos, possuindo também a capacidade de identificar alterações nas
condições e restrições colocadas pela tarefa e/ou pelo meio envolvente, a
capacidade de decidir quais as ações que devem ser tomadas e de planear a
sua execução.
O desenvolvimento deste tipo de máquinas introduziu um elevado
grau de flexibilidade nos ambientes de produção acuais, dada a sua
flexibilidade de utilização em diferentes tarefas através de simples
adaptações: mudança de ferramenta e reprogramação.
Os robôs manipuladores, dada a sua facilidade de programação e a sua
adaptabilidade a diferentes situações e condições de funcionamento, podem
executar uma grande diversidade de tarefas, muitas delas de uma forma
quase humana. Também isso contribui para explicar a razão por que estas
8
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
máquinas são cada vez mais usadas nas atuais instalações de produção. O
que estes números evidenciam com clareza são as "motivações" e os "custos"
da introdução de robôs num qualquer processo produtivo. Nestes sistemas,
os robôs desempenham um papel fundamental dado que são sistemas
programáveis, possuindo ambientes de programação relativamente
poderosos.
É possível definir posições, trajetórias e outras ações que podem ser
repetidas continuamente com elevada precisão e repetibilidade. Aliás, essa é
a essência dos robôs catuais, isto é, são estruturas com um controlo preciso
de movimento e algumas capacidades de programação, que permitem definir
esses movimentos e repeti-los. Estes dispositivos possuem ainda capacidades
de "input" e "output" (I/O) e de comunicações, o que permite coordenar
ações com outros equipamentos e serem integrados com os sistemas
informáticos e de gestão existentes na instalação produtiva.
3) Cinemática direta e cinemática inversa
Com a aplicação da cinemática direta, é possível determinar a posição
da garra (end-off) do manipulador, através do conhecimento das coordenadas
das juntas do braço robótico. Neste método recorremos à notação de Denavit-
Hatenberg.
Por outro lado, com a aplicação da cinemática inversa, é possível
determinar as coordenadas das juntas, através do conhecimento da posição
da garra.
9
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
4) Notação de Denavit-Hartenberg
A evolução no tempo das coordenadas das juntas de um robô
representa o modelo cinemático de um sistema articulado no espaço
tridimensional. A notação de Denavit-Hartenberg (DH) é uma ferramenta
utilizada para sistematizar a descrição cinemática de sistemas mecânicos
articulados com n graus de liberdade. A representação DH de um elo rígido
depende de quatro parâmetros a ele associados, os quais descrevem
completamente o comportamento cinemático de uma junta prismática ou
revoluta.
Na figura seguinte são indicados os parâmetros para uma melhor
visualização, conforme abaixo definidos:
• é o ângulo de junta obtido entre os eixos e no eixo
(usando-se a regra da mão direita).
• é a distância entre a origem do (i-1)-ésimo sistema de coordenadas
até a interseção do eixo com o eixo ao longo do eixo .
Figura 1 - Sistema articulado no espaço tridimensional.
10
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
• é a distância (off-set) entre a interseção do eixo com o eixo
até a origem do i-ésimo sistema de referência ao longo do eixo (ou
a menor distância entre os eixos e ).
• é o ângulo (off-set) entre os eixos e medidos no eixo
(usando-se a regra da mão direita).
Para uma junta rotacional, , e são os parâmetros da junta, cujo
valor varia na rotação do elo i em relação ao elo i-1. Para uma junta
prismática, , ai e αi são os parâmetros da junta, enquanto di é a variável de
junta (deslocamento linear). Com os sistemas de coordenada DH
estabelecidos, uma matriz de transformação homogênea pode facilmente ser
desenvolvida relacionando-se o i-ésimo ao (i-1)-ésimo frame de
coordenadas. Como demonstra a matriz abaixo.
5)Cadeia Cinemática
A estrutura de um robô manipulador consiste numa série de corpos
rígidos, idealmente feitos de um material resistente como aço, e são
denominados de elos. Esses elos podem ter diversos tamanhos e formas
dependendo da aplicação, e são unidos por juntas que lhes permitem um
movimento relativo entre si. Uma Cadeia Cinemática é composta por elos
interligados por juntas.
O movimento da junta de um robô pode ser linear (prismático),
permitindo um deslocamento em uma direção, ou rotacional (revolução),
permitindo um deslocamento angular. A combinação dos diversos tipos de
11
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
elos com os diferentes tipos de juntas, seguem a conveniência da
configuração de projeto estabelecida. Logo, as juntas determinam os
movimentos possíveis do manipulador, e juntamente com as características
físicas dos elos, como suas formas e tamanhos, determinam a anatomia do
manipulador.
E isso acaba por determinar os aspetos de mobilidade que influenciam
no Espaço de Trabalho que o manipulador irá ter.
Para representar os movimentos de um elo com relação ao seu
antecessor, são utilizadas grandezas físicas que identificam os ângulos das
juntas(θ) e o comprimento dos elos(d). O estado dessas grandezas é
suficiente para determinar a posição do efetuador (Modelo Cinemático
Direto), pois se for conhecida a posição de cada uma das juntas a partir da
primeira, e os comprimentos dos elos, é possível conhecer a posição do
efetuador.
Como o estado das grandezas físicas (θ) podem variar dinamicamente,
a depender do movimento executado, as mesmas são identificadas como
variáveis e são conhecidas como Coordenadas Generalizadas.
Cada um dos movimentos independentes que pode realizar uma
articulação (junta - elo) em relação a anterior, é denominado de Grau de
Liberdade. Um manipulador típico geralmente possui 6 graus de liberdade,
três para o posicionamento do efetuador dentro do espaço de trabalho, e três
para obter uma orientação do efetuador adequada para segurar o objeto.
Em geral, os manipuladores estão montados sobre uma base fixa, à
qual está fixado o primeiro elo através da primeira junta.
Esta base pode estar montada sobre uma superfície também fixa, ou
num veículo que lhe permita um deslocamento pelo local de trabalho.
12
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
Espaço de Trabalho: O Espaço de Trabalho do manipulador é o termo
que se refere ao espaço dentro do qual este pode movimentar o efetuador. É
definido como o volume total conformado pelo percurso do extremo do
último elo, o punho, quando o manipulador efetua todas as trajetórias
possíveis. Neste âmbito, o volume de trabalho depende da configuração
geométrica do manipulador e das restrições físicas das juntas (limites
mecânicos).
Volume de Trabalho: Define a região do espaço onde existe uma
probabilidade não nula de uma parte constituinte do manipulador ser
encontrada.
6) Trabalho Prático:
No nosso trabalho de grupo, vamos utilizar como base de estudo o
braço robótico R700 (Vector Robotic Arm), que é feito de alumínio pesado
de alta qualidade, construído com 6 servomotores permite ter 6 graus de
liberdade, apresentado características ideais para simular e aplicar
conhecimentos de eletrônica, mecânica e programação.
O braço é controlado por um microcontrolador ATMEGA64 que é
programável utilizando ferramentas de código em C.
O braço robótico vem com muitos exemplos de programas já escritos
que facilmente podemos enviar pelo interface USB para o robô, usando o
Software RobotLoader, ou podemos optar por criar os próprios programas
personalizados usando o software livre WinAVR de código aberto.
13
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
É possível controlar o robô usando um teclado ou software RACS que
vem incluído. Usando o software torna-se possível gravar os movimentos do
braço robótico e reproduzi-los com grande precisão.
As entradas e saídas, em conjunto com um flexível sistema de
barramento I2C, torna possível a adição de módulos extras facilmente
configuráveis, permitindo o robô interagir com o ambiente que o rodeia.
Figura 2 - R700 (Vector Robotic Arm),
Na elaboração do nosso trabalho, optamos por limitar os movimentos
do braço robótico a 3 graus de liberdade, e assim tornar possível demonstrar
os métodos estudados com cálculos menos complexos.
14
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
A metodologia adotada para modelagem cinemática do nosso braço
robótico, baseada na notação de Denavit-Hartenberg, permite descrever
todos os movimentos do manipulador, gerado pelo movimento das juntas, a
partir de um eixo referencial, posicionado na base do robô (Cinemática
direta).
Figura 3 - Eixo referencial
8) Determinação dos parâmetros de Denavit-Hartenberg
Nesta etapa, foram levantados os parâmetros das juntas de acordo com
a notação de Denavit-Hartenberg. Os valores obtidos estão apresentados na
tabela seguinte:
Elos Ɵ l d α
1 + 180 0 8 +90
2 + 90 8 0 +180
3 27 0 0
15
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
7) Determinação das matrizes parciais:
A metodologia da notação de Denavit-Hartenberg permite estabelecer
de maneira sistemática a relação (matriz de transformação homogénea) entre
o i-ésimo e (i-1)-ésimo sistema de coordenadas. Assim foram obtidas as
relações entre os sistemas de coordenadas nos elos, considerado, com recurso
ao Matlab, nomeadamente:
Determinação da matriz total: A matriz homogénea total ( T ) que
relaciona o sistema de referência da base ao da extremidade do braço
robótico , foi obtida pelo produto de todas as matrizes parciais:
16
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
9) Cinemática direta
Para validar a equação anterior, foram estabelecidos valores para as
variáveis das juntas e, por meio da matriz T obtida, foi determinada a posição
(valor teórico) da extremidade da garra. Com o auxílio do protótipo,
verificamos se os resultados correspondiam à realidade (valor medido).
Após revisões no modelo obtido, para todos os casos os resultados
teóricos foram equivalentes aos obtidos no protótipo. Na tabela seguinte
apresentamos os resultados obtidos quando o protótipo foi posicionado nos
seguintes pontos:
Coordenadas:
1 – X=20 ; Y=18.5
2 – X=23.5 ; Y= 21
3 – X=28 ; Y=7
Ângulos:
1 - φ1= 41.6°, φ2= 37.8° e φ3= -80.2°.
2 - φ1= 41.6°, φ2= 68.1° e φ3= -40.8°.
3 - φ1= 13.6°, φ2= 48.4° e φ3= -68.8°.
Ponto 1 Valor Medido Valor Teórico Erro %
X 21.49 20 7.45
Y 19.08 18.5 3.13
Ponto 2 Valor Medido Valor Teórico Erro %
X 24.65 23.5 4.89
Y 21.88 21 4.19
Ponto 3 Valor Medido Valor Teórico Erro %
X 29.15 28 4.1
Y 7.05 7 0.7
17
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
Estes valores foram obtidos utilizando o seguinte código no Matlab :
% CINEMÁTICA DIRETA
syms T T1 T2 T3
Rot_Z=[cos(T1+pi) -sin(T1+pi) 0 0; sin(T1+pi) cos(T1+pi) 0 0; 0 0 1 0; 0 0 0
1];
Tra_l_d=[1 0 0 0; 0 1 0 0; 0 0 1 8; 0 0 0 1];
Rot_X=[1 0 0 0; 0 cos(pi/2) -sin(pi/2) 0; 0 sin(pi/2) cos(pi/2) 0; 0 0 0 1];
A1=Rot_Z*Tra_l_d*Rot_X
Rot_Z=[cos(T2+pi/2) -sin(T2+pi/2) 0 0; sin(T2+pi/2) cos(T2+pi/2) 0 0; 0 0 1 0;
0 0 0 1];
Tra_l_d=[1 0 0 8; 0 1 0 0; 0 0 1 0; 0 0 0 1];
Rot_X=[1 0 0 0; 0 cos(pi) -sin(pi) 0; 0 sin(pi) cos(pi) 0; 0 0 0 1];
A2=Rot_Z*Tra_l_d*Rot_X
Rot_Z=[cos(T3) -sin(T3) 0 0; sin(T3) cos(T3) 0 0; 0 0 1 0; 0 0 0 1];
Tra_l_d=[1 0 0 27; 0 1 0 0; 0 0 1 0; 0 0 0 1];
Rot_X=[1 0 0 0; 0 cos(0) -sin(0) 0; 0 sin(0) cos(0) 0; 0 0 0 1];
A3=Rot_Z*Tra_l_d*Rot_X
T_0_4=A1*A2*A3
T_0_4_2=subs(T_0_4,[T1,T2,T3],[41.6*pi/180,37.8*pi/180,-80.2*pi/180]);
T_0_4_2=double(T_0_4_2)
T_0_4_3=subs(T_0_4,[T1,T2,T3],[41.6*pi/180,68.1*pi/180,-40.8*pi/180]);
T_0_4_3=double(T_0_4_3)
T_0_4_4=subs(T_0_4,[T1,T2,T3],[13.6*pi/180,48.4*pi/180,-68.8*pi/180]);
T_0_4_4=double(T_0_4_4)
10) Cinemática Inversa:
Enquanto a cinemática direta resulta do desenvolvimento imediato das
expressões do manipulador, a cinemática inversa procura determinar o
conjunto de valores das juntas que se adequam a uma dada configuração do
espaço operacional ou cartesiano.
Figura 4 – Diagrama de blocos
18
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
A cinemática inversa nem sempre é um problema com solução
analítica, ou por vezes não tem mesmo solução sendo mais complexo ainda
é o facto de não haver uma metodologia única de aplicação direta.
Não será esse um problema grave porque as soluções de interesse
prático estão já todas bem estudadas e só em casos especiais será
necessário conceber novas soluções.
Nesta parte, utilizou-se o Matlab para resolver as equações de modo
a encontrar os valores das coordenadas finais do ponto a calcular, no
entanto, para o ponto escolhido verifica-se múltiplas soluções, então foi
necessário restringir as soluções limitando os ângulos que o manipulador
pode efetuar, reduzindo assim o espaço de trabalho ao primeiro quadrante
do plano XY, conforme se pode verificar no seguinte código:
% CINEMATICA INVERSA
Px = 21.5;
Py = 19;
Pz = 1.5;
eqns = [T_0_4(1,4)== Px, T_0_4(2,4)== Py, T_0_4(3,4)== Pz];
vars = [T1,T2,T3];
range = [0 pi/2; 0 pi; -pi 0]; % Restrição da amplitude de movimento
dos motores
sol = vpasolve(eqns,vars,range);
T(1)=sol.T1;
T(2)=sol.T2;
T(3)=sol.T3;
% Conversão para graus
T=double(T)
T_deg=T*180/pi
19
Nuno Martins nº 11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018
11) Conclusão:
No decorrer deste trabalho verificou-se a aplicação da matéria
lecionada nesta unidade curricular a um braço robótico (manipulador). Neste
âmbito confirmou-se os resultados das cinemáticas direta e inversa,
utilizando para o efeito o Matlab como ferramenta de cálculo.
A construção do protótipo e a validação do modelo de cinemática
direta, determinado a partir da notação de Denavit-Hartenberg, explicitou os
problemas intrínsecos da aplicação prática da teoria, ajudando a consolidar
o conhecimento dos parâmetros das juntas e conceitos teóricos de robótica,
contribuindo para o estudo de modelagem cinemática direta de
manipuladores.
A cinemática inversa foi também verificada restringindo o valor das
soluções à realidade pretendida.

Vector robotic arm r700

  • 1.
    Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 Controlo e Robótica Trabalho Prático 1 CINEMÁTICA DIRETA E INVERSA DO BRAÇO ROBÓTICO R700 Docente: Larissa Robertovna Labakhua
  • 2.
    2 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 Índice 1) Introdução -------------------------------------------------------------------------------------------------------------- 3 2) Contexto Histórico ---------------------------------------------------------------------------------------------------- 4 3) Cinemática direta e cinemática inversa-------------------------------------------------------------------------- 8 4) Notação de Denavit-Hatenberg------------------------------------------------------------------------------------ 9 5)Cadeia Cinemática ----------------------------------------------------------------------------------------------------10 6) Trabalho Prático: -----------------------------------------------------------------------------------------------------12 8) Determinação dos parâmetros de Denavit-Hartenberg-----------------------------------------------------14 7) Determinação das matrizes parciais: ----------------------------------------------------------------------------15 9) Cinemática direta-----------------------------------------------------------------------------------------------------16 10) Cinemática Inversa: ------------------------------------------------------------------------------------------------17 11) Conclusão:------------------------------------------------------------------------------------------------------------19 Figura 1 - sistema articulado no espaço tridimensional.................................................................9 Figura 2 - R700 (Vector Robotic Arm), ..............................................................................................13 Figura 3 - Eixo referencial...................................................................................................................14 Figura 4 – Diagrama de blocos............................................................................................................17
  • 3.
    3 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 1) Introdução Neste trabalho de grupo pretende-se analisar os movimentos de um braço robótico utilizando a cinemática direta e inversa. O trabalho de grupo foi elaborado em várias etapas organizadas utilizando os seguintes métodos: • Utilizar a convenção de Denavit-Hartenberg para a atribuiçãodesistemasdeeixos coordenados; • Determinar os parâmetros de Denavit-Hartenberg; • Determinar as matrizes individuais de transformação Ai. • Determinar a matrizes de transformação geral para obter as coordenadas cartesianas em termos das coordenadas de juntas. • Determinar a cinemática inversa.
  • 4.
    4 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 2) Contexto Histórico Como dizia Fernando Pessoa (1888-1935), poeta português contemporâneo da revolução industrial, “Deus quer, o Homem sonha, a obra nasce”. Desde a idade média começaram a surgir os primeiros registos da humanidade sonhar com robots em forma humana, como são exemplo os textos descritivos do árabe Al-Jazari (1136-1206), e mais tarde em 1945 Leonardo da Vinci efetuou os primeiros esboços de um robot humanoide. No entanto foi necessário esperar pelos desenvolvimentos tecnológicos trazidos pela revolução industrial no século XX, de máquinas- ferramentas capazes de produzir componentes com elevada precisão, a disponibilidade de várias fontes de energia para atuação - hidráulica, pneumática e elétrica, os conceitos sobre transmissão mecânica, motores, suspensões, a disponibilidade de sensores. Tudo isto permitiu construir máquinas que conseguem emular o "braço humano". Karel Capek criou a palavra robot em 1920 para descrever máquinas que se assemelham a humanos num jogo chamado Rossums Universal Robots – o jogo era sobre uma sociedade que se tornou escravizada pelos robots. Issac Asimov, lendário escritor de ficção científica escreve em 1941 “Mentiroso” conto no qual descreve as 3 leis da robótica: 1. Um robot não pode ferir um ser humano, ou por inação permitir que um ser humano sofra algum mal; 2. Um robot deve obedecer às ordens que são dadas por seres humanos, exceto quando e se essas ordens entrarem em conflito com a 1ª lei;
  • 5.
    5 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 3. Um robot deve proteger a sua própria existência desde que tal proteção não entre em conflito com as 1ª e 2ª leis. O "braço humano" é constituído por uma junta de três graus de liberdade - o ombro -, seguida de uma junta de um grau de liberdade - o cotovelo - e, por fim, outra junta com três graus de liberdade - o punho. Tem, portanto, sete graus de liberdade e é redundante, ou seja, não tem configurações singulares. A existência de configurações singulares significa a perda de mobilidade nesses pontos, pelo que uma estrutura livre de singularidades seria, em primeira análise, preferível. No entanto, a grande maioria dos robôs manipuladores tem geralmente seis eixos: os necessários para atingir qualquer posição/orientação no espaço de trabalho do robô. Se as configurações singulares forem conhecidas, é possível evitar passar por elas, mantendo, assim, o robô manipulador controlado. Como num "braço humano", os robôs manipuladores usam geralmente as primeiras juntas para posicionar a estrutura formada pelas juntas seguintes, denominada 'punho', que é utilizada para orientar o elemento- terminal. As juntas utilizadas para posicionamento formam a estrutura denominada 'braço': no homem, correspondem às juntas do ombro e do cotovelo. Um robô manipulador também usa as juntas do braço para a função de posicionamento e as juntas do punho para a função de orientação. Em robótica de manipulação, existem cinco tipos principais de braços: cartesiano, cilíndrico, polar, revolução e SCARA (Selective Compliance Assembly Robot Arm).
  • 6.
    6 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 As juntas que seguem o braço formam, como já se disse, a estrutura denominada 'punho', por analogia com o braço humano. Os primeiros trabalhos em robótica de manipulação podem ser encontrados alguns anos após o fim da Segunda Guerra Mundial. Máquinas do tipo Master-Slave foram introduzidas e desenvolvidas para manipular materiais perigosos, como os materiais radioativos (1940-50). Podemos citar o "gantry-robot" - desenvolvido pela General Mills Corporation (EUA) em 1950, o "Planetbot" (1957), que foi o primeiro robô manipulador comercial com coordenadas polares e o robô desenvolvido por Norman Diedrich no Instituto Case, da Western Reserve University (em Cleveland, também nos EUA), que foi o primeiro manipulador elétrico com juntas de revolução. O primeiro robô industrial, o Unimate (Fig. 1), foi desenvolvido por George Devol e Joseph Engelberger na empresa norte-americana Unimation Inc. (1959-62). Esse robô era programado através de um computador e podia ser usado em várias aplicações desde que devidamente reprogramado e equipado com as ferramentas próprias. Embora muito poderosa para época, tornou-se óbvio que a flexibilidade e a adaptabilidade desta nova ferramenta poderia ser largamente melhorada usando retroação sensorial. A investigação e o desenvolvimento levados a cabo durante os anos 50 e 60 conduziu ao desenvolvimento dos primeiros robôs controlados por computador. Os manipuladores mecânicos evoluíram muito desde essa altura e várias técnicas de controlo foram propostas para os controlar. No entanto, muito trabalho tem ainda de ser feito, nomeadamente em termos de programabilidade, controlo de força, retroação visual, integração sensorial e até sobre as novas estruturas mecânicas e novos materiais conduzindo a robôs mais leves e flexíveis.
  • 7.
    7 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 Atualmente, um robô manipulador industrial é constituído por vários elos rígidos ligados em série por juntas, tendo uma das extremidades fixa (base) e outra livre para se mover (elemento terminal). As juntas são geralmente atuadas por motores elétricos, embora também se usem atuadores pneumáticos e hidráulicos. Um sistema de controlo computadorizado é usado para controlar e supervisionar o movimento do robô, recorrendo a informação sensorial para obter o estado do robô e do ambiente - posição das juntas recorrendo a sensores de posição, força de contacto usando sensores de força/momento, distância a objetos, etc. Isto é, o "software" de controlo de movimento que corre nesse sistema utiliza a informação sensorial para calcular os sinais de controlo necessários a fim de obter o movimento desejado e enviar esses sinais aos atuadores. Apesar de alguma sofisticação, os robôs atuais são utilizados em vários ambientes de produção automatizados, executando tarefas repetitivas em linhas de montagem. A robótica trata de máquinas multifuncionais e reprogramáveis, que podem executar tarefas normalmente associadas a seres humanos, possuindo também a capacidade de identificar alterações nas condições e restrições colocadas pela tarefa e/ou pelo meio envolvente, a capacidade de decidir quais as ações que devem ser tomadas e de planear a sua execução. O desenvolvimento deste tipo de máquinas introduziu um elevado grau de flexibilidade nos ambientes de produção acuais, dada a sua flexibilidade de utilização em diferentes tarefas através de simples adaptações: mudança de ferramenta e reprogramação. Os robôs manipuladores, dada a sua facilidade de programação e a sua adaptabilidade a diferentes situações e condições de funcionamento, podem executar uma grande diversidade de tarefas, muitas delas de uma forma quase humana. Também isso contribui para explicar a razão por que estas
  • 8.
    8 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 máquinas são cada vez mais usadas nas atuais instalações de produção. O que estes números evidenciam com clareza são as "motivações" e os "custos" da introdução de robôs num qualquer processo produtivo. Nestes sistemas, os robôs desempenham um papel fundamental dado que são sistemas programáveis, possuindo ambientes de programação relativamente poderosos. É possível definir posições, trajetórias e outras ações que podem ser repetidas continuamente com elevada precisão e repetibilidade. Aliás, essa é a essência dos robôs catuais, isto é, são estruturas com um controlo preciso de movimento e algumas capacidades de programação, que permitem definir esses movimentos e repeti-los. Estes dispositivos possuem ainda capacidades de "input" e "output" (I/O) e de comunicações, o que permite coordenar ações com outros equipamentos e serem integrados com os sistemas informáticos e de gestão existentes na instalação produtiva. 3) Cinemática direta e cinemática inversa Com a aplicação da cinemática direta, é possível determinar a posição da garra (end-off) do manipulador, através do conhecimento das coordenadas das juntas do braço robótico. Neste método recorremos à notação de Denavit- Hatenberg. Por outro lado, com a aplicação da cinemática inversa, é possível determinar as coordenadas das juntas, através do conhecimento da posição da garra.
  • 9.
    9 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 4) Notação de Denavit-Hartenberg A evolução no tempo das coordenadas das juntas de um robô representa o modelo cinemático de um sistema articulado no espaço tridimensional. A notação de Denavit-Hartenberg (DH) é uma ferramenta utilizada para sistematizar a descrição cinemática de sistemas mecânicos articulados com n graus de liberdade. A representação DH de um elo rígido depende de quatro parâmetros a ele associados, os quais descrevem completamente o comportamento cinemático de uma junta prismática ou revoluta. Na figura seguinte são indicados os parâmetros para uma melhor visualização, conforme abaixo definidos: • é o ângulo de junta obtido entre os eixos e no eixo (usando-se a regra da mão direita). • é a distância entre a origem do (i-1)-ésimo sistema de coordenadas até a interseção do eixo com o eixo ao longo do eixo . Figura 1 - Sistema articulado no espaço tridimensional.
  • 10.
    10 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 • é a distância (off-set) entre a interseção do eixo com o eixo até a origem do i-ésimo sistema de referência ao longo do eixo (ou a menor distância entre os eixos e ). • é o ângulo (off-set) entre os eixos e medidos no eixo (usando-se a regra da mão direita). Para uma junta rotacional, , e são os parâmetros da junta, cujo valor varia na rotação do elo i em relação ao elo i-1. Para uma junta prismática, , ai e αi são os parâmetros da junta, enquanto di é a variável de junta (deslocamento linear). Com os sistemas de coordenada DH estabelecidos, uma matriz de transformação homogênea pode facilmente ser desenvolvida relacionando-se o i-ésimo ao (i-1)-ésimo frame de coordenadas. Como demonstra a matriz abaixo. 5)Cadeia Cinemática A estrutura de um robô manipulador consiste numa série de corpos rígidos, idealmente feitos de um material resistente como aço, e são denominados de elos. Esses elos podem ter diversos tamanhos e formas dependendo da aplicação, e são unidos por juntas que lhes permitem um movimento relativo entre si. Uma Cadeia Cinemática é composta por elos interligados por juntas. O movimento da junta de um robô pode ser linear (prismático), permitindo um deslocamento em uma direção, ou rotacional (revolução), permitindo um deslocamento angular. A combinação dos diversos tipos de
  • 11.
    11 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 elos com os diferentes tipos de juntas, seguem a conveniência da configuração de projeto estabelecida. Logo, as juntas determinam os movimentos possíveis do manipulador, e juntamente com as características físicas dos elos, como suas formas e tamanhos, determinam a anatomia do manipulador. E isso acaba por determinar os aspetos de mobilidade que influenciam no Espaço de Trabalho que o manipulador irá ter. Para representar os movimentos de um elo com relação ao seu antecessor, são utilizadas grandezas físicas que identificam os ângulos das juntas(θ) e o comprimento dos elos(d). O estado dessas grandezas é suficiente para determinar a posição do efetuador (Modelo Cinemático Direto), pois se for conhecida a posição de cada uma das juntas a partir da primeira, e os comprimentos dos elos, é possível conhecer a posição do efetuador. Como o estado das grandezas físicas (θ) podem variar dinamicamente, a depender do movimento executado, as mesmas são identificadas como variáveis e são conhecidas como Coordenadas Generalizadas. Cada um dos movimentos independentes que pode realizar uma articulação (junta - elo) em relação a anterior, é denominado de Grau de Liberdade. Um manipulador típico geralmente possui 6 graus de liberdade, três para o posicionamento do efetuador dentro do espaço de trabalho, e três para obter uma orientação do efetuador adequada para segurar o objeto. Em geral, os manipuladores estão montados sobre uma base fixa, à qual está fixado o primeiro elo através da primeira junta. Esta base pode estar montada sobre uma superfície também fixa, ou num veículo que lhe permita um deslocamento pelo local de trabalho.
  • 12.
    12 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 Espaço de Trabalho: O Espaço de Trabalho do manipulador é o termo que se refere ao espaço dentro do qual este pode movimentar o efetuador. É definido como o volume total conformado pelo percurso do extremo do último elo, o punho, quando o manipulador efetua todas as trajetórias possíveis. Neste âmbito, o volume de trabalho depende da configuração geométrica do manipulador e das restrições físicas das juntas (limites mecânicos). Volume de Trabalho: Define a região do espaço onde existe uma probabilidade não nula de uma parte constituinte do manipulador ser encontrada. 6) Trabalho Prático: No nosso trabalho de grupo, vamos utilizar como base de estudo o braço robótico R700 (Vector Robotic Arm), que é feito de alumínio pesado de alta qualidade, construído com 6 servomotores permite ter 6 graus de liberdade, apresentado características ideais para simular e aplicar conhecimentos de eletrônica, mecânica e programação. O braço é controlado por um microcontrolador ATMEGA64 que é programável utilizando ferramentas de código em C. O braço robótico vem com muitos exemplos de programas já escritos que facilmente podemos enviar pelo interface USB para o robô, usando o Software RobotLoader, ou podemos optar por criar os próprios programas personalizados usando o software livre WinAVR de código aberto.
  • 13.
    13 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 É possível controlar o robô usando um teclado ou software RACS que vem incluído. Usando o software torna-se possível gravar os movimentos do braço robótico e reproduzi-los com grande precisão. As entradas e saídas, em conjunto com um flexível sistema de barramento I2C, torna possível a adição de módulos extras facilmente configuráveis, permitindo o robô interagir com o ambiente que o rodeia. Figura 2 - R700 (Vector Robotic Arm), Na elaboração do nosso trabalho, optamos por limitar os movimentos do braço robótico a 3 graus de liberdade, e assim tornar possível demonstrar os métodos estudados com cálculos menos complexos.
  • 14.
    14 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 A metodologia adotada para modelagem cinemática do nosso braço robótico, baseada na notação de Denavit-Hartenberg, permite descrever todos os movimentos do manipulador, gerado pelo movimento das juntas, a partir de um eixo referencial, posicionado na base do robô (Cinemática direta). Figura 3 - Eixo referencial 8) Determinação dos parâmetros de Denavit-Hartenberg Nesta etapa, foram levantados os parâmetros das juntas de acordo com a notação de Denavit-Hartenberg. Os valores obtidos estão apresentados na tabela seguinte: Elos Ɵ l d α 1 + 180 0 8 +90 2 + 90 8 0 +180 3 27 0 0
  • 15.
    15 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 7) Determinação das matrizes parciais: A metodologia da notação de Denavit-Hartenberg permite estabelecer de maneira sistemática a relação (matriz de transformação homogénea) entre o i-ésimo e (i-1)-ésimo sistema de coordenadas. Assim foram obtidas as relações entre os sistemas de coordenadas nos elos, considerado, com recurso ao Matlab, nomeadamente: Determinação da matriz total: A matriz homogénea total ( T ) que relaciona o sistema de referência da base ao da extremidade do braço robótico , foi obtida pelo produto de todas as matrizes parciais:
  • 16.
    16 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 9) Cinemática direta Para validar a equação anterior, foram estabelecidos valores para as variáveis das juntas e, por meio da matriz T obtida, foi determinada a posição (valor teórico) da extremidade da garra. Com o auxílio do protótipo, verificamos se os resultados correspondiam à realidade (valor medido). Após revisões no modelo obtido, para todos os casos os resultados teóricos foram equivalentes aos obtidos no protótipo. Na tabela seguinte apresentamos os resultados obtidos quando o protótipo foi posicionado nos seguintes pontos: Coordenadas: 1 – X=20 ; Y=18.5 2 – X=23.5 ; Y= 21 3 – X=28 ; Y=7 Ângulos: 1 - φ1= 41.6°, φ2= 37.8° e φ3= -80.2°. 2 - φ1= 41.6°, φ2= 68.1° e φ3= -40.8°. 3 - φ1= 13.6°, φ2= 48.4° e φ3= -68.8°. Ponto 1 Valor Medido Valor Teórico Erro % X 21.49 20 7.45 Y 19.08 18.5 3.13 Ponto 2 Valor Medido Valor Teórico Erro % X 24.65 23.5 4.89 Y 21.88 21 4.19 Ponto 3 Valor Medido Valor Teórico Erro % X 29.15 28 4.1 Y 7.05 7 0.7
  • 17.
    17 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 Estes valores foram obtidos utilizando o seguinte código no Matlab : % CINEMÁTICA DIRETA syms T T1 T2 T3 Rot_Z=[cos(T1+pi) -sin(T1+pi) 0 0; sin(T1+pi) cos(T1+pi) 0 0; 0 0 1 0; 0 0 0 1]; Tra_l_d=[1 0 0 0; 0 1 0 0; 0 0 1 8; 0 0 0 1]; Rot_X=[1 0 0 0; 0 cos(pi/2) -sin(pi/2) 0; 0 sin(pi/2) cos(pi/2) 0; 0 0 0 1]; A1=Rot_Z*Tra_l_d*Rot_X Rot_Z=[cos(T2+pi/2) -sin(T2+pi/2) 0 0; sin(T2+pi/2) cos(T2+pi/2) 0 0; 0 0 1 0; 0 0 0 1]; Tra_l_d=[1 0 0 8; 0 1 0 0; 0 0 1 0; 0 0 0 1]; Rot_X=[1 0 0 0; 0 cos(pi) -sin(pi) 0; 0 sin(pi) cos(pi) 0; 0 0 0 1]; A2=Rot_Z*Tra_l_d*Rot_X Rot_Z=[cos(T3) -sin(T3) 0 0; sin(T3) cos(T3) 0 0; 0 0 1 0; 0 0 0 1]; Tra_l_d=[1 0 0 27; 0 1 0 0; 0 0 1 0; 0 0 0 1]; Rot_X=[1 0 0 0; 0 cos(0) -sin(0) 0; 0 sin(0) cos(0) 0; 0 0 0 1]; A3=Rot_Z*Tra_l_d*Rot_X T_0_4=A1*A2*A3 T_0_4_2=subs(T_0_4,[T1,T2,T3],[41.6*pi/180,37.8*pi/180,-80.2*pi/180]); T_0_4_2=double(T_0_4_2) T_0_4_3=subs(T_0_4,[T1,T2,T3],[41.6*pi/180,68.1*pi/180,-40.8*pi/180]); T_0_4_3=double(T_0_4_3) T_0_4_4=subs(T_0_4,[T1,T2,T3],[13.6*pi/180,48.4*pi/180,-68.8*pi/180]); T_0_4_4=double(T_0_4_4) 10) Cinemática Inversa: Enquanto a cinemática direta resulta do desenvolvimento imediato das expressões do manipulador, a cinemática inversa procura determinar o conjunto de valores das juntas que se adequam a uma dada configuração do espaço operacional ou cartesiano. Figura 4 – Diagrama de blocos
  • 18.
    18 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 A cinemática inversa nem sempre é um problema com solução analítica, ou por vezes não tem mesmo solução sendo mais complexo ainda é o facto de não haver uma metodologia única de aplicação direta. Não será esse um problema grave porque as soluções de interesse prático estão já todas bem estudadas e só em casos especiais será necessário conceber novas soluções. Nesta parte, utilizou-se o Matlab para resolver as equações de modo a encontrar os valores das coordenadas finais do ponto a calcular, no entanto, para o ponto escolhido verifica-se múltiplas soluções, então foi necessário restringir as soluções limitando os ângulos que o manipulador pode efetuar, reduzindo assim o espaço de trabalho ao primeiro quadrante do plano XY, conforme se pode verificar no seguinte código: % CINEMATICA INVERSA Px = 21.5; Py = 19; Pz = 1.5; eqns = [T_0_4(1,4)== Px, T_0_4(2,4)== Py, T_0_4(3,4)== Pz]; vars = [T1,T2,T3]; range = [0 pi/2; 0 pi; -pi 0]; % Restrição da amplitude de movimento dos motores sol = vpasolve(eqns,vars,range); T(1)=sol.T1; T(2)=sol.T2; T(3)=sol.T3; % Conversão para graus T=double(T) T_deg=T*180/pi
  • 19.
    19 Nuno Martins nº11854 – Carlos Silva nº 46421 – Tiago nº 20347 30/06/2018 11) Conclusão: No decorrer deste trabalho verificou-se a aplicação da matéria lecionada nesta unidade curricular a um braço robótico (manipulador). Neste âmbito confirmou-se os resultados das cinemáticas direta e inversa, utilizando para o efeito o Matlab como ferramenta de cálculo. A construção do protótipo e a validação do modelo de cinemática direta, determinado a partir da notação de Denavit-Hartenberg, explicitou os problemas intrínsecos da aplicação prática da teoria, ajudando a consolidar o conhecimento dos parâmetros das juntas e conceitos teóricos de robótica, contribuindo para o estudo de modelagem cinemática direta de manipuladores. A cinemática inversa foi também verificada restringindo o valor das soluções à realidade pretendida.