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.

wheelEncoderOdometryBicycle

Calcule la odometría de la bicicleta utilizando los ticks del codificador de rueda y el ángulo de dirección

Descripción

El wheelEncoderOdometryBicycle System object™ calcula la odometría de la bicicleta utilizando los ticks del codificador de la rueda y el ángulo de dirección del vehículo.

Para calcular la odometría de una bicicleta:

  1. Cree el objeto wheelEncoderOdometryBicycle 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 = wheelEncoderOdometryBicycle crea un wheelEncoderOdometryBicycle System object con valores de propiedad predeterminados.

ejemplo

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

whlEncOdom = wheelEncoderOdometryBicycle(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 = wheelEncoderOdometryBicycle('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. Este valor corresponde a la rueda trasera de la bicicleta.

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

Distancia entre el eje delantero y trasero, especificada como escalar positivo en metros.

Ejemplo: 'WheelBase',2.818

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,steer) calcula la odometría de una bicicleta utilizando los ticks del codificador de rueda especificados ticks y el ángulo de dirección steer, y devuelve la posición y orientación del vehículo en el sistema de coordenadas de navegación local.

[pose,velocity] = whlEncOdom(ticks,steer) 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. Cada elemento es el número de ticks de la rueda trasera de la bicicleta en la muestra correspondiente.

Ejemplo: [5; 2]

Tipos de datos: single | double

Ángulo de dirección del vehículo, especificado como un vector columna de elementos n en radianes. 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 wheelEncoderOdometryBicycle System object.

whlEncOdom = wheelEncoderOdometryBicycle;

Especifique el número de ticks del codificador de rueda y el ángulo de dirección.

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

Calcular la odometría de la bicicleta.

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

    0.0054    0.0000    0.0004
    0.0075    0.0000    0.0005

vel = 2×3

    0.5369    0.0002    0.0386
    0.2148    0.0001    0.0154

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