Main Content

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.

importrobot

Importar un modelo de árbol de cuerpo rígido desde un archivo URDF, Xacro, SDF, texto o un modelo de Simscape Multibody

Descripción

Importación de URDF, Xacro o SDF

ejemplo

robot = importrobot(filename) devuelve un objeto rigidBodyTree mediante el análisis del archivo de formato de descripción de robot unificado (URDF), de macros XML (Xacro) o de formato de descripción de simulación (SDF) especificado por filename.

ejemplo

robot = importrobot(text) analiza la descripción del robot desde el texto URDF, Xacro o SDF.

robot = importrobot(___,format) especifica explícitamente el tipo de descripción del robot, además de cualquier combinación de argumentos de entrada de las sintaxis anteriores. Si el formato del archivo de texto no coincide con el formato especificado en el argumento format, la función devuelve un error.

robot = importrobot(___,Name,Value) especifica las opciones mediante uno o más argumentos de par nombre-valor, además de cualquier combinación de argumentos de entrada de las sintaxis anteriores. Utilice los pares nombre-valor Importación de URDF, Xacro o SDF para importar un modelo desde un archivo URDF, Xacro o SDF, o de texto.

Importación de modelos de Simscape Multibody

[robot,importInfo] = importrobot(model) importa un modelo de Simscape™ Multibody™ y devuelve un objeto rigidBodyTree equivalente e información sobre la importación en importInfo. En el objeto rigidBodyTree de salida solo se admiten articulaciones fijas, prismáticas y giratorias.

[robot,importInfo] = importrobot(___,Name,Value) especifica opciones mediante uno o más argumentos de par nombre-valor, además del modelo de Simscape Multibody de la sintaxis anterior. Utilice los pares nombre-valor Importación de modelos de Simscape Multibody para importar un modelo que utilice otros tipos de articulación, bloques de restricción o inercias variables.

Ejemplos

contraer todo

Importe un archivo URDF como un objeto rigidBodyTree.

robot = importrobot('iiwa14.urdf')
robot = 
  rigidBodyTree with properties:

     NumBodies: 10
        Bodies: {[1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]  [1x1 rigidBody]}
          Base: [1x1 rigidBody]
     BodyNames: {'iiwa_link_0'  'iiwa_link_1'  'iiwa_link_2'  'iiwa_link_3'  'iiwa_link_4'  'iiwa_link_5'  'iiwa_link_6'  'iiwa_link_7'  'iiwa_link_ee'  'iiwa_link_ee_kuka'}
      BaseName: 'world'
       Gravity: [0 0 0]
    DataFormat: 'struct'

show(robot)

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 29 objects of type patch, line. These objects represent world, iiwa_link_0, iiwa_link_1, iiwa_link_2, iiwa_link_3, iiwa_link_4, iiwa_link_5, iiwa_link_6, iiwa_link_7, iiwa_link_ee, iiwa_link_ee_kuka, iiwa_link_0_mesh, iiwa_link_1_mesh, iiwa_link_2_mesh, iiwa_link_3_mesh, iiwa_link_4_mesh, iiwa_link_5_mesh, iiwa_link_6_mesh, iiwa_link_7_mesh.

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 rigidBodyTree que solo tiene un enlace de base de robot denominado '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 tienen archivos .stl relacionados con el archivo de formato de descripción de robot unificado (URDF) para describir las geometrías visuales del robot. Cada cuerpo rígido tiene especificada una geometría visual individual. La función importrobot analiza el archivo URDF para obtener el modelo de robot y las geometrías visuales. La función asume que la geometría visual y la geometría de colisión del robot son iguales y asigna las geometrías visuales como geometrías de colisión de los cuerpos correspondientes.

Utilice la función show para mostrar la geometría visual y de colisión del modelo de robot en una figura. Luego, puede interactuar con el modelo haciendo clic en componentes para inspeccionarlos y haciendo clic con el botón secundario para alternar la visibilidad.

Importe un modelo de robot como un archivo URDF. Las ubicaciones de los archivos .stl se deben especificar correctamente en este URDF. Para añadir otros archivos .stl a cuerpos rígidos individuales, consulte addVisual.

robot = importrobot('iiwa14.urdf');

Visualice el robot con el modelo visual correspondiente. Haga clic en los cuerpos o los marcos para inspeccionarlos. Haga clic con el botón secundario en los cuerpos para alternar la visibilidad de cada geometría visual.

show(robot,'visuals','on','collision','off');

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 29 objects of type patch, line. These objects represent world, iiwa_link_0, iiwa_link_1, iiwa_link_2, iiwa_link_3, iiwa_link_4, iiwa_link_5, iiwa_link_6, iiwa_link_7, iiwa_link_ee, iiwa_link_ee_kuka, iiwa_link_0_mesh, iiwa_link_1_mesh, iiwa_link_2_mesh, iiwa_link_3_mesh, iiwa_link_4_mesh, iiwa_link_5_mesh, iiwa_link_6_mesh, iiwa_link_7_mesh.

Visualice el robot con las geometrías de colisión correspondientes. Haga clic en los cuerpos o los marcos para inspeccionarlos. Haga clic con el botón secundario en los cuerpos para alternar la visibilidad de cada geometría de colisión.

show(robot,'visuals','off','collision','on'); 

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 29 objects of type patch, line. These objects represent world, iiwa_link_0, iiwa_link_1, iiwa_link_2, iiwa_link_3, iiwa_link_4, iiwa_link_5, iiwa_link_6, iiwa_link_7, iiwa_link_ee, iiwa_link_ee_kuka, iiwa_link_0_mesh, iiwa_link_1_mesh, iiwa_link_2_mesh, iiwa_link_3_mesh, iiwa_link_4_mesh, iiwa_link_5_mesh, iiwa_link_6_mesh, iiwa_link_7_mesh, iiwa_link_0_coll_mesh, iiwa_link_1_coll_mesh, iiwa_link_2_coll_mesh, iiwa_link_3_coll_mesh, iiwa_link_4_coll_mesh, iiwa_link_5_coll_mesh, iiwa_link_6_coll_mesh, iiwa_link_7_coll_mesh.

Importe un modelo de robot de Simscape™ Multibody™ existente en Robotics System Toolbox™ como un objeto rigidBodyTree.

Abra el modelo de Simscape™ Multibody™. Se trata del modelo de 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: {'Body01'  'Body02'  'Body03'  'Body04'  'Body05'  'Body06'  'Body07'  'Body08'  'Body09'  'Body10'  'Body11'  'Body12'  'Body13'  'Body14'  'Body15'  'Body16'  'Body17'  'Body18'  'Body19'  'Body20'  'Body21'}
      BaseName: 'Base'
       Gravity: [0 0 -9.8066]
    DataFormat: 'struct'

importInfo = 
  rigidBodyTreeImportInfo with properties:

        SourceModelName: 'example_smhumanoidrobot'
          RigidBodyTree: [1x1 rigidBodyTree]
    BlockConversionInfo: [1x1 struct]

Muestre los detalles sobre el objeto rigidBodyTree creado.

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 de descripción del robot, especificado como un escalar de cadena o un vector de caracteres. Este archivo debe ser una descripción de robot URDF, una descripción de robot Xacro o una descripción de modelo SDF válidas.

Modelos de robot incluidos con datos de malla

Modelo de robotVisualización de la mallaDescripción
"iiwa7.urdf"

Figure contains the mesh of KUKA LBR iiwa 7 R800 7-axis robot

Robot de 7 ejes KUKA LBR iiwa 7 R800

"iiwa14.urdf"

Figure contains the mesh of URDF version of KUKA LBR iiwa 14 R820 7-axis robot

Versión URDF de un robot de 7 ejes KUKA LBR iiwa 14 R820

"iiwa14.xacro"

Figure contains the mesh of Xacro version of KUKA LBR iiwa 14 R820 7-axis robot

Versión Xacro de un robot de 7 ejes KUKA LBR iiwa 14 R820

"iiwa14.sdf"

Figure contains the mesh of SDF version of KUKA LBR iiwa 14 R820 7-axis robot

Versión SDF de un robot de 7 ejes KUKA LBR iiwa 14 R820

"sawyer.urdf"

Figure contains the mesh of Rethink Robotics Sawyer 7-axis robot

Robot de 7 ejes Rethink Robotics Sawyer

Nota

Para descargar los datos de malla de los modelos de robot incluidos sin los datos de malla, consulte Instalar el paquete de soporte Robotics System Toolbox Robot Library Data.

Modelos de robot incluidos sin datos de malla

Modelo de robotVisualización de la mallaDescripción
"abbIrb120.urdf"

Figure contains the mesh of ABB IRB 120 6-axis robot

Robot de 6 ejes ABB IRB 120

"abbIrb120T.urdf"

Figure contains the mesh of ABB IRB 120T 6-axis robot

Robot de 6 ejes ABB IRB 120T

"abbIrb1600.urdf"

Figure contains the mesh of ABB IRB 1600 6-axis robot

Robot de 6 ejes ABB IRB 1600

"abbYuMi.urdf"

Figure contains the mesh of ABB YuMi 2-armed robot

Robot de 2 brazos ABB YuMi

"amrPioneer3AT.urdf"

Figure contains the mesh of Adept MobileRobots Pioneer 3-AT mobile robot

Robot móvil Adept MobileRobots Pioneer 3-AT

"amrPioneer3DX.urdf"

Figure contains the mesh of Adept MobileRobots Pioneer 3-DX mobile robot

Robot móvil Adept MobileRobots Pioneer 3-DX

"amrPioneerLX.urdf"

Figure contains the mesh of Adept MobileRobots Pioneer LX mobile robot

Robot móvil Adept MobileRobots Pioneer LX

"atlas.urdf"

Figure contains the mesh of Boston Dynamics ATLAS Humanoid robot

Robot humanoide Boston Dynamics ATLAS®

"clearpathHusky.urdf"

Figure contains the mesh of Clearpath Robotics Husky mobile robot

Robot móvil Clearpath Robotics Husky

"clearpathJackal.urdf"

Figure contains the mesh of Clearpath Robotics Jackal mobile robot

Robot móvil Clearpath Robotics Jackal

"clearpathTurtleBot2.urdf"

Figure contains the mesh of Clearpath Robotics TurtleBot 2 mobile robot

Robot móvil Clearpath Robotics TurtleBot 2

"fanucLRMate200ib.urdf"

Figure contains the mesh of FANUC LR Mate 200iB 6-axis robot

Robot de 6 ejes FANUC LR Mate 200iB

"fanucM16ib.urdf"

Figure contains the mesh of FANUC M-16iB 6-axis robot

Robot de 6 ejes FANUC M-16iB

"frankaEmikaPanda.urdf"

Figure contains the mesh of Franka Emika Panda 7-axis robot

Robot de 7 ejes Franka Emika Panda

"kinovaGen3.urdf"

Figure contains the mesh of version 1 of KINOVA Gen3 7-axis robot

Versión 1 del robot de 7 ejes KINOVA® Gen3

"kinovaGen3V12.urdf"

Figure contains the mesh of version 2 of KINOVA Gen3 7-axis robot

Versión 2 del robot de 7 ejes KINOVA® Gen3

"kinovaJacoJ2N6S200.urdf"

Figure contains the mesh of KINOVA JACO 2-fingered 6 DOF robot with non-spherical wrist

Robot KINOVA JACO® de 2 dedos y 6 DOF con muñeca no esférica

"kinovaJacoJ2N6S300.urdf"

Figure contains the mesh of KINOVA JACO 3-fingered 6 DOF robot with non-spherical wrist

Robot KINOVA JACO® de 3 dedos y 6 DOF con muñeca no esférica

"kinovaJacoJ2N7S300.urdf"

Figure contains the mesh of KINOVA JACO 3-fingered 7 DOF robot with non-spherical wrist

Robot KINOVA JACO® de 3 dedos y 7 DOF con muñeca no esférica

"kinovaJacoJ2S6S300.urdf"

Figure contains the mesh of KINOVA JACO 3-fingered 6 DOF robot with spherical wrist

Robot KINOVA JACO® de 3 dedos y 6 DOF con muñeca esférica

"kinovaJacoJ2S7S300.urdf"

Figure contains the mesh of KINOVA JACO 3-fingered 7 DOF robot with spherical wrist

Robot KINOVA JACO® de 3 dedos y 7 DOF con muñeca esférica

"kinovaJacoTwoArmExample.urdf"

Figure contains the mesh of Two KINOVA JACO 3-fingered 6 DOF robots with non-spherical wrist

Dos robots KINOVA JACO® de 3 dedos y 6 DOF con muñeca no esférica

"kinovaMicoM1N4S200.urdf"

Figure contains the mesh of KINOVA MICO 2-fingered 4 DOF robot

Robot KINOVA MICO® de 2 dedos y 4 DOF

"kinovaMicoM1N6S200.urdf"

Figure contains the mesh of KINOVA MICO 2-fingered 6 DOF robot

Robot KINOVA MICO® de 2 dedos y 6 DOF

"kinovaMicoM1N6S300.urdf"

Figure contains the mesh of KINOVA MICO 3-fingered 6 DOF robot

Robot KINOVA MICO® de 3 dedos y 6 DOF

"kinovaMovo.urdf"

Figure contains the mesh of KINOVA MOVO 2-armed mobile robot

Robot móvil de 2 brazos KINOVA MOVO®

"kukaIiwa7.urdf"

Figure contains the mesh of KUKA LBR iiwa 7 R800 7-axis robot

Robot de 7 ejes KUKA LBR iiwa 7 R800

"kukaIiwa14.urdf"

Figure contains the mesh of KUKA LBR iiwa 14 R820 7-axis robot

Robot de 7 ejes KUKA LBR iiwa 14 R820

"meca500r3.urdf"

Figure contains the mesh of Mecademic Meca500 R3 6-axis robot

Robot de 6 ejes Mecademic Meca500 R3

"omronEcobra600.urdf"

Figure contains the mesh of Omron eCobra 600 4-axis SCARA robot

Robot SCARA de 4 ejes Omron eCobra 600

"puma560.urdf"

Figure contains the mesh of PUMA 560 6-axis robot

Robot de 6 ejes PUMA 560

"quanserQArm.urdf"

Figure contains the mesh of Quanser QArm 4 DOF robot

Robot Quanser QArm de 4 DOF

"quanserQBot2e.urdf"

Figure contains the mesh of Quanser QBot 2e mobile robot

Robot móvil Quanser QBot 2e

"quanserQCar.urdf"

Figure contains the mesh of Quanser QCar mobile robot

Robot móvil Quanser QCar

"rethinkBaxter.urdf"

Figure contains the mesh of Rethink Robotics Baxter 2-armed robot

Robot de 2 brazos Rethink Robotics Baxter

"rethinkSawyer.urdf"

Figure contains the mesh of Rethink Robotics Sawyer 7-axis robot

Robot de 7 ejes Rethink Robotics Sawyer

"robotiq2F85.urdf"

Figure contains the mesh of Robotiq 2F-85 2-finger gripper

Pinza de 2 dedos Robotiq 2F-85

La pinza puede utilizarse con estos manipuladores:

  • Universal Robots UR3

  • Universal Robots UR3e

  • Universal Robots UR5

  • Universal Robots UR5e

  • Universal Robots UR10

  • Universal Robots UR10e

  • Universal Robots UR16e

  • KINOVA® Gen3 (versiones 1 y 2)

"robotisOP2.urdf"

Figure contains the mesh of ROBOTIS OP2 Humanoid robot

Robot humanoide ROBOTIS OP2

"robotisOpenManipulator.urdf"

Figure contains the mesh of ROBOTIS OpenMANIPULATOR 4-axis robot with gripper

Robot de 4 ejes con pinza ROBOTIS OpenMANIPULATOR

"robotisTurtleBot3Burger.urdf"

Figure contains the mesh of ROBOTIS TurtleBot 3 Burger robot

Robot ROBOTIS TurtleBot 3 Burger

"robotisTurtleBot3Waffle.urdf"

Figure contains the mesh of ROBOTIS TurtleBot 3 Waffle robot

Robot ROBOTIS TurtleBot 3 Waffle

"robotisTurtleBot3WaffleForOpenManipulator.urdf"

Figure contains the mesh of ROBOTIS TurtleBot 3 Waffle robot for OpenMANIPULATOR

Robot ROBOTIS TurtleBot 3 Waffle con OpenMANIPULATOR

"robotisTurtleBot3WafflePi.urdf"

Figure contains the mesh of ROBOTIS TurtleBot 3 Waffle Pi robot

Robot ROBOTIS TurtleBot 3 Waffle Pi

"robotisTurtleBot3WafflePiForOpenManipulator.urdf"

Figure contains the mesh of ROBOTIS TurtleBot 3 Waffle Pi robot for OpenMANIPULATOR

Robot ROBOTIS TurtleBot 3 Waffle Pi con OpenMANIPULATOR

"universalUR3.urdf"

Figure contains the mesh of Universal Robots UR3 6-axis robot

Robot de 6 ejes Universal Robots UR3

"universalUR3e.urdf"

Figure contains the mesh of Universal Robots UR3e 6-axis robot

Robot de 6 ejes Universal Robots UR3e

"universalUR5.urdf"

Figure contains the mesh of Universal Robots UR5 6-axis robot

Robot de 6 ejes Universal Robots UR5

"universalUR5e.urdf"

Figure contains the mesh of Universal Robots UR5e 6-axis robot

Robot de 6 ejes Universal Robots UR5e

"universalUR10.urdf"

Figure contains the mesh of Universal Robots UR10 6-axis robot

Robot de 6 ejes Universal Robots UR10

"universalUR10e.urdf"

Figure contains the mesh of Universal Robots UR10e 6-axis robot

Robot de 6 ejes Universal Robots UR10e

"universalUR16e.urdf"

Figure contains the mesh of Universal Robots UR16e 6-axis robot

Robot de 6 ejes Universal Robots UR16e

"valkyrie.urdf"

Figure contains the mesh of NASA Valkyrie Humanoid robot

Robot humanoide NASA Valkyrie

"willowgaragePR2.urdf"

Figure contains the mesh of Willow Garage PR2 mobile robot

Robot móvil Willow Garage PR2

"yaskawaMotomanMH5.urdf"

Figure contains the mesh of Yaskawa Motoman MH5 6-axis robot

Robot de 6 ejes Yaskawa Motoman MH5

Ejemplo: "robot_file.urdf"

Ejemplo: "robot_file.xacro"

Ejemplo: "robot_file.sdf"

Tipos de datos: char | string

Texto de descripción del robot, especificado como un escalar de cadena o un vector de caracteres. El texto debe ser una descripción de robot URDF, una descripción de robot Xacro o una descripción de modelo SDF válidas.

Parse URDF Robot Description from text

Importe un modelo de robot desde un texto URDF.

% Specify URDF text as a character vector.
text = ['<?xml version="1.0" ?>', ...
        '<robot name="min">', ...
        '<link name="L0"/>', ...
        '</robot>'];
% Import the robot model from the URDF text.
robot = importrobot(text);

Importe un modelo de robot desde un archivo de texto URDF.

% Specify URDF text as a character vector.
text = ['<?xml version="1.0" ?>', ...
        '<robot name="min">', ...
        '<link name="L0"/>', ...
        '</robot>'];
% Write the text to file.
writelines(text,"URDF_robot.txt")
% Import the robot model from the URDF text file. Specify the format of
% the robot description text file.
robot = importrobot("URDF_robot.txt","urdf");

Parse Xacro Robot Description from text

Importe un modelo de robot desde un texto Xacro.

% Specify Xacro text as a character vector.
text = ['<?xml version="1.0" ?>', ...
        '<robot name="min" ', ...
        'xmlns:xacro="http://www.ros.org/wiki/xacro">', ...
        '<link name="L0"/>', ...
        '</robot>'];
% Import the robot model from the Xacro text.
robot = importrobot(text);

Importe un modelo de robot desde un archivo de texto Xacro.

% Specify Xacro text as a character vector.
text = ['<?xml version="1.0" ?>', ...
        '<robot name="min" ', ...
        'xmlns:xacro="http://www.ros.org/wiki/xacro">', ...
        '<link name="L0"/>', ...
        '</robot>'];
% Write the text to file.
writelines(text,"Xacro_robot.txt")
% Import the robot model from the Xacro text file. Specify the format of
% the robot description text file.
robot = importrobot("Xacro_robot.txt","xacro");

Parse SDF Model Description from text

Importe un modelo de robot desde un texto SDF.

% Specify SDF text as a character vector.
text = ['<?xml version="1.0" ?>', ...
        '<sdf version="1.6">', ...
        '<model name="min">', ...
        '<link name="L0"/>', ...
        '</model>', ...
        '</sdf>'];
% Import the robot model from the SDF text.
robot = importrobot(text);

Importe un modelo de robot desde un archivo de texto SDF.

% Specify SDF text as a character vector.
text = ['<?xml version="1.0" ?>', ...
        '<sdf version="1.6">', ...
        '<model name="min">', ...
        '<link name="L0"/>', ...
        '</model>', ...
        '</sdf>'];
% Write the text to file.
writelines(text,"SDF_robot.txt")
% Import the robot model from the SDF text file. Specify the format of
% the robot description text file.
robot = importrobot("SDF_robot.txt","sdf");

Tipos de datos: char | string

Formato del archivo de texto de descripción del robot, especificado como un escalar de cadena o un vector de caracteres. Utilice este argumento para especificar explícitamente el formato requerido para el archivo de descripción del robot.

Ejemplo: "robot_file.txt","urdf"

Ejemplo: "robot_file.txt","xacro"

Ejemplo: "robot_file.txt","sdf"

Tipos de datos: char | string

Modelo de Simscape Multibody, especificado como un escalar de cadena o un vector de caracteres.

Tipos de datos: char | string

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, pero el orden de los pares no importa.

En versiones anteriores a R2021a, use comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: "MeshPath",{"../arm_meshes","../body_meshes"}

Importación de URDF, Xacro o SDF

contraer todo

Rutas de búsqueda relativas para archivos de malla, especificadas como un escalar de cadena, un vector de caracteres o un arreglo de celdas de escalares de cadena o vectores de caracteres. Los archivos de malla se deben especificar dentro del archivo URDF, Xacro o SDF, pero MeshPath define las rutas relativas para estos archivos indicados.

Tipos de datos: char | string | cell

Formato de datos de entrada/salida de las funciones cinemáticas y dinámicas del modelo de robot, especificado como el par separado por comas compuesto por 'DataFormat' y "struct", "row" o "column". Para utilizar funciones dinámicas, debe especificar "row" o "column". Este par nombre-valor establece la propiedad DataFormat del modelo de robot rigidBodyTree.

Tipos de datos: char | string

Seleccione un modelo de archivo SDF o de texto que contenga varios modelos, especificada como un escalar de cadena o un vector de caracteres.

Nota

Este par nombre-valor solo se aplica al modelo de SDF y al texto.

Tipos de datos: char | string

Número máximo de cuerpos permitidos en el robot importado durante la generación de código, especificado como un número entero. Utilice MaxNumBodies para añadir cuerpos rígidos al árbol importado dentro de una función que admita la generación de código. El número de cuerpos adicionales que se pueden añadir es la diferencia entre MaxNumBodies y el número de cuerpos del árbol importado, rigidBodyTree.NumBodies.

Nota

Este par nombre-valor solo es necesario para los flujos de trabajo de generación de código.

Importación de modelos de Simscape Multibody

contraer todo

Indica si se deben romper las cadenas cerradas en la entrada de model en cuestión, especificado como "error" o "remove-joints". Si se especifica "remove-joints", se eliminan las articulaciones de cierre de cadena de la salida de robot resultante. De lo contrario, la función devuelve un error.

Tipos de datos: char | string

Indica si se deben convertir las articulaciones no admitidas en articulaciones fijas en la entrada de model en cuestión, especificada como "error" o "convert-to-fixed". Si se especifica "convert-to-fixed", se convierten todas las articulaciones no admitidas en fijas en la salida de robot resultante. En el objeto rigidBodyTree de salida solo se admiten articulaciones fijas, prismáticas y giratorias. En caso contrario, si model contiene articulaciones no admitidas, la función devuelve un error.

Tipos de datos: char | string

Indica si se eliminan los bloques de restricción en la entrada de model en cuestión especificada como "error" o "remove". Si se especifica "remove", se eliminan las restricciones de la salida de robot. En caso contrario, si model contiene bloques de restricción, la función devuelve un error.

Tipos de datos: char | string

Indica si se eliminan los bloques de inercia variable en la entrada de model en cuestión, especificada como "error" o "remove". Si se especifica "remove", se eliminan las inercias variables de la salida de robot resultante. En caso contrario, si model contiene bloques de inercia variable, la función devuelve un error.

Tipos de datos: char | string

Formato de datos de entrada/salida de las funciones cinemáticas y dinámicas del modelo de robot, especificado como el par separado por comas compuesto por 'DataFormat' y "struct", "row" o "column". Para utilizar funciones dinámicas, debe especificar "row" o "column". Este par nombre-valor establece la propiedad DataFormat del modelo de robot rigidBodyTree.

Tipos de datos: char | string

Argumentos de salida

contraer todo

Modelo de robot, devuelto como un objeto rigidBodyTree.

Nota

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

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

Utilice showdetails para enumerar toda la información de importación de cada cuerpo en el robot. Los enlaces para mostrar la información de los cuerpos rígidos, sus correspondientes bloques en el modelo y el resaltado de bloques específicos en el modelo se generan como salida en la ventana de comandos.

Utilice bodyInfo, bodyInfoFromBlock o bodyInfoFromJoint para obtener información sobre componentes específicos en la salida de robot o en la entrada de model.

Sugerencias

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

  • La función busca la ruta de la malla sin procesar para un cuerpo rígido especificado desde el archivo URDF, Xacro o SDF. En las referencias a los paquetes ROS se ha eliminado package:\\<pkg_name>.

  • Las rutas absolutas se comprueban directamente sin ninguna modificación.

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

    • MeshPath especificada por el usuario

    • Carpeta actual

    • Ruta de MATLAB®

    • Carpeta que contiene el archivo URDF, Xacro o SDF

    • Nivel por encima de la carpeta que contiene el archivo URDF, Xacro o SDF

  • El nombre del archivo de la ruta de la malla en el archivo URDF, Xacro o SDF se añade al argumento de entrada MeshPath.

Si aún no se encuentra el archivo de malla, el analizador ignora el archivo de malla y devuelve un objeto rigidBodyTree sin visualización.

Historial de versiones

Introducido en R2017a