WPILibC++ 2027.0.0-alpha-3
Loading...
Searching...
No Matches
frc::Twist3d Struct Reference

A change in distance along a 3D arc since the last pose update. More...

#include <frc/geometry/Twist3d.h>

Public Member Functions

constexpr Transform3d Exp () const
 Obtain a new Transform3d from a (constant curvature) velocity.
 
constexpr bool operator== (const Twist3d &other) const
 Checks equality between this Twist3d and another object.
 
constexpr Twist3d operator* (double factor) const
 Scale this by a given factor.
 

Public Attributes

units::meter_t dx = 0_m
 Linear "dx" component.
 
units::meter_t dy = 0_m
 Linear "dy" component.
 
units::meter_t dz = 0_m
 Linear "dz" component.
 
units::radian_t rx = 0_rad
 Rotation vector x component.
 
units::radian_t ry = 0_rad
 Rotation vector y component.
 
units::radian_t rz = 0_rad
 Rotation vector z component.
 

Detailed Description

A change in distance along a 3D arc since the last pose update.

We can use ideas from differential calculus to create new Pose3ds from a Twist3d and vice versa.

A Twist can be used to represent a difference between two poses.

Member Function Documentation

◆ Exp()

Transform3d frc::Twist3d::Exp ( ) const
constexpr

Obtain a new Transform3d from a (constant curvature) velocity.

See "https://file.tavsys.net/control/controls-engineering-in-frc.pdf" Controls Engineering in the FIRST Robotics Competition section 10.2 "Pose exponential" for a derivation.

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 twist, the user will receive the pose delta.

"Exp" represents the pose exponential, which is solving a differential equation moving the pose forward in time.

Returns
The pose delta of the robot.

◆ operator*()

Twist3d frc::Twist3d::operator* ( double factor) const
inlineconstexpr

Scale this by a given factor.

Parameters
factorThe factor by which to scale.
Returns
The scaled Twist3d.

◆ operator==()

bool frc::Twist3d::operator== ( const Twist3d & other) const
inlineconstexpr

Checks equality between this Twist3d and another object.

Parameters
otherThe other object.
Returns
Whether the two objects are equal.

Member Data Documentation

◆ dx

units::meter_t frc::Twist3d::dx = 0_m

Linear "dx" component.

◆ dy

units::meter_t frc::Twist3d::dy = 0_m

Linear "dy" component.

◆ dz

units::meter_t frc::Twist3d::dz = 0_m

Linear "dz" component.

◆ rx

units::radian_t frc::Twist3d::rx = 0_rad

Rotation vector x component.

◆ ry

units::radian_t frc::Twist3d::ry = 0_rad

Rotation vector y component.

◆ rz

units::radian_t frc::Twist3d::rz = 0_rad

Rotation vector z component.


The documentation for this struct was generated from the following file: