Contenido principal

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

Descripción

wheelEncoderAckermann System object™ calcula las lecturas del codificador de rueda basándose en la entrada de posición de un vehículo Ackermann.

Para obtener las lecturas de tick del codificador:

  1. Cree el objeto wheelEncoderAckermann y configure sus propiedades.

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

Para más información sobre el funcionamiento de los System objects, consulte ¿Qué son los System Objects?

Creación

Descripción

encoder = wheelEncoderAckermann crea un wheelEncoderAckermann System object, encoder.

ejemplo

encoder= wheelEncoderAckermann(Name,Value) establece propiedades para el codificador utilizando uno o más pares nombre-valor. Por ejemplo, wheelAckermann('SampleRate',120) establece la frecuencia de muestreo del codificador a 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 puede modificar sus valores después de llamar al objeto. Los objetos se bloquean cuando llama a ellos, y la función release los desbloquea.

Si una propiedad es ajustable, puede modificar su valor en cualquier momento.

Para obtener más información sobre cómo modificar los valores de las propiedades, consulte Diseñar sistemas en MATLAB utilizando 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 de tics de la rueda, ticks, la velocidad de la forma, la velocidad angular y la 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 N por 3 de escalares 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 N por 3 de escalares 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 N elementos 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 ciclos 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 usar una función de objeto, especifique el System object como el primer argumento de entrada. Por ejemplo, para liberar recursos de sistema de un System object llamado obj, utilice la siguiente 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

expandir todo

Historial de versiones

Introducido en R2020b