motoman icon indicating copy to clipboard operation
motoman copied to clipboard

MotoROS: add a (simple) ui on the TP

Open gavanderhoorn opened this issue 7 years ago • 25 comments

A discussion topic / enhancement request: the MotoROS side of the driver could include a UI shown on the TP that provides both access to settings as well as status information.

Some possible pieces of information / configuration options such a UI could provide (from https://github.com/ros-industrial/motoman/pull/191#issuecomment-359940450):

  1. (en|dis)abling velocity feedback (recent addition in #191)
  2. maybe enable/disable torque feedback
  3. display a diagnostic monitor screen
  4. display all the controller information that is calculated at startup (max speeds, pulse->radian, etc)

gavanderhoorn avatar Jan 24 '18 08:01 gavanderhoorn

Some more suggestions:

  1. MotoROS version info
  2. connection status: connected, disconnected, remote IP, etc
  3. how many connections to the State, Motion and IO servers are being serviced (and how many are still available), perhaps also nr of tasks running
  4. Motion groups detected vs controlled (could be part of 4 in the OP)
  5. message statistics:
    1. corrupt msgs (if ever)
    2. unknown msgs
    3. unhandled msgs (ie: IO msgs to state server)
    4. total nr of msgs (nr of trajectory msgs, etc)
  6. trajectory execution status: nr of traj msgs received since start of new trajectory, etc. We don't know how long trajectories are (they are streamed), so this would essentially be a running counter that gets reset upon reception of a new traj)
  7. Ros_MotionServer_IncMoveLoopStart queue status
  8. simple 'log viewer' (telnet output into multi-line text edit control)
  9. current joint states per group as MotoROS 'sees' them (ie: ROS joint order, to diagnose: start state deviated from current state problems)

gavanderhoorn avatar Jan 24 '18 08:01 gavanderhoorn

Things to potentially configure:

  • update/control rates (instead of recompiling the MotoPlus binary, change rate and restart controller / reconnect)
  • switch between motoman and ROS joint ordering (optional, might not have much use)
  • (en|dis)able 'single client mode': only allow a single IP to setup state and motion control connections (the latter is already impossible, but just to be thorough)
  • (en|dis)abling motion control side of MotoROS only: state connections keep working, but external control of the robot is impossible
  • (en|dis)abling IO interface of MotoROS (in both the motion and io servers)
  • (en|dis)abling MotoROS completely, without having to uninstall the binary
  • (en|dis)abling motion groups reported on and controlled by MotoROS (robot has 3 groups, I only want to allow control of and report state of one of those)

gavanderhoorn avatar Jan 26 '18 12:01 gavanderhoorn

@ted-miller: I just wrote down what I could think of. In no particular order.

Would there be anything that you feel should be looked at first?

gavanderhoorn avatar Jan 26 '18 12:01 gavanderhoorn

I'll make some dummy screens sometime next week and post them to see what you think. These are the items I think should be addressed first, as they require less dramatic changes to the MotoPlus:

  • (en|dis)abling velocity feedback
  • display all the controller information that is calculated at startup (max speeds, pulse->radian, etc)
  • MotoROS version info
  • connection status: connected, disconnected, remote IP, etc
  • how many connections to the State, Motion and IO servers are being serviced (and how many are still available), perhaps also nr of tasks running
  • Motion groups detected vs controlled (could be part of 4 in the OP)
  • Ros_MotionServer_IncMoveLoopStart queue status
  • current joint states per group as MotoROS 'sees' them (ie: ROS joint order, to diagnose: start state deviated from current state problems)
  • update/control rates (instead of recompiling the MotoPlus binary, change rate and restart controller / reconnect)

ted-miller avatar Feb 01 '18 16:02 ted-miller

Do you guys have localized versions of ROS Industrial utilities in languages other than english? I'm wondering if these screens will ever be multi-lingual.

Given the limited screen space on the pendant, I need to plan extra carefully if I know the app will display other languages. (German and Mandarin are especially challenging.)

ted-miller avatar Feb 01 '18 21:02 ted-miller

Do you guys have localized versions of ROS Industrial utilities in languages other than english?

No, not at this time.

Focusing on English seems ok to me, but perhaps @shaun-edwards has some other input.

German and Mandarin are especially challenging

I can imagine. Are you doing those yourself as well?

gavanderhoorn avatar Feb 02 '18 08:02 gavanderhoorn

Curious/excited: :bellhop_bell: ? :)

gavanderhoorn avatar Mar 02 '18 11:03 gavanderhoorn

Sorry, I haven't had much time to work on side-projects lately. Here's what I have so far. I'm still not sure the best way to display all the information listed above. Your feedback is welcomed.

20180302105254

ted-miller avatar Mar 02 '18 16:03 ted-miller

Also, the center listview is scrollable. So, I can certainly add more status info to that list.

ted-miller avatar Mar 02 '18 16:03 ted-miller

Looks ok. I'm guessing this is a YRC1000 TP in the screenshot?

Aesthetically I'm not such a fan of centre alignment, perhaps all left aligned would be cleaner?

I'm still not sure the best way to display all the information listed above. Your feedback is welcomed.

Is the list the 'only' list we have? Or are the other tabs/buttons also available?

gavanderhoorn avatar Mar 03 '18 15:03 gavanderhoorn

Btw: no connection to the IO server isn't necessarily a problem, right? I guess the exclamation mark being in a green square means it's just a warning, but it looks like something should be done to correct it.

gavanderhoorn avatar Mar 03 '18 15:03 gavanderhoorn

This is how it will look on any controller model. It's a custom Windows CE application that runs overtop the standard interface. In regards to what controls are available... I can do anything. Just think of it as a normal Windows app.

No, the I/O server is not required. I can certainly play with the icons/colors. I simply had the exclamation icon already made from another application.

ted-miller avatar Mar 03 '18 15:03 ted-miller

Just curious: have you had any more time to work on this @ted-miller? I'm liking the panel you've posted. It does seem like something that would be very useful for MotoROS users (not just ROS users).

gavanderhoorn avatar Aug 13 '18 09:08 gavanderhoorn

No, I haven't touched this since March. It's still on my to-do list, but it's at the bottom of that list.

Please keep this issue open.

ted-miller avatar Aug 13 '18 12:08 ted-miller

@ted-miller: have you had any time to work on this? The mock-up you showed would make a very nice addition to MotoROS.

Right now status of the connection and other properties of the driver and ROS connection are invisible on the controller. Having a display like you showed in https://github.com/ros-industrial/motoman/issues/193#issuecomment-369964241 would be invaluable.

gavanderhoorn avatar Sep 19 '19 16:09 gavanderhoorn

No, I haven't touched this. Honestly, the chances are low that it'll happen anytime soon.

However, if you want easy visibility of those signals, I could create a quick/easy I/F panel. Here's an example: if panel

For north/south America, the I/F Panel function should be enabled on every arm. I don't know if this function is enabled by default in other regions. Can you check your controller to see if this button exists on the bottom of your pendant screen?

ted-miller avatar Sep 20 '19 12:09 ted-miller

Honestly, the chances are low that it'll happen anytime soon.

Could someone else do this work? What would be needed?

However, if you want easy visibility of those signals, I could create a quick/easy I/F panel. Here's an example:

[..]

For north/south America, the I/F Panel function should be enabled on every arm. I don't know if this function is enabled by default in other regions. Can you check your controller to see if this button exists on the bottom of your pendant screen?

Yes, I have the I/F Panel button.

gavanderhoorn avatar Sep 20 '19 13:09 gavanderhoorn

Could someone else do this work? What would be needed?

I'll check with Eric to see what he has going on. This project requires our Pendant SDK. Additionally, it requires a very specific version of Visual Studio that supports Windows CE.

ted-miller avatar Sep 23 '19 13:09 ted-miller

@ted-miller: would there be any way to (re)start this effort?

gavanderhoorn avatar Jun 26 '20 08:06 gavanderhoorn

@EricMarcil: Is this something you could work on? I've got a skeleton app, but I basically abandoned it due to higher priorities. If you're also busy, I can check if someone else in the department is available.

ted-miller avatar Jun 29 '20 12:06 ted-miller

@gavanderhoorn : I'll still offer up the I/F panel option. It far less aesthetically appealing. But, I could have that ready for you today.

ted-miller avatar Jun 29 '20 12:06 ted-miller

@ted-miller: I'm pretty busy recently but send me what you have, I'll try to look at it when I have a chance.

EricMarcil avatar Jun 29 '20 13:06 EricMarcil

@ted-miller wrote:

@gavanderhoorn : I'll still offer up the I/F panel option. It far less aesthetically appealing. But, I could have that ready for you today.

I don't have an immediate need myself.

But there have been a few questions about status and other runtime aspects of MotoROS which I felt could be captured/displayed by the UI being discussed here in this issue.

That's why I thought to ask whether we could restart this effort.

gavanderhoorn avatar Jun 30 '20 08:06 gavanderhoorn

Just making sure again this doesn't fall off everyone's radar again. :bell: :robot:

Personally I would really love to see this realised, as it's tremendously valuable to be able to ascertain the state of the connection from the TP instead of only having the ROS side's version of "the truth".

gavanderhoorn avatar Oct 07 '20 19:10 gavanderhoorn

Realistically, the custom TP GUI is way off my radar. Though, I'm still willing to whip up an I/F Panel. It's better than nothing...

ted-miller avatar Oct 07 '20 20:10 ted-miller