Python2.7和Python3模块之间的ROS消息

时间:2019-04-15 14:40:19

标签: python python-3.x python-2.7 ros openai-gym

我目前正在研究强化学习模块,该模块需要在Python 2.7中从ROS接收和发送状态,动作和奖励信息。由于系统的其余部分,这是一个严格的约束。

我想为增强学习代理使用OpenAI gym环境和基准,但是这些随Python 3.5+一起提供。

作为一个新颖的机器人专家,我的问题是,是否有可能从Py2.7到Py3.5 +接收ROS消息并将其发送回Py2.7?我曾被建议使用UDPROS来达到此目的,但我缺乏有关其外观的经验。这是正确的方法吗,还有更好的方法吗?

对于依赖Python2.7中的遗留代码的大型系统来说,这不是常见问题吗?

1 个答案:

答案 0 :(得分:1)

几天来,我一直对一个完全相同的问题感到困惑。 我不确定您使用的是哪个ROS发行版,但我认为它是Kinetic,因为您提到它仅支持python2。

我已经在笔记本电脑(ubuntu 16.0.4,ROS Kinetic)上创建了python3虚拟环境,并在该虚拟环境中同时运行了ros和基线,从而解决了该问题。看起来,当环境中没有python2时,ROS Kinetic仍可以与这些基本功能(例如发布和订阅主题...)一起很好地工作。

此外,我已经在PC上解决了该问题(ubuntu 18,ROS Melodic)。 Melodic支持python3,因此您可以通过这种方式在python3上同时运行基线和ROS。

希望这对您有帮助。