groove-x / mqtt_bridge

mqtt_bridge provides a functionality to bridge between ROS and MQTT in bidirectional
MIT License
160 stars 146 forks source link

Im running $roslaunch mqtt_bridge demo.launch and i get a ton of errors. PLEASE HELP #65

Closed thodorisanta closed 2 years ago

thodorisanta commented 2 years ago

$roslaunch mqtt_bridge demo.launch ... logging to /home/oshikurou/.ros/log/36ce37ac-b820-11ec-bac1-853923bc7fa7/roslaunch-oshikurou-VirtualBox-12740.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://oshikurou-VirtualBox:35693/

SUMMARY

PARAMETERS

NODES / mqtt_bridge (mqtt_bridge/mqtt_bridge_node.py)

ROS_MASTER_URI=http://localhost:11311

process[mqtt_bridge-1]: started with pid [12754] Traceback (most recent call last): File "/opt/ros/noetic/lib/python3/dist-packages/rosbridge_library/util/init.py", line 21, in bson.BSON AttributeError: module 'bson' has no attribute 'BSON'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/oshikurou/catkin_ws/src/mqtt_bridge/scripts/mqtt_bridge_node.py", line 4, in from mqtt_bridge.app import mqtt_bridge_node File "/opt/ros/noetic/lib/python3/dist-packages/mqtt_bridge/app.py", line 5, in from .bridge import create_bridge File "/opt/ros/noetic/lib/python3/dist-packages/mqtt_bridge/bridge.py", line 8, in from .util import lookup_object, extract_values, populate_instance File "/opt/ros/noetic/lib/python3/dist-packages/mqtt_bridge/util.py", line 5, in from rosbridge_library.internal import message_conversion File "/opt/ros/noetic/lib/python3/dist-packages/rosbridge_library/internal/message_conversion.py", line 45, in from rosbridge_library.util import string_types, bson File "/opt/ros/noetic/lib/python3/dist-packages/rosbridge_library/util/init.py", line 23, in raise Exception( Exception: BSON installation does not support all necessary features. Please use the MongoDB BSON implementation. See: https://github.com/RobotWebTools/rosbridge_suite/issues/198 *[mqtt_bridge-1] process has died [pid 12754, exit code 1, cmd /home/oshikurou/catkin_ws/src/mqtt_bridge/scripts/mqtt_bridge_node.py __name:=mqtt_bridge __log:=/home/oshikurou/.ros/log/36ce37ac-b820-11ec-bac1-853923bc7fa7/mqtt_bridge-1.log]. log file: /home/oshikurou/.ros/log/36ce37ac-b820-11ec-bac1-853923bc7fa7/mqtt_bridge-1.log** all processes on machine have died, roslaunch will exit shutting down processing monitor... ... shutting down processing monitor complete done

oshikurou@oshikurou:~/catkin_ws$ roslaunch mqtt_bridge demo.launch ... logging to /home/oshikurou/.ros/log/a462086c-c099-11ec-8555-7985461d55a7/roslaunch-oshikurou-7071.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://oshikurou:45847/

SUMMARY PARAMETERS

/mqtt_bridge/bridge: [{'factory': 'mqt... /mqtt_bridge/mqtt/client/protocol: 4 /mqtt_bridge/mqtt/connection/host: localhost /mqtt_bridge/mqtt/connection/keepalive: 60 /mqtt_bridge/mqtt/connection/port: 1883 /mqtt_bridge/mqtt/private_path: device/001 /rosdistro: noetic /rosversion: 1.15.14 NODES / mqtt_bridge (mqtt_bridge/mqtt_bridge_node.py)

auto-starting new master process[master]: started with pid [7079] ROS_MASTER_URI=http://localhost:11311/

setting /run_id to a462086c-c099-11ec-8555-7985461d55a7 process[rosout-1]: started with pid [7089] started core service [/rosout] process[mqtt_bridge-2]: started with pid [7096] [INFO] [1650452667.019515]: MQTT connected [ERROR] [1650455142.213648]: bad callback: <bound method RosToMqttBridge._callback_ros of <mqtt_bridge.bridge.RosToMqttBridge object at 0x7f299e78dbb0>> Traceback (most recent call last): File "/opt/ros/noetic/lib/python3/dist-packages/rospy/topics.py", line 750, in _invoke_callback cb(msg) File "/home/oshikurou/catkin_ws/src/mqtt_bridge/src/mqtt_bridge/bridge.py", line 55, in _callback_ros self._publish(msg) File "/home/oshikurou/catkin_ws/src/mqtt_bridge/src/mqtt_bridge/bridge.py", line 60, in _publish self._mqtt_client.publish(topic=self._topic_to, payload=payload) File "/home/oshikurou/.local/lib/python3.8/site-packages/paho/mqtt/client.py", line 871, in publish raise TypeError('payload must be a string, bytearray, int, float or None.') TypeError: payload must be a string, bytearray, int, float or None.