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.
from telekinesis.synapse.tools.suction_grippers import piab
gripper = piab.PiabPiCobotElectric()Supported Models
Suction Grippers
| Model | Class | Interface |
|---|---|---|
| piCOBOT Electric | PiabPiCobotElectric | URCap (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.
- Go to piab.com and download the piCOBOT Electric URCap for your PolyScope version.
- 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 at192.168.1.2, subnet mask255.255.255.0, no gateway.
Verify the link:
ping 192.168.1.1 # replace with your UR controller's IPYou should see successful replies. If not:
| Check | Action |
|---|---|
| Physical link | Confirm cable seated, LAN port LEDs lit |
| Subnet match | PC and controller IPs share the first three octets |
| Route hijacking | Disable VPNs and virtual network adapters on the PC |
3. Verify the connection from 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:
# 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()| Method | Description |
|---|---|
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. |

