From b9fe4f38d59315b0fa28c7ef2ff42cd221229d3f Mon Sep 17 00:00:00 2001
From: Raphael Grimm <raphael.grimm@kit.edu>
Date: Fri, 27 Jul 2018 14:14:47 +0200
Subject: [PATCH] Avoid collision checking if all joint values are 0

---
 .../RobotUnitModuleSelfCollisionChecker.cpp     | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleSelfCollisionChecker.cpp b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleSelfCollisionChecker.cpp
index 96b313836..63886c9b2 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleSelfCollisionChecker.cpp
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModuleSelfCollisionChecker.cpp
@@ -285,6 +285,23 @@ namespace armarx
                     //update robot
                     _module<ControlThreadDataBuffer>().updateVirtualRobot(selfCollisionAvoidanceRobot, selfCollisionAvoidanceRobotNodes);
 
+                    //check for all nodes 0
+                    {
+                        bool allJoints0 = true;
+                        for(const VirtualRobot::RobotNodePtr node : selfCollisionAvoidanceRobotNodes)
+                        {
+                            if(0 != node->getJointValue())
+                            {
+                                allJoints0 = false;
+                                break;
+                            }
+                        }
+                        if(allJoints0)
+                        {
+                            continue;
+                        }
+                    }
+
                     bool collision = false;
                     for (std::size_t idx = 0; idx < nodePairsToCheck.size(); ++idx)
                     {
-- 
GitLab