0% ont trouvé ce document utile (0 vote)
101 vues90 pages

Init Rob 2

Ce document présente l'organisation et le plan d'un cours sur l'automatisme et la robotique dispensé par Fabio Morbidi à l'Université de Picardie Jules Verne. Il détaille les différentes sessions, les sujets abordés, ainsi que les fonctionnalités et l'utilisation du boîtier d'apprentissage pour le robot Stäubli TX60. Le document inclut également des exemples de programmation et des types de variables utilisés dans le langage VAL3.

Transféré par

omarchrif
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
101 vues90 pages

Init Rob 2

Ce document présente l'organisation et le plan d'un cours sur l'automatisme et la robotique dispensé par Fabio Morbidi à l'Université de Picardie Jules Verne. Il détaille les différentes sessions, les sujets abordés, ainsi que les fonctionnalités et l'utilisation du boîtier d'apprentissage pour le robot Stäubli TX60. Le document inclut également des exemples de programmation et des types de variables utilisés dans le langage VAL3.

Transféré par

omarchrif
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ME 5.

1a

Licence Professionnelle Automatisme et Robotique

Session 2021 - Amiens

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

1 Mer. 14 oct. 2020 matin CM1 Promeo

2 Ven. 16 oct. 2020 matin CM2 TD1 Promeo

3 Lun. 9 nov. 2020 a.m. CM3 TD2 À distance

4 Jeu. 12 nov. 2020 matin CM4 TD3 À distance

5 Ven. 27 nov. 2020 matin DS

6 Jeu. 10 déc. 2020 matin TP1 Dpt. EEA

7 Mer. 13 jan. 2021 matin TP2 Dpt. EEA

8 Ven. 15 jan. 2021 matin TP3 Dpt. EEA

Matin: 8h30-12h15, pause 10h20-10h35

Après-midi: 13h15-17h00, pause 15h10-15h25

Chargé de TD et TP: Julien Ducrocq (laboratoire MIS, UPJV)

2
Plan du cours
• Introduction

• Constituants et caractéristiques d’un robot

• Gammes de robots et secteurs d’activités

• Les baies de commandes, le boîtier d’apprentissage,


les modes et la programmation d’un robot

• Actionneurs et capteurs d’un robot

• Repères et transformations homogènes

• Étude de cas: cellule robotisée de soudage

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

• Le terminal de programmation est un outil très utile, qui permet à l'utilisateur


de s’éloigner du terminal de l'ordinateur hôte et de contrôler le robot à distance
Interrupteur Arrêt d'urgence
de corps mort

• Lorsque le boîtier est activé,


il faut appuyer sur l’interrupteur
de corps mort pour autoriser les
mouvements. En le relâchant,
le robot s'arrête immédiatement

• C’est également le cas lors


d’un appui sur le bouton rouge
d'arrêt d'urgence
Boîtier d'apprentissage:
recto (à droite) et verso (à gauche)
7
Boîtier d'apprentissage

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

2. Bouton de power on/off


Cette touche permet d'activer/couper l'alimentation électrique du robot

3. Bouton d'arrêt d'urgence


L'arrêt d'urgence doit être poussé afin de bloquer le robot,
peu importe la tâche qu'il accomplit ou la configuration réelle

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

9. Boutons d'interface et de navigation


Une interface typique avec les boutons
de haut, bas, droite, gauche ainsi que
les boutons sélection de menu, Esc, Aide

10. Les boutons de l’application


Ils sont les boutons qui permettent d'exécuter une application programmée
• Move/Hold : bouton de lecture/pause
• Run : bouton pour charger l'application à exécuter
• Stop : bouton pour mettre fin à l'application courante

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

Source: “VAL3 basics”, S. van Delden, USC Upstate 9. Touches


12
Mode manuel

 Mettre sous tension le bras


◦ Touche corps mort
◦ Bouton d'alimentation du bras
 Vitesse
◦ Limitée à 250 mm/s

Remarque: en mode manuel


le robot peut être « déplacé
à la main »

13
Mode manuel: « joint »

 Déplace chaque articulation


séparément
 Simple et facile à comprendre
 Grands mouvements rapides
du robot dans la cellule

 6 axes (robot TX60)


◦ Un angle pour chaque axe
4 1
3
 4 axes (robot SCARA) 5
3
◦ Un angle pour les
6
articulations 1, 2 et 4 2
2
◦ Une distance pour 1 4
l‘articulation 3

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

 Appuyer sur New pour créer une


nouvelle variable « location »
◦ Location point
 X-Y-Z et Yaw-Pitch-Roll sont stockés
◦ Location articulation
 Angles des articulations sont stockés
 Après avoir déclaré la nouvelle variable,
pour la mettre en place appuyer sur Here
 Sélectionner l‘outil
◦ N.B. : Il faut définir une transformation
appropriée entre le repère de la flange
et le repère outil du robot
◦ N.B. : Yaw-Pitch-Roll en VAL3 sont
rotations autour des axes X-Y-Z,
respectivement
x
Yaw: lacet
Pitch: tangage
xp
z Roll: roulis
zp 17
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

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

 Un dossier avec fichiers xml:


◦ Un fichier projet (PJX)
◦ Un fichier de données (DTX)
◦ Plusieurs fichiers de programme/fonction (PGX)
 Diverses fonctions peuvent être définies
sous le même projet

 Les applications/projets peuvent être:


o Stockées sur un disque dur
o Chargées dans la mémoire pour être exécutées

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)

 Types structurés (structures)


◦ trsf (pour les transformations géometriques cartésiennes)
◦ joint (pour les positions articulaires du robot)
◦ point (pour les positions cartésiennes de l‘outil)
◦ frame (pour les repères géométriques cartésiens)
◦ config (pour les configurations du robot)
◦ tool (pour les outils montés sur le robot)
◦ mdesc (pour les paramètres de déplacement du robot)

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:

pPosition = {{100, -50, 200, 0, 0, 0}, {sfree, efree, wfree}}

où sfree “configuration de l‘épaule libre“, efree “configuration du coude libre“


et wfree “configuration du poignet libre“ du robot
23
Opérateurs Instructions
 Mathématiques: Quelques exemples:
◦ = affectation ◦ Abs
◦ + somme, concaténation ◦ Min
◦ - soustraction ◦ Max
◦ * multiplication ◦ Limit (renvoie une
◦ / division valeur bornée)
◦ % module ◦ Power (renvoie la
◦ ! négation puissance d‘un nombre)

 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

 Le conteneur de données définit la manière dont


les valeurs sont stockées dans les données:

◦ Un conteneur élément se compose d‘une valeur unique:


booléenne (true/false), numérique ou chaîne (string)

◦ Un conteneur tableau se compose d‘un ensemble


de valuers identifiées par 1, 2 ou 3 indices entiers
◦ L‘indice initial dans les tableaux est toujours 0

◦ Un conteneur collection se compose d‘un ensemble


de valuers identifiées par une clé représentée par
une chaîne de caractères

25
Conteneurs

Remarque: un conteneur tableau à 1 dimension avec une seule


valeur (index 0) est considéré comme un conteneur élément

 Exemple

Initialisation de variables de type simple avec différents


conteneurs (élément, tableau et collection, respectivement):

nPi = 3.141592653
sMois[0] = “Janvier“
sNomProduit [“D 243 064 40 A“] = “VAL 3 CdRom“

26
Instructions de contrôle

 If Exemple: conversion d’un jour écrit dans


un string (sDay) en un num (nDay)

27
Instructions de contrôle

 While

28
Instructions de contrôle

 Do ... until

29
Instructions de contrôle

 For

30
Programmes/fonctions

 Une application peut être composée de plusieurs


fonctions qui peuvent communiquer entre eux
 Il y a deux fonctions qui sont toujours créées
lorqu’une nouvelle application est générée:

◦ 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é

• On peut placer toute sorte d’instruction/code VAL3


entre ces deux fonctions

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

Exemple: mouvement circulaire (movec(...))

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

sOutput = “Mon programme”


[Link] = 80
[Link] = joint À quelle distance (en millimètres) du point d’arrivée on quitte
[Link] = 10 la trajectoire nominale (début du lissage, “leave”) et à quelle
distance on la rejoint (fin du lissage, “reach”)
[Link] = 10
movej(pA, tOutil, mDesc)
movej(pB, tOutil, mDesc)
waitEndMove()
movej(pC, tOutil, mDesc)
movej(pD, tOutil, mDesc)

• Les deux premiers “movej” seront exécutés alors que le robot commence
son mouvement vers pA

• Puis l’exécution du programme sera bloquée sur l’instruction “waitEndMove()”


jusqu’à ce que le robot soit stabilisé au point pB

• Un fois le mouvement du robot stabilisé en pB, le programme reprendra


son exécution
38
Différents types de mouvement
 Exemple de programme

Vraie trajectoire suivie par le robot

pA Cycle avec interruction du lissage pC


(grâce à l’instruction waitEndMove)

Point de pB pD
départ

39
Exécution d'une application

 Défiler pour charger du disque


ou pour créer un nouveau
programme et le stocker
dans le disque dur
 Il faut être en mode Local pour
pouvoir lancer le programme
◦ Appuyer sur le bouton Mode pour
faire défiler les différents modes
 Appuyer le bouton Run et
choisir le programme à lancer
 Si le programme implique le
mouvement du robot, il faut
aussi appuyer Move/Hold

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)

◦ Du code VAL3 peut être


aussi développé avec la
Stäubli Robotics Suite
◦ La SRS est un IDE
(Integrated Development
Environment) qui est
installé sur un ordinateur
deporté (hôte)
◦ La SRS est plus conviviale
et facile à utiliser que le
boîtier
◦ Programmation hors ligne
• Modification
• Test
• Transfert de programme

43
Utilisation de la Stäubli Robotics Suite

 Un projet peut être envoyé par FTP entre le contrôleur CS8C


et l’ordinateur sur lequel est installée la SRS (et vice versa)

 La SRS est un environnement de développement flexible


qui permet de créer des projets complexes sans difficulté

 Toutefois, il faut encore apprendre les points grâce


au contrôleur …

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

 Trouver le projet qu’on souhaite transférer

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

• Constituants et caractéristiques d’un robot

• Gammes de robots et secteurs d’activités

• Les baies de commandes, le boîtier d’apprentissage,


les modes et la programmation d’un robot

• Actionneurs et capteurs d’un robot

• Repères et transformations homogènes

• Étude de cas: cellule robotisée de soudage

49
Effecteur vs actionneur

• Un effecteur est tout dispositif (contrôlé par un robot)


pouvant affecter l’environnement
• Grande variété d’effecteurs: pince,
ventouse, main, scalpel, etc.

• Un actionneur est le mécanisme qui


permet à l’effecteur d’exécuter une action
• Les actionneurs incluent typiquement
les moteurs électriques, hydrauliques,
pneumatiques, etc.

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)

Deux types de servomoteurs sont généralement utilisés:


• Servomoteurs électriques pour l’actionnement des
articulations des manipulateurs de petite ou moyenne taille
(par ex. le Stäubli TX60)
• Servomoteurs hydrauliques pour
l’actionnement de manipulators KUKA KR
1000 titan
de grande taille
(charge max:
1300 kg)

51
Actionnement de l’articulation d’un robot

Alimen- Composants d'un système


tation d'actionnement d’une articulation

Pp

Pc Pa Pm Pu
Ampl. Servomot. Transmission
puissan.

Pda Pds Pdt


Articulation

Pp : puissance fournie par la source primaire (de la même nature que Pa )


Pc : puissance (typiquement électrique) associée au signal de la loi de commande

Pa : puissance à fournir au moteur (de type électrique, hydraulique ou pneumatique)

Pm : puissance mécanique générée par le moteur

Pu : puissance mécanique requise par l’articulation pour mettre en place le mouvement


Pda , Pds , Pdt : pertes en puissance par dissipation dans les conversions effectuées
par l’amplificateur, le moteur et la transmission (train d’engrenages)
52
Classification des capteurs: deux axes principaux
Capteurs proprioceptifs: ils permettent de mesurer des
quantités qui caractérisent l’état interne d’un robot
• Encodeurs et résolveurs pour la mesure de la position d’une articulation
• Tachymètres pour la mesure de vitesse des articulations
• Capteurs pour la mesure des moments au niveau des articulations

Capteurs extéroceptifs: le but de ces capteurs est d'extraire


l’information qui caractérise l'interaction du robot avec
l'environnement
• Capteurs d’effort pour la mesure
de force/couple sur l’outil
• Capteurs de distance/proximité pour
la detection d’objects dans l’espace de travail
(par ex. capteurs à ultrasons, télémetrès lasers)
• Capteurs de vision pour mesurer les
Capteur d’effort
paramètres caractéristiques des objects sur l’outil d’un
(par ex. caméras) manipulateur

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

 L’énergie est réfléchie par l’environnement au capteur.


Il existe toujours un élément émetteur-récepteur (par ex.
sonars, télémètres laser)

Object
R

Capteur
54
Caractéristiques d’un capteur (1/4)

• Champ de perception/vue (ex. 53° horiz. pour une caméra)


• Portée ou plage de mesure [« range » en anglais]
o Valeurs max et min d’un paramètre qui sont mesurables
(ex. de 4 à 0.05 mètres pour un télémètre laser)
• Plage dynamique [« dynamic range » en anglais]
o Rapport entre la valeur maximale d’entrée et la valeur
mesurable minimale d’entrée
 Exprimé en décibel «dB» (rapport de « puissances »)
 
P P : Puissance maximale
LP = 10 log10 dB où
P0 P0 : Puissance mes. minimale
 
Par ex. mesure de 20
LP = 10 log10  43 dB
puissance de 1mW à 20W 0.001
55
Caractéristiques d’un capteur (2/4)
• Résolution
◦ La plus petite variation ΔX de l’entrée qui peut être détectée
en sortie (ex. 0.1° pour un encodeur optique)

• Fréquence ou largeur de bande


◦ Débit de mesures du capteur
◦ Borne supérieure due à la fréquence d’échantillonnage
(cf. le théorème de Shannon)
◦ Délai (déphasage) possible

• 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)

Courbe idéale (droite


obtenue par la méthode
des moindres carrés)

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

◦ Au contraire, la sortie met un certain temps pour changer


d’état, appelé le temps de réponse (T dans la figure suivante)

◦ Le temps de réponse peut être défini comme le temps


nécessaire pour que la sortie du capteur passe de son
état précédent à une valeur finale dans une certaine
bande de tolérance

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)

• Exactitude (opposée à l’erreur) [« accuracy » en anglais]


◦ Degré de conformité entre la mesure et la valeur réelle
◦ Elle est exprimée en pourcentage (%) de la valeur réelle

• 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

Attention: exactitude n’est pas synonyme de précision !


62
Caractéristiques d’un capteur (4/4)
v
m

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

Pas exact Exact


Précise Précise

Pas exact Exact


Pas précise Pas précise

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

• Robustesse (ex. par rapport aux champs


électromagnétiques dans l’environnement)

• Charge de calcul (ex. une caméra implique


plus de traitements de données qu’un sonar)

• Taille, poids, consommation énergétique,


interface, étanchéité, etc.
65
Quelques exemples de capteurs

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

 La qualité dépend de:


◦ Inexactitudes dans la mesure du temps-de-vol
◦ Angle d’ouverture du rayon transmis (pour les sonars)
◦ Interaction avec la cible (surface, réflexions spéculaires/diffuses)
◦ Variation de la vitesse de propagation (son suivant le milieu)

68
Exemple: sonar

• Principe de fonctionnement du sonar

Carte électronique
Émetteur

Chirp
Récepteur

Paquet d’onde Écho


initiale

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

Distribution d’intensité Amplitude [dB]


non uniforme
70

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

Un encodeur rotatif est un dispositif qui convertit la position angulaire


d’un axe ou d’un arbre en code analogique ou binaire

• Encodeurs mecaniques et optiques (les plus utilisés en robotique)

• Deux types d’encodeurs:

• Absolus: la sortie de l’encodeur indique


la position courante de l’axe (transducteur
d’angle). L’information n’est pas perdue
lorsque l'alimentation est coupée: elle est
disponible à nouveau lorsque l’alimentation
est rétablie

• Incrémentaux (ou relatifs): la sortie


de l’encodeur nous informe du mouvement
de l’axe. Cette information est typiquement
traitée ultérieurement pour obtenir des
Encodeur optique
mesures de vitesse, distance ou position
incrémental
72
Encodeurs rotatifs: exemples

• Encodeur optique absolu avec


codage binaire (3 bits; noir 1, blanc 0) 0 0 0
• Une paire émetteur/récepteur par bit

• Encodeur optique absolu avec


codage Gray (BRGC: binary-reflected
Gray code), (3 bits; noir 1, blanc 0)

73
Encodeurs rotatifs: exemples

• Encodeur optique absolu avec codage


binaire (8 bits; codage mixte sur 4 + 4 bits)

• Encodeur optique incrémental

74
Encodeurs rotatifs: exemples

• Encodeur optique incrémental en quadrature

• Deux canaux: la relation de phase entre les trains


d’impulsions sur les canaux A et B permet de déterminer
le sens de rotation
• Une fente unique sur la piste externe produit une impulsion
(index, I) de référence par révolution

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

• Ils permettent de mesurer les efforts en force et/ou


en couple (par ex. sur l’effecteur du robot)

• Capteur actif: il traduit une variation de sa structure interne


(en raison d’une force/couple) en signal électrique

• Inconvénients :
• Coût élevé
• Étalonnage
• Fragilité
• Plages de mesures faibles

