Obtenir le modèle géométrique inverse
Introduction
Contrairement au modèle géométrique direct dont le but est d’exprimer les coordonnées cartésiennes du 'end_effector' en considérant les angles de rotation des articulations, le modèle géométrique inverse exprime le déplacement angulaire des articulations en considérant les coordonnées cartésiennes du 'end_effector' dans un système de coordonnées galiléennes.
Remarque :
'end_effector' est le nom de l'effecteur finale - Sur le robot dont nous disposons, il s'agit d'une pince.
Fondamental : Travail à réaliser
Dans le même script que la section précédente, créez un objet « inverseKinematics » pour le modèle Ned2.
Cet objet représente le solveur de la cinétique inverse de Ned2.
ik = inverseKinematics("RigidBodyTree", ned);
A partir d’une position aléatoire, trouver les angles d’articulation nécessaires pour atteindre la position initiale
Pour cela, vous devez définir :
Pose : la pose du end_effector, spécifiée comme une matrice de transformation 4x4 homogène (ie la position à atteindre)
Poids : les poids sur l’erreur de la pose désirée [r p y x y z].
InitialGuess : estimation initiale de la configuration du robot, spécifiée comme un tableau ou un vecteur.
Fondamental : Travail à réaliser
Ajoutez les lignes suivantes dans votre script :
weight = [0.1 0.1 0 1 1 1];
initialguess = ned.homeConfiguration
pose_M = [0.25 0 0.3];
tform = trvec2tform(pose_M);
configSoln = ik("end_effector", tform, weight,initialguess);
cell = struct2cell(configSoln);
Joint = cell(2,:,:);
matrixJoints = cell2mat(Joint);
Relevez les valeurs de le vecteur des articulations ;
Entrez les valeurs de la position à atteindre pose_M dans NiryoStudio (Onglet Pose) ;
Cliquez sur Déplacer Pose ;
Ouvrez l'onglet Axes ;
Cliquez sur prendre les valeurs actuelles du robot ;
Relevez les valeurs de différents joints ;
Comparez avec le vecteur des articulations.
Proposez et mettez en oeuvre un protocole permettant d'identifier le point du robot qui atteint la position désirée.