miguelgfierro / hoap3_dynamics

Forward and inverse dynamics for the humanoid HOAP-3
http://miguelgfierro.com
1 stars 2 forks source link

The mass properties of the HOAP3 #1

Open ZhangShawn1998 opened 3 years ago

ZhangShawn1998 commented 3 years ago

Hello! I am learning the dynamics of robots using your code. Thank you so much! However, I find it difficult to understand the mass properties of multi-freedom joints. I can understand you stimulated it by a chain of single-freedom joints, but why every joints has its own mass properties really confuses me. In _Robot _Dynamics Algorithms__ by Roy Featherstone, it says the introduction of fictitious links with zero inertia can cause numerical problems. And I can't figure out how to give those fictitious links non-zero mass/inertia. The manual just give the results. But I don't know how to resolve them on my own! Could you please help me? Thanks a lot!!!!!!

miguelgfierro commented 3 years ago

hey @ZhangShawn1998, each link of the humanoid is defined as a solid object with a mass, center of gravity R^3 and inertia R^3x3. Typically, the joint masses and inertias are assumed to be part of the links. The friction happening in the joints are normally neglected in favour of other forces acting in the robot. In fact, the inverse dynamics solvers that Featherstone did gives you as output a force that is a summatory af multiple forces, see equation 2.2 in my master's thesis

τ = τmotor − τperturbador − τrozamientoviscoso − τrozamientoseco
τ = τmotor − τperturbation − τfluidfriction − τstaticfriction
ZhangShawn1998 commented 3 years ago

this is really helpful! Thanks for taking your time! Have a nice day! 😊

ZhangShawn1998 commented 3 years ago

Sorry to interrupt again. Thanks to your explanation, I can totally understand the inverse dynamics solvers. But I still have a few questions.

  1. I can understand _RLEGJOINT[4](knee) has a mass property(right_leg.mass{4}=3.28e-01) due to the right shank(LEG_LINK3). Cause there is a solid object attached to it.

But I can't figure out why _RLEGJOINT[3](hip's pitch freedom) also has a mass property(right_leg.mass{3}=5.19e-01). Maybe that's because the right thigh(LEG_LINK2). Then why the values of right_leg.mass{1 2 3} are different?

With my current understanding, the link between _RLEGJOINT[2] and _RLEGJOINT[3] is fictitious and notional. It is massless and can't have a inertia. Then why the right_leg.mass {2} has a real positive value?

I know I definitely have some misunderstanding with the Dynamic model. But this really confuses me.

I assume that the mass of each joint is understandable to me. Then I realized the CoG and Inertia matrix of joints also puzzled me.

In my opinion, the CoG and Inertia matrixes should have some same elements, even same columns or rows between the right side joints of robots and the left.(e.g. left_leg.CoG{1} and right_leg.CoG{1} left_leg.I{1} and right_leg.I{1}) . But every corresponding element pair is different. The two corresponding elements are close or their absolute values are close. But not same.

It's really hard for me to understand how to calculate them on my own.😭

I may ask too much. Sorry!!! If you have time, could you please help me through.