向非ROS计算机

时间:2018-03-28 01:02:55

标签: c++ udp ros

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

  1. 在非ROS机器上安装ROS。像网络一样连接它。一个人将作为所有
  2. 的共同roscore的主人
  3. 写一个ros节点并接收ROS消息,然后将它们序列化为UDP / TCP消息并通过网络广播
  4. 通过rosbridge和websockets编写json
  5. 方法1可能是不可能的,因为要求我们必须在非ROS PC中重用WCF接口。

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

    我也很困惑为什么TCP会通过UDP推广,或者至少我有这种印象。

    方法3:这看起来有点容易(初看起来)但是我已经知道通过websocket进行通信并不是那么受WCF支持(不确定我是否使用了正确的词)。我是对的吗?

    感谢您回答我的问题

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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