Delta Kilo said:
It is certainly possible. Rigid body has 6 degrees of freedom (3 translation + 3 rotation) so you need a minimum of 6 independent channels. However with 3-axis accelerometers, not all of them are going to be linearly independent, so the minimum is 3.
The acceleration of point \vec{r} is \vec{a}_r = \vec{a} + \vec{\alpha} \times \vec{r} + \vec{\omega} \times (\vec{\omega} \times \vec{r}), where \vec{a} is linear acceleration of the origin, \vec{\alpha} is angular acceleration and \vec{\omega} is angular velocity. look up "Rigid Body Kinematics".
A single channel accelerometer pointing in the direction of a unit vector \vec{d}_i measures a_i = \vec{a}_i \cdot \vec{d}_i. Now expand all that in coordinates and solve the resulting linear system with respect to components of \vec{a} and \vec{\alpha} (assuming you know \vec{\omega}). Obviously you'd want your matrix to be nice and well-conditioned and that generally means NOT placing accelerometers in a straight line :)
PS: With 6 channels \vec{\omega} is obtained by integrating \vec{\alpha} with suitable initial conditions. With 9 channels you can find \vec{a}, \vec{\alpha} and \vec{\omega} simultaneously (but the system is no longer linear). There are better ways of dealing with it, but things become complicated rather quickly. Not to mention numerical integration techniques, coordinate system transformations (rotation matrices, quaternions, Euler angles), Kalman filters, calibration etc. etc. Good luck :)
Sorry for the late response, but other things have occupied me, and I have spent quite a bit of time trying to understand how to solve this.
I can now refine the problem a little.
I have measured x,y,z accelerations at locations as outlined in my earlier post, ie 3 positions in the pitch plane, and 3 in the roll plane. I have an additional measurement location, where the acc'ns have components due to translation, roll and pitch. I need to be able to adjust the measured z at this location, to remove effects of roll.
The measured values from all these accelerometers are arrays, of about 10 secs of data at 2000Hz.
Now I can see how to formulate the equations for the measurements points in one plane (say the pitch plane),
(of the form \vec{a}_r = \vec{a} + \vec{\alpha} \times \vec{r} + \vec{\omega} \times (\vec{\omega} \times \vec{r})) and could iteratively solve that using Octave's fsolve, if \vec{r} was a constant, but it isn't. In the plane it is a function of the pitch angle, which requires integrating the pitch velocity, but as I see it the pitch velocity isn't known until the set of simultaneous equations has been solved.
So, if I understand it all correctly, I really have a set of simultaneous differential equations. What solution method does one use when the elements of the equations are already arrays of data at time intervals?
Sorry if I appear a bit dense on this but it isn't at all clear to me how to attack this.
Cheers,
Terry