3
$\begingroup$

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.

$\endgroup$
1
  • $\begingroup$ A crane or a dirt bike? $\endgroup$
    – Chuck
    Jan 10, 2023 at 2:10

1 Answer 1

1
$\begingroup$

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.

$\endgroup$
5
  • $\begingroup$ 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. $\endgroup$ Jan 11, 2023 at 11:16
  • $\begingroup$ @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? $\endgroup$
    – Chuck
    Jan 11, 2023 at 14:46
  • $\begingroup$ 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$. $\endgroup$
    – Chuck
    Jan 11, 2023 at 14:48
  • $\begingroup$ 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/… $\endgroup$ Jan 13, 2023 at 5:31
  • 1
    $\begingroup$ @AkashSagar how did you solve this? Is this approach correct? $\endgroup$ Jan 25, 2023 at 15:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.