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(___,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 모델 가져오기
[
은 Simscape™ Multibody™ 모델을 가져오고 동일한 robot
,importInfo
] = importrobot(model
)rigidBodyTree
객체와 importInfo
의 가져오기에 대한 정보를 반환합니다. 출력 rigidBodyTree
객체에서는 고정 조인트, 회전 조인트, 플로팅 조인트만 지원됩니다.
[
는 이전 구문의 Simscape Multibody 모델 외에 하나 이상의 이름-값 쌍의 인수를 사용하여 옵션을 지정합니다. 다른 조인트 유형, Constraint 블록 또는 가변 관성을 사용하는 모델을 가져오려면 Simscape Multibody 모델 가져오기 이름-값 쌍을 사용하십시오.robot
,importInfo
] = importrobot(___,Name,Value
)
예제
URDF 파일에서 로봇 가져오기
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)
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 문자형 벡터에서 로봇 가져오기
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");
연결된 충돌 기하 도형을 사용하여 로봇을 시각화합니다. 바디 또는 프레임을 검사하려면 마우스 왼쪽 버튼으로 클릭합니다. 각 충돌 기하 도형의 가시성을 전환하려면 바디를 마우스 오른쪽 버튼으로 클릭합니다.
show(robot,Visuals="off",Collisions="on");
Simscape™ Multibody™ 모델을 RigidBodyTree
객체로 가져오기
기존 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
로봇을 가져오되 V-HACD(복셀화된 계층적 근사 볼록 분해)를 사용하여 충돌 메시를 분해합니다.
robotCollisionDecomp = importrobot("iiwa14.urdf",CollisionDecomposition=true);
로봇을 분해를 통해 업데이트된 충돌 메시와 함께 표시합니다.
figure show(robotCollisionDecomp,Visuals="off",Collisions="on"); title("Decomposition of Collision Meshes"); axis auto
기본적으로 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
입력 인수
filename
— 로봇 설명 파일의 이름
string형 스칼라 | 문자형 벡터
로봇 설명 파일의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 이 파일은 유효한 URDF 로봇 설명, Xacro 로봇 설명 또는 SDF 모델 설명이어야 합니다.
메시 데이터와 함께 포함된 로봇 모델
로봇 모델 | 메시 시각화 | 설명 |
---|---|---|
"iiwa7.urdf" | | KUKA LBR iiwa 7 R800 7축 로봇 |
"iiwa14.urdf" | | KUKA LBR iiwa 14 R820 7축 로봇의 URDF 버전 |
"iiwa14.xacro" | | KUKA LBR iiwa 14 R820 7축 로봇의 Xacro 버전 |
"iiwa14.sdf" | | KUKA LBR iiwa 14 R820 7축 로봇의 SDF 버전 |
"sawyer.urdf" | | Rethink Robotics Sawyer 7축 로봇 |
참고
메시 데이터 없이 포함된 로봇 모델의 메시 데이터를 다운로드하려면 Robotics System Toolbox Robot Library Data 지원 패키지 설치하기 항목을 참조하십시오.
메시 데이터 없이 포함된 로봇 모델
로봇 모델 | 메시 시각화 | 설명 |
---|---|---|
"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" | Adept MobileRobots Pioneer 3-AT 이동 로봇 | |
"amrPioneer3DX.urdf" | Adept MobileRobots Pioneer 3-DX 이동 로봇 | |
"amrPioneerLX.urdf" | Adept MobileRobots Pioneer LX 이동 로봇 | |
"atlas.urdf" | Boston Dynamics ATLAS® 휴머노이드 로봇 | |
"clearpathHusky.urdf" | Clearpath Robotics Husky 이동 로봇 | |
"clearpathJackal.urdf" | Clearpath Robotics Jackal 이동 로봇 | |
"clearpathTurtleBot2.urdf" | Clearpath Robotics TurtleBot 2 이동 로봇 | |
"fanucLRMate200ib.urdf" | FANUC LR Mate 200iB 6축 로봇 | |
"fanucM16ib.urdf" | FANUC M-16iB 6축 로봇 | |
"frankaEmikaPanda.urdf" | Franka Emika Panda 7축 로봇 | |
"kinovaGen3.urdf" | Kinova® Gen3 7축 로봇의 버전 1 | |
"kinovaGen3V12.urdf" | Kinova Gen3 7축 로봇의 버전 2 | |
"kinovaJacoJ2N6S200.urdf" | Kinova JACO® 2개 손가락 6 DOF 로봇(비구형 손목 포함) | |
"kinovaJacoJ2N6S300.urdf" | Kinova JACO® 3개 손가락 6 DOF 로봇(비구형 손목 포함) | |
"kinovaJacoJ2N7S300.urdf" | Kinova JACO® 3개 손가락 7 DOF 로봇(비구형 손목 포함) | |
"kinovaJacoJ2S6S300.urdf" | Kinova JACO® 3개 손가락 6 DOF 로봇(구형 손목 포함) | |
"kinovaJacoJ2S7S300.urdf" | Kinova JACO® 3개 손가락 7 DOF 로봇(구형 손목 포함) | |
"kinovaJacoTwoArmExample.urdf" | 2개의 KinovaJACO® 3개 손가락 6 DOF 로봇(비구형 손목 포함) | |
"kinovaMicoM1N4S200.urdf" | Kinova MICO® 2개 손가락 4 DOF 로봇 | |
"kinovaMicoM1N6S200.urdf" | Kinova MICO® 2개 손가락 6 DOF 로봇 | |
"kinovaMicoM1N6S300.urdf" | Kinova MICO® 3개 손가락 6 DOF 로봇 | |
"kinovaMovo.urdf" | Kinova MOVO® 2개 팔 이동 로봇 | |
"kukaIiwa7.urdf" | KUKA LBR iiwa 7 R800 7축 로봇 | |
"kukaIiwa14.urdf" | KUKA LBR iiwa 14 R820 7축 로봇 | |
"meca500r3.urdf" | Mecademic Meca500 R3 6축 로봇 | |
"omronEcobra600.urdf" | | Omron eCobra 600 4축 SCARA 로봇 |
"puma560.urdf" | | PUMA 560 6축 로봇 |
"quanserQArm.urdf" | Quanser QArm 4 DOF 로봇 | |
"quanserQBot2e.urdf" | Quanser QBot 2e 이동 로봇 | |
"quanserQCar.urdf" | Quanser QCar 이동 로봇 | |
"rethinkBaxter.urdf" | Rethink Robotics Baxter 2개 팔 로봇 | |
"rethinkSawyer.urdf" | Rethink Robotics Sawyer 7축 로봇 | |
"robotiq2F85.urdf" | Robotiq 2F-85 2개 손가락 그리퍼 이 그리퍼와 함께 사용할 수 있는 매니퓰레이터의 목록은 다음과 같습니다.
| |
"robotisOP2.urdf" | ROBOTIS OP2 휴머노이드 로봇 | |
"robotisOpenManipulator.urdf" | ROBOTIS OpenMANIPULATOR 4축 로봇(그리퍼 포함) | |
"robotisTurtleBot3Burger.urdf" | ROBOTIS TurtleBot 3 Burger 로봇 | |
"robotisTurtleBot3Waffle.urdf" | ROBOTIS TurtleBot 3 Waffle 로봇 | |
"robotisTurtleBot3WaffleForOpenManipulator.urdf" | ROBOTIS TurtleBot 3 Waffle 로봇(OpenMANIPULATOR 포함) | |
"robotisTurtleBot3WafflePi.urdf" | ROBOTIS TurtleBot 3 Waffle Pi 로봇 | |
"robotisTurtleBot3WafflePiForOpenManipulator.urdf" | ROBOTIS TurtleBot 3 Waffle Pi 로봇(OpenMANIPULATOR 포함) | |
"techmanTM5-700" | | Techman TM5-700 6축 로봇(카메라 포함) |
"techmanTM5x-700" | | Techman TM5X-700 6축 로봇(카메라 미포함) |
"techmanTM5-900" | | Techman TM5-900 6축 로봇(카메라 포함) |
"techmanTM5x-900" | | Techman TM5X-900 6축 로봇(카메라 미포함) |
"techmanTM12" | | Techman TM12 6축 로봇(카메라 포함) |
"techmanTM12x" | | Techman TM12X 6축 로봇(카메라 미포함) |
"techmanTM14" | | Techman TM14 6축 로봇(카메라 포함) |
"techmanTM14x" | | Techman TM14X 6축 로봇(카메라 미포함) |
"universalUR3.urdf" | Universal Robots UR3 6축 로봇 | |
"universalUR3e.urdf" | Universal Robots UR3e 6축 로봇 | |
"universalUR5.urdf" | Universal Robots UR5 6축 로봇 | |
"universalUR5e.urdf" | Universal Robots UR5e 6축 로봇 | |
"universalUR10.urdf" | Universal Robots UR10 6축 로봇 | |
"universalUR10e.urdf" | Universal Robots UR10e 6축 로봇 | |
"universalUR16e.urdf" | Universal Robots UR16e 6축 로봇 | |
"valkyrie.urdf" | NASA Valkyrie 휴머노이드 로봇 | |
"willowgaragePR2.urdf" | Willow Garage PR2 이동 로봇 | |
"yaskawaMotomanMH5.urdf" | Yaskawa Motoman MH5 6축 로봇 |
예: "robot_file.urdf"
예: "robot_file.xacro"
예: "robot_file.sdf"
데이터형: char
| string
text
— 로봇 설명 텍스트
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
format
— 로봇 설명 텍스트 파일의 파일 형식
"urdf"
| "xacro"
| "sdf"
로봇 설명 텍스트 파일의 파일 형식으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 로봇 설명 파일에 필요한 형식을 명시적으로 지정하려면 이 인수를 사용하십시오.
예: "robot_file.txt","urdf"
예: "robot_file.txt","xacro"
예: "robot_file.txt","sdf"
데이터형: char
| string
model
— Simscape Multibody 모델
모델 핸들 | string형 스칼라 | 문자형 벡터
Simscape Multibody 모델로, 모델 핸들, string형 스칼라 또는 문자형 벡터로 지정됩니다.
데이터형: char
| string
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 버전에서는 쉼표를 사용하여 각 이름과 값을 구분하고 따옴표로 Name
을 묶으십시오.
예: "MeshPath",{"../arm_meshes","../body_meshes"}
MeshPath
— 메시 파일의 상대 탐색 경로
string형 스칼라 | 문자형 벡터 | string형 스칼라 또는 문자형 벡터로 구성된 셀형 배열
DataFormat
— 기구학 함수와 동역학 함수의 입력/출력 데이터 형식
"struct"
(디폴트 값) | "row"
| "column"
로봇 모델의 기구학 함수와 동역학 함수에 대한 입력/출력 데이터 형식으로, 'DataFormat'
과 함께 "struct"
, "row"
또는 "column"
이 쉼표로 구분되어 지정됩니다. 동역학 함수를 사용하려면 "row"
또는 "column"
을 지정해야 합니다. 이 이름-값 쌍은 rigidBodyTree
로봇 모델의 DataFormat 속성을 설정합니다.
데이터형: char
| string
MaxNumBodies
— 코드 생성 중에 가져온 로봇에 허용되는 최대 바디 개수
정수
코드 생성 중에 가져온 로봇에 허용되는 최대 바디 개수로, 정수로 지정됩니다. 코드 생성을 지원하는 함수 내에서 가져온 트리에 강체를 추가하려면 MaxNumBodies
를 사용합니다. 추가할 수 있는 추가 바디 개수는 MaxNumBodies
와 가져온 트리의 바디 개수 rigidBodyTree.NumBodies
간의 차이입니다.
참고
이 이름-값 쌍은 코드 생성 워크플로에만 필요합니다.
CollisionDecomposition
— 로봇을 가져온 후 충돌 메시 분해
false
또는 0
(디폴트 값) | true
또는 1
| vhacdOptions
객체
로봇을 가져온 후 충돌 메시를 분해할지 여부로, 논리값 0
(false
), 논리값 1
(true
) 또는 vhacdOptions
객체로 지정됩니다.
false
—importrobot
함수가 로봇을 가져온 후 충돌 메시를 분해하지 않습니다.true
—importrobot
함수가collisionVHACD
함수와 디폴트 분해 옵션을 사용하여 URDF 파일 또는 텍스트에 지정된 로봇 충돌 메시를 분해합니다.vhacdOptions
객체 —importrobot
함수가collisionVHACD
함수와 지정된 분해 옵션을 사용하여 URDF 파일 또는 텍스트에 지정된 충돌 메시를 분해합니다.vhacdOptions
객체의Type
속성을"RigidBodyTree"
로 설정해야 합니다.
BreakChains
— 닫힌 체인 해제
"error"
(디폴트 값) | "remove-joints"
닫힌 체인 해제로, "error"
또는 "remove-joints"
로 지정됩니다.
"error"
— 소스 모델에 닫힌 체인이 포함되어 있으면importrobot
함수가 오류를 반환합니다."remove-joints"
—importrobot
함수가 로봇 모델에서 조인트를 제거하여 닫힌 체인을 해제합니다. 제거된 조인트는importInfo
출력 인수의BlockConversionInfo
속성에서 확인할 수 있습니다.
데이터형: char
| string
ConvertJoints
— 지원되지 않는 조인트에서 고정 조인트로의 변환
"error"
(디폴트 값) | "convert-to-fixed"
지원되지 않는 조인트에서 고정 조인트로의 변환으로, "error"
또는 "convert-to-fixed"
로 지정됩니다.
"error"
— 소스 모델에 지원되지 않는 조인트가 포함되어 있으면importrobot
함수가 오류를 반환합니다."convert-to-fixed"
—importrobot
함수가 소스 모델에 있는 지원되지 않는 조인트를 고정 조인트로 변환합니다. 변환된 조인트는importInfo
출력 인수의BlockConversionInfo
속성에서 확인할 수 있습니다.
지원되지 않는 조인트는 고정 조인트, 직선 조인트, 회전 조인트 이외의 모든 조인트입니다.
데이터형: char
| string
SMConstraints
— Constraint 블록 제거
"error"
(디폴트 값) | "remove"
Constraint 블록 제거로, "error"
또는 "remove"
로 지정됩니다.
"error"
— 소스 모델에 Constraint 블록이 포함되어 있으면importrobot
함수가 오류를 반환합니다."remove"
—importrobot
함수가 소스 모델에 있는 Constraint 블록으로 인한 기여를 제거합니다. 제거된 제약 조건은importInfo
출력 인수의BlockConversionInfo
속성에서 확인할 수 있습니다.
데이터형: char
| string
VariableInertias
— Variable Inertia 블록 제거
"error"
(디폴트 값) | "remove"
Variable Inertia 블록 제거로, "error"
또는 "remove"
로 지정됩니다.
"error"
— 소스 모델에 Variable Inertia 블록이 포함되어 있으면importrobot
함수가 오류를 반환합니다."remove"
—importrobot
함수가 소스 모델에 있는 Variable Inertia 블록으로 인한 기여를 제거합니다. 제거된 가변 관성은importInfo
출력 인수의BlockConversionInfo
속성에서 확인할 수 있습니다.
데이터형: char
| string
DataFormat
— 기구학 함수와 동역학 함수의 입력/출력 데이터 형식
"struct"
(디폴트 값) | "row"
| "column"
로봇 모델의 기구학 함수와 동역학 함수에 대한 입력/출력 데이터 형식으로, 'DataFormat'
과 함께 "struct"
, "row"
또는 "column"
이 쉼표로 구분되어 지정됩니다. 동역학 함수를 사용하려면 "row"
또는 "column"
을 지정해야 합니다. 이 이름-값 쌍은 rigidBodyTree
로봇 모델의 DataFormat
속성을 설정합니다.
데이터형: char
| string
출력 인수
robot
— 로봇 모델
rigidBodyTree
객체
로봇 모델로, rigidBodyTree
객체로 반환됩니다.
참고
URDF 파일에 중력이 지정되지 않은 경우 디폴트 Gravity
속성은 [0 0 0]
으로 설정됩니다. Simscape Multibody는 smimport
를 사용하여 URDF를 가져올 때 디폴트 값인 [0 0 -9.80665]
m/s2을 사용합니다.
importInfo
— 가져오기 정보를 저장하기 위한 객체
rigidBodyTreeImportInfo
객체
가져오기 정보를 저장하기 위한 객체로, rigidBodyTreeImportInfo
객체로 반환됩니다. 이 객체에는 입력 model
과 그 결과로 생성된 robot
출력 간의 관계가 포함됩니다.
robot
의 각 바디에 대한 가져오기 정보를 나열하려면 showdetails
를 사용합니다. 강체 정보를 표시하는 링크, 강체에 대응하는 모델 내 블록, 모델에서 특정 블록의 강조 표시가 명령 창에 출력됩니다.
robot
출력값 또는 model
입력값에서 특정 컴포넌트에 대한 정보를 가져오려면 bodyInfo
, bodyInfoFromBlocks
또는 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.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
CollisionDecomposition
이름-값 인수를 사용하는 경우 CollisionDecomposition
의 값이 true
(1
) 또는 false
(0
)일 때 importrobot
함수가 코드 생성을 지원합니다.
버전 내역
R2017a에 개발됨R2024a: 플로팅 조인트가 있는 로봇 가져오기
importrobot
함수는 이제 다음을 지원합니다.
URDF 파일에서 특성 유형이
floating
인 조인트 요소를 사용하는 플로팅 조인트를 가져옵니다. 자세한 내용은 https://wiki.ros.org/urdf/XML/joint 항목을 참조하십시오.Simscape Multibody 모델의 6-DOF Joint (Simscape Multibody) 블록을 플로팅 조인트로 가져옵니다.
강체 트리는 Simscape Multibody의 6DOF 조인트 또는 URDF 파일의 플로팅 조인트를 Type
속성이 "floating"
으로 설정된 rigidBodyJoint
객체로 나타냅니다.
R2023b: 충돌 메시 분해 지원
importrobot
함수는 CollisionDecomposition
이름-값 인수를 사용하여 로봇을 가져온 후 충돌 메시의 V-HACD(복셀화된 계층적 근사 볼록 분해)를 지원합니다.
R2021b: 코드 생성 지원
importrobot
함수는 코드 생성을 지원합니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)