I have a collection of rigid bodies, each comprising ~100 particles. Each body is defined by a list of points corresponding to the coordinates of its constituent particles. The rigid bodies are approximately identical (i.e. there should exist a rigid body motion that maps each body onto any other body), though some statistical noise in the algorithm that determined the particle positions makes them not exactly identical. I want to determine the center of mass and orientation of each rigid body.
The simplest way to do this seems to be using the function FindGeometricTransform. Using this, I have determined a translation vector and a transformation matrix $R$ to transfer one body to another. I would like to use this matrix to determine the Euler/Tait-Bryan/roll-pitch-yaw angles between each body. However, the matrix obtained by FindGeometricTransform is not exactly a rotation matrix because of the aforementioned statistical noise. Hence, RollPitchYawAngles returns an error. How can I find an approximate set of angles to transform between the different bodies?