|
ocra-recipes
Doxygen documentation for the ocra-recipes repository
|
LinearizedCoulombFunction class. More...
#include <LinearizedCoulombFunction.h>
Public Types | |
| typedef LinearFunction | functionType_t |
Public Types inherited from ocra::LinearFunction | |
| typedef Function | functionType_t |
Public Member Functions | |
| LinearizedCoulombFunction (Variable &f, double frictionCoeff, int numberOfFaces=4, double margin=0) | |
| double | getFrictionCoeff () const |
| double | getMargin () const |
| void | setFrictionCoeff (double coeff) |
| void | setMargin (double margin) |
| void | setConeOrientation (const Matrix3d &R) |
| const Matrix3d & | getConeOrientation () const |
Public Member Functions inherited from ocra::LinearFunction | |
| template<class Derived , class VectorBase > | |
| LinearFunction (Variable &x, const MatrixBase< Derived > &A, const VectorBase &b) | |
| ~LinearFunction () | |
| void | invalidateb (int timestamp) |
| const MatrixXd & | getA () const |
| const VectorXd & | getb () const |
| void | changeA (const MatrixXd &A) |
| void | changeb (const VectorXd &b) |
Public Member Functions inherited from ocra::Function | |
| virtual | ~Function () |
| int | getDimension () const |
| virtual void | updateFdot () const |
| virtual void | updateFddot () const |
| virtual void | updateJdotXdot () const |
| const Variable & | getVariable () const |
| Variable & | getVariable () |
| template<eFunctionAbility Ability> | |
| void | invalidate () |
| void | invalidateAll (int timestamp) |
| void | invalidateAll () |
| template<eFunctionAbility Ability> | |
| bool | isValid () const |
| template<eFunctionAbility Ability> | |
| bool | canCompute () const |
| template<eFunctionAbility Ability> | |
| const IFunction< Ability >::return_type & | get () const |
| template<eFunctionAbility Ability> | |
| IFunction< Ability >::return_sub_type | get (int index) const |
| const VectorXd & | getValue () const |
| double | getValue (int index) const |
| const MatrixXd & | getJacobian () const |
| MatrixXdRow | getJacobian (int index) const |
Public Member Functions inherited from ocra::ObserverSubject | |
| ObserverSubject () | |
| virtual | ~ObserverSubject () |
Public Member Functions inherited from ocra::Observer | |
| virtual | ~Observer () |
| template<int EVT> | |
| void | bind (SubjectBase< EVT > &subject) |
| Call this method to automatically propagate observed events to observers connected to the subject given in argument. More... | |
| template<int EVT> | |
| void | stopPropagation () |
Public Member Functions inherited from ocra::ObserverBase< EVT_RESIZE > | |
| void | bind (subject_type &subject) |
| Call this method to automatically propagate observed events to observers connected to the subject given in argument. More... | |
Public Member Functions inherited from ocra::ObserverBase< EVT_CHANGE_DEPENDENCIES > | |
| void | bind (subject_type &subject) |
| Call this method to automatically propagate observed events to observers connected to the subject given in argument. More... | |
Public Member Functions inherited from ocra::ObserverBase< EVT_CHANGE_VALUE > | |
| void | bind (subject_type &subject) |
| Call this method to automatically propagate observed events to observers connected to the subject given in argument. More... | |
Public Member Functions inherited from ocra::Subject | |
| virtual | ~Subject () |
| template<int EVT, class Derived , class Base > | |
| void | connect (Derived &object, void(Base::*newCallback)(int)) const |
| Call this method to register a non-static method as a callback. More... | |
| template<int EVT> | |
| void | connect (void(*newCallback)(int)) const |
| Call this method to register a free function as a callback. More... | |
| template<int EVT, class Derived , class Base > | |
| void | disconnect (Derived &object, void(Base::*callbackToErase)(int)) const |
| Disconnect non-static method. More... | |
| template<int EVT> | |
| void | disconnect (void(*callbackToErase)(int)) const |
| Disconnect free function. More... | |
| template<int EVT> | |
| void | propagate () const |
| template<int EVT> | |
| void | propagate (int timestamp) const |
Public Member Functions inherited from ocra::SubjectBase< EVT_RESIZE > | |
| void | connect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type newCallback) const |
| Call this method to register a non-static method as a callback. More... | |
| void | connect (typename SubjectBaseTraits< EVT, void >::callback_type newCallback) const |
| Call this method to register a free function as a callback. More... | |
| void | disconnect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type callback) const |
| Disconnect non-static method. More... | |
| void | disconnect (typename SubjectBaseTraits< EVT, void >::callback_type callbackToErase) const |
| Disconnect free function. More... | |
| void | propagate (int timestamp) const |
| void | propagate () const |
Public Member Functions inherited from ocra::SubjectBase< EVT_CHANGE_DEPENDENCIES > | |
| void | connect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type newCallback) const |
| Call this method to register a non-static method as a callback. More... | |
| void | connect (typename SubjectBaseTraits< EVT, void >::callback_type newCallback) const |
| Call this method to register a free function as a callback. More... | |
| void | disconnect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type callback) const |
| Disconnect non-static method. More... | |
| void | disconnect (typename SubjectBaseTraits< EVT, void >::callback_type callbackToErase) const |
| Disconnect free function. More... | |
| void | propagate (int timestamp) const |
| void | propagate () const |
Public Member Functions inherited from ocra::SubjectBase< EVT_CHANGE_VALUE > | |
| void | connect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type newCallback) const |
| Call this method to register a non-static method as a callback. More... | |
| void | connect (typename SubjectBaseTraits< EVT, void >::callback_type newCallback) const |
| Call this method to register a free function as a callback. More... | |
| void | disconnect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type callback) const |
| Disconnect non-static method. More... | |
| void | disconnect (typename SubjectBaseTraits< EVT, void >::callback_type callbackToErase) const |
| Disconnect free function. More... | |
| void | propagate (int timestamp) const |
| void | propagate () const |
Public Member Functions inherited from ocra::IFunctionProperties | |
| bool | hasSeparableTimeDependancy (void) const |
| eFunctionLinearity | getType (void) const |
| eFunctionConvexity | getConvexityProperty (void) const |
| int | getContinuityProperty (void) const |
| const std::string & | getProperty (int i) const |
| int | getNumberOfProperties (void) const |
| bool | hasProperty (const std::string &functionProperty) const |
| bool | isExplicitlyTimeDependant (void) const |
Public Member Functions inherited from ocra::NamedInstance | |
| NamedInstance (const std::string &name) | |
| const std::string & | getName () const |
| virtual | ~NamedInstance () |
Public Member Functions inherited from ocra::AbilitySet | |
| AbilitySet & | add (eFunctionAbility prop) |
| AbilitySet & | remove (eFunctionAbility prop) |
Protected Attributes | |
| double | _mu |
| double | _margin |
| Matrix3d | _R_cone |
| MatrixXd | _J_cache |
Protected Attributes inherited from ocra::LinearFunction | |
| VectorXd | _b |
| bool | _bIsUpToDate |
Protected Attributes inherited from ocra::Function | |
| Variable & | x |
| VectorXd & | _value |
| MatrixXd & | _jacobian |
| const int & | _dim |
Static Protected Attributes | |
| static const double | ANGLE_OFFSET = 0 |
Additional Inherited Members | |
Protected Types inherited from ocra::ObserverBase< EVT_RESIZE > | |
| typedef SubjectBase< EVT > | subject_type |
| typedef InvokerBase< EVT > | invoker_type |
Protected Types inherited from ocra::ObserverBase< EVT_CHANGE_DEPENDENCIES > | |
| typedef SubjectBase< EVT > | subject_type |
| typedef InvokerBase< EVT > | invoker_type |
Protected Types inherited from ocra::ObserverBase< EVT_CHANGE_VALUE > | |
| typedef SubjectBase< EVT > | subject_type |
| typedef InvokerBase< EVT > | invoker_type |
Protected Member Functions inherited from ocra::LinearFunction | |
| LinearFunction (Variable &x, int dimension) | |
| virtual void | updateb () const |
| virtual void | doUpdateInputSizeEnd () |
| virtual void | updateValue () const |
| virtual void | updateJacobian () const |
| virtual void | doChangeA (const MatrixXd &A) |
| virtual void | doChangeb (const VectorXd &b) |
| void | inhibitPropagationFromb () const |
| void | desinhibitPropagationFromb () const |
Protected Member Functions inherited from ocra::Function | |
| Function (Variable &x, int dimension, eFunctionLinearity linearity=LINEARITY_UNDEFINED, eFunctionConvexity convexity=CONVEXITY_UNDEFINED, int continuity=CONTINUITY_UNKNOWN, bool explicitlyTimeDependant=false, bool separableTimeDependancy=true) | |
| Function Constructor. More... | |
| void | disconnectVariable () |
| void | changeFunctionDimension (int newDimension) |
| void | updateInputSize (int timestamp) |
| void | resize () |
| virtual int | computeDimensionFromInputSize () const |
| virtual void | doUpdateInputSizeBegin () |
| virtual void | doUpdateDimensionBegin (int newDimension) |
| virtual void | doUpdateDimensionEnd (int oldDimension) |
Protected Member Functions inherited from ocra::ObserverBase< EVT_RESIZE > | |
| void | stopPropagation () |
| Call this method from your callbacks to avoid propagation to the bound subject (if any). More... | |
| ObserverBase () | |
| ~ObserverBase () | |
Protected Member Functions inherited from ocra::ObserverBase< EVT_CHANGE_DEPENDENCIES > | |
| void | stopPropagation () |
| Call this method from your callbacks to avoid propagation to the bound subject (if any). More... | |
| ObserverBase () | |
| ~ObserverBase () | |
Protected Member Functions inherited from ocra::ObserverBase< EVT_CHANGE_VALUE > | |
| void | stopPropagation () |
| Call this method from your callbacks to avoid propagation to the bound subject (if any). More... | |
| ObserverBase () | |
| ~ObserverBase () | |
Protected Member Functions inherited from ocra::SubjectBase< EVT_RESIZE > | |
| SubjectBase () | |
| ~SubjectBase () | |
Protected Member Functions inherited from ocra::SubjectBase< EVT_CHANGE_DEPENDENCIES > | |
| SubjectBase () | |
| ~SubjectBase () | |
Protected Member Functions inherited from ocra::SubjectBase< EVT_CHANGE_VALUE > | |
| SubjectBase () | |
| ~SubjectBase () | |
Protected Member Functions inherited from ocra::IFunctionProperties | |
| IFunctionProperties (eFunctionLinearity linearity=LINEARITY_UNDEFINED, eFunctionConvexity convexity=CONVEXITY_UNDEFINED, int continuity=CONTINUITY_UNKNOWN, bool explicitlyTimeDependant=false, bool separableTimeDependancy=true) | |
| IFunctionProperties Constructor. More... | |
| void | changeType (eFunctionLinearity newType) |
| void | changeConvexityProperty (eFunctionConvexity newProperty) |
| void | changeContinuityProperty (int newProperty) |
| void | addProperty (const std::string &functionProperty) |
| void | removeProperty (const std::string &functionProperty) |
| void | changeExplicitTimeDependancy (bool b) |
| void | changeSeparableTimeDependancy (bool b) |
Protected Member Functions inherited from ocra::AbilitySet | |
| AbilitySet (const std::vector< bool > &usageSet) | |
| const std::vector< bool > & | getUsageSet () const |
| AbilitySet (eFunctionAbility prop0=FUN_VALUE, eFunctionAbility prop1=FUN_VALUE) | |
| AbilitySet (eFunctionAbility prop0, eFunctionAbility prop1, eFunctionAbility prop2, eFunctionAbility prop3=FUN_VALUE, eFunctionAbility prop4=FUN_VALUE) | |
| AbilitySet (eFunctionAbility prop0, eFunctionAbility prop1, eFunctionAbility prop2, eFunctionAbility prop3, eFunctionAbility prop4, eFunctionAbility prop5, eFunctionAbility prop6=FUN_VALUE, eFunctionAbility prop7=FUN_VALUE, eFunctionAbility prop8=FUN_VALUE, eFunctionAbility prop9=FUN_VALUE) | |
Protected Member Functions inherited from ocra::CoupledInputOutputSize | |
| CoupledInputOutputSize (bool coupledInputOutputSize) | |
| bool | inputAndOutputSizesAreCoupled () const |
LinearizedCoulombFunction class.
Implementation of
discretized and linearized. The function is thus a linear function Af+b with b normally equal to 0 and A built so that f is in the cone if
. b can however be given a constant non-zero value to account for a (possibly negative) margin.
Definition at line 34 of file LinearizedCoulombFunction.h.
Definition at line 38 of file LinearizedCoulombFunction.h.
| ocra::LinearizedCoulombFunction::LinearizedCoulombFunction | ( | Variable & | f, |
| double | frictionCoeff, | ||
| int | numberOfFaces = 4, |
||
| double | margin = 0 |
||
| ) |
Constructor Build a linear function Af+b such as Af+b<=0 is a discretized cone with numberOfFaces conservatively representing a Coulomb friction cone with friction coefficient frictionCoeff. f is supposed to represent a 3-dimensionnal force in a local frame whose z-axis is the normal vector at the contact point (so that it is the axis of the cone). b should therefore be equal to zero (which is its default value, but could have its components set to another value to account for a (possibly negative) margin.
By default, the first edge of the cone will be in the xz plane. This can however be changed by setting the static parameter ANGLE_OFFSET to a non-zero value.
Definition at line 11 of file LinearizedCoulombFunction.cpp.
| const Matrix3d & ocra::LinearizedCoulombFunction::getConeOrientation | ( | ) | const |
Definition at line 67 of file LinearizedCoulombFunction.cpp.
| real ocra::LinearizedCoulombFunction::getFrictionCoeff | ( | ) | const |
getters/setters
Definition at line 38 of file LinearizedCoulombFunction.cpp.
| real ocra::LinearizedCoulombFunction::getMargin | ( | ) | const |
Definition at line 43 of file LinearizedCoulombFunction.cpp.
| void ocra::LinearizedCoulombFunction::setConeOrientation | ( | const Matrix3d & | R | ) |
Definition at line 61 of file LinearizedCoulombFunction.cpp.
| void ocra::LinearizedCoulombFunction::setFrictionCoeff | ( | double | coeff | ) |
Definition at line 48 of file LinearizedCoulombFunction.cpp.
| void ocra::LinearizedCoulombFunction::setMargin | ( | double | margin | ) |
Definition at line 55 of file LinearizedCoulombFunction.cpp.
|
protected |
Definition at line 91 of file LinearizedCoulombFunction.h.
|
protected |
Definition at line 89 of file LinearizedCoulombFunction.h.
|
protected |
Definition at line 88 of file LinearizedCoulombFunction.h.
|
protected |
Definition at line 90 of file LinearizedCoulombFunction.h.
|
staticprotected |
Definition at line 95 of file LinearizedCoulombFunction.h.
1.8.11