76
Exemple: capteur d’effort à 6 DDL FT 150 de Robotiq
Forces Couples

• Mésure du torseur d’effort (Fx, Fy, Fz, Mx, My, Mz)


• Compatible avec les robots Universal Robots, Yaskawa,
Fanuc, Stäubli et ABB (environnement ROS)

Épaisseur: 37.5

Trou

Poids: 650 g

Unité : mm
77
Exemple: capteur d’effort à 6 DDL FT 150 de Robotiq

Applications

Assemblage Guidage de Finition


mains robotisées

78
Exemple: capteur d’effort à 6 DDL FT 150 de Robotiq

Caractéristiques techniques du capteur

Fx, Fy, Fz ± 150 N


Plage de mesure
Mx, My, Mz ± 15 Nm
Fx, Fy, Fz ± 0.2 N
Résolution effective
Mx, My, Mz ± 0.02 Nm
Fx, Fy, Fz (combinées) ± 0.5 N
Bruit du signal
Mx, My, Mz (combinées) ± 0.03 Nm
Débit de données
100 Hz
en sortie
Tension d'entrée 6-28 V-DC
Puissance absorbée
2W
maximale
Interface électrique RS-485, RS-232, USB

79
Capteurs d’effort: applications
1) Mains robotiques

iCub, IIT
Main Robonaut, Nasa

Main DLR

Someya Lab, Univ. de Tokyo

Peau flexible avec une matrice


intégrée de transistors organiques 80
Capteurs d’effort: applications
2) Robots industriels collaboratifs (“Cobots”)
Capteurs de couple
sur les 7 articulations
des robots

LBR IIWA (“lightweight”, “intelligent


industrial work assistant") de KUKA Panda de FRANKA EMIKA
78
82
TD1 A : Actif
Tableau récapitulatif : P : Passif
PC : Proprioceptif
typologies de capteur
EC : Extéroceptif

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

Capteurs de roue/moteur Encodeurs optiques PC A


(vitesse et position de roue/moteur)
Encodeurs magnétiques PC A

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

Capteurs d’orientation (orientation du


Gyroscope PC P
robot en relation à un référentiel fixe)

Inclinomètre PC A/P

GPS EC A

Balise active optique


EC A
ou radio
Basé balise (localisation dans
un référentiel fixe)
Balise active à ultrasons 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

Télémétrie active (réflectivité, temps


Télémètre laser EC A
de vol et triangulation géométrique)

Triangulation optique (1D) EC A

Lumière structurée (2D) EC A

Capteurs de mouvement/vitesse Doppler radar EC A


(vitesse relative à des objets
statiques ou fixes) Doppler sonore EC A

Capteurs de vision (télémétrie


Caméras à capteur
visuelle, analyse de l’image complète, EC P
CCD/CMOS
segmentation, reconnaissance d’objet)
Architecture fonctionnelle

Niveaux hiérarchiques de
l’architecture fonctionnelle
d’un robot industriel
85
Architecture de contrôle

Capacité de
calcul autonome

Modèle général de l'architecture hardware d’un système


de contrôle d'un robot industriel
86
Plan du cours
• Introduction

• Constituants et caractéristiques d’un robot

• Gammes de robots et secteurs d’activités

• Les baies de commandes, le boîtier d’apprentissage,


les modes et la programmation d’un robot

• Actionneurs et capteurs d’un robot

• Repères et transformations homogènes

• Étude de cas: cellule robotisée de soudage

87
Choix des repères

zb yb
Ob xb

Problème: comment positionner les différentes systèmes


de coordonnées (repères) sur les articulations d’un robot
à partir du repère de la base Ob − xb yb zb ?

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

Pour un choix systématique des repères sur toutes les articulations


d’un robot on utilise la convention de Denavit-Hartenberg (DH)
89
Convention de DH et modèle
géométrique direct
ne effecteur
θ4 se
Oe a e
d3
Robot générique à θ2 pbe
n articulations

θ1 Ob
base

• Par rapport au repère de la base Ob − xb yb zb , le modèle géométrique direct


est exprimé par la matrice de transformation homogène 4 × 4:
 
b b b
b n e (q) s e (q) a e (q) pbe (q)
Te (q) =
0 0 0 1

q ∈ Rn : vecteur des variables des articulations
n be , s be , a be : vecteurs unitaires du repère de l’effecteur par rapport à la base
pbe : vecteur qui décrit l’origine du repère de l’effecteur par rapport à la base
90

Vous aimerez peut-être aussi