Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

forwardDynamics

Aceleración de las articulaciones dados los par motores y los estados de articulación

Descripción

jointAccel = forwardDynamics(robot) calcula las aceleraciones de articulaciones debidas a la gravedad en la configuración inicial del robot, con velocidades de articulación cero y sin fuerzas externas.

jointAccel = forwardDynamics(robot,configuration) también especifica las posiciones de las articulaciones de la configuración del robot.

Para especificar la configuración inicial, velocidades de articulación cero o par motores cero, use [] para ese argumento de entrada.

jointAccel = forwardDynamics(robot,configuration,jointVel) también especifica las velocidades de articulación del robot.

jointAccel = forwardDynamics(robot,configuration,jointVel,jointTorq) también especifica los par motores de articulación aplicados al robot.

jointAccel = forwardDynamics(robot,configuration,jointVel,jointTorq,fext) también especifica una matriz de fuerza externa que contiene las fuerzas aplicadas a cada articulación.

ejemplo

Ejemplos

contraer todo

Calcule las aceleraciones de las articulaciones resultantes para una determinada configuración de robot a la que se aplican fuerzas externas y fuerzas debidas a la gravedad. Se aplica una fuerza a un cuerpo concreto y se especifica la gravedad para todo el robot.

Cargue un modelo de robot KUKA iiwa 14 de Robotics System Toolbox™ loadrobot. El robot se especifica como un objeto rigidBodyTree.

Establezca el formato de datos en "row". El formato de datos debe ser "row" o "column" para todos los cálculos de dinámica.

Establezca la gravedad. De forma predeterminada, se asume que la gravedad es cero.

kukaIIWA14 = loadrobot("kukaIiwa14",DataFormat="row",Gravity=[0 0 -9.81]);

Obtenga la configuración inicial para el robot kukaIIWA14.

q = homeConfiguration(kukaIIWA14);

Especifique el vector de fuerza que representa las fuerzas externas que experimenta el robot. Utilice la función externalForce para generar la matriz de fuerzas externas. Especifique el modelo de robot, el efector final que experimenta la fuerza, el vector de fuerza y la configuración actual del robot. wrench se da con relación al marco de cuerpo "iiwa_link_ee_kuka", que requiere que especifique la configuración del robot, q.

wrench = [0 0 0.5 0 0 0.3];
fext = externalForce(kukaIIWA14,"iiwa_link_ee_kuka",wrench,q);

Calcule las aceleraciones de las articulaciones resultantes debidas a la gravedad, con la fuerza externa aplicada al efector final "iiwa_link_ee_kuka" cuando kukaIIWA14 está en su configuración inicial. Las velocidades y los par motores de articulación se asumen como cero (se introducen como un vector vacío, []).

qddot = forwardDynamics(kukaIIWA14,q,[],[],fext)
qddot = 1×7

   -0.0023   -0.0112    0.0036   -0.0212    0.0067   -0.0075  499.9920

Argumentos de entrada

contraer todo

Modelo de robot, especificado como un objeto rigidBodyTree. Para usar la función forwardDynamics, establezca la propiedad DataFormat en 'row' o 'column'.

Configuración del robot, especificada como un vector con posiciones para todas las articulaciones no fijas del modelo de robot. Puede generar una configuración utilizando homeConfiguration(robot) o randomConfiguration(robot), o especificando sus propias posiciones de articulación. Para usar la forma de vector de configuration, establezca la propiedad DataFormat para el robot en 'row' o 'column'.

Velocidades de articulación, especificadas como vector. El número de velocidades de articulación es igual a los grados de libertad del robot. Para usar la forma de vector de jointVel, establezca la propiedad DataFormat para el robot en 'row' o 'column'.

Par motores de articulación, especificados como vector. Cada elemento corresponde a un par motor aplicado a una articulación específica. Para usar la forma de vector de jointTorq, establezca la propiedad DataFormat para el robot en 'row' o 'column'.

Matriz de fuerza externa, especificada como una matriz de n por 6 o de 6 por n, donde n es el número de cuerpos del robot. La forma depende de la propiedad DataFormat del robot. El formato de datos 'row' usa una matriz de n por 6. El formato de datos 'column' usa 6 por n.

La matriz solo enumera valores distintos de cero en las ubicaciones correspondientes al cuerpo especificado. Puede añadir matrices de fuerza a la vez para especificar múltiples fuerzas sobre múltiples cuerpos.

Para crear la matriz para un par motor o fuerza específicos, consulte externalForce.

Argumentos de salida

contraer todo

Aceleración de las articulaciones, devueltas como vector. La dimensión del vector de aceleraciones de articulaciones es igual a los grados de libertad del robot. Cada elemento corresponde a una articulación específica en el robot.

Más acerca de

contraer todo

Referencias

[1] Featherstone, Roy. Rigid Body Dynamics Algorithms. Springer US, 2008. DOI.org (Crossref), doi:10.1007/978-1-4899-7560-7.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2017a

expandir todo