rosrun tf view_frames时报错TypeError: cannot use a string pattern on a bytes-likeobject

错误过程

1
2
3
4
5
6
7
8
9
10
root@laohanba-NUC11TNKi7:~/Doc# rosrun tf 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 <module>
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

解决方法

修改/opt/ros/noetic/lib/tf/view_frames文件中的代码

文件路径或有出入,noetic要根据自己的ROS版本进行修改

1
sudo vim /opt/ros/noetic/lib/tf/view_frames

在大概89行的位置添加如下一行

image-20230719200946372

1
vstr = str(vstr)

再次运行就能正常生成坐标系文件了

1
2
3
4
5
6
root@laohanba-NUC11TNKi7:~/Doc# rosrun tf view_frames 
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