Singularidades e Manipulabilidade
Objetivos de Aprendizagem
- Definir uma singularidade cinemática como perda de posto do Jacobiano, e testá-la pelo determinante quando é quadrada e pelos valores singulares nos outros casos.
- Encontrar as configurações singulares de um braço planar de dois elos e de um braço articulado de três juntas, e classificá-las como de borda ou interiores.
- Mostrar com uma execução como as velocidades de junta crescem perto de uma singularidade, e prever seu tamanho pelo menor valor singular.
- Definir a medida de manipulabilidade de Yoshikawa, calculá-la para Jacobianos quadrados, largos e altos, e dizer o que ela não captura.
- Descrever o que os mínimos quadrados amortecidos ganham e quanto custam.
Contexto e Motivação
velocity-kinematics-and-the-jacobian montou a matriz que transforma taxas de junta em velocidade da ferramenta, . Um controlador costuma precisar do sentido oposto: a tarefa diz como a ferramenta deve se mover, e o controlador calcula as taxas de junta, para quadrada e invertível por . inverse-kinematics-and-workspace já encontrou o ponto problemático pelo lado da iteração: com o braço esticado, e o método de Newton não conseguia dar um passo. Esta lição olha as mesmas configurações pelo lado da velocidade. O que exatamente se perde ali, quão grandes ficam as taxas de junta nas vizinhanças, e como medir "vizinhança" com um único número?
Teoria Central
Singular quer dizer deficiente em posto
Seja de dimensão , levando taxas de junta a velocidades da tarefa. Uma configuração é singular quando cai abaixo do seu maior valor entre todas as configurações, que é para um braço que não é deficiente em toda parte. Nesse ponto acontecem duas coisas juntas. Alguma direção da tarefa sai da imagem de , então nenhum movimento de junta produz movimento da ferramenta naquela direção. E o núcleo cresce, então algum movimento de junta não produz movimento da ferramenta.
Para quadrada, perder posto é ter . Para não quadrada não existe determinante, e a ferramenta geral é a decomposição em valores singulares , com . O posto é o número de não nulos, e o menor deles diz quão perto a configuração está de perder uma direção. Em ponto flutuante, "zero" quer dizer "abaixo de uma tolerância", que é o que numpy.linalg.matrix_rank aplica.
O que acontece perto de uma singularidade
Perto de uma singularidade de uma quadrada, mas não nela, existe e
com igualdade quando aponta ao longo do vetor singular à esquerda de . Então as taxas de junta não explodem para toda velocidade da tarefa: só a componente na direção que está sendo perdida é amplificada, por . Velocidades da tarefa que ficam nas direções sobreviventes continuam baratas.
Dois braços e seus conjuntos singulares
No braço planar de dois elos, : singular com o braço esticado () ou dobrado (). Os dois casos ficam na borda do espaço de trabalho, onde inverse-kinematics-and-workspace encontrou uma única solução em vez de duas.
No braço articulado de the-denavit-hartenberg-convention, com Jacobiano de posição (),
em que é a distância horizontal da ponta ao eixo da base. O fator é a singularidade de cotovelo, antebraço esticado ou dobrado, de novo na borda. O fator é a singularidade de ombro: a ponta sobre o eixo vertical da junta 1. Essa fica no interior do espaço de trabalho, então uma tarefa em linha reta pode atravessá-la.
A medida de manipulabilidade de Yoshikawa
Uma bola unitária de taxas de junta, , é levada por a um elipsoide de velocidades da tarefa com semieixos ao longo dos vetores singulares à esquerda. O Modern Robotics o chama de elipsoide de manipulabilidade e, para um espaço da tarefa de dimensão , mede seu volume com
que ele lista como e diz ser proporcional ao volume do elipsoide. As notas do capítulo atribuem a Yoshikawa (1985, International Journal of Robotics Research) a primeira formulação quantitativa de manipulabilidade, e a Robotics Toolbox for Python implementa esse volume como seu método padrão "yoshikawa", descrito como "distance from singularity". Propriedades que saem da definição:
- , e exatamente numa singularidade.
- Para quadrada, .
- Para larga (, um braço redundante), é e a fórmula funciona como está.
- Para alta (), é com posto no máximo , então em toda configuração e a fórmula não informa nada. A saída usual é aplicá-la às linhas que importam para a tarefa, por exemplo só . O Modern Robotics separa os elipsoides linear e angular por um motivo relacionado: as unidades diferem. A Robotics Toolbox oferece a mesma escolha pelo argumento
axese avisa que usar todas as linhas "involves adding different units". - tem unidade (m² para um Jacobiano de posição planar), então seu valor muda com a unidade de comprimento, e comparar entre robôs de tamanhos diferentes compara tamanho tanto quanto destreza.
Outras medidas de um número olham a forma em vez do volume. O Modern Robotics usa , que vale 1 para um elipsoide redondo e cresce perto de uma singularidade. Murray, Li e Sastry listam e , e avisam que o determinante pode ser grande mesmo com pequeno, porque um grande compensa. Os dois livros usam os símbolos , , para quantidades diferentes.
Exemplos Resolvidos
Valores supostos: braço de dois elos com m e m; braço articulado com m, m e m. Velocidades em m/s, taxas de junta em rad/s.
Exemplo 1: aproximando-se do braço esticado
Mova a ponta do braço de dois elos radialmente para fora ao longo do eixo a m/s, rumo à borda em m, e compare com a mesma velocidade na direção tangencial. Taxas de junta por no ramo :
textr (m) theta2 (graus) sigma_min |qdot| radial |qdot| tangencial 1.0 107.46 0.559 0.089 0.050 1.5 42.13 0.252 0.198 0.033 1.59 13.24 0.081 0.618 0.031 1.599 4.18 0.026 1.95 0.031 1.5999 1.32 0.0081 6.17 0.031 1.59999 0.42 0.0026 19.5 0.031
Cada passo dez vezes mais perto da borda multiplica a taxa radial por cerca de . Derivar explica: , que dá rad/s em , e encolhe como a raiz quadrada da distância até a borda. A taxa tangencial, enquanto isso, se acomoda em rad/s: andar ao longo do círculo da borda só exige a junta 1, e essa direção nunca se perde.
Exemplo 2: uma linha reta passando pela singularidade de ombro
Comande a ponta do braço articulado ao longo da reta m para s, a m/s constantes em , passando a uma distância horizontal do eixo da base em s. A execução integra pelo método de Runge-Kutta clássico de quarta ordem com passo fixo , partindo da cinemática inversa exata no ramo .
texth (m) pico |theta1_dot| em t (s) min |det Jv| erro máx. de seguimento (dt = 1e-3 ou 1e-4 s) 0.05 2.000 2.000 3.9e-03 abaixo de 1e-12 m 0.01 10.000 2.000 7.6e-04 abaixo de 1e-12 m 0.001 100.00 2.000 7.6e-05 abaixo de 1e-9 m
O pico é exatamente . A junta 1 é a guinada da base, , então , que em vale . Nesse instante as outras duas juntas estão paradas: para . Na passagem inteira vai de a , e disso acontecem enquanto a ponta percorre os em volta do eixo. Para mm são em s, com a ferramenta andando a só m/s. A integração não é o problema: o erro de seguimento fica perto do nível do arredondamento, cujos dígitos exatos dependem da implementação. O problema é o motor. Se a junta da base for limitada a, digamos, 3 rad/s (valor suposto), essa trajetória é inviável para m.
Exemplo 3: mínimos quadrados amortecidos, e o preço
Os mínimos quadrados amortecidos trocam por . Em valores singulares, cada ganho vira , que é no máximo , então as taxas de junta ficam limitadas. O preço é que a velocidade comandada da ferramenta deixa de ser cumprida exatamente. Refaça o Exemplo 2 com mm, s e realimentação de posição, com :
textlambda (m) taxa de junta de pico (rad/s) erro máx. de seguimento (mm) theta final (graus) 0 100.0 < 0.001 (0.3, 98.1, -145.6) 0.001 50.3 2.2 (0.3, 98.1, -145.6) 0.003 7.0 1.75 (180.3, 188.1, -145.6) 0.01 1.12 1.58 (180.3, 188.1, -145.6) 0.03 0.51 1.53 (180.3, 188.1, -145.6)
A taxa de junta de pico é a maior taxa de uma única junta; a norma de no pico concorda com ela a menos de 0,02 rad/s nas três primeiras linhas e vale e rad/s nas duas últimas. Um amortecimento de 1 cm corta o pico da junta mais rápida por um fator de 90, ao custo de um desvio de 1,6 mm perto do eixo, e a realimentação traz o erro de volta a mm no fim. A última coluna mostra um efeito colateral. Sem amortecimento suficiente, a base gira cerca de . Com mm o braço passa por cima do eixo da base, com ultrapassando , e termina no outro ramo de ombro, com a mesma posição da ferramenta. Se isso é aceitável depende dos limites de junta e do que está em volta do robô.
Exemplo 4: manipulabilidade do braço de dois elos
texttheta2 (graus) w (m^2) sigma_1 sigma_2 mu1 = sigma_1/sigma_2 90 0.600 1.215 0.494 2.46 120 0.520 0.877 0.593 1.48 135 0.424 0.732 0.580 1.26 45 0.424 1.580 0.269 5.88 10 0.104 1.702 0.061 27.8 1 0.0105 1.709 0.0061 279
Aqui , que não depende de (em vale tanto com quanto com rad) e é máximo em . Mas a elipse mais redonda está em outro lugar: uma varredura de põe o mínimo em , onde é cerca de 28 por cento menor. E e têm o mesmo com contra : mesmo volume, formas muito diferentes, a limitação que Murray, Li e Sastry apontam. Em milímetros, o em vira mm².
Exemplo 5: Jacobianos largos e altos
Largo. O braço planar de três elos com comprimentos , e m, seguindo só a posição da ponta, tem de . Não há determinante, mas está definido:
textq (graus) posto sigma w (m^2) (0, 0, 0) 1 (2.124, 0) 0 (0, 180, 0) 1 (0.954, 0) 0 (0, 90, -90) 2 (1.554, 0.420) 0.652 (0, 90, 0) 2 (1.524, 0.623) 0.949
O posto só cai quando as três colunas são paralelas, o que exige a base, as duas juntas e a ponta numa mesma reta. Como , quase toda postura é regular, e a junta extra pode ser usada para manter alto.
Alto. O Jacobiano geométrico completo do braço articulado em tem valores singulares , logo posto cheio 3, e mesmo assim sai um número da ordem de , zero a menos de arredondamento, como tem de ser para uma matriz de posto 3. Aplicada às linhas de posição, m³, igual a . As linhas angulares têm posto 2 em toda configuração (as juntas 2 e 3 têm eixos paralelos), então esse braço nunca controla as três componentes do giro da ferramenta, e uma medida só nas linhas angulares daria zero em toda parte: uma deficiência permanente, não proximidade de singularidade. Misturar linhas também mistura unidades: expressar as linhas lineares em mm muda o produto dos valores singulares das seis linhas de para .
Equívocos Comuns e Armadilhas
- "Numa singularidade todas as taxas de junta explodem." Só a componente na direção perdida. No Exemplo 1 o movimento tangencial pedia rad/s bem na borda.
- "Singularidades ficam na borda do espaço de trabalho." A singularidade de ombro do Exemplo 2 é interior, e uma reta passa por ela.
- "O teste é ." Só para quadrada. Para larga ou alta, use o posto e os valores singulares.
- "Maximizar deixa o braço isotrópico." No Exemplo 4, teve o pico em , e a elipse mais redonda estava em .
- "A medida de Yoshikawa serve para qualquer Jacobiano." Para alta ela é identicamente zero. Aplique-a às linhas da tarefa.
- " é bom." Só em relação ao mesmo robô, às mesmas unidades e às mesmas linhas. Em mm a mesma postura dá .
- "O amortecimento resolve singularidades de graça." Ele troca velocidade de junta por erro de seguimento, e no Exemplo 3 também mudou o ramo de configuração do braço.
Resumo
Uma singularidade é uma configuração em que o Jacobiano perde posto: alguma direção da ferramenta fica impossível e algum movimento de junta fica invisível. Jacobianos quadrados a sinalizam com , todos os Jacobianos com um valor singular nulo. Perto dela, a taxa de junta necessária para uma velocidade da tarefa cresce como na componente da direção perdida, como mostrou a aproximação radial do Exemplo 1, enquanto as outras direções seguem baratas. Algumas singularidades são interiores: uma reta passando a do eixo da base do braço articulado exigiu exatamente da junta da base, 100 rad/s com mm. A medida de Yoshikawa é o volume do elipsoide de velocidades, igual a para quadrada, definida para larga e identicamente zero para alta, a menos que se restrinja às linhas da tarefa. Ela se anula nas singularidades, mas não diz nada sobre a forma do elipsoide e depende das unidades. Os mínimos quadrados amortecidos limitam as taxas de junta ao custo de erro de seguimento e, às vezes, de outra configuração.