geometricJacobian
Jacobianas geométricas para configurar robots
Sintaxis
Descripción
calcula la jacobiana geométrica en relación con la base para el marco de efector final y la configuración del modelo de robot especificados.jacobian = geometricJacobian(robot,configuration,endeffectorframe)
calcula la jacobiana geométrica para el marco de efector final con respecto al marco de referencia especificado.jacobian = geometricJacobian(___,referenceframe)
Ejemplos
Calcule la jacobiana geométrica para un efector final y una configuración de robot específicos.
Cargue un robot PUMA 560 de Robotics System Toolbox™ loadrobot, especificado como un objeto rigidBodyTree.
puma = loadrobot("puma560");Calcule la jacobiana geométrica del cuerpo "link7" en el robot Puma para una configuración aleatoria.
geoJacob = geometricJacobian(puma,randomConfiguration(puma),"link7")geoJacob = 6×6
-0.0000 -0.5752 -0.5752 -0.4266 -0.7683 -0.5213
0.0000 0.8180 0.8180 -0.3000 -0.3776 0.8377
1.0000 -0.0000 -0.0000 0.8533 -0.5168 0.1629
0.1696 0.0823 0.3087 -0.0407 0.0198 0
-0.5577 0.0578 0.2171 -0.0200 0.0210 0
0.0000 0.5538 0.2224 -0.0274 -0.0448 0
Argumentos de entrada
Modelo de robot, especificado como un objeto rigidBodyTree.
Configuración del robot, especificada como un vector de posiciones de articulación o una estructura con nombres y posiciones de articulación para todos los cuerpos del modelo de robot. Puede generar una configuración utilizando homeConfiguration(robot) o randomConfiguration(robot), o especificando sus propias posiciones de articulación en una estructura. Para usar la forma de vector de configuration, establezca la propiedad DataFormat para el robot en "row" o "column".
Nombre del marco del efector final, especificado como escalar de cadena o vector de caracteres. El marco del efector final puede ser cualquier marco o cuerpo del modelo de robot.
Tipos de datos: char | string
Nombre del marco de referencia, especificado como escalar de cadena o vector de caracteres. El marco de referencia puede ser cualquier marco o cuerpo del modelo de robot.
De forma predeterminada, el marco de referencia está establecido en el mismo valor que la propiedad BaseName del objeto rigidBodyTree.
Tipos de datos: char | string
Argumentos de salida
Jacobiana geométrica del efector final con la configuration especificada, que se devuelve como una matriz de 6 por n, donde n es el número de grados de libertad del robot. La jacobiana J relaciona la velocidad del espacio articular con la velocidad del efector final respecto al marco de coordenadas de la base. La velocidad del efector final es igual a:
ω es la velocidad angular, υ es la velocidad lineal, y
es la velocidad del espacio articular.
De forma predeterminada, la jacobiana geométrica es relativa al marco de coordenadas de la base (J = Jbase). Si especifica un marco de referencia diferente mediante el argumento referenceframe, la función geometricJacobian transforma la jacobiana en el sistema de coordenadas del marco de referencia:
y son matrices de rotación SO(3) que relacionan las orientaciones del marco de coordenadas de la base y el marco de referencia.
Más acerca de
Si trabaja con dinámicas de robot, especifique la información de los distintos cuerpos del manipulador robótico utilizando estas propiedades de los objetos rigidBody:
Mass: masa del cuerpo rígido en kilogramos.CenterOfMass: posición del centro de masa del cuerpo rígido, especificado como un vector con la forma[x y z]. El vector describe la ubicación del centro de masa del cuerpo rígido respecto al marco del cuerpo en metros. La función de objetocenterOfMassutiliza los valores de propiedad del cuerpo rígido al calcular el centro de masa de un robot.Inertia: inercia del cuerpo rígido, especificada como un vector con la forma[Ixx Iyy Izz Iyz Ixz Ixy]. El vector es relativo al marco del cuerpo en kilogramos por metro cuadrado. El tensor de inercia es una matriz definida positiva con la forma:
Los primeros tres elementos del vector
Inertiason el momento de inercia, que son los elementos en diagonal del tensor de inercia. Los últimos tres elementos son el producto de la inercia, que son los elementos fuera de la diagonal del tensor de inercia.
Para obtener información relacionada con todo el modelo de manipulador robótico, especifique estas propiedades del objeto rigidBodyTree:
Gravity: aceleración gravitacional experimentada por el robot, especificada como un vector[x y z]en m/s2. De forma predeterminada, no existe aceleración gravitacional.DataFormat: formato de los datos de entrada y salida de las funciones cinemáticas y dinámicas, especificado como"struct","row"o"column".
La dinámica de un cuerpo rígido de manipulador se rige por esta ecuación:
también expresada como:
donde:
: es una matriz de masa de espacio articular basada en la configuración actual del robot. Calcule esta matriz utilizando la función de objeto
massMatrix.: son los términos de Coriolis, que se multiplican por para calcular el producto de velocidad. Calcule el producto de velocidad utilizando la función de objeto
velocityProduct.: son las fuerzas y los par motores de gravedad necesarios para que todas las articulaciones mantengan sus posiciones en la gravedad especificada
Gravity. Calcule el par motor de gravedad utilizando la función de objetogravityTorque.: es la jacobiana geométrica de la configuración de articulación especificada. Calcule la jacobiana geométrica utilizando la función de objeto
geometricJacobian.: es una matriz de las fuerzas externas aplicadas al cuerpo rígido. Genere las fuerzas externas utilizando la función de objeto
externalForce.: son las fuerzas y los pares articulares, aplicados directamente como un vector a cada articulación.
: son la configuración de articulación, las velocidades de articulación y las aceleraciones de las articulaciones, respectivamente, como vectores individuales. Para las articulaciones rotacionales, especifique los valores en radianes, rad/s y rad/s2, respectivamente. Para las articulaciones prismáticas, especifíquelos en metros, m/s y m/s2.
Para calcular la dinámica directamente, utilice la función de objeto forwardDynamics. Esta función calcula las aceleraciones de las articulaciones para las combinaciones especificadas de las entradas anteriores.
Para realizar un conjunto de movimientos determinado, utilice la función de objeto inverseDynamics. La función calcula los pares articulares que son necesarios para obtener la configuración, así como las velocidades, aceleraciones y fuerzas externas especificadas.
Referencias
[1] Featherstone, Roy. Rigid Body Dynamics Algorithms. Springer US, 2008. DOI.org (Crossref), doi:10.1007/978-1-4899-7560-7.
Capacidades ampliadas
Indicaciones y limitaciones de uso:
Cuando cree el objeto rigidBodyTree, utilice la sintaxis que especifica MaxNumBodies como el límite superior para añadir cuerpos al modelo de robot. También debe especificar la propiedad DataFormat como un par nombre-valor. Por ejemplo:
robot = rigidBodyTree("MaxNumBodies",15,"DataFormat","row")
Para minimizar el uso de datos, restrinja el límite superior a un número aproximado al número de cuerpos previsto del modelo. La generación de código admite todos los formatos de datos. Para usar las funciones de dinámica, el formato de datos debe configurarse en "row" o "column".
Las funciones show y showdetails no admiten la generación de código.
Historial de versiones
Introducido en R2016bAhora puede utilizar la función de objeto geometricJacobian para calcular la jacobiana geométrica en cualquier marco de referencia. De forma predeterminada, el marco de referencia está establecido en la base del árbol de cuerpo rígido.
El método geometricJacobian ahora acepta un nombre de cuerpo o un nombre de marco en su argumento de entrada, para el que se calcula la jacobiana geométrica.
geometricJacobian ahora admite la generación de código con asignación de memoria dinámica deshabilitada. Para obtener más información sobre cómo deshabilitar la asignación de memoria dinámica, consulte Control Dynamic Memory Allocation in Generated Code (MATLAB Coder).
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)