Robotics StackExchange | Archived questions

Schunk lwa4p random stops with ros_canopen

Hi,

I am running Schunk lwa4p arm using ros_canopen and schunk_robots from ipa320. For the most part, robot works fine (except I am having issues initializing the robot with sync interval lower than 25ms). However, at random times it just puts out the following EMCY code:

EMCY: 83#128621D633D81848

In most cases, the robot can easily be recovered using /driver/recover service. Depending on the pose of the robot in which it stopped, sometimes it continues to move normally but sometimes I get the following errors when trying to resume motion:

EMCY: 88#2132257200000000

EMCY: 83#2132257200000000

EMCY: 84#2132257200000000

EMCY: 85#2132257200000000

EMCY: 86#2132257200000000

EMCY: 87#2132257200000000

From this situation, the robot cannot recover, I just get a flood of Did not receive a response message messages and then the following error:

[ERROR] [1567520915.927482791]: CAN not ready; RPDO timeout; RPDO timeout; RPDO timeout; RPDO timeout; RPDO timeout; RPDO timeout; RPDO timeout; RPDO timeout; RPDO timeout; RPDO timeout; RPDO timeout; RPDO timeout; CAN not ready

At this point, the only thing that worked was restarting the robot completely. Any hints what all these EMCY codes mean? I guess the latter part has something to do with current, but the first part (EMCY: 83#128621D633D81848) I don't know what it should represent, let alone why it happens.

Asked by v5 on 2019-09-03 09:47:43 UTC

Comments

Answers

EMCY: 83#128621D633D81848

This is error code 8612 (see /diagnostics as well). Unfortunately, Schunk does not list the error codes in the manual (anymore..).

I quick web search revealed that this code is used by some vendors to indicate that the software limit was reached.

You might want to check these limits. Perhaps you have to calibrate/home the robot again (with the Schunk software). If in doubt, just contact Schunk.

(BTW, 3221 might mean undervoltage error)

Asked by Mathias Lüdtke on 2019-09-05 10:52:08 UTC

Comments

Thanks for the answer, do you have any idea why the arm will not initialize with smaller sync interval? It usually works with 25ms or more, but never with anything lower than that.

Asked by v5 on 2019-09-10 08:03:51 UTC

Normally, a SYNC interval of 10ms work perfectly fine with LWA4, but you might need to increase the TX queue length (https://github.com/ros-industrial/ros_canopen/issues/102)

Asked by Mathias Lüdtke on 2019-09-11 09:48:17 UTC

I am aware of that conversation, it helped a lot. I tried up to 20 TX queue length (for which the discussion seems to go in direction of being enough) but I can try even higher. Thanks for the help! I still haven't found the time to check the limits on our arm, once I confirm the limits are the issue I will mark the question as answered.

Asked by v5 on 2019-09-15 04:01:57 UTC

I'm having the same issue. I'm trying to use ros control and ros canopen for controlling schunk lwa4p with ros noetic. However, after configuring txqueuelen to 20, I'm still not able to get SYNC interval below interval_ms: 25. When using times less than 25 ms, I'm getting following error: 0x8110=CAN overrun (objects lost) which says. It would be great if someone knows how to solve this.

You can find schunk error codes here and here. And 8612 is a reference limit error.

Asked by __zozan__ on 2021-09-05 10:33:37 UTC