Converting accelerometer readings to center of IMU

I recently purchased 3 single axis accelerometers for tracking acceleration of a vehicle. I have used a box like structure to mount each accelerometer orthogonal to each other ( As much as possible) to calculate 3d space acceleration of the vehicle.

Below is a system diagram to represent clarity

This setup is done for experimental purpose only I understand that buying a 3axis accelerometer would have been easier for execution, Also the vehicle is able to rotate on it's own axis and travel forward backward only currently

As you all can see that IMU itself is placed away from center of gravity of the vehicle and Inside IMU accelerometer is placed away from center of IMU.

Hence 2 compensations needs to be performed for converting IMU accelerometer readings to with respect to center of gravity of Vehicle.

1. Represent accelerometer readings with respect to center of IMU
2. Represent accelerometer readings with respect to center of gravity of vehicle

I have found out the solution for the 2nd part which is done using rigid body dynamics formula used in the below link https://www.basicairdata.eu/knowledge-center/compensation/inertial-measurement-unit-placement/

Question

The problem I am facing right now is that each accelerometer gives readings based on their respective center which is away from center of the box I have placed them in. I would like to get readings with respect to centre of the box.

Is there any way I could offset the accelerometer readings to center of the box. I have obtained the distance from center of the box to each accelerometers by experimental practices.

GOAL

The goal of the experiment is to obtain precise and accurate data of acceleration readings of the accelerometer and gyroscope. The goal is not to calculate current position of the vehicle however accelerometer readings will be used to predict the position of the vehicle w.r.t current position.

UPDATE

1. I have seemingly forgot to mention that the setup also contains 3-axis gyroscope, however I am unsure as how to use this for solving the above problem
2. Question is modified to add more detail/picture.

Thanks & Regards

• What is your final goal here? In most cases just linear accelerometers have limited use, you also need either a magnetometer (compass) or the ability to measure rotation. Also remember that using acceleration only to find the vehicle's position over time will get you very bad results, as even minor deltas in each reading will result in very substantial drift over a longer period of time. "longer" being minutes, not hours/days. Also what type of vehicle is it? Some car-like vehicle (which can move forward or backward and turn left or right), or something more complex? Jun 1, 2023 at 12:30
• The usual reference if what you are trying to get is position: en.wikipedia.org/wiki/Inertial_navigation_system#Drift_rate "Even the best accelerometers, with a standard error of 10 micro-g, would accumulate a 50-meter (164-ft) error within 17 minutes." Jun 1, 2023 at 12:32

A rigid object moves in one piece; all of its locations have the same velocity.

So, you need to do nothing, if you can assume your rotation velocity (so, pitch, yaw and roll) to be zero, or if you can assume your translation derivative to be zero (i.e., vehicle rotates only, doesn't move away at changing speed).

If your vehicle can do both, you're basically out of luck: Looking at a single sensor, you cannot tell how much of its reading is due to translational acceleration and how much is from rotation (i.e., taking a turn).

But you need to know that: translation applies to all parts of your rigid vehicle the same, but rotation rotates "outer" parts faster than "inner" parts.

Even combining two sensors' individual readings won't take you far: Both are just numbers, and you can't know how much of their readings can be explained by a rotation and what by a diagonal translational acceleration.

The only way out here is to take history and a system model into account to make a good-as-possible guess on how much you're in a curve or sliding.

Typical use case of the Kalman filter, to be honest. You'll need to read up on that, and come up with a system and observer model. Have fun!

Note that this is always worse than actually having gyro readings! (I just mention that because your question – incorrectly as far as we can tell – is tagged with and , which three single-axis accelerometers are not. You're missing three axes of rotational acceleration measurement.)

• Hi Marcus, First of all thank you for a comprehensive reply, Let me give you more insights on the problem 1. The car here is a custom built automotive that will be used for experimental purpose, The car is able to rotate on it's own axis as well as move forward backward right and left using remote control, Hence In my case rotational velocity is not zero 2. IMU housing contains 3 axis gyroscope Let me know if the insights help you Basically I have attached 3 axis gyroscope to this housing and we know that gyroscope even if not placed in center of the IMU will give the same reading. Jun 5, 2023 at 9:02
• obviously, you can use the gyroscope to determine the rotation. From there, it's trivial to subtract that and get the pure translatory acceleration, and knowing the rotation convert the sum oft translation and rotation to a acceleration at any point – it's literally just applying cosine and sine! Jun 5, 2023 at 21:28
• Hi Marcus, thank you for your response, I have further elaborated the question and edited for other viewers with system description kindly review that also. As per your last comment I am unable to understand how to remove acceleration from accelerometer readings using gyroscope readings, can you kindly elaborate on that? Any resource/ research paper would be helpfull. Also keep in mind that a vehicle can rotate and translate at the same time while performing extreme maneuvering or during turning. Jun 6, 2023 at 9:27