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  KinematicsCacheWithVHelper
 Stores and updates the kinematics cache for the rigid body tree. 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

◆ AddQuasiStaticConstraint()

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.

◆ AddSingleTimeLinearPostureConstraint()

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.

◆ GetIKSolverInfo() [1/2]

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

◆ GetIKSolverInfo() [2/2]

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

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

◆ inverseKinBackend() [1/6]

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.

◆ inverseKinBackend() [2/6]

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 
)

◆ inverseKinBackend() [3/6]

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 
)

◆ inverseKinBackend() [4/6]

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 
)

◆ inverseKinBackend() [5/6]

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 
)

◆ inverseKinBackend() [6/6]

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 
)

◆ inverseKinTrajBackend() [1/3]

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.

◆ inverseKinTrajBackend() [2/3]

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 
)

◆ inverseKinTrajBackend() [3/3]

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 
)

◆ SetIKSolverOptions()

void SetIKSolverOptions ( const IKoptions ikoptions,
drake::solvers::MathematicalProgram prog 
)

Set solver options based on IK options.