view_frames中错误: cannot use a string pattern on a bytes-like object

#在noetic版本ros中运行view_frames工具时报错

Listening to /tf for 5.0 seconds
Done Listening
b’dot - graphviz version 2.43.0 (0)\n’
Traceback (most recent call last):
File “/opt/ros/noetic/lib/tf/view_frames”, line 119, in
generate(dot_graph)
File “/opt/ros/noetic/lib/tf/view_frames”, line 89, in generate
m = r.search(vstr)
TypeError: cannot use a string pattern on a bytes-like object

通过编辑器打开view_frame.py文件

sudo gedit /opt/ros/noetic/lib/tf/view_frames

我们查看view_frame.py文件报错处的代码

m = r.search(vstr)

通过分析得知search函数需要输入str类型数据,而vstr不是str类型,所以我们可以强制转换其为str类型数据,如下所示:

vstr=str(vstr)
m = r.search(vstr)

之后运行成功:

Listening to /tf for 5.0 seconds
Done Listening
b’dot - graphviz version 2.43.0 (0)\n’
Detected dot version 2.43
frames.pdf generated