【Debug记录】ROS报错:运行rqt相关组件显示“已放弃 (核心已转储)”的解决办法
错误日志:
运行rqt_plot时显示以下报错:
Traceback (most recent call last):
File "/opt/ros/melodic/lib/python2.7/dist-packages/rqt_plot/data_plot/mat_data_plot.py", line 110, in resizeEvent
self.figure.tight_layout()
File "/usr/lib/python2.7/dist-packages/matplotlib/figure.py", line 2030, in tight_layout
pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)
File "/usr/lib/python2.7/dist-packages/matplotlib/tight_layout.py", line 351, in get_tight_layout_figure
pad=pad, h_pad=h_pad, w_pad=w_pad)
File "/usr/lib/python2.7/dist-packages/matplotlib/tight_layout.py", line 132, in auto_adjust_subplotpars
fig.transFigure.inverted())
File "/usr/lib/python2.7/dist-packages/matplotlib/transforms.py", line 1891, in inverted
self._inverted = Affine2D(inv(mtx), shorthand_name=shorthand_name)
File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 513, in inv
ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 90, in _raise_linalgerror_singular
raise LinAlgError("Singular matrix")
numpy.linalg.linalg.LinAlgError: Singular matrix
已放弃 (核心已转储)
通过错误日志可以看到问题来自matplotlib包,现提供两种解决办法供使用:
解决方案1
Terminal运行指令:
rqt
打开Default-rqt界面后选择【Plugins】—【Visualization】–【plot】即可正常使用,遇到其他rqt组件报错也可这样解决。
解决方案2
重新安装matplotlib包
运行指令:
pip install -U matplotlib
若显示pip未安装需要先安装pip:
sudo apt install python-pip
至此问题解决,rqt组件完美运行。