Skip to content

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.

ABB IRB 7600
ABB IRB 7600-150/3.50
Fanuc LR Mate 200i
Fanuc LR Mate 200i
Franka Robotics Panda
Franka Robotics Panda
Kuka KR 16-2
Kuka KR 16-2
Motoman BMDA3
Motoman MH5
Universal Robots UR30
Universal Robots UR30

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.
Open installation →
Go to the Quickstart
Run your first robotics skill in minutes with the Quickstart - no hardware required.
Open quickstart →

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 CallDescriptionSupported Robots
forward_kinematicsCompute the end-effector pose from a given joint configuration.ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots
inverse_kinematicsSolve joint configurations from a target Cartesian pose.ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots
setup-kinematics-solverInitialize and cache an inverse-kinematics solver by name.ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots
get-link-transformsCompute 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-configurationSet 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 CallDescriptionSupported Robots
motion_planningPlan collision-aware and feasible robot trajectories.ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots

Visualization & Model

SDK CallDescriptionSupported Robots
get-visual-mesh-transformsCompute 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-dataRead the raw visual mesh geometry data for every link.ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots
get-modelReturn the underlying Pinocchio kinematic model.ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots
get-collision-modelReturn the underlying Pinocchio collision geometry model.ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots
get-visual-modelReturn the underlying Pinocchio visual geometry model.ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots

Connection

SDK CallDescriptionSupported Robots
connect / disconnectConnect to and disconnect from robot controllers.Universal Robots

Motion

SDK CallDescriptionSupported Robots
set_cartesian_poseCommand robot motion to a target Cartesian pose.Universal Robots
set_joint_positionsCommand robot motion to a target joint configuration.Universal Robots
set_cartesian_pose_in_joint_spaceCommand a Cartesian target pose using a joint-space interpolated trajectory.Universal Robots
set_joint_position_in_cartesian_spaceCommand a joint configuration using a Cartesian-interpolated trajectory.Universal Robots
move_until_contactExecute an approach motion that stops on contact.Universal Robots
stop_cartesian_motionDecelerate and stop any ongoing Cartesian motion.Universal Robots
stop_joint_motionDecelerate and stop any ongoing joint-space motion.Universal Robots
trigger_protective_stopImmediately halt all robot motion by triggering a protective stop.Universal Robots
jog_modeStart and stop continuous joint jogging at specified speeds.Universal Robots
freedrive_modeStart and stop gravity-compensated back-drivable (freedrive) mode.Universal Robots
teach_modeStart and stop zero-gravity teach mode for unconstrained manual back-drive.Universal Robots
contact_detectionArm, poll, and disarm asynchronous contact detection during motion.Universal Robots

Servo Control

SDK CallDescriptionSupported Robots
servo_jointSend real-time high-frequency joint servo commands.Universal Robots
servo_cartesianSend real-time high-frequency Cartesian servo commands.Universal Robots
servo_circularExecute a circular arc move via the servo interface.Universal Robots
servo_stopStop an active servo motion.Universal Robots

Force Control

SDK CallDescriptionSupported Robots
is-tool-in-contactCheck whether the tool has made contact in a specified Cartesian direction.Universal Robots

State Reading

SDK CallDescriptionSupported Robots
manipulator_statesReference for the state object every manipulator exposes.ABB, Fanuc, Franka Robotics, Kuka, Motoman, Neura Robotics, Universal Robots
is_connectedCheck whether a hardware adapter is attached and the link reports connected.Universal Robots
get_joint_positionsRead the current joint positions in degrees.Universal Robots
get_joint_velocitiesRead the current joint velocities in degrees per second.Universal Robots
get_joint_torquesRead the net joint torques (gravity and friction corrected).Universal Robots
get_cartesian_poseRead the current TCP pose as [x, y, z, rx, ry, rz].Universal Robots
get_tcp_speedRead the current TCP twist in m/s and deg/s.Universal Robots
get_tcp_forceRead the generalized forces (wrench) at the TCP.Universal Robots
get_target_joint_positionsRead the controller-commanded target joint positions.Universal Robots
get_target_joint_velocitiesRead the controller-commanded target joint velocities.Universal Robots
get_target_joint_accelerationsRead the controller-commanded target joint accelerations.Universal Robots
get_target_tcp_poseRead the controller-commanded target TCP pose.Universal Robots
get_target_tcp_speedRead the controller-commanded target TCP twist.Universal Robots
get_timestampRead the timestamp of the most recent state update.Universal Robots

Robot Status

SDK CallDescriptionSupported Robots
get_robot_modeRead the current robot mode integer code from the controller.Universal Robots
get_robot_statusRead the robot status bitmask from the controller.Universal Robots
get_safety_modeRead the current safety mode integer code from the controller.Universal Robots
get_runtime_stateRead the current program runtime state from the controller.Universal Robots
get_controller_frequencyMeasure the robot controller's update frequency in Hz.Universal Robots

Diagnostics

SDK CallDescriptionSupported Robots
get_speed_scaling_combinedRead the combined effective speed scaling factor.Universal Robots
get_target_speed_fractionRead the teach-pendant speed slider value.Universal Robots

Tools (Grippers)

SDK CallDescriptionSupported Robots
connect / disconnectConnect to and disconnect from parallel grippers.OnRobot, Robotiq
set_unitConfigure the units for position, speed, and force parameters.OnRobot, Robotiq
set_position_rangeConfigure the physical stroke range for millimeter-unit commands.OnRobot, Robotiq
set_speedConfigure the default motion speed of the gripper.OnRobot, Robotiq
set_forceConfigure the default gripping force of the gripper.OnRobot, Robotiq
openFully open the gripper.OnRobot, Robotiq
closeClose the gripper to grasp an object.OnRobot, Robotiq
moveMove the gripper to a specific position.OnRobot, Robotiq
get_current_positionRead 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.

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.
Join Discord →