Controller 将Cpp代码与Python集成的最佳方法

Controller 将Cpp代码与Python集成的最佳方法,controller,openai-gym,Controller,Openai Gym,我要做一个机器人模拟器。 除了控制器部分外,模拟器大部分是用Python制作的。 控制器采用Cpp制作。 对于每个时间步,在模拟器中,机器人模型将其状态(电机角度等)发送给python方法 它根据机器人必须遵循的学习策略,包装所有生成所需动作的代码。该方法使用openai Gym和机器学习代码。然后,在Cpp中制作的控制器部件获得所需的动作作为输入,并应输出可馈送到机器人电机的特定命令 问题是,在python中使用Cpp代码的最佳方式是什么。我希望我可以将策略部分的输出发送到控制器,控制器输出

我要做一个机器人模拟器。 除了控制器部分外,模拟器大部分是用Python制作的。 控制器采用Cpp制作。

对于每个时间步,在模拟器中,机器人模型将其状态(电机角度等)发送给python方法 它根据机器人必须遵循的学习策略,包装所有生成所需动作的代码。该方法使用openai Gym和机器学习代码。然后,在Cpp中制作的控制器部件获得所需的动作作为输入,并应输出可馈送到机器人电机的特定命令

问题是,在python中使用Cpp代码的最佳方式是什么。我希望我可以将策略部分的输出发送到控制器,控制器输出电机命令。我只想使用cpp控制器的一部分,如功能,如分离黑匣子,如果可能的话

Python是解释器语言,cpp是编译器语言。谷歌建议一些候选者使用Cpython、Bootst.python或Pybind11。Cpp部分涉及大量链接到控制器相关库的
#include
s,并将在每个时间段中重复使用。为了更快的计算,我认为cpp部分应该只编译一次


欢迎任何建议

我决定使用pybind11包装cpp

pybind11用途非常广泛,它支持智能指针,对于那些想要使用eigen或vector的人来说,pybind11分别将它们转换为python中的numpy和list(尽管您需要向下滚动才能找到更现代的方法,因为这是很久以前的问题)。