Init Rob 2
Init Rob 2
1a
Fabio MORBIDI
Laboratoire MIS
Équipe Perception Robotique
Université de Picardie Jules Verne
E-mail : [Link]@[Link]
Organisation du cours
n° Date matin/a.m. CM TD Contrôle Lieu
2
Plan du cours
• Introduction
3
Baies de commandes: robot Stäubli TX60
Contrôleur CS8C
S.M.A.
Ordinateur hôte • Nombre de DDL: 6
L'utilisateur peut créer son • Charge nominale: 3.5 kg
application sur l’ordinateur • Charge maximale: 9 kg
déporté (Stäubli Robotics Suite) • Rayon d'action: 670 mm
• Répétabilité: ± 0.02 mm
Boîtier d'apprentissage
4
Baies de commandes: robot Stäubli TX60
Contrôleur CS8C
S.M.A.
Ordinateur hôte • Nombre de DDL: 6
L'utilisateur peut créer son • Charge nominale: 3.5 kg
application sur l’ordinateur • Charge maximale: 9 kg
déporté (Stäubli Robotics Suite) • Rayon d'action: 670 mm
• Répétabilité: ± 0.02 mm
Dernière séance
Boîtier d'apprentissage
5
Baies de commandes: robot Stäubli TX60
Contrôleur CS8C
S.M.A.
Ordinateur hôte • Nombre de DDL: 6
L'utilisateur peut créer son • Charge nominale: 3.5 kg
application sur l’ordinateur • Charge maximale: 9 kg
déporté (Stäubli Robotics Suite) • Rayon d'action: 670 mm
• Répétabilité: ± 0.02 mm
Boîtier d'apprentissage
6
Boîtier d'apprentissage
• Le boîtier d'apprentissage est un terminal portable pour la commande
d’un robot qui offre un moyen pratique pour:
• Faire le déplacement du robot
• Faire l’apprentissage des points
• Exécuter les programmes
Fonctionnalités:
1. Mode button
2. Arm power on/off
3. Emergency stop
4. Movement keys
5. Movement mode
(joint, frame, etc.)
6. Speed adjust
7. Function keys
8. Keyboard
9. Navigation keys
10. Application control
(run, pause, etc.)
11. Enable button
(dead man)
12. Digital I/O buttons
13. Jog keys
8
Boîtier d'apprentissage
1. Sélection
du mode
4. Boutons de mouvement
Ces touches permettent à l’utilisateur de déplacer le robot
en fonction du mode de déplacement (voir point 5. ci-dessous)
9
Boîtier d'apprentissage
5. Sélection du mode de déplacement
6. Contrôle de vitesse
Pour contrôler la vitesse du robot manuellement (en pourcentage)
10
Boîtier d'apprentissage
7. Le menu contextuel
Utilisé pour valider l'information donnée
sur l'écran juste en haut des boutons
(F1,...,F8)
8. Clavier alphanumérique
Utile pour entrer des données
de l'application
11
Menu du boîtier
Touches fléchées pour la navigation
◦ Haut/Bas pour sélectionner les éléments
◦ Droite pour entrer/éténdre
◦ Gauche pour réduire l'affichage
Application manager
◦ Pour charger, enregistrer
et modifier les applications
• Task manager
◦ Pour le débogage
Control panel
◦ Visualisation de l’état et
paramètres du système,
IO (entrée/sortie)
Calibration
◦ Entretien du robot
Events Logger
Il permet d’acceder, par ex.
aux messages d’erreur
13
Mode manuel: « joint »
6 axes 4 axes
14
Mode manuel: « frame » et « tool » Z
Z+f
Xt
Yf
Y+ Yt
frame
tool
X+
Xf
Zt
« frame » et « tool »: mouvement manuel basé
sur un repère cartesien (système de coordonnées 3D)
Mouvement coordonné de toutes les articulations
Permet de realiser trajectoires linéaires et rotations
autour des axes du repère
Efficace pour des mouvements réduites et précis
6 quantités à définir:
◦ X, Y, Z : partie translationnelle
◦ RX, RY, RZ : partie rotationnelle
15
II. Appuyer et
Mode manuel: « point » maintenir enfoncé
Il peut être utilisé pour faire un
déplacement jusqu’à (ou par rapport à)
un point qu'a été appris auparavant
a) Déplacer le curseur vers le point
appris et b) appuyer sur Move/Hold
Il peut être aussi utilisé pour approcher I. Appuyer
les points (par rapport au repère outil)
Par rapport au
repère outil
16
Apprentissage des emplacements
Contrôleur CS8C
S.M.A.
Ordinateur hôte • Nombre de DDL: 6
L'utilisateur peut créer son • Charge nominale: 3.5 kg
application sur l’ordinateur • Charge maximale: 9 kg
déporté (Stäubli Robotics Suite) • Rayon d'action: 670 mm
• Répétabilité: ± 0.02 mm
Boîtier d'apprentissage
18
Baies de commandes: robot Stäubli TX60
Contrôleur CS8C
begin
movej(above2,flange,mNomSpeed)
movel(p[0],flange,mNomSpeed)
movel(p[1],flange,mNomSpeed)
movej(above2,flange,mNomSpeed)
movel(p[0],flange,mNomSpeed)
movec(p[2],p[1],flange,mNomSpee)
movej(above2,flange,mNomSpeed)
waitEndMove()
end
S.M.A.
Ordinateur hôte • Nombre de DDL: 6
L'utilisateur peut créer son • Charge nominale: 3.5 kg
application sur l’ordinateur • Charge maximale: 9 kg
déporté (Stäubli Robotics Suite) • Rayon d'action: 670 mm
• Répétabilité: ± 0.02 mm
Boîtier d'apprentissage
19
Création des applications
Les applications/projets contiennent des données
et des instructions utilisées par le robot pour effectuer
une tâche assignée
20
Exemple de fichier programme/fonction PGX
<?xml version="1.0" encoding="utf-8" ?>
<programList xmlns="ProgramNameSpace”>
<program name="demo" public="false”>
<description/>
<paramSection/>
<localSection/>
<source>
<code>
begin
movej(p[3],flange,mNomSpeed)
movel(p[0],flange,mNomSpeed)
movel(p[1],flange,mNomSpeed)
movej(p[3],flange,mNomSpeed)
movel(p[0],flange,mNomSpeed)
movec(p[2],p[1],flange,mNomSpeed)
movej(p[3],flange,mNomSpeed)
waitEndMove()
end
</code>
</source>
</program>
</programList>
21
Variables VAL3
Types simples
◦ num (valeurs numériques: nombres entiers ou à virgule flottante)
◦ bool (valeurs booléennes: true/false)
◦ string (chaînes de caractères: caractères Unicode)
◦ dio (entrées-sorties digitales)
◦ aio (entrées-sorties analogiques)
◦ sio (entrées-sorties sur liaison série et socket TCP/IP)
Pour plus d’infos, voir le “Manuel de Référence VAL3”, Stäubli, ver. 7, 2010 (ch. 2)
22
Variables VAL3
Exemple 1
Dans cet exemple, bBool est une variable booléenne, nPi une variable numérique
et sChaîne une variable de chaîne
bBool = true
nPi = 3.141592653
sChaîne = “ceci est une chaîne“
Exemple 2
• La valeur d‘une donnée de type structuré est définie par la séquence des valeurs
de champ entre les crochets, séparées par des virgules. Les valeurs des champs
vides sont remplacées par 0
• Un tableau ou une collection d‘un type structuré doit être initialisé élément
par élément
Par exemple, le type point est fait d‘un trsf et d‘un type config. Une variable
peut être initialisée de la manière suivante:
Comparaisons: ◦ Left
◦ Right
◦ == égalité Opérations sur
◦ Mid
◦ != inégalité les caractères
◦ Chr
◦ > supérieur à
◦ >= supérieur ou égal à ◦ Asc
◦ < inférieur à ◦ Size (renvoie le nombre
◦ <= inférieur ou égal à de valeurs accessibles
avec la variable)
24
Conteneurs
25
Conteneurs
Exemple
nPi = 3.141592653
sMois[0] = “Janvier“
sNomProduit [“D 243 064 40 A“] = “VAL 3 CdRom“
26
Instructions de contrôle
27
Instructions de contrôle
While
28
Instructions de contrôle
Do ... until
29
Instructions de contrôle
For
30
Programmes/fonctions
◦ start()
Cette fonction est toujours appelée
lorsque le programme est exécuté
◦ stop()
Cette fonction est toujours appelée
lorsque le programme est terminé
31
TaskCreate et Call
taskCreate
◦ Engendre un processus distinct
◦ Plusieurs processus peuvent être éxecutés
ensemble en parallèle
◦ L‘unité centrale (CPU) alterne entre toutes les
tâches reposant sur une priorité (entre 1 et 100)
◦ Arguments: nom de la tâche, nivéau de priorité
et nom du programme
• taskCreate sNom, nPriorité, programme()
Exemple
// Création d’une nouvelle tâche, t1, de priorité 10 pour lire un message
taskCreate "t1", 10, read(sMessage)
// On attend la fin de la tâche t1
wait(taskStatus("t1") == -1)
// Le message est utilisé
sOutput = sMessage
32
TaskCreate et Call
call
◦ L'exécution du programme est transferée
à un sous-programme
• call programme([Paramètre1], [Paramètre2])
Exemple
33
Mouvement
Instructions pA
◦ movej MOUVEMENT DU ROBOT
◦ movel pB
◦ movec pC movej, movel, movej,...
pD
pE
Séquençage pD
des mouvements pC
SEQU. pB
◦ stopMove pA MOUV.
◦ restartMove
◦ resetMotion
pB
◦ waitEndMove
pA
pC
pD
34
Différents types de mouvement
Point à point
◦ movej(point/joint location, tOutil, mDesc)
Mouvement articulaire vers un emplacement désiré spécifié
par “point location” ou “joint location”
Le 2e paramètre “tOutil” est le repère outil utilisé. Un repère
outil est fourni pour chaque commande de mouvement
Le type “mDesc” est utilisé pour définir les paramètres de
déplacement du robot. “mNomSpeed” est la variable de default
(ou built-in): elle se réfère à un mouvement normal. La vitesse
est spécifiée en %
Linéaire
◦ movel(point location, tOutil, mDesc)
Comme movej, mais mouvement A
en ligne droite. Passage sur les B
singularités: problématique
Circulaire
◦ movec(pIntermédiaire, pCible, tOutil, mDesc)
Mouvement circulaire qui part de la destination précédente et
s’achève au point pCible, en passant par le point pIntermédiare
35
Différents types de mouvement
Prochain
mouvement
“pIntermédiare”
“pCible”
Mouvement
précédente
Trajectoire circulaire
suivie par l’outil du robot
36
Différents types de mouvement
Le type mdesc permet de définir les paramètres d'un mouvement (vitesse, accélération, lissage)
Le type mdesc est un type structuré dont les champs sont, dans l'ordre:
Par défaut, une variable de type mdesc est initialisée avec {100,100,100,9999,9999,joint,50,50}
37
Différents types de mouvement
Exemple de programme
• Les deux premiers “movej” seront exécutés alors que le robot commence
son mouvement vers pA
Point de pB pD
départ
39
Exécution d'une application
40
Baies de commandes: robot Stäubli TX60
Contrôleur CS8C
S.M.A.
Ordinateur hôte • Nombre de DDL: 6
• Charge nominale: 3.5 kg
L'utilisateur peut créer son • Charge maximale: 9 kg
application sur l’ordinateur • Rayon d'action: 670 mm
déporté (Stäubli Robotics Suite) • Répétabilité: ± 0.02 mm
Boîtier d'apprentissage
41
Baies de commandes: robot Stäubli TX60
Contrôleur CS8C
S.M.A.
Ordinateur hôte • Nombre de DDL: 6
• Charge nominale: 3.5 kg
L'utilisateur peut créer son • Charge maximale: 9 kg
application sur l’ordinateur • Rayon d'action: 670 mm
déporté (Stäubli Robotics Suite) • Répétabilité: ± 0.02 mm
Boîtier d'apprentissage
42
Stäubli Robotics Suite (SRS)
43
Utilisation de la Stäubli Robotics Suite
44
Utilisation de la Stäubli Robotics Suite
Pour transférer un projet au contrôleur, il faut établir une connexion FTP
Il faut connaître l’adresse IP du contrôleur et l’username/password
◦ L’adresse IP on peut le trouver dans les menus sur le Control Panel
Entrer les informations dans l’outil FTP de la SRS
45
Utilisation de la Stäubli Robotics Suite
46
Utilisation de la Stäubli Robotics Suite
Ouvrir le projet sur la SRS
47
Utilisation de la Stäubli Robotics Suite
Modification du code et transfert au contrôleur
48
Plan du cours
• Introduction
49
Effecteur vs actionneur
50
Système d’actionnement d’un robot
Éléments du système d'actionnement d’un robot manipulateur:
• Alimentation
• Amplificateur de puissance
• Servomoteur
• Transmission (réducteurs)
51
Actionnement de l’articulation d’un robot
Pp
Pc Pa Pm Pu
Ampl. Servomot. Transmission
puissan.
53
Classification des capteurs: deux axes principaux
Capteurs passifs
Ils sont des « vrais » observateurs de l’environnement
Ils capturent les signaux qui sont émis par les autres
sources de l’environnement (par ex. caméras, lumière;
thermomètres, température; microphones, ondes sonores)
Capteurs actifs
Ils émettent de l’énergie
Object
R
Capteur
54
Caractéristiques d’un capteur (1/4)
• Linéarité
◦ La linéarité d’un capteur est une expression de la plage d’écart
entre la courbe des mesures du capteur et la courbe idéale
◦ La linéarité est souvent exprimée en pourcentage
de non linéarité:
Den(max) : max déviation
Den (max) de l’entrée
Nonlinéarité (%) = 100 ,
Xm
Xm : valeur fond échelle
de l’entrée
56
Caractéristiques d’un capteur (2/4)
Max
déviation
de l’entrée
Den(max)
Courbe des mesures
Sortie
(ou de calibration)
X
Entrée
57
Caractéristiques d’un capteur (2/4)
• Linéarité dynamique
◦ La linéarité dynamique d’un capteur est une mesure de sa
capacité à suivre des changements rapides du signal d’entrée
• Temps de réponse
◦ La sortie d’un capteur ne change pas immédiatement lorsque
le signal d’entrée varie
58
Caractéristiques d’un capteur (2/4)
Exemple:
Temps de
V stabilisation
Ts
100%
70% Bande de
tolérance
Volts
T Temps de
réponse
Temps
59
Caractéristiques d’un capteur (3/4)
• Sensibilité
◦ La sensibilité d’un capteur est définie comme la pente de la courbe
caractéristique ou idéale de sortie ( ΔY /ΔX dans la diapo suivante)
◦ De façon plus générale, elle est la valeur minimale du signal
d’entrée qui produit un changement détectable dans la sortie
capteur
entrée sortie
• Erreur de sensibilité
◦ L’erreur de sensibilité est l’écart par rapport à la pente idéale
de la courbe caractéristique (voir la courbe pointillée dans la
figure suivante)
60
Caractéristiques d’un capteur (3/4)
Ym
Portée
du capteur ΔY
ΔX
X
0
61
Caractéristiques d’un capteur (4/4)
• Sensibilité croisée
◦ Sensibilité à d’autres influences de l’environnement
(ex. les matériaux ferreux pour le compas fluxgate)
◦ Influence d’autres capteurs actifs (ex. 2 sonars face-à-face)
• Précision
◦ Liée à la reproductibilité des résultats d’un capteur
◦ Si exactement la même quantité était mesurée plusieurs fois, un
capteur idéal fournirait exactement la même valeur à chaque fois
Densité de
probabilité (pdf)
σ valeur
m : valeur mesurée
|m − v|
• Exactitude (%) = 100 1 − v : valeur réelle (référence)
v
Ym σ : écart type de la mesure
• Précision =
σ Ym : valeur fond échelle
de la sortie
63
Plus de précision
Plus d’exactitude
64
Autres caractéristiques d’un capteur …
• Coût (ex. un télémètre laser est typiquement
beaucoup plus coûteux qu’une caméra)
• Taux d’erreur
Niveau d'atténuation et/ou de perturbation
d'un signal transmis par le capteur
Capteurs actifs
1. Capteurs temps-de-vol (extéroceptifs)
2. Encodeurs rotatifs (proprioceptifs)
3. Capteurs d’effort (extéroceptifs)
Capteurs passifs
Caméras (extéroceptifs), voir le Module ME 5.2c
« Capteurs et préhenseurs en robotique »
66
1. Capteurs temps-de-vol
Information de distance, élément clé
◦ Évitement d’obstacle
◦ Cartographie, modélisation de l’environnement
Sonars et télémètres laser
Exploitation de la vitesse de propagation de l’onde
Pour une onde harmonique monochromatique:
λ
v = λf =
avec T
◦ v : vitesse de propagation de l’onde
◦ f, T : fréquence et période de l’onde, respectivement
◦ λ : longueur d’onde
1
• d = vt : distance parcourue où t est le temps-de-vol
2
67
Capteurs temps-de-vol
Caractéristiques
◦ Vitesse du son : 0.3 m/ms (c’est-à-dire, 300 m/s)
Sonar : 3 m 10 ms
◦ Vitesse de la lumière : 0.3 m/ns (c’est-à-dire, 300000 km/s)
Télémètre laser : 3 m 10 ns
Besoin d’électronique très rapide
Télémètres laser beaucoup plus chers
et difficiles à concevoir
68
Exemple: sonar
Carte électronique
Émetteur
Chirp
Récepteur
Objet
Onde d’écho
Parallex PING
69
Exemple: sonar
Fréquences typiques: 40-180 kHz
Génération de l’onde sonore
◦ Piézo-transducteur
◦ Émetteur et récepteur séparés ou non
Le rayon sonore se propage dans un cône
◦ Angles d’ouverture entre 20° et 70°
◦ Portée: 0.1 m - 5 m
cône de mesure
70
Exemple: sonar
Problèmes pratiques:
◦ Certaines surfaces absorbant le son
◦ Surface loin d’être perpendiculaire à la direction du son:
réflexion spéculaire !
ok
Matériau ?! Matériau
poreux dur
71
71
2. Encodeurs rotatifs
73
Encodeurs rotatifs: exemples
74
Encodeurs rotatifs: exemples
I
État Cn A Cn B
s1 haut bas
A s2 haut haut
B
s3 bas haut
s4 bas bas
75
3. Capteurs d’effort
• Inconvénients :
• Coût élevé
• Étalonnage
• Fragilité
• Plages de mesures faibles
76
Exemple: capteur d’effort à 6 DDL FT 150 de Robotiq
Forces Couples
Épaisseur: 37.5
Trou
Poids: 650 g
Unité : mm
77
Exemple: capteur d’effort à 6 DDL FT 150 de Robotiq
Applications
78
Exemple: capteur d’effort à 6 DDL FT 150 de Robotiq
79
Capteurs d’effort: applications
1) Mains robotiques
iCub, IIT
Main Robonaut, Nasa
Main DLR
Capteur/système
Classification (utilisation typique) PC ou EC A ou P
de perception
Interrupteurs de contacts,
Capteurs tactiles (détection de EC P
bumpers
contact physique ou de proximité,
interrupteurs de sécurité) Barrière optique EC A
Encodeurs à balais PC P
Potentiomètres PC P
Encodeurs inductifs PC A
Encodeurs capacitifs PC A
83
Capteur/système
Classification (utilisation typique) PC ou EC A ou P
de perception
Compas EC P
Inclinomètre PC A/P
GPS EC A
Balises réflectives EC A
84
Capteur/système
Classification (utilisation typique) PC ou EC A ou P
de perception
Capteurs de réflectivité EC A
Capteur à ultrasons EC A
Niveaux hiérarchiques de
l’architecture fonctionnelle
d’un robot industriel
85
Architecture de contrôle
Capacité de
calcul autonome
87
Choix des repères
zb yb
Ob xb
88
Choix des repères
Si l’outil est une pince:
pince
Oe
objet
ye
ze
• Origin Oe : au centre de la pince
• Axe ze : direction de rapprochement de l’object à saisir
• Axe ye : orthogonal à ze dans le plan de glissement des doits de la pince
• Axe xe : orthogonal aux autres axes pour avoir un repère direct
θ1 Ob
base