Stop Contact Detection
SUMMARY
Stop Contact Detection disarms the contact detection subsystem and returns the definitive boolean result — True if contact was detected at any point since Start Contact Detection was called, False otherwise.
Always call this skill to cleanly disarm detection after an asynchronous move completes.
SUPPORTED ROBOTS
This skill is currently supported on Universal Robots only. Calling this method on other robot brands will raise a NotImplementedError.
The Skill
contact = robot.stop_contact_detection()The Code
Example: Complete a Contact Detection Sequence
Start contact detection, poll during motion, then stop and retrieve the result.
import time
from loguru import logger
from telekinesis.synapse.robots.manipulators import universal_robots
robot_ip = "192.168.1.2" # replace with your robot's IP
robot = universal_robots.UniversalRobotsUR10E()
# Connect
robot.connect(ip=robot_ip)
current = robot.get_cartesian_pose()
target = list(current)
target[2] += 0.05
robot.set_cartesian_pose(target, speed=0.05, acceleration=0.5, asynchronous=True)
robot.start_contact_detection()
logger.info("Contact detection started.")
for _ in range(50):
if robot.read_contact_detection():
logger.info("Contact detected mid-move.")
break
time.sleep(0.05)
contact = robot.stop_contact_detection()
logger.success(f"Contact detected: {contact}")
# Disconnect
robot.disconnect()The Explanation of the Code
stop_contact_detection disarms the contact detection subsystem and returns a boolean: True if any contact event was recorded since start_contact_detection was called, False if the move completed without contact. Always call this skill to cleanly finalize a detection session, even if contact was already observed via read_contact_detection.
How to Tune the Parameters
This skill takes no parameters.
Return Value
| Type | Description |
|---|---|
bool | True if contact was detected during the detection window, False otherwise. |
Where to Use the Skill
- End of every contact detection sequence — Always call after an asynchronous move to disarm and obtain the definitive result
- Post-move decision logic — Use the return value to branch between contact and no-contact paths
When Not to Use the Skill
Do not use Stop Contact Detection when:
- Contact detection has not been started — call Start Contact Detection first
- You only want to poll without disarming — use Read Contact Detection instead

