What do exactly getPrincipalMomentsOfInertia() gives?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
In short,
1. getPrincipalMomentsOfInertia() didn't work as I expected. So what exactly it returns?
2. I have a model with "moments of inertia atcenter of mass" with ixy, izy, ixz != 0 (or saying far away). Is it a normal case? I thought it should be a diagonalized matrix.
----
I was working on grabbing diagonalize moments of inertia from the models, saying I want the diagonalized form of the MOI, getting ixx, iyy, izz with all other elements (ixy, iyz, ixz) equals to 0
The Properties UI will display MOI_world and MOI_CoM (Center of Mass), and I can export these two information by using getXYZMomentsOfInertia(), and calculating MOI_CoM from getXYZMomentsOfInertia and physicalProperties.centerOfMass().
However, sometimes the CoM is magically not have ixy, iyz, ixz equals to 0 when my model is complex. And the value not looks like caused by numerical error and it is relatively not small enough to close to 0.
And then I try to explore getPrincipalMomentsOfInertia(). At first from the description I think it will give the ixx, iyy, izz I want but it does not. And I am also not sure what exactly these values are.
# Get the moments of inertia about the principal axes. Unit for returned values is kg/cm^2. (retVal,i1,i2,i3) = physicalProperties.getPrincipalMomentsOfInertia()
Here is an example with a Ball, Ring and Cylinder. Theoratically the Ball should have the diagonalize MOI with same value as shown in List of moments of Inertia Wiki
MOI_CoM displayed in UI looks reasonable, but the value of getPrincipalMomentsOfInertia() (In my document, it is the "MOI_principal", where I add another three 0.0 b.c. I thought it was the ixx,iyy,izz) is strange and I cannot tell what they are.
----
MoI about CoM with ixy, ixz, iyz != 0. (Sorry I cannot show you my model but only the Properties screenshot)
Is it a normal case?
It looks like a physical problem. Will I always get a diagonalized MoI about center of mass? I know MOI is diagnolized when it align with principal axes, but are they the same for the concept of "MoI at CoM"?
----
Notes:
dict_of_links["center_of_mass"]: Direct output from physicalProperties.centerOfMass
dict_of_links["inertia"] : The moment of inertia about center of mass. It is diplayed in UI but have no direct method to get this from API. I calculated it from the MOI about world frame and CoM.
dict_of_links["MOI_principal"]: Direct output from physicalProperties.getPrincipalMomentsOfInertia() and just add another three 0.0.
dict_of_links["radius_of_gyration"]: Direct output from physicalProperties.getRadiusOfGyration().