ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
もう一度配布の形式を考えてみました。
かなり身勝手な意見なので、RTMコンテスト参加者は参考にしないことをお勧めします。
まずC++版の場合ですが以下の形式が考えられると思います。
ただ僕みたいな初心者には思った以上に非常に敷居が高いような気がします。
2は多少難易度は下がると思いますが、そのままではRTCBuilderで生成したファイルをCMakeするとインクルードディレクトリ、出力ディレクトリ等のパスを絶対パスで指定しているプロジェクトを生成すると思うので、いろいろ設定し直してから配布する必要がありますね。ヘッダーファイルの入っているフォルダへのパスは相対パスに変更するだけでいいと思うのですが、OpenRTM-aistのインストールフォルダへのパスはProgram FilesかProgram Files (x86)かという違いがあるので注意が必要です。1.1.0か1.1.1かという違いが今後起きてくるとは思うので余計に面倒ですね。Windows、Linux、Mac等複数のOSに対応している場合はCMakeを使った方が便利ではあるのですが、CMakeしてもらうような仕様にすればそれはそれで面倒なので正直何が答えなのかわかりません。現状WIndows+OpenRTM-aist-1.1.0かUbuntu+OpenRTM-aist-1.1.0が多そうなのでその環境では簡単にビルド出来るようにした方が良いのではないでしょうか?それ以外の環境ではCMakeしてもらう形が良さそうな気がします。
3は動作確認を入念に行っているのならばこれで良いと思います。
ただユーザー側からしたら得体のしれないソフトウェアを実行することになるのがちょっと不安ですね。配布するファイルの容量が大きくなるのが少し気にはなります。
4は3とほぼ問題点は同じです。必要なdllはDependency Walker等で事前に調べておきましょう。
Python版は以下の方法が考えられると思います。
Pythonの場合はそれでも初心者が困ることは少ないとは思います。
ただ必要なライブラリのインストール方法は入念に書いておく必要はあります。
2でRTCを配布する人はあまり見ないですね。rtctree等ライブラリは簡単にインストーラーを作成できるので、インストーラーで配布する人は多いですが。
3も実はあまり見ませんね。確実に他の環境でも動作させるには一番だとは思います。
雑ですがいろいろと好き勝手なことを書いてしまいました。
そもそもCMakeに慣れた人から見れば一体何が難しいのかわからないかもしれませんが、僕みたいな素人はどんなトラブルを起こすかわからないので動作確認までなかなかできないということはありがちだとは思います。
VC++のプロジェクトでは簡単に設定できることがCMakeファイルにはどう書けばいいのかがわからないという事がありました。というより未だに分かっていません。具体的には、
どこで聞けば良いのかわからないのが最大の問題です。
まさかRTMのメーリングリストで聞くわけにもいかないだろうし。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
かなり身勝手な意見なので、RTMコンテスト参加者は参考にしないことをお勧めします。
まずC++版の場合ですが以下の形式が考えられると思います。
- プロジェクトファイル(もしくはMakefile)はなし。CMakeしてもらう仕様
- プロジェクトファイル(もしくはMakefile)は同梱、実行ファイルはなし
- 実行ファイルを同梱
- インストーラーで配布(必要なdllも再配布可能なものだけ同梱)
ただ僕みたいな初心者には思った以上に非常に敷居が高いような気がします。
2は多少難易度は下がると思いますが、そのままではRTCBuilderで生成したファイルをCMakeするとインクルードディレクトリ、出力ディレクトリ等のパスを絶対パスで指定しているプロジェクトを生成すると思うので、いろいろ設定し直してから配布する必要がありますね。ヘッダーファイルの入っているフォルダへのパスは相対パスに変更するだけでいいと思うのですが、OpenRTM-aistのインストールフォルダへのパスはProgram FilesかProgram Files (x86)かという違いがあるので注意が必要です。1.1.0か1.1.1かという違いが今後起きてくるとは思うので余計に面倒ですね。Windows、Linux、Mac等複数のOSに対応している場合はCMakeを使った方が便利ではあるのですが、CMakeしてもらうような仕様にすればそれはそれで面倒なので正直何が答えなのかわかりません。現状WIndows+OpenRTM-aist-1.1.0かUbuntu+OpenRTM-aist-1.1.0が多そうなのでその環境では簡単にビルド出来るようにした方が良いのではないでしょうか?それ以外の環境ではCMakeしてもらう形が良さそうな気がします。
3は動作確認を入念に行っているのならばこれで良いと思います。
ただユーザー側からしたら得体のしれないソフトウェアを実行することになるのがちょっと不安ですね。配布するファイルの容量が大きくなるのが少し気にはなります。
4は3とほぼ問題点は同じです。必要なdllはDependency Walker等で事前に調べておきましょう。
Python版は以下の方法が考えられると思います。
- ソースコードで配布
- インストーラーで配布
- py2exe等で実行ファイルに変換して配布
Pythonの場合はそれでも初心者が困ることは少ないとは思います。
ただ必要なライブラリのインストール方法は入念に書いておく必要はあります。
2でRTCを配布する人はあまり見ないですね。rtctree等ライブラリは簡単にインストーラーを作成できるので、インストーラーで配布する人は多いですが。
3も実はあまり見ませんね。確実に他の環境でも動作させるには一番だとは思います。
雑ですがいろいろと好き勝手なことを書いてしまいました。
そもそもCMakeに慣れた人から見れば一体何が難しいのかわからないかもしれませんが、僕みたいな素人はどんなトラブルを起こすかわからないので動作確認までなかなかできないということはありがちだとは思います。
VC++のプロジェクトでは簡単に設定できることがCMakeファイルにはどう書けばいいのかがわからないという事がありました。というより未だに分かっていません。具体的には、
- 構成プロパティ→全般→共通言語ランタイムサポートの項目をどう設定するか
- 共通プロパティ→Frameworkと参照→.NETもしくはCOMコンポーネントの参照の追加をどう設定するか
どこで聞けば良いのかわからないのが最大の問題です。
まさかRTMのメーリングリストで聞くわけにもいかないだろうし。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする