Main Content

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

wheelEncoderOdometryDifferentialDrive

Calculer l'odométrie d'un véhicule à entraînement différentiel à l'aide des ticks de l'encodeur de roue

Depuis R2020b

Description

Le wheelEncoderOdometryDifferentialDrive System object™ calcule l'odométrie du véhicule à entraînement différentiel à l'aide des tics de l'encodeur de roue.

Pour calculer l'odométrie d'un véhicule à entraînement différentiel :

  1. Créez l'objet wheelEncoderOdometryDifferentialDrive 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 = wheelEncoderOdometryDifferentialDrive crée un System object wheelEncoderOdometryDifferentialDrive avec des valeurs de propriété par défaut.

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

whlEncOdom = wheelEncoderOdometryDifferentialDrive(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 = wheelEncoderOdometryDifferentialDrive('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 la forme d'un entier positif ou d'un vecteur à deux éléments d'entiers positifs.

Lorsque cette valeur est spécifiée comme vecteur à deux éléments, le premier élément correspond à la roue gauche et le second à la roue droite.

Exemple : 'TicksPerRevolution',[2048 2048]

Types de données : double

Rayon de roue, spécifié comme un scalaire positif ou un vecteur à deux éléments de nombres positifs en mètres.

Lorsque cette valeur est spécifiée comme vecteur à deux éléments, le premier élément correspond à la roue gauche et le second à la roue droite.

Exemple : 'WheelRadius',[0.35 0.35]

Types de données : double

Distance entre les roues sur l'essieu, spécifiée sous forme d'un scalaire positif en mètres.

Exemple : 'TrackWidth',1.572

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]

Types de données : double

Utilisation

Description

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

exemple

[pose,velocity] = whlEncOdom(ticks) 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 de l'encodeur de roue, spécifié sous la forme d'une matrice n-by-2. n est le nombre d’échantillons dans la trame actuelle.

Chaque ligne de la matrice spécifie les ticks de l'encodeur de roue sous la forme [ticksLeft ticksRight], où ticksLeft et ticksRight précise le nombre de ticks pour les roues gauche et droite, respectivement.

Exemple : [5 5; 2 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 wheelEncoderOdometryDifferentialDrive .

whlEncOdom = wheelEncoderOdometryDifferentialDrive;

Spécifiez le nombre de ticks de l'encodeur de roue.

ticks = [5 5; 2 2];

Calculez l'odométrie du véhicule à entraînement différentiel.

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

    0.0054         0         0
    0.0075         0         0

vel = 2×3

    0.5369         0         0
    0.2148         0         0

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