ROS 的问题
Issues with ROS
我和我的朋友正在建造一架自主飞机 (UAV),并且有兴趣将 ROS 用于我们的软件堆栈。但是,我在 ROS 和支持方面遇到了一些问题,想知道是否有人知道任何解决方案?
我们的飞机目前装有 Raspberry Pi 3(我可能会用更好的处理器替换它,但仍然是具有相同 GPIO 的 ARM SBC)。我们将 运行 常规 Raspbian(精简版)。我们计划使用 Navio2,这是一个运行开源 ArduPilot firmware/software 的自动驾驶仪 HAT。我们将混合使用 C++ 和 Python.
我目前的主要问题是:
- 有限的 RPi 支持 - Kinetic 是在 RPi 上运行的最新版本。 RPi 的文档也非常有限。
- 甚至没有真正使用 C++11,我想使用最新的 C++ 功能。
- 最近OpenCV 4出来了,想好好利用一下。 ROS 支持任何版本的 OpenCV 还是只有 3 个版本?
- 不使用Python 3.这对我来说是一件大事,并且使用Python 2
由于各种原因不是一个选项。
我也看过ROS2,它旨在解决上面列出的许多问题,但对我们来说似乎还不够成熟。
针对您的观点的一些回答:
- 旋律在 RPi 3 B+ 上受支持 Raspbian Lite。您可能需要进行一些 apt-repo 操作,但我的团队能够毫不费力地完成它。
- 没有什么能阻止您使用 C++17;只需适当更新 CMakeLists.txt 文件,将
-std=c++17
添加到 CXX_FLAGS
- 据我所知,发布的 ROS Melodic 支持 OpenCV3。 OpenCV4 支持可能需要一段时间才能可用——我仍然需要检查该项目以获取最新消息。
- 我还没有真正查看 Python3 支持。我认为它被推迟到 ROS2。
也就是说,我不会说 ROS2 的不成熟是取消它资格的一个很好的理由——我知道要获得足够的支持和所有预先存在的 ROS 包都移植到它还需要很长时间(这就是为什么我的团队不想考虑它)。
无论如何,我仍然会考虑您计划实施的任何算法是否真的需要 OpenCV4 功能,或者如果使用该版本只是 "nice to have." OpenCV3 并不是那么旧,据我所知,它可以处理所有最先进的东西,而不会使算法过度屈服于 API.
2018 年 12 月 28 日更新
粗略搜索一下,ROS Melodic 似乎确实有 Python3 支持(参见此 question): ROS has to be built from source with the environment variable ROS_PYTHON_VERSION=3
set (see also this)
我和我的朋友正在建造一架自主飞机 (UAV),并且有兴趣将 ROS 用于我们的软件堆栈。但是,我在 ROS 和支持方面遇到了一些问题,想知道是否有人知道任何解决方案?
我们的飞机目前装有 Raspberry Pi 3(我可能会用更好的处理器替换它,但仍然是具有相同 GPIO 的 ARM SBC)。我们将 运行 常规 Raspbian(精简版)。我们计划使用 Navio2,这是一个运行开源 ArduPilot firmware/software 的自动驾驶仪 HAT。我们将混合使用 C++ 和 Python.
我目前的主要问题是:
- 有限的 RPi 支持 - Kinetic 是在 RPi 上运行的最新版本。 RPi 的文档也非常有限。
- 甚至没有真正使用 C++11,我想使用最新的 C++ 功能。
- 最近OpenCV 4出来了,想好好利用一下。 ROS 支持任何版本的 OpenCV 还是只有 3 个版本?
- 不使用Python 3.这对我来说是一件大事,并且使用Python 2 由于各种原因不是一个选项。
我也看过ROS2,它旨在解决上面列出的许多问题,但对我们来说似乎还不够成熟。
针对您的观点的一些回答:
- 旋律在 RPi 3 B+ 上受支持 Raspbian Lite。您可能需要进行一些 apt-repo 操作,但我的团队能够毫不费力地完成它。
- 没有什么能阻止您使用 C++17;只需适当更新 CMakeLists.txt 文件,将
-std=c++17
添加到CXX_FLAGS
- 据我所知,发布的 ROS Melodic 支持 OpenCV3。 OpenCV4 支持可能需要一段时间才能可用——我仍然需要检查该项目以获取最新消息。
- 我还没有真正查看 Python3 支持。我认为它被推迟到 ROS2。
也就是说,我不会说 ROS2 的不成熟是取消它资格的一个很好的理由——我知道要获得足够的支持和所有预先存在的 ROS 包都移植到它还需要很长时间(这就是为什么我的团队不想考虑它)。
无论如何,我仍然会考虑您计划实施的任何算法是否真的需要 OpenCV4 功能,或者如果使用该版本只是 "nice to have." OpenCV3 并不是那么旧,据我所知,它可以处理所有最先进的东西,而不会使算法过度屈服于 API.
2018 年 12 月 28 日更新
粗略搜索一下,ROS Melodic 似乎确实有 Python3 支持(参见此 question): ROS has to be built from source with the environment variable ROS_PYTHON_VERSION=3
set (see also this)