如何通过网络将ros节点连接到主题

DS3*_*S3a 3 robotics ros

假设我有一个机器人,带有树莓派或jetson,运行 ROS。我想在我的笔记本电脑上查看传感器读数或 RVIZ 上的某些内容。或者也许可以使用连接到我的笔记本电脑的有线 Xbox 控制器来控制机器人...我是否可以在我的笔记本电脑上编写一个节点,该节点可以通过 LAN 网络或 Zigbee 连接到机器人的 roscore (rpi/jetson)模块什么的?

或者我是否必须在我的笔记本电脑上创建另一个 roscore 实例,并让它们通过 zigbee 模块/lan 相互通信?那会非常乏味......请不要告诉我这是唯一的选择。

编辑:关于使用 LAN 连接机器人和计算机的部分已经解释了...如果有人现在可以告诉我如何使用 RF 模块将其连接到机器人的 roscore,我将非常感激

Ale*_*lex 5

如果机器人计算机(例如 jetson 或 pi)和笔记本电脑位于同一 LAN 上,那么您只需要roscore运行一台计算机,例如在机器人上运行。

您需要设置两个环境变量,ROS_MASTER_URIROS_IP。应在两台计算机上都ROS_MASTER_URI设置为,而应设置为其所在计算机的 IP 地址。换句话说,在机器人计算机上,等于 中的 IP 地址,但在笔记本电脑上,它等于该笔记本电脑的 IP 地址。http://ROBOT_IP:11311ROS_IPROS_IPROS_MASTER_URI

设置这些环境变量后,您可以使用 ROS 主题与机器人“对话”,就像这些 ROS 主题位于同一台机器上一样。您的代码不需要进行任何更改。

有关更多信息,请参阅官方 wiki在多台机器上运行 ROS