Grasp GraspSet::createHypothesis(const Eigen::Vector3d& sample, const PointList& point_list, const std::vector<int>& indices_learning, const Eigen::Matrix3d& hand_frame, const FingerHand& finger_hand) const { // extract data for classification PointList point_list_learning = point_list.slice(indices_learning); // std::cout << point_list_learning.getPoints().block(0,0,3,5) << "\n"; // std::cout << "---------------\n"; // std::cout << point_list_learning.getNormals().block(0,0,3,5) << "\n"; // calculate grasp width (hand opening width) double width = point_list_learning.getPoints().row(0).maxCoeff() - point_list_learning.getPoints().row(0).minCoeff(); Grasp hand(sample, hand_frame, finger_hand, width); // evaluate if the grasp is antipodal labelHypothesis(point_list_learning, finger_hand, hand); return hand; }