A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Apresentações semelhantes


Apresentação em tema: "Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013."— Transcrição da apresentação:

1 Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013

2 5 a Aula Parte A - Cinemática Inversa Numérica

3 Objetivos desta aula n Modelo cinemático inverso: –Métodos analíticos (ou soluções fechadas): Geométrico (por Trigonometria). Algébrico. –Métodos numéricos: Modelo recursivo utilizando a matriz Jacobiana. n Matlab. n Exercícios.

4 Objetivos desta aula n Modelo cinemático inverso: –Métodos analíticos (ou soluções fechadas): Geométrico (por Trigonometria). Algébrico. –Métodos numéricos: Modelo recursivo utilizando a matriz Jacobiana. n Matlab. Já visto na aula passada.

5 Relembrando a aula passada

6 Cinemática Inversa (  1 …  n ) ( x, y, z,  x,  y,  z ) K -1

7 Cinemática Inversa n Como o próprio nome diz: –Como encontrar as posições das juntas dadas a posição e a orientação da ferramenta. n Problema complexo: –Planejamento de trajetória –Dinâmica.

8 Cinemática Inversa n Enquanto a função f() é relativamente fácil de computar, f -1 () geralmente não o é. n Pode ser solucionado de diversas maneiras: –Geometricamente. –Algebricamente. –Numericamente. n Maior problema é que podem existir: –Nenhuma solução. –Uma solução. –Múltiplas soluções.

9 Soluções analíticas x numéricas n Soluções do problema da cinemática inversa podem ser classificadas em: –Analíticas (ou soluções fechadas): Encontram uma solução exata através da inversão das equações de cinemática direta. É possível apenas para problemas simples. –Numéricas: Utilizam aproximação e diversas iterações para tentar convergir para a solução. Tendem a ser mais genéricos e computacionalmente mais custosos.

10 Soluções de forma fechada n “Forma fechada” significa: –um método de solução baseado em expressões analíticas ou na solução de um polinômio de grau 4 ou menor. –Apenas cálculos não iterativos são suficientes para chegar a uma solução.

11 Exemplo 3: Manipulador 3R Como trabalhamos com um manipulador planar, a especificação desses pontos alvos pode ser obtida com mais facilidade especificando-se três números: x, y e ϕ, sendo ϕ a orientação do elo 3 no plano.

12 Solução Geométrica 3R ϕ

13 Solução analítica 3R Igualando as duas matrizes, chegamos a um conjunto de quatro equações não lineares que devem ser resolvidas para θ 1, θ 2 e θ 3 : c ϕ = c 123, (4.8) s ϕ = s 123, (4.9) x = l 1 c 1 + l 2 c 12, (4.10) y = l 1 s 1 + l 2 s 12. (4.11)

14 Cinemática Inversa 3R n Os ângulos são encontrados utilizando as seguintes equações:

15 Métodos Numéricos n Por sua natureza iterativa, as soluções numéricas em geral são muito mais lentas do que suas correspondentes de forma fechada: –Para a maioria das aplicações não estamos interessados na abordagem numérica para as soluções cinemáticas. n Métodos de solução numérica iterativos serão vistos na próxima aula.

16 Revisão de cálculo Antes de entrar nos métodos analíticos, precisamos nos lembrar da matemática…

17 Derivada de uma função escalar Se tivermos uma função escalar f com uma única variável x, podemos escrevê- la como f(x ). A derivada da função em respeito a x é df/dx. n A derivada é definida como:

18 Derivada de uma função escalar f-axis x-axisx f(x) Slope=df/dx

19 Derivada de f(x)=x 2

20 Gradientes n Gradiente é uma derivada de primeira ordem de uma função em relação suas variáveis: n Dá informações sobre a taxa de variação de uma função em relação a variáveis independentes.

21 Gradiente

22 Gradiente é a normal à superfície

23

24 Derivadas vetoriais n Sabemos como: –Derivar um escalar por outro escalar. –Derivar um vetor por um escalar. n Mas como podemos: –Derivar um escalar por um vetor? –Derivar um vetor por outro?

