Yaskawa-Global / motoros2

ROS 2 (rcl, rclc & micro-ROS) node for MotoPlus-compatible Yaskawa Motoman robot controllers
96 stars 20 forks source link

New service: allow retrieving information about active alarms and/or errors #182

Open gavanderhoorn opened 11 months ago

gavanderhoorn commented 11 months ago

As per title really.

Should fix #14 -- or at least for a large part.

Interface definitions are discussed in https://github.com/Yaskawa-Global/motoros2_interfaces/pull/9. Some of the fields in that service/message definition are not populated/set by the implementation in this PR. I wanted to get a basic implementation reviewed + merged before potentially working on some of the more involved parts (such as retrieving cause-remedy pairs from PP data files).

The current implementation works, at least as tested on my YRC1. There is a single issue to iron out, which is that the underlying infrastructure (from M+) has trouble reporting multiple concurrently active user alarms correctly. Alarm and error codes + subcodes will be correct, but the message will not be. This is a known issue and is solved in newer releases of the controller OS.

This doesn't necessarily need to go into 0.1.2, so reviews can be done later.

I just wanted to open the PR to avoid having it lying around any longer -- and avoid going in a direction which would not be acceptable later.

gavanderhoorn commented 11 months ago

Note: CI builds here will fail until we release M+ libmicroros which includes the new interfaces (https://github.com/Yaskawa-Global/motoros2_interfaces/pull/9).

gavanderhoorn commented 2 months ago

I've marked this as no-longer-a-draft as I tested it again yesterday and it (still) works.

Not all fields of the response are filled (such as the timestamp), but that's by-design right now, as they are reserved for future use and will require some more work on the MotoROS2 side.

We don't need to merge this into 0.1.3 though.

But @ted-miller or @yai-rosejo or @jimmy-mcelwain: if you'd have some time to review, please do.


Edit: I only tested on YRC1 btw. It should work on YRC1u and DX2 as well. FS1 is not supported right now.

ted-miller commented 2 months ago

My testing was performed on DX200