Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

protective stop with ros_control #2

Open
jacknlliu opened this issue Jan 8, 2019 · 4 comments
Open

protective stop with ros_control #2

jacknlliu opened this issue Jan 8, 2019 · 4 comments

Comments

@jacknlliu
Copy link
Owner

jacknlliu commented Jan 8, 2019

firmware version: 3.3.4.310

[ERROR] [1547003438.325407105]: Robot is protective stopped!
[ERROR] [1547003438.325648688]: Aborting trajectory
[ERROR] [1547003438.325766930]: You are attempting to call methods on an uninitialized goal handle
[ERROR] [1547003441.533589773]: Robot is protective stopped!
[ERROR] [1547003704.125501149]: Robot is protective stopped!
[ERROR] [1547015232.648165078]: Robot is protective stopped!
[ERROR] [1547015244.328869971]: Unexpected error: No trajectory defined at current time. Please contact the package maintainer.
[ERROR] [1547015245.329841693]: Unexpected error: No trajectory defined at current time. Please contact the package maintainer.
[ERROR] [1547015249.886892405]: Robot is protective stopped!
[ERROR] [1547015251.390293340]: Robot is protective stopped!
[ERROR] [1547015254.838960305]: Unexpected error: No trajectory defined at current time. Please contact the package maintainer.
[ERROR] [1547015257.905876416]: Robot is protective stopped!

screenshot from 2019-01-09 16-05-50

Reference

@jacknlliu
Copy link
Owner Author

jacknlliu commented Jan 9, 2019

Unexpected error: No trajectory defined at current time

rqt can't get valid data.

Reference

@jacknlliu
Copy link
Owner Author

jacknlliu commented Jan 9, 2019

Possible issues:

  • communication error
    • the protocol is different in firmware version 3.3.4.310, such as pack size?
      • The pack size is less than 2048.
    • /joint_states and hardware interface in ros control can't get valid data(data jumping) after a few minutes, sometimes we get no messages from rostopic hz /joint_states, and only 1 Hz for joint states! Maybe unpack error for v3.3?
  • position control issue
    • acceleration and vel limits are not the same as the real robot settings
  • position controller based on vel interface
    • PID parameters for vel which may cause the joint speed out of the limit
    • incorrect acceleration setting from the joint trajectory controller to ur hardware interface(speedj()),see here.
  • mechanical failure
    • joint position deviation from the designed model

@jacknlliu
Copy link
Owner Author

rqt_joint_trajectory_controller:

Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_joint_trajectory_controller/joint_trajectory_controller.py", line 428, in _update_cmd_cb
    self._cmd_pub.publish(traj)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/topics.py", line 886, in publish
    raise ROSSerializationException(str(e))
rospy.exceptions.ROSSerializationException: <class 'struct.error'>: 'integer out of range for 'i' format code' when writing '10136431958073778304385650838915089352497362729450656266185768343912164969068343814491130656221911512084591072349657775418879218483551627682630900033986257069101061831707756387901440815160610564564863428031676416000000000'

@jacknlliu
Copy link
Owner Author

jacknlliu commented Jan 10, 2019

I find that UR robot with firmware 3.3.4.310 can't get stable communication with 125Hz, UR can't parse the script commands from TCP packages correctly(especially in velocity mode), and this also makes the wrong robot state msgs from UR to host, then it will make the ros control loop broken.

Possible issues in UR:

  • TCP sticky package problem in UR controller. Maybe lack some check about integrality of the TCP package. We know that the URscript tcp package is variable length package!
    • print the speedj command will that speed of joint is OK(no data jumping)! So command from host to UR controller is OK.
    • The pack size using recv is 1060 < 2048, and the deserialization is OK, so state protocol from UR to host is also OK. But maybe the wrong TCP communication from UR to host.
    • mechanical failure

Solution:

  • using the trajectory follower interface without ros control
  • or set the ros control loop as 30Hz or upgrade UR controller firmware(only the latest v3.8.0.61336 works!).
  • modify the hardware interface default acceleration for joint trajectory controller
  • set appropriate control frequency for controller

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant