ROS启动gazebo失败UnicodeEncodeError: ‘ascii‘ codec can‘t encode character u‘\u5b8f‘ in position 128:……

在通过roslaunch启动gazebo的时候,通过命令行窗口调用spawn_model出现下面的问题:

[INFO] [1696492231.313216, 0.000000]: Loading model XML from ros parameter robot_description
Traceback (most recent call last):
  File "/opt/ros/melodic/lib/gazebo_ros/spawn_model", line 239, in <module>
    exit_code = sm.run()
  File "/opt/ros/melodic/lib/gazebo_ros/spawn_model", line 149, in run
    xml_parsed = xml.etree.ElementTree.fromstring(model_xml)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1311, in XML
    parser.feed(text)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1657, in feed
    self._parser.Parse(data, 0)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 59-63: ordinal not in range(128)

这个错误通常是由于字符编码问题引起的。我的python版本是2.7的。找了一些解决办法。网上的说法是找到“/opt/ros/melodic/lib/python2.7/dist-packages”文件夹,然后新建一个sitecustomize.py文件,里面的内容为“

#coding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')

但是我搞了很久就是不能在里面新建文件,呜呜呜~后面去问了chatgpt才知道里面的文件都必须要有root权限,否则是不能修改的,害!
在这里插入图片描述

方法:现在桌面新建一个sitecustomize.py文件,然后在里面编辑好内容,见上。
在这里插入图片描述
保存好之后,我们再直接打开一个终端,将这个文件直接复制到“/opt/ros/melodic/lib/python2.7/dist-packages”文件夹里面,由于需要权限,我们的指令如下:

sudo cp /home/lin/Desktop/sitecustomize.py /opt/ros/melodic/lib/python2.7/dist-packages
#注意修改账号 还有ros的版本号,我的是melodic,如果你是noetic记得修改

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值