replaceBody
ロボットのボディを置き換え
説明
例
剛体ツリーへのダイナミクス プロパティの指定
ダイナミクス関数を使用してジョイント トルクとジョイント加速度を計算するには、rigidBodyTree
オブジェクトとrigidBody
にダイナミクス プロパティを指定します。
剛体ツリー モデルを作成します。接続する 2 つの剛体を作成します。
robot = rigidBodyTree('DataFormat','row'); body1 = rigidBody('body1'); body2 = rigidBody('body2');
ボディに接続するジョイントを指定します。body2
から body1
への固定変換を設定します。変換は x 方向に 1 m です。
joint1 = rigidBodyJoint('joint1','revolute'); joint2 = rigidBodyJoint('joint2'); setFixedTransform(joint2,trvec2tform([1 0 0])) body1.Joint = joint1; body2.Joint = joint2;
2 つのボディのダイナミクス プロパティを指定します。ボディをロボット モデルに追加します。この例では、ロッド (body1
) と、接続された球体 (body2
) の基本値が与えられています。
body1.Mass = 2; body1.CenterOfMass = [0.5 0 0]; body1.Inertia = [0.001 0.67 0.67 0 0 0]; body2.Mass = 1; body2.CenterOfMass = [0 0 0]; body2.Inertia = 0.0001*[4 4 4 0 0 0]; addBody(robot,body1,'base'); addBody(robot,body2,'body1');
ロボット全体の重心位置を計算します。位置をロボットにプロットします。ビューを xy 平面に移動します。
comPos = centerOfMass(robot); show(robot); hold on plot(comPos(1),comPos(2),'or') view(2)
2 番目のボディの質量を変更します。重心の変化に注目してください。
body2.Mass = 20; replaceBody(robot,'body2',body2) comPos2 = centerOfMass(robot); plot(comPos2(1),comPos2(2),'*g') hold off
入力引数
robot
— ロボット モデル
rigidBodyTree
オブジェクト
ロボット モデル。rigidBodyTree
オブジェクトとして指定します。このオブジェクトに剛体が追加され、bodyname
で指定された剛体で接続されます。
bodyname
— ボディ名
string スカラー | 文字ベクトル
ボディ名。string スカラーまたは文字ベクトルとして指定します。このボディは、robot
で指定したロボット モデル上になければなりません。
データ型: char
| string
newbody
— 剛体
rigidBody
オブジェクト
剛体。rigidBody
オブジェクトとして指定します。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用に関するメモと制限:
rigidBodyTree
オブジェクトの作成時には、ロボット モデルにボディを追加する上限として MaxNumBodies
を指定する構文を使用します。また、DataFormat
プロパティを、名前と値のペアとして指定しなければなりません。次に例を示します。
robot = rigidBodyTree("MaxNumBodies",15,"DataFormat","row")
データの使用量を最小限に抑えるには、上限をモデル内の必要なボディ数に近い数にします。すべてのデータ形式がコード生成用でサポートされています。ダイナミクス関数を使用するには、データ形式を "row"
または "column"
に設定しなければなりません。
関数 show
および showdetails
ではコード生成はサポートされません。
バージョン履歴
R2016b で導入
参考
rigidBodyJoint
| rigidBody
| replaceJoint
| addBody
| removeBody
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)