#include <Mathematics/PLDPSolver.hh>
 | 
|   | PLDPSolver (unsigned int CardU, double *iPu, double *Px, double *Pu, double *iLQ) | 
|   | Constructor.  More...
  | 
|   | 
|   | ~PLDPSolver () | 
|   | Destructor.  More...
  | 
|   | 
| int  | SolveProblem (double *CstPartOfTheCostFunction, unsigned int NbOfConstraints, double *LinearPartOfConstraints, double *CstPartOfConstraints, double *ZMPRef, double *XkYk, double *X, std::vector< int > &SimilarConstraint, unsigned int NumberOfRemovedConstraints, bool StartingSequence) | 
|   | Solve the optimization problem.  More...
  | 
|   | 
This class implements a two stage strategy to solve the following optimal problem: 
 
◆ PLDPSolver()
      
        
          | PLDPSolver::PLDPSolver  | 
          ( | 
          unsigned int  | 
          CardU,  | 
        
        
           | 
           | 
          double *  | 
          iPu,  | 
        
        
           | 
           | 
          double *  | 
          Px,  | 
        
        
           | 
           | 
          double *  | 
          Pu,  | 
        
        
           | 
           | 
          double *  | 
          iLQ  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ ~PLDPSolver()
      
        
          | PLDPSolver::~PLDPSolver  | 
          ( | 
           | ) | 
           | 
        
      
 
 
◆ AllocateMemoryForSolver()
  
  
      
        
          | void PLDPSolver::AllocateMemoryForSolver  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
Allocate memory for solver. 
 
 
◆ BackwardSubstitution()
  
  
      
        
          | int PLDPSolver::BackwardSubstitution  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
Compute v2 q (14b) in Dimitrov 2009. Second phase a Now solving LL^t v2 = v1 <-> L y = v1 with L^t v2 = y y solved with first phase. So now we are looking for v2. 
 
 
◆ ComputeAlpha()
  
  
      
        
          | double PLDPSolver::ComputeAlpha  | 
          ( | 
          vector< unsigned int > &  | 
          NewActivatedConstraints,  | 
         
        
           | 
           | 
          vector< int > &  | 
          SimilarConstraint  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Detecting violated constraints 
 
 
◆ ComputeInitialSolution()
  
  
      
        
          | int PLDPSolver::ComputeInitialSolution  | 
          ( | 
          double *  | 
          ZMPRef,  | 
         
        
           | 
           | 
          double *  | 
          XkYk,  | 
         
        
           | 
           | 
          bool  | 
          StartingSequence  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Compute the initial solution 
The initial solution of the problem is given by eq(14) Dimitar ICRA 2008 U0 = iPu * Px [Xkt Ykt]t + iPu * ZMPRef The only part which can not be precomputed is ZMPRef.
 
 
◆ ComputeProjectedDescentDirection()
  
  
      
        
          | int PLDPSolver::ComputeProjectedDescentDirection  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
Compute Projected descent direction. 
 
 
◆ ForwardSubstitution()
  
  
      
        
          | int PLDPSolver::ForwardSubstitution  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
Forward substitution. First Phase EE^t v2 = v1 <-> LL^t v2 = v1 Now solving L y = v1. 
 
 
◆ InitializeSolver()
  
  
      
        
          | void PLDPSolver::InitializeSolver  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
Initialize the internal variables of the class. 
 
 
◆ PrecomputeiPuPx()
  
  
      
        
          | int PLDPSolver::PrecomputeiPuPx  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
 
◆ SolveProblem()
      
        
          | int PLDPSolver::SolveProblem  | 
          ( | 
          double *  | 
          CstPartOfTheCostFunction,  | 
        
        
           | 
           | 
          unsigned int  | 
          NbOfConstraints,  | 
        
        
           | 
           | 
          double *  | 
          LinearPartOfConstraints,  | 
        
        
           | 
           | 
          double *  | 
          CstPartOfConstraints,  | 
        
        
           | 
           | 
          double *  | 
          ZMPRef,  | 
        
        
           | 
           | 
          double *  | 
          XkYk,  | 
        
        
           | 
           | 
          double *  | 
          X,  | 
        
        
           | 
           | 
          std::vector< int > &  | 
          SimilarConstraint,  | 
        
        
           | 
           | 
          unsigned int  | 
          NumberOfRemovedConstraints,  | 
        
        
           | 
           | 
          bool  | 
          StartingSequence  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Solve the optimization problem. 
Initialization de cholesky.
Step two: Compute the projected descent direction.
Step three : Compute alpha
Compute new solution.
 
 
◆ StoreCurrentZMPSolution()
  
  
      
        
          | void PLDPSolver::StoreCurrentZMPSolution  | 
          ( | 
          double *  | 
          XkYk | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
Store the current ZMP solution for hot start purposes. 
 
 
◆ WriteCurrentZMPSolution()
  
  
      
        
          | void PLDPSolver::WriteCurrentZMPSolution  | 
          ( | 
          string  | 
          filename,  | 
         
        
           | 
           | 
          double *  | 
          XkYk  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Write current ZMP ref trajectory associated with current value of m_Vk. 
 
 
The documentation for this class was generated from the following files: