Robots suiveurs 3 - Capteurs : Différence entre versions
| Ligne 11 : | Ligne 11 : | ||
== Champs du node DistanceSensor == | == Champs du node DistanceSensor == | ||
| − | {| class="wikitable | + | {| class="wikitable left" |
|- | |- | ||
| lookupTable | | lookupTable | ||
| Ligne 39 : | Ligne 39 : | ||
== lookupTable == | == lookupTable == | ||
| + | [[Fichier:Lookuptable capteur distance.PNG | vignette | Fonction de transfert du capteur de distance]] | ||
La lookupTable est un tableau à 2 dimensions servant à faire la correspondance entre la distance en mètre mesurée par le capteur et la valeur de sortie du capteur. Cette table consiste en une liste de coordonnées de points qui, une fois reliés, nous donne la fonction de transfert du capteur. A chaque point est associé une valeur d'écart type pour son bruit associé. | La lookupTable est un tableau à 2 dimensions servant à faire la correspondance entre la distance en mètre mesurée par le capteur et la valeur de sortie du capteur. Cette table consiste en une liste de coordonnées de points qui, une fois reliés, nous donne la fonction de transfert du capteur. A chaque point est associé une valeur d'écart type pour son bruit associé. | ||
| − | |||
Les valeurs de la table sont pré-configurés pour correspondre à un capteur précis. On peut voir sur le graphique que plus la distance est faible, plus la valeur de sortie augmente vite. Afin d'éviter précisément des obstacles, et de simplifier la mesure des distance, nous avons modifié la table. En ne positionnant que deux points aux extrémités des intervalles, nous obtenons une droite affine. Nous avons donc une précision constante en fonction de la distance et les conversions distance/code sont plus simples. Il serait possible par la suite d'étudier l'influence du bruit sur les performances du robot. Nous pourrons aussi questionner la pertinence de ces modifications qui changent peut-être trop le fonctionnement des capteurs pour correspondre à la réalité. | Les valeurs de la table sont pré-configurés pour correspondre à un capteur précis. On peut voir sur le graphique que plus la distance est faible, plus la valeur de sortie augmente vite. Afin d'éviter précisément des obstacles, et de simplifier la mesure des distance, nous avons modifié la table. En ne positionnant que deux points aux extrémités des intervalles, nous obtenons une droite affine. Nous avons donc une précision constante en fonction de la distance et les conversions distance/code sont plus simples. Il serait possible par la suite d'étudier l'influence du bruit sur les performances du robot. Nous pourrons aussi questionner la pertinence de ces modifications qui changent peut-être trop le fonctionnement des capteurs pour correspondre à la réalité. | ||
| + | |||
| + | == Méthodes utilisées == | ||
| + | {| class="wikitable left" | ||
| + | |- | ||
| + | | void wb_distance_sensor_enable(WbDeviceTag tag) | ||
| + | | WbDeviceTag tag : tag du capteur afin de le cibler | ||
| + | | Active le capteur de distance ciblé. | ||
| + | |- | ||
| + | | double wb_distance_sensor_get_value(WbDeviceTag tag) | ||
| + | | WbDeviceTag tag : tag du capteur afin de le cibler | ||
| + | | Renvoie la valeur associée à la distance mesurée.} | ||
Version du 11 mai 2020 à 15:01
Le logiciel Webots dispose d'une large collection de capteurs déjà configurés disposant de méthodes associées. Le robot E-puck que nous utilisons dans ce projet dispose de différents capteurs prépositionnés :
- 8 capteurs de distance infrarouge
- Camera couleur VGA
- Accéléromètre 3D (on l'utilise pas, je sais pas si utile)?
- Pas trouvé de capteur pour la localisation
Nous allons donc détailler dans cette partie le fonctionnement des capteurs utilisés.
Sommaire
Capteur de distance
Afin de détecter des obstacles, nous utilisons des capteurs de distance qu'on modélise grâce au node DistanceSensor. Nous allons décrire ici son fonctionnement.
Champs du node DistanceSensor
| lookupTable | Vec3f | lookup table |
| type | String | {"generic", "infra-red", "sonar", "laser"} |
| numberOfRays | Int32 | [1, inf) |
| aperture | Float | [0, 2*pi] |
| gaussianWidth | Float | [0, inf) |
| resolution | Float | {-1, [0, inf)} |
lookupTable
La lookupTable est un tableau à 2 dimensions servant à faire la correspondance entre la distance en mètre mesurée par le capteur et la valeur de sortie du capteur. Cette table consiste en une liste de coordonnées de points qui, une fois reliés, nous donne la fonction de transfert du capteur. A chaque point est associé une valeur d'écart type pour son bruit associé.
Les valeurs de la table sont pré-configurés pour correspondre à un capteur précis. On peut voir sur le graphique que plus la distance est faible, plus la valeur de sortie augmente vite. Afin d'éviter précisément des obstacles, et de simplifier la mesure des distance, nous avons modifié la table. En ne positionnant que deux points aux extrémités des intervalles, nous obtenons une droite affine. Nous avons donc une précision constante en fonction de la distance et les conversions distance/code sont plus simples. Il serait possible par la suite d'étudier l'influence du bruit sur les performances du robot. Nous pourrons aussi questionner la pertinence de ces modifications qui changent peut-être trop le fonctionnement des capteurs pour correspondre à la réalité.
Méthodes utilisées
| void wb_distance_sensor_enable(WbDeviceTag tag) | WbDeviceTag tag : tag du capteur afin de le cibler | Active le capteur de distance ciblé. |
| double wb_distance_sensor_get_value(WbDeviceTag tag) | WbDeviceTag tag : tag du capteur afin de le cibler | Renvoie la valeur associée à la distance mesurée.} |