gripper add 15s timeout & gripper enable once
This commit is contained in:
@@ -36,6 +36,14 @@ class GripperDevNode(Node):
|
||||
self.cur_goal=None
|
||||
self.timer_on=False
|
||||
self.target_mode=0
|
||||
self.enable_ok=False
|
||||
flag = self.clawControl.serialOperation(self.com_dev, 115200, True)
|
||||
if flag==1:
|
||||
ret = self.clawControl.enableClamp(self.devid, True)
|
||||
if ret==1:
|
||||
self.enable_ok=True
|
||||
else:
|
||||
print(self.comd_dev,'enble fail!')
|
||||
print('gripper_dev_node init:',self.com_dev)
|
||||
#self.feedback_timer = self.create_timer(0.1, self.update_feedback)
|
||||
def gripper_cmd_callback_action(self,goal):
|
||||
@@ -46,20 +54,22 @@ class GripperDevNode(Node):
|
||||
self.target_torque=req.torque
|
||||
self.target_mode=req.mode
|
||||
print('recv goal',self.devid,self.target_loc,self.target_speed,self.target_torque,self.target_mode)
|
||||
flag = self.clawControl.serialOperation(self.com_dev, 115200, True)
|
||||
if flag==1:
|
||||
ret = self.clawControl.enableClamp(self.devid, True)
|
||||
if ret!=1:
|
||||
print('enble fail!')
|
||||
result=GripperCmd.Result()
|
||||
result.state="gripper enable fail!"
|
||||
result.result=0
|
||||
goal.abort()
|
||||
return result
|
||||
print('start run...')
|
||||
#flag = self.clawControl.serialOperation(self.com_dev, 115200, True)
|
||||
#if flag==1:
|
||||
# ret = self.clawControl.enableClamp(self.devid, True)
|
||||
# if ret!=1:
|
||||
# print('enble fail!')
|
||||
# result=GripperCmd.Result()
|
||||
# result.state="gripper enable fail!"
|
||||
# result.result=0
|
||||
# goal.abort()
|
||||
# return result
|
||||
# print('start run...')
|
||||
if self.enable_ok:
|
||||
self.clawControl.runWithParam(self.devid,self.target_loc,self.target_speed,self.target_torque)
|
||||
##feedback
|
||||
loop_flag=True
|
||||
loop_times=0
|
||||
while loop_flag:
|
||||
loc = self.clawControl.getClampCurrentLocation(self.devid)
|
||||
speed = self.clawControl.getClampCurrentSpeed(self.devid)
|
||||
@@ -80,9 +90,18 @@ class GripperDevNode(Node):
|
||||
print('update feedback:',feedback_msg)
|
||||
self.cur_goal.publish_feedback(feedback_msg)
|
||||
time.sleep(1)
|
||||
loop_times+=1
|
||||
if loop_times>15:
|
||||
result=GripperCmd.Result()
|
||||
result.state="loop timeout!!!"
|
||||
result.result=0
|
||||
goal.abort()
|
||||
loop_times=0
|
||||
return result
|
||||
|
||||
else:
|
||||
result=GripperCmd.Result()
|
||||
result.state="uart open fail!"
|
||||
result.state="uart open fail & enable fail!"
|
||||
result.result=0
|
||||
goal.abort()
|
||||
return result
|
||||
@@ -96,7 +115,10 @@ class GripperDevNode(Node):
|
||||
goal.succeed()
|
||||
print('action finish',state)
|
||||
return result
|
||||
|
||||
def destroy_node(self):
|
||||
super.destroy_node()
|
||||
flag = self.clawControl.serialOperation(self.com_dev, 115200, False)
|
||||
|
||||
def gripper_cmd_callback(self, request, response):
|
||||
self.cur_loc=request.loc
|
||||
self.cur_speed=request.speed
|
||||
@@ -116,6 +138,7 @@ def main():
|
||||
rclpy.init()
|
||||
node=GripperDevNode()
|
||||
rclpy.spin(node)
|
||||
node.destroy_node()
|
||||
rclpy.shutdown()
|
||||
pass
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user