diff --git a/ur_bringup/launch/ur10_bringup.launch b/ur_bringup/launch/ur10_bringup.launch index 445e0b3c89b57d8e47487a4cf6a98a9540a1d957..311bf5574ac1c7aed882b80515fdd579bb8d9ca8 100644 --- a/ur_bringup/launch/ur10_bringup.launch +++ b/ur_bringup/launch/ur10_bringup.launch @@ -12,6 +12,8 @@ <arg name="robot_ip"/> <arg name="reverse_port" default="50001"/> <arg name="limited" default="false"/> + <arg name="min_payload" default="0.0"/> + <arg name="max_payload" default="20.0"/> <!-- robot model --> <include file="$(find ur_description)/launch/ur10_upload.launch"> @@ -22,6 +24,8 @@ <include file="$(find ur_bringup)/launch/ur_common.launch"> <arg name="robot_ip" value="$(arg robot_ip)"/> <arg name="reverse_port" value="$(arg reverse_port)"/> + <arg name="min_payload" value="$(arg min_payload)"/> + <arg name="max_payload" value="$(arg max_payload)"/> </include> </launch> diff --git a/ur_bringup/launch/ur10_bringup_joint_limited.launch b/ur_bringup/launch/ur10_bringup_joint_limited.launch index 9964be4721aedf94f28b74397175a07a70748a32..b95ce8c10cb7f2f750019a793315039254047eae 100644 --- a/ur_bringup/launch/ur10_bringup_joint_limited.launch +++ b/ur_bringup/launch/ur10_bringup_joint_limited.launch @@ -11,10 +11,14 @@ <!-- robot_ip: IP-address of the robot's socket-messaging server --> <arg name="robot_ip"/> <arg name="reverse_port" default="50001"/> + <arg name="min_payload" default="0.0"/> + <arg name="max_payload" default="20.0"/> <include file="$(find ur_bringup)/launch/ur10_bringup.launch"> <arg name="robot_ip" value="$(arg robot_ip)"/> <arg name="reverse_port" value="$(arg reverse_port)"/> <arg name="limited" value="true"/> + <arg name="min_payload" value="$(arg min_payload)"/> + <arg name="max_payload" value="$(arg max_payload)"/> </include> </launch> diff --git a/ur_bringup/launch/ur5_bringup.launch b/ur_bringup/launch/ur5_bringup.launch index 6e2bfd7c273768f8a79bccf51dd0d85bb70198aa..52f7ebd67b5cb0f357127b9cd42fc2dc370aafad 100644 --- a/ur_bringup/launch/ur5_bringup.launch +++ b/ur_bringup/launch/ur5_bringup.launch @@ -12,6 +12,8 @@ <arg name="robot_ip"/> <arg name="reverse_port" default="50001"/> <arg name="limited" default="false"/> + <arg name="min_payload" default="0.0"/> + <arg name="max_payload" default="10.0"/> <!-- robot model --> <include file="$(find ur_description)/launch/ur5_upload.launch"> @@ -22,6 +24,8 @@ <include file="$(find ur_bringup)/launch/ur_common.launch"> <arg name="robot_ip" value="$(arg robot_ip)"/> <arg name="reverse_port" value="$(arg reverse_port)"/> + <arg name="min_payload" value="$(arg min_payload)"/> + <arg name="max_payload" value="$(arg max_payload)"/> </include> </launch> diff --git a/ur_bringup/launch/ur5_bringup_joint_limited.launch b/ur_bringup/launch/ur5_bringup_joint_limited.launch index 4aa7a04f18170c11b7c4e367482cb8a238043df2..dfa7560e814601e4afd4f1e7ae134766e8460fe9 100644 --- a/ur_bringup/launch/ur5_bringup_joint_limited.launch +++ b/ur_bringup/launch/ur5_bringup_joint_limited.launch @@ -11,10 +11,14 @@ <!-- robot_ip: IP-address of the robot's socket-messaging server --> <arg name="robot_ip"/> <arg name="reverse_port" default="50001"/> + <arg name="min_payload" default="0.0"/> + <arg name="max_payload" default="10.0"/> <include file="$(find ur_bringup)/launch/ur5_bringup.launch"> <arg name="robot_ip" value="$(arg robot_ip)"/> <arg name="reverse_port" value="$(arg reverse_port)"/> <arg name="limited" value="true"/> + <arg name="min_payload" value="$(arg min_payload)"/> + <arg name="max_payload" value="$(arg max_payload)"/> </include> </launch> diff --git a/ur_bringup/launch/ur_common.launch b/ur_bringup/launch/ur_common.launch index 73eff943c287cc956b03cf7941396005a67a09df..cd3b292caa6eb98df20ed788f474bc7fb31d47a1 100644 --- a/ur_bringup/launch/ur_common.launch +++ b/ur_bringup/launch/ur_common.launch @@ -13,6 +13,8 @@ <!-- robot_ip: IP-address of the robot's socket-messaging server --> <arg name="robot_ip"/> <arg name="reverse_port" default="50001"/> + <arg name="min_payload"/> + <arg name="max_payload"/> <!-- copy the specified IP address to be consistant with ROS-Industrial spec. NOTE: The ip address is actually passed to the driver on the command line --> @@ -22,7 +24,10 @@ <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" /> <!-- driver --> - <node name="ur_driver" pkg="ur_driver" type="driver.py" args="$(arg robot_ip) $(arg reverse_port)" output="screen" /> + <node name="ur_driver" pkg="ur_driver" type="driver.py" args="$(arg robot_ip) $(arg reverse_port)" output="screen"> + <param name="min_payload" type="double" value="$(arg min_payload)"/> + <param name="max_payload" type="double" value="$(arg max_payload)"/> + </node> <!-- TF Buffer Server --> <node pkg="tf2_ros" type="buffer_server" name="tf2_buffer_server"> diff --git a/ur_driver/src/ur_driver/driver.py b/ur_driver/src/ur_driver/driver.py index ea08d416461c3c29b592e4dbd853563e1f2ac04f..f213ddd4b029163dc2ab98c768766910883e5542 100755 --- a/ur_driver/src/ur_driver/driver.py +++ b/ur_driver/src/ur_driver/driver.py @@ -61,8 +61,8 @@ MULT_blend = 1000.0 #Bounds for SetPayload service MIN_PAYLOAD = 0.0 -MAX_PAYLOAD = 5.0 #UR5 -#MAX_PAYLOAD = 10.0 #UR10 +MAX_PAYLOAD = 1.0 +#Using a very conservative value as it should be set throught the parameter server FUN_SET_DIGITAL_OUT = 1 @@ -617,8 +617,8 @@ class URServiceProvider(object): self.robot = robot def setPayload(self, req): - if req.payload < MIN_PAYLOAD or req.payload > MAX_PAYLOAD: - print 'ERROR: Payload out of bounds' + if req.payload < min_payload or req.payload > max_payload: + print 'ERROR: Payload ' + str(req.payload) + ' out of bounds (' + str(min_payload) + ', ' + str(max_payload) + ')' return False if self.robot: @@ -893,6 +893,15 @@ def main(): # Reads the maximum velocity global max_velocity max_velocity = rospy.get_param("~max_velocity", 2.0) + + # Reads the minimum payload + global min_payload + min_payload = rospy.get_param("~min_payload", MIN_PAYLOAD) + # Reads the maximum payload + global max_payload + max_payload = rospy.get_param("~max_payload", MAX_PAYLOAD) + rospy.loginfo("Bounds for Payload: [%s, %s]" % (min_payload, max_payload)) + # Sets up the server for the robot to connect to server = TCPServer(("", reverse_port), CommanderTCPHandler)