From 32607e0053ee5da5f9ae539d93eb68acfd4c8a36 Mon Sep 17 00:00:00 2001
From: ipa-fxm <felix.messmer@ipa.fhg.de>
Date: Fri, 5 Sep 2014 09:43:02 +0000
Subject: [PATCH] moved service definition to ur_msgs, fix typos, add payload
 bound parameters

---
 ur_driver/CMakeLists.txt                      | 24 +------------------
 ur_driver/prog                                |  6 ++---
 ur_driver/src/ur_driver/driver.py             | 17 ++++++++-----
 ur_msgs/CMakeLists.txt                        |  1 +
 .../srv/SetPayload.srv                        |  0
 5 files changed, 16 insertions(+), 32 deletions(-)
 rename ur_driver/srv/URSetPayload.srv => ur_msgs/srv/SetPayload.srv (100%)

diff --git a/ur_driver/CMakeLists.txt b/ur_driver/CMakeLists.txt
index 5eafcb0..7a7e105 100644
--- a/ur_driver/CMakeLists.txt
+++ b/ur_driver/CMakeLists.txt
@@ -4,32 +4,10 @@ project(ur_driver)
 ## Find catkin macros and libraries
 ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
 ## is used, also find other catkin packages
-find_package(catkin REQUIRED message_generation)
+find_package(catkin REQUIRED)
 
 catkin_python_setup()
 
-#######################################
-## Declare ROS messages and services ##
-#######################################
-
-## Generate messages in the 'msg' folder
-# add_message_files(
-#   FILES
-#   Message1.msg
-#   Message2.msg
-# )
-
-## Generate services in the 'srv' folder
-add_service_files(
-  FILES
-  URSetPayload.srv
-)
-
-## Generate added messages and services with any dependencies listed here
- generate_messages(
-   DEPENDENCIES
-   #control_msgs#   sensor_msgs
- )
 
 ###################################
 ## catkin specific configuration ##
diff --git a/ur_driver/prog b/ur_driver/prog
index 2ae340b..18d6671 100644
--- a/ur_driver/prog
+++ b/ur_driver/prog
@@ -220,7 +220,7 @@ def driverProg():
         #send_waypoint_finished(waypoint_id)
         set_servo_setpoint(waypoint_id, q, t)
       elif mtype == MSG_SET_PAYLOAD:
-	    params = socket_read_binary_integer(1)
+        params = socket_read_binary_integer(1)
         if params[0] == 0:
           send_out("Received no parameters for setPayload message")
         end
@@ -240,7 +240,7 @@ def driverProg():
           send_out("Received no parameters for set_out message")
         end
         if params_mult[2] > 0:
-	  set_digital_out(params_mult[1], True)
+      set_digital_out(params_mult[1], True)
         elif params_mult[2] == 0:
           set_digital_out(params_mult[1], False)
         end
@@ -252,7 +252,7 @@ def driverProg():
           send_out("Received no parameters for set_out message")
         end
         if params_mult[2] != 0:
-	  set_flag(params_mult[1], True)
+      set_flag(params_mult[1], True)
         elif params_mult[2] == 0:
           set_flag(params_mult[1], False)
         end
diff --git a/ur_driver/src/ur_driver/driver.py b/ur_driver/src/ur_driver/driver.py
index fbddf71..ea08d41 100755
--- a/ur_driver/src/ur_driver/driver.py
+++ b/ur_driver/src/ur_driver/driver.py
@@ -19,9 +19,8 @@ from geometry_msgs.msg import WrenchStamped
 
 from ur_driver.deserialize import RobotState, RobotMode
 
-from ur_msgs.srv import SetIO
+from ur_msgs.srv import SetPayload, SetIO
 from ur_msgs.msg import *
-from ur_driver.srv import *
 
 # renaming classes
 DigitalIn = Digital
@@ -60,6 +59,12 @@ MULT_jointstate = 10000.0
 MULT_time = 1000000.0
 MULT_blend = 1000.0
 
+#Bounds for SetPayload service
+MIN_PAYLOAD = 0.0
+MAX_PAYLOAD = 5.0    #UR5
+#MAX_PAYLOAD = 10.0    #UR10
+
+
 FUN_SET_DIGITAL_OUT = 1
 FUN_SET_FLAG = 2
 FUN_SET_ANALOG_OUT = 3
@@ -448,7 +453,7 @@ class CommanderTCPHandler(SocketServer.BaseRequestHandler):
         with self.socket_lock:
             self.request.send(buf)
         
-	#Experimental set_payload implementation
+    #Experimental set_payload implementation
     def send_payload(self,payload):
         buf = struct.pack('!ii', MSG_SET_PAYLOAD, payload * MULT_payload)
         with self.socket_lock:
@@ -606,14 +611,14 @@ def within_tolerance(a_vec, b_vec, tol_vec):
 class URServiceProvider(object):
     def __init__(self, robot):
         self.robot = robot
-        rospy.Service('ur_driver/setPayload', URSetPayload, self.setPayload)
+        rospy.Service('ur_driver/setPayload', SetPayload, self.setPayload)
 
     def set_robot(self, robot):
         self.robot = robot
 
     def setPayload(self, req):
-        if req.payload < 0 or req.payload > 20.00:
-            print 'ERROR: Payload out of bounce'
+        if req.payload < MIN_PAYLOAD or req.payload > MAX_PAYLOAD:
+            print 'ERROR: Payload out of bounds'
             return False
         
         if self.robot:
diff --git a/ur_msgs/CMakeLists.txt b/ur_msgs/CMakeLists.txt
index f9bd5a2..1fc2dd9 100644
--- a/ur_msgs/CMakeLists.txt
+++ b/ur_msgs/CMakeLists.txt
@@ -18,6 +18,7 @@ find_package(catkin REQUIRED COMPONENTS message_generation std_msgs)
 ## Generate services in the 'srv' folder
  add_service_files(
    FILES
+   SetPayload.srv
    SetIO.srv
  )
 
diff --git a/ur_driver/srv/URSetPayload.srv b/ur_msgs/srv/SetPayload.srv
similarity index 100%
rename from ur_driver/srv/URSetPayload.srv
rename to ur_msgs/srv/SetPayload.srv
-- 
GitLab