Drake
Drake C++ Documentation
gripper_brick_planning_constraint_helper.h File Reference

Detailed Description

This file contains the utility function to add constraint in gripper/brick motion planning.

Include dependency graph for gripper_brick_planning_constraint_helper.h:

Namespaces

 drake
 
 drake::examples
 
 drake::examples::planar_gripper
 

Functions

template<typename T >
void AddFrictionConeConstraint (const GripperBrickHelper< T > &gripper_brick, Finger finger, BrickFace brick_face, const Eigen::Ref< const Vector2< symbolic::Variable >> &f_Cb_B, double friction_cone_shrink_factor, solvers::MathematicalProgram *prog)
 Adds the friction cone as linear constraints on the contact force f_Cb_B (the contact force applied on the brick contact point Cb, expressed in the brick frame B). More...
 
void AddFingerTipInContactWithBrickFaceConstraint (const GripperBrickHelper< double > &gripper_brick_system, Finger finger, BrickFace brick_face, solvers::MathematicalProgram *prog, const Eigen::Ref< const VectorX< symbolic::Variable >> &q_vars, systems::Context< double > *plant_context, double face_shrink_factor, double depth)
 Add the kinematic constraint that the finger tip (the sphere collision geometry in the tip of the finger) is in contact with a shrunk region on the brick face. More...
 
Eigen::Vector3d ComputeFingerTipInBrickFrame (const GripperBrickHelper< double > &gripper_brick, const Finger finger, const systems::Context< double > &plant_context, const Eigen::Ref< const Eigen::VectorXd > &q)
 
Vector3< AutoDiffXd > ComputeFingerTipInBrickFrame (const GripperBrickHelper< double > &gripper_brick, const Finger finger, const systems::Context< double > &plant_context, const Eigen::Ref< const AutoDiffVecXd > &q)
 
void AddFingerNoSlidingConstraint (const GripperBrickHelper< double > &gripper_brick, Finger finger, BrickFace face, double rolling_angle_bound, solvers::MathematicalProgram *prog, systems::Context< double > *from_context, systems::Context< double > *to_context, const Eigen::Ref< const VectorX< symbolic::Variable >> &q_from, const Eigen::Ref< const VectorX< symbolic::Variable >> &q_to, double face_shrink_factor, double depth)
 Impose a kinematic constraint which prohibits the fingertip sphere from sliding on the brick's face. More...
 
void AddFingerNoSlidingFromFixedPostureConstraint (const GripperBrickHelper< double > &gripper_brick, Finger finger, BrickFace face, double rolling_angle_lower, double rolling_angle_upper, solvers::MathematicalProgram *prog, const systems::Context< double > &from_fixed_context, systems::Context< double > *to_context, const Eigen::Ref< const VectorX< symbolic::Variable >> &q_to, double face_shrink_factor, double depth)
 Impose the kinematic constraint that the finger can only roll (or stick) starting from a given fixed posture. More...