Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

wheelEncoderOdometryUnicycle

Calculer l'odométrie du monocycle à l'aide des ticks de l'encodeur de roue et de la vitesse angulaire

Depuis R2020b

Description

Le wheelEncoderOdometryUnicycle System object™ calcule l'odométrie du monocycle à l'aide des tics de l'encodeur de roue et de la vitesse angulaire.

Pour calculer l'odométrie d'un monocycle :

  1. Créez l'objet wheelEncoderOdometryUnicycle et définissez ses propriétés.

  2. Appelez l'objet avec des arguments, comme s'il s'agissait d'une fonction.

Pour en savoir plus sur le fonctionnement des objets système, voir What Are System Objects?

Création

Description

exemple

whlEncOdom = wheelEncoderOdometryUnicycle crée un System object wheelEncoderOdometryUnicycle avec des valeurs de propriété par défaut.

whlEncOdom = wheelEncoderOdometryUnicycle(encoder) crée un System object wheelEncoderOdometryUnicycle en utilisant l' System object wheelEncoderUnicycle spécifié, encoder, pour définir les propriétés .

whlEncOdom = wheelEncoderOdometryUnicycle(Name,Value) définit Propriétés en utilisant une ou plusieurs paires nom-valeur. Les propriétés non spécifiées ont des valeurs par défaut. Mettez chaque nom de propriété entre guillemets.

Par exemple, whlEncOdom = wheelEncoderOdometryUnicycle('SampleRate',100) définit la fréquence d'échantillonnage du capteur sur 100 Hz.

Propriétés

développer tout

Sauf indication contraire, les propriétés sont non réglables , ce qui signifie que vous ne pouvez pas modifier leurs valeurs après avoir appelé l'objet. Les objets se verrouillent lorsque vous les appelez et la fonction release les déverrouille.

Si une propriété est ajustable , vous pouvez modifier sa valeur à tout moment.

Pour plus d'informations sur la modification des valeurs des propriétés, voir System Design in MATLAB Using System Objects.

Taux d'échantillonnage du capteur, spécifié sous forme de scalaire positif en hertz.

Exemple : 'SampleRate',100

Types de données : double

Nombre de ticks d'encodeur par tour de roue, spécifié sous forme d'entier positif.

Exemple : 'TicksPerRevolution',2048

Types de données : double

Rayon de roue, spécifié sous forme d'un scalaire positif en mètres.

Exemple : 'WheelRadius',0.35

Types de données : double

Pose initiale du véhicule, spécifiée comme vecteur à trois éléments de la forme [X Y Yaw]. X et Y précisent la position du véhicule en mètres. Yaw précise l'orientation du véhicule en radians. Toutes les valeurs sont dans le système de coordonnées de navigation local.

Exemple : 'InitialPose',[0 0 0]

Ajustable : No

Types de données : double

Utilisation

Description

pose = whlEncOdom(ticks,angVel) calcule l'odométrie d'un monocycle à l'aide des ticks d'encodeur de roue spécifiés ticks et de la vitesse angulaire angVel, et renvoie la position et l'orientation de le véhicule dans le système de coordonnées de navigation local.

exemple

[pose,velocity] = whlEncOdom(ticks,angVel) renvoie en outre la vitesse linéaire et angulaire du véhicule dans le système de coordonnées de navigation local.

Arguments en entrée

développer tout

Nombre de ticks d'encodeur de roue, spécifié comme vecteur de colonne d'élément n. n est le nombre d’échantillons dans la trame actuelle.

Exemple : [5; 2]

Types de données : single | double

Vitesse angulaire du véhicule dans le système de coordonnées de la carrosserie du véhicule, spécifiée sous la forme d'un vecteur colonne d'éléments n en radians par seconde. n est le nombre d’échantillons dans la trame actuelle.

Exemple : [0.2; 0.2]

Types de données : single | double

Arguments de sortie

développer tout

Position et orientation du véhicule, renvoyées sous forme de matrice n-by-3. n est le nombre d’échantillons dans la trame actuelle. Chaque ligne de la matrice précise la position et l'orientation d'un échantillon sous la forme [X Y Yaw]. X et Y précisent la position du véhicule en mètres. Yaw précise l'orientation du véhicule en radians. Toutes les valeurs sont dans le système de coordonnées de navigation local.

Types de données : single | double

Vitesse linéaire et angulaire du véhicule, renvoyée sous forme de matrice n-by-3. n est le nombre d’échantillons dans la trame actuelle. Chaque ligne de la matrice spécifie la vitesse linéaire et angulaire d'un échantillon sous la forme [velX velY yawRate]. velX et velY précisent la vitesse linéaire du véhicule en mètres par seconde. yawRate spécifie la vitesse angulaire du véhicule en radians par seconde. Toutes les valeurs sont dans le système de coordonnées de navigation local.

Types de données : single | double

Fonctions d'objet

Pour utiliser une fonction objet, spécifiez le System object comme premier argument d'entrée. Par exemple, pour libérer les ressources système d'un System object nommé obj, utilisez cette syntaxe :

release(obj)

développer tout

cloneCreate duplicate System object
stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object
isLockedDetermine if System object is in use

Exemples

réduire tout

Créez un System object wheelEncoderOdometryUnicycle .

whlEncOdom = wheelEncoderOdometryUnicycle;

Spécifiez le nombre de ticks de l'encodeur de roue et la vitesse angulaire.

ticks = [5; 2];
angVel = [0.2; 0.2];

Calculez l'odométrie du monocycle.

[pose,vel] = whlEncOdom(ticks,angVel)
pose = 2×3

    0.0054    0.0000    0.0020
    0.0075    0.0000    0.0040

vel = 2×3

    0.5369    0.0011    0.2000
    0.2148    0.0009    0.2000

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit dans R2020b