importrobot

Импортируйте модель дерева твердого тела из URDF, файла SDF, текста или модели Simscape Multibody

Описание

URDF или импорт SDF

пример

robot = importrobot(filename) возвращает rigidBodyTree объект путем парсинга Объединенного формата описания робота (URDF) или файла Формата описания симуляции (SDF) задан filename.

пример

robot = importrobot(URDFtext) анализирует текст URDF. Задайте URDFtext как строковый скаляр или вектор символов.

robot = importrobot(SDFtext) анализирует текст SDF. Задайте SDFtext как строковый скаляр или вектор символов.

robot = importrobot(___,format) явным образом задает тип описания робота в дополнение к любой комбинации входных параметров от предыдущих синтаксисов. Если формат текстового файла не совпадает с форматом, заданным в format аргумент, функция возвращает ошибку.

robot = importrobot(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к любой комбинации входных параметров от предыдущих синтаксисов. Используйте URDF или пары "имя-значение" Импорта SDF, чтобы импортировать модель из URDF, файла SDF или текста.

Импорт модели Simscape Multibody

[robot,importInfo] = importrobot(model) импортирует модель Simscape™ Multibody™ и возвращает эквивалентный rigidBodyTree объект и информация об импорте в importInfo. Только зафиксированные, призматические, и шарнирные соединения поддерживаются в выходе rigidBodyTree объект.

[robot,importInfo] = importrobot(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к модели Simscape Multibody от предыдущего синтаксиса. Используйте пары "имя-значение" Импорта Модели Simscape Multibody, чтобы импортировать модель, которая использует другие объединенные типы, ограничительные блоки или переменную инерцию.

Примеры

свернуть все

Импортируйте файл URDF как 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)

Figure contains an axes object. The axes object 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

Задайте вектор символов URDF. Этот вектор символов является минималистским описанием для создания допустимой модели робота.

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

Импортируйте модель робота. Описание создает rigidBodyTree объект, который имеет только базовую ссылку робота, названную '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'

Можно импортировать роботов, которые имеют .stl файлы, сопоставленные с файлом Объединенного формата описания робота (URDF), чтобы описать визуальные конфигурации робота. Каждое твердое тело имеет отдельную визуальную заданную геометрию. importrobot функционируйте анализирует файл URDF, чтобы получить робота и визуальные конфигурации модели. Функция принимает, что визуальная геометрия и геометрия столкновения робота являются тем же самым, и присваивает визуальные конфигурации как конфигурации столкновения corresponsing тел.

Используйте show функционируйте, чтобы отобразить визуальные и collosion конфигурации модели робота на рисунке. Можно затем взаимодействовать с моделью путем нажатия на компоненты, чтобы смотреть их и щелчка правой кнопкой, чтобы переключить видимость.

Импортируйте модель робота как файл URDF. .stl расположение файлов должно быть правильно задано в этом URDF. Добавить другой .stl файлы к отдельным твердым телам, смотрите addVisual.

robot = importrobot('iiwa14.urdf');

Визуализируйте робота со связанной визуальной моделью. Кликните по телам или системам координат, чтобы смотреть их. Щелкните правой кнопкой по телам, чтобы переключить видимость для каждой визуальной геометрии.

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

Figure contains an axes object. The axes object 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.

Визуализируйте робота со связанными конфигурациями столкновения. Кликните по телам или системам координат, чтобы смотреть их. Щелкните правой кнопкой по телам, чтобы переключить видимость для каждой геометрии столкновения.

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

Figure contains an axes object. The axes object 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.

Импортируйте существующую модель робота Simscape™ Multibody™ в Robotics System Toolbox™ как rigidBodyTree объект.

Откройте модель Simscape™ Multibody™. Это - модель для гуманоидного робота.

open_system('example_smhumanoidrobot.slx')

Импортируйте модель.

[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]

Отобразите детали о созданном 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)   
--------------------

Входные параметры

свернуть все

Имя URDF или файла SDF в виде строкового скаляра или вектора символов. Этот файл должен быть допустимым описанием робота URDF или описанием модели SDF.

Включенные модели робота с данными о mesh

Модель роботаОписание
"iiwa7.urdf"

KUKA LBR iiwa 7 R800 робот с 7 осями

"iiwa14.urdf"

Версия URDF KUKA LBR iiwa 14 R820 робот с 7 осями

"iiwa14.sdf"

Версия SDF KUKA LBR iiwa 14 R820 робот с 7 осями

"sawyer.urdf"

Заново продумайте Роботикса Сойера робот с 7 осями

Чтобы загрузить данные о mesh для включенных моделей робота без данных о mesh, установите пакет Информационной поддержки Библиотеки Робота Robotics System Toolbox™. Смотрите Получают и Управляют Дополнениями.

Включенные модели робота без данных о mesh

Модель роботаОписание
"abbIrb120.urdf"

ABB IRB 120 робот с 6 осями

"abbIrb120T.urdf"

ABB IRB 120T робот с 6 осями

"abbIrb1600.urdf"

ABB IRB 1600 робот с 6 осями

"abbYuMi.urdf"

ABB YuMi 2-рукий робот

"amrPioneer3AT.urdf"

Искусный MobileRobots Pioneer 3 - AT мобильный робот

"amrPioneer3DX.urdf"

Искусный MobileRobots Pioneer мобильный робот с 3 DX

"amrPioneerLX.urdf"

Искусный MobileRobots Pioneer LX мобильный робот

"atlas.urdf"

Бостонская Динамика робот ATLAS® Humanoid

"clearpathHusky.urdf"

Робототехника Clearpath Хриплый мобильный робот

"clearpathJackal.urdf"

Шакал Робототехники Clearpath мобильный робот

"clearpathTurtleBot2.urdf"

Робототехника TurtleBot 2 Clearpath мобильный робот

"fanucLRMate200ib.urdf"

Помощник LR FANUC 200iB робот с 6 осями

"fanucM16ib.urdf"

FANUC M-16iB робот с 6 осями

"frankaEmikaPanda.urdf"

Франка Panda Emika робот с 7 осями

"kinovaGen3.urdf"

Версия 1 KINOVA® Gen3 робот с 7 осями

"kinovaGen3V12.urdf"

Версия 2 KINOVA® Gen3 робот с 7 осями

"kinovaJacoJ2N6S200.urdf"

KINOVA JACO® 2-палые 6 роботов степени свободы с несферическим запястьем

"kinovaJacoJ2N6S300.urdf"

KINOVA JACO® 3-палые 6 роботов степени свободы с несферическим запястьем

"kinovaJacoJ2N7S300.urdf"

KINOVA JACO® 3-палые 7 роботов степени свободы с несферическим запястьем

"kinovaJacoJ2S6S300.urdf"

KINOVA JACO® 3-палые 6 роботов степени свободы со сферическим запястьем

"kinovaJacoJ2S7S300.urdf"

KINOVA JACO® 3-палые 7 роботов степени свободы со сферическим запястьем

"kinovaJacoTwoArmExample.urdf"

Two KINOVA JACO® 3-палые 6 роботов степени свободы с несферическим запястьем

"kinovaMicoM1N4S200.urdf"

KINOVA MICO® 2-палые 4 робота степени свободы

"kinovaMicoM1N6S200.urdf"

KINOVA MICO® 2-палые 6 роботов степени свободы

"kinovaMicoM1N6S300.urdf"

KINOVA MICO® 3-палые 6 роботов степени свободы

"kinovaMovo.urdf"

KINOVA MOVO® 2-рукий мобильный робот

"kukaIiwa7.urdf"

KUKA LBR iiwa 7 R800 робот с 7 осями

"kukaIiwa14.urdf"

KUKA LBR iiwa 14 R820 робот с 7 осями

"quanserQArm.urdf"

Робот степени свободы Quanser QArm 4

"quanserQBot2e.urdf"

Quanser QBot 2e мобильный робот

"quanserQCar.urdf"

Quanser QCar мобильный робот

"rethinkBaxter.urdf"

Заново продумайте Роботикса Бэкстера 2-рукий робот

"rethinkSawyer.urdf"

Заново продумайте Роботикса Сойера робот с 7 осями

"robotisOP2.urdf"

Робот Гуманоида ROBOTIS OP2

"robotisOpenManipulator.urdf"

ROBOTIS OpenMANIPULATOR робот с 4 осями с механизмом захвата

"robotisTurtleBot3Burger.urdf"

Робот ROBOTIS TurtleBot 3 Бургера

"robotisTurtleBot3Waffle.urdf"

Робот Вафли ROBOTIS TurtleBot 3

"robotisTurtleBot3WaffleForOpenManipulator.urdf"

Робот Вафли ROBOTIS TurtleBot 3 с OpenMANIPULATOR

"robotisTurtleBot3WafflePi.urdf"

Робот ROBOTIS TurtleBot 3 Ваффлэ Пи

"robotisTurtleBot3WafflePiForOpenManipulator.urdf"

Робот ROBOTIS TurtleBot 3 Ваффлэ Пи с OpenMANIPULATOR

"universalUR3.urdf"

Универсальные Роботы UR3 робот с 6 осями

"universalUR5.urdf"

Универсальные Роботы UR5 робот с 6 осями

"universalUR10.urdf"

Универсальные Роботы UR10 робот с 6 осями

"valkyrie.urdf"

Робот Гуманоида валькирии НАСА

"willowgaragePR2.urdf"

Гараж Willow PR2 мобильный робот

"yaskawaMotomanMH5.urdf"

Яскоа Мотомен MH5 робот с 6 осями

Пример: "robot_file.urdf"

Пример: "robot_file.sdf"

Типы данных: char | string

Текст робота URDF в виде строкового скаляра или вектора символов.

Пример: "<?xml version="1.0" ?><robot name="min"><link name="L0"/></robot>"

Пример: "robot_file.txt","urdf"

Типы данных: char | string

Текст модели SDF в виде строкового скаляра или вектора символов.

Пример: "<?xml version="1.0" ?><sdf version="1.6"><model name="min"><link name="L0"/></model></sdf>"

Пример: "robot_file.txt","sdf"

Типы данных: char | string

Формат файла текстового файла описания робота в виде строкового скаляра или вектора символов. Используйте этот аргумент, чтобы задать явным образом требуемый формат для файла описания робота.

Пример: "robot_file.txt","urdf"

Пример: "robot_file.txt","sdf"

Типы данных: char | string

Модель Simscape Multibody в виде указателя модели, строкового скаляра или вектора символов.

Типы данных: char | string

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: "MeshPath",{"../arm_meshes","../body_meshes"}
URDF или импорт SDF

свернуть все

Относительные пути поиска файлов для файлов mesh в виде строкового скаляра, вектора символов или массива ячеек строковых скаляров или векторов символов. Сцепитесь файлы должны все еще быть заданы в URDF или файле SDF, но MeshPath задает относительные пути для этих заданных файлов.

Типы данных: char | string | cell

Формат данных ввода/вывода для кинематики и функций динамики модели робота в виде разделенной запятой пары, состоящей из 'DataFormat' и "struct", "row", или "column". Чтобы использовать функции динамики, необходимо задать любой "row" или "column". Эта пара "имя-значение" устанавливает свойство DataFormat rigidBodyTree модель робота.

Типы данных: char | string

Выберите модель из файла SDF или текст, которые содержат многоуровневые модели в виде строкового скаляра или вектора символов.

Примечание

Эта пара "имя-значение" только применяется к модели SDF и тексту.

Типы данных: char | string

Импорт модели Simscape Multibody

свернуть все

Указывает, повредить ли закрытые цепи в данном model введите в виде "error" или "remove-joints". Если вы задаете "remove-joints", получившийся robot выведите имеет цепочечные удаленные соединения закрытия. В противном случае функция выдает ошибку.

Типы данных: char | string

Указывает, преобразовать ли неподдерживаемые соединения в фиксированные соединения в данном model введите в виде "error" или "convert-to-fixed". Если вы задаете "convert-to-fixed", получившийся robot выведите имеет любые неподдерживаемые соединения, преобразованные в фиксированные соединения. Только зафиксированные, призматические, и шарнирные соединения поддерживаются в выходе rigidBodyTree объект. В противном случае, если model содержит неподдерживаемые соединения, функция выдает ошибку.

Типы данных: char | string

Указывает, удалить ли ограничительные блоки в данном model введите в виде "error" или "remove". Если вы задаете "remove", получившийся robot выведите удалили ограничения. В противном случае, если model содержит ограничительные блоки, функция выдает ошибку.

Типы данных: char | string

Указывает, удалить ли переменные блоки инерции в данном model введите в виде "error" или "remove". Если вы задаете "remove", получившийся robot выведите удалили переменную инерцию. В противном случае, если model содержит переменные блоки инерции, функция выдает ошибку.

Типы данных: char | string

Формат данных ввода/вывода для кинематики и функций динамики модели робота в виде разделенной запятой пары, состоящей из 'DataFormat' и "struct", "row", или "column". Чтобы использовать функции динамики, необходимо задать любой "row" или "column". Эта пара "имя-значение" устанавливает свойство DataFormat rigidBodyTree модель робота.

Типы данных: char | string

Выходные аргументы

свернуть все

Модель Robot, возвращенная как rigidBodyTree объект.

Примечание

Если сила тяжести не задана в файле URDF, Gravity по умолчанию свойство установлено в [0 0 0]. Simscape Multibody использует значение по умолчанию [0 0 -9.80665]m/s2 при использовании smimport импортировать URDF.

Объект для того, чтобы хранить информацию импорта, возвращенную как rigidBodyTreeImportInfo объект. Этот объект содержит отношение между входом model и получившийся robot вывод .

Использование showdetails перечислять всю информацию об импорте для каждого тела в robot. Ссылки, чтобы отобразить информацию о твердом теле, их соответствующие блоки в модели и выделение определенных блоков в модели выводятся к командному окну.

Использование bodyInfo, bodyInfoFromBlock, или bodyInfoFromJoint получить информацию об определенных компонентах в любом robot выведите или model входной параметр.

Советы

При импорте модели робота с визуальными сетками, importrobot функционируйте ищет .stl или .dae файлы, чтобы присвоить каждому твердому телу, использующему эти правила:

  • Функция ищет необработанный путь к mesh заданное твердое тело из файла SDF или URDF. Ссылки на пакеты ROS имеют package:\\<pkg_name> удаленный.

  • Абсолютные пути проверяются непосредственно без модификации.

  • Относительные пути проверяются с помощью следующих директорий в порядке:

    • Заданный пользователями MeshPath

    • Текущая папка

    • MATLAB® path

    • Папка, содержащая URDF или файл SDF

    • Один уровень выше папки, содержащей URDF или файл SDF

  • Имя файла от пути к mesh в URDF или файле SDF добавлено к MeshPath входной параметр.

Если файл mesh все еще не найден, синтаксический анализатор игнорирует файл mesh и возвращает rigidBodyTree объект без визуального.

Введенный в R2017a