Main Content

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

wheelEncoderBicycle

Simuler les lectures du capteur d'encodeur de roue pour un véhicule vélo

Depuis R2020b

Description

Le wheelEncoderBicycle System object™ calcule les lectures de ticks de l'encodeur de roue en fonction de l'entrée de pose pour un véhicule à vélo.

Pour obtenir les lectures de ticks de l'encodeur :

  1. Créez l'objet wheelEncoderBicycle 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

encoder = wheelEncoderBicycle crée un System object wheelEncoderBicycle , encoder.

encoder= wheelEncoderBicycle(Name,Value) définit les propriétés de l'encodeur à l'aide d'une ou plusieurs paires nom-valeur. Par exemple, wheelEncoderBicycle('SampleRate',120) définit la fréquence d'échantillonnage de l'encodeur sur 120 Hz. Les propriétés non spécifiées ont des valeurs par défaut. Mettez chaque nom de propriété entre guillemets.

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 codeur, spécifié sous forme de scalaire positif en Hz.

Types de données : double

Nombre de ticks d'encodeur par tour de roue, spécifié sous la forme d'un vecteur à deux éléments d'entiers positifs. Le premier élément est destiné à la roue arrière et le deuxième élément est destiné à la roue avant.

Types de données : double

Rayon de roue, spécifié comme vecteur à deux éléments de scalaires positifs en mètres. Le premier élément est destiné à la roue arrière et le deuxième élément est destiné à la roue avant.

Types de données : double

Biais du rayon de roue, spécifié comme vecteur à deux éléments de scalaires en mètres. Le premier élément est destiné à la roue arrière et le deuxième élément est destiné à la roue avant.

Types de données : double

Écart type de l'erreur de position de la roue, spécifié sous la forme d'un vecteur à deux éléments de scalaires non négatifs en radians. Le premier élément est destiné à la roue arrière et le deuxième élément est destiné à la roue avant.

Types de données : double

Glissement ou rapport de dérapage de la roue, spécifié comme un vecteur à deux éléments de scalaires dans lequel chaque scalaire est supérieur ou égal à –1. Le premier élément est destiné à la roue arrière et le deuxième élément est destiné à la roue avant.

  • Pour une roue qui patine (sur rotation), précisez-la comme une valeur positive. Une valeur plus élevée indique un glissement plus important.

  • Pour une roue qui dérape (en rotation), précisez-la comme une valeur négative supérieure ou égale à –1. Une valeur inférieure indique un dérapage plus important. Pour une roue qui ne tourne pas, spécifiez-la comme –1.

Types de données : double

Distance entre les roues avant et arrière, spécifiée sous forme d'un scalaire positif en mètres.

Types de données : double

Source de nombres aléatoires, spécifiée sous forme de vecteur de caractères ou de chaîne :

  • 'Global stream' –– Des nombres aléatoires sont générés à l’aide du flux de nombres aléatoires global actuel.

  • 'mt19937ar with seed' –– Des nombres aléatoires sont générés à l'aide de l'algorithme mt19937ar avec la graine spécifiée par la propriété Seed .

Types de données : char | string

Graine initiale d'un algorithme générateur de nombres aléatoires mt19937ar, spécifié comme un entier non négatif.

Dépendances

Pour activer cette propriété, définissez RandomStream sur 'mt19937ar with seed'.

Utilisation

Description

ticks = encoder(velocity,angularVelocity,orientation) renvoie les lectures de tics de roue, ticks, à partir des informations de vitesse, de vitesse angulaire et d'orientation.

Arguments en entrée

développer tout

Vitesse du véhicule dans le cadre de navigation locale, spécifiée sous la forme d'une matrice N-par-3 de scalaires en m/s. N est le nombre d’échantillons.

Vitesse angulaire du véhicule dans le cadre de navigation local, spécifiée sous la forme d'une matrice N-par-3 de scalaires en rad/s. N est le nombre d’échantillons.

Orientation du véhicule dans le référentiel de navigation local, spécifié comme un vecteur d'élément N de quaternion ou un 3-by-3-by- N tableau de matrices de rotation. N est le nombre d’échantillons. Chaque quaternion ou matrice de rotation est une rotation de cadre depuis le système de coordonnées de navigation local vers le système de coordonnées de carrosserie actuel du véhicule.

Arguments de sortie

développer tout

Nombre de tours de roue effectués par le véhicule par pas de temps, renvoyé sous la forme d'une matrice d'entiers N-par-2. N est le nombre d’échantillons. La première colonne concerne la roue arrière et la deuxième colonne la roue avant.

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 le capteur d'encodeur de roue.

encoder = wheelEncoderBicycle;

Définir les poses du véhicule.

orient = [quaternion([90 0 0],'eulerd','ZYX','frame'); quaternion([45 0 0], 'eulerd', 'ZYX', 'frame')];
vel = [1 0 0; 0 1 0];
angvel = [0 0 0.2; 0 0 0.1];

Générez des tics de roue à partir des poses.

ticks = encoder(vel,angvel,orient)
ticks = 2×2

     0     5
     6     7

Capacités étendues

Historique des versions

Introduit dans R2020b