Main Content

importrobot

Importe el modelo de árbol de cuerpo rígido desde el archivo URDF, texto o SimscapeMultibody Modelo

Descripción

ejemplo

robot = importrobot(filename) devuelve un objeto analizando el archivo de formato de descripción de robot unificado (URDF) especificado por .rigidBodyTreefilename

ejemplo

robot = importrobot(URDFtext) analiza el texto uRDF. Especifique como un vector escalar de cadena o de caracteres.URDFtext

[robot,importInfo] = importrobot(model) importa un Simscape™Multibody™ modelo y devuelve un objeto equivalente e información sobre la importación en .rigidBodyTreeimportInfo En el objeto de salida solo se admiten uniones fijas, prismáticas y revolutas.rigidBodyTree Utilice los pares nombre-valor para importar un modelo que utilice otros tipos de unión, bloques de restricción o inercias variables.SimscapeMultibody Importación de modelos

___ = importrobot(___,Name,Value) proporciona opciones adicionales especificadas por argumentos de par.Name,Value Utilice cualquiera de las sintaxis anteriores. Sólo ciertos pares nombre-valor se aplican dependiendo de si se convierte desde un archivo URDF o un SimscapeMultibody Modelo.

Ejemplos

contraer todo

Importe un archivo URDF como un objeto.rigidBodyTree

robot = importrobot('iiwa14.urdf')
robot =    rigidBodyTree with properties:       NumBodies: 10         Bodies: {1x10 cell}           Base: [1x1 rigidBody]      BodyNames: {1x10 cell}       BaseName: 'world'        Gravity: [0 0 0]     DataFormat: 'struct'  
show(robot)

ans =    Axes (Primary) with properties:               XLim: [-1.5000 1.5000]              YLim: [-1.5000 1.5000]            XScale: 'linear'            YScale: 'linear'     GridLineStyle: '-'          Position: [0.1300 0.1100 0.7750 0.8150]             Units: 'normalized'    Show all properties  

Especifique el vector de caracteres URDF. Este vector de caracteres es una descripción minimalista para crear un modelo de robot válido.

URDFtext = '<?xml version="1.0" ?><robot name="min"><link name="L0"/></robot>';

Importe el modelo de robot. La descripción crea un objeto r que solo tiene un vínculo base de robot denominado .igidBodyTree'L0'

robot = importrobot(URDFtext)
robot =    rigidBodyTree with properties:       NumBodies: 0         Bodies: {1x0 cell}           Base: [1x1 rigidBody]      BodyNames: {1x0 cell}       BaseName: 'L0'        Gravity: [0 0 0]     DataFormat: 'struct'  

Puede importar robots que tengan archivos asociados con el archivo de formato de descripción de robots unificados (URDF) para describir las geometrías visuales del robot..stl Cada sólido rígido tiene una geometría visual individual especificada. La función analiza el archivo URDF para obtener el modelo de robot y las geometrías visuales.importrobot Utilice la función para visualizar el modelo de robot en una figura.show A continuación, puede interactuar con el modelo haciendo clic en componentes para inspeccionarlos y haciendo clic con el botón derecho para alternar la visibilidad.

Importe un modelo de robot como un archivo URDF. Las ubicaciones de los archivos deben especificarse correctamente en este URDF..stl Para agregar otros archivos a sólidos rígidos individuales, consulte ..stladdVisual

robot = importrobot('iiwa14.urdf');

Visualice el robot con el modelo visual asociado. Haga clic en sólidos o marcos para inspeccionarlos. Haga clic con el botón derecho del botón derecho del botón derecho del botón del programa para alternar la visibilidad de cada geometría visual.

show(robot);

Importa un modelo de robot™™ Multibody existente en la caja de herramientas del sistema de robótica™ como objeto.rigidBodyTree

Abre el modelo Dest™ De Simscape™ Multibody. Este es un modelo para un robot humanoide.

open_system('example_smhumanoidrobot.slx')

Importe el modelo.

[robot,importInfo] = importrobot(gcs)
robot =    rigidBodyTree with properties:       NumBodies: 21         Bodies: {1x21 cell}           Base: [1x1 rigidBody]      BodyNames: {1x21 cell}       BaseName: 'Base'        Gravity: [0 0 -9.8066]     DataFormat: 'struct'  
importInfo =    rigidBodyTreeImportInfo with properties:          SourceModelName: 'example_smhumanoidrobot'           RigidBodyTree: [1x1 rigidBodyTree]     BlockConversionInfo: [1x1 struct]  

Mostrar detalles sobre el objeto creado.rigidBodyTree

showdetails(importInfo)
-------------------- Robot: (21 bodies)   Idx     Body Name     Simulink Source Blocks     Joint Name     Simulink Source Blocks   Joint Type     Parent Name(Idx)   Children Name(s)  ---     ---------     ----------------------     ----------     ----------------------   ----------     ----------------   ----------------    1        Body01    Info | List | Highlight        Joint01    Info | List | Highlight     revolute              Base(0)   Body02(2)      2        Body02    Info | List | Highlight        Joint02    Info | List | Highlight     revolute            Body01(1)   Body03(3)      3        Body03    Info | List | Highlight        Joint03    Info | List | Highlight     revolute            Body02(2)   Body04(4)      4        Body04    Info | List | Highlight        Joint04    Info | List | Highlight     revolute            Body03(3)       5        Body05    Info | List | Highlight        Joint05    Info | List | Highlight     revolute              Base(0)   Body06(6)      6        Body06    Info | List | Highlight        Joint06    Info | List | Highlight     revolute            Body05(5)   Body07(7)      7        Body07    Info | List | Highlight        Joint07    Info | List | Highlight     revolute            Body06(6)   Body08(8)      8        Body08    Info | List | Highlight        Joint08    Info | List | Highlight     revolute            Body07(7)       9        Body09    Info | List | Highlight        Joint09    Info | List | Highlight     revolute              Base(0)   Body10(10)     10        Body10    Info | List | Highlight        Joint10    Info | List | Highlight     revolute            Body09(9)   Body11(11)     11        Body11    Info | List | Highlight        Joint11    Info | List | Highlight     revolute           Body10(10)   Body12(12)     12        Body12    Info | List | Highlight        Joint12    Info | List | Highlight     revolute           Body11(11)      13        Body13    Info | List | Highlight        Joint13    Info | List | Highlight     revolute              Base(0)   Body14(14)     14        Body14    Info | List | Highlight        Joint14    Info | List | Highlight     revolute           Body13(13)   Body15(15)     15        Body15    Info | List | Highlight        Joint15    Info | List | Highlight     revolute           Body14(14)   Body16(16)     16        Body16    Info | List | Highlight        Joint16    Info | List | Highlight     revolute           Body15(15)      17        Body17    Info | List | Highlight        Joint17    Info | List | Highlight     revolute              Base(0)   Body18(18)     18        Body18    Info | List | Highlight        Joint18    Info | List | Highlight     revolute           Body17(17)   Body19(19)     19        Body19    Info | List | Highlight        Joint19    Info | List | Highlight        fixed           Body18(18)   Body20(20)     20        Body20    Info | List | Highlight        Joint20    Info | List | Highlight        fixed           Body19(19)      21        Body21    Info | List | Highlight        Joint21    Info | List | Highlight        fixed              Base(0)    -------------------- 

Argumentos de entrada

contraer todo

Nombre del archivo URDF, especificado como un escalar de cadena o un vector de caracteres. Este archivo debe ser una descripción válida del robot URDF.

Ejemplo: "robot_file.urdf"

Tipos de datos: char | string

Texto del robot URDF, especificado como un escalar de cadena o vector de caracteres.

Ejemplo: "<?xml version="1.0" ?><robot name="min"><link name="L0"/></robot>"

Tipos de datos: char | string

SimscapeMultibody modelo, especificado como un identificador de modelo, escalar de cadena o vector de caracteres.

Tipos de datos: double | char | string

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: "MeshPath",{"../arm_meshes","../body_meshes"}
Importación de archivos URDF

contraer todo

Rutas de búsqueda relativas para archivos de malla, especificadas como un escalar de cadena, un vector de caracteres o una matriz de celdas de escalares de cadena o vectores de caracteres. Los archivos de malla todavía deben especificarse dentro del archivo URDF, pero definen las rutas relativas para estos archivos especificados.MeshPath Al utilizar esta función, el importador URDF busca los archivos de malla especificados en el URDF utilizando todas las rutas relativas especificadas.

Tipos de datos: char | string | cell

SimscapeMultibody Importación de modelos

contraer todo

Indica si se deben romper cadenas cerradas en la entrada dada, especificada como o .model"error""remove-joints" Si especifica , la salida resultante tiene uniones de cierre de cadena eliminadas."remove-joints"robot De lo contrario, la función produce un error.

Tipos de datos: char | string

Indica si se deben convertir uniones no admitidas en uniones fijas en la entrada dada, especificadas como o .model"error""convert-to-fixed" Si especifica , la salida resultante tiene uniones no admitidas convertidas en uniones fijas."convert-to-fixed"robot En el objeto de salida solo se admiten uniones fijas, prismáticas y revolutas.rigidBodyTree De lo contrario, si contiene uniones no admitidas, la función produce un error.model

Tipos de datos: char | string

Indica si se deben eliminar los bloques de restricción de la entrada dada, especificadas como o .model"error""remove" Si especifica , la salida resultante tiene las restricciones eliminadas."remove"robot De lo contrario, si contiene bloques de restricción, la función produce un error.model

Tipos de datos: char | string

Indica si se deben eliminar bloques de inercia variable en la entrada dada, especificadas como o .model"error""remove" Si especifica , la salida resultante tiene las inercias variables eliminadas."remove"robot De lo contrario, si contiene bloques de inercia variable, la función produce un error.model

Tipos de datos: char | string

Argumentos de salida

contraer todo

Modelo de robot, devuelto como un objeto.rigidBodyTree

Nota

Si la gravedad no se especifica en el archivo URDF, la propiedad predeterminada se establece en .Gravity[0 0 0] SimscapeMultibody utiliza un valor predeterminado de m/s[0 0 -9.80665]2 cuando se utiliza para importar un URDF.smimport

Objeto para almacenar información de importación, devuelta como un objeto.rigidBodyTreeImportInfo Este objeto contiene la relación entre la entrada y la salida resultante.modelrobot

Se usa para enumerar toda la información de importación de cada cuerpo en el archivo .showdetailsrobot Los vínculos para mostrar la información del sólido rígido, sus bloques correspondientes en el modelo y resaltar bloques específicos en el modelo se envían a la ventana de comandos.

Utilice , , o para obtener información sobre componentes específicos en la salida o en la entrada.bodyInfobodyInfoFromBlockbodyInfoFromJointrobotmodel

Sugerencias

Al importar un modelo de robot con mallas visuales, la función busca los archivos que se asignarán a cada sólido rígido utilizando estas reglas:importrobot.stl

  • La función busca en la ruta de malla sin procesar un sólido rígido especificado desde el archivo URDF. Las referencias a paquetes ROS tienen la eliminación.package:\\<pkg_name>

  • Las rutas absolutas se comprueban directamente sin modificaciones.

  • Las rutas relativas se comprueban utilizando los siguientes directorios en orden:

    • Especificado por el usuarioMeshPath

    • Carpeta actual

    • CaminoMATLAB®

    • La carpeta que contiene el archivo URDF

    • Un nivel por encima de la carpeta que contiene el archivo URDF

  • s

  • El nombre de archivo de la ruta de acceso de malla en el archivo URDF se anexa al argumento de entrada.MeshPath

Si el archivo de malla todavía no se encuentra, el analizador omite el archivo de malla y devuelve un objeto sin objeto visual.rigidBodyTree

Introducido en R2017a