I'm currently stuck on obtaining a description of the robot base velocities (xdot, ydot, thetadot) based on data obtained from 4 IMU sensors located, with an offset, on 4 pivot points. See picture below:
And a closeup of 1 of the pivot wheels:
The IMU is located at the red dot and since this is a 2d problem, I'll only consider acceleration in the X,Y direction of the IMU frame and rotation around the Z axis of the IMU frame.
Now, since I'm looking to obtain a description for the velocities xdot, ydot en thetadot, this all would result in something like the following:
[dx dy dtheta]' = [3x12 matrix] * [ax_1 ay_1 gz_1 .. .. .. etc.]'
I think that if a description of how the accelerations of the individual IMU's influence the robots odometry is known, I can average the individual components to come to the 'true' odometry. So what's first (I think) is obtaining a description of either dx or dy or dtheta as a function of the angle delta and the velocities of the IMU.
If we want to know the location of the IMU in the robot's frame, we would need translation matrices which look like the following:
H_imu_p = [1 0 -d_s; 0 1 0; 0 0 1]; H_p_r = [cos(d) -sin(d) -d_px; sin(d) cos(d) -d_py; 0 0 1];
Where d_s is the distance in X between the IMU and the pivot point and d_px and d_py are the distance between Robot Origin and pivot point expressed in the Robot's frame.
Multiplying these matrices would result in a matrix that is able to give the location of the IMU in the Robot's frame. Since the IMU is located wrt the IMU frame at:
p_imu = [0 0 1]'
We can obtain the location of the IMU wrt the global frame by taking the last column of the multiplied translation matrices.
Differentiating this information twice obtains how the accelerations of the IMU are expressed in the Robot's frame.
Here is where the question part begins:
Assuming all this information above is correct, how do I go from an expression that expresses xddot_IMU yddot_IMU and thetaddot_IMU in the robot's frame to that of determining the velocities of the robot's frame?
Would integrating the measurement results (so obtain velocities of the IMU) and then having the expression of location of the IMU wrt the robot's frame differentiated once? deltadot could then be obtained from the gyroscopic data around the Z-axis. I'm having doubts about this method due to the complex kinematic relationships between the IMU and the robot. Essentially all the four pivot points could rotate without the robot ever moving (while still measuring values at [ax_1 ay_1 gz_1 .. .. .. etc.]
I'm not asking for a worked out solution but I'm quite stuck here and couldn't find the required literature to find a way out. If someone could point me towards the solution (or towards some examples in literature), that would be very much appreciated.