Body coordinates


Body coordinates are a set of coordinates that measure the position of a point on a body from the perspective of the body itself, as opposed to the origin used in World coordinates. Given a point particle P\mathcal{P}, its body coordinates are B(t;P)\mathcal{B}(t;\mathcal{P}). The perspective used is here is called the body observer, which stands at the body origin with its own set of axes called the body axes, which are assumed to form a right-handed orthonormal set. Assuming the body is in motion, the body axes are a Moving frame.

For a Rigid body, the vector B(t;P)\mathcal{B}(t;\mathcal{P}) is time-independent.

Relation to world coordinates

If C\mathcal{C} is what the world observer sees as the body origin at time 0, at time tt it sees X(t;C)\mathcal{X}(t;\mathcal{C}). The body observer sees no difference, as the coordinates are centered around the body at any given time. The world observer also sees the body axes as orthonormal vectors; let's call these Ui(t)\mathbf{U}_{i}(t) with i=0,1,2i=0,1,2. These can be stored in a Rotation block matrix R(t)=(U0(t)U1(t)U2(t))R(t)=\begin{array}{c|c}(\mathbf{U}_{0}(t) & \mathbf{U}_{1}(t) & \mathbf{U}_{2}(t))\end{array}.

The (relative) distance between the body origin C\mathcal{C} and the point P\mathcal{P} is

r(t;C)=X(t;P)X(t;C)=R(t)B(t;P)\mathbf{r}(t;\mathcal{C})=\mathcal{X}(t;\mathcal{P})-\mathcal{X}(t;\mathcal{C})=R(t)\mathcal{B}(t;\mathcal{P})

therefore we can find the point in the world from the body coordinates as

X(t;P)=X(t;C)+r(t;P)=X(t;C)+R(t)B(t;P)(1)\boxed{\mathcal{X}(t;\mathcal{P})=\mathcal{X}(t;\mathcal{C})+\mathbf{r}(t;\mathcal{P})=\mathcal{X}(t;\mathcal{C})+R(t)\mathcal{B}(t;\mathcal{P})\tag{1}}

Note that the rotation acts as a basis change between body and world.

80%

Consider a time-varying vector in the body system ξ(t)=R(t)s(t)\mathbf{\xi}(t)=R(t)\mathbf{s}(t). The body coordinates s(t)\mathbf{s}(t) vary with time because ξ(t)\mathbf{\xi}(t) does. The time derivative is

dξdt=Rdsdt+R˙s=Rdsdt+R˙RTξ=DξDt+w×ξ(2)\frac{d\mathbf{\xi}}{dt}=R \frac{d\mathbf{s}}{dt}+\dot{R}\mathbf{s}=R \frac{d\mathbf{s}}{dt}+\dot{R}R^{T}\mathbf{\xi}=\frac{D\mathbf{\xi}}{Dt}+\mathbf{w}\times\mathbf{\xi}\tag{2}

where R˙RT\dot{R}R^{T} is the matrix representation of the cross product for the angular velocity, C(w)C(\mathbf{w}). We also define

DξDt=Rdsdt\frac{D\mathbf{\xi}}{Dt}=R \frac{d\mathbf{s}}{dt}

which measure the rate of change of ξ\mathbf{\xi} relative to body coordinates. The usage of DD instead of dd for the derivative is meant to show the difference in frame of reference. dξ/dtd\mathbf{\xi}/dt is change for the world observer, Dξ/DtD\mathbf{\xi}/Dt is change for the body observer. The difference between the two is the term w×ξ\mathbf{w}\times\mathbf{\xi}, which goes unseen by the body observer as it rotates alongside the object.

The body origin as seen in world coordinates has a velocity of vori=dX(t;C)/dt\mathbf{v}_{ori}=d\mathcal{X}(t;\mathcal{C})/dt and an acceleration aori=d2X(t;C)/dt2\mathbf{a}_{ori}=d^{2}\mathcal{X}(t;\mathcal{C})/dt^{2}. Differentiating (1)(1) gives us the world velocity for a point P\mathcal{P} vwor=dX(t;P)/dt\mathbf{v}_{wor}=d\mathcal{X}(t;\mathcal{P})/dt, which is related to the body coordinates like

vwor=vori+RdBdt+R˙B=vori+DrDt+w×r\mathbf{v}_{wor}=\mathbf{v}_{ori}+R \frac{d\mathcal{B}}{dt}+\dot{R}\mathcal{B}=\mathbf{v}_{ori}+ \frac{D\mathbf{r}}{Dt}+\mathbf{w}\times\mathbf{r}

where w\mathbf{w} is the angular velocity of the body at time tt in world coordinates. For convenience, we can write Dr/Dt=vD\mathbf{r}/Dt=\mathbf{v}'. So we have

vwor=v+vori+w×r\boxed{\mathbf{v}_{wor}= \mathbf{v}'+\mathbf{v}_{ori}+\mathbf{w}\times\mathbf{r}}

The terms are

  • v\mathbf{v}' is the velocity of P\mathcal{P} as seen from the body.
  • vori\mathbf{v}_{ori} is the translational velocity of the body origin as seen from the world.
  • w×r\mathbf{w}\times\mathbf{r} is the velocity due to the rotation of the body axes.

The last two terms are sometimes combined in a single term vdrag\mathbf{v}_{drag} called drag velocity, which gives us

vwor=v+vdrag\mathbf{v}_{wor}=\mathbf{v}'+\mathbf{v}_{drag}

The world acceleration awor\mathbf{a}_{wor} is obtained by further time derivation:

awor=aori+ddtDrDt+ddt(w×r)\mathbf{a}_{wor}=\mathbf{a}_{ori}+ \frac{d}{dt}\frac{D\mathbf{r}}{Dt}+ \frac{d}{dt}(\mathbf{w}\times\mathbf{r})

Dr/DtD\mathbf{r}/Dt is in body coordinates, so we can apply (2)(2) to its derivative (the middle term):

ddtDrDt=DDtDrDt+w×DrDt=D2rDt2+w×DrDt\frac{d}{dt} \frac{D\mathbf{r}}{Dt}=\frac{D}{Dt} \frac{D\mathbf{r}}{Dt}+\mathbf{w}\times \frac{D\mathbf{r}}{Dt}=\frac{D^{2}\mathbf{r}}{Dt^{2}}+\mathbf{w}\times \frac{D\mathbf{r}}{Dt}

w×r\mathbf{w}\times\mathbf{r} is also in body coordinates, so we can do the same thing:

ddt(w×r)=D(w×r)Dt+w×(w×r)=w×DrDt+DwDt×r+w×(w×r)\frac{d}{dt}(\mathbf{w}\times\mathbf{r})=\frac{D(\mathbf{w}\times\mathbf{r})}{Dt}+\mathbf{w}\times(\mathbf{w}\times\mathbf{r})=\mathbf{w}\times \frac{D\mathbf{r}}{Dt}+ \frac{D\mathbf{w}}{Dt}\times\mathbf{r}+\mathbf{w}\times(\mathbf{w}\times\mathbf{r})

Since w×w=0\mathbf{w}\times\mathbf{w}=0, we have Dw/Dt=dw/dtD\mathbf{w}/Dt=d\mathbf{w}/dt from (2)(2). Combining all the equations above, writing angular acceleration as α=Dw/Dt\mathbf{\alpha}=D\mathbf{w}/Dt and D2r/Dt2=aD^{2}\mathbf{r}/Dt^{2}=\mathbf{a}', we have the expression for world acceleration:

awor=a+aori+w×(w×r)+α×r+2w×v\boxed{\mathbf{a}_{wor}=\mathbf{a}'+\mathbf{a}_{ori}+ \mathbf{w}\times(\mathbf{w}\times\mathbf{r})+ \mathbf{\alpha}\times\mathbf{r}+ 2\mathbf{w}\times \mathbf{v}'}

where the terms are

  • a\mathbf{a}' is the acceleration of P\mathcal{P} as seen from the body.
  • aori\mathbf{a}_{ori} is the translational acceleration of the body origin.
  • w×(w×r)\mathbf{w}\times(\mathbf{w}\times\mathbf{r}) is the centripetal acceleration due to the rotation of the body axes.
  • α×r\mathbf{\alpha}\times\mathbf{r} is the tangential acceleration due to angular acceleration.
  • 2w×v2\mathbf{w}\times \mathbf{v}' is the Coriolis acceleration.

The middle three can be combined in a single term adrag\mathbf{a}_{drag} called drag acceleration, which gives us

awor=a+adrag+aCor\mathbf{a}_{wor}=\mathbf{a}'+\mathbf{a}_{drag}+\mathbf{a}_{Cor}