Valkyrie 2026
Loading...
Searching...
No Matches
valor::geometry::Rotation3d Class Reference

Represents a 3D rotation matrix (3x3). More...

#include <valkyrie/util/geometry/Pose.h>

Inheritance diagram for valor::geometry::Rotation3d:
valor::EigenUnit::NamedPhysicalMatrix< Rotation3d, EigenUnit::PhysicalMatrix< EigenUnit::VectorN< units::dimensionless::scalar, 3 >, EigenUnit::VectorN< units::dimensionless::scalar, 3 > > > valor::EigenUnit::UnitMatrix< typename VecOut::UnitTuple, typename VecIn::UnitTuple >

Public Member Functions

 Rotation3d (const BaseMatrix &b)
 Rotation3d (units::radian_t pitch, units::radian_t roll, units::radian_t yaw)
 Rotation3d (const Rotation2d &rot)
 Construct a Rotation3d from a Rotation2d (rotation about Z).
 Rotation3d (frc::Rotation3d frcRot)
 Construct a Rotation3d from an frc::Rotation3d.
 Rotation3d (frc::Rotation2d frcRot)
 Construct a Rotation3d from an frc::Rotation2d as a pure yaw rotation. Pitch and roll are set to zero.
Rotation3d operator* (double scalar) const
 Scalar multiplication of the rotation axis-angle.
EigenUnit::VectorN< units::radian, 3 > Log () const
 Logarithm map: SO(3) -> so(3).
Rotation3d Interpolate (const Rotation3d &other, double t) const
 Spherical Linear Interpolation (SLERP).
units::radian_t Pitch () const
units::radian_t Roll () const
units::radian_t Yaw () const
Public Member Functions inherited from valor::EigenUnit::NamedPhysicalMatrix< Rotation3d, EigenUnit::PhysicalMatrix< EigenUnit::VectorN< units::dimensionless::scalar, 3 >, EigenUnit::VectorN< units::dimensionless::scalar, 3 > > >
 NamedPhysicalMatrix (const EigenUnit::PhysicalMatrix< EigenUnit::VectorN< units::dimensionless::scalar, 3 >, EigenUnit::VectorN< units::dimensionless::scalar, 3 > > &base)
Rotation3d Inverse () const
auto Block () const

Static Public Member Functions

static Rotation3d Exp (EigenUnit::VectorN< units::radian, 3 > w)
 Exponential map: so(3) -> SO(3) using Rodrigues' formula.

Detailed Description

Represents a 3D rotation matrix (3x3).

Constructor & Destructor Documentation

◆ Rotation3d() [1/3]

valor::geometry::Rotation3d::Rotation3d ( const Rotation2d & rot)
inlineexplicit

Construct a Rotation3d from a Rotation2d (rotation about Z).

Parameters
rotThe 2D rotation.

◆ Rotation3d() [2/3]

valor::geometry::Rotation3d::Rotation3d ( frc::Rotation3d frcRot)
inlineexplicit

Construct a Rotation3d from an frc::Rotation3d.

frc::Rotation3d exposes angles as X=roll, Y=pitch, Z=yaw, whereas the valor constructor takes (pitch, roll, yaw), so the arguments are reordered accordingly: Rotation3d(frcRot.Y(), frcRot.X(), frcRot.Z()).

Parameters
frcRotThe frc 3D rotation to convert.

◆ Rotation3d() [3/3]

valor::geometry::Rotation3d::Rotation3d ( frc::Rotation2d frcRot)
inlineexplicit

Construct a Rotation3d from an frc::Rotation2d as a pure yaw rotation. Pitch and roll are set to zero.

Parameters
frcRotThe frc 2D rotation to lift into 3D.

The documentation for this class was generated from the following file:
  • src/main/include/valkyrie/util/geometry/Pose.h