Jump to content
  • Advertisement
Cacks

Updating Orientation with Angular Velocity

Recommended Posts

On 6/12/2018 at 7:06 PM, Cacks said:

I.e. put the angular velocity into a quaternion with the angle scaled by delta time & concatenate with the orientation?

It is physicaly inacurate model, becouse conservative is angular momentum, not angular velocity. magnitude of angular momentum vector is a production of angular velocity and inertion moment. so to keep angular momentum constant, angular velocity have to change according to inertion tensor changes. Inertion tensor changes can come from 2 sources:

1.body mass  redestribution. (zukhovski bench effect)

2. rotation of inertion tensor  - it rotates together with body, that in some cases causes redistribution of projections of inertion moments to axes. (Dzhanibekov effect) 

So for phisycaly accurate animation you have to store angular momentum vector and recalculate angular velocity from it and inertion tensor each frame, at least for cases when inertion tensor or his projections may change. 

Share this post


Link to post
Share on other sites
Advertisement

Fulcrum.013, two observations:

(1) This thread is about rotation kinematics, which is not "Physically inaccurate" in any reasonable sense. It's just not full-blown mechanics, but that doesn't make it wrong.

(2) Try to spell correctly. I am OK with people being a little bit careless or even ignorant of correct spelling, but it was honestly hard for me to understand what you wrote.

 

Share this post


Link to post
Share on other sites
2 hours ago, alvaro said:

This thread is about rotation kinematics

But by previous topic starter questions, he using this calculations into physic simulation engine. So best solution is use matrices for rotation/position calculations. I mean to project angular momentum pseudovector to main inertion axes of body, calculate 3 angular velocities from it, and finally multiple it to time and  construct a rotation matrix from found Euler angles. Anycase it require to convert world transformation to matrix for visualistion.

 

2 hours ago, alvaro said:

but it was honestly hard for me to understand what you wrote.

My native language is mix of Russian and Ukrainian. Slavic languages have a wery different syntense constraction principles. It realy hard to downgradge slavic lenguages to primitive English sintence rules.

Share this post


Link to post
Share on other sites

@alvaro, @Fulcrum.013,

in my game engine update loop I will convert Angular Momentum to Angular Velocity then update my objects' orientations

I am wondering how to simulate Friction:

If I multiply Torque by delta time that should give me the angular momentum that friction would create?

Then I add the friction angular momentum to the objects' total angular momentum?

Share this post


Link to post
Share on other sites
15 hours ago, Fulcrum.013 said:

2. rotation of inertion tensor  - it rotates together with body, that in some cases causes redistribution of projections of inertion moments to axes. (Dzhanibekov effect) 

This effect comes from integrating the torques, not the angular velocity. E.g.

I * omega' = tau - omega x ( I * omega )

The omega x ( I * omega ) term describes the rotation of the inertia tensor and gyroscopic effects. In physics engine it is often dropped due to stability issues, but this can be solved easily.

Share this post


Link to post
Share on other sites

Torque multiplied by dt is angular momentum. Force multiplied by dt is linear momentum. But usualy (excluding bearings e.t.c) friction calculated as a Force, not as Torque. So usualy it require to be separated to linear momentum and angular momentum. it comes from Force definition formula - force is derivate of momentum by time. Same with torque.

25 minutes ago, Cacks said:

Then I add the friction angular momentum to the objects' total angular momentum?

yes. same with linear momentum. Object's total angular momentum and linear momentum just a sum of all linear and angular momentums applied to it during his lifetime.

Share this post


Link to post
Share on other sites
15 minutes ago, Dirk Gregorius said:

This effect comes from integrating the torques, not the angular velocity. E.g.

Torque is production of angular velocity derivative to momentum of inertia constant. Rotate ellipsoide of inertia togeter with body and recalculate  destribution of angular momentum pseudowector to ellipsoide inertion axes.You will got the same. Effect comes from Euler equations, that by division both sides to inertia moment constant, becomes to equation for angular velocity derivative, and  caused by redistributions of angular momentum projections to rotating axes of inertion ellipsoide.  So it is no difference how to recalculate velocities - tru the derivatives, or directly recalculate projections of angular momentum pseudovector to rotating axes and then calculate velocities. Just on Euler's era was no SIMD intrisics to calculate dot productions and was no need to calculate body world matrix for visualisation after each timeframe.  

Share this post


Link to post
Share on other sites
Posted (edited)
14 minutes ago, Dirk Gregorius said:

Sorry, I don't understand what you are talking about. 

About Euler equations for torque

818b8365fc680ad283a9ccad76e4a8ed192aae8f

 

Edited by Fulcrum.013

Share this post


Link to post
Share on other sites

I have a added a dummy value for rotational Friction Torque into my engine

But how do I calculate the true value of the Frictional Torque?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!