25 Derivadas vetoriais n Derivadas de valores escalares por valores vetoriais são comuns nos campos de: –Dinâmica dos fluidos, –Equações de teoria de campos potenciais. –etc n Mas o importante hoje é como calcular a derivada de um vetor por outro...o Jacobiano.

26 Jacobianos n Um Jacobiano é a derivada de um vetor por outro. Se tivermos uma função f(x), o Jacobiano é a matriz de derivadas parciais para cada componente dos vetores O Jacobiano contém toda a informação necessária para relacionar uma mudança em um componente de x a uma mudança em um componente de f n O Jacobiano é geralmente escrito como J(f,x): –Mas na prática, equivale conceitualmente a df/dx

27 Jacobiano

28 Exemplo: Robô 2R 22 11 (x, y) l2l2 l1l1

29 Derivadas parciais n O uso do símbolo “∂” em vez de “d” para derivadas parciais indica que é um componente em um vetor de derivadas. n Para propósitos práticos, as derivadas parciais se comportam como uma derivada de um escalar por outro.

30 (Re)visão de Cálculo Numérico

31 Exato x Aproximado n Muitos algoritmos necessitam da computação da derivada. n Em alguns casos é possível computar analiticamente a derivada. –Por exemplo:

32 Exato x Aproximado n Em outros casos a função a ser derivada é muito complexa, impossibilitando o cálculo exato. n Mas, desde que possamos computar a função, podemos aproximar a derivada:

33 Derivada aproximada f-axis x-axisΔxΔx f(x) f(x+Δx) Slope=Δf/Δx

34 Valores próximos n Se sabemos o valor da função em algum ponto x, podemos estimar o valor da função em pontos próximos a ele.

35 Método de Descida de Gradiente n Existem diversas maneiras de computar aproximadamente as raízes de uma função: –valores de x que torna f(x) = 0. n Uma maneira é o “Método de descida de Gradiente”. n É um método de otimização bem conhecido.

36 Idéia central Se pudermos computar f(x) e df/dx para qualquer valor de x, podemos sempre seguir o gradiente na direção do valor zero.

37 Idéia central Se pudermos computar f(x) e df/dx para qualquer valor de x, podemos sempre seguir o gradiente na direção do valor zero.

38 Método de Descida de Gradiente Iniciaremos em um valor x 0 e tomaremos pequenos passos: x i+1 = x i + Δx até encontrarmos um valor x N onde f(x N )=0 Para cada passo, tentamos encontrar um valor de Δx que nos colocará mais próximos ao valor desejado. n Podemos utilizar a derivada como uma aproximação da inclinação da função.

39 Descida de Gradiente f-axis x-axis xixi f(x i ) df/dx

40 Escolhendo Δx n Se a função utilizada variar muito: –É mais prudente andar em passos pequenos. n Se a função que se deseja minimizar é bem comportada: –Pode-se tentar aproximações lineares que passam por zero.

41 Escolhendo Δx Se desejarmos aproximar linearmente Δx para nos levar ao valor de x onde f(x) = 0 podemos usar:

42 Descida de gradiente f-axis x-axis xixi f(x i ) df/dx x i+1

43 Utilizando passos menores Se a função não for bem comportada, não podemos aproximar linearmente Δx. Uma modificação possível adiciona o parâmetro β para diminuir o passo, onde 0≤ β ≤1 : β é a “taxa de aprendizado”.

44 Descida de gradiente f-axis x-axis xixi f(x i ) df/dx x i+1

45 Exemplo de descida de gradiente

46 Minimização Se o f(x) desejado não for 0, o valor desejado pode ser considerado um erro. n O objetivo do método de descida de gradiente é minimizar este erro. n Cada passo nos leva mais próximos da solução, e paramos quando estivermos perto o suficiente da resposta desejada. n Este processo iterativo é comum na maioria dos algoritmos numéricos.

47 Minimizando f(x)=g Se desejamos encontrar o valor de x para quando a função f(x) seja igual a um valor qualquer g diferente de zero, basta minimizar para f(x)-g e tentar chegar em g :

48 Descida de gradiente para f(x)=g f-axis x-axis xixi f(x i ) df/dx g x i+1

49 Algoritmo Descida de Gradiente

50 Parando a descida n É necessário parar a descida em algum ponto. n Idealmente, paramos quando chagamos no objetivo, levando em conta alguma tolerância. n Porém, existem casos onde podemos ficar presos em uma determinada região: –Problemas de mínimo local.

51 Cinemática e o Jacobiano

52 Objetivo final do atuador “ Θ ” representa o vetor de estado atual das posições das juntas: “ e ” representa os valores atuais de posição e orientação do efetuador: “ g ” representa o valor desejado para o atuador (goal).

53 Exemplo 4: manipulador 2R n Imagine um robô 2D com 2 juntas rotacionais: θ1θ1 θ2θ2 e=[e x e y ]

54 Exemplo 4: Jacobiano 2R A matriz Jacobiana J(e, Θ) mostra como cada componente do vetor e varia, com respeito a cada junta: θ2θ2 θ1θ1

55 Exemplo 4: variação em θ 1 O que acontece ao vetor e se variarmos θ 1 um pouco? θ 1θ 1

56 Exemplo 4: variação em θ 2 O que acontece ao vetor e se variarmos θ 2 um pouco? θ2θ2

57 Jacobiano x domínio Da mesma maneira que uma derivada escalar df/dx de uma função f(x) pode variar sobre o domínio de valores de x, o Jacobiano J ( e,Θ ) varia sobre o domínio de poses de Θ. Para cada valor de pose de Θ, pode-se calcular os componentes individuais do Jacobiano.

58 Mudanças incrementais de pose Se tivermos uma mudança ΔΘ que representa uma pequena mudança nos valores das juntas, a mudança em e pode ser aproximada por:

59 Utilização do jacobiano Se desejarmos mudar a posição final do atuador em Δe, que mudança em ΔΘ devemos realizar? A matriz Jacobiana J(e,Θ) mostra como cada componente do vetor e varia, com respeito a cada junta: n Para se obter a posição a partir da pose, basta usar:

60 Mudanças na posição do atuador θ2θ2 θ1θ1 ΔeΔe

61 Mudanças na posição do atuador n Podemos utilizar o Jacobiano para calcular valores próximos da posição atual. n Lembre-se que a cinemática direta envolve funções não lineares. n Assim, temos que repetir o cálculo do Jacobiano a cada passo, até chegarmos na posição desejada...

62 Escolhendo Δe Queremos um valor de Δe que vai deixar o atuador mais próximo de g. Um chute inicial pode ser: Δe = g - e n Infelizmente, devido a não linearidade, devemos tomar passos menores na direção desejada: Δe = β(g - e), onde 0≤ β ≤1

63 Algoritmo de Cinemática Inversa usando o Jacobiano while (e estiver longe demais de g) { Compute J(e, Θ ) para a pose atual Θ Compute J -1 // inverta a matriz Jacobiana Δ e = β(g - e) // escolha um passo apropriado ΔΘ = J -1 · Δ e// compute as mudanças nas juntas Θ = Θ + ΔΘ // aplique as mudanças nas juntas Compute o novo e// utilize cinemática direta // para ver onde você // foi parar.. }

64 Algumas questões… Como computar o Jacobiano J ? Como inverter J para computar J -1 ? Como escolher β (step size) n Como determinar quando parar de realizar iterações (ou seja, qual o erro permitido)?

65 Calculando o Jacobiano

66 Para calcular a matriz jacobiana completa, é necessário calcular  f/  x para cada junta existente. n É possível para qualquer tipo de junta: –Prismática –Rotacional, –Esféricas... n Caso seja impossível calcular o Jacobiano analiticamente, este valor pode ser encontrado geometricamente ou aproximado por um método numérico...

67 Jacobiano

68 Exemplo: Robô 2R 22 11 (x, y) l2l2 l1l1

69 Encontrando o Jacobiano usando geometria n Pode-se calcular o Jacobiano geometricamente. n e é um vetor 3D representando a posição do atuador no espaço real. –O Jacobiano será uma matriz 3 x N, onde N é o número de juntas. Para cada junta i, devemos analisar como e modifica o valor de θ i.

70 Juntas rotacionais (1R) n É necessário fixar um eixo e um ponto de rotação no espaço do mundo. n A partir dos dados da configuração do manipulador, temos: –o offset r i da junta relativa ao seu elo. –o eixo de rotação a i relativo a seu elo. n Podemos encontrar o eixo de rotação e o ponto de rotação (pivo) em coordenadas do mundo através das transformações homogêneas...

71 Juntas rotacionais (1R) n Os valores em coordenadas do mundo são dados por:

72 Juntas rotacionais (1R) n Agora que temos o eixo e o ponto de apoio em coordenadas do mundo, podemos calcular como e modifica θ se rotacionarmos a junta: n Este é o valor de uma coluna do jacobiano

73 Juntas rotacionais (1R) a’ i : unit length rotation axis in world space r’ i : position of joint pivot in world space e: end effector position in world space

74 Juntas rotacionais 3R em 3D n Complica um pouco ser em 3D... n Devemos considerar translações 3D e diversas rotações, para encontrar os valores no espaço do mundo.

75 Juntas rotacionais 3R em 3D n Onde R x (θ x ), R y (θ y ), e R z (θ z ) são rotações em x, y, e z e T(r) é uma translação de um offset. n A coordenada do mundo fica:

76 Juntas rotacionais 3R em 3D n Para cada eixo no espaço do mundo criamos uma coluna no jacobiano: –Essencialmente funciona como 3 juntas 1R no espaço 3D. n Podemos utilizar a mesma fórmula: n Repetimos este cálculo para os 3 eixos x, y e z.

77 Juntas prismáticas em 3D n Funciona da mesma maneira, porém não existe rotação. n Basta realizar uma translação ao longo de um eixo arbitrário a i definido no espaço do elo anterior. n Podemos usar:

78 Juntas prismáticas em 3D n Como na 1R em 3D, é necessário computar cada coluna do Jacobiano: n Uma mudança translacional resulta simplesmente em uma translação no espaço do mundo. –Computação trivial.

79 Juntas prismáticas em 3D

80 Invertendo o Jacobiano

81 Sistemas inversíveis n Se o número de graus de liberdade no atuador for igual ao número de graus de liberdade das juntas, o sistema é chamado de inversível, ou bem- comportado. n As juntas devem estar arrumadas de maneira que seus eixos não sejam redundantes. n Jacobiano é uma matriz quadrada.

82 Sistemas redundantes (underconstrained) n Se o sistema tiver mais graus de liberdades nas juntas do que no atuador, existirá um contínuo de soluções redundantes para uma determinada posição desejada. n Este sistemas são chamados redundantes ou underconstrained. n Jacobiano tem mais colunas do que linhas.

83 Sistemas overconstrained n Se existirem mais graus de liberdade no atuador do que nas juntas o sistema é chamado overconstrained: –pode não existir soluções para um determionado problema. –Sistemas pouco comuns. n Jacobiano possui mais linhas do que colunas.

84 Invertendo o Jacobiano n Se o Jacobiano é quadrado, como no caso de um sistema invertível, “basta” inverter a matriz: n Para obter a inversa, calcula-se a matriz dos cofatores…

85 Invertendo uma matriz... n Método geral: n Exemplo para uma matriz 2x2:

86 Pseudo-Inversa n Se tivermos uma matriz jacobiana que representa um sistema overconstrained ou underconstrained, podemos utilizar a pseudo-inversa do Jacobiano: n A vantagem, é que a pseudo-inversa é uma matriz quadrada.

87 Quando parar? n Três condições de parada: –Encontrou-se uma solução desejada (dentro de certa tolerância). –O sistema ficou parado em um mínimo local. –Ele levou tempo demais (número máximo de iterações). Basta monitorar o progresso nos valores de Θ n Estas regras devem ser codificadas em um comando while() e serem verificadas sempre.

88 Outros métodos possíveis n Existem dezenas de técnicas de cálculo numérico que podem ser usadas: –Foi mostrada apenas uma. n Outros métodos usados: –Método de Newton-Raphson –Algoritmo de Levenberg–Marquardt –Método dos Mínimos quadrados –…

89 Método de Newton n A comparison of gradient descent (green) and Newton's method (red) for minimizing a function. n Newton's method uses curvature information to take a more direct route.

90 E no Matlab?

91 A função ikine no Matlab n A solução é encontrada iterativamente utilizando a pseudo-inversa do Jacobiano: – –A solução é geral (válida para qualquer robô). –Utiliza o método de descida de gradiente. –Mais lenta que soluções específicas.

92 ikine.m – só o que importa while true % update the count and test against iteration limit count = count + 1; if count > opt.ilimit error('ikine: iteration limit %d exceeded (row %d), i, nm); e = tr2delta( robot.fkine(q'), T); % compute the error J = jacob0(robot, q); % compute the Jacobian % compute change in joint angles to reduce the error, dq = opt.alpha * pinv( J(m,:) ) * e(m); q = q + dq'; % update the estimated solution if norm(e(m))<= opt.tol % stopping condition break end

93 Usando ikine n r.ikine(T, Q, M), onde: –R = robô; –T = transformada com a posição desejada –Q = situação atual do robô –M = matriz máscara: –If the manipulator has fewer than 6 DOF then this method of solution will fail, since the solution space has more dimensions than can be spanned by the manipulator joint coordinates. In such a case it is necessary to provide a mask matrix, M, which specifies the Cartesian DOF (in the wrist coordinate frame) that will be ignored in reaching a solution. The mask matrix has six elements that correspond to translation in X, Y and Z, and rotation about X, Y and Z respectively. The value should be 0 (for ignore) or 1. The number of non-zero elements should equal the number of manipulator DOF.

94 Dados gerados para a solução n Modificando ikine.m, podemos pedir que se imprima diversos gráficos: –Posição –Derivada da Posição –Erro Modificar false para true na linha abaixo em ikine.m: opt.plot = false;

95 Comandos para criar um 3R n Criando os links: L1 = Link([ ]) L2 = Link([ ]) L3 = Link([ ]) Criando o robô: r = SerialLink([L1 L2 L3])

96 r.ikine(T, Q, M) n Definindo T: T = [ ; ; ; ] n Definindo Q: Q = [ 2* pi/3 2*pi/3 2*pi/3] n Definindo M: M = [ ] n Usando ikine(): r.ikine (T, Q, M) ans =

97 Posicão [ 2π/3 2π/3 2π/3]

98 Resultado

99 Evolução dos ângulos Θ

100 Evolução das derivadas dΘ

101 Evolução do erro (e – g)

102 Evolução do |erro| em monolog

103 Usando plot n Eu modifiquei o ikine para gravar os pontos por onde passou. n Assim, podemos ver o robô se movendo: [a,b,pontos] =r.ikine (T, Q, M) r.plot(pontos,'delay',0.2)

104 Conclusão n Técnicas analíticas são restritas. –Mas resolvem diversos problemas práticos (PUMA, Stanford-Arm, 1R, 2R, 3R) n Existem dezenas de técnicas de cálculo numérico que podem ser usadas: –Foi mostrada apenas uma. n Quando usar cada um: –depende do problema!

105 Bibliografia n Capítulos 4 e 5 do Craig. n Robot Manipulators: Mathematics, Programming, and Control –Paul, R. P MIT Press. n Robot Analysis: The Mechanics of Serial and Parallel Manipulators – Lung-Wen TSAI John Wiley.

106 Links n Introduction to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Damped Least Squares methods –http://math.ucsd.edu/~sbuss/ResearchWeb /ikmethods/iksurvey.pdf

107 Intervalo Continuação no Lab com Matlab Exercícios.


Carregar ppt "Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013."

Apresentações semelhantes


Anúncios Google