Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Find instant axis of rotation
Date: Tue, 27 Oct 2009 20:52:03 +0000 (UTC)
Organization: KTH
Lines: 7
Message-ID: <hc7mhj$69k$1@fred.mathworks.com>
Reply-To: <HIDDEN>
NNTP-Posting-Host: webapp-02-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1256676723 6452 172.30.248.37 (27 Oct 2009 20:52:03 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Tue, 27 Oct 2009 20:52:03 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1282592
Xref: news.mathworks.com comp.soft-sys.matlab:580444


I need to estimate/calculate the location of a rotation axis for a number of points in space. I have the position of the all of points (x,y,z) at all of the different times. The relative location of all the points remain the same as they are all part of a rigid body.

I started out by creating a rotation matrix around the origin (by using 3 points in step n and step n+1 and then solving for the rotation matrix). I then used an Axis-Angle approach to calculate the axis around which they rotate.

The problem is that I am pretty sure that for the actual motion the axis doesn't go through the origin but is translated somehow in space. But I'm not sure how to find this translation. Anyone have any ideas?

Another idea I had was to to "fit" a cylinder to the points. If the points from two steps are all on the surface on the cylinder, the cylinder axis must be the instant axis of rotation. Any ideas on how to do such a calculation (preferably analytically).