Geometry#

using Config = std::vector<double>

Joint configuration of a robot.

class Frame

Represents a transformation or pose in 3D Cartesian space.

static Frame Identity()
static Frame from_matrix(const std::array<double, 16> &data)
static Frame from_translation(double x, double y, double z)
static Frame from_quaternion(double x, double y, double z, double qw, double qx, double qy, double qz)
static Frame from_euler(double x, double y, double z, double a, double b, double c)

The angles a, b, c are using the extrinsic XYZ convention.

std::array<double, 16> to_matrix() const

Flattened 4x4 matrix representation of the frame.

std::array<double, 6> to_euler() const

The angles a, b, c are using the extrinsic XYZ convention.

Frame inverse() const

Calculate the inverse transformation of the frame.

double translational_distance(const Frame &other) const

Calculates the Euclidian norm of the position difference.

double angular_distance(const Frame &other) const

Calculates the angle of the rotational difference.

Frame interpolate(double t, const Frame &other) const

Calculates a spherical linear interpolation between this and the other frame at the interpolation parameter t.

class Twist

Represents a velocity in 3D Cartesian space.