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.

FondamentalTravail à 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.

1
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.

FondamentalTravail à réaliser

  • Ajoutez les lignes suivantes dans votre script :

1
weight = [0.1 0.1 0 1 1 1];
2
initialguess = ned.homeConfiguration
3
pose_M = [0.25 0 0.3];
4
tform = trvec2tform(pose_M);
5
configSoln = ik("end_effector", tform, weight,initialguess);
6
cell = struct2cell(configSoln);
7
Joint = cell(2,:,:);
8
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.