2016-09-05 25 views
1

私はメッセージをキャプチャしてディスクに書き込むPythonで書かれたROSノードを持っています(例えばpickleを使用)。これらのファイルは、後で別のPythonスクリプト(ROSの外)で使用したいのですが、メッセージクラスをインポートする必要があります。ROS以外のROSメッセージクラスの使用

これは可能ですか?

ありがとうございます!

+0

一方、私はROSから別のスクリプトを実行しています。そこで、データをフラットファイルに展開します。実際には:-( –

+0

"ROSの外"とはどういう意味ですか?それを意味するならば、Pythonスクリプトからメッセージクラスを使うことは可能でしょう(setup.bashはおそらく – luator

+0

ROSがインストールされているシステムだけでなく、任意の(Unix)システム上でスクリプトを実行したいのですが、メッセージクラスに関してはC++ヘッダを見つけましたが、そうではありませんでした。 Pythonファイル 興味深い考え方でsetup.bashをソーシングする –

答えて

1

残念ながら、メッセージファイルを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タイプに変換し、それをあなたのピクルスに保存することが最善のソリューションだと思います。

関連する問題