MATLAB Answers

simscape multibodyにおける角度検出方法

20 views (last 30 days)
Okamoto Sakumi
Okamoto Sakumi on 9 Oct 2020
Commented: Toshinobu Shintai on 15 Oct 2020
matlabのsimscape multibody のライブラリにあるtransform sensorに関する質問です。
シミュレーション中の物体のロール角、ピッチ角、ヨー角をそれぞれ個別に調べようと思いました。そこで、transform sensorによって調べようと思ったところtransform sensorのrotationの中のangleが1種類しかありません。
ロール角、ピッチ角、ヨー角の三種類を調べるにはどのようにすればよいのでしょうか?

Answers (3)

Toshinobu Shintai
Toshinobu Shintai on 9 Oct 2020
3次元の回転姿勢の情報を出力させたい場合は、「Quaternion」または「Transform」にチェックを入れてください。それぞれクオータニオン(4要素のベクトル)、回転行列(3x3の行列)が出力されます。
ロール角、ピッチ角、ヨー角というのは、3次元の回転を正確に表す表現ではありません。ただし、クオータニオンまたは回転行列からロール角、ピッチ角、ヨー角を求めることはできます。「Coordinate Transformation Conversion」ブロックを用いて変換できます。

Okamoto Sakumi
Okamoto Sakumi on 9 Oct 2020
丁寧なご返答ありがとうございます。
重ねて質問なのですが、matlabのsimscape multibody内のライブラリにおいて「Coordinate Transformation Conversion」ブロックがありません。
どのブロックを用いて変換すればいいでしょうか。
  1 Comment
Toshinobu Shintai
Toshinobu Shintai on 9 Oct 2020
説明が不足しておりまして申し訳ありません。「Coordinate Transformation Conversion」ブロックを使うには、Robotics System Toolbox, Navigation Toolbox, ROS Toolboxのどれかをインストールする必要があります。
ちなみに、変換するブロックを自作する場合は、添付ファイルをご参照ください。
私が以前に作成した、クオータニオンの回転状態を把握するライブスクリプトです。クオータニオンからロールピッチヨー角へ変換する計算式も記載しています。ライブスクリプトはR2019aで作成しています。

Sign in to comment.


Okamoto Sakumi
Okamoto Sakumi on 9 Oct 2020
度重なる質問失礼いたします。
ライブスクリプトをダウンロードさせていただきました。
ライブスクリプトの中のクオータニオンを入力するというところはどのような変数を入力すればよいのでしょうか。
  8 Comments
Toshinobu Shintai
Toshinobu Shintai on 15 Oct 2020
返事が遅れまして申し訳ないです。
別種の質問であれば、新規に質問を立て直してください。

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!