【问题标题】:sending and recieving ROS messages to non-ROS machine向非 ROS 机器发送和接收 ROS 消息
【发布时间】:2018-03-28 01:02:54
【问题描述】:

ROS 和网络的新手。这里需要一些帮助来了解我应该采取的最佳方法。我正在尝试将 Ros 消息从 ROS PC 发送到另一台非 ROS PC。我研究了几种方法可以做到。

  1. 在非 ROS 机器上安装 ROS。像网络一样连接它。一个人将充当主人,为所有人提供一个共同的 roscore
  2. 编写一个 ros 节点并接收 ROS 消息,然后将它们序列化为 UDP/TCP 消息并通过网络广播
  3. 通过rosbridge和websockets编写json

方法 1 可能是不可能的,因为要求我们必须在非 ROS PC 中重用 WCF 接口。

方法 2:我想获得一些关于 ROS 中可以帮助解决此问题的工具/包/库的帮助和见解。有没有人有任何模板或可以指向我的指南/网站寻求帮助?

我也对为什么 TCP 比 UDP 提升感到困惑,或者至少我有印象。

方法 3:这似乎更容易(乍一看),但我发现 WCF 不太支持通过 websockets 进行通信(不确定我是否使用了正确的词)。我说的对吗?

感谢您回答我的问题

【问题讨论】:

标签: c++ udp ros


【解决方案1】:

ROS 主题所做的是将一系列数据类型(ROS 消息)包装到缓冲区中,并使用 TCP 或 UDP 协议通过网络传输。

每个节点在 ROS 网络上的 5 位端口上发布其数据。我认为您可以使用普通套接字编程方法监听该端口并根据 ROS 消息反序列化(我从未检查过,但我认为反序列化方法在 genmsg 包中确定),我认为您可以从 ROS 中获取数据系统。

【讨论】:

    【解决方案2】:

    也许 rosserial 会胜任这份工作。 rosserial 是一种协议,用于包装标准 ROS 序列化消息并在字符设备上多路复用多个主题和服务,例如串行端口或网络套接字。

    视频:https://youtu.be/JEwhXWKXlI0

    Wiki.ros : http://wiki.ros.org/rosserial

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多