Python Package Errors in ROS2 rqt launch
Opened this issue · 3 comments
Describe the bug
I got an error while running ros2 launch microstrain_inertial_rqt quickview_launch.py
on ROS humble.
[rqt_gui-1] Traceback (most recent call last):
[rqt_gui-1] File "/opt/ros/humble/lib/python3.10/site-packages/rqt_gui/ros_plugin_provider.py", line 80, in load
[rqt_gui-1] module = __builtin__.__import__(
[rqt_gui-1] File "/opt/ros/humble/lib/python3.10/site-packages/microstrain_inertial_rqt/quickview.py", line 4, in <module>
[rqt_gui-1] from .utils.widgets import MicrostrainWidget
[rqt_gui-1] File "/opt/ros/humble/lib/python3.10/site-packages/microstrain_inertial_rqt/utils/widgets.py", line 9, in <module>
[rqt_gui-1] from .services import DeviceReportMonitor
[rqt_gui-1] File "/opt/ros/humble/lib/python3.10/site-packages/microstrain_inertial_rqt/utils/services.py", line 3, in <module>
[rqt_gui-1] from microstrain_inertial_msgs.srv import DeviceReport
[rqt_gui-1] ImportError: cannot import name 'DeviceReport' from 'microstrain_inertial_msgs.srv' (/opt/ros/humble/local/lib/python3.10/dist-packages/microstrain_inertial_msgs/srv/__init__.py)
To Reproduce
Steps to reproduce the behavior:
- On a machine with basic ROS2 humble installed. Install the packages with
sudo apt install ros-humble-microstrain-inertial-driver ros-humble-microstrain-inertial-rqt
- I launched the driver with no significant error
ros2 launch microstrain_inertial_driver microstrain_launch.py
and I can see the topics and data flowing correctly. - I run
ros2 launch microstrain_inertial_rqt quickview_launch.py
and the error messages can be seen.
https://github.com/LORD-MicroStrain/microstrain_inertial_msgs_common/tree/269c6c062ee0a8cb0bbf56510fdd66a652f26015
I can not see any messages with DeviceReport
name
Expected behavior
I expected the rqt_gui to launch correctly. But there are python errors as posted before and plugin loading failure (probably due to python error)
Environment (please complete the following information):
- OS: Ubuntu 22.04
- Architecture: x86_64
- ROS Version: humble
- Sensor(s): 3DM-GX5-15
Modifications
I have not changed the code because I just installed the packages with apt.
Launch Parameters
I do not have a launch parameter file.
Additional context
Add any other context about the problem here.
I have the same problem in ros 1 noetic. I installed the rqt tools with apt-get install ros-noetic-microstrain-inertial-rqt
and when I run roslaunch /opt/ros/noetic/share/microstrain_inertial_rqt/launch/quickview.launch
I get the error
[...]
ImportError: cannot import name 'DeviceReport' from 'microstrain_inertial_msgs.srv' (/opt/ros/noetic/lib/python3/dist-packages/microstrain_inertial_msgs/srv/__init__.py)
The microstrain_inertial_rqt
package is considerably broken since the release of 4.0.0
. I have been meaning to fix it for some time, but have had other priorities, and unfortunately, that will probably continue for some time.
If anyone is interested in providing a fix for this, I am happy to review a PR. Otherwise, I will update this issue once the package gets fixed
I created a draft PR for this issue in the microstrain_intertial_rqt_common
submodule.
It's still work in progress but it is ~80% usable at the moment. Several widgets are still not being mapped to data properly because the data format of certain topics changed.
I haven't tested this on ros2.