1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

STLのinertiaをMeshLabから計算する

Posted at

はじめに

ROS&Gazeboでシミュレーションをするときに、inertiaを正しく設定しないと想定通り動かないことがあります。今回は、MeshLabを使ってinertiaを計算する方法をまとめます。

とは言っても、公式ドキュメントInertial parameters of triangle meshesが存在し、この通り設定すれば動くのですが、わたしは理解するのに小一時間なやんでしまったので、今回はその解説です。

やはく計算式をよこせという方は、こちらをどうぞ!
https://docs.google.com/spreadsheets/d/1Y_lwnLfvxX3A3op7AxNbXVvc4fE7W9cXn6xtQcOpz6E/

環境

環境 バージョン
開発機 Ubuntu 16.04.6 LTS
ROS Kinetic Kame
Gazebo version 9.11.0
MeshLab v1.3.2

link elementの確認

まずlinkですが、今回設定するものは、inertialorigininertiaです。originは、

The origin of the inertial reference frame needs to be at the center of gravity.

とあるように物体の重心を設定する必要があります。これは、ドキュメントにもあるとおり自動的にCenter of Massで計算されるので、そのパラメータを設定します。

次にinertiaですが、こちらが少々わかりにくいです。MeshLabで計算されるInertia Tensorは、calculating-inertial-matrix-for-gazeboのコメントにあるように

Note that the mass value is the same as the computed volume, this means that a default value of density rho=1 has been used. The density of the material of your gripper expressed in kg/m^3 has to be multiplied by the volume in order to get the mass. Example density is rho = 7850 Kg/m^3 (steel).

密度(density)を$1[kg/m^3]$と仮定した体積のためInertia Tensorの単位は、$[m^5]$となります。つまりメッシュから体積を求めたので、重さ(mass)は密度から求めるなり、測定値から求めるなりしてくださいということです。

これでinertiaの計算ができそうですが、最後にScale Factorで注意点があります。Scale Factorは、オブジェクトが小さい時のinertiaを計算するときに小数点以下で切り捨てられることによって全て0となってしまうのを避けるために、実際の大きさからスケールして計算するときに設定するものです。密度から重さを逆算して計算する場合は、$10^5$でスケールされるのに対して、測定値の重さから計算する場合は、$10^2$でスケールされるので、最後に単位を戻すのを忘れがちです。

計算式

使いやすいようにスプレッドに計算をまとめました。これを見れば2秒で理解できると思います。この例では、cylinderをScale Factor=10で自分で測定した重さを用いて計算しています。MeshLabから計算されたinertiaが正しいかどうかは、List_of_moments_of_inertiaから手計算で同じ値になることで確認をすることができます。

まとめ

  • MeshLabからinertiaを計算するときは、密度から重さを求めるか、測定値の重さを使用するかで、Scale Factorが異なるので注意する必要がある
  • 簡単な形のinertiaの計算があっているかは、手計算で確認できる
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?