Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RQT #842

Closed
1 task
Yadunund opened this issue Apr 5, 2023 · 6 comments
Closed
1 task

RQT #842

Yadunund opened this issue Apr 5, 2023 · 6 comments

Comments

@Yadunund
Copy link
Member

Yadunund commented Apr 5, 2023

This is a sanity check to ensure that the GUI tools aren't fundamentally broken.

Setup

  • DDS vendor: Cyclone
  • BuildType: Debian
  • Chip: Amd64
  • Os: Ubuntu Jammy

Links

Checks

  • Check RQT

    Launch using the rqt command.

    The rqt window should be generally usable and should be able to populate some of the discovered plugins.

    details

    Try

    1. # User input in terminal 1
      ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py
    2. # User input in terminal 2
      rqt
    3. In the RQT window, select 'Plugins > Visualization > Plot' in the dropdown menu. In the window that opens, set the Topic to /joint_states/position[0]. You should see a Sine wave.

    4. With 'Plugins > Introspection > Node Graph' you should see a network of the nodes and topics that are being published and subscribed by the dummy robot.

    5. With 'Plugins > Logging > Bag' you should be able record a ROS Bag file.

    6. With 'Plugins > Topic > Topic Monitor' you should be able to check the /joint_states topic and view messages streaming in.

    Expect

    1. Rqt runs smoothly and the plugins work as expected.

You can find the code used to generate this test case here

@Abishalini
Copy link

I'll test this

@Abishalini
Copy link

image

I was unable to visualize the sine plot when I set the topic to /joint_states/position[0]
But I was able to visualize the node graph, record a bag and could monitor topics.

@Abishalini
Copy link

Abishalini commented May 3, 2023

I was not able to shut rqt using Ctrl + C. Looks like its stuck in a deadlock because of

^C[INFO] [1683141198.559929094] [rclcpp]: signal_handler(signum=2)
rclpy.shutdown() was called before QThread.quit()
Error recording to bag: failed to get topic names and types: rcl node's context is invalid, at ./src/rcl/node.c:434

Had to manually kill this process

/usr/bin/python3 -c from ros2cli.daemon.daemonize import main; main() --name ros2-daemon --ros-domain-id 4 --rmw-implementation rmw_cyclonedds_cpp

@Abishalini
Copy link

Ran rqt again and found the following error on shutdown

abishalini@abishalini:~/ws_iron_testing$ rqt
^C[INFO] [1683141802.053946428] [rclcpp]: signal_handler(signum=2)
rclpy.shutdown() was called before QThread.quit()
PluginHandler.shutdown_plugin() plugin "rqt_plot/Plot#1" raised an exception:
Traceback (most recent call last):
  File "/opt/ros/iron/lib/python3.10/site-packages/qt_gui/plugin_handler.py", line 136, in shutdown_plugin
    self._shutdown_plugin()
  File "/opt/ros/iron/lib/python3.10/site-packages/qt_gui/plugin_handler_direct.py", line 92, in _shutdown_plugin
    self.emit_shutdown_plugin_completed()
  File "/opt/ros/iron/lib/python3.10/site-packages/qt_gui/plugin_handler.py", line 150, in emit_shutdown_plugin_completed
    callback(self._instance_id)
  File "/opt/ros/iron/lib/python3.10/site-packages/qt_gui/plugin_manager.py", line 480, in _close_application_shutdown_callback
    self._close_application_signal()
  File "/opt/ros/iron/lib/python3.10/site-packages/qt_gui/plugin_manager.py", line 483, in _close_application_signal
    self._plugin_provider.shutdown()
  File "/opt/ros/iron/lib/python3.10/site-packages/qt_gui/composite_plugin_provider.py", line 87, in shutdown
    plugin_provider.shutdown()
  File "/opt/ros/iron/lib/python3.10/site-packages/qt_gui/composite_plugin_provider.py", line 87, in shutdown
    plugin_provider.shutdown()
  File "/opt/ros/iron/lib/python3.10/site-packages/rqt_gui_py/ros_py_plugin_provider.py", line 62, in shutdown
    self._destroy_node()
  File "/opt/ros/iron/lib/python3.10/site-packages/rqt_gui_py/ros_py_plugin_provider.py", line 89, in _destroy_node
    rclpy.shutdown()
  File "/opt/ros/iron/lib/python3.10/site-packages/rclpy/__init__.py", line 126, in shutdown
    _shutdown(context=context)
  File "/opt/ros/iron/lib/python3.10/site-packages/rclpy/utilities.py", line 82, in shutdown
    context.shutdown()
  File "/opt/ros/iron/lib/python3.10/site-packages/rclpy/context.py", line 102, in shutdown
    self.__context.shutdown()
rclpy._rclpy_pybind11.RCLError: failed to shutdown: rcl_shutdown already called on the given context, at ./src/rcl/init.c:313

^C[INFO] [1683141846.725957543] [rclcpp]: signal_handler(signum=2)
Warning: class_loader.ClassLoader: SEVERE WARNING!!! Attempting to unload library while objects created by this loader exist in the heap! You should delete your objects before attempting to unload the library or destroying the ClassLoader. The library will NOT be unloaded.
         at line 127 in ./src/class_loader.cpp

@Yadunund
Copy link
Member Author

Yadunund commented May 4, 2023

I was unable to visualize the sine plot when I set the topic to /joint_states/position[0]

Thanks a lot for identifying this bug. It looks like a regression so I've opened a ticket ros-visualization/rqt_plot#89 along with a PR to fix the bug.

We're tracking other rqt failures here #1048

@Yadunund Yadunund added the bug Something isn't working label May 4, 2023
@Yadunund Yadunund mentioned this issue May 4, 2023
Closed
1 task
@Yadunund
Copy link
Member Author

Closing this one out since we're patched all the RQT bugs except the rqt_bag one which has been ticketed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants