Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
corbo Namespace Reference

Namespaces

 gui
 
 internals
 
 property
 
 threads
 
 util
 

Classes

class  AlgebraicRiccatiContinuous
 Methods for dealing with continuous-time algebraic Riccati equations. More...
 
class  AlgebraicRiccatiDiscrete
 Methods for dealing with discrete-time algebraic Riccati equations. More...
 
class  ArtsteinsCircle
 
class  BackwardDiffCollocation
 Collocation via backward differences. More...
 
class  BaseEdge
 
class  BaseHyperGraphOptimizationProblem
 Hyper-graph optimization problem formulation. More...
 
class  BaseMixedEdge
 
class  BaseQuadraticFinalStateCost
 
class  BenchmarkTaskIncreasingHorizonOpenLoop
 BenchmarkTaskIncreasingHorizonOpenLoop. More...
 
class  BenchmarkTaskVaryingInitialState
 BenchmarkTaskVaryingInitialState. More...
 
class  BinaryVectorScalarVertexEdge
 
class  BinaryVectorVertexEdge
 
class  BlindDiscreteTimeReferenceTrajectory
 discrete time reference trajectory in which the precompute step is not aware of the trajectory More...
 
class  CartPole
 
class  CentralDifferences
 Finite differences via central differences. More...
 
class  ClosedLoopControlTask
 Perform closed-loop control task. More...
 
class  CollocationInterface
 Interface class for collocation based system dynamics evaluation. More...
 
class  CombinedCompressedCollocationEdge
 
class  CombinedCompressedCollocationMultipleControlsEdge
 
class  CombinedUncompressedCollocationEdge
 
class  CommonSignalTarget
 General signal target to store incoming signals for post-processing. More...
 
class  CompressedCollocationEdge
 
class  CompressedCollocationMultipleControlsEdge
 
class  ConstControlCombinedCompressedCollocationEdge
 
class  Controllability
 Methods for checking controllability of dynamic systems. More...
 
class  ControllerInterface
 Interface class for controllers. More...
 
struct  ControllerStatistics
 
class  CrankNicolsonDiffCollocation
 Collocation via Crank-Nicolson differences. More...
 
class  DataExporterInterface
 Interface class for exporting signals. More...
 
class  DiscreteTimeReferenceTrajectory
 discrete time reference trajectory More...
 
class  DiscretizationGridInterface
 Generic interface class for discretization grids. More...
 
class  DisturbanceGaussianNoise
 
class  DisturbanceInterface
 
class  DoubleIntegratorDiscreteTime
 System dynamics for a second order integrator (discrete-time) More...
 
class  DualModeController
 Dual mode controller. More...
 
class  DuffingOscillator
 
class  Duration
 Representation of time durations. More...
 
class  DynamicsEvalInterface
 Interface class for solving and evaluating dynamics. More...
 
class  Edge
 Templated base edge class that stores an arbitary number of value. More...
 
class  Edge<>
 
class  EdgeCache
 
class  EdgeGenericScalarFun
 Generic edge for functions $ \mathbb{R}^n \to \mathbb{R} $. More...
 
class  EdgeGenericVectorFun
 Generic edge for functions $ \mathbb{R}^n \to \mathbb{R}^D $. More...
 
class  EdgeInterface
 Generic interface class for edges. More...
 
class  EdgeSetInterface
 Abstract class representing a set of edges. More...
 
class  Environment
 Standard environment for control tasks. More...
 
class  Factory
 Generic factory object. More...
 
class  FDCollocationEdge
 
class  FilterInterface
 Interface class for filters. More...
 
class  FinalStageConstraint
 
class  FinalStageCost
 
class  FiniteDifferencesCollocationInterface
 Interface class for finite difference based collocation. More...
 
class  FiniteDifferencesGrid
 
class  FiniteDifferencesGridMoveBlocking
 
class  FiniteDifferencesInterface
 Interface class for finite difference approaches. More...
 
class  FiniteDifferencesVariableGrid
 
class  FirstStateSystemOutput
 Return first state vector component as system output. More...
 
class  ForwardDiffCollocation
 Collocation via forward differences. More...
 
class  ForwardDifferences
 Finite differences via forward differences. More...
 
class  FreeSpaceRocket
 
class  FullDiscretizationGridBase
 
class  FullDiscretizationGridMoveBlockingBase
 
class  FullStateSystemOutput
 Return full state vector as system output. More...
 
struct  GridUpdateResult
 
class  HyperGraph
 hyper-graph representation More...
 
class  HyperGraphOptimizationProblemEdgeBased
 
class  HyperGraphOptimizationProblemIgnoreStructure
 
class  HyperGraphOptimizationProblemVertexBased
 
class  IndexedValuesSetSignal
 Signal containing values indexed by an integer (int to double[] map) More...
 
class  IndexedValuesSignal
 Signal containing values indexed by a single integer. More...
 
class  IntegratorAdaptiveStepSize
 Adaptive-Step-Size-Control. More...
 
class  IntegratorExplicitEuler
 Forward euler (explicit euler) integration. More...
 
class  IntegratorExplicitRungeKutta2
 2th Order Runge-Kutta Integrator (explicit) More...
 
class  IntegratorExplicitRungeKutta3
 3th Order Runge-Kutta Integrator (explicit) More...
 
class  IntegratorExplicitRungeKutta4
 4th Order Runge-Kutta Integrator (explicit) More...
 
class  IntegratorExplicitRungeKutta5
 5th Order Runge-Kutta Integrator (explicit, slightly modified) More...
 
class  IntegratorExplicitRungeKutta6
 6th Order Runge-Kutta Integrator (explicit) More...
 
class  IntegratorExplicitRungeKutta7
 7th Order Runge-Kutta Integrator (explicit) More...
 
class  IntegratorMultiStageFixedStep
 Multi-stage integration fixed step. More...
 
class  IntegratorMultiStageScaled
 Multi-stage integration scaled. More...
 
class  IpoptWrapper
 
class  L1StabCostEdge
 
class  L1StabInequalityEdge
 
class  LastStateSystemOutput
 Return first state vector component as system output. More...
 
class  LeftSumCostEdge
 
class  LeftSumEqualityEdge
 
class  LeftSumInequalityEdge
 
class  LevenbergMarquardtDense
 Levenberg-Marquardt Solver (Dense matrices version). More...
 
class  LevenbergMarquardtSparse
 Levenberg-Marquardt Solver (Sparse matrices version). More...
 
class  LinearStateSpaceModel
 
class  LinearStateSystemOutput
 Linear system output function. More...
 
class  LyapunovContinuous
 Methods for dealing with continuous-time Lyapunov equations. More...
 
class  LyapunovDiscrete
 Methods for dealing with discrete-time lyapunov equations. More...
 
class  MasslessPendulum
 
class  Master
 General service client for rpc communication. More...
 
class  MatrixSetSignal
 Signal containing a set of matrices. More...
 
class  MatrixSignal
 Signal containing a simple matrix. More...
 
class  Measurement
 Measurement signal (value vector recorded at a specific time) More...
 
class  MidpointDiffCollocation
 Collocation via midpoint differences. More...
 
class  MinimumTime
 
class  MinimumTimeRegularized
 
class  MinTimeQuadratic
 
class  MinTimeQuadraticControls
 
class  MinTimeQuadraticGainScheduled
 
class  MinTimeQuadraticStates
 
class  MixedEdge
 
class  MixedEdge<>
 
class  MixedEdgeGenericVectorFun
 
class  MovingAverageFilter
 Moving Average Filter. More...
 
class  MovingLeastSquaresFilter
 Moving LeastSquares Filter. More...
 
class  MovingMedianFilter
 Moving Median Filter. More...
 
class  MSDynamicsOnlyEdge
 
class  MSDynamicsOnlyMultiControlsEdge
 
class  MSDynamicsOnlyMultiControlsMultiDtsEdge
 
class  MSVariableDynamicsOnlyEdge
 
class  MultipleShootingEdge
 
class  MultipleShootingEdgeSingleControl
 
class  MultipleShootingEdgeSingleControlTimeScaling
 
class  MultipleShootingGrid
 
class  MultipleShootingVariableGrid
 
class  NlpFunctions
 
class  NlpSolverInterface
 Generic interface for solver implementations. More...
 
class  NonUniformFiniteDifferencesVariableGrid
 
class  NonUniformFullDiscretizationGridBase
 
class  NonUniformMultipleShootingVariableGrid
 
class  NonUniformShootingGridBase
 
class  NumericalIntegratorExplicitInterface
 Interface for numerical integrators (explicit and implicit) More...
 
class  Observability
 Methods for checking observability of dynamic systems. More...
 
class  ObserverInterface
 Interface class for observers. More...
 
class  OneStepPredictor
 OneStepPredictor. More...
 
class  OpenLoopControlTask
 Perform open-loop control task. More...
 
class  OptimalControlProblemInterface
 
struct  OptimalControlProblemStatistics
 
class  OptimizationEdgeSet
 
class  OptimizationProblemInterface
 Generic interface for optimization problem definitions. More...
 
class  ParallelIntegratorSystem
 
class  PartiallyFixedVectorVertex
 Vector based vertex with support for partially fixed components. More...
 
class  PidController
 PID controller. More...
 
class  PlantInterface
 Interface class for plants. More...
 
class  PredictiveController
 Predictive controller. More...
 
class  QpSolverInterface
 Generic interface for QP solver implementations. More...
 
class  QuadraticControlCost
 
class  QuadraticFinalStateCost
 
class  QuadraticFinalStateCostRiccati
 
class  QuadraticFormCost
 
class  QuadraticStateCost
 
class  QuadratureCollocationDynamicsOnly
 
class  QuadratureCollocationEdge
 
class  QuadratureCollocationInterface
 
class  QuadratureHermiteSimpson
 Hermite-Simpson rule (approximates function as quadratic polynomial between two points) More...
 
class  QuadratureHermiteSimpsonLinearControl
 Hermite-Simpson rule (approximates function as quadratic polynomial between two points) More...
 
class  QuadratureRectangleRule
 Rectangle/midpoint rule (approximates function as constant between two points) More...
 
class  QuadratureTrapezoidalRule
 Trapezoidal rule (approximates function as linear function between two points) More...
 
class  Range
 
class  Rate
 Rate objects can be used to run loops at a desired rate. More...
 
class  ReferenceTrajectoryInterface
 Interface class for reference trajectories. More...
 
class  ScalarVertex
 Vertex implementation for scalar values. More...
 
class  SerialIntegratorSystem
 System dynamics for a series of integrators (continuous-time) More...
 
class  ShootingGridBase
 
struct  SignalHeader
 Signal header. More...
 
class  SignalInterface
 Interface class for signals. More...
 
class  SignalTargetInterface
 Interface class for signal targets. More...
 
class  SimpleOptimizationProblem
 Simple optimization problem formulation. More...
 
class  SimpleOptimizationProblemWithCallbacks
 Simple optimization problem formulation (callback based configuration) More...
 
class  SimplePendulum
 
class  SimpleStateController
 State feedback controller wigh feedback gain matrix K. More...
 
class  SimulatedPlant
 Adapter class for plant simulation. More...
 
class  SimulatedPlantThreaded
 Adapter class for plant simulation (threaded version) More...
 
class  SineReferenceTrajectory
 Sine reference trajectory. More...
 
class  SolverIpopt
 Interface to the external interior point solver IPOPT. More...
 
class  SolverOsqp
 Interface to the external solver OSQP. More...
 
class  StageCost
 
class  StageEqualityConstraint
 
class  StageFunction
 
class  StageInequalityConstraint
 
class  StagePreprocessor
 
class  StaticReference
 Static reference trajectory. More...
 
class  StepResponseGenerator
 Step Response Generator. More...
 
class  StructuredOptimalControlProblem
 
class  SylvesterContinuous
 Methods for dealing with continuous-time sylvester equations. More...
 
class  SylvesterDiscrete
 Methods for dealing with discrete-time Sylvester equations. More...
 
class  SystemDynamicsInterface
 Interface class for system dynamic equations. More...
 
class  SystemOutputInterface
 Interface class for system output functions. More...
 
class  TaskInterface
 Interface class for tasks. More...
 
class  TerminalBall
 
class  TerminalBallInheritFromCost
 
class  TerminalEqualityConstraint
 
class  TerminalPartialEqualityConstraint
 
class  TernaryVectorScalarVertexEdge
 
class  Time
 Representation of time stamps. More...
 
class  TimeSeries
 Time Series (trajectory resp. sequence of values w.r.t. time) More...
 
class  TimeSeriesSequence
 Sequence of time series objects. More...
 
class  TimeSeriesSequenceSignal
 Signal for a sequence of time series objects. More...
 
class  TimeSeriesSignal
 Time Series signal (trajectory resp. sequence of values w.r.t. time) More...
 
class  TimeValueBuffer
 Time Delay Object for Piecewise-Constant Signals. More...
 
class  ToyExample
 
class  TrapezoidalCollocationDynamicsOnlyEdge
 
class  TrapezoidalCollocationIntegralCostEdge
 
class  TrapezoidalCollocationIntegralEqualityDynamicsEdge
 
class  TrapezoidalCollocationIntegralEqualityEdge
 
class  TrapezoidalCollocationIntegralInequalityEdge
 
class  TrapezoidalIntegralCostEdge
 
class  TrapezoidalIntegralEqualityDynamicsEdge
 
class  TrapezoidalIntegralEqualityEdge
 
class  TrapezoidalIntegralInequalityEdge
 
class  TsvExporter
 Export Tab-separated values (tsv) file. More...
 
class  TwoScalarEqualEdge
 
class  UnaryScalarVertexEdge
 
class  UnaryVectorVertexEdge
 
class  UncompressedCollocationEdge
 
class  VanDerPolOscillator
 
class  VectorVertex
 Vertex implementation that stores an Eigen::VectorXd (dynamic dimension) More...
 
class  VertexInterface
 Generic interface class for vertices. More...
 
class  VertexSet
 
class  VertexSetInterface
 Abstract class representing a set of vertices. More...
 
class  YamlExporter
 Export yaml files. More...
 
class  ZeroReference
 Zero reference trajectory. More...
 

Typedefs

using ControllerFactory = Factory< ControllerInterface >
 
using DataExporterFactory = Factory< DataExporterInterface >
 
using DiscretizationGridFactory = Factory< DiscretizationGridInterface >
 
using DisturbanceFactory = Factory< DisturbanceInterface >
 
using DynamicsEvalFactory = Factory< DynamicsEvalInterface >
 
using FilterFactory = Factory< FilterInterface >
 
using FinalStageConstraintFactory = Factory< FinalStageConstraint >
 
using FinalStageCostFactory = Factory< FinalStageCost >
 
using FiniteDifferencesCollocationFactory = Factory< FiniteDifferencesCollocationInterface >
 
using FiniteDifferencesFactory = Factory< FiniteDifferencesInterface >
 
using HyperGraphOptimizationProblemFactory = Factory< BaseHyperGraphOptimizationProblem >
 
using NlpSolverFactory = Factory< NlpSolverInterface >
 
using ObserverFactory = Factory< ObserverInterface >
 
using OptimalControlProgramFactory = Factory< OptimalControlProblemInterface >
 
using OutputFunctionFactory = Factory< SystemOutputInterface >
 
using PlantFactory = Factory< PlantInterface >
 
using QpSolverFactory = Factory< QpSolverInterface >
 
using ReferenceTrajectoryFactory = Factory< ReferenceTrajectoryInterface >
 
using StageCostFactory = Factory< StageCost >
 
using StageEqualitiesFactory = Factory< StageEqualityConstraint >
 
using StageInequalitiesFactory = Factory< StageInequalityConstraint >
 
using StagePreprocessorFactory = Factory< StagePreprocessor >
 
using SystemDynamicsFactory = Factory< SystemDynamicsInterface >
 
using TaskFactory = Factory< TaskInterface >
 

Enumerations

enum  SignalType {
  SignalType::TimeSeries, SignalType::Measurement, SignalType::Values, SignalType::TimeSeriesSequence,
  SignalType::IndexedValues, SignalType::IndexedValuesSet, SignalType::LabeledValues, SignalType::LabeledValuesSet,
  SignalType::Matrix, SignalType::MatrixSet
}
 Available signal types (must match messages::SignalType enumeration) More...
 
enum  SolverStatus { SolverStatus::Converged, SolverStatus::EarlyTerminated, SolverStatus::Infeasible, SolverStatus::Error }
 
enum  TextColorCode {
  TextColorCode::FG_DEFAULT = 39, TextColorCode::FG_RED = 31, TextColorCode::FG_GREEN = 32, TextColorCode::FG_BLUE = 34,
  TextColorCode::FG_BLACK = 30, TextColorCode::FG_YELLOW = 33, TextColorCode::FG_MAGENTA = 35, TextColorCode::FG_CYAN = 36,
  TextColorCode::FG_LIGHT_GRAY = 37, TextColorCode::FG_DARK_GRAY = 90, TextColorCode::FG_LIGHT_RED = 91, TextColorCode::FG_LIGHT_GREEN = 92,
  TextColorCode::FG_LIGHT_YELLOW = 93, TextColorCode::FG_LIGHT_BLUE = 94, TextColorCode::FG_LIGHT_MAGENTA = 95, TextColorCode::FG_LIGHT_CYAN = 96,
  TextColorCode::FG_WHITE = 97, TextColorCode::BG_RED = 41, TextColorCode::BG_GREEN = 42, TextColorCode::BG_BLUE = 44,
  TextColorCode::BG_DEFAULT = 49
}
 Color codes for colored text in consoles/terminals (if supported) More...
 

Functions

bool approx_equal (double a, double b, double epsilon=1e-6)
 Check if two doubles are appoximately equal. More...
 
bool approx_equal (const std::complex< double > &a, const std::complex< double > &b, double epsilon=1e-6)
 Check if two complex numbers are appoximately equal by comparing their real and imaginary parts. More...
 
bool approx_equal_abs (double a, double b, double epsilon=1e-6)
 Check if two doubles are similar (but with an absolute threshold!) More...
 
bool approx_zero (double val, double epsilon=1e-10)
 Check if a double is appoximately zero. More...
 
template<typename EdgeContainer >
bool check_edge_vertices (const std::vector< VertexInterface *> &vertices, EdgeContainer &edges)
 
std::string coloredText (const std::string &text, TextColorCode color)
 Return input text as colored text for terminal output (note: the terminal must support colored text) More...
 
template<typename Derived >
double compute_condition_number (const Eigen::MatrixBase< Derived > &matrix)
 Compute condition number of matrix using SVD. More...
 
template<typename Derived >
double compute_condition_number_square_matrix (const Eigen::MatrixBase< Derived > &matrix)
 Compute condition number of a square matrix using the EigenvaluesThis method computes the eigenvalues and returns abs(eig_max / eig_min). For a version based on the SVD refer to compute_condition_number() More...
 
template<typename Derived >
void compute_pseudo_inverse (const Eigen::MatrixBase< Derived > &matrix, Eigen::MatrixBase< Derived > &pinvmat, double tolerance=1e-6)
 Compute the pseudo inverse using SVD. More...
 
void convert_triplet (const Eigen::Ref< const Eigen::VectorXi > &i_row, const Eigen::Ref< const Eigen::VectorXi > &j_col, const Eigen::Ref< const Eigen::VectorXd > &values, std::vector< Eigen::Triplet< double >> &triplets)
 
template<typename Object >
std::shared_ptr< Object > create_from_factory (const std::string &name)
 Helper function to create new (derived) objects from factory. More...
 
bool definitely_greater_than (double a, double b, double epsilon=1e-6)
 Check if a value is definetly greater than another value. More...
 
bool definitely_less_than (double a, double b, double epsilon=1e-6)
 Check if a value is definetly less than another value. More...
 
bool essentially_equal (double a, double b, double epsilon=1e-6)
 Check if two doubles are essentially equal. More...
 
bool essentially_equal (const std::complex< double > &a, const std::complex< double > &b, double epsilon=1e-6)
 Check if two compelx numbers are essentially equal by comparing their real and imaginary parts. More...
 
 FACTORY_REGISTER_DATA_EXPORTER (TsvExporter)
 
 FACTORY_REGISTER_DATA_EXPORTER (YamlExporter)
 
template<typename DerivedA , typename DerivedB >
bool have_equal_size (const Eigen::MatrixBase< DerivedA > &matrix1, const Eigen::MatrixBase< DerivedB > &matrix2)
 Determine if two matrices exhibit equal sizes/dimensions. More...
 
