我有一个 ABB 机器人,我已通过 abb_ros2 与 ROS2 连接。我有一个工业设备,我需要使用以太网/IP 读取和写入数据,并使用基于这些以太网/IP 值的一些逻辑来命令机器人。我还没有这个设备,所以我不知道会发生什么。然而,实现这一目标的正确方法是什么?
我对现场总线和ros2都很陌生,所以请原谅我的无知。
有没有一种方法可以将 micro-ros 支持的微控制器与以太网/ip 连接起来,以便我可以在 ros2 中“本地”发布?
最有可能的是,查看链接的 micro-ros 控制器列表,您有一些选择
列出的其他板都是 UART,并且有一种方法可以使用 UART 接口连接到以太网,例如使用此板:KUBII - UART 到以太网转换器(WV20655)
有没有办法可以“直接”将底层 DDS 与以太网/IP 连接?
我会通过使用 HTTP 方法来回答“是”。请参阅下文了解可能的实施方式。
我可以想当然地认为提供以太网/IP 接口的设备可能有一种使用库与其进行通信的方法吗?我见过 git 上的库(如 pylogix)可以通过以太网/ip 与特定 PLC 或通用库(如 EIPScanner)配合使用。原则上我能够编写使用这些库的 ros2 节点。
假设永远不安全,只能研究特定的硬件模块并看看它是否可以实现您想要的功能。看看
Arduino Portenta H7
。因为是Arduino,所以已经支持制作网络服务器了。请参阅Portenta H7 作为 Wi-Fi 接入点。对于这个特定的模块,有一种使用现有库进行通信的方法。
对于这个特定的模块,您可以编写一个连接到 ROS 网络并通过
Listener
监听机器人状态的函数。在同一个模块上,您可以编写一个能够与网络通信(例如通过 HTTP 方法或成为 Web 服务器)的 Arduino 端,然后使用其中的一些函数将您发送到该 Web 服务器的任何内容转换为您可以使用的指令。可以发布回 ROS 2 网络。我认为这可以使用服务方法来完成。
我在服务方面没有太多经验,但阅读相关内容后,它看起来对于您给定的应用程序很有希望。请参阅ROS 2 - 了解服务
这就是我如何使用 ROS 2 Talker/Listener 方法来实现您想要做的事情。
假设:
另请参阅: