【问题标题】:Is it possible to use RInside in omnet++/Veins project to benefit from rich R features是否可以在 omnet++/Veins 项目中使用 RInside 来受益于丰富的 R 功能
【发布时间】:2018-07-25 18:55:13
【问题描述】:

我正在学习 R,并通过这个名为 RInside 的包来学习,它提供了 c++ 类来调用嵌入式 R 解释器。在按照this blogpost 进行配置并在 Omnet++ eclipse IDE 中使用提供的 makefile 后,我可以运行一些示例。我们如何将它与 say Veins 集成(veins 在顶层目录和 src 目录中已经有自动生成的 makefile)? Rinside 需要 GCC 工具链,我认为这在 OMNeT++ 中是默认的。

根据我目前所学到的,这些是选项:

  1. Omnet++ 用户手册说我们可以为某些源目录使用自定义 makefile。因此,将 RInside 代码保存在一个源文件夹和一个单独的生成文件中,并从静脉顶级生成文件中调用此生成文件。我尝试了这两种方法:
    1. 从 RInside 示例和 makefile 中复制一些源文件并更改 IDE 中的构建属性以从构建中排除此文件夹
    2. 还为此目录使用了选项自定义生成文件。但到目前为止还没有成功。可能是我做得不对。
  2. 使用 Rinside 实现所有功能并使其成为一个库(静态/共享)。在静脉中使用这个库。

到目前为止,有没有人尝试将它与基于 omnet++/veins 的项目一起使用?有谁知道是否值得尝试?欢迎任何其他建议。

我使用的是 Ubuntu 16.04 LTS 64 位。

【问题讨论】:

    标签: omnet++ veins rinside


    【解决方案1】:

    您真的想在 OMNeT++ 中使用 R,还是希望进行结果/数据分析?


    结果分析

    您能否提供一些关于您尝试做什么/为什么尝试在 OMNeT++ 中使用 R 而不是在模拟完成后执行后处理步骤的信息?一般来说,我建议您将后处理与模拟分开进行,使用 OMNeT++ 中的统计信息收集库在结果中生成相关数据,并使用 R 处理这些数据。您可以找到一些与 Plexe 一起使用的示例,用于 CACC 应用程序的基于 VEINS 的模拟器,位于this repository。我个人更喜欢使用 python 进行后期处理,但如果您已经熟悉 R,那么我建议您看一下。


    与 VEINS 集成

    如果您真的想这样做,我会在您的问题中推荐第二种方法,即简单地将 RInside 库作为系统库动态链接并将它们指定为依赖项。这基本上是让事情顺利进行的最简单方法。

    但是,如果出于某种原因您想显式链接库,您应该知道 VEINS 的构建过程依赖于分发中包含的configure script。它与普通 C++ 程序的不同之处在于,应该使用 OMNeT++ 提供的opp_makemake 工具来构建 OMNeT++ 模拟:这正是 VEINS 的配置脚本所做的。如果您想在构建过程中包含其他库路径,最简单的方法是使用./configure --include PATH/TO/RINSIDE/HEADERS 创建一个生成文件。更多详情请参考脚本源代码

    【讨论】:

    • 嗨,Rens,感谢您的回复。我的目标是将 RInside 与 Veins 集成。对于结果分析,我使用“omnetpp”R 包。我的工作包括在模拟中使用机器学习聚类算法(不是在结果数据上,所以基本上是在模拟期间)。 python 和 R 都已经提供了所有必需的库,尝试重新实现它们既困难又费时。所以我正在探索其他可用的选择。然后我遇到了这个看起来很有趣的 RInside 包。所以我正在试验它。我不知道配置。我会尽快回来的。
    • 那么您想使用 RInside 来进行学习吗?在这种情况下,第二种选择可能是最好的。不要忘记处理时间不是由 VEINS 自动模拟的——如果您在车辆中进行昂贵的计算,计算将被视为模拟时间的即时计算。对于大多数应用程序来说这不是问题(因为添加更好的硬件并不难),但如果您正在研究机器学习的时间关键型用途,请记住这一点。
    • 是的。我只是在尝试是否可行。我一定会牢记关于处理时间的建议。一旦我了解我需要做的事情,我可能会尝试使用 c++ 实现以加快处理速度。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 2020-06-19
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多