Main Content

Modelo de robot de árbol de cuerpo rígido

El modelo de árbol de cuerpo rígido es una representación de una estructura robótica. Se puede utilizar para representar robots como manipuladores u otros árboles cinemáticos. Utilice objetos para crear estos modelos.rigidBodyTree

Un árbol de cuerpo rígido se compone de sólidos rígidos ( ) que se unen a través de juntas ( ).rigidBodyrigidBodyJoint Cada cuerpo rígido tiene una articulación que define cómo se mueve ese cuerpo en relación con su elemento primario en el árbol. Especifique la transformación de un sólido al siguiente estableciendo la transformación fija en cada unión ( ).setFixedTransform

Puede agregar, reemplazar o quitar sólidos del modelo de árbol de sólidos rígidos. También puede reemplazar juntas para sólidos específicos. El objeto mantiene las relaciones y actualiza las propiedades del objeto para reflejar esta relación.rigidBodyTreerigidBody También puede obtener transformaciones entre diferentes marcos de cuerpo utilizando .getTransform

Componentes del árbol del cuerpo rígido

Base

Cada árbol de cuerpo rígido tiene una base. La base define el marco de coordenadas universales y es el primer punto de unión para un sólido rígido. La base no se puede modificar, excepto por la propiedad.Name Puede hacerlo modificando la propiedad del árbol de sólidos rígidos.BaseName

Cuerpo rígido

El sólido rígido es el bloque de construcción básico del modelo de árbol de sólido rígido y se crea utilizando .rigidBody Un sólido rígido, a veces llamado vínculo, representa un sólido que no se puede deformar. La distancia entre dos puntos cualquiera en un solo sólido rígido permanece constante.

Cuando se agrega a un árbol de sólido rígido con varios sólidos, los sólidos rígidos tienen sólidos primarios o secundarios asociados a ellos (o propiedades).ParentChildren El padre es el cuerpo al que está unido este cuerpo rígido, que puede ser la base del robot. Los niños son todos los cuerpos unidos a este cuerpo aguas abajo de la base del árbol del cuerpo rígido.

Cada sólido rígido tiene un marco de coordenadas asociado y contiene un objeto.rigidBodyJoint

Conjunta

Cada cuerpo rígido tiene una articulación, que define el movimiento de ese cuerpo rígido en relación con su padre. Es el punto de unión que conecta dos cuerpos rígidos en un modelo de robot. Para representar un único cuerpo físico con varias articulaciones o diferentes ejes de movimiento, utilice varios objetos.rigidBody

El objeto admite uniones fijas, revolutas y prismáticas.rigidBodyJoint

Estas articulaciones permiten el siguiente movimiento, dependiendo de su tipo:

  • — Sin movimiento.'fixed' El cuerpo está conectado rígidamente a su padre.

  • — Sólo movimiento rotacional.'revolute' El cuerpo gira alrededor de esta articulación en relación con su padre. Los límites de posición definen la posición angular mínima y máxima en radianes alrededor del eje de movimiento.

  • — Sólo movimiento de traducción.'prismatic' El cuerpo se mueve linealmente en relación con su elemento primario a lo largo del eje de movimiento.

Cada unión tiene un eje de movimiento definido por la propiedad.JointAxis El eje de unión es un vector de unidad 3D que define el eje de rotación (juntas de revolución) o el eje de traslación (uniones prismáticas). La propiedad define la posición de inicio para esa articulación específica, que es un punto dentro de los límites de posición.HomePosition Se utiliza para devolver la configuración de inicio para el robot, que es una colección de todas las posiciones de inicio de las articulaciones en el modelo.homeConfiguration

Las uniones también tienen propiedades que definen la transformación fija entre los marcos de coordenadas del cuerpo primario y secundarios. Estas propiedades solo se pueden establecer mediante el método.setFixedTransform Dependiendo del método de entrada de parámetros de transformación, la propiedad o se establece mediante este método.JointToParentTransformChildToJointTransform La otra propiedad se establece en la matriz de identidad. Las siguientes imágenes muestran lo que significa cada propiedad.

  • Define dónde está la articulación del cuerpo secundario en relación con el marco del cuerpo principal.JointToParentTransform Cuando es una matriz de identidad, el cuerpo primario y los marcos de articulación coinciden.JointToParentTransform

  • Define dónde está la articulación del cuerpo secundario en relación con el marco del cuerpo secundario.ChildToJointTransform Cuando es una matriz de identidad, el cuerpo secundario y los marcos de articulación coinciden.ChildToJointTransform

Nota

Las posiciones de unión reales no forman parte de este objeto.Conjunta El modelo robot es sin estado. Hay una transformación intermedia entre los fotogramas de unión padre e hijo que define la posición de la articulación a lo largo del eje de movimiento. Esta transformación se define en la configuración del robot. Ver.Configuraciones de robots

Configuraciones de robots

Después de ensamblar completamente su robot y definir transformaciones entre diferentes cuerpos, puede crear configuraciones de robots. Una configuración define todas las posiciones conjuntas del robot por sus nombres conjuntos.

Se utiliza para obtener la propiedad de cada articulación y crear la configuración de inicio.homeConfigurationHomePosition

Las configuraciones de robots se dan como una matriz de estructuras. Cada elemento de la matriz es una estructura que contiene el nombre y la posición de una de las articulaciones del robot.

config = homeConfiguration(robot)
config =     1×6 struct array with fields:      JointName     JointPosition
config(1)
ans =     struct with fields:          JointName: 'jnt1'     JointPosition: 0 

También puede generar una configuración aleatoria que obedezca todos los límites de la articulación utilizando .randomConfiguration

Utilice configuraciones de robot cuando desee trazar un robot en una figura utilizando .show Además, puede obtener la transformación entre dos marcos de cuerpo con una configuración específica mediante .getTransform

Para obtener la configuración del robot con una pose de efecto final especificada, utilice .inverseKinematics Este algoritmo resuelve los ángulos de unión necesarios para lograr una postura específica para un cuerpo rígido especificado.

Consulte también

|

Temas relacionados