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

问题描述 投票:0回答:1

我准备做一个机器人模拟器,除了控制器部分,模拟器大部分是用Python做的,控制器是用Cpp做的。Rough diagram of the simulator

在模拟器中,机器人模型将其状态(电机角度等)发送给一个python方法,该方法封装了所有的代码,根据学习到的策略生成所需的动作,机器人必须遵循。该方法使用openai Gym和机器学习代码。然后用Cpp制作的Controller部分得到所需的动作作为输入,并应该输出特定的命令,可以喂给机器人的电机。

问题是,Cpp代码与python的最佳使用方法是什么。我希望可以直接把Policy部分的输出送到Contoller,Controller输出电机指令。我只是想把Cpp控制器部分用在函数上,如果可能的话,就像单独的黑盒子一样。

Python是解释器语言,cpp是编译器语言。Google推荐了一些候选方案,比如使用Cpython,使用Bootst.python或者使用Pybind11。Cpp部分涉及到大量的 #include链接到控制器相关的库,并将在每个时间步长中重复使用。为了加快计算速度,我认为cpp部分应该只编译一次。

欢迎任何建议

controller openai-gym
1个回答
0
投票

我决定用pybind11来封装cpp。

pybind11是相当通用的,它支持智能指针,而且,对于那些想使用特征或向量的人,pybind11分别将它们转换成python中的numpy和list。

© www.soinside.com 2019 - 2024. All rights reserved.