我有一个用 Python 编写的 ROS 节点,它捕获消息并将它们写入磁盘(例如使用pickle
)。我想稍后在 ROS 之外的另一个 Python 脚本中使用这些文件,但我需要导入消息类。
那可能吗?
谢谢!
不幸的是,我认为不可能只导入任何 ROS 依赖项之外的消息文件。例如,如果您查看生成的消息类文件之一:
---/your_catkin_ws/devel/lib/python2.7/dist-packages/your_package/msg/_Message.py
您将看到它至少取决于消息中包含的 genpy 和其他消息类型。基本消息是相同的(在 中/opt/ros/indigo/lib/python2.7/dist-packages/std_msgs/msg
)。
虽然您可以尝试复制最少数量的依赖项,直到它最终工作(!),但它有点不优雅,可能会成为一个脆弱的解决方案。
我相信最好的解决方案是将您的消息转换为通用的非 ROS 类型,然后将其存储在您的泡菜中(基本上您已经在做的事情)。