我和我的 friend 们正在建造一架自动驾驶飞机(UAV),并对将ROS用于我们的软件堆栈感兴趣。但是,我在ROS和支持方面遇到一些问题,想知道是否有人知道任何解决方案?

目前,我们的飞机上装有Raspberry Pi 3(我可以用性能更好的处理器代替它,但仍然使用具有相同GPIO的ARM SBC)。我们将运行常规的Raspbian(精简版)。我们计划使用Navio2,它是运行开源ArduPilot固件/软件的自动驾驶仪HAT。我们将混合使用C++和Python。

目前,我的主要问题是:

  • 有限的RPi支持-Kinetic是在RPi上运行的最新版本。 RPi的文档也非常有限。
  • 甚至都没有真正使用C++ 11,我想使用最新的C++功能。
  • OpenCV 4最近发布了,我想利用它。 ROS是否支持任何版本的OpenCV还是仅3个版本?
  • 不使用Python3。这对我和Python 2来说都是一件大事
    由于种种原因不是一个选择。

  • 我还研究了ROS2,它旨在解决上面列出的许多问题,但对于我们来说它似乎还不够成熟。

    最佳答案

    您的观点的一些答案:

    Raspbian Lite现在在RPi 3 B +上支持

  • Melodic。您可能需要做一些apt-repo骑师,但是我的团队能够轻松完成它。
  • 没有什么可以阻止您使用C++ 17了。只需适当地更新您的CMakeLists.txt文件,即可将-std=c++17添加到CXX_FLAGS
  • 据我所知,ROS Melodic发行时支持OpenCV3。要获得OpenCV4支持可能需要一些时间-我仍然需要检查项目以获取最新消息。
  • 我实际上还没有看过对Python3的支持。我认为它被推迟到ROS2。

  • 就是说,我不会说ROS2的不成熟是取消其资格的一个很好的理由-我知道要花很多时间才能获得足够的支持,并且所有预先存在的ROS软件包都将移植到其中(这就是为什么我的团队没有不想考虑)。

    无论如何,我仍然会考虑您计划实现的任何算法是否确实需要OpenCV4功能,或者使用该版本只是“很不错”。 OpenCV3并没有那么老,据我了解,OpenCV3可以处理所有最新技术,而又不会使算法对API产生太大的影响。

    更新2018年12月28日

    做一些粗略的搜索,看起来ROS Melodic确实支持Python3(请参阅此question):ROS必须从带有环境变量ROS_PYTHON_VERSION=3设置的源代码中构建(另请参见this)

    关于python - ROS的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53789575/

    10-12 19:34