Represents a 3D pose containing translational and rotational elements.
More...
#include <frc/geometry/Pose3d.h>
Represents a 3D pose containing translational and rotational elements.
◆ Pose3d() [1/4]
constexpr frc::Pose3d::Pose3d 
( 
 ) 


constexprdefault 
Constructs a pose at the origin facing toward the positive X axis.
◆ Pose3d() [2/4]
Constructs a pose with the specified translation and rotation.
 Parameters

translation  The translational component of the pose. 
rotation  The rotational component of the pose. 
◆ Pose3d() [3/4]
frc::Pose3d::Pose3d 
( 
units::meter_t 
x, 


units::meter_t 
y, 


units::meter_t 
z, 


Rotation3d 
rotation 

) 
 
Constructs a pose with x, y, and z translations instead of a separate Translation3d.
 Parameters

x  The x component of the translational component of the pose. 
y  The y component of the translational component of the pose. 
z  The z component of the translational component of the pose. 
rotation  The rotational component of the pose. 
◆ Pose3d() [4/4]
frc::Pose3d::Pose3d 
( 
const Pose2d & 
pose  ) 


explicit 
Constructs a 3D pose from a 2D pose in the XY plane.
 Parameters

◆ Exp()
Obtain a new Pose3d from a (constant curvature) velocity.
The twist is a change in pose in the robot's coordinate frame since the previous pose update. When the user runs exp() on the previous known fieldrelative pose with the argument being the twist, the user will receive the new fieldrelative pose.
"Exp" represents the pose exponential, which is solving a differential equation moving the pose forward in time.
 Parameters

twist  The change in pose in the robot's coordinate frame since the previous pose update. For example, if a nonholonomic robot moves forward 0.01 meters and changes angle by 0.5 degrees since the previous pose update, the twist would be Twist3d{0.01_m, 0_m, 0_m, Rotation3d{0.0, 0.0, 0.5_deg}}. 
 Returns
 The new pose of the robot.
◆ Log()
Returns a Twist3d that maps this pose to the end pose.
If c is the output of a.Log(b), then a.Exp(c) would yield b.
 Parameters

end  The end pose for the transformation. 
 Returns
 The twist that maps this to end.
◆ operator*()
Pose3d frc::Pose3d::operator* 
( 
double 
scalar  ) 
const 
Multiplies the current pose by a scalar.
 Parameters

 Returns
 The new scaled Pose2d.
◆ operator+()
Transforms the pose by the given transformation and returns the new transformed pose.
The transform is applied relative to the pose's frame. Note that this differs from Pose3d::RotateBy(const Rotation3d&), which is applied relative to the global frame and around the origin.
 Parameters

other  The transform to transform the pose by. 
 Returns
 The transformed pose.
◆ operator()
Returns the Transform3d that maps the one pose to another.
 Parameters

other  The initial pose of the transformation. 
 Returns
 The transform that maps the other pose to the current pose.
◆ operator/()
Pose3d frc::Pose3d::operator/ 
( 
double 
scalar  ) 
const 
Divides the current pose by a scalar.
 Parameters

 Returns
 The new scaled Pose2d.
◆ operator==()
bool frc::Pose3d::operator== 
( 
const Pose3d & 
 ) 
const 

default 
Checks equality between this Pose3d and another object.
◆ RelativeTo()
Pose3d frc::Pose3d::RelativeTo 
( 
const Pose3d & 
other  ) 
const 
Returns the current pose relative to the given pose.
This function can often be used for trajectory tracking or pose stabilization algorithms to get the error between the reference and the current pose.
 Parameters

other  The pose that is the origin of the new coordinate frame that the current pose will be converted into. 
 Returns
 The current pose relative to the new origin pose.
◆ RotateBy()
Rotates the pose around the origin and returns the new pose.
 Parameters

other  The rotation to transform the pose by, which is applied extrinsically (from the global frame). 
 Returns
 The rotated pose.
◆ Rotation()
const Rotation3d & frc::Pose3d::Rotation 
( 
 ) 
const 

inline 
Returns the underlying rotation.
 Returns
 Reference to the rotational component of the pose.
◆ ToPose2d()
Pose2d frc::Pose3d::ToPose2d 
( 
 ) 
const 
Returns a Pose2d representing this Pose3d projected into the XY plane.
◆ TransformBy()
Transforms the pose by the given transformation and returns the new transformed pose.
The transform is applied relative to the pose's frame. Note that this differs from Pose3d::RotateBy(const Rotation3d&), which is applied relative to the global frame and around the origin.
 Parameters

other  The transform to transform the pose by. 
 Returns
 The transformed pose.
◆ Translation()
Returns the underlying translation.
 Returns
 Reference to the translational component of the pose.
◆ X()
units::meter_t frc::Pose3d::X 
( 
 ) 
const 

inline 
Returns the X component of the pose's translation.
 Returns
 The x component of the pose's translation.
◆ Y()
units::meter_t frc::Pose3d::Y 
( 
 ) 
const 

inline 
Returns the Y component of the pose's translation.
 Returns
 The y component of the pose's translation.
◆ Z()
units::meter_t frc::Pose3d::Z 
( 
 ) 
const 

inline 
Returns the Z component of the pose's translation.
 Returns
 The z component of the pose's translation.
The documentation for this class was generated from the following file: