Les
algorithmes classiques sont étendus pour prendre en compte des
contraintes supplémentaires initiales et finales (cf. l'article cité dans
la
page publis). Ces
trajectoires polynomiales peuvent être associées à des segments
rectilignes ou circulaires pour constituer des trajectoires plus
complexes. Un ensemble d'utilitaires (trajuseq.h,
trajuseq.c) permet de créer ces trajectoires complexes, y
ajouter, insérer, enlever des segments, et calculer en tout point les
diverses dérivées de la trajectoire. Enfin (trajpolc3.h,
trajpolc3.c) présente des algorithmes calculant des
segments polynomiaux passant des points désignés avec
continuité de dérivée troisième (dite continuité C3) aux jonctions. Une
précision de passage peut être affecté à chaque point, et on peut
utiliser le relâchement de cette précision pour minimiser les dérivées
secondes (en gros la courbure de la trajectoire), comme pour les
splines lissantes. Cette bibliothèque est mise en oeuvre dans un
programme graphique de test sous windows. L'exécutable
est ici et les
sources sont ici.
Ce
lien offre un fichier zippé des sources en C d'un
petit programme de visualisation 3D d'un
robot manipulateur qui utilise les librairies OpenGL et GLUT pour la
partie graphique. Les fichiers de compilation sont relatifs à
l'environnement windows. L'exécutable
correspondant est ici.
On peut
commander des mouvements élémentaires du robot au niveau de chaque axe
motorisé, ou bien des mouvement élémentaires coordonnés permettant de
déplacer l'organe terminal (o.t.) en translation ou en rotation. Le
menu contextuel d'aide indique la correspondance entre les touches du
clavier et les mouvements commandés. Par exemple en appuyant sur la
touche "z" en continu, l'o.t. monte verticalement, parallèlement à
lui-même et franchit la singularité poignet en changeant de posture (ce
qui est paradoxal car le guidage cartésien est effectué par inversion
du modèle différentiel qui normalement maintient la configuration à
l'intérieur d'un domaine de posture). En appuyant sur "Z" en continu,
il fait le chemin en sens inverse. Si on le décale latéralement d'un
coté ou de l'autre, légèrement, en appuyant une seule fois sur "x" ou
"X", puis si on recommence le mouvement vertical ("z" en continu), le
trajet passe au voisinage de la singularité poignet et se fait sans
changer de posture, mais au prix d'un retournement de l'étrier du
poignet. Ce retournement de près de 180 degrés dure un certain temps,
ce qui a pour conséquence un ralentissement de la vitesse du
mouvement vertical.