Yaskawa-Global / motoros2

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

MH900 axis configuration won't work #177

Open ted-miller opened 1 year ago

ted-miller commented 1 year ago

So I just discovered that the axis configuration on an MH900 is really weird, due to the extra-large power converters on the lower three axes.

============================================================
CONNECT(STO)                                        
        -- AXIS --  -- BRK --   -- CV  --           
    SV <123456789> <123456789> <123456789> ON_EN  OT
------------------------------------------------------------
R1 :#1 [456---123] [123456---] [111---234] ON_EN1 OT1   
============================================================

1) The axis-order is not one that will be recognized by Ros_CtrlGroup_ConvertSequentialJointOrderToMotoJointOrder 2) The MotoPlus API can't control the 9th axis in a single control group.

This could potentially be re-wired on the servo board to a supported configuration. But the local engineer in charge of MH900 wasn't immediately sure about the implications. More investigation would be required.


And while discussing this issue, it was mentioned that the GP4 also has a really weird axis configuration. I don't have details beyond "really weird".

gavanderhoorn commented 1 year ago

The MotoPlus API can't control the 9th axis in a single control group.

Should we not assert on this model until this has been fixed?

Just to prevent late user-facing errors?

And document the fact that model is unsupported.


Edit: same for GP4.

(I vaguely remember at least one user with a GP4, but can't find any reference to it, neither here nor in the beta1 repository. Perhaps MotoROS1?)


Edit 2: yes, https://github.com/ros-industrial/motoman/discussions/544 was posted by a user of motoman_driver (ie: MotoROS1) with a GP4.

ted-miller commented 1 year ago

I think that's a good idea. But we don't currently have true robot-model-detection. We just get the axis type (linear/rotational) and then make some assumptions based on number of axes.

Having said that, it's possible.

ted-miller commented 1 year ago

GP4:

I don't see anything weird here. image

Perhaps due to the fact this is from MotoSim and not a real arm. But given that https://github.com/ros-industrial/motoman/discussions/544 got everything working, I'm guessing it's fine.

gavanderhoorn commented 1 year ago

But we don't currently have true robot-model-detection

any M+ APIs we could use?

ted-miller commented 1 year ago

Here's a couple HSES commands... I have to imagine there are M+ equivalents.

GetAxisConfiguration.pdf

SystemInformation.pdf

ted-miller commented 1 year ago

I suppose we could always just parse the PANELBOX.LOG file. It's not ideal, but it wouldn't be too difficult.

ted-miller commented 1 year ago

Or we could invoke the HSES command. It's easy enough to hard-code a binary packet (as opposed to implementing an entire interface).

gavanderhoorn commented 1 year ago

Are we mostly worried about the active axis in the 9th slot, or about the unusual order?

ted-miller commented 1 year ago

Both equally.

We need to detect unusual order for the sake of Ros_CtrlGroup_ConvertSequentialJointOrderToMotoJointOrder. Otherwise we won't process an incoming trajectory properly.

We need to detect the 9th axis to raise a fatal alarm, since we can't control the U axis in that configuration.