rosserial_server wifi 连接 Raspberry pi ESP8266

rosserial_server wifi connection Raspberry pi ESP8266

此 post 与 ROS(机器人操作系统)和 ESP8266 相关,并且已在 ROS Answers and Robotics Stack Exchange.

上交叉post

我在 Raspberry Pi 4 上安装了 ROS Melodic 运行,需要通过 wifi 向多个 ESP8266 发送信息(作为字符串)。我才刚刚开始,所以现在只有一个 ESP8266。对于通信,我使用的是在 ROS 包 rosserial_server(包 wiki)中找到的 socket_node

参考下图,从节点发布到ESP8266节点运行订阅的主题/Topic_data_over_wifi

问题是,节点/rosserial_server_socket_node保持浮动!

我已经仔细检查了主题名称和 IP 地址,并且有一次,让节点 /rosserial_server_socket_node 实际上 link 到 ROS 网络的其余部分,如“What我要”部分。然而,那只是一次(侥幸?),我再也无法 /rosserial_server_socket_node 加入 ROS 网络。

rosserial_serversocket_node 使用其默认设置(端口 11411)。我确实尝试了其他端口号,但没有区别。所有节点启动后,这里是 rostopic list 的输出(除了通常的 /rosout/rosout_agg ):

目标:我需要找到一种使用 ROS 通过 wifi 连接 ESP8266 和 Raspberry pi 4 的方法。 更具体地说,我需要从从节点(在 Raspberry Pi 上)到 ESP8266 上的节点 运行。

我已经看过这个 multiple-TCP-connections post 但没有找到任何可以解决我的问题的东西。

任何 inputs/suggestions 将不胜感激。

根据 ESP 上的软件 运行,使用 ROS MQTT bridge. The downside is that you will need an additional MQTT broker (I am not sure, but as I recall mqtt_bridge is an MQTT client and requires a broker like Mosquitto 可能是一个选项。您可以将 MQTT 客户端添加到 ESP,并将它们连接到同一代理并订阅 MQTT 消息。换句话说,您使用他们的 borker 为 ESP 创建一个 MQTT 网络,并通过 mqtt_bridge 将 ROS 添加到该网络。如果您不是 运行 ESP 上的 ROS 特定软件,它应该可以正常工作。