55 return node*
k3D + dim;
65 Vector3d vector_base_to_ee_W = pos_ee_W - base_W;
66 Vector3d vector_base_to_ee_B = b_R_w*(vector_base_to_ee_W);
68 g.middleRows(
GetRow(k,
X),
k3D) = vector_base_to_ee_B;
74 for (
int dim=0; dim<
k3D; ++dim) {
79 bounds.at(
GetRow(k,dim)) = b;
107 jac.middleRows(row_start,
k3D) = b_R_w*
ee_motion_->GetJacobianOfPosWrtDurations(t);
Jacobian DerivOfRotVecMult(double t, const Vector3d &v, bool inverse) const
Returns the derivative of result of the linear equation M*v.
Constraints evaluated at discretized times along a trajectory.
NodeSpline::Ptr ee_motion_
the linear position of the endeffectors.
int GetRow(int node, int dimension) const
std::shared_ptr< KinematicModel > Ptr
static std::string EESchedule(uint ee)
Eigen::SparseMatrix< double, Eigen::RowMajor > MatrixSXd
Builds splines from node values (pos/vel) and durations.
Eigen::Vector3d nominal_ee_pos_B_
Converts Euler angles and derivatives to angular quantities.
NodeSpline::Ptr base_linear_
Eigen::Vector3d max_deviation_from_nominal_
void SetRows(int num_rows)
static std::string EEMotionNodes(uint ee)
int GetNumberOfNodes() const
Eigen::SparseMatrix< double, Eigen::RowMajor > Jacobian
NodeSpline::Ptr base_angular_
EulerConverter base_angular_
the orientation of the base.
RangeOfMotionConstraint(const KinematicModel::Ptr &robot_model, double T, double dt, const EE &ee, const SplineHolder &spline_holder)
Constructs a constraint instance.
void UpdateConstraintAtInstance(double t, int k, VectorXd &g) const override
Sets the constraint value a specific time t, corresponding to node k.
static const std::string base_ang_nodes
MatrixSXd GetRotationMatrixBaseToWorld(double t) const
Converts the Euler angles at time t to a rotation matrix.
NodeSpline::Ptr base_linear_
the linear position of the base.
void UpdateBoundsAtInstance(double t, int k, VecBound &) const override
Sets upper/lower bound a specific time t, corresponding to node k.
std::vector< Bounds > VecBound
void UpdateJacobianAtInstance(double t, int k, std::string, Jacobian &) const override
Sets Jacobian rows at a specific time t, corresponding to node k.
std::vector< NodeSpline::Ptr > ee_motion_
static const std::string base_lin_nodes