非Ubuntu平台上的ROS / ROS 2

问题描述

我当时想学习ROS,但我意识到ROS官方仅支持ubuntu。我习惯使用另一个Linux发行版,即Fedora。

所以我想知道,如果我在fedora上安装ROS(社区将其列为实验性的)。它将与所有可用的资源/程序包/选项一样流畅吗?

此外,ROS 2 Foxy Fitzro可以在Windows上使用,可以使用吗?还是我可能缺乏支持? 我在某处看到ROS在其他平台上没有所有软件包和类似问题

解决方法

ROS中使用的某些软件包目前在Fedora RPM存储库中不可用。 RPM Fusion中提供了其他大多数软件包。请参阅RPM Fusion Command Line Setup

ROS 2 Foxy Fitzro在Windows上可用,可以使用吗?

是的,Windows上提供了ROS 2 Foxy Fitzro,但是预构建的二进制文件并不包含所有ROS 2软件包。包括ROS基本版本中的所有软件包,仅包含ROS桌面版本中的一部分软件包。

,

此答案仅涉及Fedora部分。它可以在Fedora 33上使用。

我不是ROS专家,所以我不能回答这个问题:

是否可以流畅并且在所有可用资源/程序包/选项下正常工作?

但是我不想太乐观。如果您只想测试ROS,那就可以了。但是,如果您要进行生产开发,则最好使用Ubuntu,而不要浪费时间来调整ROS以实现Fedora兼容性。

但是,可以在Fedora上运行ROS。我能够在demo_nodes_pytalker模式下运行listener。这是ROS的问候世界。

构建源代码

没有可用一个简单的命令来安装ROS的软件包,我也无法运行CentOS的“胖存档”。我遇到了错误,我花了不到15分钟的时间来解决它们。互联网上的信息很差。

到目前为止,我发现的唯一解决方案是从源头构建ROS。该操作并不复杂,因为它已被充分记录:https://index.ros.org/doc/ros2/Installation/Foxy/Fedora-Development-Setup/

请注意,编译大约需要2个小时。

请注意,编译可能需要很多技巧,尤其是在编译失败时。

虚拟化

这些解决方案甚至可以与其他Linux发行版一起使用。

使用Docker

您可以下载以下图片:https://hub.docker.com/_/ros

如果您已经安装了Docker并且熟悉它,这似乎是一个不错的解决方案。它开箱即用,图像网页已完全记录。

借助docker卷,可以开发代码并从Fedora环境中读取日志,并可以在debian容器中运行ROS应用程序。

此外,您可以将容器连接到系统localhost(在Fedora上)。它允许发送和接收消息。例如,我能够在这两种情况下进行交互:

  1. talker (Docker) Listener (Fedora from source)
  2. talker (Fedora from source) Listener (Docker)

在Ubuntu上使用虚拟机

这听起来是更安全地利用ROS的潜力的方法。但是虚拟机将需要更多的磁盘空间,更多的计算,并且您应该学习Ubuntu风格才能在虚拟机中工作。