1.07k likes | 1.24k Views
Robó tica. Prof. Reinaldo Bianchi Centro Universitário da FEI 2013. 5 a Aula. Parte A - Cinemática Inversa Numérica. Objetivos desta aula. Modelo cinemático inverso: Métodos analíticos (ou soluções fechadas): Geométrico (por Trigonometria). Algébrico. Métodos numéricos:
E N D
Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013
5aAula Parte A - Cinemática Inversa Numérica
Objetivos desta aula • 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. • Matlab. • Exercícios.
Objetivos desta aula Jávistona aula passada. • 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. • Matlab.
Cinemática Inversa K-1 (1 … n) (x, y, z, x, y, z)
Cinemática Inversa • Como o próprio nome diz: • Como encontrar as posições das juntas dadas a posição e a orientação da ferramenta. • Problema complexo: • Planejamento de trajetória • Dinâmica.
Cinemática Inversa • Enquanto a função f() é relativamente fácil de computar, f-1() geralmente não o é. • Pode ser solucionado de diversas maneiras: • Geometricamente. • Algebricamente. • Numericamente. • Maior problema é que podem existir: • Nenhuma solução. • Uma solução. • Múltiplas soluções.
Soluções analíticas x numéricas • 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.
Soluções de forma fechada • “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.
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, ye ϕ, sendo ϕ a orientação do elo 3 no plano.
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, θ2e θ3: cϕ= c123, (4.8) sϕ= s123,(4.9) x= l1c1 + l2c12, (4.10) y= l1s1 + l2s12. (4.11)
Cinemática Inversa 3R • Os ângulos são encontrados utilizando as seguintes equações:
MétodosNuméricos • 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. • Métodos de solução numérica iterativos serão vistos na próxima aula.
Revisão de cálculo Antes de entrarnosmétodosanalíticos, precisamosnoslembrar da matemática…
Derivada de uma função escalar • Se tivermos uma função escalar fcom uma única variável x, podemos escrevê-la como f(x). • A derivada da função em respeito a xédf/dx. • A derivada é definida como:
Derivada de uma função escalar f(x) Slope=df/dx f-axis x-axis x
Gradientes • Gradiente é uma derivada de primeira ordem de uma função em relação suas variáveis: • Dá informações sobre a taxa de variação de uma função em relação a variáveis independentes.
Derivadas vetoriais • Sabemos como: • Derivar um escalar por outro escalar. • Derivar um vetor por um escalar. • Mas como podemos: • Derivar um escalar por um vetor? • Derivar um vetor por outro?
Derivadas vetoriais • 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 • Mas o importante hoje é como calcular a derivada de um vetor por outro...o Jacobiano.
Jacobianos • 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 dexa uma mudança em um componente def • O Jacobiano é geralmente escrito como J(f,x): • Mas na prática, equivale conceitualmente a df/dx
(x , y) 2 l2 l1 1 Exemplo: Robô 2R
Derivadas parciais • O uso do símbolo “∂” em vez de “d” para derivadas parciais indica que é um componente em um vetor de derivadas. • Para propósitos práticos, as derivadas parciais se comportam como uma derivada de um escalar por outro.
Exato x Aproximado • Muitos algoritmos necessitam da computação da derivada. • Em alguns casos é possível computar analiticamente a derivada. • Por exemplo:
Exato x Aproximado • Em outros casos a função a ser derivada é muito complexa, impossibilitando o cálculo exato. • Mas, desde que possamos computar a função, podemos aproximar a derivada:
Derivada aproximada f(x+Δx) f(x) Slope=Δf/Δx f-axis x-axis Δx
Valores próximos • Se sabemos o valor da função em algum ponto x, podemos estimar o valor da função em pontos próximos a ele.
Método de Descida de Gradiente • Existem diversas maneiras de computar aproximadamente as raízes de uma função: • valores de x que torna f(x) = 0. • Uma maneira é o “Método de descida de Gradiente”. • É um método de otimização bem conhecido.
Idéia central • Se pudermos computar f(x) e df/dxpara qualquer valor de x, podemos sempre seguir o gradiente na direção do valor zero.
Idéia central • Se pudermos computar f(x) e df/dxpara qualquer valor de x, podemos sempre seguir o gradiente na direção do valor zero.
Método de Descida de Gradiente • Iniciaremos em um valor x0 e tomaremos pequenos passos: xi+1 = xi + Δx até encontrarmos um valor xN onde f(xN)=0 • Para cada passo, tentamos encontrar um valor de Δx que nos colocará mais próximos ao valor desejado. • Podemos utilizar a derivada como uma aproximação da inclinação da função.
Descida de Gradiente df/dx f(xi) f-axis xi x-axis
EscolhendoΔx • Se a função utilizada variar muito: • É mais prudente andar em passos pequenos. • Se a função que se deseja minimizar é bem comportada: • Pode-se tentar aproximações lineares que passam por zero.
Escolhendo Δx • Se desejarmos aproximar linearmente Δx para nos levar ao valor de x onde f(x) = 0 podemos usar:
Descida de gradiente df/dx f(xi) f-axis xi+1 xi x-axis
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”.
Descida de gradiente df/dx f(xi) f-axis xi+1 xi x-axis
Minimização • Se o f(x) desejado não for 0, o valor desejado pode ser considerado um erro. • O objetivo do método de descida de gradiente é minimizar este erro. • Cada passo nos leva mais próximos da solução, e paramos quando estivermos perto o suficiente da resposta desejada. • Este processo iterativo é comum na maioria dos algoritmos numéricos.
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:
Descida de gradiente para f(x)=g df/dx f(xi) f-axis xi+1 g xi x-axis
Parando a descida • É necessário parar a descida em algum ponto. • Idealmente, paramos quando chagamos no objetivo, levando em conta alguma tolerância. • Porém, existem casos onde podemos ficar presos em uma determinada região: • Problemas de mínimo local.