From 421b2d0dc2e50dfc3d085197288f5e05c9d0bcfa Mon Sep 17 00:00:00 2001
From: Christian Dreher <c.dreher@kit.edu>
Date: Fri, 6 Sep 2024 17:00:16 +0200
Subject: [PATCH] Only apply limits if the joint is not a limitless joint

---
 .../sensor_actor_unit/armar7de/joint_controller/Velocity.cpp  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/source/devices/ethercat/sensor_actor_unit/armar7de/joint_controller/Velocity.cpp b/source/devices/ethercat/sensor_actor_unit/armar7de/joint_controller/Velocity.cpp
index 6e67c6be..319b62bb 100644
--- a/source/devices/ethercat/sensor_actor_unit/armar7de/joint_controller/Velocity.cpp
+++ b/source/devices/ethercat/sensor_actor_unit/armar7de/joint_controller/Velocity.cpp
@@ -95,14 +95,14 @@ namespace devices::ethercat::sensor_actor_unit::armar7de::joint_controller
             bool const inAnyLimits = inSoftLimits or inHardLimits;
 
             // If we reached any limit, we set the velocity to zero.
-            if (inAnyLimits)
+            if (inAnyLimits and not limitless)
             {
                 newVel = 0;
             }
 
             // If the target is in the soft limits, but not yet in the hard limits, we set a low
             // deceleration for a slow braking behavior.
-            if (inSoftLimits and not inHardLimits)
+            if (inSoftLimits and not inHardLimits and not limitless)
             {
                 dataPtr->setTargetDeceleration(25'000);
             }
-- 
GitLab