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.

getTransform

Obtener una transformada entre marcos de cuerpo

Descripción

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

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

ejemplo

Ejemplos

contraer todo

Obtenga la transformada 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 transformada entre los cuerpos "link_l" y "link_t" del robot motoman dada una configuración de robot específica. La transformada 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. These objects represent base_link, link_s, link_l, link_u, link_r, link_b, link_t, link_s_mesh, link_l_mesh, link_u_mesh, link_r_mesh, link_b_mesh, link_t_mesh, base_link_mesh.

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

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, 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

Argumentos de salida

contraer todo

La transformada homogénea, devuelta como una matriz de 4 por 4.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2016b

expandir todo