このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
importrobot
URDF ファイル、Xacro ファイル、SDF ファイル、テキストまたは Simscape Multibody モデルから剛体ツリー モデルをインポート
構文
説明
URDF、Xacro、または SDF のインポート
は、robot
= importrobot(filename
)filename
によって指定された Unified Robot Description Format (URDF)、XML Macros (Xacro)、または Simulation Description Format (SDF) ファイルを解析することにより、rigidBodyTree
オブジェクトを返します。
は、前述の構文の入力引数の任意の組み合わせに加え、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。たとえば、robot
= importrobot(___,Name,Value
)importrobot("iiwa14.urdf",CollisionDecomposition=true)
は KUKA LBR iiwa 14 ロボットをインポートし、Voxelized Hierarchical Approximate Convex Decomposition (V-HACD) を使用してロボットの衝突メッシュを分解します。
URDF ファイル、Xacro ファイル、SDF ファイル、またはテキストからモデルをインポートするには、名前と値のペアURDF、Xacro、または SDF のインポートを使用します。
Simscape Multibody モデルのインポート
[
は、Simscape™ Multibody™ モデルをインポートして、等価の robot
,importInfo
] = importrobot(model
)rigidBodyTree
オブジェクトおよびインポートに関する情報を importInfo
に返します。出力される rigidBodyTree
オブジェクトでは、固定ジョイント、直進ジョイント、回転ジョイント、およびフローティング ジョイントのみがサポートされています。
[
は、前述の構文からの Simscape Multibody モデルに加え、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。その他のジョイント タイプ、拘束ブロックまたは可変慣性を使用するモデルをインポートするには、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'
ビジュアル ジオメトリを使用したロボット モデルの表示
ロボットのビジュアル ジオメトリを記述するために、Unified Robot Description format (URDF) ファイルと関連付けられた .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™ ロボット モデルを、rigidBodyTree
オブジェクトとして Robotics System Toolbox™ にインポートします。
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
ロボットをインポートしますが、Voxelized Hierarchical Approximate Convex Decomposition (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 軸ロボットの Version 1 | |
"kinovaGen3V12.urdf" | Kinova Gen3 7 軸ロボットの Version 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 体の 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 軸ロボット | |
"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 スカラーまたは文字ベクトルの cell 配列
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
オブジェクト
インポート後のロボットの衝突メッシュの分解。logical 0
(false
)、logical 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
— 拘束ブロックの削除
"error"
(既定値) | "remove"
拘束ブロックの削除。"error"
または "remove"
として指定します。
"error"
— ソース モデルに拘束ブロックが含まれている場合、importrobot
はエラーを返します。"remove"
—importrobot
は、ソース モデルに存在する拘束ブロックから貢献を削除します。削除された拘束は、出力引数importInfo
のBlockConversionInfo
プロパティで確認できます。
データ型: char
| string
VariableInertias
— 可変慣性ブロックの削除
"error"
(既定値) | "remove"
可変慣性ブロックの削除。"error"
または "remove"
として指定します。
"error"
— ソース モデルに可変慣性ブロックが含まれている場合、importrobot
はエラーを返します。"remove"
—importrobot
は、ソース モデルに存在する可変慣性ブロックから貢献を削除します。削除された可変慣性ブロックは、出力引数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
は、mimic タグを含む URDF ファイルからのロボット モデルのインポートをサポートしていません。
ヒント
ビジュアル メッシュを含むロボット モデルをインポートするとき、関数 importrobot
は、各剛体に割り当てる .stl
または .dae
ファイルを、以下の規則を使用して検索します。
この関数は、生メッシュ パスで、URDF、Xacro、または SDF ファイルの指定された剛体を検索します。ROS パッケージへの参照で
package:\\<pkg_name>
が削除されます。絶対パスは、変更なしで直接チェックされます。
相対パスは、以下のディレクトリを順番に使用してチェックされます。
ユーザー指定の
MeshPath
現在のフォルダー
MATLAB® パス
URDF、Xacro、または SDF ファイルを含むフォルダー
URDF、Xacro、または SDF ファイルを含むフォルダーの 1 つ上のレベル
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
では以下がサポートされるようになりました。
属性タイプ
floating
のジョイント要素を使用するフローティング ジョイントの URDF ファイルからのインポート。詳細については、https://wiki.ros.org/urdf/XML/jointを参照してください。Simscape Multibody モデルからの 6-DOF Joint (Simscape Multibody) ブロックのフローティング ジョイントとしてのインポート。
剛体ツリーは、Simscape Multibody 内の 6DOF ジョイントまたは URDF ファイル内のフローティング ジョイントを、Type
プロパティが "floating"
に設定された rigidBodyJoint
オブジェクトとして表します。
R2023b: 衝突メッシュの分解のサポート
関数 importrobot
は、名前と値の引数 CollisionDecomposition
を使用したインポート後のロボット モデル衝突メッシュの Voxelized Hierarchical Approximate Convex Decomposition (V-HACD) をサポートします。
R2021b: コード生成のサポート
関数 importrobot
は、コード生成をサポートします。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは 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)