2017-04-19 20 views
0

我试图让MQTTtoROS桥的工作,我不断收到此错误:msgpack-蟒蛇未能反序列化 - >而额外获得错误

Traceback (most recent call last): 
    File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner 
    self.run() 
    File "/usr/lib/python2.7/threading.py", line 754, in run 
    self.__target(*self.__args, **self.__kwargs) 
    File "/home/animu/.local/lib/python2.7/site-packages/paho/mqtt/client.py", line 2627, in _thread_main 
    self.loop_forever(retry_first_connection=True) 
    File "/home/animu/.local/lib/python2.7/site-packages/paho/mqtt/client.py", line 1407, in loop_forever 
    rc = self.loop(timeout, max_packets) 
    File "/home/animu/.local/lib/python2.7/site-packages/paho/mqtt/client.py", line 923, in loop 
    rc = self.loop_read(max_packets) 
    File "/home/animu/.local/lib/python2.7/site-packages/paho/mqtt/client.py", line 1206, in loop_read 
    rc = self._packet_read() 
    File "/home/animu/.local/lib/python2.7/site-packages/paho/mqtt/client.py", line 1799, in _packet_read 
    rc = self._packet_handle() 
    File "/home/animu/.local/lib/python2.7/site-packages/paho/mqtt/client.py", line 2275, in _packet_handle 
    return self._handle_publish() 
    File "/home/animu/.local/lib/python2.7/site-packages/paho/mqtt/client.py", line 2461, in _handle_publish 
    self._handle_on_message(message) 
    File "/home/animu/.local/lib/python2.7/site-packages/paho/mqtt/client.py", line 2615, in _handle_on_message 
    t[1](self, self._userdata, message) 
    File "/home/animu/catkin_ws/src/mqtt_bridge-master/src/mqtt_bridge/bridge.py", line 114, in _callback_mqtt 
    ros_msg = self._create_ros_message(mqtt_msg) 
    File "/home/animu/catkin_ws/src/mqtt_bridge-master/src/mqtt_bridge/bridge.py", line 124, in _create_ros_message 
    msg_dict = self._deserialize(mqtt_msg.payload) 
    File "msgpack/_unpacker.pyx", line 143, in msgpack._unpacker.unpackb (msgpack/_unpacker.cpp:2143) 
ExtraData: unpack(b) received extra data. 

我不能在互联网上找到它的任何东西,因为这座桥是我猜不常用的。唯一类似的问题是在盐和卡夫卡,但解决办法无处可寻。所有的python库都是最新的,我再次检查。网桥将消息从RoS发送到MQTT,没有任何问题,包括STR和BOOL类型。从MQTT发送的任何消息最终都会出现此错误,并且没有ROS的接收。

回答

0

它有点晚了,但我会给未来的读者一些建议。 首先,确保你已经安装了桥的所有要求。其次,编辑mqtt_bridge配置文件以匹配来自ROS的主题和来自您的MQTT服务器的主题。也是MQTT服务器的IP地址/端口。 就是这样。