看古月大神的教程看了17讲,这一讲实践的时候遇到了很多的问题。
首先是运行roslaunch turtle_tf turtle_tf_demo.launch指令的时候,会出现报错,或者说异常,因为并不是完全不能运行。按理来说会在一个窗口出现两个乌龟,但我运行之后只有一个乌龟(忘了截图),可以移动。也就是说可能是村子一个乌龟没有创建成功。我又开了一个窗口运行乌龟,结果我只要移动前一只乌龟,另一只乌龟会在另一个窗口走同样的轨迹。
然后通过分析报错的原因和查阅相关资料,得知可能是python2、python3语法不兼容的问题。因为我安装的是noetic版本(支持python3),教程是用的是上一个版本(只支持python2)。于是按照这篇文章的方法,运行sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 ,结果出现:update-alternatives: 使用 /usr/bin/python3.8 来在自动模式中提供 /usr/bin/python (python)表示成功。从而解决了该问题。
Ubuntu20.04下解决ROS的python编译器报错_qq_43470610的博客-CSDN博客blog.csdn.net接下来一个问题困扰了我两天(这次我截图了)。就是运行rosrun tf view_frames会出现报错,错误是:TypeError: cannot use a string pattern on a bytes-like object。
如图:
这个问题折磨了我很久,但实际很好解决。TypeError: cannot use a string pattern on a bytes-like object。翻译过来是:不能对类似字节的对象使用字符串模式。看到上面89行vstr很可能有问题。由于改成了python3,python3相比于2来说说没有编码问题。那么我想可能把89行改成:m = r.search(str(vstr))。这样不就可以改成字符串了吗?
紧接着我又遇到一个问题:找到这个出问题的文件后,我发现不能够修改它。起初我以为没有办法,后来查询资料Ubuntu可以设置文件权限(以前从来没有接触过Linux系统)。通过一篇文章的方法我修改了权限从而修改了文件。
ubuntu下修改文件权限 - 发现生活之美 - 博客园www.cnblogs.com在该文件所在的目录下打开终端,输入sudo chmod 666 view_frames ,从而修改文件。记住改完之后还要输入sudo chmod 777 view_frames ,把修改的权限给关掉。否则会出现问题:
最终成功解决该问题,运行该运行的代码,可以得到:
以及:
以上。