48 cost.noalias() = xd.transpose() *
_Q_diag * xd;
50 cost.noalias() = xd.transpose() *
_Q * xd;
58 assert(cost.size() == 1);
65 cost[0] += xd.transpose() *
_Q_diag * xd;
67 cost[0] += xd.transpose() *
_Q * xd;
72 cost[0] += u_k.transpose() *
_R_diag * u_k;
74 cost[0] += u_k.transpose() *
_R * u_k;
80 cost[0] += ud.transpose() *
_R_diag * ud;
82 cost[0] += ud.transpose() *
_R * ud;
103 cost.noalias() = xd.transpose() *
_Q_diag * xd;
105 cost.noalias() = xd.transpose() *
_Q * xd;
113 assert(cost.size() == 1);
120 cost[0] += xd.transpose() *
_Q_diag * xd;
122 cost[0] += xd.transpose() *
_Q * xd;
void computeNonIntegralStateTerm(int k, const Eigen::Ref< const Eigen::VectorXd > &x_k, Eigen::Ref< Eigen::VectorXd > cost) const override
virtual const OutputVector & getReferenceCached(int k) const=0
void computeIntegralStateControlTerm(int k, const Eigen::Ref< const Eigen::VectorXd > &x_k, const Eigen::Ref< const Eigen::VectorXd > &u_k, Eigen::Ref< Eigen::VectorXd > cost) const override
double normalize_theta(double theta)
normalize angle to interval [-pi, pi)