Drake
drake::systems::plants Namespace Reference

Namespaces

 joints
 
 rigid_body_plant
 
 test
 

Classes

class  IKTrajectoryHelper
 This class is a helper for backend implementations of inverse kinematics trajectory planning. More...
 
class  KinematicsCacheHelper
 Helper class to avoid recalculating a kinematics cache which is going to be used repeatedly by multiple other classes. More...
 
class  QuasiStaticConstraintWrapper
 
class  SingleTimeKinematicConstraintWrapper
 

Functions

int GetIKSolverInfo (SolutionResult result)
 
void SetIKSolverOptions (const IKoptions &ikoptions, drake::solvers::MathematicalProgram *prog)
 Set solver options based on IK options. More...
 
void AddSingleTimeLinearPostureConstraint (const double *t, const RigidBodyConstraint *, int nq, const drake::solvers::MatrixXDecisionVariable &vars, drake::solvers::MathematicalProgram *prog)
 Add a single time linear posture constraint to prog at time t covering vars. More...
 
void AddQuasiStaticConstraint (const double *t, const RigidBodyConstraint *constraint, KinematicsCacheHelper< double > *kin_helper, const drake::solvers::MatrixXDecisionVariable &vars, drake::solvers::MathematicalProgram *prog)
 Add a single time linear posture constraint to prog at time t covering vars. More...
 
template<typename DerivedA , typename DerivedB , typename DerivedC >
void inverseKinBackend (RigidBodyTree< double > *model, const int nT, const double *t, const MatrixBase< DerivedA > &q_seed, const MatrixBase< DerivedB > &q_nom, const int num_constraints, const RigidBodyConstraint *const *constraint_array, const IKoptions &ikoptions, MatrixBase< DerivedC > *q_sol, int *info, std::vector< std::string > *infeasible_constraint)
 
template void inverseKinBackend (RigidBodyTree< double > *model, const int nT, const double *t, const MatrixBase< Map< MatrixXd >> &q_seed, const MatrixBase< Map< MatrixXd >> &q_nom, const int num_constraints, const RigidBodyConstraint *const *constraint_array, const IKoptions &ikoptions, MatrixBase< Map< MatrixXd >> *q_sol, int *info, std::vector< std::string > *infeasible_constraint)
 
template void inverseKinBackend (RigidBodyTree< double > *model, const int nT, const double *t, const MatrixBase< MatrixXd > &q_seed, const MatrixBase< MatrixXd > &q_nom, const int num_constraints, const RigidBodyConstraint *const *constraint_array, const IKoptions &ikoptions, MatrixBase< MatrixXd > *q_sol, int *info, std::vector< std::string > *infeasible_constraint)
 
template void inverseKinBackend (RigidBodyTree< double > *model, const int nT, const double *t, const MatrixBase< Map< VectorXd >> &q_seed, const MatrixBase< Map< VectorXd >> &q_nom, const int num_constraints, const RigidBodyConstraint *const *constraint_array, const IKoptions &ikoptions, MatrixBase< Map< VectorXd >> *q_sol, int *info, std::vector< std::string > *infeasible_constraint)
 
template void inverseKinBackend (RigidBodyTree< double > *model, const int nT, const double *t, const MatrixBase< VectorXd > &q_seed, const MatrixBase< VectorXd > &q_nom, const int num_constraints, const RigidBodyConstraint *const *constraint_array, const IKoptions &ikoptions, MatrixBase< VectorXd > *q_sol, int *info, std::vector< std::string > *infeasible_constraint)
 
template<typename DerivedA , typename DerivedB , typename DerivedC >
void inverseKinBackend (RigidBodyTree< double > *model, const int nT, const double *t, const Eigen::MatrixBase< DerivedA > &q_seed, const Eigen::MatrixBase< DerivedB > &q_nom, int num_constraints, const RigidBodyConstraint *const *constraint_array, const IKoptions &ikoptions, Eigen::MatrixBase< DerivedC > *q_sol, int *info, std::vector< std::string > *infeasible_constraint)
 This function is primarily documented through rigid_body_ik.h. More...
 
template<typename DerivedA , typename DerivedB , typename DerivedC , typename DerivedD , typename DerivedE >
void inverseKinTrajBackend (RigidBodyTree< double > *model, const int nT, const double *t, const Eigen::MatrixBase< DerivedA > &q_seed, const Eigen::MatrixBase< DerivedB > &q_nom, int num_constraints, const RigidBodyConstraint *const *constraint_array, const IKoptions &ikoptions, Eigen::MatrixBase< DerivedC > *q_sol, Eigen::MatrixBase< DerivedD > *qdot_sol, Eigen::MatrixBase< DerivedE > *qddot_sol, int *info, std::vector< std::string > *infeasible_constraint)
 This function is primarily documented through rigid_body_ik.h. More...
 
int GetIKSolverInfo (drake::solvers::SolutionResult result)
 Translate a solver result into something expected for the info output parameter. More...
 
template void inverseKinTrajBackend (RigidBodyTree< double > *model, const int nT, const double *t, const Eigen::MatrixBase< Eigen::Map< MatrixXd >> &q_seed, const Eigen::MatrixBase< Eigen::Map< MatrixXd >> &q_nom, const int num_constraints, const RigidBodyConstraint *const *constraint_array, const IKoptions &ikoptions, Eigen::MatrixBase< Eigen::Map< MatrixXd >> *q_sol, Eigen::MatrixBase< Eigen::Map< MatrixXd >> *qdot_sol, Eigen::MatrixBase< Eigen::Map< MatrixXd >> *qddot_sol, int *info, std::vector< std::string > *infeasible_constraint)
 
template void inverseKinTrajBackend (RigidBodyTree< double > *model, const int nT, const double *t, const Eigen::MatrixBase< MatrixXd > &q_seed, const Eigen::MatrixBase< MatrixXd > &q_nom, const int num_constraints, const RigidBodyConstraint *const *constraint_array, const IKoptions &ikoptions, Eigen::MatrixBase< MatrixXd > *q_sol, Eigen::MatrixBase< MatrixXd > *qdot_sol, Eigen::MatrixBase< MatrixXd > *qddot_sol, int *info, std::vector< std::string > *infeasible_constraint)
 

Function Documentation

void AddQuasiStaticConstraint ( const double t,
const RigidBodyConstraint constraint,
KinematicsCacheHelper< double > *  kin_helper,
const drake::solvers::MatrixXDecisionVariable vars,
drake::solvers::MathematicalProgram prog 
)

Add a single time linear posture constraint to prog at time t covering vars.

nq is the KinematicsCacheHelper for the underlying model.

kin_helper is the KinematicsCacheHelper for the underlying model.

Here is the call graph for this function:

Here is the caller graph for this function:

void AddSingleTimeLinearPostureConstraint ( const double t,
const RigidBodyConstraint ,
int  nq,
const drake::solvers::MatrixXDecisionVariable vars,
drake::solvers::MathematicalProgram prog 
)

Add a single time linear posture constraint to prog at time t covering vars.

nq is the number of positions in the underlying model.

Here is the call graph for this function:

Here is the caller graph for this function:

int drake::systems::plants::GetIKSolverInfo ( SolutionResult  result)

Here is the caller graph for this function:

int drake::systems::plants::GetIKSolverInfo ( drake::solvers::SolutionResult  result)

Translate a solver result into something expected for the info output parameter.

void drake::systems::plants::inverseKinBackend ( RigidBodyTree< double > *  model,
const int  nT,
const double t,
const Eigen::MatrixBase< DerivedA > &  q_seed,
const Eigen::MatrixBase< DerivedB > &  q_nom,
int  num_constraints,
const RigidBodyConstraint *const *  constraint_array,
const IKoptions ikoptions,
Eigen::MatrixBase< DerivedC > *  q_sol,
int info,
std::vector< std::string > *  infeasible_constraint 
)

This function is primarily documented through rigid_body_ik.h.

All parameters are passthroughs from there. The infeasible_constraint parameter is currently always empty untitl MathematicalProgram supports determining which constraints were infeasible.

void drake::systems::plants::inverseKinBackend ( RigidBodyTree< double > *  model,
const int  nT,
const double t,
const MatrixBase< DerivedA > &  q_seed,
const MatrixBase< DerivedB > &  q_nom,
const int  num_constraints,
const RigidBodyConstraint *const *  constraint_array,
const IKoptions ikoptions,
MatrixBase< DerivedC > *  q_sol,
int info,
std::vector< std::string > *  infeasible_constraint 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template void drake::systems::plants::inverseKinBackend ( RigidBodyTree< double > *  model,
const int  nT,
const double t,
const MatrixBase< Map< MatrixXd >> &  q_seed,
const MatrixBase< Map< MatrixXd >> &  q_nom,
const int  num_constraints,
const RigidBodyConstraint *const *  constraint_array,
const IKoptions ikoptions,
MatrixBase< Map< MatrixXd >> *  q_sol,
int info,
std::vector< std::string > *  infeasible_constraint 
)
template void drake::systems::plants::inverseKinBackend ( RigidBodyTree< double > *  model,
const int  nT,
const double t,
const MatrixBase< MatrixXd > &  q_seed,
const MatrixBase< MatrixXd > &  q_nom,
const int  num_constraints,
const RigidBodyConstraint *const *  constraint_array,
const IKoptions ikoptions,
MatrixBase< MatrixXd > *  q_sol,
int info,
std::vector< std::string > *  infeasible_constraint 
)
template void drake::systems::plants::inverseKinBackend ( RigidBodyTree< double > *  model,
const int  nT,
const double t,
const MatrixBase< Map< VectorXd >> &  q_seed,
const MatrixBase< Map< VectorXd >> &  q_nom,
const int  num_constraints,
const RigidBodyConstraint *const *  constraint_array,
const IKoptions ikoptions,
MatrixBase< Map< VectorXd >> *  q_sol,
int info,
std::vector< std::string > *  infeasible_constraint 
)
template void drake::systems::plants::inverseKinBackend ( RigidBodyTree< double > *  model,
const int  nT,
const double t,
const MatrixBase< VectorXd > &  q_seed,
const MatrixBase< VectorXd > &  q_nom,
const int  num_constraints,
const RigidBodyConstraint *const *  constraint_array,
const IKoptions ikoptions,
MatrixBase< VectorXd > *  q_sol,
int info,
std::vector< std::string > *  infeasible_constraint 
)
void inverseKinTrajBackend ( RigidBodyTree< double > *  model,
const int  nT,
const double t,
const Eigen::MatrixBase< DerivedA > &  q_seed,
const Eigen::MatrixBase< DerivedB > &  q_nom,
int  num_constraints,
const RigidBodyConstraint *const *  constraint_array,
const IKoptions ikoptions,
Eigen::MatrixBase< DerivedC > *  q_sol,
Eigen::MatrixBase< DerivedD > *  qdot_sol,
Eigen::MatrixBase< DerivedE > *  qddot_sol,
int info,
std::vector< std::string > *  infeasible_constraint 
)

This function is primarily documented through rigid_body_ik.h.

All parameters are passthroughs from inverseKinTraj(). The infeasible_constraint parameter is currently always empty untitl MathematicalProgram supports determining which constraints were infeasible.

Here is the call graph for this function:

Here is the caller graph for this function:

template void drake::systems::plants::inverseKinTrajBackend ( RigidBodyTree< double > *  model,
const int  nT,
const double t,
const Eigen::MatrixBase< Eigen::Map< MatrixXd >> &  q_seed,
const Eigen::MatrixBase< Eigen::Map< MatrixXd >> &  q_nom,
const int  num_constraints,
const RigidBodyConstraint *const *  constraint_array,
const IKoptions ikoptions,
Eigen::MatrixBase< Eigen::Map< MatrixXd >> *  q_sol,
Eigen::MatrixBase< Eigen::Map< MatrixXd >> *  qdot_sol,
Eigen::MatrixBase< Eigen::Map< MatrixXd >> *  qddot_sol,
int info,
std::vector< std::string > *  infeasible_constraint 
)
template void drake::systems::plants::inverseKinTrajBackend ( RigidBodyTree< double > *  model,
const int  nT,
const double t,
const Eigen::MatrixBase< MatrixXd > &  q_seed,
const Eigen::MatrixBase< MatrixXd > &  q_nom,
const int  num_constraints,
const RigidBodyConstraint *const *  constraint_array,
const IKoptions ikoptions,
Eigen::MatrixBase< MatrixXd > *  q_sol,
Eigen::MatrixBase< MatrixXd > *  qdot_sol,
Eigen::MatrixBase< MatrixXd > *  qddot_sol,
int info,
std::vector< std::string > *  infeasible_constraint 
)
void SetIKSolverOptions ( const IKoptions ikoptions,
drake::solvers::MathematicalProgram prog 
)

Set solver options based on IK options.

Here is the call graph for this function:

Here is the caller graph for this function: