Giter Site home page Giter Site logo

rqt_tf_tree's People

Contributors

130s avatar ablasdel avatar arne48 avatar christian-rauch avatar dirk-thomas avatar dorianscholz avatar mabelzhang avatar matthijsburgh avatar mikaelarguedas avatar peter9606 avatar stertingen avatar vrabaud avatar

Stargazers

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

rqt_tf_tree's Issues

Clear TF buffer on refresh and/or reload

When refreshing the TF tree (top left button) or reloading the plugin (top right button), the TF buffer should be cleared to remove old transforms.
Alternatively, there should be a dedicated button for clearing the TF buffer.

Branched new humble from noetic-devel instead of dashing-devel

@audrow, @wjwwood, @clalancette
I created new humble branches in all repositories I maintain from the latest ros2 branches.
Unfortunately here I made a mistake and branched from the ros1 branch.
My permissions don't allow me to delete the wrong branch now.
Could one of you please delete the humble branch for me so that I (or you) can create the humble branch correctly?
I am very sorry for the inconveniences caused by my oversight. ><

Port to ROS2

Currently rqt_tf_tree is not yet ported to ROS2.

This can be done in a similar way as rqt_graph.

AttributeError: 'int' object has no attribute 'strip'

Hi,

rqt_tf_tree does not work if tf contains a frame with a name consisting only of numbers. For example:
rosrun tf2_ros static_transform_publisher 0 0 0 0 0 0 1 map 239

My system is: Ubuntu 20.04, Python 3.8.5, ROS noetic, rqt_tf_tree 0.6.2.

Error message is:

PluginHandlerDirect._restore_settings() plugin "rqt_tf_tree/RosTfTree#1" raised an exception:
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/plugin_handler_direct.py", line 121, in _restore_settings
    self._plugin.restore_settings(plugin_settings_plugin, instance_settings_plugin)
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/tf_tree.py", line 131, in restore_settings
    self._refresh_tf_graph()
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/tf_tree.py", line 143, in _refresh_tf_graph
    self._update_graph_view(self._generate_dotcode())
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/tf_tree.py", line 150, in _generate_dotcode
    return self.dotcode_generator.generate_dotcode(dotcode_factory=self.dotcode_factory,
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/dotcode_tf.py", line 97, in generate_dotcode
    self.graph = self.generate(data, timer.now().to_sec())
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/dotcode_tf.py", line 118, in generate
    self.dotcode_factory.add_node_to_graph(
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_dotgraph/pydotfactory.py", line 102, in add_node_to_graph
    node = pydot.Node(self.escape_name(nodename))
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_dotgraph/pydotfactory.py", line 58, in escape_name
    ret = quote(name.strip())
AttributeError: 'int' object has no attribute 'strip' 

no module named rospkg

Hi,
I have ros noetic and Ubuntu 20.04 and get the following message:
Traceback (most recent call last): File "/opt/ros/noetic/lib/rqt_tf_tree/rqt_tf_tree", line 5, in <module> from rqt_gui.main import Main File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/main.py", line 40, in <module> from rospkg.rospack import RosPack ImportError: No module named rospkg.rospack

I have python3-rospkg installed in the dir:
/usr/share/doc/python3-rospkg

Am I missing something in the PATH or PYTHONPATH?

I tried to install python-rospkg via pip2 but I dont want to use python2 ..

child_frame_id with slashes are shown with underscores

When publishing transformations using TF, if the child_frame_id name contains / it is shown in rqt_tf_tree using _. For example, I got the following graph:
tf_slash_underscore_problem
while in fact in the child_frame_id is named uav1/cam as can be seen in rostopic echo /tf:

$ rostopic echo /tf
(...)
---
transforms:
  -
    header:
      seq: 0
      stamp:
        secs: 1496407680
        nsecs: 788794994
      frame_id: /map
    child_frame_id: /base_link
    transform:
      translation:
        x: 48.4962844849
        y: 79.4509735107
        z: 148.231002808
      rotation:
        x: 0.00100735749584
        y: 0.000460458162706
        z: 0.0110743073747
        w: 0.999938070774
---
transforms:
  -
    header:
      seq: 0
      stamp:
        secs: 1496407680
        nsecs: 805396556
      frame_id: base_link
    child_frame_id: /uav1/cam
    transform:
      translation:
        x: 5.97536563873e-06
        y: 2.32458114624e-06
        z: -4.50760126114e-07
      rotation:
        x: 0.70710682869
        y: -0.70710682869
        z: 4.63135663153e-08
        w: 1.54610066971e-08
(...)

This was driving a workmate crazy here in the lab since lookupTransform was not working with the child_frame_id he was seeing in the GUI... πŸ˜„

I think this may be related with this issue on rqt_graph.

This problem was found when using ROS Kinetic on Ubuntu 16.04.

python update to 3,rosrun rqt_tf_tree failed

rosrun rqt_tf_tree rqt_tf_tree
Traceback (most recent call last):
File "/opt/ros/melodic/lib/rqt_tf_tree/rqt_tf_tree", line 8, in
sys.exit(main.main(sys.argv, standalone='rqt_tf_tree.tf_tree.RosTfTree'))
File "/opt/ros/melodic/lib/python2.7/dist-packages/rqt_gui/main.py", line 65, in main
hash(os.environ['ROS_PACKAGE_PATH'])))
File "/opt/ros/melodic/lib/python2.7/dist-packages/qt_gui/main.py", line 407, in main
from python_qt_binding import QT_BINDING
File "/opt/ros/melodic/lib/python2.7/dist-packages/python_qt_binding/init.py", line 55, in
from .binding_helper import loadUi, QT_BINDING, QT_BINDING_MODULES, QT_BINDING_VERSION # @UnusedImport
File "/opt/ros/melodic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 276, in
getattr(sys, 'SELECT_QT_BINDING_ORDER', None),
File "/opt/ros/melodic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 108, in _select_qt_binding
QT_BINDING_VERSION = binding_loader(required_modules, optional_modules)
File "/opt/ros/melodic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 155, in _load_pyqt
_named_optional_import('PyQt5.%s' % module_name)
File "/opt/ros/melodic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 142, in _named_optional_import
_named_import(name)
File "/opt/ros/melodic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 133, in _named_import
module = builtins.import(name)
ValueError: PyCapsule_GetPointer called with incorrect name

