franky 1.1.4
A High-Level Motion API for Franka
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions
franky Namespace Reference

Classes

class  CartesianImpedanceBase
 Base class for client-side cartesian impedance motions. More...
 
struct  CartesianImpedanceGains
 
class  CartesianImpedanceMotion
 Cartesian impedance motion. More...
 
class  CartesianImpedanceTrackingMotion
 Cartesian impedance tracking motion. More...
 
class  CartesianMotion
 Cartesian motion with a single target. More...
 
struct  CartesianReference
 Cartesian impedance reference expressed in the base frame. More...
 
class  CartesianState
 
class  CartesianVelocityMotion
 Cartesian velocity motion with a single target velocity. More...
 
class  CartesianVelocityWaypointMotion
 Cartesian velocity waypoint motion. More...
 
class  CartesianWaypointMotion
 Cartesian waypoint motion. More...
 
class  Condition
 A condition on the robot state. More...
 
class  DynamicsLimit
 A template class representing a dynamics limit with a maximum value. More...
 
class  ElbowState
 Elbow state of the robot. More...
 
struct  Errors
 franka::Errors with noexcept copy and assignment. More...
 
struct  FrictionCompensationParams
 
class  Gripper
 A wrapper around the franka::Gripper class that adds asynchronous functionality. More...
 
struct  GripperException
 Exception thrown by the gripper class. More...
 
struct  InvalidMotionTypeException
 Exception thrown when an invalid motion type is used. More...
 
class  JointImpedanceBase
 Base class for client-side joint impedance motions. More...
 
struct  JointImpedanceGains
 
class  JointImpedanceMotion
 Client-side joint impedance controller. More...
 
struct  JointImpedanceParams
 Parameters for joint impedance motions. More...
 
class  JointImpedanceTrackingMotion
 Client-side joint impedance controller with a dynamic online reference. More...
 
class  JointMotion
 Joint motion with a single target. More...
 
struct  JointReference
 Joint-space reference for joint impedance motions. More...
 
class  JointState
 Joint state of a robot. More...
 
class  JointVelocityMotion
 Joint velocity motion with a single target. More...
 
class  JointVelocityWaypointMotion
 Joint velocity waypoint motion. More...
 
class  JointWaypointMotion
 Joint waypoint motion. More...
 
struct  ManipulabilityTask
 Manipulability maximization objective projected into the Cartesian nullspace. More...
 
class  Measure
 A measure on the robot state. More...
 
class  Model
 A wrapper around franka::Model that uses Eigen types. More...
 
class  Motion
 Base class for motions. More...
 
class  MotionGenerator
 Helper class for handling motions and reactions. More...
 
struct  MotionPlannerException
 Exception thrown if the motion planner fails. More...
 
struct  MotionReuseException
 Exception thrown when a motion is started more than once. More...
 
struct  NullspaceGains
 Runtime-adjustable gains for a nullspace task. More...
 
struct  PositionWaypoint
 A position waypoint with a target and optional parameters. More...
 
class  PositionWaypointMotion
 A motion following multiple positional waypoints in a time-optimal way. Works with arbitrary initial conditions. More...
 
struct  PostureTask
 Joint-posture objective projected into the Cartesian nullspace. More...
 
class  Reaction
 A reaction that can be attached to a motion. More...
 
struct  ReactionRecursionException
 Exception thrown when the reaction recursion limit (8) is reached. More...
 
class  RelativeDynamicsFactor
 Relative dynamics factors. More...
 
class  Robot
 A class representing a Franka robot. More...
 
class  RobotPose
 Cartesian pose of a robot. More...
 
struct  RobotState
 Full state of the robot. More...
 
class  RobotStateEstimator
 
class  RobotVelocity
 Cartesian velocity of a robot. More...
 
class  scope_guard
 A scope guard that executes a function when it goes out of scope. More...
 
class  StopMotion
 
class  StopMotion< franka::CartesianPose >
 Stop motion for cartesian pose control mode. More...
 
class  StopMotion< franka::CartesianVelocities >
 Stop motion for cartesian velocity control mode. More...
 
class  StopMotion< franka::JointPositions >
 Stop motion for joint position control mode. More...
 
class  StopMotion< franka::JointVelocities >
 Stop motion for joint velocity position control mode. More...
 
class  StopMotion< franka::Torques >
 Graceful stop for torque-control (impedance) motions. More...
 
struct  TorqueSafetyParams
 
struct  TorqueStopParams
 Parameters for the torque-control stop motion (StopMotion<franka::Torques>). More...
 
class  Twist
 Twist of a frame. More...
 
class  TwistAcceleration
 TwistAcceleration acceleration of a frame (2nd derivative of a pose). More...
 
class  VelocityWaypointMotion
 A motion following multiple positional waypoints in a time-optimal way. Works with arbitrary initial conditions. More...
 
class  WaitFreeTripleBuffer
 Wait-free, Single-Producer Single-Consumer (SPSC) triple buffer. More...
 
struct  Waypoint
 A waypoint with a target and optional parameters. More...
 
class  WaypointMotion
 A motion following multiple waypoints in a time-optimal way. Works with arbitrary initial conditions. More...
 

Typedefs

using NullspaceTask = std::variant< PostureTask, ManipulabilityTask >
 
using ImpedanceMotion = CartesianImpedanceBase
 
using CartesianReferenceHandle = WaitFreeTripleBuffer< std::optional< CartesianReference > >
 Double-buffered handle for updating a CartesianReference online.
 
using JointReferenceHandle = WaitFreeTripleBuffer< std::optional< JointReference > >
 Double-buffered handle for updating a JointReference online.
 
template<typename TargetType >
using VelocityWaypoint = Waypoint< TargetType >
 A velocity waypoint with a target.
 
using Vector6d = Eigen::Vector< double, 6 >
 
using Vector7d = Eigen::Vector< double, 7 >
 
using Jacobian = Eigen::Matrix< double, 6, 7 >
 
using IntertiaMatrix = Eigen::Matrix< double, 3, 3 >
 
using Matrix6d = Eigen::Matrix< double, 6, 6 >
 
using Affine = Eigen::Affine3d
 
template<size_t dims>
using Array = std::variant< std::array< double, dims >, Eigen::Vector< double, dims > >
 
template<size_t dims>
using ScalarOrArray = std::variant< double, Array< dims > >
 

Enumerations

enum  ControlSignalType {
  Torques , JointVelocities , JointPositions , CartesianVelocities ,
  CartesianPose
}
 Type of control signal. More...
 
enum class  FlipDirection { kNegative = -1 , kNeutral = 0 , kPositive = 1 }
 Flip direction of a joint. More...
 
enum class  ReferenceType { kAbsolute , kRelative }
 Enum class for reference types. More...
 

Functions

std::ostream & operator<< (std::ostream &os, const DynamicsLimit< Vector7d > &limit)
 
std::ostream & operator<< (std::ostream &os, const ElbowState &elbow_state)
 
std::ostream & operator<< (std::ostream &os, const FlipDirection &flip_direction)
 
Condition operator&& (const Condition &c1, const Condition &c2)
 
Condition operator|| (const Condition &c1, const Condition &c2)
 
Condition operator== (const Condition &c1, const Condition &c2)
 
Condition operator!= (const Condition &c1, const Condition &c2)
 
Condition operator! (const Condition &c)
 
Measure measure_pow (const Measure &base, const Measure &exponent)
 
Measure operator- (const Measure &m)
 
std::ostream & operator<< (std::ostream &os, const RobotPose &robot_pose)
 
std::ostream & operator<< (std::ostream &os, const RobotVelocity &robot_velocity)
 
void checkRes (int res, const std::string &msg)
 
void patchMutexRT (std::mutex &mutex)
 Patch std::mutex to allow for priority inheritance.
 
CartesianState operator* (const Affine &transform, const CartesianState &cartesian_state)
 
std::ostream & operator<< (std::ostream &os, const CartesianState &cartesian_state)
 
template<typename LimitTypeStream >
std::ostream & operator<< (std::ostream &os, const DynamicsLimit< LimitTypeStream > &dynamics_limit)
 
std::ostream & operator<< (std::ostream &os, const JointState &joint_state)
 
Matrix6d cartesianGainBlocks (double translational, double rotational)
 
Matrix6d defaultCartesianImpedanceStiffness ()
 
Matrix6d defaultCartesianImpedanceDamping (const Matrix6d &stiffness)
 
Vector7d defaultJointImpedanceStiffness ()
 
Vector7d defaultJointImpedanceDamping (const Vector7d &stiffness)
 
Vector7d defaultJointImpedanceDamping ()
 
Condition operator== (const Measure &m1, const Measure &m2)
 
Condition operator!= (const Measure &m1, const Measure &m2)
 
Condition operator<= (const Measure &m1, const Measure &m2)
 
Condition operator>= (const Measure &m1, const Measure &m2)
 
Condition operator< (const Measure &m1, const Measure &m2)
 
Condition operator> (const Measure &m1, const Measure &m2)
 
Measure operator+ (const Measure &m1, const Measure &m2)
 
Measure operator- (const Measure &m1, const Measure &m2)
 
Measure operator* (const Measure &m1, const Measure &m2)
 
Measure operator/ (const Measure &m1, const Measure &m2)
 
void validateNonNegativeFinite (double value, const char *name)
 Throw std::invalid_argument if value is negative or non-finite.
 
template<typename Derived >
void validateFinite (const Eigen::MatrixBase< Derived > &values, const char *name)
 Throw std::invalid_argument if any element of values is non-finite.
 
void validateNonNegativeFinite (const Vector7d &values, const char *name)
 Throw std::invalid_argument if any element of values is negative or non-finite.
 
Vector7d saturateTorqueRate (const Vector7d &tau_d_calculated, const Vector7d &tau_reference, double max_delta_tau)
 
Vector7d computeJointLimitTorque (const Vector7d &q, const Vector7d &dq, const Vector7d &lower_joint_limits, const Vector7d &upper_joint_limits, double joint_limit_activation_distance, double joint_limit_stiffness, double joint_limit_damping, double joint_limit_max_torque)
 
Vector7d computeFrictionCompensation (const Vector7d &dq, const FrictionCompensationParams &params)
 
RobotPose operator* (const RobotPose &robot_pose, const Affine &right_transform)
 
RobotPose operator* (const Affine &left_transform, const RobotPose &robot_pose)
 
RobotVelocity operator* (const Affine &affine, const RobotVelocity &robot_velocity)
 
template<typename RotationMatrixType >
RobotVelocity operator* (const RotationMatrixType &rotation, const RobotVelocity &robot_velocity)
 
Twist operator* (const Affine &affine, const Twist &twist)
 
template<typename RotationMatrixType >
Twist operator* (const RotationMatrixType &rotation, const Twist &twist)
 
std::ostream & operator<< (std::ostream &os, const Twist &twist)
 
TwistAcceleration operator* (const Affine &affine, const TwistAcceleration &twist_acceleration)
 
template<typename RotationMatrixType >
TwistAcceleration operator* (const RotationMatrixType &rotation, const TwistAcceleration &twist_acceleration)
 
std::ostream & operator<< (std::ostream &os, const TwistAcceleration &twist_acceleration)
 
template<typename T , size_t dims>
std::array< T, dimstoStd (const Eigen::Matrix< T, dims, 1 > &vector)
 
template<size_t dims>
std::array< double, dims > toStdD (const Eigen::Matrix< double, dims, 1 > &vector)
 
template<typename T , size_t dims>
Eigen::Matrix< T, dims, 1 > toEigen (const std::array< T, dims > &vector)
 
template<size_t dims>
Eigen::Matrix< double, dims, 1 > toEigenD (const std::array< double, dims > &vector)
 
template<size_t rows, size_t cols>
std::array< double, rows *colstoStdDMatD (const Eigen::Matrix< double, rows, cols, Eigen::ColMajor > &matrix)
 
template<size_t rows, size_t cols>
Eigen::Matrix< double, rows, cols, Eigen::ColMajor > toEigenMatD (const std::array< double, rows *cols > &array)
 
Affine stdToAffine (const std::array< double, 16 > &array)
 
template<size_t dims>
Eigen::Vector< double, dimsensureEigen (const Array< dims > &input)
 
template<size_t dims>
std::array< double, dimsensureStd (const Array< dims > &input)
 
template<size_t dims>
std::array< double, dimsexpand (const ScalarOrArray< dims > &input)
 
template<size_t dims>
Eigen::Vector< double, dimsexpandEigen (const ScalarOrArray< dims > &input)
 
template<int dims>
std::ostream & operator<< (std::ostream &os, const Eigen::Vector< double, dims > &vec)
 
std::ostream & operator<< (std::ostream &os, const Affine &affine)
 
std::ostream & operator<< (std::ostream &os, const franka::Duration &duration)
 

Typedef Documentation

◆ Affine

using franky::Affine = typedef Eigen::Affine3d

◆ Array

template<size_t dims>
using franky::Array = typedef std::variant<std::array<double, dims>, Eigen::Vector<double, dims> >

◆ CartesianReferenceHandle

Double-buffered handle for updating a CartesianReference online.

This handle is intended to be written from a user thread while a single CartesianImpedanceTrackingMotion is running. The motion reads the latest valid reference each control cycle without needing to replace the motion object.

◆ ImpedanceMotion

◆ IntertiaMatrix

using franky::IntertiaMatrix = typedef Eigen::Matrix<double, 3, 3>

◆ Jacobian

using franky::Jacobian = typedef Eigen::Matrix<double, 6, 7>

◆ JointReferenceHandle

Double-buffered handle for updating a JointReference online.

This handle is intended to be written from a user thread while a single JointImpedanceTrackingMotion is running. The motion reads the latest valid reference each control cycle without needing to replace the motion object.

◆ Matrix6d

using franky::Matrix6d = typedef Eigen::Matrix<double, 6, 6>

◆ NullspaceTask

◆ ScalarOrArray

template<size_t dims>
using franky::ScalarOrArray = typedef std::variant<double, Array<dims> >

◆ Vector6d

using franky::Vector6d = typedef Eigen::Vector<double, 6>

◆ Vector7d

using franky::Vector7d = typedef Eigen::Vector<double, 7>

◆ VelocityWaypoint

A velocity waypoint with a target.

Template Parameters
TargetTypeThe type of the target.

Enumeration Type Documentation

◆ ControlSignalType

Type of control signal.

Enumerator
Torques 
JointVelocities 
JointPositions 
CartesianVelocities 
CartesianPose 

◆ FlipDirection

Flip direction of a joint.

Enumerator
kNegative 
kNeutral 
kPositive 

◆ ReferenceType

Enum class for reference types.

This enum class defines the reference types for motions (absolute or relative).

Enumerator
kAbsolute 
kRelative 

Function Documentation

◆ cartesianGainBlocks()

Matrix6d franky::cartesianGainBlocks ( double  translational,
double  rotational 
)
inline

◆ checkRes()

void franky::checkRes ( int  res,
const std::string &  msg 
)

Common helper function to handle error checking for system calls.

Parameters
resResult of the call.
msgMessage to print for error.

◆ computeFrictionCompensation()

Vector7d franky::computeFrictionCompensation ( const Vector7d dq,
const FrictionCompensationParams params 
)
inline

◆ computeJointLimitTorque()

Vector7d franky::computeJointLimitTorque ( const Vector7d q,
const Vector7d dq,
const Vector7d lower_joint_limits,
const Vector7d upper_joint_limits,
double  joint_limit_activation_distance,
double  joint_limit_stiffness,
double  joint_limit_damping,
double  joint_limit_max_torque 
)
inline

◆ defaultCartesianImpedanceDamping()

Matrix6d franky::defaultCartesianImpedanceDamping ( const Matrix6d stiffness)
inline

◆ defaultCartesianImpedanceStiffness()

Matrix6d franky::defaultCartesianImpedanceStiffness ( )
inline

◆ defaultJointImpedanceDamping() [1/2]

Vector7d franky::defaultJointImpedanceDamping ( )
inline

◆ defaultJointImpedanceDamping() [2/2]

Vector7d franky::defaultJointImpedanceDamping ( const Vector7d stiffness)
inline

◆ defaultJointImpedanceStiffness()

Vector7d franky::defaultJointImpedanceStiffness ( )
inline

◆ ensureEigen()

template<size_t dims>
Eigen::Vector< double, dims > franky::ensureEigen ( const Array< dims > &  input)

◆ ensureStd()

template<size_t dims>
std::array< double, dims > franky::ensureStd ( const Array< dims > &  input)

◆ expand()

template<size_t dims>
std::array< double, dims > franky::expand ( const ScalarOrArray< dims > &  input)

◆ expandEigen()

template<size_t dims>
Eigen::Vector< double, dims > franky::expandEigen ( const ScalarOrArray< dims > &  input)

◆ measure_pow()

Measure franky::measure_pow ( const Measure base,
const Measure exponent 
)

◆ operator!()

Condition franky::operator! ( const Condition c)

◆ operator!=() [1/2]

◆ operator!=() [2/2]

◆ operator&&()

◆ operator*() [1/10]

RobotVelocity franky::operator* ( const Affine affine,
const RobotVelocity robot_velocity 
)
inline

◆ operator*() [2/10]

Twist franky::operator* ( const Affine affine,
const Twist twist 
)
inline

◆ operator*() [3/10]

TwistAcceleration franky::operator* ( const Affine affine,
const TwistAcceleration twist_acceleration 
)
inline

◆ operator*() [4/10]

RobotPose franky::operator* ( const Affine left_transform,
const RobotPose robot_pose 
)
inline

◆ operator*() [5/10]

CartesianState franky::operator* ( const Affine transform,
const CartesianState cartesian_state 
)
inline

◆ operator*() [6/10]

◆ operator*() [7/10]

RobotPose franky::operator* ( const RobotPose robot_pose,
const Affine right_transform 
)
inline

◆ operator*() [8/10]

RobotVelocity franky::operator* ( const RotationMatrixType rotation,
const RobotVelocity robot_velocity 
)
inline

◆ operator*() [9/10]

◆ operator*() [10/10]

◆ operator+()

◆ operator-() [1/2]

◆ operator-() [2/2]

◆ operator/()

◆ operator<()

◆ operator<<() [1/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const Affine affine 
)
inline

◆ operator<<() [2/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const CartesianState cartesian_state 
)
inline

◆ operator<<() [3/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const DynamicsLimit< LimitTypeStream > &  dynamics_limit 
)

◆ operator<<() [4/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const DynamicsLimit< Vector7d > &  limit 
)

◆ operator<<() [5/13]

template<int dims>
std::ostream & franky::operator<< ( std::ostream &  os,
const Eigen::Vector< double, dims > &  vec 
)

◆ operator<<() [6/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const ElbowState elbow_state 
)

◆ operator<<() [7/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const FlipDirection flip_direction 
)

◆ operator<<() [8/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const franka::Duration &  duration 
)
inline

◆ operator<<() [9/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const JointState joint_state 
)
inline

◆ operator<<() [10/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const RobotPose robot_pose 
)

◆ operator<<() [11/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const RobotVelocity robot_velocity 
)

◆ operator<<() [12/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const Twist twist 
)
inline

◆ operator<<() [13/13]

std::ostream & franky::operator<< ( std::ostream &  os,
const TwistAcceleration twist_acceleration 
)
inline

◆ operator<=()

◆ operator==() [1/2]

◆ operator==() [2/2]

◆ operator>()

◆ operator>=()

◆ operator||()

◆ patchMutexRT()

void franky::patchMutexRT ( std::mutex &  mutex)

Patch std::mutex to allow for priority inheritance.

Priority inheritance ensures that the thread currently holding this mutex receives the same priority as the highest priority thread waiting for it.

Parameters
mutexMutex to patch.

◆ saturateTorqueRate()

Vector7d franky::saturateTorqueRate ( const Vector7d tau_d_calculated,
const Vector7d tau_reference,
double  max_delta_tau 
)
inline

◆ stdToAffine()

Affine franky::stdToAffine ( const std::array< double, 16 > &  array)
inline

◆ toEigen()

template<typename T , size_t dims>
Eigen::Matrix< T, dims, 1 > franky::toEigen ( const std::array< T, dims > &  vector)

◆ toEigenD()

template<size_t dims>
Eigen::Matrix< double, dims, 1 > franky::toEigenD ( const std::array< double, dims > &  vector)

◆ toEigenMatD()

template<size_t rows, size_t cols>
Eigen::Matrix< double, rows, cols, Eigen::ColMajor > franky::toEigenMatD ( const std::array< double, rows *cols > &  array)

◆ toStd()

template<typename T , size_t dims>
std::array< T, dims > franky::toStd ( const Eigen::Matrix< T, dims, 1 > &  vector)

◆ toStdD()

template<size_t dims>
std::array< double, dims > franky::toStdD ( const Eigen::Matrix< double, dims, 1 > &  vector)

◆ toStdDMatD()

template<size_t rows, size_t cols>
std::array< double, rows *cols > franky::toStdDMatD ( const Eigen::Matrix< double, rows, cols, Eigen::ColMajor > &  matrix)

◆ validateFinite()

template<typename Derived >
void franky::validateFinite ( const Eigen::MatrixBase< Derived > &  values,
const char name 
)
inline

Throw std::invalid_argument if any element of values is non-finite.

◆ validateNonNegativeFinite() [1/2]

void franky::validateNonNegativeFinite ( const Vector7d values,
const char name 
)
inline

Throw std::invalid_argument if any element of values is negative or non-finite.

◆ validateNonNegativeFinite() [2/2]

void franky::validateNonNegativeFinite ( double  value,
const char name 
)
inline

Throw std::invalid_argument if value is negative or non-finite.