pinocchio  3.9.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
pinocchio::rpy Namespace Reference

Roll-pitch-yaw operations. More...

Functions

template<typename Vector3Like>
Eigen::Matrix< typename Vector3Like::Scalar, 3, 3, Vector3Like::Options > computeRpyJacobian (const Eigen::MatrixBase< Vector3Like > &rpy, const ReferenceFrame rf=LOCAL)
 Compute the Jacobian of the Roll-Pitch-Yaw conversion.
template<typename Vector3Like>
Eigen::Matrix< typename Vector3Like::Scalar, 3, 3, Vector3Like::Options > computeRpyJacobianInverse (const Eigen::MatrixBase< Vector3Like > &rpy, const ReferenceFrame rf=LOCAL)
 Compute the inverse Jacobian of the Roll-Pitch-Yaw conversion.
template<typename Vector3Like0, typename Vector3Like1>
Eigen::Matrix< typename Vector3Like0::Scalar, 3, 3, Vector3Like0::Options > computeRpyJacobianTimeDerivative (const Eigen::MatrixBase< Vector3Like0 > &rpy, const Eigen::MatrixBase< Vector3Like1 > &rpydot, const ReferenceFrame rf=LOCAL)
 Compute the time derivative Jacobian of the Roll-Pitch-Yaw conversion.
template<typename Matrix3Like>
Eigen::Matrix< typename Matrix3Like::Scalar, 3, 1, Matrix3Like::Options > matrixToRpy (const Eigen::MatrixBase< Matrix3Like > &R)
 Convert from Transformation Matrix to Roll, Pitch, Yaw.
template<typename Vector3Like>
Eigen::Matrix< typename Vector3Like::Scalar, 3, 3, Vector3Like::Options > rpyToMatrix (const Eigen::MatrixBase< Vector3Like > &rpy)
 Convert from Roll, Pitch, Yaw to rotation Matrix.
template<typename Scalar>
Eigen::Matrix< Scalar, 3, 3 > rpyToMatrix (const Scalar &r, const Scalar &p, const Scalar &y)
 Convert from Roll, Pitch, Yaw to rotation Matrix.

Detailed Description

Roll-pitch-yaw operations.

Function Documentation

◆ computeRpyJacobian()

template<typename Vector3Like>
Eigen::Matrix< typename Vector3Like::Scalar, 3, 3, Vector3Like::Options > computeRpyJacobian(const Eigen::MatrixBase< Vector3Like > &rpy,
const ReferenceFramerf = LOCAL )

Compute the Jacobian of the Roll-Pitch-Yaw conversion.

Given $\phi = (r, p, y)$ and reference frame F (either LOCAL or WORLD), the Jacobian is such that $ {}^F\omega = J_F(\phi)\dot{\phi} $, where $ {}^F\omega $ is the angular velocity expressed in frame F and $ J_F $ is the Jacobian computed with reference frame F

Parameters
[in]rpyRoll-Pitch-Yaw vector
[in]rfReference frame in which the angular velocity is expressed
Returns
The Jacobian of the Roll-Pitch-Yaw conversion in the appropriate frame
Note
for the purpose of this function, WORLD and LOCAL_WORLD_ALIGNED are equivalent

◆ computeRpyJacobianInverse()

template<typename Vector3Like>
Eigen::Matrix< typename Vector3Like::Scalar, 3, 3, Vector3Like::Options > computeRpyJacobianInverse(const Eigen::MatrixBase< Vector3Like > &rpy,
const ReferenceFramerf = LOCAL )

Compute the inverse Jacobian of the Roll-Pitch-Yaw conversion.

Given $\phi = (r, p, y)$ and reference frame F (either LOCAL or WORLD), the Jacobian is such that $ {}^F\omega = J_F(\phi)\dot{\phi} $, where $ {}^F\omega $ is the angular velocity expressed in frame F and $ J_F $ is the Jacobian computed with reference frame F

Parameters
[in]rpyRoll-Pitch-Yaw vector
[in]rfReference frame in which the angular velocity is expressed
Returns
The inverse of the Jacobian of the Roll-Pitch-Yaw conversion in the appropriate frame
Note
for the purpose of this function, WORLD and LOCAL_WORLD_ALIGNED are equivalent

◆ computeRpyJacobianTimeDerivative()

template<typename Vector3Like0, typename Vector3Like1>
Eigen::Matrix< typename Vector3Like0::Scalar, 3, 3, Vector3Like0::Options > computeRpyJacobianTimeDerivative(const Eigen::MatrixBase< Vector3Like0 > &rpy,
const Eigen::MatrixBase< Vector3Like1 > &rpydot,
const ReferenceFramerf = LOCAL )

Compute the time derivative Jacobian of the Roll-Pitch-Yaw conversion.

Given $\phi = (r, p, y)$ and reference frame F (either LOCAL or WORLD), the Jacobian is such that $ {}^F\omega = J_F(\phi)\dot{\phi} $, where $ {}^F\omega $ is the angular velocity expressed in frame F and $ J_F $ is the Jacobian computed with reference frame F

Parameters
[in]rpyRoll-Pitch-Yaw vector
[in]rpydotTime derivative of the Roll-Pitch-Yaw vector
[in]rfReference frame in which the angular velocity is expressed
Returns
The time derivative of the Jacobian of the Roll-Pitch-Yaw conversion in the appropriate frame
Note
for the purpose of this function, WORLD and LOCAL_WORLD_ALIGNED are equivalent

◆ matrixToRpy()

template<typename Matrix3Like>
Eigen::Matrix< typename Matrix3Like::Scalar, 3, 1, Matrix3Like::Options > matrixToRpy(const Eigen::MatrixBase< Matrix3Like > &R)

Convert from Transformation Matrix to Roll, Pitch, Yaw.

Given a rotation matrix $R$, the angles $r, p, y$ are given so that $ R = R_z(y)R_y(p)R_x(r) $, where $R_{\alpha}(\theta)$ denotes the rotation of $\theta$ degrees around axis $\alpha$. The angles are guaranteed to be in the ranges $r\in[-\pi,\pi]$ $p\in[-\frac{\pi}{2},\frac{\pi}{2}]$ $y\in[-\pi,\pi]$, unlike Eigen's eulerAngles() function

Warning
the method assumes $R$ is a rotation matrix. If it is not, the result is undefined.

◆ rpyToMatrix() [1/2]

template<typename Vector3Like>
Eigen::Matrix< typename Vector3Like::Scalar, 3, 3, Vector3Like::Options > rpyToMatrix(const Eigen::MatrixBase< Vector3Like > &rpy)

Convert from Roll, Pitch, Yaw to rotation Matrix.

Given a vector $(r, p, y)$, the rotation is given as $ R = R_z(y)R_y(p)R_x(r) $, where $R_{\alpha}(\theta)$ denotes the rotation of $\theta$ degrees around axis $\alpha$.

◆ rpyToMatrix() [2/2]

template<typename Scalar>
Eigen::Matrix< Scalar, 3, 3 > rpyToMatrix(const Scalar &r,
const Scalar &p,
const Scalar &y )

Convert from Roll, Pitch, Yaw to rotation Matrix.

Given $r, p, y$, the rotation is given as $ R = R_z(y)R_y(p)R_x(r) $, where $R_{\alpha}(\theta)$ denotes the rotation of $\theta$ degrees around axis $\alpha$.