使用ROS与其他方法(有关此“其他方法”的更多详细信息,请参阅帖子)

时间:2018-06-11 07:27:10

标签: python raspberry-pi publish-subscribe ros robotics

所以我正和朋友一起开发一个机器人(使用Raspberry Pi)。我们正在研究的这个机器人将是一艘自动驾驶的船。现在,对于Raspberry Pi,我们使用的Raspbian图像已经很好地安装了ROS(特别是ROS Kinetic),我已经确认ROS正在工作。

对于我们的机器人船,我们有不同的功能,我们希望包含在其中:

  1. 获取GPS位置
  2. 通过水听器获取音频并处理音频以检测某个频率范围(即我希望船只能通过水听器清楚地听到8500-9000赫兹的声音)
  3. 能够通过XBee进行交流
  4. 所以我过去使用过ROS,熟悉发布和订阅主题的概念。但是,我的朋友说,由于ROS有一些“开销”,ROS会导致性能问题,声称ROS会减慢我们的音频处理速度。

    相反,他提出了以下替代方法:

    1. 将我们机器人的3个方面(如上所述)分别放在不同的Python文件中。
    2. 当Raspberry Pi启动时,让所有Python文件自动运行。
    3. 为了相互传递信息(基本上“模仿”ROS的发布/订阅功能),Python文件将写入不同的文本文件(“发布”值)并从这些文本文件中读取(到“订阅”) ),并且每次更新新值时都会覆盖这些文本文件包含的值。
    4. 所以...... 传递信息的方法对我们的机器人来说是更好的方法吗?

      1. 使用ROS
      2. 使用我朋友提出的上述文件书写/阅读方法
      3. 其他东西
      4. 哦,还有其他我应该提及的事情:

        1. 我知道如何使用ROS,我的朋友没有
        2. 我的朋友实际上并没有写完所有的代码来完成他的文件写作/阅读的想法,而ROS已经全部设置并且很好地继续使用Raspberry Pi
        3. 虽然我可以找到许多列出ROS各种优点的网站,但我找不到任何可以比较ROS和我上面提到的朋友方法的内容。

1 个答案:

答案 0 :(得分:1)

ROS有一些nodelets,允许多个节点在同一个进程中生存,并且无需复制开销就可以相互通信 - 因此,编写文件所需的开销就会减少。

http://wiki.ros.org/nodelet