我想学习ROS,我意识到ROS官方只支持ubuntu。我习惯于使用另一个Linux发行版,即Fedora。
所以我想知道,如果我在软顶帽上安装ROS(社区将其列为实验性的(。它是否能在所有可用资源/软件包/选项的情况下顺利工作?
此外,ROS 2 Foxy Fitzro在windows上可用,使用它可以吗?或者我可能缺乏支持?我在哪里读到其他平台上的ROS没有所有的包和类似的问题
ROS中使用的一些包目前在Fedora RPM存储库中不可用。大多数其他软件包在RPM Fusion中可用。请参阅RPM Fusion命令行设置。
ROS 2 Foxy Fitzro在windows上可用,使用它可以吗?
是的,ROS 2 Foxy Fitzro在windows上可用,但预构建的二进制文件并不包括所有ROS 2包。ROS基本变体中的所有包都包括在内,并且只包括ROS桌面变体中的包的子集。
这个答案只涉及Fedora部分。它适用于Fedora 33。
我不是ROS专家,所以我不能回答这个问题:
它是否能像那样顺利地工作,并使用所有可用资源/包/选项?
但我不想太乐观。如果你只想测试ROS,那可能没问题。但是,如果你正在寻找一个生产开发,你应该更好地使用Ubuntu,而不是浪费时间来调整ROS的Fedora兼容性。
然而,在Fedora上运行ROS是可能的。我能够在talker
和listener
模式下运行demo_nodes_py
。这是ROS你好世界。
生成源
没有在一个简单的命令中安装ROS的软件包,我也无法运行";胖档案";。我犯了错误,我没有花超过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上(。它允许发送和接收消息。举个例子,我能够在这两个上下文中进行交互:
talker (Docker)
<->;Listener (Fedora from source)
talker (Fedora from source)
<->;Listener (Docker)
在Ubuntu上使用虚拟机
这听起来是充分利用ROS潜力的更安全的方法。但是虚拟机将需要更多的磁盘空间,更多的计算,你应该学习Ubuntu风格来在虚拟机中工作。
您可以将其用于简单级别的操作,而不会出现任何问题,但当涉及到更具体的问题时,您很可能会遇到奇怪的问题。这些问题的解决方案可能非常复杂。因此,以某种方式将其下载到ubuntu会更安全。