White Paper: Ângulo de tornel do Solucionador HI IK

O requisito de altura de instrumento fundamentais do solucionador é que a solução seja history-independent: a solução tem que ser com base no objetivo e outros incidental parâmetros exclusivamente em seus estados atuais.

Girar o ângulo dos graus de liberdade

Quando a posição de objetivo é determinada por uma única corrente, não permanece um óbvio grau de liberdade: a rotação sobre o eixo atuador do final (EE eixo). O ângulo de giro é utilizado para descrever o grau de liberdade quantitatively.

1. Junta inicial

2. Atuador do final

3. EE eixo

Plano do solucionador

Vamos chamar o plano passando todas as juntas o solucionador plano. Quando as juntas não estejam em um plano, vamos definir o plano que (a) passa a junta inicial e final da junta e (b) é mais próximo ao restante da junta em uma determinada sentido.

O ângulo de giro descreve o grau de liberdade do solucionador de plano e ela restringe somente a junta inicial.

Mapa de plano de zero

Para descrever o solucionador plano em termos de uma quantidade numérica, temos a concordar que 0 significa. Dado o end-effector posição, onde é zero (solucionador) plano? O mapa de plano de zero toma como o argumento EE eixo e produz a normal ao primeiro plano.

O sistema IK Solver plug-ins permite individual para definir suas próprias zero plano mapas. Quando não está definido, o Sistema IK fornece um padrão.

O argumento para zero do plano mapa é um vetor unitário para indicar a direção da EE eixo. Equivalently, quando o EE desliza-se ao longo do EE eixo, o solucionador plano deve ser corrigidos. Portanto, o mapa de plano de zero define um campo de vetor em uma esfera. Dado um ponto da esfera, ele produz um vetor unitário tangencial para ser interpretado como uma normal para o plano do zero.

1. normal para o plano do zero

Plano do solucionador de inversão

Ele é um fato matemática que não existe um campo de vetor contínua em uma esfera. Independentemente de como hard você tente, não será sempre um ponto na esfera onde os vetores adjacentes mudarão dramaticamente. Este é o lugar onde o solucionador plano irá inverter ao final atuador do eixo abordagens para ele.

Isto é porque, em um lado, o histórico independente requisito demandas conosco para atribuir um vetor fixo para o ponto único. Por outro lado, não importa o vetor é atribuído, ele será drasticamente diferente de alguns dos vetores atribuídos aos pontos adjacentes.

Intrínseco estrutura de referência para a esfera

Para definir o mapa de plano de zero, precisamos definir uma estrutura de referência para a esfera. Esta estrutura de referência é intrínseca para a junta cadeia.

Uma esfera pode ser definida pelo centro, o plano horizontal e o meridiano de longitude (zero). O centro do modelo é atribuído para a junta.

A pose quando todos os ângulos de junta assumem preferido de ângulos é particularmente importante. Vamos o preferido pose.

Usaremos o solucionador na pose preferido como o plano horizontal. Desde o soquete ângulo é usada para controlar a junta inicial, como os ângulos na junta inicial não são para intrínseca. Ele também é aceitável para definir o plano horizontal com o solucionador plano que é obtido ao atribuir os zeros iniciais e de preferência para a junta ângulos para as outras juntas.

O EE eixo define o meridiano. A esfera agora está definido como é exibido na seguinte imagem:

1. EE eixo

Todas as juntas assumem preferível ângulos. O mapa de plano de zero deve ser definido na esfera.

A API para o plug-in do solucionador para definir sua própria zero plano do mapa na verdade leva EE eixo e o normal para o plano do solucionador na pose preferido:

virtual const IKSys::ZeroPlaneMap*

 GetZeroPlaneMap(const Point3& a0,
 const Point3& n0) const

onde a0 e N0 são EE eixo e solucionador na pose preferido, respectivamente. Objeto do ZeroPlaneMap é uma função que atribui um plano normal para a cada ponto da esfera.

Mapa de plano padrão zero

Quando não for fornecido pelo plug-in solucionadores (IK Solver é implementado como um plug-in do Sistema IK Solver) irá fornecer um padrão. Este mapa é definida usando as seguintes regras:

Obviamente, este método não se estendem para o norte ou sul pólos. Eles são os pontos singulares. Quando o eixo se move através do entorno explícito pólos, o normal irá inesperadamente alterar direção: inverte a partir dos usuários de vista.

Normalmente, o preferido pose é o quando o solucionador primeiro atribuído. Portanto, o plano no qual um) juntas corresponde ao plano horizontal aqui. Regra um assegura que a cadeia irá permanecer no plano se move o objetivo no plano.

Regra B significa que, quando você move o objetivo ao longo do grande círculo vertical para o equador, a cadeia irá permanecer na vertical, exceto quando ela passa através dos pólos, quais são os pontos singulares do mapa.

Parent Space (Espaço Pai)

Até agora, temos descrito coisas como se todo o mundo inclui somente IK elementos. Na prática, a cadeia IK e objetivo pode ficar em pontos de transformação hierarquias separados. Em última análise, é necessário mapear a posição da extremidade atuador do que é descrito no mundo para um ponto na esfera. Dependendo de como a esfera é montada em relação à posição final, o atuador do leituras de latitude e longitude são diferentes. O pai de transformação de espaço que este esfera é para ser inserido em é denominado como Girar ângulo principal espaço, ou principal espaço quando o contexto é desativada.

O pai de espaço para ser invariante com relação ao IK parâmetros. Agora, vamos oferecem duas escolhas:

Exemplo 1

Se a junta inicial e o objetivo é implantado diretamente no mundo, a escolha do espaço principal não fornecer elevação para qualquer diferença. No exemplo a seguir, a junta inicial é acompanhado ao objeto.

A cadeia de IK está acompanhado (por meio da junta inicial) no objeto.

Pressupõem essa é a pose quando o IK Solver é atribuído. Assim, este é o preferido pose. O plano em que as juntas são dispostos é o plano horizontal da esfera de mapeamento de plano (zero).

Exemplo 2

No exemplo a seguir, vamos examinar um caso onde não existe uma rotação no principal espaço quando o IK Solver é atribuído.

O pai espaço de IK cadeia contém uma rotação quando o IK Solver é atribuído.

O pai de um contém uma rotação de 90 graus. Este é um abstração da caso quando um usuário cria quatro ossos sem IK Solver e mais tarde atribui um IK Solver do Bone2 para Bone4. Se o principal da cadeia diretamente para o mundo, ele apareceria como mostrado na figura direito: o solucionador plano se torna horizontal.

Um problema de B é que a figura na direita nunca é mostrado para o usuário. Eles têm para Envision no para compreender o pedido de mudança.

Exemplo 3

Este exemplo descreve o que aconteceu quando iniciar junta passa. Suponha que temos uma IK cadeia de quatro nós de estrutura.

1. Bone01

2. Bone02

3. Bone03

4. Bone04

O início e o fim de juntas são Bone01 e Bone04, respectivamente. Suponha que a pose mostrado na figura é o preferido poses e Bone01 contém uma rotação. Se o principal Bone02 diretamente para o mundo, a hierarquia de Bone02 irá aparecer como na direita.

Quando é reatribuir junta inicial para Bone02 , zero do plano de mapa de esfera será baseada na configuração na direita.

Se você excluir o solucionador / objetivo e atribuído um novo a partir de Bone02 para Bone04, você verá que a cadeia não inverter. Por quê? Atribuição de junta inicial é diferente da criação de uma nova IK cadeia / objetivo. Junta inicial é um dos muitos IK parâmetros. A reatribuição de é simplesmente o mesmo como modificar qualquer parâmetro. O resto dos parâmetros são intactas. Em particular, o soquete ângulo não é alterado como resultado desta nova atribuição.

Criar uma nova cadeia de IK / objetivo é diferente. Esforço é feita para garantir que a junta cadeia permaneçam fixos ao ajustar os parâmetros de forma apropriada. Em particular, o ângulo de giro será definido para um valor de maneira que o solucionador plano mantém imóvel na viewport.