私はメッセージをキャプチャしてディスクに書き込むPythonで書かれたROSノードを持っています(例えばpickle
を使用)。これらのファイルは、後で別のPythonスクリプト(ROSの外)で使用したいのですが、メッセージクラスをインポートする必要があります。ROS以外のROSメッセージクラスの使用
これは可能ですか?
ありがとうございます!
私はメッセージをキャプチャしてディスクに書き込むPythonで書かれたROSノードを持っています(例えばpickle
を使用)。これらのファイルは、後で別のPythonスクリプト(ROSの外)で使用したいのですが、メッセージクラスをインポートする必要があります。ROS以外のROSメッセージクラスの使用
これは可能ですか?
ありがとうございます!
残念ながら、メッセージファイルをROS依存関係の外にインポートすることはできません。たとえば、生成されたメッセージのクラスファイルの1内部を見る場合:
---/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
)。
最小限の依存関係をIt Finally Works(!)までコピーしようとする可能性がありますが、少しエレガントで、おそらく脆弱な解決策になるでしょう。
あなたのメッセージを一般的な非ROSタイプに変換し、それをあなたのピクルスに保存することが最善のソリューションだと思います。
一方、私はROSから別のスクリプトを実行しています。そこで、データをフラットファイルに展開します。実際には:-( –
"ROSの外"とはどういう意味ですか?それを意味するならば、Pythonスクリプトからメッセージクラスを使うことは可能でしょう(setup.bashはおそらく – luator
ROSがインストールされているシステムだけでなく、任意の(Unix)システム上でスクリプトを実行したいのですが、メッセージクラスに関してはC++ヘッダを見つけましたが、そうではありませんでした。 Pythonファイル 興味深い考え方でsetup.bashをソーシングする –