Littérature pour la cinématique inverse: limites communes et au-delà

8

Récemment, j'ai joué avec Inverse Kinematics et j'ai été assez impressionné par les résultats. Naturellement, je veux aller plus loin, mais je n'ai aucune idée par où commencer. En particulier, je voudrais introduire des limites de joint (c'est-à-dire pour un joint prismatique jusqu'à quelle distance il peut se déplacer, joint de charnière quels angles il doit être entre, etc etc).

Actuellement, je comprends comment produire la matrice jacobienne pour les différents types de joints. Je recherche en particulier de la littérature (de préférence gratuite, et de préférence facile à comprendre) sur les différentes manières de mettre en place des limites communes. J'aimerais également découvrir différentes idées sur la manière d'utiliser la cinématique inverse.

Jeff
la source

Réponses:

4

Ce n'est probablement pas la meilleure réponse que je puisse donner maintenant, mais considérons la descente en coordonnées cycliques (CCD) qui fonctionne pour les matrices jacobiennes non inversibles. Une courte vidéo ici .

La meilleure source couvrant le CCD est la propre thèse de maîtrise de Chris Wellman. Pour une revue minimale / courte, vous pouvez lire cette source qui mentionne la plupart des méthodes.

Un article plus mathématique (pour le chercheur en vous: D) est celui-ci http://math.ucsd.edu/~sbuss/ResearchWeb/ikmethods/iksurvey.pd f.

Pour le chercheur inconditionnel: http://matwbn.icm.edu.pl/ksiazki/amc/amc19/amc1941.pdf

Cela semble être une méthode hybride, bien que ce ne soient que des diapositives avec des notions généralement familières: http://cmp.felk.cvut.cz/~hlavac/TeachPresEn/55IntelligentRobotics/KjchoInverseKinematics.pdf Encore une lecture intéressante: http: // www .cns.atr.jp / erato / DB / PDF / tevatia-icra2000.pdf

Puisque vous avez dit que vous préfériez avoir des sources gratuites, je ne vais pas mentionner les quelques livres que l'on peut acheter sur Amazon pour résoudre ce problème. Personnellement, je suis satisfait du CCD. Pour l'ultra précision, je préfère l'Inverse Jacobian (où je sais que le système donne une matrice inversible grâce aux 6 DOF d'un robot robotisé).

Comment peut-on utiliser IK? Surtout lorsque vous souhaitez animer un personnage en ne fournissant que la position et l'orientation d'un effecteur terminal d'un certain membre. (youtube pour des exemples). Si vous voulez commencer une carrière en robotique, IK est un must si vous avez affaire à des robots articulés. Dans le monde du jeu, c'est un must lorsque vous utilisez la détection de mouvement des gestes humains via une caméra (par exemple http://www.youtube.com/watch?v=HSradQVj26E - mon exemple simpliste d'une interface wiimote et d'un robot virtuel ccd bras).

teodron
la source
2

Article d'origine: Aperçu de la cinématique inverse

Je suggère fortement le lien ci-dessus pour un aperçu de haut niveau de la cinématique inverse. Il passe en revue le jargon IK, l'utilisation / les applications IK et les descriptions de haut niveau de la cinématique avant et de la cinématique inverse.

Quelles sont les utilisations d'IK?

IK peut être utilisé pour un bras humanoïde pour atteindre un objet / cible, comme nous l'avons vu. IK peut également être utilisé pour le pas du pied, de telle sorte que nous disons au pied où marcher et l'IK explique comment configurer les articulations des jambes. IK n'est généralement pas utilisé comme animation elle-même (pour atteindre un objet), mais plutôt comme outil d'animation. Donc, si vous implémentez un cycle de marche, vous pouvez positionner certaines des images clés à l'aide de l'outil IK.

Un autre point clé sur IK est que votre objectif / cible ne se limite pas à la position seule - votre objectif peut être défini comme une rotation. Par exemple, si vos pieds doivent tourner en fonction d'un terrain inégal, votre objectif de rotation CI peut être défini en fonction de la normale du sol. De cette façon, vos pieds sont inclinés le long du sol, comme lorsque vous montez une pente. Notez que vous pouvez également utiliser IK pour que votre tête (ou même vos yeux) regarde dans une certaine direction. Si vous voulez que votre tête suive un objet, vous pouvez utiliser IK pour que la tête suive l'objet autour.

Comment mettre en œuvre des limites communes?

J'implémente généralement des limites communes avec une simple instruction if. Par exemple, cela fonctionnerait pour les articulations tournantes.

if (limb.rotation >  45.0f) limb.rotation =  45.0f;
if (limb.rotation < -45.0f) limb.rotation = -45.0f;

C'est beaucoup moins mathématique que le jacobien, et extrêmement facile à implémenter une fois que le jacobien fonctionne.

Luis B
la source