Skip to content

Service raw_request always returns "could not understand: <request>" (when trying to set payload mass+CoG) #154

@argargreg

Description

@argargreg

Summary

ur_robot_driver does not advertise a service set_payload anymore (which existed on ur_driver and ur_modern_driver). In order to set the payload mass (which is mandatory in our case), raw URscript "set_payload(X)" and "set_payload_cog(Y)" have to be sent, and I assume this is done via the /ur_hardware_interface/dashboard/raw_request service. However, this service always returns "could not understand:", regardless of the request (tried: "set_payload(0)", 'print("hello")', "a=force()", "a = 1+1".

Versions

  • ROS Driver version: Feb 7, 2020
  • ROS version: melodic
  • Affected Robot Software Version(s): URsim 3.12.1.90940 UR10
  • Affected Robot Hardware: UR10
  • URCaps Software version(s): External Control 1.0.1

Impact

The robot puts itself in safety when changing tools due to the change in payload mass and CoG. Without a way to send raw URscript commands, the development of our industrial station is stopped while this issue is not resolved (high priority for us).

Use Case and Setup

  • URSim UR10 launched
  • ur_robot_driver/ur10_bringup.launch in one terminal
  • rosservice call to raw_request OR rospy script in another terminal

Project status at point of discovered

Systematic issue easily reproduced.

Steps to Reproduce

  1. Start URSim UR10 with external control URcap on port 50002
  2. In one terminal, run "roslaunch ur_robot_driver ur10_bringup.launch robot_ip:=127.0.0.1"
  3. Hit "play" in URsim, the terminal says "robot ready to receive commands"
  4. In another terminal, type "rosservice list"
    Note that set_payload is absent.
  5. Then type in the terminal opened in 4: rosservice call /ur_hardware_interface/dashboard/raw_request 'popup("hello")'
    Note that the answer is "could not understand" and that the popup did not appear.
  6. Try again with other URscript commands.
  7. Try again with the following python script saved as "test_raw_request.py" in "ur_driver" to launch using rosrun ur_driver test_raw_request.py
#!/usr/bin/env python
from ur_dashboard_msgs.srv import RawRequest
import rospy

if __name__ == "__main__":
    rospy.init_node('RawRequest_service_server')
    s = rospy.ServiceProxy('/ur_hardware_interface/dashboard/raw_request', RawRequest)
    print s('popup("hello")')

Expected Behavior

Actually executing the URscript command sent, for example showing a popup on the pendant.

Actual Behavior

Service successfully called but failed during execution due to a so-called unknown command: "could not understand "

Workaround Suggestion

None. Help?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions