UR robot arm speed control
I use ros melodic with ubuntu 18. I wrote this script to change robot speed but I got an error. How can I fix this error?
ERROR: service [/SetSpeedSliderFraction] responded with an error: service cannot process request: service handler returned None
the code:
#!/usr/bin/env python
from __future__ import print_function
from ur_msgs.srv import SetSpeedSliderFraction, SetSpeedSliderFractionRequest, SetSpeedSliderFractionResponse
import rospy
def handle_req(req):
print(SetSpeedSliderFractionRequest(req))
def set_robot_speed_server():
rospy.init_node('set_robot_speed')
s = rospy.Service('SetSpeedSliderFraction', SetSpeedSliderFraction, handle_req)
print("Ready to set robot speed..")
rospy.spin()
if __name__ == '__main__':
set_robot_speed_server()
EDIT and Solution:
The callback should be like this:
def handle_req(req):
if(SetSpeedSliderFractionResponse(req).success == req):
return True
else:
return False
What are you trying to do exactly?
rospy.Service(..)
creates a new service server.From your description however I get the impression you're trying to call an existing service.
I would like to create a custom service that uses the existing ros service that is ur_msgs/setSpeedSliderFraction. My aim is to reduce the robot speed by calling my custom service. According to this.