Mise en place de limites custom pour les objets Constraint pré-définis (ex : JointConfiguration constraint)
Pour les contraintes pré-définies (JointConfiguration, JointVelocity), modifier les limites de ces contraintes implique d'avoir à les re-modifier en permanence avant l'appel à JointVelocityProblem->update() (via constraint->setUpperBounds / setLowerBounds), comme si il s'agissait de contraintes custom. C'est aussi nécessaire même si ces limites sont fixes (ex : % de vitesse articulaire max).
La raison est que à chaque appel de constraint->update(), les contraintes mettent à jour leurs limites à partir des informations du modèle, et non à partir des limites fixées par l'utilisateur. (ex : Constraints/JointConfiguration/JointVelocityOutput.hpp, l.64)
Deux fix (peut-être non idéaux) existent aujourd'hui :
- Modifier les limites du modèles (mais perte d'information sur la valeur d'origine de la limite, issue de l'URDF)
- Pour chaque update, remettre à jour les limites de la contrainte concernée (setUpperBound / setLowerBound) avant l'appel à JointVelocityProblem->update() (e.g même démarche que pour une contrainte custom). Solution plus cohérente avec ce que l'on fait d'habitude avec un QP, mais un peu dommage (on passe notre temps à réattribuer une valeur fixe, car on passe par accident notre temps à la modifier?)
Un fix est-il possible, ou est-il possible d'indiquer la démarche à appliquer dans ce cas?