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.

wheelEncoderUnicycle

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

Desde R2020b

Descripción

El wheelEncoderUnicycle System object™ calcula las lecturas de tick del codificador de rueda basándose en la entrada de pose de un vehículo monociclo.

Para obtener las lecturas de tick del codificador:

  1. Cree el objeto wheelEncoderUnicycle 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 = wheelEncoderUnicycle crea un System object wheelEncoderUnicycle encoder.

encoder = wheelEncoderUnicycle(Name,Value) establece las propiedades del codificador utilizando uno o más pares nombre-valor. Por ejemplo, wheelEncoderUnicycle('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 entero positivo.

Tipos de datos: double

Radio de la rueda, especificado como escalar positivo en metros.

Tipos de datos: double

Sesgo del radio de la rueda, especificado como escalar en metros.

Tipos de datos: double

Desviación estándar del error de posición de la rueda, especificada como un escalar no negativo en radianes.

Tipos de datos: double

Relación de deslizamiento o derrape de la rueda, especificada como un escalar mayor o igual a –1.

  • 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

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 la información de velocidad, velocidad angular y orientación especificadas.

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 un vector de elementos N de enteros no negativos. N es el número de muestras.

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 = wheelEncoderUnicycle;

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×1

     0
     6

Capacidades ampliadas

Historial de versiones

Introducido en R2020b