이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
importrobot
URDF 파일, SDF 파일, 텍스트, Simscape Multibody 모델에서 강체 트리 모델 가져오기
구문
설명
URDF 또는 SDF 가져오기
은 robot
= importrobot(filename
)filename
에 의해 지정된 URDF(Unified Robot Description Format) 파일 또는 SDF(Simulation Description Format) 파일을 구문 분석하여 rigidBodyTree
객체를 반환합니다.
는 이전 구문의 입력 인수 조합 외에 하나 이상의 이름-값 쌍 인수를 사용하여 옵션을 지정합니다. URDF 파일, SDF 파일 또는 텍스트에서 모델을 가져오려면 URDF 또는 SDF 가져오기 이름-값 쌍을 사용하십시오.robot
= importrobot(___,Name,Value
)
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: {1x10 cell} Base: [1x1 rigidBody] BodyNames: {1x10 cell} 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' 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','collision','off');
연결된 충돌 기하 도형을 사용하여 로봇을 시각화합니다. 바디 또는 프레임을 검사하려면 마우스 왼쪽 버튼으로 클릭합니다. 각 충돌 기하 도형의 가시성을 전환하려면 바디를 마우스 오른쪽 버튼으로 클릭합니다.
show(robot,'visuals','off','collision','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: {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) --------------------
입력 인수
filename
— URDF 파일 또는 SDF 파일의 이름
string형 스칼라 | 문자형 벡터
URDF 파일 또는 SDF 파일의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 이 파일은 유효한 URDF 로봇 설명 또는 SDF 모델 설명이어야 합니다.
메시 데이터와 함께 포함된 로봇 모델
로봇 모델 | 메시 시각화 | 설명 |
---|---|---|
"iiwa7.urdf" | | KUKA LBR iiwa 7 R800 7축 로봇 |
"iiwa14.urdf" | | KUKA LBR iiwa 14 R820 7축 로봇의 URDF 버전 |
"iiwa14.sdf" | | KUKA LBR iiwa 14 R820 7축 로봇의 SDF 버전 |
"sawyer.urdf" | | Rethink Robotics Sawyer 7축 로봇 |
참고
메시 데이터 없이 포함된 로봇 모델의 메시 데이터를 다운로드하려면 Install Robotics System Toolbox Robot Library Data Support Package 항목을 참조하십시오.
메시 데이터 없이 포함된 로봇 모델
로봇 모델 | 메시 시각화 | 설명 |
---|---|---|
"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" | Two KINOVA JACO® 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축 로봇 | |
"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 포함) | |
"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.sdf"
데이터형: char
| string
URDFtext
— URDF 로봇 텍스트
string형 스칼라 | 문자형 벡터
URDF 로봇 텍스트로, string형 스칼라 또는 문자형 벡터로 지정됩니다.
예: "<?xml version="1.0" ?><robot name="min"><link name="L0"/></robot>"
예: "robot_file.txt","urdf"
데이터형: char
| string
SDFtext
— SDF 모델 텍스트
string형 스칼라 | 문자형 벡터
SDF 모델 텍스트로, string형 스칼라 또는 문자형 벡터로 지정됩니다.
예: "<?xml version="1.0" ?><sdf version="1.6"><model name="min"><link name="L0"/></model></sdf>"
예: "robot_file.txt","sdf"
데이터형: char
| string
format
— 로봇 설명 텍스트 파일의 파일 형식
'urdf'
| 'sdf'
로봇 설명 텍스트 파일의 파일 형식으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 로봇 설명 파일에 필요한 형식을 명시적으로 지정하려면 이 인수를 사용하십시오.
예: "robot_file.txt","urdf"
예: "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형 스칼라 또는 문자형 벡터로 구성된 셀형 배열
메시 파일의 상대 탐색 경로로, string형 스칼라, 문자형 벡터, 또는 string형 스칼라나 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 메시 파일은 여전히 URDF 파일 또는 SDF 파일 내에서 지정되어야 하지만 MeshPath
는 이렇게 지정된 파일의 상대 경로를 정의합니다.
데이터형: char
| string
| cell
DataFormat
— 기구학 함수와 동역학 함수의 입력/출력 데이터 형식
"struct"
(디폴트 값) | "row"
| "column"
로봇 모델의 기구학 함수와 동역학 함수에 대한 입력/출력 데이터 형식으로, 'DataFormat'
과 함께 "struct"
, "row"
또는 "column"
이 쉼표로 구분되어 지정됩니다. 동역학 함수를 사용하려면 "row"
또는 "column"
을 지정해야 합니다. 이 이름-값 쌍은 rigidBodyTree
로봇 모델의 DataFormat 속성을 설정합니다.
데이터형: char
| string
SDFModel
— 여러 모델이 포함된 SDF에서 모델 선택
string형 스칼라 | 문자형 벡터
여러 모델이 포함된 SDF 파일 또는 텍스트에서의 모델 선택으로, string형 스칼라 또는 문자형 벡터로 지정됩니다.
참고
이 이름-값 쌍은 SDF 모델 및 텍스트에만 적용됩니다.
데이터형: char
| string
MaxNumBodies
— 코드 생성 중에 가져온 로봇에 허용되는 최대 바디 개수
정수
코드 생성 중에 가져온 로봇에 허용되는 최대 바디 개수로, 정수로 지정됩니다. 코드 생성을 지원하는 함수 내에서 가져온 트리에 강체를 추가하려면 MaxNumBodies
를 사용합니다. 추가할 수 있는 추가 바디 개수는 MaxNumBodies
와 가져온 트리의 바디 개수 rigidBodyTree.NumBodies
간의 차이입니다.
참고
이 이름-값 쌍은 코드 생성 워크플로에만 필요합니다.
ConvertJoints
— 지원되지 않는 조인트를 고정 조인트로 변환할지 여부를 나타냄
"error"
(디폴트 값) | "convert-to-fixed"
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
, bodyInfoFromBlock
또는 bodyInfoFromJoint
를 사용합니다.
팁
시각적 메시가 있는 로봇 모델을 가져올 때 importrobot
함수는 다음 규칙을 사용하여 각 강체에 할당할 .stl
파일 또는 .dae
파일을 검색합니다.
이 함수는 URDF 파일 또는 SDF 파일에서 지정된 강체에 대한 원시 메시 경로를 탐색합니다. ROS 패키지에 대한 참조에서
package:\\<pkg_name>
이 제거되었습니다.절대 경로는 수정 없이 직접 검사가 이루어집니다.
상대 경로는 다음 디렉터리를 순서대로 사용하여 검사가 이루어집니다.
사용자 지정
MeshPath
현재 폴더
MATLAB® 경로
URDF 파일 또는 SDF 파일을 포함한 폴더
URDF 파일 또는 SDF 파일을 포함한 폴더의 한 단계 상위 폴더
URDF 파일 또는 SDF 파일에 있는 메시 경로의 파일 이름이
MeshPath
입력 인수에 추가됩니다.
메시 파일이 계속 발견되지 않으면 구문 분석기는 메시 파일을 무시하고 시각적 요소가 없는 rigidBodyTree
객체를 반환합니다.
버전 내역
R2017a에 개발됨
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)