Giter Club home page Giter Club logo

rqt_dep's People

Contributors

130s avatar ablasdel avatar arne48 avatar cottsay avatar dirk-thomas avatar dorianscholz avatar ivanpauno avatar matthijsburgh avatar mikaelarguedas avatar mlautman avatar mrdanbrooks avatar rossctaylor avatar scpeters avatar trainman419 avatar

Stargazers

 avatar  avatar

Watchers

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

rqt_dep's Issues

display package info from different distro?

From @scpeters on March 8, 2016 0:46

We are approaching releasing season for ROS K, and a common question is which packages are blocking the release of other packages. The rqt_dep tool is great for visualizing package dependencies. It would be great if we could use this tool to visualize which packages have been released into a new ROS distro, to identify the blockages.

In discussing this in the past, a known complicating factor is that dependencies may change from one ROS distro to the next, so this can be an ill-posed problem in some cases.

Most of the time, though, the dependencies don't change from one distro to the next. As a first step, I would load rqt_dep with the most recently released ROS distro (jade at the moment) and would like to select another distro from a drop-down combo-box and then colorize the graph.

Any hints are welcome.

Copied from original issue: ros-visualization/rqt_common_plugins#356

Crash on Plugin Load: TypeError

If I run rqt_dep, I directly get a crash, with following output:

PluginManager._load_plugin() could not load plugin "rqt_dep/RosPackGraph":
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/plugin_handler.py", line 102, in load
    self._load()
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/plugin_handler_direct.py", line 55, in _load
    self._plugin = self._plugin_provider.load(self._instance_id.plugin_id, self._context)
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/composite_plugin_provider.py", line 72, in load
    instance = plugin_provider.load(plugin_id, plugin_context)
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/ros_plugin_provider.py", line 106, in load
    return class_ref(plugin_context)
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_dep/ros_pack_graph.py", line 152, in __init__
    completionmodel = StackageCompletionModel(self._widget.filter_line_edit, rospack, rosstack)
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_dep/ros_pack_graph.py", line 82, in __init__
    self.allnames = sorted(list(set(rospack.list() + rosstack.list())))
TypeError: unsupported operand type(s) for +: 'dict_keys' and 'dict_keys'

with

  • rospkg version 1.2.9
  • rqt_dep version 0.4.10

Crash in rqt_dep

I ran the program from the console; and it crashed, after I randomly selected a few checkboxes without having anything inside the package name field. This is the error message:

felix@Felix-Laptop:~$ rqt_dep
RosPackageGraphDotcodeGenerator.add_package_descendants_recursively(catkin_pip), parent: pyros_utils: ResourceNotFound: catkin_pip
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/felix/sailing/bord-pc/src
ROS path [2]=/opt/ros/kinetic/share
RosPackageGraphDotcodeGenerator.add_package_descendants_recursively(catkin_pip), parent: pyros_utils: ResourceNotFound: catkin_pip
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/felix/sailing/bord-pc/src
ROS path [2]=/opt/ros/kinetic/share
RosPackageGraphDotcodeGenerator.add_package_descendants_recursively(catkin_pip), parent: pyros_utils: ResourceNotFound: catkin_pip
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/felix/sailing/bord-pc/src
ROS path [2]=/opt/ros/kinetic/share
RosPackageGraphDotcodeGenerator.add_package_descendants_recursively(catkin_pip), parent: pyros_utils: ResourceNotFound: catkin_pip
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/felix/sailing/bord-pc/src
ROS path [2]=/opt/ros/kinetic/share
Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_dep/ros_pack_graph.py", line 276, in _update_thread_run
    self._update_graph(self._generate_dotcode())
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_dep/ros_pack_graph.py", line 311, in _generate_dotcode
    hide_dry=self._options['package_types'] == 2)                                                                                                                                            
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_dep/dotcode_pack.py", line 150, in generate_dotcode                                                                                 
    self.add_package_descendants_recursively(name)                                                                                                                                           
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_dep/dotcode_pack.py", line 408, in add_package_descendants_recursively                                                              
    parent=package_name)                                                                                                                                                                     
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_dep/dotcode_pack.py", line 390, in add_package_descendants_recursively                                                              
    rosdeps = self.rospack.get_rosdeps(package_name, implicit=implicit)                                                                                                                      
  File "/home/felix/.local/lib/python2.7/site-packages/rospkg/rospack.py", line 347, in get_rosdeps                                                                                          
    m = self.get_manifest(package)                                                                                                                                                           
  File "/home/felix/.local/lib/python2.7/site-packages/rospkg/rospack.py", line 167, in get_manifest                                                                                         
    return self._load_manifest(name)                                                                                                                                                         
  File "/home/felix/.local/lib/python2.7/site-packages/rospkg/rospack.py", line 211, in _load_manifest                                                                                       
    retval = self._manifests[name] = parse_manifest_file(self.get_path(name), self._manifest_name, rospack=self)                                                                             
  File "/home/felix/.local/lib/python2.7/site-packages/rospkg/rospack.py", line 203, in get_path                                                                                             
    raise ResourceNotFound(name, ros_paths=self._ros_paths)                                                                                                                                  
rospkg.common.ResourceNotFound: catkin_pip                                                                                                                                                   
ROS path [0]=/opt/ros/kinetic/share/ros                                                                                                                                                      
ROS path [1]=/home/felix/sailing/bord-pc/src                                                                                                                                                 
ROS path [2]=/opt/ros/kinetic/share                                                                                                                                                          
QObject::~QObject: Timers cannot be stopped from another thread

Show non ROS package

AFAIUC currently rqt_dep only shows ROS package (or catkin package to be more precise?). It'd be nice if it shows non ROS packages in addition.

I assume traversing packages is done by rospkg functionality, which uses information in package.xml where non-catkin package dependencies can be listed up. Since rospkg can return non-catkin? package names by e.g. RosPack.get_rosdeps, we should be able to add this functionality.

Note I don't think rospkg can find the dependency of non-catkin packages.

This doesn't have to be done in ROS ecosystem (although so far I haven't found other tools that visualize dependency tree well), but because implementation might not be that hard, I think it's worthwhile feature.

TypeError on plugin load

If I run rqt_dep, I directly get a crash, with following output:

PluginManager._load_plugin() could not load plugin "rqt_dep/RosPackGraph":
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/plugin_handler.py", line 102, in load
    self._load()
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/plugin_handler_direct.py", line 55, in _load
    self._plugin = self._plugin_provider.load(self._instance_id.plugin_id, self._context)
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/composite_plugin_provider.py", line 72, in load
    instance = plugin_provider.load(plugin_id, plugin_context)
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/ros_plugin_provider.py", line 106, in load
    return class_ref(plugin_context)
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_dep/ros_pack_graph.py", line 152, in __init__
    completionmodel = StackageCompletionModel(self._widget.filter_line_edit, rospack, rosstack)
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_dep/ros_pack_graph.py", line 82, in __init__
    self.allnames = sorted(list(set(rospack.list() + rosstack.list())))
TypeError: unsupported operand type(s) for +: 'dict_keys' and 'dict_keys'

with

  • rospkg version 1.2.9
  • rqt_dep version 0.4.10

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.