Moveit学习中的一些错误记录

xacro文件中加入了中文注释

运行launch文件,会出现以下错误:

Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/xacro/xacro", line 33, in <module>
    xacro.main()
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/xacro/__init__.py", line 1073, in main
    out.write(doc.toprettyxml(indent='  '))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 946-947: ordinal not in range(128
Invalid <param> tag: Cannot load command parameter [robot_description]: command [/opt/ros/kinetic/lib/x
acro/xacro --inorder /home/daniel/ROS_Learning/smartcar_description/src/moveit_learning/urdf/arm.xacro]
 returned with code [1].

Param xml is <param command="$(find xacro)/xacro --inorder $(find moveit_learning)/urdf/arm.xacro" name
="robot_description"/>
The traceback for the exception was written to the log file

解决办法:

在目录/opt/ros/kinetic/lib/python2.7/dist-packages下,新建一个sitecustomize.py文件,内容为:

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

重启ROS,发现Python解释器的编码已被设置为utf8;这是因为系统在Python启动的时候,自行调用该文件,设置系统的默认编码。

猜你喜欢

转载自blog.csdn.net/weixin_42684418/article/details/107979879