From 82c895db952d2358683c70718ac8073fc310e11e Mon Sep 17 00:00:00 2001 From: Daniel Kowalski Date: Sat, 11 Jul 2026 09:00:01 +0200 Subject: [PATCH] feat: add MovePtp joint-interpolated move to IRobot Default interface method falling back to MoveLin so existing drivers keep compiling; Fairino overrides with native PTP. --- csharp/RocketWelder.SDK.Devices.Robot/IRobot.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/csharp/RocketWelder.SDK.Devices.Robot/IRobot.cs b/csharp/RocketWelder.SDK.Devices.Robot/IRobot.cs index 06e2612..d3e9905 100644 --- a/csharp/RocketWelder.SDK.Devices.Robot/IRobot.cs +++ b/csharp/RocketWelder.SDK.Devices.Robot/IRobot.cs @@ -113,6 +113,17 @@ public interface IRobot : IDevice /// ABB EGM: ignored — speed is controlled by MaxSpeedDeviation in RAPID. int MoveLin(Pose3 target, Velocity velocity); + /// + /// Moves the robot point-to-point (joint-interpolated) to the target pose. + /// Unlike , the TCP does not follow a straight Cartesian line: the + /// controller interpolates in joint space, so the motion reaches the pose while avoiding + /// singularities and joint limits better. The default implementation falls back to + /// for drivers that do not provide a native PTP move. + /// + /// Target pose (X,Y,Z in mm, Rx,Ry,Rz in degrees). + /// Motion velocity with explicit unit (see ). + int MovePtp(Pose3 target, Velocity velocity) => MoveLin(target, velocity); + /// /// Moves the robot in a circular arc through pathPoint to target. ///