From f67b98cb2e42f1fa9f30c3e7865b6a28b5a48d5e 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 7ac06e4..21b35ce 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 2c7b008..3232192 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