I am using a UR5e series robotic arm on a Linux platform, communicating via RTDE. How can I obtain its error logs? Is it possible to parse the messages on POP? How should I do this? Thank you very much!
Error messages may be sent via RTDE at the time they occur via the Text-Message package type.
If you want to see all the errors after the fact, you can SSH into the robot and retrieve the logs. They are in log_history.txt, and while you can get some details from reading the file directly, you will probably get better results by loading the file into the UR log viewer. From memory, you might even be able to get the Log Viewer to pull the logs directly from the connected robot rather than downloading the file(s) first.
I’m not sure what you mean by “parse the messages on POP”.
Could you please let me know what keyword I should use to retrieve error messages?
I’ve already accessed the UR robot via SSH and confirmed that the logs can indeed be found. However, I’m specifically looking for error messages, and the log contains too much other execution-related information. Also, it only allows post-event access, not real-time monitoring.
When I mentioned “parse the messages on POP,” I was referring to the error pop-up messages shown on the teach pendant — for example, messages like “Joint 1 deviates from the expected position” rather than generic ones like protective stop. I’m hoping to capture more detailed diagnostic messages like these.
For real-time monitoring, have you tried watching for Text-Message packages on RTDE? If that doesn’t work, try connecting to the Primary Interface and watching for the various Robot Message packages.
To filter out error messages from the log, try loading it into the UR log viewer (link in my previous message). That has filtering functionality in it.
For reading popup messages, connect to the Primary Interface and watch for Robot Message - Popup Message (message type 20, message type 2). See the Primary Interface docs for more details.
I have successfully retrieved the UR binary message information from port 30001. However, I have not been able to find the type 20, subtype 2 popup message you mentioned, even when triggering a protective stop or an emergency stop.
I did, however, find a solution in another thread using your technical documentation. By parsing a type 20, subtype 6 message, I was able to find the error codes I needed. This message contains the descriptions I was looking for, so I’ve essentially accomplished my goal.
[17:34:23.089][WARNING] RobotCommMessage: C157A0
[17:34:23.089] KeyMessage: 0 0 18
Title= PROGRAM_XXX_PAUSED
Message= inkognito
I am currently using a UR5e with Polyscope version 5.22.0. While trying to parse the messages myself, I found messages of type 20 with subtypes 12 and 17, but I couldn’t find any documentation for these types. The document I have only contains information for versions 5.9 and 5.10, so I’m wondering if there have been changes in later versions.
My remaining question is: how can I retrieve these messages via RTDE? The frequency of port 30001 is too low for my application. Could you please provide an example of how to achieve this with RTDE?
That’s good that you’ve got something working with port 30001. I’m afraid I haven’t done this myself, so I don’t have any examples of doing it with RTDE. I see Text-Message packages documented for RTDE, but I’ve seen somewhere else on this forum that the error messages don’t necessarily get sent on that channel so it may or may not help.
Are you sure the Primary Interface frequency is too low? You can see on RTDE whether the robot is in a protective-stop status, how important is it for you to have the message in under 100ms?