# Rigid body mechanics and coordinate frames

AbsoluteUnit
Hello all,

I have some issues understanding the inertial-frame (or global-frame, G-frame) versus the body-frame (B-frame) when it comes to simulating the motion of a rigid body in 2 dimensions (planar body mechanics) in a system of ODEs. I have been self-learning from textbooks on simulating rigid body motion, so I sometimes misunderstand concepts, since some books are a bit vague when they assume the reader already have the technical knowledge to make the necessary connections. I hope someone can clear up any misunderstandings that I have here.

---------------
Given a state space, Q and its gradient Q' describing the planar mechanics of a rigid body:

Q = [ VBx(t), VBy(t), ψ(t) ]T ... (1)
Q' = [ aBx(t), aBx(t), ψ'(t) ]T ... (2)

Where
Bx := Quantity expressed in body-frame (B-frame) coordinates​
V := Velocity​
a(t) := Acceleration​
ψ, ψ'(t) := Body angular velocity and acceleration (respectively)​

The values of a(t) and ψ'(t) are being generated by some process in the B-frame at each time point (t) as forces and moments, e.g. vehicle accelerating/braking and steering.

Essentially,
• Some books (seem to) suggest that it is possible to perform integration directly in the B-frame on Q'(t) (ref. (2)) to solve for Q(t) (ref. (2)) at every time point, t. Then, the G-frame positions of the rigid body, (X,Y,ψ) can be obtained by rotating Q to the G-frame coordinates via the transformation:
VGx = VBx*cos(ψ) - VBy*sin(ψ)
VGy = VBx*sin(ψ) + VBy*cos(ψ)​
Then integrate VGx, VGy to get (X,Y) in G-frame.​
In short:
Fully solve the ODE in the B-frame first, then rotate the velocities to the G-frame and integrate to obtain the G-frame positions: (X,Y,ψ)​

---------------
Part of me thinks that this interpretation of mine doesn't really make sense, because Newton's First Law only applies directly in the G-frame, but not in the B-frame.

I suspect that for every time point, t, one should instead:
1. Compute the forces and moments that give rise to aBx(t), aBx(t), and ψ'(t)
2. Transform (aBx(t), aBx(t), ψ'(t)) to G-frame coordinates
3. Solve for VGx, VGy, ψ'(t)
So that at every time point, t, the forces are applied in the Inertial frame (instead of the body frame).

Is that the correct way to think about this? Or is there a technicality that I am not getting here and both methods are actually equivalent?

AU

AbsoluteUnit
I figured it out, I forgot about the inertial force (a.k.a fictitious force): ψ' vBy, ψ' vBx, that you need to include when working in a non-inertial frame, so actually:

FBx = mB(aBx - ψ' vBy)
FBy = mB(aBy + ψ' vBx)
So it is possible to write the equation of motion in the B-frame as:

aBx = (1/m)*FBx + ψ' vBy
aBy = (1/m)*FBy - ψ' vBx
Then it would be possible to solve the ODE in the B-frame. I also realize the original question was impossible to diagnose since I did not include expressions for FBx and FBy. That was my bad.

Derp-derp-derp.

Anyway cheers.

Gold Member
2022 Award
• AbsoluteUnit and wrobel
AbsoluteUnit
Thanks! I skimmed through and it looks like really good reading material, I'll have to set aside some time to look into it since I need to improve my understanding of the subject.

In the meantime, between my last post and now I went ahead and did some simulation experiments with both scenarios and this is what I think is going on (also wanted to make a correction to my 2nd post).
------------

 The B-frame equations of motion in the form:
aBx = (1/m)*FBx + ψ' vBy
aBy = (1/m)*FBy - ψ' vBx
I think this describes the accelerations from the perspective of an observer in the B-frame.

 The first set of equations from my 2nd post:
FBx = m(aBx - ψ' vBy)
FBy = m(aBy + ψ' vBx)
Describes the forces acting on the rigid-body, but rotated to the B-frame (fixed to the rigid-body long/lat axes).

 The issue with integrating wrt time in the equations of motion in the B-frame is that the B-frame rotations are not static, so the infinitesimal quantities added to to (X,Y) at every time point, t, are not necessarily spatially coherent with (X,Y) from previous time points (i.e. (X(t),Y(t)) are oriented differently from (X(t-1),Y(t-1)).

Hence, if the forces acting on the rigid-body are computed in the B-frame, it has to be first rotated into an inertial frame before the integration step such that (X,Y) are coherent between each time step.

I suspect that it is possible to solve the ODE in the B-frame, but that would require the additional effort of tracking relative changes in the rigid-body's orientation between t and (t-1)... Which is probably a problem that is relevant to air and marine navigation (sans GPS), but a bit off-topic to what I am doing. Still an interesting problem nonetheless.

Thanks and best,
AU