Académique Documents
Professionnel Documents
Culture Documents
VREP
Interface
Les boutons
1
05/02/16
Les boutons
Repères …
Rota<on alpha/x
2
05/02/16
Rota<on beta/y
Rota<on gamma/z
Transla<on
• Même principe que les rota<ons
• AKen<on si modifica<on rota<on transla<on
– Ces modifica<ons sont mémorisées dans les
propriétés de l’objet
– Modifica<ons possibles dans la fenêtre de
dialogue qui s’ouvre quand on sélec<onne l’un
des boutons.
• Repère propre de l’objet
• Repère absolu
3
05/02/16
Les éléments
4
05/02/16
Propriétés
• Collidable: les objets ayant ceKe propriété sont testés
par l’algorithme de collision
• Measurable: l’algoritme de calcul des distances prend
en compte l’objet ayant ceKe propriété
• Detectable: l’objet peut-être détecté par les capteurs
de proximité
• CuKable: l’objet peut-être évidé
• Renderable: l’objet sera vu par les capteurs de vision
• Viewable: l’objet peut-être vu dans les différentes vues
5
05/02/16
Chaine cinéma<que 2
6
05/02/16
Programma<on
• Script : écrit en LUA
• Ou
– Programme extérieur
• Python
• C/C++
• Matlab
• java
Fonc<on bloquante
7
05/02/16
Data streaming
Mode synchrone
8
05/02/16
Exemple 1 Matlab
• Contrôle d’un Scara avec Capteur de Vision
– Côté Vrep
• Introduire un Scara
• Supprimer le contenu du script
• Ajouter un capteur de vision
• Associer une interface de visualisa<on de l’image
Côté Matlab 1
vrep=remApi('remoteApi'); % Indispensable
vrep.simxFinish(-1); % on ferme la connexion
%Démarrage de la connexion,
clientID=vrep.simxStart('127.0.0.1',19997,true,true,5000,5);
% true : la fonc<on aKend la connexion jusqu'au <me out
% true : si la connexion est perdue pas d'aKente d'une seconde tenta<ve
% 5000 <meout en ms
% 5 valeur recommandée pour le renvoi des data
Côté Matlab 2
if (clientID>-1) % on vérifie que la liaison est établie
%On récupère le handle des objets que l'on va manipuler
%Les noms sont ceux figurant dans le fichier Matlab_scara
[~,axis1]=vrep.simxGetObjectHandle(clientID,'MTB_axis1',vrep.simx_opmode_oneshot_wait);
….
% Démarrage du simulateur V-REP (rien ne s'exécute encore)
[errorCodeStart]=vrep.simxStartSimula<on(clientID,vrep.simx_opmode_oneshot_wait);
% on peut vérifier que tout se passe bien la valeur errorCodeStart = 0 si tout est ok
9
05/02/16
Côté Matlab 3
%commande des ar<cula<ons posi<on 1
[~]=vrep.simxSetJointPosi<on(clientID,axis1,deg2rad(30),vrep.simx_opmode_oneshot_wait);
[~]=vrep.simxSetJointPosi<on(clientID,axis2,deg2rad(15),vrep.simx_opmode_oneshot_wait);
Contrôle bubble
• Côté vrep
– Rien de par<culier
• Côté Matlab
– Contrôle iden<que
– On ajoute un streaming
Streaming
%On récupère le handle des objets que l'on va manipuler SensingNos
[~,Sensor1]=vrep.simxGetObjectHandle(clientID,'SensingNose',vrep.simx_opmode_oneshot_
wait)
10
05/02/16
Streaming
% on lit le capteur
[~,State1,~,LookingAt1,~]=vrep.simxReadProximitySensor(clientID,Sensor1,vrep.simx_opmo
de_buffer);
% le code retourné, ici pas pris en compte ~
% detec<onState: false=no detec<on
% detectedPoint: les coordonnées du point détecté dans le repère capteur
% ici pas pris en compte (~)
% detectedObjectHandle: le handle de l'objet détecté
% detectedSurfaceNormalVector: le vecteur nomal (normalizé) de la surface détectée
repère capteur, ici pas pris en compte (~)
Compléments
% on récupère le temps de VREP
CmdTime(i)=vrep.simxGetLastCmdTime(clientID);
[~]=vrep.simxSetJointTargetVelocity(clientID,Motor2,-
deg2rad(Vitesse),vrep.simx_opmode_oneshot_wait);
11
05/02/16
12
05/02/16
Contrôle du simulateur
• simxStart lance le début de la simula<on (pas
d’effet)
• simxStartSimula;on relance la simula<on
après une pause ou une reprise
• simxStopSimula;on
• simxSynchronous Fixe le mode synchrone
• simxSynchronousTrigger fait démarrer
13
05/02/16
Suivi de chemin
• Edi<on
– N’importe où dans la fenêtre de V-REP, clic droit,
– Add àPathàSegment type
– Path étant sélec<onné (àarborescence)
– Sélec<onner l’éditeur de chemin, icône
– Une nouvelle fenêtre s’ouvre
• Clic droit sur le dernier point
• Insert new control point axer selec<on
Suivi de chemin
• Edi<on
– Sélec<on Object/Item Shix
– Déplacer le point de contrôle créé
– Répéter les opéra<ons
Suivi de chemin
• Edi<on
– Dans la fenêtre Path Edi<on, cliquer Path is
closed, vous pouvez régler les coefficients des
courbes de Béziers
– Fermer la fenêtre Path Edi<on, répondre yes à la
ques<on
14
05/02/16
Suivi de chemin
• Edi<on
– Le chemin étant sélec<onné, ouvrir les propriétés
– Désélec<onner
• how orienta;on of points,
• Show path line
• Show current posi;on on path
Suivi de chemin
• Edi;on
– Aller dans Show Path Planning Dialog,
– Sélec;onner
• Path shaping enabled
• Horizontal segment
• Scaling factor à 4
– Ajuster la couleur Adjust Color Ambient /diffuse
component
Applica<on E-Puck
• Ajouter un epuck dans la scène, en le plaçant
sur le Path que l’on vient de définir.
• Cliquer sur les 3 barres ver<cales, une fénêtre
de paramètres s’ouvre comme sur la figure
suivante :
15
05/02/16
Applica<on E-Puck
– Sélec<onner opMode et meKre
0 dans Value (suivi de chemin)
– Lancer la simula<on, l’E-puck
suivra le chemin.
16