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.

wheelEncoderOdometryUnicycle

Calcule la odometría del monociclo utilizando tics del codificador de rueda y velocidad angular

Descripción

wheelEncoderOdometryUnicycle System object™ calcula la odometría del monociclo utilizando los ticks del codificador de la rueda y la velocidad angular.

Para calcular la odometría de un monociclo:

  1. Cree el objeto wheelEncoderOdometryUnicycle 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

whlEncOdom = wheelEncoderOdometryUnicycle crea un wheelEncoderOdometryUnicycle System object con valores de propiedad predeterminados.

ejemplo

whlEncOdom = wheelEncoderOdometryUnicycle(encoder) crea un wheelEncoderOdometryUnicycle System object utilizando los wheelEncoderUnicycle System object y encoder especificados para establecer las propiedades.

whlEncOdom = wheelEncoderOdometryUnicycle(Name,Value) establece Propiedades utilizando uno o más pares nombre-valor. Las propiedades no especificadas tienen valores predeterminados. Encierre el nombre de cada propiedad entre comillas.

Por ejemplo, whlEncOdom = wheelEncoderOdometryUnicycle('SampleRate',100) establece la frecuencia de muestreo del sensor a 100 Hz.

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 sensor, especificada como un escalar positivo en hercios.

Ejemplo: 'SampleRate',100

Tipos de datos: double

Número de tics del codificador por revolución de la rueda, especificado como un entero positivo.

Ejemplo: 'TicksPerRevolution',2048

Tipos de datos: double

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

Ejemplo: 'WheelRadius',0.35

Tipos de datos: double

Pose inicial del vehículo, especificada como un vector de tres elementos con la forma [X Y Yaw]. X y Y especifican la posición del vehículo en metros. Yaw especifica la orientación del vehículo en radianes. Todos los valores están en el sistema de coordenadas de navegación local.

Ejemplo: 'InitialPose',[0 0 0]

Ajustable: No

Tipos de datos: double

Uso

Descripción

pose = whlEncOdom(ticks,angVel) calcula la odometría de un monociclo utilizando los ticks del codificador de rueda especificados ticks y la velocidad angular angVel, y devuelve la posición y orientación del vehículo en el sistema de coordenadas de navegación local.

[pose,velocity] = whlEncOdom(ticks,angVel) también devuelve la velocidad lineal y angular del vehículo en el sistema de coordenadas de navegación local.

ejemplo

Argumentos de entrada

expandir todo

Número de ticks del codificador de rueda, especificado como un vector columna de elementos n. n es el número de muestras en el cuadro actual.

Ejemplo: [5; 2]

Tipos de datos: single | double

Velocidad angular del vehículo en el sistema de coordenadas de la carrocería del vehículo, especificada como un vector columna de elementos n en radianes por segundo. n es el número de muestras en el cuadro actual.

Ejemplo: [0.2; 0.2]

Tipos de datos: single | double

Argumentos de salida

expandir todo

Posición y orientación del vehículo, devuelta como una matriz n por 3. n es el número de muestras en el cuadro actual. Cada fila de la matriz especifica la posición y orientación de una muestra en la forma [X Y Yaw]. X y Y especifican la posición del vehículo en metros. Yaw especifica la orientación del vehículo en radianes. Todos los valores están en el sistema de coordenadas de navegación local.

Tipos de datos: single | double

Velocidad lineal y angular del vehículo, devuelta como una matriz n por 3. n es el número de muestras en el cuadro actual. Cada fila de la matriz especifica la velocidad lineal y angular de una muestra en la forma [velX velY yawRate]. velX y velY especifican la velocidad lineal del vehículo en metros por segundo. yawRate especifica la velocidad angular del vehículo en radianes por segundo. Todos los valores están en el sistema de coordenadas de navegación local.

Tipos de datos: single | double

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

Crea un wheelEncoderOdometryUnicycle System object.

whlEncOdom = wheelEncoderOdometryUnicycle;

Especifique el número de ticks del codificador de rueda y la velocidad angular.

ticks = [5; 2];
angVel = [0.2; 0.2];

Calcula la odometría del monociclo.

[pose,vel] = whlEncOdom(ticks,angVel)
pose = 2×3

    0.0054    0.0000    0.0020
    0.0075    0.0000    0.0040

vel = 2×3

    0.5369    0.0011    0.2000
    0.2148    0.0009    0.2000

Capacidades ampliadas

expandir todo

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2020b