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.

wheelEncoderOdometryBicycle

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

Desde R2020b

Descripción

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

Para calcular la odometría de una bicicleta:

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

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

whlEncOdom = wheelEncoderOdometryBicycle(encoder) crea un System object wheelEncoderOdometryBicycle utilizando el System object wheelEncoderBicycle especificado, encoder, para establecer propiedades .

whlEncOdom = wheelEncoderOdometryBicycle(Name,Value) establece Propiedades usando 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 en 100 Hz.

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 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 vector de tres elementos de 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 de el vehículo en el sistema de coordenadas de navegación local.

ejemplo

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

Argumentos de entrada

expandir todo

Número de ticks del codificador de rueda, especificado como un vector columna de elemento 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 elemento 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, devueltas 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 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 un System object wheelEncoderOdometryBicycle .

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

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

Historial de versiones

Introducido en R2020b