Task-dependent grasp metric
Scoring a grasp by whether it can produce the motion a task needs, such as turning a knob or pivoting a box about its edge, computed as a second-order cone program.
IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2021. A. Fakhari, A. Patankar, J. Xie, and N. Chakraborty.
The problem
A grasp that is good for lifting an object can be useless for turning a knob, opening a drawer, or pivoting a heavy box about one of its edges. Whether a grasp is good depends on what the robot has to do with the object after grasping it, so we need a way to score grasps against a specific task.
Approach
We describe the task as the constant screw motion the object has to go through after it is grasped: a pure translation to open a drawer, a rotation about the knob’s axis, or a rotation about the box’s edge.

Given a pair of contact locations, the metric is the largest force the grasp can apply along the screw axis (for a pure translation), or the largest moment it can apply about the screw axis (for any other screw motion). This is subject to:
- friction at each finger contact, and a limit on each finger’s normal force,
- the object’s weight, and
- friction where the object touches the environment, for tasks like pivoting.
Friction cones are second-order cones, so computing the metric is a second-order cone program (SOCP), and the friction cones do not have to be approximated. Later work (ICRA 2025, late-breaking results) adds the dynamics of the object and the manipulator.

Where it is used
The metric is the basis for the rest of my grasping work. We trained a neural network to predict it on point clouds for task-oriented grasping, and used it to decide when a task needs a regrasp.
Video
Code
tograsp-socp is a Python implementation. Given an object point cloud and a task screw, it computes the metric for antipodal contacts sampled on the object’s bounding box, extracts the grasping region, and computes candidate end-effector poses for a Franka Emika Panda.
git clone https://github.com/apat20/tograsp-socp.git && cd tograsp-socp
conda env create -f environment.yml && conda activate tograsp_socp
# pure translation: largest force along the screw axis
python main_pickup.py --filename nontextured.ply
# any other screw motion: largest moment about the screw axis
python main_gcsm.py --filename nontextured.ply
Citation
@inproceedings{fakhari2021computing,
title={Computing a task-dependent grasp metric using second-order cone programs},
author={Fakhari, Amin and Patankar, Aditya and Xie, Jiayin and Chakraborty, Nilanjan},
booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
pages={4009--4016},
year={2021},
organization={IEEE}
}
Papers
Synthesizing Grasps and Regrasps for Complex Manipulation Tasks
IEEE International Conference on Robotics and Automation (ICRA), Atlanta, GA, USA, 2025
Task-Dependent Grasp Metric with Object and Manipulator Dynamics
Late Breaking Results Poster, IEEE International Conference on Robotics and Automation (ICRA), Atlanta, GA, USA, 2025
Task-Oriented Grasping with Point Cloud Representation of Objects
IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Detroit, MI, USA, 2023
Computing a Task-Dependent Grasp Metric Using Second-Order Cone Programs
IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Prague, Czech Republic, 2021
