Closed AustinDeric closed 5 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?
@AmyMingli, @minlingc, tagging some more of the team to get their thoughts.
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.
@AustinDeric, has there been any progress on this?
@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.
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
Thanks for pulling. we will check on our end how it goes.
@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
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?
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:
in the CMakeLists.txt I changed likes 26 to 31 to be set(packml_gui_HDRS include/dashboard_panel.h include/dashboard_widget.h include/navigation_panel.h include/navigation_widget.h ) I put the header files in a folder in /packml_gui/include (for reference)
On each header file and C++ file, I changed the references to the other headers to be of the type "dashboard_widget.h", "dashboard_widget.h", etc. (without the
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.
@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!
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.
@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!
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!
Hi Austin,
Can you please provide the latest commit as a jpg can you add it to the comments ?
Thanks, Min Ling
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
@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.
@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.
Can you please point me to the code that publishes this data?
@dejaniraai, friendly ping.
@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.
@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.
@shaun-edwards, will this be tricky as there is 2 forks from 1 fork ...
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!
@shaun-edwards , @AustinDeric , thank you. I have now forked the main repository and will upload to the fork from now on.
This has gone stale...closing.
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