按照古月居第17讲给的代码进行测试,出现以下error.。
TypeError: cannot use a string pattern on a bytes-like object
Listening to /tf for 5.0 seconds
Done Listening
/opt/ros/noetic/lib/tf/view_frames:86: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
v = distutils.version.StrictVersion('2.16')
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
还有即将废弃的警告:distutils 版本类已被弃用。请改用 packaging.version。
查了一下,这是官方已经弃用tf了,虽然tf2
是与ROS 2一起开发的,并且主要设计用于ROS 2,但它也被反向移植到了ROS 1中,以便在ROS 1环境中也能使用tf2
的新特性和改进。要在ROS 1中使用tf2
,需要确保已经安装了tf2
和tf2_ros
包。
sudo apt install ros-noetic-tf2-tools
sudo apt-get install ros-noetic-tf2 ros-noetic-tf2-ros
roslaunch turtle_tf2 turtle_tf2_demo.launch
rosrun turtlesim turtle_teleop_key
rosrun tf2_tools view_frames.py
最后在你/home/your_name下就能看到生成的frames.pdf了