Python 第一届机器人竞赛,PyNetworkTables nt.thread死亡

Python 第一届机器人竞赛,PyNetworkTables nt.thread死亡,python,Python,我们使用Raspberry Pi作为协处理器,代码用Python编写,通过pyNetworkTables传输给Robot(Java代码)。问题是,这个错误直到第一场比赛才出现。它在练习中起了作用。在对桥梁进行成像后,它也起到了作用 DEBUG:nt:client connected DEBUG:nt:NetworkConnection stopping (<ntcore.network_connection.NetworkConnection object at 0x712411b0>

我们使用Raspberry Pi作为协处理器,代码用Python编写,通过pyNetworkTables传输给Robot(Java代码)。问题是,这个错误直到第一场比赛才出现。它在练习中起了作用。在对桥梁进行成像后,它也起到了作用

DEBUG:nt:client connected
DEBUG:nt:NetworkConnection stopping (<ntcore.network_connection.NetworkConnection object at 0x712411b0>)
ERROR:nt:Unhandled exception during handshake
Traceback (most recent call last):
  File "/home/pi/.virtualenvs/cv/lib/python3.4/site-packages/ntcore/network_connection.py", line 240, in _readThreadMain
    handshake_success = self.m_handshake(self, _getMessage, self._sendMessages)
  File "/home/pi/.virtualenvs/cv/lib/python3.4/site-packages/ntcore/dispatcher.py", line 488, in _clientHandshake
    msg = get_msg()
  File "/home/pi/.virtualenvs/cv/lib/python3.4/site-packages/ntcore/network_connection.py", line 228, in _getMessage
    return Message.read(self.m_stream, decoder, self.m_get_entry_type)
  File "/home/pi/.virtualenvs/cv/lib/python3.4/site-packages/ntcore/message.py", line 123, in read
    value = codec.read_value(value_type, rstream)
  File "/home/pi/.virtualenvs/cv/lib/python3.4/site-packages/ntcore/wire.py", line 126, in read_value
    return Value.makeStringArray([self.read_string(rstream) for _ in range(alen)])
  File "/home/pi/.virtualenvs/cv/lib/python3.4/site-packages/ntcore/wire.py", line 126, in <listcomp>
    return Value.makeStringArray([self.read_string(rstream) for _ in range(alen)])
  File "/home/pi/.virtualenvs/cv/lib/python3.4/site-packages/ntcore/wire.py", line 198, in read_string_v3
    return rstream.read(slen).decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf0 in position 47: invalid continuation byte
INFO:nt:DISCONNECTED 10.0.66.2 port 1735 (Robot)
DEBUG:nt:write thread died (<ntcore.network_connection.NetworkConnection object at 0x70088430>)
DEBUG:nt:客户端已连接
调试:nt:网络连接正在停止()
错误:nt:握手期间未处理的异常
回溯(最近一次呼叫最后一次):
文件“/home/pi/.virtualenvs/cv/lib/python3.4/site packages/ntcore/network\u connection.py”,第240行,位于readThreadMain中
握手成功=self.m\u握手(self,\u getMessage,self.\u sendmages)
文件“/home/pi/.virtualenvs/cv/lib/python3.4/site packages/ntcore/dispatcher.py”,第488行,在clientHandshake中
msg=get_msg()
文件“/home/pi/.virtualenvs/cv/lib/python3.4/site packages/ntcore/network\u connection.py”,第228行,在_getMessage中
返回消息.read(self.m_流、解码器、self.m_get_条目类型)
文件“/home/pi/.virtualenvs/cv/lib/python3.4/site packages/ntcore/message.py”,第123行,已读
值=编解码器。读取值(值类型,rstream)
文件“/home/pi/.virtualenvs/cv/lib/python3.4/site packages/ntcore/wire.py”,第126行,以只读值表示
返回值.makeStringArray([self.read\u string(rstream)for u in range(alen)])
文件“/home/pi/.virtualenvs/cv/lib/python3.4/site packages/ntcore/wire.py”,第126行,在
返回值.makeStringArray([self.read\u string(rstream)for u in range(alen)])
文件“/home/pi/.virtualenvs/cv/lib/python3.4/site packages/ntcore/wire.py”,第198行,以read\u string\u v3格式
返回rstream.read(slen.decode('utf-8'))
UnicodeDecodeError:“utf-8”编解码器无法解码位置47中的字节0xf0:无效的继续字节
信息:nt:已断开10.0.66.2端口1735(机器人)
调试:nt:写入线程已死亡()

这很可能是您所指的库中的unicode错误。我们正在跟踪这个错误


免责声明:我是库的作者这很可能是您所指库中的unicode错误。我们正在跟踪这个错误


免责声明:我是库的作者

问题在于python解释器用于处理线程的全局解释器锁。解决方法是使用另一个Python实现,比如Jython,或者将完整的代码移植到一个成熟的语言,比如C++。好消息是,这个问题与人工智能和机器人技术无关,它是一个简单的编码问题,由操作系统、计算机语言和存储库故障引起。很高兴知道您的团队正在使用python,所以您的问题帮助很大。问题是python解释器用于处理线程的全局解释器锁。解决方法是使用另一个Python实现,比如Jython,或者将完整的代码移植到一个成熟的语言,比如C++。好消息是,这个问题与人工智能和机器人技术无关,它是一个简单的编码问题,由操作系统、计算机语言和存储库故障引起。很高兴知道您的团队正在使用python,所以您的问题帮助很大。