Synapse: Robotic Skills
SUMMARY
Synapse provides the full robotics stack, including motion planning, kinematics, control, and hardware integration.
It enables the same robotic skills to run consistently across manipulators, mobile robots and humanoids by abstracting both software control and hardware interfaces into a unified execution layer.






EARLY ACCESS
We are actively expanding Synapse - APIs may change between releases and robot support varies per skill. Please check the individual skill pages for current compatibility.
Install Synapse first
Synapse requires
telekinesis-urdfs and the Synapse extras. Set them up in the main installation guide before running any robotics skill. Go to the Quickstart
Run your first robotics skill in minutes with the Quickstart - no hardware required.
When to Use Synapse?
Synapse is appropriate when the system requires:
- Motion Planning: RRT, RRT*, and related sampling-based planning methods
- Forward and Inverse Kinematics: CLIC, TRAC-IK, Multi-Seed CLIC IK
- Hardware-Agnostic Communication: Unified interface across multiple robot vendors and control systems
- Simulation Workflows: Isaac Sim support, with MuJoCo support (coming soon!)
- Simulation-to-Real Consistency: Identical behaviors can be deployed in both simulation and real-world environments
Overview of Skills
Kinematics
| SDK Call | Description | Supported Robots |
|---|---|---|
| forward_kinematics | Compute the end-effector pose from a given joint configuration. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
| inverse_kinematics | Solve joint configurations from a target Cartesian pose. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
| setup-kinematics-solver | Initialize and cache an inverse-kinematics solver by name. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
| get-link-transforms | Compute the world transform of every link frame at the current joint configuration. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
| set-default-joint-configuration | Set the default joint configuration used as the IK seed and offline pose. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
Motion Planning
| SDK Call | Description | Supported Robots |
|---|---|---|
| motion_planning | Plan collision-aware and feasible robot trajectories. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
Visualization & Model
| SDK Call | Description | Supported Robots |
|---|---|---|
| get-visual-mesh-transforms | Compute the world transform of every visual mesh at the current joint configuration. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
| get-visual-meshes-data | Read the raw visual mesh geometry data for every link. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
| get-model | Return the underlying Pinocchio kinematic model. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
| get-collision-model | Return the underlying Pinocchio collision geometry model. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
| get-visual-model | Return the underlying Pinocchio visual geometry model. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
Connection
| SDK Call | Description | Supported Robots |
|---|---|---|
| connect / disconnect | Connect to and disconnect from robot controllers. | Universal Robots |
Motion
| SDK Call | Description | Supported Robots |
|---|---|---|
| set_cartesian_pose | Command robot motion to a target Cartesian pose. | Universal Robots |
| set_joint_positions | Command robot motion to a target joint configuration. | Universal Robots |
| set_cartesian_pose_in_joint_space | Command a Cartesian target pose using a joint-space interpolated trajectory. | Universal Robots |
| set_joint_position_in_cartesian_space | Command a joint configuration using a Cartesian-interpolated trajectory. | Universal Robots |
| move_until_contact | Execute an approach motion that stops on contact. | Universal Robots |
| stop_cartesian_motion | Decelerate and stop any ongoing Cartesian motion. | Universal Robots |
| stop_joint_motion | Decelerate and stop any ongoing joint-space motion. | Universal Robots |
| trigger_protective_stop | Immediately halt all robot motion by triggering a protective stop. | Universal Robots |
| jog_mode | Start and stop continuous joint jogging at specified speeds. | Universal Robots |
| freedrive_mode | Start and stop gravity-compensated back-drivable (freedrive) mode. | Universal Robots |
| teach_mode | Start and stop zero-gravity teach mode for unconstrained manual back-drive. | Universal Robots |
| contact_detection | Arm, poll, and disarm asynchronous contact detection during motion. | Universal Robots |
Servo Control
| SDK Call | Description | Supported Robots |
|---|---|---|
| servo_joint | Send real-time high-frequency joint servo commands. | Universal Robots |
| servo_cartesian | Send real-time high-frequency Cartesian servo commands. | Universal Robots |
| servo_circular | Execute a circular arc move via the servo interface. | Universal Robots |
| servo_stop | Stop an active servo motion. | Universal Robots |
Force Control
| SDK Call | Description | Supported Robots |
|---|---|---|
| is-tool-in-contact | Check whether the tool has made contact in a specified Cartesian direction. | Universal Robots |
State Reading
| SDK Call | Description | Supported Robots |
|---|---|---|
| manipulator_states | Reference for the state object every manipulator exposes. | ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots |
| is_connected | Check whether a hardware adapter is attached and the link reports connected. | Universal Robots |
| get_joint_positions | Read the current joint positions in degrees. | Universal Robots |
| get_joint_velocities | Read the current joint velocities in degrees per second. | Universal Robots |
| get_joint_torques | Read the net joint torques (gravity and friction corrected). | Universal Robots |
| get_cartesian_pose | Read the current TCP pose as [x, y, z, rx, ry, rz]. | Universal Robots |
| get_tcp_speed | Read the current TCP twist in m/s and deg/s. | Universal Robots |
| get_tcp_force | Read the generalized forces (wrench) at the TCP. | Universal Robots |
| get_target_joint_positions | Read the controller-commanded target joint positions. | Universal Robots |
| get_target_joint_velocities | Read the controller-commanded target joint velocities. | Universal Robots |
| get_target_joint_accelerations | Read the controller-commanded target joint accelerations. | Universal Robots |
| get_target_tcp_pose | Read the controller-commanded target TCP pose. | Universal Robots |
| get_target_tcp_speed | Read the controller-commanded target TCP twist. | Universal Robots |
| get_timestamp | Read the timestamp of the most recent state update. | Universal Robots |
Robot Status
| SDK Call | Description | Supported Robots |
|---|---|---|
| get_robot_mode | Read the current robot mode integer code from the controller. | Universal Robots |
| get_robot_status | Read the robot status bitmask from the controller. | Universal Robots |
| get_safety_mode | Read the current safety mode integer code from the controller. | Universal Robots |
| get_runtime_state | Read the current program runtime state from the controller. | Universal Robots |
| get_controller_frequency | Measure the robot controller's update frequency in Hz. | Universal Robots |
Diagnostics
| SDK Call | Description | Supported Robots |
|---|---|---|
| get_speed_scaling_combined | Read the combined effective speed scaling factor. | Universal Robots |
| get_target_speed_fraction | Read the teach-pendant speed slider value. | Universal Robots |
Tools (Grippers)
| SDK Call | Description | Supported Robots |
|---|---|---|
| connect / disconnect | Connect to and disconnect from parallel grippers. | OnRobot, Robotiq |
| set_unit | Configure the units for position, speed, and force parameters. | OnRobot, Robotiq |
| set_position_range | Configure the physical stroke range for millimeter-unit commands. | OnRobot, Robotiq |
| set_speed | Configure the default motion speed of the gripper. | OnRobot, Robotiq |
| set_force | Configure the default gripping force of the gripper. | OnRobot, Robotiq |
| open | Fully open the gripper. | OnRobot, Robotiq |
| close | Close the gripper to grasp an object. | OnRobot, Robotiq |
| move | Move the gripper to a specific position. | OnRobot, Robotiq |
| get_current_position | Read the current finger position of the gripper. | OnRobot, Robotiq |
Next Steps
Once Synapse is installed and verified, head to the Synapse Quickstart to drive your first manipulator end-to-end in Rerun.
Set up
Installation
Install `telekinesis-urdfs`, the Synapse extras, and verify the import.
Open installation →
Try it now
Synapse Quickstart
Drive a manipulator along a Cartesian or joint-space trajectory entirely in software, visualized live in Rerun.
Open quickstart →
Reference
All Supported Robots
Browse the full list of supported manipulator brands and the Python classes that load each one.
Open reference →
Examples
telekinesis-examples
End-to-end runnable scripts across every Synapse skill - motion, force mode, servo, contact, recording.
Open on GitHub →
Help improve this guide
Jump into the Telekinesis Discord with suggestions or corrections to the Synapse documentation-we use this channel for docs feedback and ideas.