template<typename DerivedA , typename DerivedB , typename... Derived>
bool have_equal_size (const Eigen::MatrixBase< DerivedA > &matrix1, const Eigen::MatrixBase< DerivedB > &matrix2, const Eigen::MatrixBase< Derived > &... matrices_other)
 Determine if N matrices exhibit equal sizes/dimensions. More...
 
template<typename Derived >
bool is_positive_definite (const Eigen::MatrixBase< Derived > &matrix)
 Determine if a given matrix is positive definiteThe current implementation performs Eigen's Cholesky decomposition in order to test whether the given matrix appears to be positive definite. More...
 
template<typename Derived >
bool is_square (const Eigen::MatrixBase< Derived > &matrix)
 Determine if a given matrix is square. More...
 
bool is_square (int numel)
 Determine if a given number of elements defines a square matrix. More...
 
bool ok ()
 global method to check whether to proceed or cancel the current action More...
 
std::ostream & operator<< (std::ostream &os, TextColorCode code)
 Output stream operator to change the color of subsequent stream output. More...
 
std::ostream & operator<< (std::ostream &out, const TimeSeries &ts)
 
template<class Predicate >
bool reorder_schur_blocks (Eigen::Ref< Eigen::MatrixXd > T, Eigen::Ref< Eigen::MatrixXd > Q, Predicate predicate, int *subspace_dim, bool standardize)
 
void schur_decomposition_2d (Eigen::Ref< Eigen::Matrix2d > T, Eigen::Ref< Eigen::Matrix2d > U)
 Perform the 2D Real Schur decompositionIn contrast to Eigen::RealSchur this function enforces diagonal blocks of complex eigenvalues to be in the form:

\[T = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \]

with a denoting the real part and $ \sqrt{b c} $ the imaginary part. It is $ a c < 0 $. More...

 
void setOk (bool ok)
 Change the current program state to ok or request the termination of the current action. More...
 
bool swap_schur_blocks (Eigen::Ref< Eigen::MatrixXd > T, int ra11, int p, int q, Eigen::Ref< Eigen::MatrixXd > Q, bool standardize)
 

Variables

static constexpr const double cd_delta = 1e-9
 
static constexpr const double cd_neg2delta = -2 * cd_delta
 
static constexpr const double cd_scalar = 1.0 / (2 * cd_delta)
 
constexpr const double CORBO_INF_DBL = 2e30
 Representation for infinity (double version) More...
 
constexpr const int CORBO_INF_INT = CORBO_MAX_INT - 1000
 Representation for infinity (integer version) More...
 
constexpr const double CORBO_MAX_DBL = std::numeric_limits<double>::max()
 Maximum double value. More...
 
constexpr const int CORBO_MAX_INT = std::numeric_limits<int>::max()
 Maximum integer value. More...
 
constexpr const double CORBO_MIN_DBL = std::numeric_limits<double>::lowest()
 Minimum (negative) double value. More...
 
constexpr const int CORBO_MIN_INT = std::numeric_limits<int>::lowest()
 Minimum (negative) integer value. More...
 
static bool global_ok = true
 
constexpr const double HESSIAN_DELTA = 1e-2
 
constexpr const char SIGNAL_NAMESPACE_DELIMITER = '/'
 

Typedef Documentation

◆ ControllerFactory

Definition at line 166 of file controller_interface.h.

◆ DataExporterFactory

Definition at line 81 of file data_exporter_interface.h.

◆ DiscretizationGridFactory

Definition at line 173 of file discretization_grid_interface.h.

◆ DisturbanceFactory

Definition at line 87 of file disturbance_interface.h.

◆ DynamicsEvalFactory

Definition at line 116 of file dynamics_eval_interface.h.

◆ FilterFactory

Definition at line 74 of file filter_interface.h.

◆ FinalStageConstraintFactory

Definition at line 273 of file stage_functions.h.

◆ FinalStageCostFactory

Definition at line 199 of file stage_functions.h.

◆ FiniteDifferencesCollocationFactory

Definition at line 102 of file finite_differences_collocation.h.

◆ FiniteDifferencesFactory

Definition at line 261 of file finite_differences_interface.h.

◆ HyperGraphOptimizationProblemFactory

Definition at line 265 of file hyper_graph_optimization_problem_base.h.

◆ NlpSolverFactory

Definition at line 117 of file nlp_solver_interface.h.

◆ ObserverFactory

Definition at line 126 of file observer_interface.h.

◆ OptimalControlProgramFactory

Definition at line 94 of file optimal_control_problem_interface.h.

◆ OutputFunctionFactory

Definition at line 101 of file output_function_interface.h.

◆ PlantFactory

Definition at line 152 of file plant_interface.h.

◆ QpSolverFactory

Definition at line 147 of file qp_solver_interface.h.

◆ ReferenceTrajectoryFactory

Definition at line 97 of file reference_trajectory.h.

◆ StageCostFactory

Definition at line 147 of file stage_functions.h.

◆ StageEqualitiesFactory

Definition at line 291 of file stage_functions.h.

◆ StageInequalitiesFactory

Definition at line 309 of file stage_functions.h.

◆ StagePreprocessorFactory

Definition at line 66 of file stage_preprocessor.h.

◆ SystemDynamicsFactory

Definition at line 179 of file system_dynamics_interface.h.

◆ TaskFactory

Definition at line 116 of file task_interface.h.

Enumeration Type Documentation

◆ SignalType

enum corbo::SignalType
strong

Available signal types (must match messages::SignalType enumeration)

Enumerator
TimeSeries 
Measurement 
Values 
TimeSeriesSequence 
IndexedValues 
IndexedValuesSet 
LabeledValues 
LabeledValuesSet 
Matrix 
MatrixSet 

Definition at line 49 of file signals.h.

◆ SolverStatus

enum corbo::SolverStatus
strong
Enumerator
Converged 
EarlyTerminated 
Infeasible 
Error 

Definition at line 30 of file optimization/include/corbo-optimization/types.h.

◆ TextColorCode

enum corbo::TextColorCode
strong

Color codes for colored text in consoles/terminals (if supported)

see http://stackoverflow.com/questions/2616906/how-do-i-output-coloured-text-to-a-linux-terminal and http://misc.flogisoft.com/bash/tip_colors_and_formatting

Enumerator
FG_DEFAULT 
FG_RED 
FG_GREEN 
FG_BLUE 
FG_BLACK 
FG_YELLOW 
FG_MAGENTA 
FG_CYAN 
FG_LIGHT_GRAY 
FG_DARK_GRAY 
FG_LIGHT_RED 
FG_LIGHT_GREEN 
FG_LIGHT_YELLOW 
FG_LIGHT_BLUE 
FG_LIGHT_MAGENTA 
FG_LIGHT_CYAN 
FG_WHITE 
BG_RED 
BG_GREEN 
BG_BLUE 
BG_DEFAULT 

Definition at line 40 of file text_style.h.

Function Documentation

◆ approx_equal() [1/2]

bool corbo::approx_equal ( double  a,
double  b,
double  epsilon = 1e-6 
)
inline

Check if two doubles are appoximately equal.

Warning
use approx_zero() if you want to compare against zero
Parameters
afirst value
bsecond value
epsilonminimum treshold to state that a and b are similar (|a-b| <= epsilon*max(a,b))
Returns
true if fabs(a-b)<= epsilon*max(a,b) , otherwise false

Definition at line 56 of file value_comparison.h.

◆ approx_equal() [2/2]

bool corbo::approx_equal ( const std::complex< double > &  a,
const std::complex< double > &  b,
double  epsilon = 1e-6 
)
inline

Check if two complex numbers are appoximately equal by comparing their real and imaginary parts.

Parameters
afirst complex value
bsecond complex value
epsilonminimum treshold to state that a and b are similar (|a-b| <= epsilon*max(a,b))
Returns
true if fabs(a-b)<= epsilon*max(a,b) , otherwise false

Definition at line 66 of file value_comparison.h.

◆ approx_equal_abs()

bool corbo::approx_equal_abs ( double  a,
double  b,
double  epsilon = 1e-6 
)
inline

Check if two doubles are similar (but with an absolute threshold!)

Warning
better use relative comparisons to be much more robust against different magnitutes
Parameters
afirst value
bsecond value
epsilonminimum treshold to state that a and b are similar (|a-b| < epsilon)
Returns
true if fabs(a-b)< epsilon , otherwise false

Definition at line 43 of file value_comparison.h.

◆ approx_zero()

bool corbo::approx_zero ( double  val,
double  epsilon = 1e-10 
)
inline

Check if a double is appoximately zero.

Parameters
valfirst value
epsilonminimum treshold to state that val is similar (|a| <= epsilon)
Returns
true if fabs(val)<= epsilon) , otherwise false

Definition at line 102 of file value_comparison.h.

◆ check_edge_vertices()

template<typename EdgeContainer >
bool corbo::check_edge_vertices ( const std::vector< VertexInterface *> &  vertices,
EdgeContainer &  edges 
)

Definition at line 36 of file hyper_graph.cpp.

◆ coloredText()

std::string corbo::coloredText ( const std::string &  text,
TextColorCode  color 
)
inline

Return input text as colored text for terminal output (note: the terminal must support colored text)

Definition at line 75 of file text_style.h.

◆ compute_condition_number()

template<typename Derived >
double corbo::compute_condition_number ( const Eigen::MatrixBase< Derived > &  matrix)
inline

Compute condition number of matrix using SVD.

Parameters
matrixgeneric matrix type
Returns
condition number

Definition at line 144 of file matrix_utilities.h.

◆ compute_condition_number_square_matrix()

template<typename Derived >
double corbo::compute_condition_number_square_matrix ( const Eigen::MatrixBase< Derived > &  matrix)
inline

Compute condition number of a square matrix using the EigenvaluesThis method computes the eigenvalues and returns abs(eig_max / eig_min). For a version based on the SVD refer to compute_condition_number()

Parameters
matrixgeneric matrix type
Returns
condition number

Definition at line 121 of file matrix_utilities.h.

◆ compute_pseudo_inverse()

template<typename Derived >
void corbo::compute_pseudo_inverse ( const Eigen::MatrixBase< Derived > &  matrix,
Eigen::MatrixBase< Derived > &  pinvmat,
double  tolerance = 1e-6 
)

Compute the pseudo inverse using SVD.

Definition at line 164 of file matrix_utilities.h.

◆ convert_triplet()

void corbo::convert_triplet ( const Eigen::Ref< const Eigen::VectorXi > &  i_row,
const Eigen::Ref< const Eigen::VectorXi > &  j_col,
const Eigen::Ref< const Eigen::VectorXd > &  values,
std::vector< Eigen::Triplet< double >> &  triplets 
)

Definition at line 29 of file misc.cpp.

◆ create_from_factory()

template<typename Object >
std::shared_ptr<Object> corbo::create_from_factory ( const std::string &  name)

Helper function to create new (derived) objects from factory.

This functino requries the Objects class to provide a getFactory() method.

Parameters
[in]nameUnique object identifier
Returns
shared pointer to the derived class if name is known, an empty shared_ptr otherwise
Template Parameters
ObjectThe object type itself or base type to be created

Definition at line 150 of file factory.h.

◆ definitely_greater_than()

bool corbo::definitely_greater_than ( double  a,
double  b,
double  epsilon = 1e-6 
)
inline

Check if a value is definetly greater than another value.

Parameters
afirst value
bsecond value
epsilonminimum treshold to state that a and b are similar (|a-b| > epsilon*max(a,b))
Returns
true if fabs(a-b)> epsilon*min(a,b) , otherwise false

Definition at line 112 of file value_comparison.h.

◆ definitely_less_than()

bool corbo::definitely_less_than ( double  a,
double  b,
double  epsilon = 1e-6 
)
inline

Check if a value is definetly less than another value.

Parameters
afirst value
bsecond value
epsilonminimum treshold to state that a and b are similar (|b-a| > epsilon*min(a,b))
Returns
true if fabs(b-a)> epsilon*max(a,b) , otherwise false

Definition at line 122 of file value_comparison.h.

◆ essentially_equal() [1/2]

bool corbo::essentially_equal ( double  a,
double  b,
double  epsilon = 1e-6 
)
inline

Check if two doubles are essentially equal.

Warning
use approx_zero() if you want to compare against zero
Parameters
afirst value
bsecond value
epsilonminimum treshold to state that a and b are similar (|a-b| <= epsilon*min(a,b))
Returns
true if fabs(a-b)<= epsilon*min(a,b) , otherwise false

Definition at line 80 of file value_comparison.h.

◆ essentially_equal() [2/2]

bool corbo::essentially_equal ( const std::complex< double > &  a,
const std::complex< double > &  b,
double  epsilon = 1e-6 
)
inline

Check if two compelx numbers are essentially equal by comparing their real and imaginary parts.

Parameters
afirst complex value
bsecond complex value
epsilonminimum treshold to state that a and b are similar (|a-b| <= epsilon*min(a,b))
Returns
true if fabs(a-b)<= epsilon*min(a,b) , otherwise false

Definition at line 90 of file value_comparison.h.

◆ FACTORY_REGISTER_DATA_EXPORTER() [1/2]

corbo::FACTORY_REGISTER_DATA_EXPORTER ( TsvExporter  )

◆ FACTORY_REGISTER_DATA_EXPORTER() [2/2]

corbo::FACTORY_REGISTER_DATA_EXPORTER ( YamlExporter  )

◆ have_equal_size() [1/2]

template<typename DerivedA , typename DerivedB >
bool corbo::have_equal_size ( const Eigen::MatrixBase< DerivedA > &  matrix1,
const Eigen::MatrixBase< DerivedB > &  matrix2 
)
inline

Determine if two matrices exhibit equal sizes/dimensions.

Parameters
matrix1generic matrix type
matrix2generic matrix type
Returns
true if equal dimensions, false otherwise.

Definition at line 71 of file matrix_utilities.h.

◆ have_equal_size() [2/2]

template<typename DerivedA , typename DerivedB , typename... Derived>
bool corbo::have_equal_size ( const Eigen::MatrixBase< DerivedA > &  matrix1,
const Eigen::MatrixBase< DerivedB > &  matrix2,
const Eigen::MatrixBase< Derived > &...  matrices_other 
)
inline

Determine if N matrices exhibit equal sizes/dimensions.

Parameters
matrix1generic matrix type
matrix2generic matrix type
Returns
true if equal dimensions, false otherwise.

Definition at line 85 of file matrix_utilities.h.

◆ is_positive_definite()

template<typename Derived >
bool corbo::is_positive_definite ( const Eigen::MatrixBase< Derived > &  matrix)
inline

Determine if a given matrix is positive definiteThe current implementation performs Eigen's Cholesky decomposition in order to test whether the given matrix appears to be positive definite.

Parameters
matrixgeneric matrix type to be tested
Returns
true if positive definite, false otherwise.

Definition at line 103 of file matrix_utilities.h.

◆ is_square() [1/2]

template<typename Derived >
bool corbo::is_square ( const Eigen::MatrixBase< Derived > &  matrix)
inline

Determine if a given matrix is square.

Parameters
matrixgeneric matrix type to be tested
Returns
true if square, false otherwise.

Definition at line 43 of file matrix_utilities.h.

◆ is_square() [2/2]

bool corbo::is_square ( int  numel)
inline

Determine if a given number of elements defines a square matrix.

Parameters
numelnumber of elements to be checked for square matrix
Returns
true if square, false otherwise.

Definition at line 55 of file matrix_utilities.h.

◆ ok()

bool corbo::ok ( )

global method to check whether to proceed or cancel the current action

Time consuming parts of the program should check whether the current state is ok. If not, they should return immediately. This allows other processes to interrupt resepctively preempt long running processes.

E.g. the execution of closed-loop control tasks might be configured for a long time duration, but the user wants to stop by setting setOk(bool ok) to false. The tasks can check for ok() frequently and abort its execution in this case.

Returns
true if everything is still ok, false if an abort of the current action is requested.

Definition at line 32 of file global.cpp.

◆ operator<<() [1/2]

std::ostream& corbo::operator<< ( std::ostream &  os,
TextColorCode  code 
)
inline

Output stream operator to change the color of subsequent stream output.

Definition at line 65 of file text_style.h.

◆ operator<<() [2/2]

std::ostream& corbo::operator<< ( std::ostream &  out,
const TimeSeries ts 
)
Parameters
outoutput stream
tstime series object to be printed
Returns

Definition at line 432 of file time_series.cpp.

◆ reorder_schur_blocks()

template<class Predicate >
bool corbo::reorder_schur_blocks ( Eigen::Ref< Eigen::MatrixXd >  T,
Eigen::Ref< Eigen::MatrixXd >  Q,
Predicate  predicate,
int subspace_dim,
bool  standardize 
)

Definition at line 35 of file schur.hpp.

◆ schur_decomposition_2d()

void corbo::schur_decomposition_2d ( Eigen::Ref< Eigen::Matrix2d >  T,
Eigen::Ref< Eigen::Matrix2d >  U 
)

Perform the 2D Real Schur decompositionIn contrast to Eigen::RealSchur this function enforces diagonal blocks of complex eigenvalues to be in the form:

\[T = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \]

with a denoting the real part and $ \sqrt{b c} $ the imaginary part. It is $ a c < 0 $.

This function is mainly used in swap_blocks_schur_form() to ensure that swapped blocks are in standard form.

The implementation is based on LAPACKs SLANV2 routine [1].

[1] http://www.netlib.org/lapack/explore-3.1.1-html/slanv2.f.html#SLANV2.1

Parameters
[in,out]T[2 x 2] matrix which is subject to decomposition, this matrix will be overwritten by the resulting upper triangular matrix.
[out]UUnitary matrix which transforms T to Schur form: T = U^T T U

Definition at line 44 of file schur.cpp.

◆ setOk()

void corbo::setOk ( bool  ok)

Change the current program state to ok or request the termination of the current action.

Refer to ok() for more details.

Parameters
okset to false, if current actions should be terminated (requires actions to check for ok()).

Definition at line 33 of file global.cpp.

◆ swap_schur_blocks()

bool corbo::swap_schur_blocks ( Eigen::Ref< Eigen::MatrixXd >  T,
int  ra11,
int  p,
int  q,
Eigen::Ref< Eigen::MatrixXd >  Q,
bool  standardize 
)

Definition at line 170 of file schur.cpp.

Variable Documentation

◆ cd_delta

constexpr const double corbo::cd_delta = 1e-9
static

◆ cd_neg2delta

constexpr const double corbo::cd_neg2delta = -2 * cd_delta
static

◆ cd_scalar

constexpr const double corbo::cd_scalar = 1.0 / (2 * cd_delta)
static

◆ CORBO_INF_DBL

constexpr const double corbo::CORBO_INF_DBL = 2e30

Representation for infinity (double version)

Definition at line 53 of file core/include/corbo-core/types.h.

◆ CORBO_INF_INT

constexpr const int corbo::CORBO_INF_INT = CORBO_MAX_INT - 1000

Representation for infinity (integer version)

Definition at line 55 of file core/include/corbo-core/types.h.

◆ CORBO_MAX_DBL

constexpr const double corbo::CORBO_MAX_DBL = std::numeric_limits<double>::max()

Maximum double value.

Definition at line 44 of file core/include/corbo-core/types.h.

◆ CORBO_MAX_INT

constexpr const int corbo::CORBO_MAX_INT = std::numeric_limits<int>::max()

Maximum integer value.

Definition at line 48 of file core/include/corbo-core/types.h.

◆ CORBO_MIN_DBL

constexpr const double corbo::CORBO_MIN_DBL = std::numeric_limits<double>::lowest()

Minimum (negative) double value.

Definition at line 46 of file core/include/corbo-core/types.h.

◆ CORBO_MIN_INT

constexpr const int corbo::CORBO_MIN_INT = std::numeric_limits<int>::lowest()

Minimum (negative) integer value.

Definition at line 50 of file core/include/corbo-core/types.h.

◆ global_ok

bool corbo::global_ok = true
static

Definition at line 30 of file global.cpp.

◆ HESSIAN_DELTA

constexpr const double corbo::HESSIAN_DELTA = 1e-2

Definition at line 32 of file edge_interface.cpp.

◆ SIGNAL_NAMESPACE_DELIMITER

constexpr const char corbo::SIGNAL_NAMESPACE_DELIMITER = '/'

Definition at line 46 of file signals.h.



control_box_rst
Author(s): Christoph Rösmann
autogenerated on Mon Feb 28 2022 22:08:02