rby1-sdk
Loading...
Searching...
No Matches
rb::OptimalControl< DOF > Class Template Reference

Classes

struct  COMTarget
 
struct  Input
 
struct  JointAngleTarget
 
struct  LinkTarget
 
struct  NullspaceJointTarget
 

Public Types

enum class  ExitCode : int { kNoError = 0 , kInequalityConstraintViolation , kQPSolverError }
 

Public Member Functions

 OptimalControl (std::shared_ptr< dyn::Robot< DOF > > robot, const std::vector< unsigned int > &joint_idx, bool nullspace_mapping=true, bool soft_position_boundary=false)
 
double GetError () const
 
ExitCode GetExitCode () const
 
std::string GetExitCodeMessage () const
 
double GetManipulability () const
 
std::optional< Eigen::VectorXd > Solve (Input in, std::shared_ptr< dyn::State< DOF > > state, double dt, double error_scaling, const Eigen::Vector< double, DOF > &position_lower_limit, const Eigen::Vector< double, DOF > &position_upper_limit, const Eigen::Vector< double, DOF > &velocity_limit, const Eigen::Vector< double, DOF > &acceleration_limit, bool need_forward_kinematics=false)
 
std::optional< Eigen::VectorXd > Solve (Input in, std::shared_ptr< dyn::State< DOF > > state, double dt, double error_scaling, const Eigen::Vector< double, DOF > &velocity_limit, const Eigen::Vector< double, DOF > &acceleration_limit, bool need_forward_kinematics=false)
 

Protected Member Functions

void AddCOMTargetCost (const COMTarget &target, const std::shared_ptr< dyn::State< DOF > > &state, double dt, double error_scaling, double &err_sum, double &max_cond)
 
void AddJointTargetCost (const JointAngleTarget &target, const std::shared_ptr< dyn::State< DOF > > &state, double dt, double error_scaling, double &err_sum)
 
void AddLinkTargetCosts (const std::vector< LinkTarget > &link_targets, const std::shared_ptr< dyn::State< DOF > > &state, double dt, double error_scaling, double &err_sum, double &max_cond)
 
void AddNullspaceCost_Projected (double weight, const Eigen::MatrixXd &J_primary)
 
void AddNullspaceCostToward_Projected (const Eigen::Vector< double, DOF > &v_des_full, double weight, const Eigen::MatrixXd &J_primary)
 
void AddNullspaceCostTowardQTarget_Projected (const NullspaceJointTarget &target, const std::shared_ptr< dyn::State< DOF > > &state, double dt, const Eigen::MatrixXd &J_primary)
 
template<int N>
double CalculateConditionNumber (const Eigen::Matrix< double, N, N > &A)
 
Eigen::MatrixXd ComputeNullspaceProjection (const Eigen::MatrixXd &J)
 
bool SetInequalityConstraints (const Eigen::VectorXd &q, const Eigen::VectorXd &qdot, const Eigen::VectorXd &q_lb, const Eigen::VectorXd &q_ub, const Eigen::VectorXd &velocity_limit, const Eigen::VectorXd &acceleration_limit, double dt)
 

The documentation for this class was generated from the following file: