MATLAB ヘルプ センター
ロボットのボディを置き換え
replaceBody(robot,bodyname,newbody)
replaceBody(robot,bodyname,newbody) は、ロボット モデルのボディを新しいボディに置き換えます。ロボットの Parent プロパティと Children プロパティを除くすべてのプロパティが適宜更新されます。ロボット モデルのそれ以外の部分には影響しません。
robot
bodyname
newbody
Parent
Children
例
すべて折りたたむ
ダイナミクス関数を使用してジョイント トルクとジョイント加速度を計算するには、rigidBodyTreeオブジェクトとrigidBodyにダイナミクス プロパティを指定します。
rigidBodyTree
rigidBody
剛体ツリー モデルを作成します。接続する 2 つの剛体を作成します。
robot = rigidBodyTree('DataFormat','row'); body1 = rigidBody('body1'); body2 = rigidBody('body2');
ボディに接続するジョイントを指定します。body2 から body1 への固定変換を設定します。変換は x 方向に 1 m です。
body2
body1
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
ロボット モデル。rigidBodyTree オブジェクトとして指定します。このオブジェクトに剛体が追加され、bodyname で指定された剛体で接続されます。
ボディ名。string スカラーまたは文字ベクトルとして指定します。このボディは、robot で指定したロボット モデル上になければなりません。
データ型: char | string
char
string
剛体。rigidBody オブジェクトとして指定します。
すべて展開する
使用上の注意および制限:
rigidBodyTree オブジェクトの作成時には、ロボット モデルにボディを追加する上限として MaxNumBodies を指定する構文を使用します。また、DataFormat プロパティを、名前と値のペアとして指定しなければなりません。以下に例を示します。
MaxNumBodies
DataFormat
robot = rigidBodyTree("MaxNumBodies",15,"DataFormat","row")
データの使用量を最小限に抑えるには、上限をモデル内の必要なボディ数に近い数にします。すべてのデータ形式がコード生成用でサポートされています。ダイナミクス関数を使用するには、データ形式を "row" または "column" に設定しなければなりません。
"row"
"column"
関数 show および showdetails ではコード生成はサポートされません。
show
showdetails
R2016b で導入
rigidBodyJoint | rigidBody | replaceJoint | addBody | removeBody
rigidBodyJoint
replaceJoint
addBody
removeBody
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