From: Mark M. <mm...@ri...> - 2012-04-03 03:20:25
|
Adam, The sampleGaussian function does indeed what you would expect. The documentation is not so much about *what* the function does (as this is specified by the abstract base class), but more about *how* this is implemented (since it is not entirely trivial). We didn’t use any particular paper, but if there’s a good reference please let us know. The paper by James Kuffner from ICRA 2004 only describes uniform sampling from SO(3), not Gaussian sampling, as far as I know. I am not familiar with the QuTem paper by Johnson.Can you me the complete reference? On Apr 2, 2012, at 6:28 PM, Adam Hartshorne wrote: > Hi, > > I am looking to sample unit quaternions from a gaussian distribution given a known mean quaternion Q and std of StdDev. > > Now I have come across the sampleGaussian function in the SO3StateSampler class, but the description doesn't make a whole lot of sense to me. It seems a bit garbled. Thus, I am a little unclear if this function it is doing exactly what I want or not. > > > sampleGaussian (State *state, const State *mean, const double stdDev) > > To sample sample a unit quaternion from a Gaussian, distribution we first compute a rotation q about a uniformly random unit vector by an angle sampled from a Gaussian with mean equal to 0 and standard deviation equal to 2*stdDev, and with a correction to account for the larger volume of states at increasing distance. (Quaternion distance is equal to half the angle in axis-angle representation.) The resulting state is then the quaternion product of near and q. > > > And if it is doing as I hope, what algorithm is being used to generate the samples? QuTem by Johnson? Kuffner, ICRA‘04.? > > Any help much appreciated. > > > Adam > -- Mark Moll |