Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

wheelEncoderBicycle

Simule las lecturas del sensor del codificador de rueda para un vehículo de bicicleta

Desde R2020b

Descripción

El wheelEncoderBicycle System object™ calcula las lecturas de tick del codificador de rueda en función de la entrada de pose para un vehículo de bicicleta.

Para obtener las lecturas de tick del codificador:

  1. Cree el objeto wheelEncoderBicycle y establezca sus propiedades.

  2. Llame al objeto con argumentos, como si fuera una función.

Para obtener más información sobre cómo funcionan los System objects, consulte What Are System Objects?

Creación

Descripción

ejemplo

encoder = wheelEncoderBicycle crea un System object wheelEncoderBicycle , encoder.

encoder= wheelEncoderBicycle(Name,Value) establece propiedades para el codificador utilizando uno o más pares nombre-valor. Por ejemplo, wheelEncoderBicycle('SampleRate',120) establece la frecuencia de muestreo del codificador en 120 Hz. Las propiedades no especificadas tienen valores predeterminados. Encierre el nombre de cada propiedad entre comillas.

Propiedades

expandir todo

A menos que se indique lo contrario, las propiedades son no ajustables, lo que significa que no se pueden cambiar sus valores después de llamar al objeto. Los objetos se bloquean cuando los llamas y la función release los desbloquea.

Si una propiedad es ajustable, puedes cambiar su valor en cualquier momento.

Para obtener más información sobre cómo cambiar los valores de las propiedades, consulte System Design in MATLAB Using System Objects.

Frecuencia de muestreo del codificador, especificada como escalar positivo en Hz.

Tipos de datos: double

Número de tics del codificador por revolución de la rueda, especificado como un vector de dos elementos de enteros positivos. El primer elemento es para la rueda trasera y el segundo elemento es para la rueda delantera.

Tipos de datos: double

Radio de la rueda, especificado como un vector de dos elementos de escalares positivos en metros. El primer elemento es para la rueda trasera y el segundo elemento es para la rueda delantera.

Tipos de datos: double

Sesgo del radio de la rueda, especificado como un vector escalar de dos elementos en metros. El primer elemento es para la rueda trasera y el segundo elemento es para la rueda delantera.

Tipos de datos: double

Desviación estándar del error de posición de la rueda, especificada como un vector de dos elementos de escalares no negativos en radianes. El primer elemento es para la rueda trasera y el segundo elemento es para la rueda delantera.

Tipos de datos: double

Relación de deslizamiento o derrape de la rueda, especificada como un vector de escalares de dos elementos en el que cada escalar es mayor o igual a –1. El primer elemento es para la rueda trasera y el segundo elemento es para la rueda delantera.

  • Para una rueda que patina (sobrerotación), especifíquelo como un valor positivo. Un valor más alto denota más deslizamiento.

  • Para una rueda que patina (bajo rotación), especifíquelo como un valor negativo mayor o igual a –1. Un valor más bajo denota más derrape. Para una rueda que no gira, especifíquela como –1.

Tipos de datos: double

Distancia entre las ruedas delanteras y traseras, especificada como escalar positivo en metros.

Tipos de datos: double

Fuente de números aleatorios, especificada como un vector de caracteres o una cadena:

  • 'Global stream' –– Los números aleatorios se generan utilizando el flujo de números aleatorios global actual.

  • 'mt19937ar with seed' –– Los números aleatorios se generan utilizando el algoritmo mt19937ar con la semilla especificada por la propiedad Seed .

Tipos de datos: char | string

Semilla inicial de un algoritmo generador de números aleatorios mt19937ar, especificado como un entero no negativo.

Dependencias

Para habilitar esta propiedad, establezca RandomStream en 'mt19937ar with seed'.

Uso

Descripción

ticks = encoder(velocity,angularVelocity,orientation) devuelve las lecturas del tick de la rueda, ticks, a partir de información de velocidad, velocidad angular y orientación.

Argumentos de entrada

expandir todo

Velocidad del vehículo en el marco de navegación local, especificada como una matriz de escalares N-por-3 en m/s. N es el número de muestras.

Velocidad angular del vehículo en el marco de navegación local, especificada como una matriz de escalares N-por-3 en rad/s. N es el número de muestras.

Orientación del vehículo en el marco de navegación local, especificada como un vector de elemento N de quaternion o un arreglo de matrices de rotación de 3 por 3 por N. N es el número de muestras. Cada cuaternión o matriz de rotación es una rotación del marco desde el sistema de coordenadas de navegación local hasta el sistema de coordenadas actual de la carrocería del vehículo.

Argumentos de salida

expandir todo

Número de tics de rueda que el vehículo movió por paso de tiempo, devuelto como una matriz de números enteros N-por-2. N es el número de muestras. La primera columna es para la rueda trasera y la segunda columna es para la rueda delantera.

Funciones del objeto

Para utilizar una función de objeto, especifique System object como primer argumento de entrada. Por ejemplo, para liberar recursos del sistema de un System object llamado obj, use esta sintaxis:

release(obj)

expandir todo

cloneCreate duplicate System object
stepEjecutar el algoritmo System object
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

Ejemplos

contraer todo

Cree el sensor del codificador de rueda.

encoder = wheelEncoderBicycle;

Definir poses del vehículo.

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];

Genera tics de rueda a partir de las poses.

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

     0     5
     6     7

Capacidades ampliadas

Historial de versiones

Introducido en R2020b