Main Content

importrobot

URDF, Xacro, SDF 파일, 텍스트 또는 Simscape Multibody 모델에서 강체 트리 모델 가져오기

설명

URDF, Xacro 또는 SDF 가져오기

예제

robot = importrobot(filename)filename에 의해 지정된 URDF(Unified Robot Description Format) 파일, Xacro(XML Macros) 파일 또는 SDF(Simulation Description Format) 파일을 구문 분석하여 rigidBodyTree 객체를 반환합니다.

예제

robot = importrobot(text)는 URDF 텍스트, Xacro 텍스트 또는 SDF 텍스트에서 로봇 설명을 구문 분석합니다.

robot = importrobot(___,format)은 위에 열거된 구문의 입력 인수 조합 외에 로봇 설명의 유형을 명시적으로 지정합니다. 텍스트 파일의 형식이 format 인수로 지정된 형식과 일치하지 않으면 함수는 오류를 반환합니다.

robot = importrobot(format)은 위에 열거된 구문의 입력 인수 조합 외에 로봇 설명의 유형을 명시적으로 지정합니다. 텍스트 파일의 형식이 format 인수로 지정된 형식과 일치하지 않으면 함수는 오류를 반환합니다.

예제

robot = importrobot(___,Name,Value)는 위에 열거된 구문의 입력 인수 조합 외에 하나 이상의 이름-값 쌍 인수를 사용하여 옵션을 지정합니다. 예를 들어 importrobot("iiwa14.urdf",CollisionDecomposition=true)는 KUKA LBR iiwa 14 로봇을 가져오고, V-HACD(voxelized hierarchical approximate convex decomposition: 복셀화된 계층적 근사 볼록 분해)를 사용하여 로봇의 충돌 메시를 분해합니다.

URDF 파일, Xacro 파일, SDF 파일이나 텍스트에서 모델을 가져오려면 URDF, Xacro 또는 SDF 가져오기 이름-값 쌍을 사용합니다.

Simscape Multibody 모델 가져오기

[robot,importInfo] = importrobot(model)Simscape™ Multibody™ 모델을 가져오고 동일한 rigidBodyTree 객체와 importInfo의 가져오기에 대한 정보를 반환합니다. 출력 rigidBodyTree 객체에서는 고정 조인트, 직선 조인트, 회전 조인트만 지원됩니다.

[robot,importInfo] = importrobot(___,Name,Value)는 이전 구문의 Simscape Multibody 모델 외에 하나 이상의 이름-값 쌍의 인수를 사용하여 옵션을 지정합니다. 다른 조인트 유형, Constraint 블록 또는 가변 관성을 사용하는 모델을 가져오려면 Simscape Multibody 모델 가져오기 이름-값 쌍을 사용하십시오.

예제

모두 축소

URDF 파일을 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'

  Use GET to show all properties

URDF 문자형 벡터를 지정합니다. 이 문자형 벡터는 유효한 로봇 모델을 만들기 위한 최소한의 설명입니다.

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

로봇 모델을 가져옵니다. 설명은 'L0'이라는 로봇 베이스 링크만 있는 rigidBodyTree 객체를 생성합니다.

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'

URDF(Unified Robot Description format) 파일과 연결된 .stl 파일이 있는 로봇을 가져와서 로봇의 시각적 기하 도형을 설명할 수 있습니다. 각 강체에는 개별 시각적 기하 도형이 지정되어 있습니다. importrobot 함수는 URDF 파일을 구문 분석하여 로봇 모델과 시각적 기하 도형을 가져옵니다. 이 함수는 로봇의 시각적 기하 도형과 충돌 기하 도형이 동일하다고 간주하고, 시각적 기하 도형을 대응하는 바디의 충돌 기하 도형으로 할당합니다.

show 함수를 사용하여 Figure에 로봇 모델의 시각적 기하 도형과 충돌 기하 도형을 표시합니다. 그런 다음 구성요소를 클릭하여 검사하고 마우스 오른쪽 버튼으로 클릭하여 가시성을 전환함으로써 모델과 상호 작용할 수 있습니다.

로봇 모델을 URDF 파일로 가져옵니다. .stl 파일 위치는 이 URDF에 올바르게 지정되어 있어야 합니다. 개별 강체에 다른 .stl 파일을 추가하려면 addVisual 항목을 참조하십시오.

robot = importrobot('iiwa14.urdf');

