mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-28 07:00:34 +08:00
Canonical Quaternion with tests (#81)
This commit is contained in:
@@ -352,6 +352,30 @@ public:
|
||||
-q(3)/normSq);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bring quaternion to canonical form
|
||||
*/
|
||||
void canonicalize()
|
||||
{
|
||||
*this = this->canonical();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return canonical form of the quaternion
|
||||
*
|
||||
* @return quaternion in canonical from
|
||||
*/
|
||||
Quaternion canonical() const
|
||||
{
|
||||
const Quaternion &q = *this;
|
||||
if(q(0)<Type(0)) {
|
||||
return Quaternion(-q(0),-q(1),-q(2),-q(3));
|
||||
} else {
|
||||
return Quaternion(q(0),q(1),q(2),q(3));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Rotate quaternion from rotation vector
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user