You are currently viewing Robotic Grasp Planning & Prediction Pipeline

Robotic Grasp Planning & Prediction Pipeline

Developed an end-to-end machine learning pipeline to predict grasp success for robotic grippers, combining physics simulation with supervised learning to classify optimal grasping positions across multiple gripper-object configurations.

Code: https://github.com/MightyBrushwagg/COMP0213_Group04

Project Overview:

Created a comprehensive system that simulates robotic grasping attempts from varied approach angles and trains classifiers to predict grasp outcomes based on initial positioning. The project integrated PyBullet physics simulation with machine learning models to achieve reliable grasp prediction across 1,000+ simulated attempts per configuration.

Technical Implementation:

  • Physics Simulation: Built a modular PyBullet-based simulation environment using object-oriented design with abstract base classes for grippers (TwoFinger, NewGripper) and objects (Cylinder, Box)
  • Data Generation: Implemented spherical coordinate sampling with Gaussian noise to generate realistic grasp approach positions; computed pitch, yaw, and roll orientations using vector mathematics for proper gripper alignment
  • Grasp Execution: Designed custom control algorithms for each gripper type, incorporating offset calculations, approach trajectories, and contact-based success criteria (≥2 contact points maintained for 3 seconds)
  • Machine Learning Pipeline: Trained and evaluated three classifier types—Logistic Regression, SVM, and Random Forest—with hyperparameter tuning on balanced 50/50 success/failure datasets

Key Results:

  • Random Forest classifier achieved best performance with 100 estimators: 86-96% average accuracy across all gripper-object combinations
  • Successfully classified 70-100% of novel grasp attempts across validation sets
  • Models demonstrated robust generalization with consistent performance across multiple trials on shuffled training data

Software Engineering:

Employed inheritance hierarchies and abstract methods to create a flexible, extensible architecture supporting multiple gripper types and objects. Implemented comprehensive data handling with Pandas for dataset management, visualization tools using Matplotlib, and model persistence using joblib.

Collaboration:

Co-developed with Aryan Rishi, with responsibilities divided across simulation development and machine learning implementation through effective use of version control and modular class design.

Technologies: Python, PyBullet, scikit-learn, Pandas, NumPy, object-oriented design, supervised learning, robotics simulation