Exotica
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
exotica Namespace Reference

Namespaces

 visualization
 

Classes

class  AbstractDDPSolver
 
class  AbstractDynamicsSolver
 
class  AbstractFeasibilityDrivenDDPSolver
 
class  AbstractTimeIndexedProblem
 
class  AICOSolver
 Solves motion planning problem using Approximate Inference Control method. More...
 
class  AllowedCollisionMatrix
 
class  AnalyticDDPSolver
 
struct  AttachedObject
 
class  AvoidLookAtSphere
 Avoids pointing end-effector at a given spherical object. More...
 
class  BayesianIKSolver
 Solves motion planning problem using Approximate Inference Control method. More...
 
class  BKPIECESolver
 
class  BoundedEndPoseProblem
 Bound constrained end-pose problem implementation. More...
 
class  BoundedTimeIndexedProblem
 Bound constrained time-indexed problem. More...
 
struct  BoxQPSolution
 
class  CartpoleDynamicsSolver
 
class  CenterOfMass
 
class  CollisionCheck
 
class  CollisionDistance
 
struct  CollisionProxy
 
class  CollisionScene
 The class of collision scene. More...
 
class  CollisionSceneFCLLatest
 
struct  ContinuousCollisionProxy
 
class  ContinuousJointPose
 
class  ControlKPIECESolver
 
class  ControlLimitedDDPSolver
 
class  ControlLimitedFeasibilityDrivenDDPSolver
 
class  ControlRegularization
 
class  ControlRRTSolver
 
class  Distance
 
class  DistanceToLine2D
 
class  DoubleIntegratorDynamicsSolver
 
class  DynamicTimeIndexedShootingProblem
 
class  EffAxisAlignment
 
class  EffBox
 Limits every given end-effector motion to a box in some reference frame. More...
 
class  EffFrame
 
class  EffOrientation
 
class  EffPosition
 
class  EffPositionXY
 
class  EffVelocity
 
class  EndPoseProblem
 Arbitrarily constrained end-pose problem implementation. More...
 
struct  EndPoseTask
 
class  ESTSolver
 
class  Exception
 
class  Factory
 Templated Object factory for Default-constructible classes. The Factory is itself a singleton. More...
 
class  FeasibilityDrivenDDPSolver
 
class  FeedbackMotionSolver
 
struct  FunctorBase
 
class  GazeAtConstraint
 Keeps a given point within field of view of the end-effector. More...
 
class  IKSolver
 Weighted and Regularized Pseudo-Inverse Inverse Kinematics Solver The solver solves a weighted and regularised pseudo-inverse problem. It uses backtracking line-search and adaptive regularization. More...
 
class  ILQGSolver
 
class  ILQRSolver
 
class  Initializer
 
class  InitializerBase
 
class  Instantiable
 
class  InstantiableBase
 
class  InteractionMesh
 
class  JointAccelerationBackwardDifference
 Time-derivative estimation by backward differencing. JointAccelerationBackwardDifference uses backward differencing to estimate the second time derivative of the joint state. More...
 
class  JointJerkBackwardDifference
 Time-derivative estimation by backward differencing. JointJerkBackwardDifference uses backward differencing to estimate the third time derivative of the joint state. More...
 
class  JointLimit
 Implementation of joint limits task map. Note: we dont want to always stay at the centre of the joint range, be lazy as long as the joint is not too close to the low/high limits. More...
 
class  JointPose
 
class  JointTorqueMinimizationProxy
 
class  JointVelocityBackwardDifference
 Time-derivative estimation by backward differencing. JointVelocityBackwardDifference uses backward differencing to estimate the first time derivative of the joint state. More...
 
class  JointVelocityLimit
 Joint Velocity Limit taskmap for time-indexed problems. Penalisations of joint velocity limit violation within a specified percentage of the velocity limit. More...
 
class  JointVelocityLimitConstraint
 Joint velocity limit task map for non time-indexed problems. More...
 
class  KinematicElement
 
struct  KinematicFrame
 
struct  KinematicFrameRequest
 
struct  KinematicResponse
 The KinematicResponse is the container to keep kinematic update data. The corresponding KinematicSolution is created from and indexes into a KinematicResponse. More...
 
class  KinematicSolution
 The KinematicSolution is created from - and maps into - a KinematicResponse. More...
 
struct  KinematicsRequest
 
class  KinematicTree
 
class  KPIECESolver
 
class  LazyPRMSolver
 
class  LBTRRTSolver
 
class  LevenbergMarquardtSolver
 
class  LookAt
 Points end-effector to look at a given target by aligning end-effector z-axis with the target. Looks at a target point by penalizing the vector which defines the orthogonal projection onto a defined line in the end-effector frame. More...
 
class  Manipulability
 Manipulability measure. The manipulability measure for a robot at a given joint configuration indicates dexterity, that is, how isotropic the robot's motion is with respect to the task space motion. The measure is high when the manipulator is capable of equal motion in all directions and low when the manipulator is close to a singularity. This task map implements Yoshikawa's manipulability measure. More...
 
class  MotionSolver
 
class  Object
 
class  OMPLControlSolver
 
class  OMPLDubinsRNStateSpace
 
class  OMPLRNProjection
 
class  OMPLRNStateSpace
 
class  OMPLSE2RNProjection
 
class  OMPLSE2RNStateSpace
 
class  OMPLSE3RNProjection
 
class  OMPLSE3RNStateSpace
 
class  OMPLSolver
 
class  OMPLStatePropagator
 
class  OMPLStateSpace
 
class  OMPLStateValidityChecker
 
class  OMPLTimeIndexedRNStateSpace
 
class  OMPLTimeIndexedRRTConnect
 
class  OMPLTimeIndexedStateValidityChecker
 
class  PendulumDynamicsSolver
 
class  PinocchioDynamicsSolver
 
class  PinocchioDynamicsSolverWithGravityCompensation
 
class  PlanningProblem
 
class  PointToLine
 
class  PointToPlane
 PointToPlane TaskMap: Penalises the z-distance between two frames - or the distance of a point (represented by the Link frame) spanned by the normal represented through the z-axis of a second frame (represented by the Base frame). More...
 
class  Printable
 
class  PRMSolver
 
class  Property
 
class  QuadrotorDynamicsSolver
 Quadrotor dynamics with quaternion representation Based on D. Mellinger, N. Michael, and V. Kumar, "Trajectory generation and control for precise aggressive maneuvers with quadrotors", Proceedings of the 12th International Symposium on Experimental Robotics (ISER 2010), 2010. Cf. https://journals.sagepub.com/doi/abs/10.1177/0278364911434236. More...
 
class  QuasiStatic
 
class  Registrar
 Registration Class for the object type: Also templated: More...
 
class  RosNode
 
class  RRTConnectSolver
 
class  RRTSolver
 
class  RRTStarSolver
 
class  SamplingProblem
 
struct  SamplingTask
 
class  Scene
 The class of EXOTica Scene. More...
 
class  Server
 
class  Setup
 
class  SinglePassMeanCovariance
 
class  SmoothCollisionDistance
 
class  SolveException
 
class  SphereCollision
 
class  SumOfPenetrations
 
struct  Task
 
struct  TaskIndexing
 
class  TaskMap
 
struct  TaskSpaceVector
 
struct  TaskVectorEntry
 
class  TestCout
 
class  TimeIndexedProblem
 Time-indexed problem with bound, joint velocity, and general equality/inequality constraints. More...
 
class  TimeIndexedRRTConnectSolver
 
class  TimeIndexedSamplingProblem
 
struct  TimeIndexedTask
 
class  Timer
 
class  Trajectory
 
class  UnconstrainedEndPoseProblem
 
class  UnconstrainedTimeIndexedProblem
 Unconstrained time-indexed problem. More...
 
class  Uncopyable
 
class  VariableSizeCollisionDistance
 
class  VisualElement
 
class  VisualizationMeshcat
 
class  VisualizationMoveIt
 
class  XMLLoader
 

Typedefs

typedef boost::function< ompl::base::PlannerPtr(const ompl::base::SpaceInformationPtr &si, const std::string &name)> ConfiguredPlannerAllocator
 
typedef std::shared_ptr< CollisionSceneCollisionScenePtr
 
typedef AbstractDynamicsSolver< double, Eigen::Dynamic, Eigen::Dynamic > DynamicsSolver
 
typedef std::shared_ptr< exotica::DynamicsSolverDynamicsSolverPtr
 
typedef std::shared_ptr< exotica::MotionSolverMotionSolverPtr
 
typedef Factory< PlanningProblemPlanningProblemFac
 
typedef std::shared_ptr< PlanningProblemPlanningProblemPtr
 
typedef std::shared_ptr< const PlanningProblemPlanningProblemConstPtr
 
typedef std::shared_ptr< exotica::BoundedEndPoseProblemBoundedEndPoseProblemPtr
 
typedef std::shared_ptr< exotica::BoundedTimeIndexedProblemBoundedTimeIndexedProblemPtr
 
typedef std::shared_ptr< exotica::DynamicTimeIndexedShootingProblemDynamicTimeIndexedShootingProblemPtr
 
typedef std::shared_ptr< exotica::EndPoseProblemEndPoseProblemPtr
 
typedef std::shared_ptr< exotica::SamplingProblemSamplingProblemPtr
 
typedef std::shared_ptr< exotica::TimeIndexedProblemTimeIndexedProblemPtr
 
typedef std::shared_ptr< exotica::TimeIndexedSamplingProblemTimeIndexedSamplingProblemPtr
 
typedef std::shared_ptr< exotica::UnconstrainedEndPoseProblemUnconstrainedEndPoseProblemPtr
 
typedef std::shared_ptr< exotica::UnconstrainedTimeIndexedProblemUnconstrainedTimeIndexedProblemPtr
 
typedef std::shared_ptr< SceneScenePtr
 
typedef std::shared_ptr< ServerServerPtr
 
typedef std::shared_ptr< SetupSetupPtr
 
typedef std::shared_ptr< TaskMapTaskMapPtr
 Task Map smart pointer. More...
 
typedef std::map< std::string, TaskMapPtrTaskMapMap
 The mapping by name of TaskMaps. More...
 
typedef std::vector< TaskMapPtrTaskMapVec
 
typedef struct exotica::BoxQPSolution BoxQPSolution
 
typedef Eigen::Array< KDL::Frame, Eigen::Dynamic, 1 > ArrayFrame
 
typedef Eigen::Array< KDL::Twist, Eigen::Dynamic, 1 > ArrayTwist
 
typedef Eigen::Array< KDL::Jacobian, Eigen::Dynamic, 1 > ArrayJacobian
 
typedef Eigen::Array< Eigen::MatrixXd, Eigen::Dynamic, 1 > Hessian
 
typedef Eigen::Array< Eigen::Array< Eigen::MatrixXd, Eigen::Dynamic, 1 >, Eigen::Dynamic, 1 > ArrayHessian
 
typedef Eigen::Ref< ArrayFrameArrayFrameRef
 
typedef Eigen::Ref< ArrayTwistArrayTwistRef
 
typedef Eigen::Ref< ArrayJacobianArrayJacobianRef
 
typedef Eigen::Ref< HessianHessianRef
 
typedef Eigen::Ref< ArrayHessianArrayHessianRef
 
typedef Eigen::internal::ref_selector< ArrayFrame >::type ArrayFrameRefConst
 
typedef Eigen::internal::ref_selector< ArrayTwist >::type ArrayTwistRefConst
 
typedef Eigen::internal::ref_selector< ArrayJacobian >::type ArrayJacobianRefConst
 
typedef Eigen::internal::ref_selector< Hessian >::type HessianRefConst
 
typedef Eigen::internal::ref_selector< ArrayHessian >::type ArrayHessianRefConst
 
typedef FunctorBase< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::Dynamic > Functor
 

Enumerations

enum  Integrator { RK1 = 0, SymplecticEuler, RK2, RK4 }
 
enum  BaseType { FIXED = 0, FLOATING = 10, PLANAR = 20 }
 
enum  KinematicRequestFlags { KIN_FK = 0, KIN_J = 2, KIN_FK_VEL = 4, KIN_H = 8 }
 
enum  JointLimitType { LIMIT_POSITION_LOWER = 0, LIMIT_POSITION_UPPER = 1 }
 
enum  TerminationCriterion {
  TerminationCriterion::NotStarted = -1, TerminationCriterion::IterationLimit, TerminationCriterion::BacktrackIterationLimit, TerminationCriterion::StepTolerance,
  TerminationCriterion::FunctionTolerance, TerminationCriterion::GradientTolerance, TerminationCriterion::Divergence, TerminationCriterion::UserDefined,
  TerminationCriterion::Convergence
}
 
enum  ControlCostLossTermType {
  Undefined = -1, L2 = 0, SmoothL1 = 1, Huber = 2,
  PseudoHuber = 3
}
 
enum  RotationType {
  RotationType::QUATERNION, RotationType::RPY, RotationType::ZYX, RotationType::ZYZ,
  RotationType::ANGLE_AXIS, RotationType::MATRIX
}
 
enum  ArgumentPosition {
  ARG0 = 0, ARG1 = 1, ARG2 = 2, ARG3 = 3,
  ARG4 = 4
}
 Argument position. Used as parameter to refer to an argument. More...
 

Functions

double DetDiff2D (Eigen::VectorXdRefConst p1, Eigen::VectorXdRefConst p2, Eigen::VectorXdRefConst p)
 DetDiff2D Computes the 2D determinant (analogous to a 2D cross product) of a two vectors defined by P_1P_2 and P_1P. More...
 
std::list< int > QuickHull (Eigen::MatrixXdRefConst points, std::list< int > &half_points, int p1, int p2)
 
std::list< int > ConvexHull2D (Eigen::MatrixXdRefConst points)
 
void PointToLineDistance (const Eigen::Vector2d &P1, const Eigen::Vector2d &P2, const Eigen::Vector2d &P3, double &d)
 Computes the signed distance between a point and a line defined by two points in 2D. More...
 
void PointToLineDistanceDerivative (const Eigen::Vector2d &P1, const Eigen::Vector2d &P2, const Eigen::Vector2d &P3, const Eigen::MatrixXd &dP1_dq, const Eigen::MatrixXd &dP2_dq, const Eigen::MatrixXd &dP3_dq, Eigen::Ref< Eigen::MatrixXd > &derivative)
 Derivative of signed distance between a point and a line defined by two points in 2D. More...
 
template<typename T1 , typename T2 >
static void inverseSymPosDef (T1 &Ainv, const T2 &A)
 Computes an inverse of a symmetric positive definite matrix. More...
 
template<typename T1 , typename T2 , typename T3 >
static void AinvBSymPosDef (T1 &x, const T2 &A, const T3 &b)
 Computes the solution to the linear problem $x=Ab$ for symmetric positive definite matrix A. More...
 
KinematicRequestFlags operator| (KinematicRequestFlags a, KinematicRequestFlags b)
 
KinematicRequestFlags operator& (KinematicRequestFlags a, KinematicRequestFlags b)
 
BoxQPSolution BoxQP (const Eigen::MatrixXd &H, const Eigen::VectorXd &q, const Eigen::VectorXd &b_low, const Eigen::VectorXd &b_high, const Eigen::VectorXd &x_init, const double th_acceptstep, const int max_iterations, const double th_gradient_tolerance, const double lambda, bool use_polynomial_linesearch=true, bool use_cholesky_factorization=true)
 
BoxQPSolution BoxQP (const Eigen::MatrixXd &H, const Eigen::VectorXd &q, const Eigen::VectorXd &b_low, const Eigen::VectorXd &b_high, const Eigen::VectorXd &x_init)
 
BoxQPSolution ExoticaBoxQP (const Eigen::MatrixXd &H, const Eigen::VectorXd &q, const Eigen::VectorXd &b_low, const Eigen::VectorXd &b_high, const Eigen::VectorXd &x_init, const double gamma, const int max_iterations, const double epsilon, const double lambda, bool use_polynomial_linesearch=false, bool use_cholesky_factorization=false)
 
BoxQPSolution ExoticaBoxQP (const Eigen::MatrixXd &H, const Eigen::VectorXd &q, const Eigen::VectorXd &b_low, const Eigen::VectorXd &b_high, const Eigen::VectorXd &x_init)
 
KDL::Rotation GetRotation (Eigen::VectorXdRefConst data, RotationType type)
 
Eigen::VectorXd SetRotation (const KDL::Rotation &data, RotationType type)
 
int GetRotationTypeLength (const RotationType &type)
 
RotationType GetRotationTypeFromString (const std::string &rotation_type)
 
KDL::Frame GetFrame (Eigen::VectorXdRefConst val)
 
KDL::Frame GetFrameFromMatrix (Eigen::MatrixXdRefConst val)
 
Eigen::MatrixXd GetFrame (const KDL::Frame &val)
 
Eigen::VectorXd GetFrameAsVector (const KDL::Frame &val, RotationType type=RotationType::RPY)
 
Eigen::VectorXd GetRotationAsVector (const KDL::Frame &val, RotationType type)
 
void NormalizeQuaternionInConfigurationVector (Eigen::Ref< Eigen::VectorXd > q)
 
void SetDefaultQuaternionInConfigurationVector (Eigen::Ref< Eigen::VectorXd > q)
 
bool IsContainerType (std::string type)
 
bool IsVectorType (std::string type)
 
bool IsVectorContainerType (std::string type)
 
template<class Key , class Val >
std::vector< Val > MapToVec (const std::map< Key, Val > &map)
 
template<class Key , class Val >
std::vector< Key > GetKeysFromMap (const std::map< Key, Val > &map)
 
template<class Key , class Val >
std::vector< Val > GetValuesFromMap (const std::map< Key, Val > &map)
 
template<class Key , class Val >
void AppendMap (std::map< Key, Val > &orig, const std::map< Key, Val > &extra)
 
template<class Val >
void AppendVector (std::vector< Val > &orig, const std::vector< Val > &extra)
 
std::string Trim (const std::string &s)
 
template<typename T >
ToNumber (const std::string &val)
 
template<>
float ToNumber< float > (const std::string &val)
 
template<>
double ToNumber< double > (const std::string &val)
 
template<>
int ToNumber< int > (const std::string &val)
 
template<typename T , const int S>
Eigen::Matrix< T, S, 1 > ParseVector (const std::string value)
 
bool ParseBool (const std::string value)
 
double ParseDouble (const std::string value)
 
int ParseInt (const std::string value)
 
std::vector< std::string > ParseList (const std::string &value, char token=',')
 
std::vector< int > ParseIntList (const std::string value)
 
std::vector< bool > ParseBoolList (const std::string value)
 
Exception::ReportingType operator| (Exception::ReportingType a, Exception::ReportingType b) noexcept
 
std::ostream & operator<< (std::ostream &os, const Printable &s)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const std::vector< T > &s)
 
template<typename I , typename T >
std::ostream & operator<< (std::ostream &os, const std::map< I, T > &s)
 
std::string ToString (const KDL::Frame &s)
 
std::string ToString (const Eigen::Isometry3d &s)
 
void PrintDimensions (const std::string &name, const Eigen::Ref< const Eigen::MatrixXd > m)
 
double huber_cost (double x, double beta)
 
double huber_jacobian (double x, double beta)
 
double huber_hessian (double x, double beta)
 
double smooth_l1_cost (double x, double beta)
 
double smooth_l1_jacobian (double x, double beta)
 
double smooth_l1_hessian (double x, double beta)
 
double pseudo_huber_cost (double x, double beta)
 
double pseudo_huber_jacobian (double x, double beta)
 
double pseudo_huber_hessian (double x, double beta)
 
void Sleep (double t)
 
std_msgs::ColorRGBA RandomColor ()
 RandomColor Generates random opaque color. More...
 
std_msgs::ColorRGBA GetColor (double r, double g, double b, double a=1.0)
 
std_msgs::ColorRGBA GetColor (const Eigen::Vector4d &rgba)
 
void LoadOBJ (const std::string &data, Eigen::VectorXi &tri, Eigen::VectorXd &vert)
 LoadOBJ Loads mesh data from an OBJ file. More...
 
std::shared_ptr< octomap::OcTree > LoadOctree (const std::string &file_path)
 
std::shared_ptr< shapes::Shape > LoadOctreeAsShape (const std::string &file_path)
 
void SaveMatrix (std::string file_name, const Eigen::Ref< const Eigen::MatrixXd > mat)
 
template<typename T >
std::vector< std::string > GetKeys (std::map< std::string, T > map)
 
std::string GetTypeName (const std::type_info &type)
 
std::string ParsePath (const std::string &path)
 
std::string LoadFile (const std::string &path)
 
bool PathExists (const std::string &path)
 

Variables

constexpr double inf = std::numeric_limits<double>::infinity()
 
constexpr double pi = M_PI
 
const char version []
 
const char branch []
 

Detailed Description

