主要内容

importrobot

导入刚体树模型从URDF, SDF文件,文本或Simscape多体模型

描述

URDF或SDF导入

例子

机器人= importrobot (文件名返回一个rigidBodyTree对象中指定的URDF或SDF文件文件名

例子

机器人= importrobot (URDFtext解析URDF文本。指定URDFtext作为字符串标量或字符向量。

机器人= importrobot (SDFtext解析SDF文本。指定SDFtext作为字符串标量或字符向量。

机器人= importrobot (___格式除了以前语法中的输入参数的任何组合外,还显式指定机器人描述的类型。属性中指定的格式格式参数时,函数返回一个错误。

机器人= importrobot (___名称,值指定使用一个或多个名称-值对参数以及来自以前语法的输入参数的任何组合的选项。使用URDF或SDF导入从URDF、SDF文件或文本导入模型的名称-值对。

Simscape多体模型导入

机器人importInfo= importrobot(模型进口Simscape™多体™建模并返回一个等价的值rigidBodyTree中导入的相关信息importInfo.输出中只支持固定关节、移动关节和转动关节rigidBodyTree对象。

机器人importInfo= importrobot(___名称,值属性外,使用一个或多个名称-值对参数指定选项Simscape多体从前面的语法中建立模型。使用Simscape多体模型导入使用名称-值对来导入使用其他联合类型、约束块或变量惯性的模型。

例子

全部折叠

导入URDF文件作为rigidBodyTree对象。

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

{

ans =轴(主要)与属性:XLim: [-1.5000 1.5000] YLim: [-1.5000 1.5000] XScale: '线性' YScale: '线性' GridLineStyle: '-'位置:[0.1300 0.1100 0.7750 0.8150]单位:'归一化'显示所有属性

指定URDF字符向量。这个特征向量是创建一个有效的机器人模型的一个极简描述。

URDFtext =' < ?xml version = " 1.0 " ? > <机器人的名字=“min”> <链接name = " 10 " / > < /机器人>”

导入机器人模型。描述创建了一个rigidBodyTree对象,该对象只有一个名为“10”

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文件以获得机器人模型和视觉几何图形。该函数假设机器人的视觉几何和碰撞几何是相同的,并将视觉几何赋值为对应物体的碰撞几何。

使用显示函数在图形中显示机器人模型的视觉和拼接几何图形。然后,您可以通过单击组件来检查它们,并右键单击以切换可见性,从而与模型交互。

以URDF文件的形式导入机器人模型。的.stl文件位置必须在URDF中正确指定。添加其他.stl文件到单个刚体,见addVisual

机器人= importrobot(“iiwa14.urdf”);

使用相关的可视化模型可视化机器人。单击主体或框架以检查它们。右键单击主体以切换每个可视几何图形的可见性。

表演(机器人,“视觉效果”“上”“碰撞”“关闭”);

{

用相关的碰撞几何图形可视化机器人。单击主体或框架以检查它们。右击物体以切换每个碰撞几何的可见性。

表演(机器人,“视觉效果”“关闭”“碰撞”“上”);

{

将一个现有的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] blockconveroninfo: [1x1 struct]

显示已创建对象的详细信息rigidBodyTree对象。

showdetails (importInfo)
-------------------- 机器人:(21)尸体Idx身体名字仿真软件源块联合仿真软件源块联合类型父母名字(Idx)孩子的名字(s ) --- --------- ---------------------- ---------- ---------------------- ---------- ---------------- ---------------- 1 Body01信息| | |突出Joint01信息列表|突出转动基地(0)Body02 (2) 2 Body02信息| | |突出Joint02信息列表|突出转动Body01 (1) Body03 (3) 3 Body03信息| | |突出Joint03信息列表|亮点转动Body02 (2) Body04 (4) 4 Body04信息| | |突出Joint04信息列表|突出转动Body03 (3) 5 Body05信息| | |突出Joint05信息列表|突出转动基地(0)Body06 (6) 6 Body06信息| | |突出Joint06信息列表|突出转动Body05 (5) Body07 (7) 7 Body07信息| | |突出Joint07信息列表|突出转动Body06 (6) Body08 (8) 8 Body08信息| | |突出Joint08信息列表|突出转动Body07 (7) | | 9 Body09信息列表突出Joint09信息列表| |突出转动基地(0)Body10 (10) 10 Body10信息| | |突出Joint10信息列表|突出转动Body09 (9) Body11 (11) 11 Body11信息| | |突出Joint11信息列表|突出转动Body10 (10) Body12 (12) 12 Body12信息| | |突出Joint12信息列表|突出转动Body11 (11) 13 Body13信息| | |突出Joint13信息列表|突出转动基地(0)Body14 (14) 14 Body14信息列表| |突出Joint14信息| |列表突出转动Body13 (13) Body15 (15) 15 Body15信息| | |突出Joint15信息列表|突出转动Body14 (14) Body16 (16) 16 Body16信息| | |突出Joint16信息列表|突出转动Body15 (15) 17 Body17信息| | |突出Joint17信息列表|突出转动基地(0)Body18 (18) 18 Body18信息| | |突出Joint18信息列表|突出转动Body17 (17) Body19 (19) 19 Body19信息| | |突出Joint19信息列表|强调固定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模型描述。

包括机器人模型与网格数据

机器人模型 网格可视化 描述
“iiwa7.urdf”

图中为KUKA LBR iiwa 7 R800 7轴机器人的网格

KUKA LBR iiwa 7 R800 7轴机器人

“iiwa14.urdf”

图中为KUKA LBR iiwa 14 R820 7轴机器人URDF版的网格

URDF版库卡LBR iiwa 14 R820 7轴机器人

“iiwa14.sdf”

图中为KUKA LBR iiwa 14 R820 7轴机器人SDF版的网格

SDF版库卡LBR iiwa 14 R820 7轴机器人

“sawyer.urdf”

图中为Rethink Robotics 7轴机器人Sawyer的网格图

Rethink Robotics 7轴机器人Sawyer

请注意

若要下载包含的机器人模型的网格数据而不包含网格数据,请参见安装机器人系统工具箱机器人库数据支持包

包括没有网格数据的机器人模型

机器人模型 网格可视化 描述
“abbIrb120.urdf”

图中为ABB IRB 120六轴机器人的网格

ABBIRB 120六轴机器人

“abbIrb120T.urdf”

图中为ABB IRB 120T六轴机器人的网格

ABB IRB 120T六轴机器人

“abbIrb1600.urdf”

图中为ABB IRB 1600六轴机器人的网格

ABBIRB 1600六轴机器人

“abbYuMi.urdf”

图中为ABB YuMi双臂机器人的网格

ABB由美2-armed机器人

“amrPioneer3AT.urdf”

图中包含Adept MobileRobots先锋3-AT移动机器人的网格

先锋3-AT移动机器人

“amrPioneer3DX.urdf”

图中包含Adept MobileRobots先锋3-DX移动机器人的网格

先锋3-DX移动机器人

“amrPioneerLX.urdf”

图中包含Adept MobileRobots先锋LX移动机器人的网格

先锋LX移动机器人

“atlas.urdf”

图中为波士顿动力ATLAS人形机器人的网格图

波士顿动力公司阿特拉斯®人形机器人

“clearpathHusky.urdf”

图中包含Clearpath Robotics的哈士奇移动机器人的网格

Clearpath机器人沙哑的移动机器人

“clearpathJackal.urdf”

图中包含Clearpath Robotics的Jackal移动机器人的网格

Clearpath机器人移动机器人

“clearpathTurtleBot2.urdf”

图中包含Clearpath Robotics TurtleBot 2移动机器人的网格

Clearpath机器人TurtleBot 2移动机器人

“fanucLRMate200ib.urdf”

图中为FANUC LR Mate 200iB六轴机器人的网格

发那科LR Mate 200iB六轴机器人

“fanucM16ib.urdf”

图中为FANUC M-16iB六轴机器人的网格

发那科M-16iB六轴机器人

“frankaEmikaPanda.urdf”

图中为Franka Emika Panda七轴机器人的网格

Franka Emika Panda七轴机器人

“kinovaGen3.urdf”

图中为KINOVA Gen3 7轴机器人版本1的网格

KINOVA®Gen3 7轴机器人1版

“kinovaGen3V12.urdf”

图中为KINOVA Gen3 7轴机器人版本2的网格

KINOVA®Gen3 7轴机器人2版

“kinovaJacoJ2N6S200.urdf”

图中为KINOVA JACO二指非球形腕部六自由度机器人的网格

KINOVA错话®带非球形手腕的2指6自由度机器人

“kinovaJacoJ2N6S300.urdf”

图中为KINOVA JACO三指非球形腕部六自由度机器人的网格

KINOVA错话®三指六自由度非球形腕部机器人

“kinovaJacoJ2N7S300.urdf”

图中为KINOVA JACO三指7自由度非球形腕部机器人的网格

KINOVA错话®3指7自由度非球形腕部机器人

“kinovaJacoJ2S6S300.urdf”

图中为KINOVA JACO三指六自由度球形腕部机器人的网格

KINOVA错话®三指六自由度球形腕部机器人

“kinovaJacoJ2S7S300.urdf”

图中为KINOVA JACO三指7自由度球形腕部机器人的网格

KINOVA错话®3指7自由度球形腕部机器人

“kinovaJacoTwoArmExample.urdf”

图中为两个KINOVA JACO三指非球形腕部六自由度机器人的网格

两个KINOVA错话®带非球形手腕的3指6自由度机器人

“kinovaMicoM1N4S200.urdf”

图中为KINOVA MICO二指四自由度机器人的网格

KINOVA MICO®二指四自由度机器人

“kinovaMicoM1N6S200.urdf”

图中为KINOVA MICO二指六自由度机器人的网格

KINOVA MICO®二指六自由度机器人

“kinovaMicoM1N6S300.urdf”

图中为KINOVA MICO三指六自由度机器人的网格

KINOVA MICO®三指六自由度机器人

“kinovaMovo.urdf”

图中为KINOVA MOVO双臂移动机器人的网格

KINOVA MOVO®双臂移动机器人

“kukaIiwa7.urdf”

图中为KUKA LBR iiwa 7 R800 7轴机器人的网格

KUKA LBR iiwa 7 R800 7轴机器人

“kukaIiwa14.urdf”

图中为KUKA LBR iiwa 14 R820 7轴机器人的网格

KUKA LBR iiwa 14 R820 7轴机器人

“meca500r3.urdf”

图中为Mecademic Meca500 R3六轴机器人的网格

Meca500 R3六轴机器人

“quanserQArm.urdf”

图中为Quanser QArm 4自由度机器人的网格

Quanser QArm四自由度机器人

“quanserQBot2e.urdf”

图中为Quanser QBot 2e移动机器人的网格

Quanser QBot 2e移动机器人

“quanserQCar.urdf”

图中为Quanser QCar移动机器人的网格

Quanser QCar移动机器人

“rethinkBaxter.urdf”

图中包含Rethink Robotics的Baxter双臂机器人的网格

Baxter 2臂机器人

“rethinkSawyer.urdf”

图中为Rethink Robotics 7轴机器人Sawyer的网格图

Rethink Robotics 7轴机器人Sawyer

“robotiq2F85.urdf”

图中为Robotiq 2F-85双指夹持器的网格

Robotiq 2F-85双指夹持器

夹持器可与以下机械手一起使用:

  • 万能机器人UR3

  • 万能机器人UR3e

  • 万能机器人UR5

  • 万能机器人UR5e

  • 万能机器人UR10

  • 万能机器人UR10e

  • 万能机器人UR16e

  • KINOVA®Gen3(版本1和2)

“robotisOP2.urdf”

图中为ROBOTIS OP2人形机器人的网格

ROBOTIS OP2人形机器人

“robotisOpenManipulator.urdf”

图中为ROBOTIS open机械手四轴机械手的网格

ROBOTIS open机械手四轴机械手

“robotisTurtleBot3Burger.urdf”

图中包含ROBOTIS TurtleBot 3汉堡机器人的网格

TurtleBot 3汉堡机器人

“robotisTurtleBot3Waffle.urdf”

图中包含ROBOTIS TurtleBot 3华夫饼机器人的网格

TurtleBot 3华夫饼机器人

“robotisTurtleBot3WaffleForOpenManipulator.urdf”

图中包含open机械手的ROBOTIS TurtleBot 3华夫饼干机器人的网格

ROBOTIS TurtleBot 3华夫饼机器人与open机械手

“robotisTurtleBot3WafflePi.urdf”

图中包含ROBOTIS TurtleBot 3华夫派机器人的网格

TurtleBot 3华夫饼派机器人

“robotisTurtleBot3WafflePiForOpenManipulator.urdf”

图中包含open机械手机器人ROBOTIS TurtleBot 3 Waffle Pi的网格

ROBOTIS TurtleBot 3华夫饼派机器人与open机械手

“universalUR3.urdf”

图中为万能机器人UR3六轴机器人的网格

万能机器人UR3六轴机器人

“universalUR3e.urdf”

图中为万能机器人UR3e六轴机器人的网格

万能机器人UR3e六轴机器人

“universalUR5.urdf”

图中为万能机器人UR5六轴机器人的网格

万能机器人UR5六轴机器人

“universalUR5e.urdf”

图中为万能机器人UR5e六轴机器人的网格

万能机器人UR5e六轴机器人

“universalUR10.urdf”

图中为万能机器人UR10六轴机器人的网格

万能机器人UR10六轴机器人

“universalUR10e.urdf”

图中为万能机器人UR10e六轴机器人的网格

万能机器人UR10e六轴机器人

“universalUR16e.urdf”

图中为万能机器人UR16e六轴机器人的网格

万能机器人UR16e六轴机器人

“valkyrie.urdf”

图中包含NASA瓦尔基里人形机器人的网格

美国宇航局女武神人形机器人

“willowgaragePR2.urdf”

图中为Willow Garage PR2移动机器人的网格

柳树车库PR2移动机器人

“yaskawaMotomanMH5.urdf”

图中为安川Motoman MH5六轴机器人的网格

安川Motoman MH5六轴机器人

例子:“robot_file.urdf”

例子:“robot_file.sdf”

数据类型:字符|字符串

URDF机器人文本,指定为字符串标量或字符向量。

例子:“< ?xml version = " 1.0 " ? > <机器人的名字=“min”> <链接name = " 10 " / > < /机器人>”

例子:“robot_file.txt”、“urdf”

数据类型:字符|字符串

SDF模型文本,指定为字符串标量或字符向量。

例子:“< ?xml version = " 1.0 " ? > <自卫队version = " 1.6 " > <模型名称=“min”> <链接name = " 10 " / > < /模型> < /自卫队>”

例子:“robot_file.txt”、“自卫队”

数据类型:字符|字符串

机器人描述文本文件的文件格式,指定为字符串标量或字符向量。使用此参数显式地指定机器人描述文件所需的格式。

例子:“robot_file.txt”、“urdf”

例子:“robot_file.txt”、“自卫队”

数据类型:字符|字符串

Simscape多体模型,指定为模型句柄、字符串标量或字符向量。

数据类型:字符|字符串

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“MeshPath”{“. . / arm_meshes”、“. . / body_meshes”}

URDF或SDF导入

全部折叠

网格文件的相对搜索路径,指定为字符串标量、字符向量或字符串标量或字符向量的单元格数组。网格文件仍然必须在URDF或SDF文件中指定,但是MeshPath定义这些指定文件的相对路径。

数据类型:字符|字符串|细胞

机器人模型的运动学和动力学函数的输入/输出数据格式,指定为由逗号分隔的对组成“DataFormat”而且“结构”“行”,或“列”.要使用动态函数,必须指定其中任何一个“行”“列”.此名称-值对设置DataFormat的属性rigidBodyTree机器人模型。

数据类型:字符|字符串

从包含多个模型的SDF文件或文本中选择一个模型,指定为字符串标量或字符向量。

请注意

此名称-值对仅应用于SDF模型和文本。

数据类型:字符|字符串

导入机器人在代码生成过程中允许的最大体数,以整数指定。使用MaxNumBodies将刚体添加到支持代码生成的函数中的导入树中。可以添加的附加体的数量就是MaxNumBodies导入树中尸体的数量,rigidBodyTree。NumBodies

请注意

这个名称-值对仅在代码生成工作流中是必需的。

Simscape多体模型导入

全部折叠

指示是否断开给定中的闭合链模型输入,指定为“错误”“remove-joints”.如果你指定“remove-joints”,结果是机器人输出链条关闭接头已移除。否则,该函数抛出错误。

数据类型:字符|字符串

指示是否将给定中的无支撑关节转换为固定关节模型输入,指定为“错误”“convert-to-fixed”.如果你指定“convert-to-fixed”,结果是机器人输出有任何不支持的关节转换为固定关节。输出中只支持固定关节、移动关节和转动关节rigidBodyTree对象。否则,如果模型包含不受支持的关节,则该函数抛出错误。

数据类型:字符|字符串

对象中的约束块模型输入,指定为“错误”“删除”.如果你指定“删除”,结果是机器人输出删除了约束。否则,如果模型包含约束块,则函数抛出错误。

数据类型:字符|字符串

指示是否删除给定中的可变惯性块模型输入,指定为“错误”“删除”.如果你指定“删除”,结果是机器人输出有可变惯性删除。否则,如果模型包含可变惯性块,则函数抛出错误。

数据类型:字符|字符串

机器人模型的运动学和动力学函数的输入/输出数据格式,指定为由逗号分隔的对组成“DataFormat”而且“结构”“行”,或“列”.要使用动态函数,必须指定其中任何一个“行”“列”.此名称-值对设置DataFormat的属性rigidBodyTree机器人模型。

数据类型:字符|字符串

输出参数

全部折叠

机器人模型,返回为rigidBodyTree对象。

请注意

如果URDF文件中没有指定重力,则默认重力属性设置为[0 0 0]Simscape多体使用默认值[0 0 -9.80665]米/秒2当使用smimport导入URDF。

对象,用于存储导入信息,返回为rigidBodyTreeImportInfo对象。该对象包含输入之间的关系模型结果是机器人输出。

使用showdetails控件中每个主体的所有导入信息机器人.将显示刚体信息的链接、模型中相应的块以及突出显示模型中的特定块输出到命令窗口。

使用bodyInfobodyInfoFromBlock,或bodyInfoFromJoint中特定组件的信息机器人输出或模型输入。

提示

在导入带有视觉网格的机器人模型时,需要使用importrobot函数搜索.stl.dae使用以下规则分配给每个刚体的文件:

  • 该函数从URDF或SDF文件中搜索指定刚体的原始网格路径。对ROS包的引用具有包:\ \ < pkg_name >移除。

  • 绝对路径直接检查,不做任何修改。

  • 使用以下目录按顺序检查相对路径:

    • 用户指定的MeshPath

    • 当前文件夹

    • MATLAB®路径

    • 包含URDF或SDF文件的文件夹

    • 在包含URDF或SDF文件的文件夹的上面一层

  • URDF或SDF文件中的网格路径中的文件名被追加到MeshPath输入参数。

如果仍然没有找到网格文件,解析器将忽略网格文件并返回rigidBodyTree没有视觉的对象。

版本历史

在R2017a中引入

Baidu
map