Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MotoROS: add a (simple) ui on the TP #193

Open
gavanderhoorn opened this issue Jan 24, 2018 · 25 comments
Open

MotoROS: add a (simple) ui on the TP #193

gavanderhoorn opened this issue Jan 24, 2018 · 25 comments

Comments

@gavanderhoorn
Copy link
Member

gavanderhoorn commented Jan 24, 2018

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 #191 (comment)):

  1. (en|dis)abling velocity feedback (recent addition in MotoROS v1.7.0 #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
Copy link
Member Author

gavanderhoorn commented Jan 24, 2018

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
Copy link
Member Author

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
Copy link
Member Author

@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?

@ted-miller
Copy link
Contributor

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
Copy link
Contributor

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.)

@gavanderhoorn
Copy link
Member Author

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
Copy link
Member Author

Curious/excited: 🛎️ ? :)

@ted-miller
Copy link
Contributor

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
Copy link
Contributor

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

@gavanderhoorn
Copy link
Member Author

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
Copy link
Member Author

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.

@ted-miller
Copy link
Contributor

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.

@gavanderhoorn
Copy link
Member Author

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).

@ted-miller
Copy link
Contributor

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.

@gavanderhoorn
Copy link
Member Author

@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 #193 (comment) would be invaluable.

@ted-miller
Copy link
Contributor

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?

@gavanderhoorn
Copy link
Member Author

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.

@ted-miller
Copy link
Contributor

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.

@gavanderhoorn
Copy link
Member Author

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

@ted-miller
Copy link
Contributor

@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
Copy link
Contributor

@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.

@EricMarcil
Copy link
Contributor

@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.

@gavanderhoorn
Copy link
Member Author

@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
Copy link
Member Author

gavanderhoorn commented Oct 7, 2020

Just making sure again this doesn't fall off everyone's radar again. 🔔 🤖

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".

@ted-miller
Copy link
Contributor

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...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants