Contenido principal

getTransform

Obtener una transformación entre marcos de cuerpo

Descripción

transform = getTransform(robot,configuration) calcula la transformación para todos los marcos en el árbol de cuerpo rígido con respecto al marco base del robot utilizando la configuración de robot configuration.

transform = getTransform(robot,configuration,bodyname) calcula la transformación que convierte puntos desde el marco bodyname al marco base del robot utilizando la configuración de robot especificada.

transform = getTransform(robot,configuration,framename) calcula la transformación que convierte puntos desde el marco framename al marco base del robot utilizando la configuración de robot especificada.

transform = getTransform(robot,configuration,sourcebody,targetbody) calcula la transformación que convierte puntos del marco del cuerpo de origen al marco del cuerpo objetivo utilizando la configuración de robot especificada.

ejemplo

transform = getTransform(robot,configuration,sourceframe,targetframe) calcula la matriz de transformación homogénea que convierte puntos del marco de origen al marco objetivo utilizando la configuración de robot especificada.

Ejemplos

contraer todo

Obtenga la transformación entre los dos marcos para una configuración de robot específica.

Cargue un manipulador Yaskawa Motoman MH-5 de Robotics System Toolbox™ loadrobot.

motoman = loadrobot("yaskawaMotomanMH5");
showdetails(motoman)
--------------------
Robot: (6 bodies)

 Idx     Body Name     Joint Name     Joint Type     Parent Name(Idx)   Children Name(s)
 ---     ---------     ----------     ----------     ----------------   ----------------
   1        link_s        joint_s       revolute         base_link(0)   link_l(2)  
   2        link_l        joint_l       revolute            link_s(1)   link_u(3)  
   3        link_u        joint_u       revolute            link_l(2)   link_r(4)  
   4        link_r        joint_r       revolute            link_u(3)   link_b(5)  
   5        link_b        joint_b       revolute            link_r(4)   link_t(6)  
   6        link_t        joint_t       revolute            link_b(5)   
--------------------

Obtenga la transformación entre los cuerpos "link_l" y "link_t" del robot motoman dada una configuración de robot específica. La transformación convierte puntos del marco "link_l" al marco "link_t".

q = randomConfiguration(motoman);
show(motoman,q);

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 20 objects of type patch, line.

transform = getTransform(motoman,q,"link_l","link_t")
transform = 4×4

    0.7787    0.0961   -0.6199    0.3115
    0.5256    0.4396    0.7283   -0.4624
    0.3425   -0.8930    0.2918   -0.1886
         0         0         0    1.0000

Argumentos de entrada

contraer todo

Modelo de robot, especificado como un objeto rigidBodyTree.

La configuración del robot, especificada como un arreglo de estructuras 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 propios nombres y posiciones de articulación en un arreglo de estructuras.

Nombre del cuerpo, especificado como escalar de cadena o vector de caracteres. Este cuerpo debe formar parte del modelo de robot especificado en robot.

Tipos de datos: char | string

Nombre del marco, especificado como escalar de cadena o vector de caracteres. Este marco debe formar parte del modelo de robot especificado en robot.

Tipos de datos: char | string

El nombre del cuerpo objetivo, especificado como vector de caracteres. Este cuerpo debe formar parte del modelo de robot especificado en robot. El marco de destino es el sistema de coordenadas al que desea transformar los puntos.

Tipos de datos: char | string

Nombre del cuerpo de origen, especificado como escalar de cadena o vector de caracteres. Este cuerpo debe formar parte del modelo de robot especificado en robot. El marco de origen es el sistema de coordenadas al que pertenecen los puntos que desea transformar.

Tipos de datos: char | string

Nombre del marco objetivo, especificado como vector de caracteres. Este marco debe formar parte del modelo de robot especificado en robot. El marco de destino es el sistema de coordenadas al que desea transformar los puntos.

Tipos de datos: char | string

Nombre del marco de origen, especificado como escalar de cadena o vector de caracteres. Este marco debe formar parte del modelo de robot especificado en robot. El marco de origen es el sistema de coordenadas al que pertenecen los puntos que desea transformar.

Tipos de datos: char | string

Argumentos de salida

contraer todo

La transformación homogénea, devuelta como una matriz de 4 por 4.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2016b

expandir todo