ros-industrial-consortium / packml

ROS packml (https://en.wikipedia.org/wiki/PackML) support package
Apache License 2.0
9 stars 14 forks source link

packml dashboard #18

Closed AustinDeric closed 5 years ago

AustinDeric commented 7 years ago

Not ready to be merged, but i wanted to show everyone where i am with the packml analytics dashboard.

The concept is to have a business analytics dashboard including a real-time pareto analysis and OEE status driven by http://www.pyqtgraph.org/ and http://doc.qt.io/qt-5/qgraphicsview.html

current status

untitled

shaun-edwards commented 7 years ago

Oh man...do I love critiquing GUI layouts.

Just an FYI, the back-end for these statistics is still required. Do you plan to implement this or are you waiting on me?

shaun-edwards commented 7 years ago

@AmyMingli, @minlingc, tagging some more of the team to get their thoughts.

AustinDeric commented 7 years ago

Please note that i started https://rosindustrial.slack.com so we can have a more robust discussion. This is open to the public, email me for an invite.

shaun-edwards commented 7 years ago

@AustinDeric, has there been any progress on this?

AustinDeric commented 7 years ago

@shaun-edwards Not yet, looking to resume work on it next week. Have exciting things i am about to release!

With that said, there has been a few hours of progress, i just haven't pushed it.

AustinDeric commented 7 years ago

Not 100% complete. I am updating the PR to show progress. The only task left is to reintegrate with the statemachine. I am going to integrate with both the C++ state machine in this repo and also the packml SMACH version.

launch it using the command:

roslaunch packml_gui gui.launch

untitled

minlingc commented 7 years ago

Thanks for pulling. we will check on our end how it goes.

AustinDeric commented 7 years ago

@minlingc please note that for testing purposes you can use the existing GUI to manipulate the statemachine. I have another commit showing progress. remaining tasks:

Navigation GUI

Dashboard GUI

minlingc commented 7 years ago

Any possibility to show the full state machine and highlight in the gui where the state is at? Full state machine being the one for packml?

dejaniraai commented 7 years ago

Hi Austin,

I have just downloaded and tested your last commit on the RViZ GUI. I had to make a couple of changes for it to compile and run in my catkin workspace:

Not modifying these two items (the CMakeList and the references to the headers) caused compilation errors such as <...>.h not found.

I hope this information helps when pushing the commit to the main branch.

AustinDeric commented 7 years ago

@dejaniraai its very strange that you had to do those steps. The current commit (7a09b07) builds fine for me in my docker images and on travis: https://travis-ci.org/ros-industrial-consortium/packml

If you build this program inside the ros-indsutrial core docker image (https://hub.docker.com/r/rosindustrial/core/) does it still fail for you? If so can you post a gist of the build messages?

Maybe you have the wrong branch or older commit? The packml_gui.rviz is located in the folder: https://github.com/AustinDeric/packml/blob/feature/dashboard/packml_gui/config/packml_gui.rviz

Thanks!

dejaniraai commented 7 years ago

Hi Austin, I tried to clone it (git clone https://github.com/AustinDeric/packml.git) yesterday, but it seems that what I get is incomplete, has many compilation issues, and probably corresponds to one of the previous commits. It's only when I downloaded the .zip this morning that I get all the files in the correct folders, and it complies without issue. Thank you.

AustinDeric commented 7 years ago

@dejaniraai Interesteting, the following cammand should work:

git clone -b feature/dashboard https://github.com/AustinDeric/packml.git

Please let me know if it does not. You can do git log to make sure the most recent commit is 7a09b07

Thanks!

AustinDeric commented 7 years ago

The latest commit (8bd2fdb) enables or disables the buttons depending on the state. Also the message fields updated based on the state machines updates. Here is an updated task list for this PR:

Navigation GUI

Dashboard GUI

@shaun-edwards should we make a release & devel branch for this repo or is it ok to merge this as-is?

Thanks everyone!

minlingc commented 7 years ago

Hi Austin,

Can you please provide the latest commit as a jpg can you add it to the comments ?

Thanks, Min Ling

dejaniraai commented 7 years ago

Hi Austin, I have been experimenting with your latest commit. The GUI requires minor modifications to be compatible with our ROS-PLC bridge in Python, as it uses topics instead of services, to update the PLC state and elapsed times on each state. Also, instead of messages, the states could be displayed more graphically. Please see example attached.

Regards, Dejanira

screenshot from 2017-07-06 10-48-02

shaun-edwards commented 7 years ago

@dejaniraai, can you be more specific on the changes required. The ROS API must remain consistent between the Python and C++ implementations. It sounds like the Python version uses topics (asynchronous) publications. The use of services was chosen very specifically to initiate state changes since service are the only way to guarantee synchronous control because they cannot be dropped (at least without the client/gui knowing). Topics can be dropped.

dejaniraai commented 7 years ago

@shaun-edwards, to control the PLC the Transition service can be implemented. At the moment we are experimenting with what we can analyse from the state machines. To monitor exactly when the PLC changes from one state to the other, we are using topics (as we do not know exactly when it is going to happen, if there is a fault for example). We added this functionality with the topics to have an estimate of the time the PLC lasts on each state, as we currently cannot read it directly from our PLC.

shaun-edwards commented 7 years ago

Can you please point me to the code that publishes this data?

shaun-edwards commented 7 years ago

@dejaniraai, friendly ping.

dejaniraai commented 7 years ago

@shaun-edwards, I have just uploaded the latest version of my trials to the repository https://github.com/dejaniraai/ros-experiments, so you can take a look. I will be modifying some of these scripts to use only the services defined in the API instead of topics.

shaun-edwards commented 7 years ago

@dejaniraai, I'd recommend you fork this repo and then commit your changes. It makes it much easier for others to see exactly what you have changed. The way it is now makes it difficult to see what you have modified. As you make more commits, it will be impossible.

minlingc commented 7 years ago

@shaun-edwards, will this be tricky as there is 2 forks from 1 fork ...

AustinDeric commented 7 years ago

https://help.github.com/articles/fork-a-repo/

the upstream repo should be set to https://github.com/ros-industrial-consortium/packml.git and after forking the origin repo should be set to https://github.com/dejaniraai/packml.git

If you need any help, please use https://rosindustrial.slack.com

Thanks!

dejaniraai commented 7 years ago

@shaun-edwards , @AustinDeric , thank you. I have now forked the main repository and will upload to the fork from now on.

shaun-edwards commented 5 years ago

This has gone stale...closing.