1

Salut les gens,
J'ai un vague projet (sur PC) qui impliquerait d'animer un squelette de bipède en cinématique inverse (en temps réel).
Est-ce que quelqu'un a de la doc sur le sujet ? Ou même une bibliothèque ? (je pense que je ne dois pas être le premier à me poser la question grin)
Merci d'avance !


Je poste ici ce que j'ai déjà trouvé (et pas encore lu)
http://freespace.virgin.net/hugo.elias/models/m_ik2.htm
http://www.learnaboutrobots.com/inverseKinematics.htm
http://fr.wikipedia.org/wiki/Algorithme_de_Levenberg-Marquardt
http://www.euclideanspace.com/physics/kinematics/joints/index.htm
http://fr.wikipedia.org/wiki/Cin%C3%A9matique_inverse
http://fribotte.free.fr/bdtech/cinematique/cinematique.html

2

Hi !

Tu as pu avancer ?

J'ai fait un peu de ca en 2011. Sur une structure pourtant simple, on avait un système d'équations non-linéaires et plutôt gros (pas forcément un gros nombre d'inconnues et d'équations, mais la taille de chacune était importante).
Pour la résolution, on avait utilisé l'opérateur de Newton vectoriel (contraction d'un vecteur d'intervalles) appliqué récursivement dans un Branch & Prune. Il existe probablement plus simple quand on ne cherche pas toutes les solutions ou qu'on a un objectif de minimisation de l'écart entre la solution précédente et la nouvelle (ce qui est ton cas je pense).
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

3

Pas avancé, pas eu spécialement le temps. C'est un projet long terme, de toute façon cheeky
Je vais regarder un peu tout ça, merci !

4

Le branch&prune avec les techniques d'intervalles, c'est très bien quand tu as besoin de toutes les solutions. S'il te suffit d'avoir une solution, il y a des méthodes plus rapides (par exemple le Newton classique sur des points plutôt que la variante qui travaille sur des intervalles, mais avec recherche de ligne pour garantir une meilleure convergence).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

Ouaip. La plus grosse difficulté pour pen^2 reste, je pense, la taille des équations. Il y a sans doute de très bonnes astuces dans les pages qu'il propose.

[edit] Par contre, comment tu gères le fait que l'on cherche à annuler toutes les composantes d'un vecteur de fonctions simultanément sans tomber dans un minimum local, respectivement avec la méthode de Newton classique et sans B&P ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

6

Il ne faut pas minimiser la fonction, mais trouver ses zéros. Donc tu appliques un Newton pour les systèmes d'équations, c'est-à-dire que tu ne dérives qu'une fois plutôt que 2. Les méthodes d'optimisation classiques essaient en fait de résoudre ∇f=0, ici tu veux f=0 tout court (et f est déjà un vecteur). Bien sûr, f=0 équivaut à min(||f||), mais en travaillant juste un peu plus sur la méthode, tu économises un niveau de dérivées (tu travailles avec ∇f plutôt que ∇²||f||) et normalement tu ne te bloqueras pas en un point avec f≠0 (enfin, tu auras quand-même un problème quand ∇f=0 parce que tu ne pourras pas résoudre l'équation de Newton en ce point, mais si tu t'éloignes de ce point de n'importe quelle manière, tu devrais pouvoir continuer). (D'ailleurs, la méthode originale de Newton était pour les équations, et puis sa généralisation pour les systèmes d'équations, ce n'est que plus tard que l'optimisation est devenue le domaine principal de recherche et que les gens ont commencé à résoudre les systèmes d'équations comme des problèmes d'optimisation, ce qui n'est pas vraiment la méthode optimale.)

Sinon, pour les hautes dimensions, si même le calcul de la matrice jacobienne (la dérivée ∇f de votre fonction vectorielle f) devient un problème, regardez du côté de la méthode rang 1 de Broyden, une méthode quasi-Newton pour les systèmes d'équations. (Là aussi, il vaut mieux éviter les divers BFGS, DFP, rang 1 symétrique, Oren-Luenberger etc., prévus pour les problèmes d'optimisation, et cherchant à approximer une matrice hessienne, toujours symétrique et semidéfinie positive. La matrice jacobienne n'a en général pas ces propriétés.)

(Je m'y connais plutôt bien dans ce domaine. smile)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

Effectivement, j'ai cru voir que tu bosses sur un système de traduction de problèmes (programmation linéaire et non-linéaire, systèmes d'équations) en langage naturel vers une représentation formelle pour solveurs. Mon domaine c'est plutôt l'optimisation comme tu l'as deviné, d'où mon approche... non optimale. Si Pen^2 choisit de résoudre des systèmes d'équations pour faire sa cinématique, je pense que tu seras de bon conseil.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

8

pen pen a t il compris un simple mot de votre conversation? grin

9

Thibaut (./7) :
Effectivement, j'ai cru voir que tu bosses sur un système de traduction de problèmes (programmation linéaire et non-linéaire, systèmes d'équations) en langage naturel vers une représentation formelle pour solveurs. Mon domaine c'est plutôt l'optimisation comme tu l'as deviné, d'où mon approche... non optimale. Si Pen^2 choisit de résoudre des systèmes d'équations pour faire sa cinématique, je pense que tu seras de bon conseil.

Chez nous, on enseigne les systèmes d'équations non-linéaires comme introduction à l'optimisation dans le cours "mathématiques numériques 2", c'est-à-dire qu'on enseigne d'abord le cas des systèmes d'équations et ensuite on passe à l'optimisation (une petite introduction dans "mathématiques numériques 2" montrant que ça se résout avec presque les mêmes méthodes, et ensuite un cours "optimisation" dédié, et puis pour les intéressés des tas de cours spécialisés sur les différentes branches de l'optimisation, certaines s'appuyant sur ces méthodes, certaines (comme l'optimisation combinatoire) sur des méthodes totalement différentes).

J'ai fait un petit projet dans le cours de TP adjoint à "mathématiques numériques 2" sur les systèmes d'équations justement (il y a quelques années déjà), et l'année dernière j'ai enseigné ce TP, donc ça a rafraîchi ma mémoire sur ce sujet. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

10

Maintenant que tu le dis, l'approche était similaire durant mon master, mais j'ai plutôt bossé et retenu ce qui m'intéressait : complexité, algorithmique, IA et surtout optimisation (notamment combinatoire).
Tu fais un doctorat à l'institut de mathématiques ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

11

Oui.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

12

Bonne chance dans tes découvertes alors wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.