Skip to content

Piab Suction Grippers

SUMMARY

Synapse supports the Piab piCOBOT Electric vacuum gripper over the Piab URCap XML-RPC service running on a Universal Robots controller.

python
from telekinesis.synapse.tools.suction_grippers import piab

gripper = piab.PiabPiCobotElectric()

Supported Models

Suction Grippers

ModelClassInterface
piCOBOT ElectricPiabPiCobotElectricURCap (XML-RPC over Ethernet)

Hardware Setup

SAFETY FIRST

Once a session is open, Synapse can drive the gripper at any time. Keep the workspace clear and be ready to disconnect before issuing any command from your PC.

1. Install the Piab URCap

The Piab URCap is the UR controller software that exposes the gripper's XML-RPC service over the network.

  1. Go to piab.com and download the piCOBOT Electric URCap for your PolyScope version.
  2. Install it on the UR controller following Piab's installation instructions.

Once installed, the URCap listens on port 40408 of the UR controller.

2. Configure your PC network

Put your PC on the same subnet as the UR controller.

  • Connect an Ethernet cable between your PC and the UR controller.
  • Read the controller IP from the PolyScope network settings.
  • On your PC set a static IPv4 in the same subnet — e.g. controller at 192.168.1.1 → PC at 192.168.1.2, subnet mask 255.255.255.0, no gateway.

Verify the link:

bash
ping 192.168.1.1   # replace with your UR controller's IP

You should see successful replies. If not:

CheckAction
Physical linkConfirm cable seated, LAN port LEDs lit
Subnet matchPC and controller IPs share the first three octets
Route hijackingDisable VPNs and virtual network adapters on the PC

3. Verify the connection from Python

Finish the installation first
Install telekinesis-ai and telekinesis-urdfs before running any robotics skill.
Open installation →
python
import time
from telekinesis.synapse.tools.suction_grippers import piab

gripper = piab.PiabPiCobotElectric()
gripper.connect(ip="192.168.1.1", protocol="URCAP")  # UR controller IP
time.sleep(1)
gripper.disconnect()

If connect succeeds without an exception, you are ready to run any Synapse gripper skill. See Suction Gripper Connection and Disconnection for the full parameter reference.

Basic Usage

Piab exposes a vacuum grasp/release API rather than the open/close API used by parallel grippers:

python
# Grasp at the currently configured vacuum level (default 50%)
gripper.grasp()

# Or grasp at a specific vacuum level
gripper.grasp(vacuum_level=75, unit="percentage")

# Release
gripper.release()

# Check whether a part is currently held
gripper.get_part_present()
MethodDescription
grasp(vacuum_level=None, unit="percentage")Starts vacuum generation. Uses the last configured level if vacuum_level is omitted.
release()Stops vacuum generation.
set_vacuum_level(vacuum_level, unit="percentage")Sets the desired vacuum level (0-100, max 100 kPa, in "percentage" or "kPa").
get_vacuum_level(unit="percentage")Returns the last commanded vacuum level.
set_max_pump_speed(max_speed)Sets the maximum vacuum-pump speed as a percentage (0-100).
get_part_present()Returns whether a part is currently detected.
Stuck on setup?
Ask on the Telekinesis Discord and we'll help you get connected.
Join Discord →