연결된 시각적 모델을 사용하여 로봇을 시각화합니다. 바디 또는 프레임을 검사하려면 마우스 왼쪽 버튼으로 클릭합니다. 각 시각적 기하 도형의 가시성을 전환하려면 바디를 마우스 오른쪽 버튼으로 클릭합니다.

show(robot,Visuals="on",Collisions="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.

연결된 충돌 기하 도형을 사용하여 로봇을 시각화합니다. 바디 또는 프레임을 검사하려면 마우스 왼쪽 버튼으로 클릭합니다. 각 충돌 기하 도형의 가시성을 전환하려면 바디를 마우스 오른쪽 버튼으로 클릭합니다.

show(robot,Visuals="off",Collisions="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.

기존 Simscape™ Multibody™ 로봇 모델을 Robotics System Toolbox™에 rigidBodyTree 객체로 가져옵니다.

Simscape™ Multibody™ 모델을 엽니다. 이는 휴머노이드 로봇에 대한 모델입니다.

open_system('example_smhumanoidrobot.slx')

모델을 가져옵니다.

[robot,importInfo] = importrobot(gcs)
robot = 
  rigidBodyTree with properties:

     NumBodies: 21
        Bodies: {1×21 cell}
          Base: [1×1 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: [1×1 rigidBodyTree]
    BlockConversionInfo: [1×1 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)   
--------------------

KUKA LBR iiwa 14 로봇을 가져옵니다.

robot = importrobot("iiwa14.urdf");

로봇을 디폴트 충돌 메시와 함께 표시합니다.

t = tiledlayout(1,2);
title(t,"KUKA iiwa 14")
nexttile;
show(robot,Visuals="off",Collisions="on");
title("Default Collision Meshes");
axis auto
nexttile;
show(robot);
title("Visual Meshes");
axis auto

Figure contains 2 axes objects. Axes object 1 with title Default Collision Meshes, 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. Axes object 2 with title Visual Meshes, 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.

로봇을 가져오되 V-HACD(복셀화된 계층적 근사 볼록 분해)를 사용하여 충돌 메시를 분해합니다.

robotCollisionDecomp = importrobot("iiwa14.urdf",CollisionDecomposition=true);

로봇을 분해를 통해 업데이트된 충돌 메시와 함께 표시합니다.

figure
show(robotCollisionDecomp,Visuals="off",Collisions="on");
title("Decomposition of Collision Meshes");
axis auto

Figure contains an axes object. The axes object with title Decomposition of Collision Meshes, xlabel X, ylabel Y contains 85 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.

기본적으로 V-HACD 솔버는 로봇의 충돌 메시를 분해합니다. 로봇의 시각적 메시를 분해하기 위해 사용자 지정 V-HACD 솔버 옵션을 사용하여 로봇을 가져옵니다.

options = vhacdOptions("RigidBodyTree",SourceMesh="VisualGeometry");
robotVisualDecomp = importrobot("iiwa14.urdf",CollisionDecomposition=options);

로봇을 분해를 통해 업데이트된 충돌 메시와 함께 표시합니다.

figure
show(robotVisualDecomp,Visuals="off",Collisions="on");
title("Decomposition of Visual Meshes");
axis auto

Figure contains an axes object. The axes object with title Decomposition of Visual Meshes, xlabel X, ylabel Y contains 85 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.

입력 인수

모두 축소

로봇 설명 파일의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 이 파일은 유효한 URDF 로봇 설명, Xacro 로봇 설명 또는 SDF 모델 설명이어야 합니다.

메시 데이터와 함께 포함된 로봇 모델

로봇 모델메시 시각화설명
"iiwa7.urdf"

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

KUKA LBR iiwa 7 R800 7축 로봇

"iiwa14.urdf"

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

KUKA LBR iiwa 14 R820 7축 로봇의 URDF 버전

"iiwa14.xacro"

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

KUKA LBR iiwa 14 R820 7축 로봇의 Xacro 버전

"iiwa14.sdf"

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

KUKA LBR iiwa 14 R820 7축 로봇의 SDF 버전

"sawyer.urdf"

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

Rethink Robotics Sawyer 7축 로봇

참고

메시 데이터 없이 포함된 로봇 모델의 메시 데이터를 다운로드하려면 Robotics System Toolbox Robot Library Data 지원 패키지 설치하기 항목을 참조하십시오.

메시 데이터 없이 포함된 로봇 모델

로봇 모델메시 시각화설명
"abbIrb120.urdf"

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

ABB IRB 120 6축 로봇

"abbIrb120T.urdf"

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

ABB IRB 120T 6축 로봇

"abbIrb1600.urdf"

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

ABB IRB 1600 6축 로봇

"abbYuMi.urdf"

Figure contains the mesh of ABB YuMi 2-armed robot

ABB YuMi 2개 팔 로봇

"amrPioneer3AT.urdf"

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

Adept MobileRobots Pioneer 3-AT 이동 로봇

"amrPioneer3DX.urdf"

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

Adept MobileRobots Pioneer 3-DX 이동 로봇

"amrPioneerLX.urdf"

Figure contains the mesh of Adept MobileRobots Pioneer LX mobile robot

Adept MobileRobots Pioneer LX 이동 로봇

"atlas.urdf"

Figure contains the mesh of Boston Dynamics ATLAS Humanoid robot

Boston Dynamics ATLAS® 휴머노이드 로봇

"clearpathHusky.urdf"

Figure contains the mesh of Clearpath Robotics Husky mobile robot

Clearpath Robotics Husky 이동 로봇

"clearpathJackal.urdf"

Figure contains the mesh of Clearpath Robotics Jackal mobile robot

Clearpath Robotics Jackal 이동 로봇

"clearpathTurtleBot2.urdf"

Figure contains the mesh of Clearpath Robotics TurtleBot 2 mobile robot

Clearpath Robotics TurtleBot 2 이동 로봇

"fanucLRMate200ib.urdf"

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

FANUC LR Mate 200iB 6축 로봇

"fanucM16ib.urdf"

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

FANUC M-16iB 6축 로봇

"frankaEmikaPanda.urdf"

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

Franka Emika Panda 7축 로봇

"kinovaGen3.urdf"

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

KINOVA® Gen3 7축 로봇의 버전 1

"kinovaGen3V12.urdf"

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

KINOVA® Gen3 7축 로봇의 버전 2

"kinovaJacoJ2N6S200.urdf"

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

KINOVA JACO® 2개 손가락 6 DOF 로봇(비구형 손목 포함)

"kinovaJacoJ2N6S300.urdf"

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

KINOVA JACO® 3개 손가락 6 DOF 로봇(비구형 손목 포함)

"kinovaJacoJ2N7S300.urdf"

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

KINOVA JACO® 3개 손가락 7 DOF 로봇(비구형 손목 포함)

"kinovaJacoJ2S6S300.urdf"

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

KINOVA JACO® 3개 손가락 6 DOF 로봇(구형 손목 포함)

"kinovaJacoJ2S7S300.urdf"

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

KINOVA JACO® 3개 손가락 7 DOF 로봇(구형 손목 포함)

"kinovaJacoTwoArmExample.urdf"

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

Two KINOVA JACO® 3개 손가락 6 DOF 로봇(비구형 손목 포함)

"kinovaMicoM1N4S200.urdf"

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

KINOVA MICO® 2개 손가락 4 DOF 로봇

"kinovaMicoM1N6S200.urdf"

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

KINOVA MICO® 2개 손가락 6 DOF 로봇

"kinovaMicoM1N6S300.urdf"

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

KINOVA MICO® 3개 손가락 6 DOF 로봇

"kinovaMovo.urdf"

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

KINOVA MOVO® 2개 팔 이동 로봇

"kukaIiwa7.urdf"

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

KUKA LBR iiwa 7 R800 7축 로봇

"kukaIiwa14.urdf"

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

KUKA LBR iiwa 14 R820 7축 로봇

"meca500r3.urdf"

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

Mecademic Meca500 R3 6축 로봇

"omronEcobra600.urdf"

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

Omron eCobra 600 4축 SCARA 로봇

"puma560.urdf"

Figure contains the mesh of PUMA 560 6-axis robot

PUMA 560 6축 로봇

"quanserQArm.urdf"

Figure contains the mesh of Quanser QArm 4 DOF robot

Quanser QArm 4 DOF 로봇

"quanserQBot2e.urdf"

Figure contains the mesh of Quanser QBot 2e mobile robot

Quanser QBot 2e 이동 로봇

"quanserQCar.urdf"

Figure contains the mesh of Quanser QCar mobile robot

Quanser QCar 이동 로봇

"rethinkBaxter.urdf"

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

Rethink Robotics Baxter 2개 팔 로봇

"rethinkSawyer.urdf"

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

Rethink Robotics Sawyer 7축 로봇

"robotiq2F85.urdf"

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

Robotiq 2F-85 2개 손가락 그리퍼

이 그리퍼와 함께 사용할 수 있는 매니퓰레이터의 목록은 다음과 같습니다.

  • Universal Robots UR3

  • Universal Robots UR3e

  • Universal Robots UR5

  • Universal Robots UR5e

  • Universal Robots UR10

  • Universal Robots UR10e

  • Universal Robots UR16e

  • KINOVA® Gen3(버전 1과 버전 2)

"robotisOP2.urdf"

Figure contains the mesh of ROBOTIS OP2 Humanoid robot

ROBOTIS OP2 휴머노이드 로봇

"robotisOpenManipulator.urdf"

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

ROBOTIS OpenMANIPULATOR 4축 로봇(그리퍼 포함)

"robotisTurtleBot3Burger.urdf"

Figure contains the mesh of ROBOTIS TurtleBot 3 Burger robot

ROBOTIS TurtleBot 3 Burger 로봇

"robotisTurtleBot3Waffle.urdf"

Figure contains the mesh of ROBOTIS TurtleBot 3 Waffle robot

ROBOTIS TurtleBot 3 Waffle 로봇

"robotisTurtleBot3WaffleForOpenManipulator.urdf"

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

ROBOTIS TurtleBot 3 Waffle 로봇(OpenMANIPULATOR 포함)

"robotisTurtleBot3WafflePi.urdf"

Figure contains the mesh of ROBOTIS TurtleBot 3 Waffle Pi robot

ROBOTIS TurtleBot 3 Waffle Pi 로봇

"robotisTurtleBot3WafflePiForOpenManipulator.urdf"

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

ROBOTIS TurtleBot 3 Waffle Pi 로봇(OpenMANIPULATOR 포함)

"techmanTM5-700"

Figure contains the mesh of Techman TM5-700 6-axis robot with Camera

Techman TM5-700 6축 로봇(카메라 포함)

"techmanTM5x-700"

Figure contains the mesh of Techman TM5X-700 6-axis robot without Camera

Techman TM5X-700 6축 로봇(카메라 미포함)

"techmanTM5-900"

Figure contains the mesh of Techman TM5-900 6-axis robot with Camera

Techman TM5-900 6축 로봇(카메라 포함)

"techmanTM5x-900"

Figure contains the mesh of Techman TM5X-900 6-axis robot without Camera

Techman TM5X-900 6축 로봇(카메라 미포함)

"techmanTM12"

Figure contains the mesh of Techman TM12 6-axis robot with Camera

Techman TM12 6축 로봇(카메라 포함)

"techmanTM12x"

Figure contains the mesh of Techman TM12X 6-axis robot without Camera

Techman TM12X 6축 로봇(카메라 미포함)

"techmanTM14"

Figure contains the mesh of Techman TM14 6-axis robot with Camera

Techman TM14 6축 로봇(카메라 포함)

"techmanTM14x"

Figure contains the mesh of Techman TM14X 6-axis robot without Camera

Techman TM14X 6축 로봇(카메라 미포함)

"universalUR3.urdf"

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

Universal Robots UR3 6축 로봇

"universalUR3e.urdf"

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

Universal Robots UR3e 6축 로봇

"universalUR5.urdf"

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

Universal Robots UR5 6축 로봇

"universalUR5e.urdf"

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

Universal Robots UR5e 6축 로봇

"universalUR10.urdf"

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

Universal Robots UR10 6축 로봇

"universalUR10e.urdf"

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

Universal Robots UR10e 6축 로봇

"universalUR16e.urdf"

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

Universal Robots UR16e 6축 로봇

"valkyrie.urdf"

Figure contains the mesh of NASA Valkyrie Humanoid robot

NASA Valkyrie 휴머노이드 로봇

"willowgaragePR2.urdf"

Figure contains the mesh of Willow Garage PR2 mobile robot

Willow Garage PR2 이동 로봇

"yaskawaMotomanMH5.urdf"

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

Yaskawa Motoman MH5 6축 로봇

예: "robot_file.urdf"

예: "robot_file.xacro"

예: "robot_file.sdf"

데이터형: char | string

로봇 설명 텍스트로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 이 텍스트는 유효한 URDF 로봇 설명, Xacro 로봇 설명 또는 SDF 모델 설명이어야 합니다.

텍스트에서 URDF 로봇 설명을 구문 분석하기

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);

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");

텍스트에서 Xacro 로봇 설명을 구문 분석하기

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);

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");

텍스트에서 SDF 로봇 설명을 구문 분석하기

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);

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");

데이터형: char | string

로봇 설명 텍스트 파일의 파일 형식으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 로봇 설명 파일에 필요한 형식을 명시적으로 지정하려면 이 인수를 사용하십시오.

예: "robot_file.txt","urdf"

예: "robot_file.txt","xacro"

예: "robot_file.txt","sdf"

데이터형: char | string

Simscape Multibody 모델로, 모델 핸들, string형 스칼라 또는 문자형 벡터로 지정됩니다.

데이터형: char | string

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 버전에서는 쉼표를 사용하여 각 이름과 값을 구분하고 따옴표로 Name을 묶으십시오.

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

URDF, Xacro 또는 SDF 가져오기

모두 축소

메시 파일의 상대 탐색 경로로, string형 스칼라, 문자형 벡터, 또는 string형 스칼라나 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 메시 파일은 여전히 URDF 파일, Xacro 파일 또는 SDF 파일 내에서 지정되어야 하지만 MeshPath는 이렇게 지정된 파일의 상대 경로를 정의합니다.

종속성

이 이름-값 인수를 사용하려면 filename 또는 text 인수를 URDF, Xacro, SDF 파일 중 하나로 지정해야 합니다.

데이터형: char | string | cell

로봇 모델의 기구학 함수와 동역학 함수에 대한 입력/출력 데이터 형식으로, 'DataFormat'과 함께 "struct", "row" 또는 "column"이 쉼표로 구분되어 지정됩니다. 동역학 함수를 사용하려면 "row" 또는 "column"을 지정해야 합니다. 이 이름-값 쌍은 rigidBodyTree 로봇 모델의 DataFormat 속성을 설정합니다.

데이터형: char | string

여러 모델이 포함된 SDF 파일 또는 텍스트에서의 모델 선택으로, string형 스칼라 또는 문자형 벡터로 지정됩니다.

종속성

이 이름-값 인수를 사용하려면 filename 또는 text 인수를 SDF 파일 또는 SDF 텍스트 설명으로 각각 지정해야 합니다.

데이터형: char | string

코드 생성 중에 가져온 로봇에 허용되는 최대 바디 개수로, 정수로 지정됩니다. 코드 생성을 지원하는 함수 내에서 가져온 트리에 강체를 추가하려면 MaxNumBodies를 사용합니다. 추가할 수 있는 추가 바디 개수는 MaxNumBodies와 가져온 트리의 바디 개수 rigidBodyTree.NumBodies 간의 차이입니다.

참고

이 이름-값 쌍은 코드 생성 워크플로에만 필요합니다.

로봇을 가져온 후 충돌 메시를 분해할지 여부로, 논리값 0(false), 논리값 1(true) 또는 vhacdOptions 객체로 지정됩니다.

  • falseimportrobot 함수가 로봇을 가져온 후 충돌 메시를 분해하지 않습니다.

  • trueimportrobot 함수가 collisionVHACD 함수와 디폴트 분해 옵션을 사용하여 URDF 파일 또는 텍스트에 지정된 로봇 충돌 메시를 분해합니다.

  • vhacdOptions 객체 — importrobot 함수가 collisionVHACD 함수와 지정된 분해 옵션을 사용하여 URDF 파일 또는 텍스트에 지정된 충돌 메시를 분해합니다. vhacdOptions 객체의 Type 속성을 "RigidBodyTree"로 설정해야 합니다.

Simscape Multibody 모델 가져오기

모두 축소

닫힌 체인 해제로, "error" 또는 "remove-joints"로 지정됩니다.

  • "error" — 소스 모델에 닫힌 체인이 포함되어 있으면 importrobot 함수가 오류를 반환합니다.

  • "remove-joints"importrobot 함수가 로봇 모델에서 조인트를 제거하여 닫힌 체인을 해제합니다. 제거된 조인트는 importInfo 출력 인수의 BlockConversionInfo 속성에서 확인할 수 있습니다.

데이터형: char | string

지원되지 않는 조인트에서 고정 조인트로의 변환으로, "error" 또는 "convert-to-fixed"로 지정됩니다.

  • "error" — 소스 모델에 지원되지 않는 조인트가 포함되어 있으면 importrobot 함수가 오류를 반환합니다.

  • "convert-to-fixed"importrobot 함수가 소스 모델에 있는 지원되지 않는 조인트를 고정 조인트로 변환합니다. 변환된 조인트는 importInfo 출력 인수의 BlockConversionInfo 속성에서 확인할 수 있습니다.

지원되지 않는 조인트는 고정 조인트, 직선 조인트, 회전 조인트 이외의 모든 조인트입니다.

데이터형: char | string

Constraint 블록 제거로, "error" 또는 "remove"로 지정됩니다.

  • "error" — 소스 모델에 Constraint 블록이 포함되어 있으면 importrobot 함수가 오류를 반환합니다.

  • "remove"importrobot 함수가 소스 모델에 있는 Constraint 블록으로 인한 기여를 제거합니다. 제거된 제약 조건은 importInfo 출력 인수의 BlockConversionInfo 속성에서 확인할 수 있습니다.

데이터형: char | string

Variable Inertia 블록 제거로, "error" 또는 "remove"로 지정됩니다.

  • "error" — 소스 모델에 Variable Inertia 블록이 포함되어 있으면 importrobot 함수가 오류를 반환합니다.

  • "remove"importrobot 함수가 소스 모델에 있는 Variable Inertia 블록으로 인한 기여를 제거합니다. 제거된 가변 관성은 importInfo 출력 인수의 BlockConversionInfo 속성에서 확인할 수 있습니다.

데이터형: char | string

로봇 모델의 기구학 함수와 동역학 함수에 대한 입력/출력 데이터 형식으로, 'DataFormat'과 함께 "struct", "row" 또는 "column"이 쉼표로 구분되어 지정됩니다. 동역학 함수를 사용하려면 "row" 또는 "column"을 지정해야 합니다. 이 이름-값 쌍은 rigidBodyTree 로봇 모델의 DataFormat 속성을 설정합니다.

데이터형: char | string

출력 인수

모두 축소

로봇 모델로, rigidBodyTree 객체로 반환됩니다.

참고

URDF 파일에 중력이 지정되지 않은 경우 디폴트 Gravity 속성은 [0 0 0]으로 설정됩니다. Simscape Multibodysmimport를 사용하여 URDF를 가져올 때 디폴트 값인 [0 0 -9.80665]m/s2을 사용합니다.

가져오기 정보를 저장하기 위한 객체로, rigidBodyTreeImportInfo 객체로 반환됩니다. 이 객체에는 입력 model과 그 결과로 생성된 robot 출력 간의 관계가 포함됩니다.

robot의 각 바디에 대한 가져오기 정보를 나열하려면 showdetails를 사용합니다. 강체 정보를 표시하는 링크, 강체에 대응하는 모델 내 블록, 모델에서 특정 블록의 강조 표시가 명령 창에 출력됩니다.

robot 출력 또는 model 입력에서 특정 구성요소에 대한 정보를 가져오려면 bodyInfo, bodyInfoFromBlock 또는 bodyInfoFromJoint를 사용합니다.

제한 사항

  • importrobot 함수는 모방 태그가 포함된 URDF 파일에서 로봇 모델 가져오기를 지원하지 않습니다.

시각적 메시가 있는 로봇 모델을 가져올 때 importrobot 함수는 다음 규칙을 사용하여 각 강체에 할당할 .stl 파일 또는 .dae 파일을 검색합니다.

  • 이 함수는 URDF 파일, Xacro 파일 또는 SDF 파일에서 지정된 강체에 대한 원시 메시 경로를 탐색합니다. ROS 패키지에 대한 참조에서 package:\\<pkg_name>이 제거되었습니다.

  • 절대 경로는 수정 없이 직접 검사가 이루어집니다.

  • 상대 경로는 다음 디렉터리를 순서대로 사용하여 검사가 이루어집니다.

    • 사용자 지정 MeshPath

    • 현재 폴더

    • MATLAB® 경로

    • URDF 파일, Xacro 파일 또는 SDF 파일을 포함한 폴더

    • URDF 파일, Xacro 파일 또는 SDF 파일을 포함한 폴더의 한 단계 상위 폴더

  • URDF 파일, Xacro 파일 또는 SDF 파일에 있는 메시 경로의 파일 이름이 MeshPath 입력 인수에 추가됩니다.

메시 파일이 계속 발견되지 않으면 구문 분석기는 메시 파일을 무시하고 시각적 요소가 없는 rigidBodyTree 객체를 반환합니다.

참고 문헌

[1] Mammou, Khaled, et al. “Voxelized Hierarchical Approximate Convex Decomposition - V-HACD Version 4.” GitHub, October 24, 2022. https://github.com/kmammou/v-hacd.

확장 기능

버전 내역

R2017a에 개발됨

모두 확장