Newsgroups: comp.robotics.research
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!fas-news.harvard.edu!newspump.wustl.edu!news.ecn.bgu.edu!vixen.cso.uiuc.edu!howland.reston.ans.net!agate!library.ucla.edu!info.ucla.edu!unixg.ubc.ca!news.bc.net!rover.ucs.ualberta.ca!tribune.usask.ca!canopus.cc.umanitoba.ca!newsflash.concordia.ca!sunqbc.risq.net!hobbit.ireq.hydro.qc.ca!NetNews.IREQ.Hydro.QC.CA!mboyer
From: monckton@tiger.mech.ubc.ca (Simon Monckton)
Subject: Re: [Q] Interpolation of Orientation: which method is "best"?
Message-ID: <MBOYER.95Jun9184646@amadeus.ireq-robot.hydro.qc.ca>
Lines: 58
Sender: news@ireq.hydro.qc.ca (Netnews Admin)
Organization: La division Robotique de l'Institut de recherche d'Hydro-Quebec
Date: Fri, 9 Jun 1995 22:46:46 GMT
Approved: mboyer@ireq-robot.hydro.qc.ca, crr@ireq-robot.hydro.qc.ca

Roger Barry Hertz (rbh@sdr.utias.utoronto.ca) wrote:
: Hello,

: I am gather references related to methods of interpolating
: between orientations, and would appreciate your input.  I 
: will post a summary of any email responses I receive.
[snip]
: 2. Interpolate by the method suggested by Paul (see his text, in
: the section on cartesian interpolation).  

: 3. Interpolate using quaternions (Euler parameters).

: Any other suggestions, comments, references?

: Roger Hertz

: rbh@sdr.utias.utoronto.ca
: University of Toronto                               
: Institute for Aerospace Studies                  

This is a really interesting question, that I too have faced. I
am not sure I have the complete solution, but, I have used Quaternion
methods in a cartesian controller I have implemented. In effect the quaternion
is a measure of the relative orientation of two frames. In determining the
quaternion orientation of frame A  relative to frame B, the vector component 
of the quatertnion represents the axis  about which frame A may be rotated
into frame B

The scalar component is a measure of the rotation about this axis required to 
execute the rotation. This much is well understood. The technique I have used
to find an interpolated frame B between frames A and C is :
1) determine the quaternion relating the two frames (represented as Quaternions)
2) extract the _normalized_ vector component, v, from the quaternion
3) extract the rotation in radians, (say q).
4) apply an interpolation on q only!
5) construct a new quaternion based on q and v.
6) perform a quaternion multiplication to  generate the interpolated frame B.

I have left out the quaternion algebra (mostly to save my sanity with vi!). A 
good paper is 
@ARTICLE{Yuan88,
	AUTHOR = "Yuan J.S.C.", 
	TITLE =	"Closed Loop Manipulator Control Using Quaternion Feedback",
	JOURNAL = IEEE journal of Robotics and Automation, 
	VOLUME = 	"4", 
	NUMBER = 	"4", 
	YEAR = 		"1988",
	PAGES = 	"434-440"
}
Sorry for the bibtex format!

Simon Monckton


--
 *********************** (moderated) ***************************
 Submissions:                 Meta-discussions/information:
 crr@ireq-robot.hydro.qc.ca   crr-request@ireq-robot.hydro.qc.ca
