Академический Документы
Профессиональный Документы
Культура Документы
-ELE4203-
Jean-Philippe Roberge - Décembre 2012
Cours #13
3
Jean-Philippe Roberge - Décembre 2012
Le robot de la semaine:
Rat brain-driven Robot
4
Jean-Philippe Roberge - Décembre 2012
Des robots partiellement biologiques…
5
Jean-Philippe Roberge - Décembre 2012
Retour sur le cours #12
6
Jean-Philippe Roberge - Décembre 2012
Cours #12
Cinématique des robots mobiles: un autre exemple (5)
10
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman:
Estimation d’une quantité fixe à l’aide d’un lot de données (2)
T
J = (YK − HxˆK ) R −1 (YK − HxˆK )
−1
xˆK = H T R −1 H H T R −1YK
11
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman:
Estimation d’une quantité fixe par un processus récursif (1)
yK +1 = H K +1 x + vK +1
Encore une fois, nous cherchons la meilleure estimation de x que nous pouvons
faire à partir des mesures y. Pour ce faire, nous chercherons à minimiser:
T R 0 YK − HxˆK +1
−1
T
J = (YK − HxˆK +1 ) ( yK +1 − H K +1 xˆK +1 )
0 R −1 yK +1 − H K +1 xˆK +1
K +1
L’estimation de x qui minimise la valeur de cet indicateur est donné par:
xˆK +1 = xˆK + K K +1 [ yK +1 − H K +1 xˆk ]
−1 −1
Où: K K +1 = PK H T
K +1
H K +1 PK H T
K +1 + RK +1 et PK = H R H
T −1
12
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman:
Estimation d’une quantité fixe par un processus récursif (2)
On remarque que le nouvel estimé de x dépend de l’ancienne valeur de l’estimation, plus une
correction qui tient compte de la nouvelle mesure qui devient disponible.
13
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman:
Estimation d’une quantité fixe par un processus récursif (3)
xˆ K +1 = xˆ K + K K +1 [ yK +1 − H K +1 xˆk ]
−1
K K +1 = PK H KT +1 H K +1 PK H KT +1 + RK +1
−1
PK = H T R −1 H
14
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman:
Estimation d’une quantité fixe par un processus récursif (4)
Résultats:
5.8
Valeur réelle
Mesures
5.6
Estimation
5.4
5.2
4.8
4.6
4.4
0 5 10 15 20 25 30 35 40 45 50
15
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman (ref: [1]):
Estimation des états d’un sys. dyn. par un processus récursif (1)
(
Xˆ k +1/ k +1 = Xˆ k +1/ k + K k +1 Yk +1 − HXˆ k +1/ k )
Donc, l’estimé optimal est donné par la prédiction basée sur le modèle d’état,
plus une correction, qui dépend d’un certain gain K:
−1
K k +1 = Pk +1/ k H HPk +1/ k H T + R
T
x1 ( k + 1) = x1 ( k ) + Tx2 ( k )
x2 ( k + 1) = x2 ( k ) + Tu ( k ) + w ( k )
Où x1 est la position et x2 est la vitesse.
On mesure la position, donc l'équation des mesures:
y ( k + 1) = x1 ( k + 1) + v ( k + 1)
Étant donné les mesures de position, nous souhaitons trouvé le meilleur estimé de la
position du véhiculet ET de la vitesse. De plus, nous savons que la variance du capteur
servant à mesuré la position est R=0.04 et la variance du signal qui perturbe le deuxième
état est Q=0.00005. Nous considérerons aussi que le système sera excité par le signal
d’entré u, seulement pour les dix premières périodes de temps T et que la valeur du signal
d’entre sera alors u=0.25.
18
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman (réf: [1]):
Estimation des états d’un sys. dyn. par un processus récursif (4)
x1 ( k + 1) = x1 ( k ) + Tx2 ( k )
(
Xˆ k +1/ k +1 = Xˆ k +1/ k + K k +1 Yk +1 − HXˆ k +1/ k )
x2 ( k + 1) = x2 ( k ) + Tu ( k ) + w ( k )
−1
K k +1 = Pk +1/ k H T HPk +1/ k H T + R
Où x1 est la position et x2 est la vitesse.
Pk +1/ k = APk / k AT + GQG T
On mesure la position, donc l'équation des mesures:
Pk +1/ k +1 = I − K ( k + 1) H Pk +1/ k
y ( k + 1) = x1 ( k + 1) + v ( k + 1)
19
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman (réf: [1]):
Estimation des états d’un sys. dyn. par un processus récursif (5)
2.5
1.5
0.5
-0.5
0 5 10 15 20 25 30 35 40 45 50
20
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman (réf: [1]):
Estimation des états d’un sys. dyn. par un processus récursif (6)
0.45
0.4
0.35
Valeur réelle
0.3
Estimation
0.25
0.2
0.15
0.1
0.05
0
0 5 10 15 20 25 30 35 40 45 50
21
Jean-Philippe Roberge - Décembre 2012
Cours #12 – Filtre de Kalman (réf: [1]):
Estimation des états d’un sys. dyn. par un processus récursif (7)
( )
Y ( ( k + 1) T ) = h X ( ( k + 1) T ) + v ( ( k + 1) T )
Où:
( (
Xˆ k +1/ k +1 = Xˆ k +1/ k + K k +1 Yk +1 − h Xˆ k +1/ k )) ∂f ( X ,U )
T T A(k ) = I + T
Pk +1/ k = A ( k ) Pk / k A ( k ) + ( GT ) Q ( GT ) ∂X Xˆ k /k ,U k
Pk +1/ k +1 = I − K k +1 H ( k ) Pk +1/ k ∂h ( X )
−1 H (k ) =
K k +1 = Pk +1/ k H kT H k Pk +1/ k H kT + R ∂X Xˆ k / k
22
Jean-Philippe Roberge - Décembre 2012
Application du filtre de Kalman:
Problème du décalage des gyroscopes (I)
= Ω Ψ −Ω Ψ +ε
Ψ y x z z x y
= −Ω Ψ + ε
Ψ z x y z
10-3
xx 10
-3 Erreur
Erreur de de
Erreur latitude
Longitude
d'azimut et
etet estiméde
estimé
estimationde
de l'erreur
l'erreur d'attitude
l'erreurde en
longitude
d'azimut fonction
enen dudu
fonction
fonction du temps
temps
temps
2.5
0.5
0.01
Erreur de longitude
Erreur d'azimut
Estimé de l'erreur de longitude
Erreur de latitude Estimation de l'erreur d'azimut
0 Estimé de l'erreur de latitude
2
0.005
-0.5
1.5
0
Valeurs
-1
Valeurs
1
Valeurs (en termes d'arc
-1.5
-0.005
0.5
-2
-0.01
0
-2.5
-0.5
-3
-0.015
00 50
2020 100
40 40 150
6025 60 80200 80 100250
Jean-Philippe 100 - 16 juin 120
Roberge 2010300 120
Temps
Temps (en
(en heure)
heure)
Cours #12 – Filtre de Kalman (réf: [1])
**images tirées de [5]
26
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur classique de vitesse et rotation (1)
27
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur classique de vitesse et rotation (2)
28
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur classique de vitesse et rotation (3)
29
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur classique de vitesse et rotation (5)
k1 k
Vu* = Vref et Ω* = Ω ref −
Vref
los − 2 los
Vref
los = − ( x − xd ) sin (θ ref ) + ( y − y d ) cos (θ ref )
En substituant: x = Vref cos (θ ) y = Vref sin (θ ) xd = Vref cos (θ ref ) y d = Vref sin (θ ref )
En dérivant une autre fois l’erreur de suivi latéral (pour faire apparaître la
vitesse angulaire):
Pour une petite erreur d’angle, le facteur cosinus ≈1. On peut donc
simplement déterminer les gains k1 et k2 par placement de pôles.
31
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur classique de vitesse et rotation (7)
Donc: los = 0 et
los = −k1los − k2los
Sous forme de modèle d’états:
los 0 1 los
=
los − k1 − k2 los
x A x
Rappel(suite):
Les valeurs propres de A sont données par les racines du polynôme caractéristique:
λ −1
P ( λ ) = det ( λ I − A ) = det
2
= λ + k2 λ + k1
k1 λ + k2
Donc, pour assurer la convergence de l’erreur latéral, n’importe quel gain
k1, k2>0 assurera que les valeurs propres sont à partie réelle négative.
33
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur classique de vitesse et rotation (9)
34
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur classique de vitesse et rotation (10)
35
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur classique de vitesse et rotation (11)
36
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi (voir [2]) (1)
Depuis le début de notre étude sur la cinématique des robots, nous avons décrit la
cinématique en coordonnées cartésiennes.
Voici un contrôleur qui considère plutôt une cinématique énoncée en coordonnées
sphériques:
Sa cinématique (coordonnées cartésiennes)
Considérons le robot ci-bas: est donnée par :
x = cos (θ ) v
y = sin (θ ) v
θ = ω
37
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi (voir [2]) (2)
38
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi (voir [2]) (3)
Cette dynamique est non-linéaire, on peut toutefois linéariser ce système autour du point
d’équilibre: (α = 0 )
On obtiendra un modèle linéarisé qui représente la cinématique du robot autour des
points d’équilibre dans une certaine région de cet espace 3D appellée la “région
d’attraction”. Donc, le modèle linéarisé donnera des bons résultats à l’intérieur de cette
région d’attraction.
ρ −k ρ 0 0 ρ
Une fois linéarisé, on obtient le modèle d’état suivant:
α = 0 − ( kα − k ρ ) − kφ α
φ 0 φ
− kα − kφ
x
x
A
Les valeurs propres de la matrice A (qui détermine la stabilité du système) sont données
par les racines du polynôme caractéristique:
(
P ( λ ) = det ( λ I − A ) = ( λ + k p ) λ 2 + λ ( kα + kφ − k p ) − k ρ kφ )
Les valeurs propres seront à partie réelle négative ssi:
39
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi (voir [2]) (4)
40
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi: un autre contrôleur qui lui ressemble (1)
Un problème avec le contrôleur d’Astolfi est que plus le robot mobile se rapproche de sa
destination, plus ce dernier ralentit. En fait, sa vitesse décroit linéairement en fonction de
la distance euclidienne:
v = kpρ
ω = kα α + kφφ
Une solution pourrait être de déterminer des régions entourant les positions à atteindre à
l’intérieur desquelles on considère que le robot a atteint sa destination:
41
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi: un autre contrôleur qui lui ressemble (2)
Autre point: On connait bien les systèmes d’ordre 2, nous connaissons la forme standard
normalisée des systèmes d’ordre 2:
K ωn2
G (s) = 2
s + 2ζωn s + ωn2
Il pourrait être intéressant de choisir le dénominateur de cette fonction de transfert
(i.e. le polynôme caractéristique du deuxième sous-système), de manière à ce que la
dynamique angulaire n’oscille pas! (i.e. ζ >= 1)
42
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi: un autre contrôleur qui lui ressemble (3)
ρ −k ρ 0 0 ρ
α = 0 − k − k
( α ρ ) − kφ α
G (s) = 2
K ωn2
=
Q (s)
φ 0 − k − k
φ
s + 2ζωn s + ωn2 P ( s )
α
φ
x x
A
On a donc:
ωn = − k ρ kφ et 2ζωn = kα + kφ − k p
43
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi: un autre contrôleur qui lui ressemble (4)
Donc, le contrôleur n’a pas encore changé de forme, nous avons simplement rajouté un
critère à l’ensemble des critères existants:
kα + kφ − k p
critère supplémentaire: ≥1
v = kpρ 2 − k ρ kφ
ω = kα α + kφφ Le critère supplémentaire implique le troisième
critère d’Astolfi, on peut donc le remplacer
Soit vmax la vitesse de croisière que l’on souhaite avoir pour le robot, et le fait que la
dynamique de la vitesse est maintenant simplement un système de premier ordre:
ρ = −k ρ ρ et v = k ρ ρ
On peut faire en sorte que la vitesse sature à la vitesse max (ou utiliser une saturation)
jusqu’à une certaine distance de la trajectoire en choisissant un gain Kp élevé approprié,
par exemple, pour une vitesse maximale en pratique de 1,5m/s si on choisi Kp=3:
v = kρ ρ
v = 3ρ et 3ρ ≥ vmax ∀ρ ≥ 0,5m
En gros, vous pouvez choisir le gain de cette façon:
vmax
44 kρ =
ρlimite Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi: un autre contrôleur qui lui ressemble (5)
Dans l’exemple précédent, pour des distances plus petite que 0,5m, le robot mobile
ralentira. Si on ne veut jamais subir de décélération, on peut choisir un gain encore plus
élevé et/ou combiner l’effet d’un gain élevé avec des régions plus permissives:
Par contre, si on tolère une dynamique trop rapide en vitesse linéaire, on risque de
détériorer la dynamique plus lente de la dynamique angulaire.
Avez-vous des pistes de solutions?
45
Jean-Philippe Roberge - Décembre 2012
Cours #12
Contrôleur d’Astolfi: un autre contrôleur qui lui ressemble (6)
On peut choisir la solution facile qui consiste à choisir les gains de la dynamique
angulaire de sorte à ce que la réponse angulaire soit rapide, mais cela est déjà
partiellement pris en compte par les critères qu’énonce Astolfi:
kα + kφ − k p
critère supplémentaire: ≥1
2 − k ρ kφ
On pourrait démontrer qu’il est possible de trouver des gains k1 et k2 qui stabilisent le
système linéaire et qui permet donc de moduler la vitesse linéaire en fonction de l’erreur
angulaire.
46
Jean-Philippe Roberge - Décembre 2012
Cours #13:
Révision
47
Jean-Philippe Roberge - Décembre 2012
Cours #13
Révision (1)
La matière à l’examen est détaillée dans le PDF que je vous ai envoyé. La présentation
d’aujourd’hui est un rappel des majeures parties de cette matière.
Adobe Acrobat
Document
48
Jean-Philippe Roberge - Décembre 2012
Révision
Dynamique (1)
49
Jean-Philippe Roberge - Décembre 2012
Révision
Dynamique (2)
50
Jean-Philippe Roberge - Décembre 2012
Révision
Dynamique (3)
51
Jean-Philippe Roberge - Décembre 2012
Révision
Dynamique (4)
52
Jean-Philippe Roberge - Décembre 2012
Révision
Dynamique (5)
53
Jean-Philippe Roberge - Décembre 2012
Révision
Dynamique (6)
54
Jean-Philippe Roberge - Décembre 2012
Révision
Dynamique (7)
55
Jean-Philippe Roberge - Décembre 2012
Révision
Dynamique (8)
Sous forme matricielle (autre forme):
56
Jean-Philippe Roberge - Décembre 2012
Révision
Commande des robots manipulateurs (1)
Nous savons désormais que la dynamique d’un robot manipulateur peut être
obtenue à l’aide de la méthode d’Euler-Lagrange. Celle-ci peut s’exprimer sous
la forme matricielle:
58
Jean-Philippe Roberge - Décembre 2012
Révision
Commande des robots manipulateurs (3)
59
Jean-Philippe Roberge - Décembre 2012
Révision
Commande des robots manipulateurs (4)
60
Jean-Philippe Roberge - Décembre 2012
Révision
Commande des robots manipulateurs (5)
Loi de
commande
Dynamique
= D ( q ) q + h ( q , q ) + g ( q ) du robot
61
Jean-Philippe Roberge - Décembre 2012
Révision
Commande des robots manipulateurs (6)
Considérons encore une fois les équations de la dynamique d’un robot manipulateur:
M ( q ) q + C ( q, q ) q + g ( q ) = τ
Le couple τ est la variable d’entrée du système, i.e. la variable que vous réglez pour
exciter le système. Notons “u” cette variable d’entrée:
M ( q ) q + C ( q, q ) q + g ( q ) = u
L’idée du couple pré-calculé est de compenser pour la dynamique du système en
choisissant le couple qui excitera les moteurs tel que:
u = M ( q ) aq + C ( q, q ) q + g ( q )
Où aq est une variable à déterminer. La dynamique du système avec cette entrée se réduit
alors à:
M ( q ) q + C ( q, q ) q + g ( q ) = M ( q ) aq + C ( q, q ) q + g ( q )
q = aq
62
Jean-Philippe Roberge - Décembre 2012
Révision
Commande des robots manipulateurs (7)
Loi de
commande
Dynamique
= D ( q ) q + h ( q , q ) + g ( q ) du robot
64
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (1)
Lors des cours précédents, nous avons étudiés les géométries des manipulateurs sériels.
Nous nous sommes attardés à développer la cinématique directe et inverse, nous avons
abordé la dynamique ainsi que certaines stratégies de contrôle.
Un aspect que nous n’avons toutefois pas encore considéré est la planification de
trajectoires.
En effet, pour cette section, nous nous attarderons à définir la trajectoire d’un robot
manipulateur, c’est-à-dire: qd , qd , qd
Le mode point par point, où les points sont relativement éloignés les uns des autres
Le mode continu, où les points sont suffisamment rapprochés pour former une trajectoire quasi-
continue.
Pour chacun de ces cas, nous verrons comment générer une trajectoire cohérente.
65
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (2)
Voici une notion qui n’est pas à l’ordre du cours, il s’agit de l’utilisation de champs de
potentiels pour diriger les robots.
66
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (3)
Pour ce mode, voici les profils typiques de position, vitesse et accélération entre deux
points qo et q1:
68
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (5)
69
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (6)
70
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (7)
Il sera trapézoïdale
seulement si Vmax
est atteinte lors du
déplacement.
71
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (8)
72
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (9)
1 t0 t02 t03 a0 q0
0 1 2t0 3t02 a1 q0
=
1 t f t 2f t 3f a2 q f
0 1 2t f 3t 2f a3 q f
73
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (10)
74
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (11)
76
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (13)
78
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (15)
2 3
qd ( t0 ) = a0 + a1 ( t − t0 ) + a2 ( t − t0 ) + a3 ( t − t0 )
79
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (16)
1 − S est la spline cubique, donné par S j , dans l'intervalle [t j ,t j +1 ] pour chaque j = 0,1,..., n − 1
2 − S j ( t j ) = f ( t j ) = y j pour chaque j = 0,1,..., n
3 − S j +1 ( t j +1 ) = S j ( t j +1 ) pour chaque j = 0,1,..., n − 2
d d
4− S j +1 ( t j +1 ) = S j ( t j +1 ) pour chaque j = 0,1,..., n − 2
dt dt
d2 d2
5 − 2 S j +1 ( t j +1 ) = 2 S j ( t j +1 ) pour chaque j = 0,1,..., n − 2
dt dt
6 − On impose les vitesse aux extrémités de la spline:
d d d d
S 0 ( t0 ) = f ( t0 ) et S n ( tn ) = f ( tn )
dt dt dt dt
81
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (18)
Méthode de résolution:
Vous connaissez les aj quasi-directement, vous connaissez les hj et les pentes
imposées au début et à la fin des splines, donc:
Vous notez les aj
Vous posez le système d’équation sous forme matricielle et résolvez pour trouver
les cj
Vous trouvez les bj et les dj à l’aide des relations établies plus tôt, i.e.:
1 h c j +1 − c j
b j = ( a j +1 − a j ) − j ( 2c j + c j +1 ) dj =
hj 3 3h j
82
Jean-Philippe Roberge - Décembre 2012
Révision
Planification de trajectoires (19)
Ax = b
83
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (1)
Autres notions:
Effet de la
résolution:
84
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (2)
L’intensité de l’image réelle sera donc discrétisée en surface, étant donnée que celle-ci
sera constituée de pixels.
86
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (4)
Éclairage:
Dépendamment des opérations que vous désirez effectuer, vous devrez choisir un
éclairage approprié. Ici, on présente quatre techniques d’éclairage:
L’éclairage diffus utilisé pour les objets lisses ayant des surfaces régulières
87
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (5)
Éclairage (suite):
Dépendamment des opérations que vous désirez effectuer, vous devrez choisir un
éclairage approprié. Ici, on présente quatre techniques d’éclairage:
L’éclairage arrière qui permet de bien générer des images en noir et blanc
88
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (6)
Éclairage (suite):
Dépendamment des opérations que vous désirez effectuer, vous devrez choisir un
éclairage approprié. Ici, on présente quatre techniques d’éclairage:
L’éclairage structuré par bande ou par grille. La déformation du patron permet
d’identifier les caractéristiques de l’objet.
89
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (7)
Distance euclidienne:
3
8 5 2 5 8
5 2 1 2 5
Dans le domaine 3 2 1 0 1 2 3
des De ≤3 : 5 2 1 2 5
8 5 2 5 8
3
90
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (8)
Dans le domaine
des D4 ≤2 :
Dans le domaine
des D8 ≤2 :
91
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (9)
92
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (10)
94
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (12)
95
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (13)
Celle-ci est basée sur l’hypothèse que l’image provient de deux distributions
gaussiennes: l’une pour la partie claire et l’autre pour la partie foncée.
L’hypothèse est donc que l’histogramme de l’image réelle est une superposition
de la distribution gaussienne de la partie pâle avec la distribution de la partie
foncée.
Cette méthode donnera donc de bons résultats lorsqu’on détecte effectivement dans
l’histogramme une distribution à gauche et une autre à droite avec des moyennes
significativement différente.
96
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (14)
2 2 2
σ (t ) = q1 (t ) σ (t ) + q 2 (t )σ (t )
w 1 2
t I
97
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (15)
σ w2 (t ) = q1 (t ) σ 12 (t ) + q 2 (t )σ 22 (t )
σ b2 = q1 ( t )[1 − q1 ( t )][ µ 1 ( t ) − µ 2 ( t )] 2
98
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (16)
99
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (17)
100
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (18)
Lissage:
Pour lisser une image, on peut utiliser la moyenne du pixel p et des pixels dans le
voisinnage de p. Par exemple, si on utilise N8(p), on aura wi=1/9.
101
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (19)
Pour détecter les arrêtes dans une image, on peut dériver partiellement
l’intensité en x et en y en utilisant un filtre approprié:
∂I
∂x
Cependant, le filtre ci-dessus sera très sensible au bruit, on peut donc utiliser la
moyenne des gradients:
∂I
ou
∂x
Remarque:
On a qu’a transposer ces gradients pour obtenir l’information dans le sens
horizontal: ∂I
∂y 102
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (20)
D’autres masques…
103
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de bas niveau (21)
D’autres masques…
Pour rehausser les contours d’une image, on peut utiliser le masque ci-
dessous:
104
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (1)
Classification VS Segmentation:
Segmentation: Regroupement de pixels qui possèdent entre eux des
caractéristiques similaires (Contours, intensité, etc…) sans utiliser
d’information contextuelle.
Classification: Classification des régions d’une image basée sur la
reconnaissance de formes ou de caractéristiques communes basée sur
l’information contextuelle.
105
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (2)
Puisque nous sommes dans le domaine discret, les deux intégrales seront
remplacées par des sommations (approximation rectangulaire de
l’intégration), donc en pratique:
m pq = ∑∑ i p j q I ( i, j )
i j
106
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (3)
m10 = ∑∑ i p I ( i, j )
i j
m01 = ∑∑ j q I ( i, j )
i j
∑∑ I ( i, j )
i
i p
j m10
i= =
∑∑ I ( i, j )
i j
m00
∑∑ i j
j q I ( i, j )
m01
j= =
∑∑ I ( i, j )
i j
m00
107
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (4)
p q
µ pq = ∑∑ i − i ( ) ( j − j) I ( i, j )
i j
Rappel:
∑∑ i I ( i, j ) m
i j
p
∑∑ j I ( i, j ) m
i j
q
10 01
i= = j= =
∑∑ I ( i, j ) m
i j
00 ∑∑ I ( i, j ) m
i j
00
108
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (5)
p q
µ pq = ∑∑ i − i( ) ( j − j) I ( i, j )
i j
γ=
( p + q)
+1
2
109
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (6)
Remarques:
Le premier de ces moments invariants est analogue au moment d’inertie, tel
que mentionné plus tôt.
Les six premiers moments invariants sont aussi invariant en réflexion, il est
donc nécessaire d’utiliser le 7ième si l’on souhaite détecter les images mirroirs.
110
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (7)
1
θ = atan2 ( 2µ11 , µ20 − µ02 )
2
L’axe principale est l’axe autour duquel le moment d’inertie (c’est plutôt le
moment d’ordre 2) est minimal.
111
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (8)
Une autre méthode pour classer les différents objets d’une image consiste
simplement à comparer un à un les objets d’une image avec un (ou
plusieurs) patron(s). Le patron est une image m0 X n0 dont l’intensité
des pixels est donnée par Ti(k,j) où i désigne l’objet considéré.
Pour quantifier la qualité de l’appariemment entre l’objet de l’image et le
patron, on utilise un indicateur de performance. Par exemple:
m0 n0
pi ( x, y ) = ∑∑ I ( x + k , y + j ) − Ti ( k , j ) ≥0
k =1 j =1
où 0 ≤ σ i ( x, y ) ≤ 1
x cos θ + y sin θ = d
Où θ est l’angle de la droite et d la distance entre l’origine et le point
d’interception perpendiculaire à la droite.
Comme l’image est de dimension finie et que 0 ≤ θ ≤2π,
on peut simplement discrétiser les paramètres θ et d
y pour former un tableau 2D.
Pour chaque combinaison, on vérifie chaque pixel égale
à 1 de l’image pour savoir s’il appartient à la droite et, le
cas échéant, on enregistre son vote.
115
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (12)
116
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (13)
Dans cette situation, l’objet de l’image est celui du monde réelle ayant
subi une homothétie, une rotation et une translation. Ainsi, la
transformation entre un point (x,y) et un point (i,j) est donnée par:
117
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (14)
Pour un point (xk,yk) nous mesurons (ik,jk), on peut donc ré-écrire ces
équations en fonction des inconnues a,b,c et d:
118
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (15)
E = c2 + d 2 ⇒ homothétie
θ = atan2 ( d , c ) ⇒ Angle de la rotation
a ⇒ Translation en x
b ⇒ Translation en y
119
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (16)
120
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (17)
1 0 0 0
0 1 0 0
P = 0 0 0 0
0 −1
0 1
λ
122
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (19)
123
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (20)
( TU )
P C
124
Jean-Philippe Roberge - Décembre 2012
Révision
Traitement de haut niveau (21)
125
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Généralités (1)
Il manque pourtant un
moyen de locomotion
important, lequel?
La roue!
(On ne la retrouve pas tel quel dans la nature!)
126
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Généralités (2)
Dans le cadre de ce module sur les robots mobiles, nous nous attarderons surtout sur les
robots mobiles qui se déplacent à l’aide de roues.
Plusieurs types de roues existent cependant:
Aussi, tant qu’à parler de type de roue, pour vous ouvrir l’esprit:
http://www.radio-canada.ca/emissions/decouverte/2011-
2012/Reportage.asp?idDoc=211681 127
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Généralités (3)
Non seulement existe-t-il plusieurs types de roues, il existe aussi plusieurs géométries de
roue (image) adapté de [4]:
128
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Généralités (4)
129
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Généralités (5)
130
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Cinématique (1)
r , φ1 p
θ
YI
r , φ2
XI
131
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Cinématique (2)
0 0 1
I
TR
Nous supposons ici que nous connaissons l’orientation initiale θ.
Notez que la matrice de transformation ITR changera au fur et à mesure que le robot se déplacera.
Pour mettre à jour la valeur de θ, on pourrait simplement ajouter l’intégrale de la vitesse angulaire
Nous verrons comment on peut le faire encore plus efficacement à l’aide du calcul de l’odométrie basé sur la
fusion de plusieurs capteurs.
Clairement, aucune des roues n’amènent de contribution selon l’axe y du repère local!
rφ1 rφ2
θ = − −
2l 2l
133
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Cinématique (4)
Donc, en résumé:
rφ1 rφ2 r , φ1 p
θ
−
x 2 2
YI
ξ = y = 0 r , φ2
θ rφ1 rφ2
− −
2l 2l
XI
La cinématique directe de ce robot est donc donnée directement par:
rφ1 rφ2
−
cos θ − sin θ 0 2 2
Il s’agit de la vitesse (de la pose) du
ξI = sin θ cos θ 0
robot, exprimée dans le repère
0 universel en fonction de la vitesse de
0 0 1 rφ1 rφ2 chacun de ces moteurs.
− −
I
TR
2l 2l
De plus (rappel), on pourrait calculer θ simplement de cette façon:
t
θ ( t ) = θ 0 + ∫ θ ( t ) dt
t0
**Quelle sera une des sources d’erreur considérable si l’on se base sur ce calcul pour déterminer θ?
134
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Cinématique (5)
Où:
R : Rayon de courbure instantané
α : Angle de la direction p-r-à l'axe longitudinal (y) du robot
ψ : Angle de l'axe longitudinal du robot p-r-à l'axe y du repère de référence
L : Distance entre l'axe de rotation des roues arrières et devant lorsque α =0
136
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Cinématique (7)
cos (ψ ) − sin (ψ ) 0 0 − sin (ψ ) vroues _ arr
ξground = sin (ψ ) cos (ψ ) 0 vroues _ arr =
cos (ψ ) v roues _ arr
0 0
1 vroues _ arr vroues _ arr
tan (α ) tan (α )
ground
TR L L
137
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Cinématique (8)
139
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Trajectoires (2)
La planification de trajectoire
dans le contexte de la robotique
mobile autonome se fait très
différemment que la
planification de trajectoire pour
les robots sériels fixes.
140
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Trajectoires (3)
En effet, étant donné que le robot se déplace et que l’environnement n’est pas
connu a priori, il faut user de techniques fort différentes.
Entres autres, il faut utiliser des capteurs pour saisir les formes de
l’environnement à traver lequel le robot se déplacera.
Il faut éviter les obstacles qui ne sont pas non plus connus a priori
141
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Trajectoires (4)
Par exemple, voici grosso modo une technique que nous développons à l’ASC:
143
Jean-Philippe Roberge - Décembre 2012
Révision
Robotique mobile – Trajectoires (6)
144
Jean-Philippe Roberge - Décembre 2012
EXERCICES
145
Jean-Philippe Roberge - Décembre 2012
Révision
Exercices – Dynamique (1)
146
Jean-Philippe Roberge - Décembre 2012
Révision
Exercices – Dynamique (1)
147
Jean-Philippe Roberge - Décembre 2012
Révision
Exercices – Dynamique (2)
148
Jean-Philippe Roberge - Décembre 2012
Révision
Exercices – Dynamique (2)
149
Jean-Philippe Roberge - Décembre 2012
Révision
Exercices – Dynamique (3)
150
Jean-Philippe Roberge - Décembre 2012
Révision
Exercices – Dynamique (3)
151
Jean-Philippe Roberge - Décembre 2012
Révision
Exercices – Dynamique (3)
152
Jean-Philippe Roberge - Décembre 2012
Révision
Exercices – Planification de trajectoires (1)
153
Jean-Philippe Roberge - Décembre 2012
Révision
Exercices – Planification de trajectoires (2)
154
Jean-Philippe Roberge - Décembre 2012
Révision
Vision (1)
155
Jean-Philippe Roberge - Décembre 2012
Révision
Vision (2)
156
Jean-Philippe Roberge - Décembre 2012
Révision
Vision (2)
157
Jean-Philippe Roberge - Décembre 2012
Révision
Vision (2)
158
Jean-Philippe Roberge - Décembre 2012
Révision
Vision (3)
159
Jean-Philippe Roberge - Décembre 2012
Révision
Robots mobiles (1)
[1] Leonard, J.E., Durrant-Whyte, H.F., Directed Sonar Sensing for Mobile Robot
Navigation. Norwood, MA, Kluwer Academic Publishers, 1992.
[2] Borenstein, J., Everet,t H.R., Feng, L., Navigating Mobile Robots, Systems
and Techniques. Natick, MA, A.K. Peters, Ltd., 1996.
[3] Cox, I.J., Wilfong, G.T. (editors), Autonomous Robot Vehicles. New York,
Spinger- Verlag, 1990.
[4] Siegwart, R. Nourbakhsh, I., Introduction to Autonomous Mobile Robots. MIT
Press, 2004.
162
Jean-Philippe Roberge - Décembre 2012