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.

wheelEncoderOdometryDifferentialDrive

Calcule la odometría del vehículo con tracción diferencial utilizando ticks del codificador de ruedas

Descripción

wheelEncoderOdometryDifferentialDrive System object™ calcula la odometría del vehículo con transmisión diferencial utilizando los ticks del codificador de la rueda.

Para calcular la odometría de un vehículo con tracción diferencial:

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

ejemplo

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

whlEncOdom = wheelEncoderOdometryDifferentialDrive(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 = wheelEncoderOdometryDifferentialDrive('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 o un vector de dos elementos de enteros positivos.

Al especificar este valor como un vector de dos elementos, el primer elemento corresponde a la rueda izquierda y el segundo a la rueda derecha.

Ejemplo: 'TicksPerRevolution',[2048 2048]

Tipos de datos: double

Radio de la rueda, especificado como un escalar positivo o un vector de dos elementos de números positivos en metros.

Al especificar este valor como un vector de dos elementos, el primer elemento corresponde a la rueda izquierda y el segundo a la rueda derecha.

Ejemplo: 'WheelRadius',[0.35 0.35]

Tipos de datos: double

Distancia entre las ruedas sobre el eje, especificada como escalar positivo en metros.

Ejemplo: 'TrackWidth',1.572

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]

Tipos de datos: double

Uso

Descripción

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

[pose,velocity] = whlEncOdom(ticks) 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 una matriz n por 2. n es el número de muestras en el cuadro actual.

Cada fila de la matriz especifica los ticks del codificador de rueda en el formato [ticksLeft ticksRight], donde ticksLeft y ticksRight especifican la cantidad de ticks para las ruedas izquierda y derecha, respectivamente.

Ejemplo: [5 5; 2 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 wheelEncoderOdometryDifferentialDrive System object.

whlEncOdom = wheelEncoderOdometryDifferentialDrive;

Especifique el número de ticks del codificador de rueda.

ticks = [5 5; 2 2];

Calcule la odometría del vehículo con tracción diferencial.

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

    0.0054         0         0
    0.0075         0         0

vel = 2×3

    0.5369         0         0
    0.2148         0         0

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