[joint_state_publisher-1] process has died 解决方法

在运行ROSMelodic的joint_state_publisher时遇到Unicode编码错误,通过在源代码中添加两行代码来设置UTF-8编码解决了问题。然而,启动launch文件后又出现找不到GUI的错误,提示需安装joint_state_publisher_gui包,使用sudoaptinstall命令安装了缺失的包。

1、问题如下

File "/opt/ros/melodic/lib/joint_state_publisher/joint_state_publisher", line 44, in <module>

jsp = joint_state_publisher.JointStatePublisher()

File "/opt/ros/melodic/lib/python2.7/dist-packages/joint_state_publisher/__init__.py", line 159, in __init__

robot = xml.dom.minidom.parseString(description)

File "/usr/lib/python2.7/xml/dom/minidom.py", line 1928, in parseString

return expatbuilder.parseString(string)

File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 940, in parseString

return builder.parseString(string)

File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 223, in parseString

parser.Parse(string, True)

UnicodeEncodeError: 'ascii' codec can't encode characters in position 53-57: ordinal not in range(128)

[joint_state_publisher-1] process has died [pid 9340, exit code 1, cmd /opt/ros/melodic/lib/joint_state_publisher/joint_state_publisher __name:=joint_state_publisher __log:=/home/yzh/.ros/log/5314feca-c547-11ed-b4c2-000c2907fba7/joint_state_publisher-1.log].

log file: /home/yzh/.ros/log/5314feca-c547-11ed-b4c2-000c2907fba7/joint_state_publisher-1*.log

2、解决方法

找到/opt/ros/melodic/lib/joint_state_publisher/joint_state_publisher里的文件加入

reload(sys)

sys.setdefaultencoding( "utf-8" )这两行代码即可解决字符集的问题。

3、再次启动launch文件报错

[ERROR] [1679116195.501826]: Could not find the GUI, install the 'joint_state_publisher_gui' package

执行以下代码解决(缺什么包安装什么包即可注意是-而不是下划线

 sudo apt install ros-melodic-joint-state-publisher-gui
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值