getTransform
Obtener una transformada entre marcos de cuerpo
Sintaxis
Descripción
calcula la transformada que convierte puntos desde el marco transform
= getTransform(robot
,configuration
,bodyname
)bodyname
al marco de la base del robot utilizando la configuración de robot especificada.
calcula la transformada que convierte puntos desde la estructura del cuerpo de origen a la estructura del cuerpo objetivo utilizando la configuración de robot especificada.transform
= getTransform(robot
,configuration
,sourcebody
,targetbody
)
Ejemplos
Obtener una transformada entre marcos para configurar un robot
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_1"
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);
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
robot
— Modelo de robot
objeto rigidBodyTree
Modelo de robot, especificado como un objeto rigidBodyTree
.
configuration
— Configuración del robot
arreglo de estructuras
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.
bodyname
— Nombre del cuerpo
escalar de cadena | vector de caracteres
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
targetbody
— Nombre del cuerpo objetivo
escalar de cadena | vector de caracteres
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
sourcebody
— Nombre del cuerpo
escalar de cadena | vector de caracteres
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
transform
— Transformada homogénea
matriz de 4 por 4
La transformada homogénea, devuelta como una matriz de 4 por 4.
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
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 R2016bR2024a: Soporte de asignación de memoria estática
getTransform
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 Set Dynamic Memory Allocation Threshold (MATLAB Coder).
Consulte también
rigidBodyJoint
| rigidBody
| geometricJacobian
| homeConfiguration
| randomConfiguration
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)