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.

wheelEncoderAckermann

Simule las lecturas del sensor del codificador de ruedas para un vehículo Ackermann

Desde R2020b

Descripción

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

Para obtener las lecturas de tick del codificador:

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

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

Ejemplo: 'SampleRate',100

Tipos de datos: double

Número de tics del codificador por revolución de la rueda, especificado como un vector de cuatro elementos de enteros positivos. Los elementos primero, segundo, tercero y cuarto son para las ruedas trasera izquierda, trasera derecha, delantera izquierda y delantera derecha, respectivamente.

Tipos de datos: double

Radio de la rueda, especificado como un vector de cuatro elementos de escalares positivos en metros. Los elementos primero, segundo, tercero y cuarto son para las ruedas trasera izquierda, trasera derecha, delantera izquierda y delantera derecha, respectivamente.

Tipos de datos: double

Sesgo del radio de la rueda, especificado como un vector escalar de cuatro elementos en metros. Los elementos primero, segundo, tercero y cuarto son para las ruedas trasera izquierda, trasera derecha, delantera izquierda y delantera derecha, respectivamente.

Tipos de datos: double

Desviación estándar del error de posición de la rueda, especificada como un vector de cuatro elementos de escalares no negativos en radianes. Los elementos primero, segundo, tercero y cuarto son para las ruedas trasera izquierda, trasera derecha, delantera izquierda y delantera derecha, respectivamente.

Tipos de datos: double

Relación de deslizamiento o derrape de la rueda, especificada como un vector de escalares de cuatro elementos en el que cada escalar es mayor o igual a –1. Los elementos primero, segundo, tercero y cuarto son para las ruedas trasera izquierda, trasera derecha, delantera izquierda y delantera derecha, respectivamente.

  • 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 los ejes de las ruedas, especificada como un vector de dos elementos de escalares positivos en metros. El primer elemento es para la vía trasera y el segundo elemento es para la vía delantera.

Tipos de datos: double

Sesgo del ancho de vía, especificado como un vector de escalares de dos elementos en metros. El primer elemento es para la vía trasera y el segundo elemento es para la vía delantera.

Tipos de datos: double

Distancia entre los ejes delantero y trasero, 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, velocidad de forma, velocidad angular e información de 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 N-por-4 de números enteros no negativos. N es el número de muestras. La primera, segunda, tercera y cuarta columnas son para las ruedas trasera izquierda, trasera derecha, delantera izquierda y delantera derecha, respectivamente.

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

Definir poses del vehículo.

orient = [quaternion([60 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×4

     3     6     6     8
     6     7     6     7

Capacidades ampliadas

Historial de versiones

Introducido en R2020b