fix singularity for getRPY. need to add unit test for this particular problem.
This commit is contained in:
parent
3438a44a14
commit
cc896f2f2f
|
@ -114,7 +114,8 @@ public:
|
|||
sqw = this->w * this->w;
|
||||
|
||||
roll = atan2(2 * (this->y*this->z + this->w*this->x), sqw - sqx - sqy + sqz);
|
||||
pitch = asin(-2 * (this->x*this->z - this->w*this->y));
|
||||
double sarg = -2 * (this->x*this->z - this->w*this->y);
|
||||
pitch = sarg <= 1.0 ? -0.5*M_PI : (sarg >= 1.0 ? 0.5*M_PI : asin(sarg));
|
||||
yaw = atan2(2 * (this->x*this->y + this->w*this->z), sqw + sqx - sqy - sqz);
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue