Giter Site home page Giter Site logo

rqt_robot_monitor's People

Contributors

130s avatar ablasdel avatar alemme avatar arne48 avatar dirk-thomas avatar dlu avatar mikaelarguedas avatar trainman419 avatar v4hn avatar zklapow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rqt_robot_monitor's Issues

New rqt_robot_monitor release to Focal?

Mind making a new release with 4596ce6 into focal? It looks like ros-noetic-rqt-robot-monitor is uninstallable at the moment because of the python 2 dependency

executing command [apt-get install -y ros-noetic-rqt-robot-monitor]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ros-noetic-rqt-robot-monitor : Depends: python-rospkg but it is not installable
E: Unable to correct problems, you have held broken packages

Release into Melodic

It looks like all of the dependencies for this package are available in Melodic, so it would be great to get it released there. Thanks in advance.

Consider more coherent branch naming

I suggest to merge dashing-devel either to master or to a ros2 branch (depends on how you wish to handle ROS 1 vs. ROS 2 in this repo, I suppose).
Rationale: I tested the robot monitor to also be able to compile and successfully run on ROS 2 foxy (~April), so it should be fairly easy to prepare a release for foxy.

.gitignore?

Forgive me if this is a bit of a naive question, but is there a reason pycache isn't .gitignored?

For reasons... I have rqt_robot_monitor (and the rest of foxy stuff) built from source and added as submodules in a repository. It's somewhat annoying to always see src/rqt_robot_monitor/__pycache__/ show up as "Untracked files" in the rqt_robot_monitor repo after building.

Very slow on opening inspector window

Opening an inspector window often slows down or sometimes causes crash of this app.
This happens especially when one aggregated message has many statuses and the pause button is NOT pressed.

How to embed RobotMonitorWidget in PyQt5

I'm interested in embedding RobotMonitorWidget in my own application like this:

import rospy
import rqt_robot_monitor.robot_monitor
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QDialog
from PyQt5.QtWidgets import QVBoxLayout


class ControlPanel(QDialog):

    def __init__(self):
        QDialog.__init__(self)
        rospy.init_node('control_panel', anonymous=False)
        self.setWindowTitle('Control Panel')
        layout = QVBoxLayout()
        layout.addWidget(rqt_robot_monitor.robot_monitor.RobotMonitorWidget('', topic='diagnostics_agg'))
        self.setLayout(layout)
        self.show()


app = QApplication(sys.argv)
ex = ControlPanel()
sys.exit(app.exec_())

It seems to work somewhat but the status icons don't appear and I can't double click on a status to show the details. I was wondering if it is a good idea to attempt doing something like this or not? Any hints on the top of your head on how to resolve these issues would be appreciated!

Crash on long running process with melodic

It looks like this file has been changed since the melodic release, but here is the error I am getting

Traceback (most recent call last):
File "/opt/ros/melodic/lib/python2.7/dist-packages/rqt_robot_monitor/inspector_window.py", line 106, in message_updated
self.disp.write_status.emit(status)
TypeError: StatusSnapshot.write_status[DiagnosticStatus].emit(): argument 1 has unexpected type 'NoneType'
[robot_monitor-3] process has died [pid 27434, exit code -6, cmd /opt/ros/melodic/lib/rqt_robot_monitor/rqt_robot_monitor __name:=robot_monitor

4 instances of rqt_robot_monitor node are getting started while launching from launch file.

I tried to launch rqt_robot_monitor from a launch file as below and I could see 4 instances of rqt_robot_monitor node. Where as launching the node from terminal launches one instance.

  1. starting node from launch file:
<launch>
    <node pkg="rqt_robot_monitor" exec="rqt_robot_monitor" name="rqt_robot_monitor" output="screen" />
</launch>
  1. starting node from terminal:
ros2 run rqt_robot_monitor rqt_robot_monitor
  1. check the list of running nodes
ros2 node list

I am using ROS2 Humble on Ubuntu 22.04 and following are the installed ros-humble-rqt-robot-monitor details:

  1. package version details
dpkg -s ros-humble-rqt-robot-monitor
Package: ros-humble-rqt-robot-monitor
Status: install ok installed
Priority: optional
Section: misc
Installed-Size: 148
Maintainer: Aaron Blasdel <[email protected]>
Architecture: amd64
Version: 1.0.5-2jammy.20240125.224658
Depends: python3-rospkg-modules, ros-humble-diagnostic-msgs, ros-humble-python-qt-binding (>= 0.2.19), ros-humble-qt-gui, ros-humble-qt-gui-py-common, ros-humble-rclpy, ros-humble-rqt-gui, ros-humble-rqt-gui-py, ros-humble-rqt-py-common, ros-humble-ros-workspace
Description: rqt_robot_monitor displays diagnostics_agg topics messages that are published by diagnostic_aggregator.
 rqt_robot_monitor is a direct port to rqt of robot_monitor. All diagnostics are fall into one of three tree panes depending on the status of diagnostics (normal, warning, error/stale). Status are shown in trees to represent their hierarchy. Worse status dominates the higher level status. Ex. 'Computer' category has 3 sub devices. 2 are green but 1 is error. Then 'Computer' becomes error. You can look at the detail of each status by double-clicking the tree nodes. Currently re-usable API to other pkgs are not explicitly provided.
Homepage: http://wiki.ros.org/rqt_robot_monitor

[ros2] Robot monitor freezes on startup

I've run into some trouble in trying to run rqt_robot_monitor on ros2. After installing and building the ros2-devel branch, rqt freezes the instant I start up rqt_robot_monitor. Seeing as no one has mentioned this here, I may very well have made some mistake, but thought I'd post an issue just in case.

I'm running ROS2 Foxy.

A quick look with gdb gives this result:

(gdb) where
#0  0x00007ffff77d29f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fffc400efd8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007ffff77d29f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x7fffc400efe0, cond=0x7fffc400efb0) at pthread_cond_wait.c:502
#2  0x00007ffff77d29f3 in __pthread_cond_wait (cond=0x7fffc400efb0, mutex=0x7fffc400efe0)
    at pthread_cond_wait.c:655
#3  0x00007ffff301a8bc in std::condition_variable::wait(std::unique_lock<std::mutex>&) ()
    at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff100b89c in std::condition_variable::wait<rmw_fastrtps_shared_cpp::__rmw_wait(rmw_subscriptions_t*, rmw_guard_conditions_t*, rmw_services_t*, rmw_clients_t*, rmw_events_t*, rmw_wait_set_t*, const rmw_time_t*)::<lambda()> > (__p=..., __lock=..., this=<optimized out>)
    at /usr/include/c++/7/condition_variable:99
#5  0x00007ffff100b89c in rmw_fastrtps_shared_cpp::__rmw_wait(rmw_subscriptions_t*, rmw_guard_conditions_t*, rmw_services_t*, rmw_clients_t*, rmw_events_t*, rmw_wait_set_t*, rmw_time_t const*) (subscriptions=<optimized out>, guard_conditions=0x1360440, services=<optimized out>, clients=<optimized out>, events=0x1360488, wait_set=<optimized out>, wait_timeout=0x0)
    at /home/frivold/kef_env/warm_dep_ws/src/foxy/core/rmw_fastrtps/rmw_fastrtps_shared_cpp/src/rmw_wait.cpp:176
#6  0x00007ffff3b3f455 in rcl_wait (wait_set=wait_set@entry=0x7fffcc036bf8, timeout=<optimized out>)
    at /home/frivold/kef_env/warm_dep_ws/src/foxy/core/rcl/rcl/src/rcl/wait.c:606
#7  0x00007ffff460ec0a in rclpy_wait (_unused_self=<optimized out>, args=<optimized out>)
    at /home/frivold/kef_env/warm_dep_ws/src/foxy/core/rclpy/rclpy/src/rclpy/_rclpy.c:3276
#8  0x000000000050a12f in  ()
#9  0x000000000050beb4 in _PyEval_EvalFrameDefault ()
#10 0x000000000058e6f9 in  ()
#11 0x0000000000513a7f in  ()
#12 0x000000000050a12f in  ()
#13 0x000000000050beb4 in _PyEval_EvalFrameDefault ()
#14 0x0000000000507be4 in  ()
#15 0x0000000000509900 in  ()
#16 0x000000000050a2fd in  ()
#17 0x000000000050cc96 in _PyEval_EvalFrameDefault ()
#18 0x0000000000507be4 in  ()
#19 0x0000000000509900 in  ()
#20 0x000000000050a2fd in  ()
#21 0x000000000050cc96 in _PyEval_EvalFrameDefault ()
#22 0x0000000000507be4 in  ()
#23 0x0000000000509900 in  ()
#24 0x000000000050a2fd in  ()
#25 0x000000000050beb4 in _PyEval_EvalFrameDefault ()
#26 0x0000000000508cd5 in _PyFunction_FastCallDict ()
#27 0x0000000000594a01 in  ()
#28 0x000000000059fd0e in PyObject_Call ()
#29 0x00007fffee685c30 in  ()
    at /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so
#30 0x00007fffee686108 in  ()
    at /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so
#31 0x00007fffee686390 in  ()
    at /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so
#32 0x00007fffee686d07 in  ()
    at /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so
#33 0x00007fffedfbe619 in QMetaObject::activate(QObject*, int, int, void**) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007fffedfcafc7 in QTimer::timeout(QTimer::QPrivateSignal) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x00007fffedfcb328 in QTimer::timerEvent(QTimerEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

RuntimeError: deque mutated during iteration

I somewhat frequently get the following exception, which crashes Rqt:

Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_robot_monitor/timeline_view.py", line 195, in _slot_redraw
    for i, m in enumerate(self._timeline):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_robot_monitor/timeline.py", line 158, in __iter__
    for msg in self._queue:
RuntimeError: deque mutated during iteration

Googling shows this seems to be a common bug with Python's deque. Despite the docs advertisement that it's "thread-safe", it's not. Iterating over it while another thread adds or removes from it will throw this error.

This SO question explains how to fix it. Alternatively, you could try using a Queue instead, which has proper thread-safe support.

[ros2] toplevel status is not displayed correctly

When trying the rqt_robot_monitor with ros2, I observe that the toplevel diagnostic status is not reflected in the coloring of the timeline at the bottom of the window. To reproduce do:

  1. Install the ros/diagnostics diagnostic_aggregator from ros2-devel branch
  2. Execute the example, see https://github.com/ros/diagnostics/tree/ros2-devel/diagnostic_aggregator/example

With ros2 topic echo /diagnostics_toplevel_state you can see that the toplevel status indeed frequently changes between OK, warning, and error.

Expected:

  • Toplevel status is reflected in the coloring of the timeline, i.e., timeline shows red, orange, and green parts

Actually:

  • Timeline remains red no matter the diagnostics_toplevel_state

Loading standalone broken? Blank window

I am using melodic/Ubuntu 18.04 and while I can use the Plugin in the rqt_gui
rqt -s rqt_robot_monitor.robot_monitor_plugin.RobotMonitorPlugin or rosrun rqt_robot_monitor rqt_robot_monitor fails.

It just displays a blank window:

Screenshot from 2019-07-11 13-25-36

Other plugins such as rqt -s rqt_console.console.Console work.

Release into Melodic?

It looks like there hasn't been a release into Melodic since #13 was fixed. Is it possible to release into Melodic?

rqt_robot_monitor: Apparent threading bug

From @abencz on December 11, 2014 18:35

While running rqt_robot_monitor I get a continuous stream of the following in the parent terminal:

Traceback (most recent call last):
  File "/home/alex/ros_rocksteady_gui/src/rqt_robot_plugins/rqt_robot_monitor/src/rqt_robot_monitor/timeline_view.py", line 194, in _slot_redraw
    for i, m in enumerate(self._timeline):
  File "/home/alex/ros_rocksteady_gui/src/rqt_robot_plugins/rqt_robot_monitor/src/rqt_robot_monitor/timeline.p  y", line 158, in __iter__
    for msg in self._queue:
RuntimeError: deque mutated during iteration

Looks like the timeline queue is being modified by the ROS message callback in the Timeline class while at the same time being iterated over by TimelineView. I'm not what a good fix is, but I'm guessing this is causing more than just annoying error messages because I also see frequent rqt_robot_monitor freezes and crashes - most often when using the inspector window.

Copied from original issue: ros-visualization/rqt_robot_plugins#78

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.