TODO: remove this pragma once Pinocchio removes neutralConfiguration/ and fixes their deprecation warnings. (Relates to #547) fwd.hpp needs to be included first (before Boost, which comes with ROS), else everything breaks for Pinocchio >=2.1.5

Typedef Documentation

◆ ArrayFrame

typedef Eigen::Array<KDL::Frame, Eigen::Dynamic, 1> exotica::ArrayFrame

◆ ArrayFrameRef

typedef Eigen::Ref<ArrayFrame> exotica::ArrayFrameRef

◆ ArrayFrameRefConst

typedef Eigen::internal::ref_selector<ArrayFrame>::type exotica::ArrayFrameRefConst

◆ ArrayHessian

typedef Eigen::Array<Eigen::Array<Eigen::MatrixXd, Eigen::Dynamic, 1>, Eigen::Dynamic, 1> exotica::ArrayHessian

◆ ArrayHessianRef

◆ ArrayHessianRefConst

typedef Eigen::internal::ref_selector<ArrayHessian>::type exotica::ArrayHessianRefConst

◆ ArrayJacobian

typedef Eigen::Array<KDL::Jacobian, Eigen::Dynamic, 1> exotica::ArrayJacobian

◆ ArrayJacobianRef

◆ ArrayJacobianRefConst

typedef Eigen::internal::ref_selector<ArrayJacobian>::type exotica::ArrayJacobianRefConst

◆ ArrayTwist

typedef Eigen::Array<KDL::Twist, Eigen::Dynamic, 1> exotica::ArrayTwist

◆ ArrayTwistRef

typedef Eigen::Ref<ArrayTwist> exotica::ArrayTwistRef

◆ ArrayTwistRefConst

typedef Eigen::internal::ref_selector<ArrayTwist>::type exotica::ArrayTwistRefConst

◆ BoundedEndPoseProblemPtr

◆ BoundedTimeIndexedProblemPtr

◆ BoxQPSolution

◆ CollisionScenePtr

typedef std::shared_ptr<CollisionScene> exotica::CollisionScenePtr

◆ ConfiguredPlannerAllocator

typedef boost::function<ompl::base::PlannerPtr(const ompl::base::SpaceInformationPtr &si, const std::string &name)> exotica::ConfiguredPlannerAllocator

◆ DynamicsSolver

typedef AbstractDynamicsSolver< double, Eigen::Dynamic, Eigen::Dynamic > exotica::DynamicsSolver

◆ DynamicsSolverPtr

◆ DynamicTimeIndexedShootingProblemPtr

◆ EndPoseProblemPtr

◆ Functor

typedef FunctorBase<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::Dynamic> exotica::Functor

◆ Hessian

typedef Eigen::Array<Eigen::MatrixXd, Eigen::Dynamic, 1> exotica::Hessian

◆ HessianRef

typedef Eigen::Ref<Hessian> exotica::HessianRef

◆ HessianRefConst

typedef Eigen::internal::ref_selector<Hessian>::type exotica::HessianRefConst

◆ MotionSolverPtr

◆ PlanningProblemConstPtr

typedef std::shared_ptr<const PlanningProblem> exotica::PlanningProblemConstPtr

◆ PlanningProblemFac

◆ PlanningProblemPtr

typedef std::shared_ptr<PlanningProblem> exotica::PlanningProblemPtr

◆ SamplingProblemPtr

◆ ScenePtr

typedef std::shared_ptr<Scene> exotica::ScenePtr

◆ ServerPtr

typedef std::shared_ptr<Server> exotica::ServerPtr

◆ SetupPtr

typedef std::shared_ptr<Setup> exotica::SetupPtr

◆ TaskMapMap

typedef std::map<std::string, TaskMapPtr> exotica::TaskMapMap

The mapping by name of TaskMaps.

◆ TaskMapPtr

typedef std::shared_ptr<TaskMap> exotica::TaskMapPtr

Task Map smart pointer.

◆ TaskMapVec

typedef std::vector<TaskMapPtr> exotica::TaskMapVec

◆ TimeIndexedProblemPtr

◆ TimeIndexedSamplingProblemPtr

◆ UnconstrainedEndPoseProblemPtr

◆ UnconstrainedTimeIndexedProblemPtr

Enumeration Type Documentation

◆ ArgumentPosition

Argument position. Used as parameter to refer to an argument.

Enumerator
ARG0 
ARG1 
ARG2 
ARG3 
ARG4 

◆ BaseType

Enumerator
FIXED 
FLOATING 
PLANAR 

◆ ControlCostLossTermType

Enumerator
Undefined 
L2 
SmoothL1 
Huber 
PseudoHuber 

◆ Integrator

Enumerator
RK1 

Forward Euler (explicit)

SymplecticEuler 

Semi-Implicit Euler.

RK2 

Explicit trapezoid rule.

RK4 

Runge-Kutta 4.

◆ JointLimitType

Enumerator
LIMIT_POSITION_LOWER 
LIMIT_POSITION_UPPER 

◆ KinematicRequestFlags

Enumerator
KIN_FK 
KIN_J 
KIN_FK_VEL 
KIN_H 

◆ RotationType

enum exotica::RotationType
strong
Enumerator
QUATERNION 
RPY 
ZYX 
ZYZ 
ANGLE_AXIS 
MATRIX 

◆ TerminationCriterion

Enumerator
NotStarted 
IterationLimit 
BacktrackIterationLimit 
StepTolerance 
FunctionTolerance 
GradientTolerance 
Divergence 
UserDefined 
Convergence 

Function Documentation

◆ AinvBSymPosDef()

template<typename T1 , typename T2 , typename T3 >
static void exotica::AinvBSymPosDef ( T1 &  x,
const T2 &  A,
const T3 &  b 
)
inlinestatic

Computes the solution to the linear problem $x=Ab$ for symmetric positive definite matrix A.

◆ AppendMap()

template<class Key , class Val >
void exotica::AppendMap ( std::map< Key, Val > &  orig,
const std::map< Key, Val > &  extra 
)

◆ AppendVector()

template<class Val >
void exotica::AppendVector ( std::vector< Val > &  orig,
const std::vector< Val > &  extra 
)

◆ BoxQP() [1/2]

BoxQPSolution exotica::BoxQP ( const Eigen::MatrixXd &  H,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  b_low,
const Eigen::VectorXd &  b_high,
const Eigen::VectorXd &  x_init 
)
inline

◆ BoxQP() [2/2]

BoxQPSolution exotica::BoxQP ( const Eigen::MatrixXd &  H,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  b_low,
const Eigen::VectorXd &  b_high,
const Eigen::VectorXd &  x_init,
const double  th_acceptstep,
const int  max_iterations,
const double  th_gradient_tolerance,
const double  lambda,
bool  use_polynomial_linesearch = true,
bool  use_cholesky_factorization = true 
)
inline

◆ ConvexHull2D()

std::list<int> exotica::ConvexHull2D ( Eigen::MatrixXdRefConst  points)

◆ DetDiff2D()

double exotica::DetDiff2D ( Eigen::VectorXdRefConst  p1,
Eigen::VectorXdRefConst  p2,
Eigen::VectorXdRefConst  p 
)

DetDiff2D Computes the 2D determinant (analogous to a 2D cross product) of a two vectors defined by P_1P_2 and P_1P.

◆ ExoticaBoxQP() [1/2]

BoxQPSolution exotica::ExoticaBoxQP ( const Eigen::MatrixXd &  H,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  b_low,
const Eigen::VectorXd &  b_high,
const Eigen::VectorXd &  x_init 
)
inline

◆ ExoticaBoxQP() [2/2]

BoxQPSolution exotica::ExoticaBoxQP ( const Eigen::MatrixXd &  H,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  b_low,
const Eigen::VectorXd &  b_high,
const Eigen::VectorXd &  x_init,
const double  gamma,
const int  max_iterations,
const double  epsilon,
const double  lambda,
bool  use_polynomial_linesearch = false,
bool  use_cholesky_factorization = false 
)
inline

◆ GetColor() [1/2]

std_msgs::ColorRGBA exotica::GetColor ( const Eigen::Vector4d &  rgba)
inline

◆ GetColor() [2/2]

std_msgs::ColorRGBA exotica::GetColor ( double  r,
double  g,
double  b,
double  a = 1.0 
)
inline

◆ GetFrame() [1/2]

Eigen::MatrixXd exotica::GetFrame ( const KDL::Frame &  val)

◆ GetFrame() [2/2]

KDL::Frame exotica::GetFrame ( Eigen::VectorXdRefConst  val)

◆ GetFrameAsVector()

Eigen::VectorXd exotica::GetFrameAsVector ( const KDL::Frame &  val,
RotationType  type = RotationType::RPY 
)

◆ GetFrameFromMatrix()

KDL::Frame exotica::GetFrameFromMatrix ( Eigen::MatrixXdRefConst  val)

◆ GetKeys()

template<typename T >
std::vector<std::string> exotica::GetKeys ( std::map< std::string, T >  map)

◆ GetKeysFromMap()

template<class Key , class Val >
std::vector<Key> exotica::GetKeysFromMap ( const std::map< Key, Val > &  map)

◆ GetRotation()

KDL::Rotation exotica::GetRotation ( Eigen::VectorXdRefConst  data,
RotationType  type 
)

◆ GetRotationAsVector()

Eigen::VectorXd exotica::GetRotationAsVector ( const KDL::Frame &  val,
RotationType  type 
)

◆ GetRotationTypeFromString()

RotationType exotica::GetRotationTypeFromString ( const std::string &  rotation_type)
inline

◆ GetRotationTypeLength()

int exotica::GetRotationTypeLength ( const RotationType type)
inline

◆ GetTypeName()

std::string exotica::GetTypeName ( const std::type_info &  type)

◆ GetValuesFromMap()

template<class Key , class Val >
std::vector<Val> exotica::GetValuesFromMap ( const std::map< Key, Val > &  map)

◆ huber_cost()

double exotica::huber_cost ( double  x,
double  beta 
)
inline

◆ huber_hessian()

double exotica::huber_hessian ( double  x,
double  beta 
)
inline

◆ huber_jacobian()

double exotica::huber_jacobian ( double  x,
double  beta 
)
inline

◆ inverseSymPosDef()

template<typename T1 , typename T2 >
static void exotica::inverseSymPosDef ( T1 &  Ainv,
const T2 &  A 
)
inlinestatic

Computes an inverse of a symmetric positive definite matrix.

Parameters
AinvResulting inverted matrix (using Cholesky factorization).
AA symmetric positive definite matrix to be inverted.

◆ IsContainerType()

bool exotica::IsContainerType ( std::string  type)
inline

◆ IsVectorContainerType()

bool exotica::IsVectorContainerType ( std::string  type)
inline

◆ IsVectorType()

bool exotica::IsVectorType ( std::string  type)
inline

◆ LoadFile()

std::string exotica::LoadFile ( const std::string &  path)

◆ LoadOBJ()

void exotica::LoadOBJ ( const std::string &  data,
Eigen::VectorXi &  tri,
Eigen::VectorXd &  vert 
)

LoadOBJ Loads mesh data from an OBJ file.

Parameters
file_nameFile name
triReturned vertex indices of triangles
vertVertex positions

◆ LoadOctree()

std::shared_ptr<octomap::OcTree> exotica::LoadOctree ( const std::string &  file_path)

◆ LoadOctreeAsShape()

std::shared_ptr<shapes::Shape> exotica::LoadOctreeAsShape ( const std::string &  file_path)

◆ MapToVec()

template<class Key , class Val >
std::vector<Val> exotica::MapToVec ( const std::map< Key, Val > &  map)

◆ NormalizeQuaternionInConfigurationVector()

void exotica::NormalizeQuaternionInConfigurationVector ( Eigen::Ref< Eigen::VectorXd >  q)
inline

◆ operator&()

KinematicRequestFlags exotica::operator& ( KinematicRequestFlags  a,
KinematicRequestFlags  b 
)
inline

◆ operator<<() [1/3]

std::ostream& exotica::operator<< ( std::ostream &  os,
const Printable s 
)

◆ operator<<() [2/3]

template<typename I , typename T >
std::ostream& exotica::operator<< ( std::ostream &  os,
const std::map< I, T > &  s 
)

◆ operator<<() [3/3]

template<typename T >
std::ostream& exotica::operator<< ( std::ostream &  os,
const std::vector< T > &  s 
)

◆ operator|() [1/2]

Exception::ReportingType exotica::operator| ( Exception::ReportingType  a,
Exception::ReportingType  b 
)
inlinenoexcept

◆ operator|() [2/2]

KinematicRequestFlags exotica::operator| ( KinematicRequestFlags  a,
KinematicRequestFlags  b 
)
inline

◆ ParseBool()

bool exotica::ParseBool ( const std::string  value)
inline

◆ ParseBoolList()

std::vector<bool> exotica::ParseBoolList ( const std::string  value)
inline

◆ ParseDouble()

double exotica::ParseDouble ( const std::string  value)
inline

◆ ParseInt()

int exotica::ParseInt ( const std::string  value)
inline

◆ ParseIntList()

std::vector<int> exotica::ParseIntList ( const std::string  value)
inline

◆ ParseList()

std::vector<std::string> exotica::ParseList ( const std::string &  value,
char  token = ',' 
)
inline

◆ ParsePath()

std::string exotica::ParsePath ( const std::string &  path)

◆ ParseVector()

template<typename T , const int S>
Eigen::Matrix<T, S, 1> exotica::ParseVector ( const std::string  value)
inline

◆ PathExists()

bool exotica::PathExists ( const std::string &  path)

◆ PointToLineDistance()

void exotica::PointToLineDistance ( const Eigen::Vector2d &  P1,
const Eigen::Vector2d &  P2,
const Eigen::Vector2d &  P3,
double &  d 
)

Computes the signed distance between a point and a line defined by two points in 2D.

Parameters
P1First point defining the line
P2Second point defining the line
P3Query point
dSigned distance

◆ PointToLineDistanceDerivative()

void exotica::PointToLineDistanceDerivative ( const Eigen::Vector2d &  P1,
const Eigen::Vector2d &  P2,
const Eigen::Vector2d &  P3,
const Eigen::MatrixXd &  dP1_dq,
const Eigen::MatrixXd &  dP2_dq,
const Eigen::MatrixXd &  dP3_dq,
Eigen::Ref< Eigen::MatrixXd > &  derivative 
)

Derivative of signed distance between a point and a line defined by two points in 2D.

◆ PrintDimensions()

void exotica::PrintDimensions ( const std::string &  name,
const Eigen::Ref< const Eigen::MatrixXd >  m 
)

◆ pseudo_huber_cost()

double exotica::pseudo_huber_cost ( double  x,
double  beta 
)
inline

◆ pseudo_huber_hessian()

double exotica::pseudo_huber_hessian ( double  x,
double  beta 
)
inline

◆ pseudo_huber_jacobian()

double exotica::pseudo_huber_jacobian ( double  x,
double  beta 
)
inline

◆ QuickHull()

std::list<int> exotica::QuickHull ( Eigen::MatrixXdRefConst  points,
std::list< int > &  half_points,
int  p1,
int  p2 
)

◆ RandomColor()

std_msgs::ColorRGBA exotica::RandomColor ( )

RandomColor Generates random opaque color.

Returns
Random color

◆ SaveMatrix()

void exotica::SaveMatrix ( std::string  file_name,
const Eigen::Ref< const Eigen::MatrixXd >  mat 
)

◆ SetDefaultQuaternionInConfigurationVector()

void exotica::SetDefaultQuaternionInConfigurationVector ( Eigen::Ref< Eigen::VectorXd >  q)
inline

◆ SetRotation()

Eigen::VectorXd exotica::SetRotation ( const KDL::Rotation &  data,
RotationType  type 
)

◆ Sleep()

void exotica::Sleep ( double  t)
inline

◆ smooth_l1_cost()

double exotica::smooth_l1_cost ( double  x,
double  beta 
)
inline

◆ smooth_l1_hessian()

double exotica::smooth_l1_hessian ( double  x,
double  beta 
)
inline

◆ smooth_l1_jacobian()

double exotica::smooth_l1_jacobian ( double  x,
double  beta 
)
inline

◆ ToNumber()

template<typename T >
T exotica::ToNumber ( const std::string &  val)

◆ ToNumber< double >()

template<>
double exotica::ToNumber< double > ( const std::string &  val)
inline

◆ ToNumber< float >()

template<>
float exotica::ToNumber< float > ( const std::string &  val)
inline

◆ ToNumber< int >()

template<>
int exotica::ToNumber< int > ( const std::string &  val)
inline

◆ ToString() [1/2]

std::string exotica::ToString ( const Eigen::Isometry3d &  s)

◆ ToString() [2/2]

std::string exotica::ToString ( const KDL::Frame &  s)

◆ Trim()

std::string exotica::Trim ( const std::string &  s)
inline

Variable Documentation

◆ branch

const char exotica::branch[]

◆ inf

constexpr double exotica::inf = std::numeric_limits<double>::infinity()
constexpr

◆ pi

constexpr double exotica::pi = M_PI
constexpr

◆ version

const char exotica::version[]