Bonjour,
Je suis actuellement en charge d'un développement d'algorithme de calcul automatique de trajectoire robot industriel
Pour résoudre le problème notamment les soucis de collision avec l'environnement on utilise un algorithme d'optimisation.
La définition du problème se fait de se type
minimiser f(x)
tel que
di(x)=0
h(x)<=0
La fonction di(x) correspond aux propriétés géométriques du robot, le vecteur x correspond aux coordonnées des points permettant de représenter le robot
La fonction h(x) correspond en fait à la distance entre les segments du robot et les obstacles environnants
Pour cela on représente les bras du robot par des cylindres(un segment + un rayon) et les obstacles par des sphères(point + rayon), cylindre ou parallélépipède rectangle(rectangle + hauteur)
On calcule donc la distance entre un segment et un point, un segment et un autre segment et un segment et un rectangle dans un plan 3D puis on y ajoute les volumes
la fonction h(x) est du type Di=dij-di-dj
Avec Di distance entre le segment du robot et l'obstacle en prenant en compte les volumes
dij distance entre le segment i et l'obstacle j
di= rayon du segment i
dj= rayon ou hauteur de l'obstacle j
On a donc besoin de calculer h(x) à chaque étape de l'algorithme d'optimisation, car pour chaque step la position du robot change il faut donc recalculer les distances par rapport aux obstacles pour savoir s'il y a contact ou non.
Mon problème est donc le suivant,
Je veux savoir si c'est possible de définir une contrainte dans un problème d'optimisation du type
D<0
avec D une variable qui est définie à chaque step de l'algorithme, en gros une contrainte dynamique qui change en fonction des paramètres calculés sur le step ?
D correspondant à la distance segment obstacle car l'algorithme de calcul de distance ne se résume pas à une équation, il est donc impossible de définir une fonction du type h(x) qui reste la même quelque soit la position du robot.
J'utilise Scilab et la fonction fmincon pour résoudre le problème d'optimisation.
Merci pour votre lecture.
-----