最近在学习古月居老师的《ROS入门21讲》,在学习tf这一章时想用tf view_frames这个工具来查看坐标之间的关系,但是出现TypeError: cannot use a string pattern on a bytes-like object报错,
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
原因是应该使用tf2_tools view_frames.py这个工具,而使用这个工具前应先需要安装ros-noetic-tf2-tools,所以解决方案是在终端依次运行下面两个命令:
(第一行命令注意根据自己ros版本来,我自己的ros版本是noetic。)
sudo apt install ros-noetic-tf2-tools
rosrun tf2_tools view_frames.py
运行完两个命令后,终端会提示如下信息:
[INFO] [1691927389.174394]: Listening to tf data during 5 seconds...
[INFO] [1691927394.184159]: Generating graph in frames.pdf file...
表明此时已在当前目录下生成了pdf文件,我的打开后如下图所示: