An end effector is the tool mounted on the flange of a robot arm. It is the only part of the robot that touches the workpiece. A gripper is the subset of end effectors that holds objects. Welding torches, screwdrivers, and dispensing nozzles are end effectors that do not grip. A wrong choice here caps cycle time, repeatability, and part damage rates, no matter how accurate the arm is.
This guide covers each gripper family, the grip-force math for sizing, a selection workflow, and a ROS2 control example.
Quick Takeaways
- Parallel jaw grippers suit rigid, known geometries. They deliver 10 to 500 N of grip force with ±0.02 mm repeatability.
- Vacuum grippers handle flat, non-porous surfaces such as boxes, sheet metal, and glass. They need clean airflow and a regulated 60 to 90 kPa vacuum.
- Soft and adaptive grippers trade precision for conformity. Use them for fragile or irregular items such as produce.
- Size by friction, not by weight. Required grip force must cover payload weight times a safety factor, divided by the friction coefficient and contact count.
| Gripper Type | Typical Force | Repeatability | Part Variety | Cost | Best For |
|---|---|---|---|---|---|
| Parallel jaw | 10–500 N | ±0.02 mm | Low–Medium | $$ | Machine tending, assembly |
| Angular jaw | 20–300 N | ±0.05 mm | Low | $ | Round parts, tight spaces |
| Vacuum | 5–200 N per cup | ±0.5 mm | Medium | $ | Packaging, palletizing |
| Soft (pneumatic fingers) | 1–20 N | ±1 mm | High | $$ | Food, fragile items |
| Magnetic | 50–2000 N | ±0.1 mm | Low | $$ | Ferrous sheet, bin picking |
| Adaptive (underactuated) | 10–100 N | ±0.5 mm | High | $$$ | Unstructured grasping |
Kinematic Foundations: Where the End Effector Sits
The arm’s controller computes motion for the tool center point (TCP), not the flange. Every gripper adds a fixed transform from flange to TCP. If this transform is wrong, every Cartesian move is wrong.
The TCP pose in the base frame is a chain of homogeneous transforms:
T_base_tcp = T_base_flange(q) * T_flange_tcp
T_flange_tcp = | R(3x3) p(3x1) |
| 0 0 0 1 |
where:
q = joint angle vector [q1 ... q6]
R = fixed rotation of gripper frame relative to flange
p = fixed offset [x, y, z] from flange to fingertip midpoint (meters)
Measure p from the CAD model, then verify with a four-point TCP calibration. Mass and center of gravity (CoG) matter too. Set both in the controller. Underestimating payload mass causes tracking error and protective stops.
Gripper Types in Detail
Parallel Jaw Grippers
Two fingers move linearly toward each other. Actuation is pneumatic, electric (lead screw or rack-and-pinion), or hydraulic.
- Pneumatic: Cheap, fast (under 50 ms stroke), binary open/close. Force depends on supply pressure (typically 6 bar).
- Electric: Programmable force and stroke, position feedback, 24V supply. Slower, but supports delicate and mixed-part work.
Use custom or 3D-printed fingertips to match part geometry. Add rubber or urethane pads where friction is low.
Angular and Three-Finger Grippers
Angular jaws pivot around a hinge. They open wide in a small envelope. Three-finger centric grippers self-center cylindrical parts, which lowers positioning error requirements on the arm.
Vacuum Grippers
Cups attach to a vacuum generator, either a Venturi ejector (compressed air, no moving parts) or an electric vacuum pump (better for high flow and porous items).
Holding force for each cup:
F_hold = ΔP * A_cup * η
where:
ΔP = pressure differential (Pa), e.g. 60 kPa = 60,000 Pa
A_cup = effective cup area (m^2) = π * (d/2)^2
η = efficiency factor (0.5–0.8 for leak and surface roughness)
Example: a 40 mm cup at 60 kPa with η = 0.7 gives F = 60000 * 0.00126 * 0.7 ≈ 53 N.
Pick bellows cups for uneven surfaces, flat cups for rigid flat sheets, and foam pads for porous cardboard.
Soft Robotic Grippers
Silicone fingers inflate to curl around objects. Contact pressure spreads over a large area, so they rarely damage items. They have low payload (usually under 2 kg) and degrade over cycles. Expect elastomer fatigue after roughly 1 million actuations.
Magnetic Grippers
Permanent or electro-permanent magnets lift ferrous parts with no moving fingers. Residual magnetism and multi-sheet pickup are the known failure modes. Use a sheet separator for stacked steel.
Adaptive and Underactuated Grippers
One actuator drives multiple finger joints through tendons or linkages. The fingers conform to the object without per-joint control. They are strong candidates for bin picking and service robots.
How to Choose: A Selection Workflow
Work through these steps in order.
- Define the part envelope. List min and max dimensions, mass, material, surface finish, and fragility.
- Select the grasp strategy. Flat and clean surface: vacuum. Rigid with accessible sides: parallel jaw. Delicate or irregular: soft or adaptive. Ferrous sheet: magnetic.
- Calculate required grip force. Use the formula below.
- Check the arm payload. Gripper mass plus part mass must fit inside the arm rating with margin (aim for under 70% of rated payload).
- Verify the cycle time. Stroke time of the gripper adds to every pick. Compare against the target.
- Confirm the interface. Match the flange standard (ISO 9409-1), supply voltage, and I/O or fieldbus protocol.
Grip Force Calculation
For a friction-based pinch grip:
F_grip = (m * (g + a) * S) / (μ * n)
where:
m = part mass (kg)
g = 9.81 m/s^2
a = peak arm acceleration at the TCP (m/s^2)
S = safety factor (typically 2.0–4.0)
μ = friction coefficient between finger and part (steel on rubber ≈ 0.6–0.9)
n = number of contact surfaces (2 for a two-finger pinch)
Example: a 1.5 kg part, a = 5 m/s², S = 2.5, μ = 0.5, n = 2.
F_grip = (1.5 * (9.81 + 5) * 2.5) / (0.5 * 2) = 55.5 N
Choose a gripper with at least 55 N of rated force at your operating pressure. Check the manufacturer’s force-versus-finger-length derating curve. Force drops as fingertip lever length grows.
Controlling a Gripper in ROS2
Most electric grippers expose the control_msgs/action/GripperCommand action. The node below sends a position and a max effort limit.
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
from rclpy.action import ActionClient
from control_msgs.action import GripperCommand
class GripperClient(Node):
def __init__(self):
super().__init__('gripper_client')
# Action server name depends on your driver; verify with `ros2 action list`
self._client = ActionClient(self, GripperCommand, '/gripper_controller/gripper_cmd')
def send_goal(self, position_m: float, max_effort_n: float):
goal = GripperCommand.Goal()
goal.command.position = position_m # target finger opening in meters
goal.command.max_effort = max_effort_n # force limit in Newtons
self._client.wait_for_server()
future = self._client.send_goal_async(goal, feedback_callback=self.feedback_cb)
future.add_done_callback(self.goal_response_cb)
def feedback_cb(self, feedback_msg):
fb = feedback_msg.feedback
# position: current opening; effort: current force; stalled: blocked by object
self.get_logger().info(f'pos={fb.position:.4f} effort={fb.effort:.1f} stalled={fb.stalled}')
def goal_response_cb(self, future):
handle = future.result()
if not handle.accepted:
self.get_logger().warn('Goal rejected')
return
handle.get_result_async().add_done_callback(self.result_cb)
def result_cb(self, future):
res = future.result().result
# reached_goal is False when the gripper stalled on an object: expected for a grasp
self.get_logger().info(f'reached_goal={res.reached_goal} stalled={res.stalled}')
def main():
rclpy.init()
node = GripperClient()
node.send_goal(position_m=0.0, max_effort_n=55.0) # close with a 55 N limit
rclpy.spin(node)
if __name__ == '__main__':
main()
Interpret stalled=True with reached_goal=False as a successful grasp on a part. If reached_goal=True when closing, the gripper closed on nothing. Treat that as a missed pick.
For vacuum tools, read a vacuum pressure sensor and confirm P < threshold before moving. A sealed-cup check cuts dropped-part failures.
Real-World Implementation: Pick-and-Place of Mixed Cartons
Scenario: A 6-axis arm palletizes cartons weighing 0.5 to 8 kg with a 12-second cycle.
- Choose vacuum because cartons have flat tops and no side access in the stack.
- Size the cups. For an 8 kg carton with a = 3 m/s², S = 3, and one vertical hold (μ not applicable for suction):
F_required = 8 * (9.81 + 3) * 3 ≈ 307 N. Using 53 N cups, you need at least 6 cups. Use 8 for margin and torque balance. - Zone the cups. Divide the cups into valve zones so small cartons use only 2 cups. This avoids leaks across open cups.
- Add a vacuum switch per zone. Block motion until the pressure threshold is reached.
- Mount a light curtain or area scanner if the arm is collaborative-rated. High-speed palletizing normally requires guarding instead.
Common Failure Modes and Fixes
| Symptom | Likely Cause | Fix |
|---|---|---|
| Part slips during acceleration | Force below F_grip or low μ | Raise force, add rubber pads, reduce acceleration |
| Vacuum drops mid-transfer | Porous surface or worn cup | Use a pump, foam cups, or replace cups |
| Fingers cannot reach the part | Incorrect stroke or TCP offset | Recheck stroke range and TCP calibration |
| Arm protective stop | Wrong payload mass/CoG | Update payload in controller |
| Part damaged | Force too high | Lower effort limit, switch to soft fingers |
| Position drift after tool change | Unverified TCP | Re-run TCP calibration |
FAQ
What is the difference between a gripper and an end effector?
An end effector is any tool at the end of a robot arm. A gripper is a type of end effector designed to hold objects. Welding torches, spray nozzles, and screwdrivers are end effectors that are not grippers.
How do I calculate the gripping force a robot needs?
Use F = (m * (g + a) * S) / (μ * n). Here m is part mass, a is peak acceleration, S is a safety factor of 2 to 4, μ is the friction coefficient, and n is the number of contact surfaces. Pick a gripper rated above this value.
When should I choose a vacuum gripper over a parallel gripper?
Choose vacuum when the part has a flat, sealed top surface and no side access, such as cartons, glass, or sheet metal. Choose a parallel gripper when the part is rigid, has accessible sides, and needs precise positioning.
Can one gripper handle many different parts?
Yes, within limits. Adaptive, soft, or electric parallel grippers with programmable stroke cover broad part ranges. For very different shapes, use a quick-change tool changer with a dedicated gripper for each family.