[ROS2] After closing rqt with ctrl+c, cant start rqt again

Steps to reproduce the problem:

  1. launch rqt in a console
  2. from GUI of rqt select Plugins-Visualization-TF Tree (only this plugin causes this issue, so far)
  3. immediately you start getting a message in a console "service not available, waiting again..."
  4. close rqt with ctrl+c (closing with GUI x-button does not cause this issue)
  5. you get traceback with errors.
  6. try to start rqt again

After this you cant start rqt, in console you get "service not available, waiting again..." messages only.

Ubuntu 18.04.4 LTS,
ROS2 eqloquent

You get this in console

service not available, waiting again...
service not available, waiting again...
service not available, waiting again...
service not available, waiting again...
service not available, waiting again...
^C[INFO] [rclcpp]: signal_handler(signal_value=2)
PluginHandlerDirect._restore_settings() plugin "rqt_tf_tree/RosTfTree#1" raised an exception:
Traceback (most recent call last):
  File "/opt/ros/eloquent/lib/python3.6/site-packages/qt_gui/plugin_handler_direct.py", line 121, in _restore_settings
    self._plugin.restore_settings(plugin_settings_plugin, instance_settings_plugin)
  File "/opt/ros/eloquent/lib/python3.6/site-packages/rqt_tf_tree/tf_tree.py", line 131, in restore_settings
    self._refresh_tf_graph()
  File "/opt/ros/eloquent/lib/python3.6/site-packages/rqt_tf_tree/tf_tree.py", line 143, in _refresh_tf_graph
    self._update_graph_view(self._generate_dotcode())
  File "/opt/ros/eloquent/lib/python3.6/site-packages/rqt_tf_tree/tf_tree.py", line 150, in _generate_dotcode
    while not tf2_frame_client.wait_for_service(timeout_sec=1.0):
  File "/opt/ros/eloquent/lib/python3.6/site-packages/rclpy/client.py", line 164, in wait_for_service
    return self.service_is_ready()
  File "/opt/ros/eloquent/lib/python3.6/site-packages/rclpy/client.py", line 143, in service_is_ready
    with self.handle as capsule:
  File "/opt/ros/eloquent/lib/python3.6/site-packages/rclpy/handle.py", line 150, in __enter__
    return self._get_capsule()
  File "/opt/ros/eloquent/lib/python3.6/site-packages/rclpy/handle.py", line 132, in _get_capsule
    raise InvalidHandle('Tried to use a handle that has been destroyed.')
rclpy.handle.InvalidHandle: Tried to use a handle that has been destroyed.

Exception ignored in: <bound method DockWidgetTitleBar.__del__ of <qt_gui.dock_widget_title_bar.DockWidgetTitleBar object at 0x7f2c1bf7db88>>
Traceback (most recent call last):
  File "/opt/ros/eloquent/lib/python3.6/site-packages/qt_gui/dock_widget_title_bar.py", line 109, in __del__
    self._dock_widget.removeEventFilter(self)
RuntimeError: wrapped C/C++ object of type DockWidget has been deleted

Syntax error in generated pydot code on 20.04 + Noetic

ros-noetic-rqt-tf-tree version 0.6.1-1focal.20200826.185237
My python interpreter is 3.8
pydot version is 1.4.1
ros-noetic-qt-dotgraph is at 0.4.2-1focal.20200812.174341
python3-yaml is version 5.3.1-1

Runnning rqt_tf_tree gives me this error.

load for full details.
  data = yaml_parser.load(yaml_data)
"dot" with args ['-Tdot', '/tmp/tmpl5iq8obx'] returned code: 1

stdout, stderr:
 b''
b"Error: /tmp/tmpl5iq8obx: syntax error in line 196 near ':'\n"

PluginHandlerDirect._restore_settings() plugin "rqt_tf_tree/RosTfTree#1" raised an exception:
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/plugin_handler_direct.py", line 121, in _restore_settings
    self._plugin.restore_settings(plugin_settings_plugin, instance_settings_plugin)
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/tf_tree.py", line 131, in restore_settings
    self._refresh_tf_graph()
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/tf_tree.py", line 143, in _refresh_tf_graph
    self._update_graph_view(self._generate_dotcode())
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/tf_tree.py", line 150, in _generate_dotcode
    return self.dotcode_generator.generate_dotcode(dotcode_factory=self.dotcode_factory,
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/dotcode_tf.py", line 98, in generate_dotcode
    self.dotcode = self.dotcode_factory.create_dot(self.graph)
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_dotgraph/pydotfactory.py", line 175, in create_dot
    dot = graph.create_dot()
  File "/usr/lib/python3/dist-packages/pydot.py", line 1726, in new_method
    return self.create(
  File "/usr/lib/python3/dist-packages/pydot.py", line 1953, in create
    assert process.returncode == 0, process.returncode
AssertionError: 1

ROS 2 port appears to be broken

Despite the past PR #13 for the ROS 2 port, this doesn't seem to be functioning.

Apparently this was a known issue (ros2/geometry2#198) due to the FrameGraph server not being enabled in tf2_ros, however that appears to have been merged some time ago, and this package still doesn't run for me.

It simply prints service not available, waiting again... continuously.
I'm not too familiar with the inner workings of the tf2 system, I've tried running tf2_ros tf2_monitor and tf2_ros buffer_server based on some things I read but to no avail.

Does anyone have any thoughts as to what needs to be done?
Also, if this is resolved presumably we can look at pushing to foxy/galactic/rolling and closing #31 too.

Release for Rolling and Humble

Currently this package is not released for rolling and humble.
I just tested the humble branch with Ubuntu 22.04 Rolling and it works.

rqt_tf_tree fails to run due to SyntaxError

Bug report

Required Info:

  • Operating System:
    • Ubuntu 18.04
  • Installation type:
    • binaries
  • Version or commit hash:
    • ros-eloquent-rqt-tf-tree/bionic,now 1.0.1-1bionic.20200121.233350 amd64

Steps to reproduce issue

Launch any set of nodes that publish tfs, then attempt to run rqt_tf_tree:

$ ros2 run rqt_tf_tree rqt_tf_tree 
Traceback (most recent call last):
  File "/opt/ros/eloquent/lib/rqt_tf_tree/rqt_tf_tree", line 5, in <module>
    from rqt_gui.main import Main
  File "/opt/ros/eloquent/lib/python3.6/site-packages/rqt_gui/main.py", line 40, in <module>
    import rclpy
  File "/opt/ros/eloquent/lib/python3.6/site-packages/rclpy/__init__.py", line 62
    def init(*, args: List[str] = None, context: Context = None) -> None:
              ^
SyntaxError: invalid syntax

Expected behavior

Launches an rqt window with the tf visualization plugin displayed.

Actual behavior

Crashes at run time even before sawing a window.

Release 0.5.9+

There was a change recently merged #9. While that's not a big change, I'm afraid we'd forget making a new release, which results in the change remains unavailable for users who use this package via binary.

@Peter9606 Are you interested in making a release? If not let me know so that I can take this.

Problems on Noetic

Hi! When I try to start rqt_tf_tree with common command
rosrun rqt_tf_tree rqt_tf_tree
I got that error
/usr/bin/env: β€˜python’: No such file or directory
Seems package should be build with python3, but how to do that?
Thanks for any help!

Unsafe YAML load

I get the following log message when using rqt_tf_tree:

/opt/ros/noetic/lib/python3/dist-packages/rqt_tf_tree/dotcode_tf.py:96: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  data = yaml_parser.load(yaml_data)

If I find the time I will submit a PR addressing this.

Can't monitor remapped TF topic

If for any reason on ROS2 someone remaps /tf and /tf_static topics for isolation purposes, there is no way to use this plugin. It would be nice to allow topic selection (maybe by discovering topics of correct type).

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.

found no plugin matching "rqt_tf_tree.tf_tree.RosTfTree"

Bug report

Required Info:

  • Operating System:
    • Ubuntu 18.04
  • Installation type:
    • binaries
  • Version or commit hash:
    • ros-eloquent-rqt-tf-tree/bionic,now 1.0.1-1bionic.20200121.233350 amd64

Steps to reproduce issue

Patch package to include #18
Launch any set of nodes that publish tfs, then attempt to run rqt_tf_tree:

$ ros2 run rqt_tf_tree rqt_tf_tree 
qt_gui_main() found no plugin matching "rqt_tf_tree.tf_tree.RosTfTree"
try passing the option "--force-discover"

Expected behavior

Launches an rqt window with the tf visualization plugin displayed.

Actual behavior

Crashes at run time even before launching window.

Perhaps this has something to do with the fact that the tf_tree view is absent from the dropdown menu under Plugins->Visualizations in rqt. Is there something else blocking the tf plugin's registration?

Melodic:

image

Eloquent:

image

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.