Yaskawa-Global / motoros2

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

Unexpected `8011[63]` (`Invalid motion type`) (YRC, GP25, linear track) #178

Closed gavanderhoorn closed 11 months ago

gavanderhoorn commented 11 months ago

It looks like #176 works a little too well, in that it immediately is raised on a YRC1, GP25 on a linear track -- which is a simple system that should-just-work (tm).

Have to investigate.

gavanderhoorn commented 11 months ago

@ted-miller: is MOTION_TYPE_NOT_USED returned for axes that are not present in motion groups?

ted-miller commented 11 months ago

Ahhh... Yeah, I merged w/o testing. Foolish.

is MOTION_TYPE_NOT_USED returned for axes that are not present in motion groups?

Yes. There's 8 axes in EVERY group. Most are not used.

gavanderhoorn commented 11 months ago

Ok. I thought so.

Should this just only look at axes which are actually configured:

https://github.com/Yaskawa-Global/motoros2/blob/df3a334e975bdd226780dcc9bd72b6406e0692e1/src/PositionMonitor.c#L295

?

ted-miller commented 11 months ago

Should this just only look at axes which are actually configured:

Yes. But it's not terribly straight-forward. The current control-group doesn't have knowledge of the base-group's axis configuration.

So it'd be something like: g_Ros_Controller.ctrlGroups[group->baseTrackGroupIndex].axisType[i] != AXIS_INVALID

This seems like an awful lot of clutter for something that shouldn't happen and AFAICT cannot happen.

I'd be in favor of just adding a default: break; to the switch and removing the alarm. But I'll leave it up to you.

gavanderhoorn commented 11 months ago

See #179.