跟随赵虚左的ROS网课进行仿真
joint案例之控制关节运动
但是在运行roslaunch文件,却迟迟不能出现下图所示的图形化窗口
(已经安装joint_state_publisher_gui,urdf中也没有中文注释)
根据这篇博客的提示,rviz和tf树报错修改
仔细查看报错信息,提示我缺失pyqt5
和 pyside2
两个包
Traceback (most recent call last):
File "/opt/ros/melodic/lib/joint_state_publisher_gui/joint_state_publisher_gui", line 41, in <module>
from python_qt_binding.QtWidgets import QApplication
File "/opt/ros/melodic/lib/python2.7/dist-packages/python_qt_binding/__init__.py", line 55, in <module>
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 274, in <module>
_select_qt_binding(
File "/opt/ros/melodic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 118, in _select_qt_binding
raise ImportError(
ImportError: Could not find Qt binding (looked for: 'pyqt', 'pyside'):
ImportError for 'pyqt': No module named 'PyQt5'
Traceback (most recent call last):
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 153, in _load_pyqt
_named_import('PyQt5.%s' % module_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)
ModuleNotFoundError: No module named 'PyQt5'
ImportError for 'pyside': No module named 'PySide2'
Traceback (most recent call last):
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 185, in _load_pyside
_named_import('PySide2.%s' % module_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)
ModuleNotFoundError: No module named 'PySide2'
在终端pip install pyqt5
和pip install pyside2
,即可解决问题
重新运行 roslaunch
,结果如下:
另外,在launch文件中,要用joint_state_publisher_gui
去替代joint_state_publisher
(注释掉),否则在gui中控制旋转的过程中,被控制物体会有闪烁(卡顿)
<!-- 关节状态发布节点
<node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher"/> -->
<!--机器人状态发布节点-->
<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher"/>
<!--可选:用于控制关节运动的节点,会生成关节控制的UI,用于测试关节运动是否正常-->
<node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui"/>