# Calculation of IMU offset for Placement of Inertial measurement unit away from centre of mass

I am working on a 6DOF IMU that contains a 3-axis accelerometer and a 3-axis gyroscope. I am building a project to plot the position and orientation of a vehicle/dirt bike in a 3d plane. However, the inertial measurement unit is placed away from the centre of mass of the vehicle i.e. in the boot/taillight of the car/bike. The vehicle will be performing extreme manoeuvres in a terrain. I have the below questions regarding this matter.

As far as I have read, I have to offset accelerometer and gyroscope readings due to its placement away from the centre of mass of the vehicle. In some articles I have read that the placement of the gyroscope does not affect gyroscope readings; however, just to be sure, I am asking once again if gyro measurements needed to be offset.

I have found two articles stating how to offset accelerometer readings with regards to its placement inside the body.

### Accelerometer Placement – Where and Why

In this article the below formula is used:

\begin{matrix}{} A_{r’} & = & A + A_r & + \\ & & 2\omega \times V_r & + \\ & & \alpha \times r & + \\ & & \omega \times (\omega \times r) & + &\end{matrix}\begin{aligned} &\leftarrow \text{Inertial Acceleration} \\ &\leftarrow \text{Coriolis Acceleration} \\ &\leftarrow \text{Euler Acceleration} \\ &\leftarrow \text{Centripetal Acceleration} \end{aligned}

However, I am not sure how to proceed with this formula. I have $$a_x$$, $$a_y$$, and $$a_z$$ from IMU from a point X (i.e. where the IMU is placed) and using this formula I want to get $$a_x$$, $$a_y$$, and $$a_z$$ at centre of mass of the vehicle; but I am confused as to how to proceed with this formula.

### Calculating acceleration offset by Center of Gravity (C.G.)

Starting from the well-known acceleration transformation formula between an arbitrary point A and the center of mass C with $$\vec{c} = \vec{r}_C - \vec{r}_A$$.

$$\vec{a}_C = \vec{a}_A + \dot{\vec{\omega}} \times \vec{c} + \vec{\omega} \times \vec{\omega} \times \vec{c}$$

one can use the 3×3 cross product operator to transform the above into

$$\vec{a}_C = \vec{a}_A + \begin{vmatrix} 0 & -\dot{\omega}_z & \dot{\omega}_y \\ \dot{\omega}_z & 0 & -\dot{\omega}_x \\ -\dot{\omega}_y & \dot{\omega}_x & 0 \end{vmatrix} \vec{c} + \begin{vmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{vmatrix} \begin{vmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{vmatrix} \vec{c}$$

or in the form seen the linked post

$$\vec{a}_C = \vec{a}_A + \begin{vmatrix} -\omega_y^2-\omega_z^2 & \omega_x \omega_y - \dot{\omega}_z & \omega_x \omega_z + \dot{\omega}_y \\ \omega_x \omega_y + \dot{\omega}_z & -\omega_x^2-\omega_z^2 & \omega_y \omega_z - \dot{\omega}_x \\ \omega_x \omega_z - \dot{\omega}_y & \omega_y \omega_z + \dot{\omega}_x & -\omega_x^2 - \omega_y^2 \end{vmatrix} \vec{c}$$

However I am confused about this formula as well, since none of them give me ax, ay, and az from the centre of mass of the vehicle.

Kindly help me since I am new to this field, I am originally from a computer science background, and I am struggling to understand these concepts.

Also, if you can give me reference documents as to how do I interpret values from accelerometer and gyroscope, rotation and why is it necessary, that would be great.

• A crane or a dirt bike?
– Chuck
Jan 10 at 2:10

The second post you link there seems to explain it pretty well:

Starting from the well known acceleration transformation formula between an arbitrary point A and the center of mass C with $$\vec{c} = \vec{r}_C - \vec{r}_A$$.

$$\vec{a}_C = \vec{a}_A + \dot{\vec{\omega}} \times \vec{c} + \vec{\omega} \times \vec{\omega} \times \vec{c}$$

If you have an accelerometer at arbitrary point A and you're trying to determine acceleration about the center of mass C, then you should rearrange the equation to solve for $$\vec{a}_A$$, right? The trivial answer is

$$\vec{a}_A = \vec{a}_C - \dot{\vec{\omega}} \times \vec{c} + \vec{\omega} \times \vec{\omega} \times \vec{c}$$

but you can apply a similar rearranging to the expanded equation you gave in your answer.

• Hi @Chuck I think there is something wrong with this formula As the units on LHS and RHS do not add up correctly for example unit of angular velocity is rad/s and angular acceleration is rad/s2 however we don't see anything like this on LHS of the equation. Are you sure this is the correct equation of acceleration transformation ? Because I tried implementing this formula when body is in rotational motion only and no translational motion, however output using this formula was not correct as if a body is in rotational motion the accelerometer readings at centre of body should be 0. Jan 11 at 11:16
• @AkashSagar - you haven't shared your attempt here, but if the accelerometer is at the center of the body then $c=0$, which means $\vec{a}_A = \vec{a}_C - \dot{\vec{\omega}} \times \vec{c} + \vec{\omega} \times \vec{\omega} \times \vec{c}$ becomes $\vec{a}_A = \vec{a}_C - \dot{\vec{\omega}} \times 0 + \vec{\omega} \times \vec{\omega} \times 0$, which reduces to $\vec{a}_A = \vec{a}_C$. If you got something different then maybe there was some error in your implementation of the equation?
– Chuck
Jan 11 at 14:46
• Regarding units, important to note that $- \dot{\vec{\omega}} \times \vec{c}$ is using the derivative of $\omega$ - there's a dot there! $\dot{\vec{\omega}}$. This gives you units of $1/s^2$, times distance vector $c$, in meters (presumably), which works out to $m/s^2$, which is an acceleration unit. Similarly $\vec{\omega} \times \vec{\omega} \times \vec{c}$ gives you units of $(1/s) \times (1/s) \times (m)$, which again works out to $m/s^2$.
– Chuck
Jan 11 at 14:48
• Hi @Chuck It was not possible to add my calculations here, so I have added another question regarding this where you can see my implementation robotics.stackexchange.com/questions/24294/… Jan 13 at 5:31
• @AkashSagar how did you solve this? Is this approach correct? Jan 25 at 15:04