Typedefs | |
using | IndexList = OMPartial::IndexList |
template<typename M > | |
using | MatNdMappable = typename std::conditional< M::IsRowMajor||M::IsVectorAtCompileTime, M, Eigen::Matrix< typename M::Scalar, M::RowsAtCompileTime, M::ColsAtCompileTime, Eigen::RowMajor > >::type |
Functions | |
void | MatNd_fabsClipEleSelf (MatNd *self, double negUpperBound, double posLowerBound) |
MatNd * | MatNd_signs (const MatNd *src) |
static bool | getMatrixProperty (Eigen::MatrixXd &out, PropertySource *ps, const char *property, unsigned int expectedRows, unsigned int expectedCols) |
static bool | getVectorProperty (Eigen::VectorXd &out, PropertySource *ps, const char *property, unsigned int expectedSize) |
for (auto &name :actionSpace->getNames()) | |
static void | copy_prop_to_xml_attr (xmlNodePtr node, PropertySource *source, const char *name, const char *xmlName=nullptr) |
RcsCollisionMdl * | RcsCollisionModel_createFromConfig (RcsGraph *graph, PropertySource *config) |
static bool | defaultWrapJointAngle (RcsJoint *joint) |
static IndexList | loadIndexList (IndexList input, unsigned int dim, bool exclude, const char *category) |
static IndexList | loadMask (const std::vector< bool > &mask, unsigned int dim, bool exclude, const char *category) |
template<typename T > | |
static void | apply (T &partial, const T &full, const std::vector< unsigned int > &keptIndices) |
void | Vec33d_setZero (double v[3][3]) |
void | Vec33d_add (double dst[3][3], const double v1[3][3], const double v2[3][3]) |
void | setVortexLogLevel (const char *level) |
static void | initDefaultNames (std::vector< std::string > &out, unsigned int dim) |
template<typename M > | |
MatNd | viewEigen2MatNd (M &src) |
template<typename M = Eigen::MatrixXd> | |
Eigen::Map< MatNdMappable< M > > | viewMatNd2Eigen (MatNd *src) |
template<typename M = Eigen::MatrixXd> | |
Eigen::Map< const MatNdMappable< M > > | viewMatNd2Eigen (const MatNd *src) |
template<typename M > | |
void | copyMatNd2Eigen (M &dst, const MatNd *src) |
template<typename M > | |
void | copyEigen2MatNd (MatNd *dst, const M &src) |
void | intStep2ndOrder (MatNd *x, MatNd *xd, const MatNd *xdd, double dt, IntMode mode) |
void | intStep1stOrder (MatNd *x, const MatNd *xd_0, const MatNd *xd_T, double dt, IntMode mode) |
template<typename ... Args> | |
std::string | string_format (const std::string &format, Args ... args) |
static std::string | spaceJoinedString (py::handle iterable) |
static xmlNodePtr | dict2xml (const py::dict &data, xmlDocPtr doc, const char *nodeName) |
Value freeRatio is the ratio of the joint's half range in which the joint limit gradient kicks in. For instance if freeRatio is 1, the whole joint range is without gradient. If freeRatio is 0, the gradient follows a quadratic cost over the whole range.
Value freeRange is the range starting from q0, where the gradient is 0. The value penaltyRange is the range where the gradient is not 0. Here is an illustration:
q_lowerLimit q_lowerRange q_0 q_upperRange q_upperLimit | | | | | | | | | | __________________/__________/____________/_______________/ a b c d
freeRatio: b/(a+b) c/(c+d) freeRange: b c penaltyRange: a d
cost = q in a: 0.5 * wJL * ((q-q_lowerRange)/a)^2 => c(limit) = 0.5*wJL q in b: 0 q in c: 0 q in d: 0.5 * wJL * ((q-q_upperRange)/d)^2 => c(limit) = 0.5*wJL
gradient = q in a: (q-q_lowerRange)*wJL/a^2 => grad(limit) = 0.5*wJL/a q in b: 0 q in c: 0 q in d: (q-q_upperRange)*wJL/a^2 => grad(limit) = 0.5*wJL/d
For the default case wJL=1 and freeRange=0, we get: dH_i = 0.5/halfRange and for symmetric joint centers, we get: dH_i = 1.0/range If we interpret it as a velocity, it's the inverse of the joint range.
using Rcs::IndexList = typedef OMPartial::IndexList |
Definition at line 41 of file OMPartial.cpp.
using Rcs::MatNdMappable = typedef typename std::conditional< M::IsRowMajor || M::IsVectorAtCompileTime, M, Eigen::Matrix< typename M::Scalar, M::RowsAtCompileTime, M::ColsAtCompileTime, Eigen::RowMajor> >::type |
Definition at line 74 of file eigen_matnd.h.
|
strong |
Integration mode.
Enumerator | |
---|---|
ForwardEuler | |
BackwardEuler | |
SymplecticEuler |
Definition at line 42 of file integrator.h.
|
strong |
Combination method for tasks a.k.a. movement primitives Determines how the contribution of each task is scaled with its activation.
Enumerator | |
---|---|
Sum | |
Mean | |
SoftMax | |
Product |
Definition at line 46 of file ActionModel.h.
|
static |
Definition at line 182 of file OMPartial.cpp.
|
inlinestatic |
Definition at line 54 of file ExperimentConfig.cpp.
void Rcs::copyEigen2MatNd | ( | MatNd * | dst, |
const M & | src | ||
) |
Copy a matrix from Eigen to Rcs.
M | eigen matrix type |
dst | destination rcs matrix |
src | source eigen matrix |
Definition at line 132 of file eigen_matnd.h.
void Rcs::copyMatNd2Eigen | ( | M & | dst, |
const MatNd * | src | ||
) |
Copy a matrix from Rcs to Eigen.
M | eigen matrix type |
dst | destination eigen matrix |
src | source rcs matrix |
Definition at line 120 of file eigen_matnd.h.
|
static |
Definition at line 48 of file OMJointState.cpp.
|
static |
Definition at line 362 of file PropertySourceDict.cpp.
Rcs::for | ( | auto &name :actionSpace-> | getNames() | ) |
Definition at line 85 of file DataLogger.cpp.
|
static |
Get an Eigen matrix value from a config entry.
Converts the config value to a MatNd, checks the dimensions, and copies the contents into the output reference.
[out] | out | storage for read value. |
[in] | ps | Property source to load from. |
[in] | property | property name |
[in] | expectedRows | Required row count. |
[in] | expectedCols | Required column count. |
std::invalid_argument | if the matrix dimensions do not match. |
Definition at line 56 of file DynamicalSystem.cpp.
|
static |
Get an Eigen vector value from a config entry.
Converts the config value to a MatNd, checks the dimensions, and copies the contents into the output reference.
[out] | out | storage for read value. |
[in] | ps | Property source to load from. |
[in] | property | property name |
[in] | expectedSize | Required element count. |
std::invalid_argument | if the matrix dimensions do not match. |
Definition at line 95 of file DynamicalSystem.cpp.
|
static |
Definition at line 41 of file BoxSpace.cpp.
void Rcs::intStep1stOrder | ( | MatNd * | x, |
const MatNd * | xd_0, | ||
const MatNd * | xd_T, | ||
double | dt, | ||
IntMode | mode | ||
) |
First order integration function.
[in,out] | x | current value matrix, updated with new value. |
[in] | xd_0 | first derivative matrix at current timestep to integrate. Used by ForwardEuler. |
[in] | xd_T | first derivative matrix at next timestep to integrate. Used by BackwardEuler. |
dt | timestep length in seconds | |
mode | ForwardEuler or BackwardEuler |
Definition at line 65 of file integrator.cpp.
void Rcs::intStep2ndOrder | ( | MatNd * | x, |
MatNd * | xd, | ||
const MatNd * | xdd, | ||
double | dt, | ||
IntMode | mode | ||
) |
Second order integration function.
[in,out] | x | current value matrix, updated with new value. |
[in,out] | xd | current first derivative value matrix, updated with new value. |
[in] | xdd | second derivative matrix to integrate |
dt | timestep length in seconds | |
mode | ForwardEuler or SymplecticEuler |
Definition at line 38 of file integrator.cpp.
|
static |
Definition at line 44 of file OMPartial.cpp.
|
static |
Definition at line 73 of file OMPartial.cpp.
void Rcs::MatNd_fabsClipEleSelf | ( | MatNd * | self, |
double | negUpperBound, | ||
double | posLowerBound | ||
) |
Definition at line 42 of file AMIKControllerActivation.cpp.
MatNd* Rcs::MatNd_signs | ( | const MatNd * | src | ) |
Definition at line 58 of file AMIKControllerActivation.cpp.
RcsCollisionMdl * Rcs::RcsCollisionModel_createFromConfig | ( | RcsGraph * | graph, |
Rcs::PropertySource * | config | ||
) |
Create a collision model using the settings from the given RcsPySim config.
graph | graph to observe |
config | collision configuration |
std::invalid_argument | if the collision model could not be created. |
Definition at line 67 of file ExperimentConfig.cpp.
void Rcs::setVortexLogLevel | ( | const char * | level | ) |
Set Vortex' log level if vortex is installed.
Definition at line 80 of file vortex_log.cpp.
|
static |
Definition at line 346 of file PropertySourceDict.cpp.
std::string Rcs::string_format | ( | const std::string & | format, |
Args ... | args | ||
) |
Definition at line 45 of file string_format.h.
void Rcs::Vec33d_add | ( | double | dst[3][3], |
const double | v1[3][3], | ||
const double | v2[3][3] | ||
) |
Definition at line 52 of file PPDBodyOrientation.cpp.
void Rcs::Vec33d_setZero | ( | double | v[3][3] | ) |
Definition at line 43 of file PPDBodyOrientation.cpp.
MatNd Rcs::viewEigen2MatNd | ( | M & | src | ) |
View an eigen matrix as Rcs MatNd.
M | eigen matrix type |
src | eigen matrix |
Definition at line 48 of file eigen_matnd.h.
Eigen::Map<MatNdMappable<M> > Rcs::viewMatNd2Eigen | ( | MatNd * | src | ) |
Wrap a Rcs MatNd in a mutable Eigen Map object.
If M is column major, the resulting map will still wrap a row major matrix, since that is the storage order of MatNd.
M | desired eigen matrix type |
src | rcs matrix |
Definition at line 88 of file eigen_matnd.h.
Eigen::Map<const MatNdMappable<M> > Rcs::viewMatNd2Eigen | ( | const MatNd * | src | ) |
Wrap a read-only Rcs MatNd in a const Eigen Map object.
If M is column major, the resulting map will still wrap a row major matrix, since that is the storage order of MatNd.
M | desired eigen matrix type |
src | rcs matrix |
Definition at line 106 of file eigen_matnd.h.
|
static |
Definition at line 40 of file PPDMaterialProperties.cpp.
const unsigned int Rcs::PLATE_TASK_DIM = 6 |
Definition at line 44 of file AMPlatePos5D.cpp.
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 44 of file ControlPolicy.cpp.
|
static |
Definition at line 144 of file ExperimentConfig.cpp.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |