忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[542]  [540]  [539]  [538]  [537]  [536]  [535]  [534]  [533]  [532]  [531
以前作成した3Dモデル表示ツールをリビルドしたのですが、Ogre3DのSDKがVS2012までしか対応していないので、わざわざVS2010でビルドする羽目になりました。
OpenRTM-aistのVS2010対応版をダウンロードしてきて中身を抽出、プロジェクトを手動でインクルードパス等を変更してビルドしました。

基本的な事ですが、msiファイルを抽出するには以下のコマンドを入力します。
msiexec /a OpenRTM-aist-1.1.1-RELEASE_x86_vc10.msi targetdir="C:\OpenRTM-aist" /qn
この例ではOpenRTM-aist-1.1.1-RELEASE_x86_vc10.msiの中身を抽出してC:\OpenRTM-aistに保存しています。

実行ファイルを付属して必要なDLLを付属しないRTCを配布するのであればマニュアルに書いてほしいのですけどね。


あるいはこんな内容のスクリプトファイルを付属しておけば簡単かもしれません。



単に実行ファイルを付属するだけなら、ソースコードのみの配布と何も手間は変わりません。
と言うより、動作できない実行ファイルを使う前提でマニュアルが書いてあるため、逆に動作できる可能性は下がりそうです。
ソースコードのみの配布ならばこちらでビルドするようにマニュアルが書いてあるはずなので、そっちの方がまだましです。

何だかCMakeでプロジェクト生成→ビルドの手順がみんな簡単にできると勘違いしている人が多いように思います。
「ちょっと試してみよう」ぐらいの人であれば即座に諦めるぐらいの面倒くささはありますし、知識のない人であれば失敗します。
なのでソースコードのみを配布する場合でもビルドを自動化するスクリプトぐらいは書いてほしいです。



ビルドまでの手順にせよ何にせよ、「手順をマニュアルに書いておけばいい」と言うのがそもそもの間違いです。
マニュアルを詳細に書いてあるRTCは動作できる可能性が高そうに見えますが、これは罠です。
RTC本体の使いづらさをマニュアルで補おうとした結果である場合が多いので、逆に動作が難しいかもしれないです。





あまり関係ないけど、プロジェクトページやマニュアル等に以下の言葉を書かないでほしいです。
  • 簡易
  • 使いやすい
  • 簡単
  • 容易
タイトルに簡易とか書いていたので使ってみたら全然簡易じゃなかったという事もあったので、あまり無責任な事を書くのはやめてほしいです。
特にRTMコンテストは賞金が出るわけで、嘘ばかり書いていると詐欺で捕まります。

ただし、「簡単に~することを目標にする」等の場合はセーフです。ただの目標や目的なので、実際に使ってみて簡単ではなくても書いてある事に矛盾はありません。

僕のインストール簡易化ツールもまずいですけど、まあこれは別にRTMコンテストに出すわけじゃないので大丈夫だとは思います。いやでも簡易かどうかは分かっていないので、名前は変更します。




一番気になったのはRTMコンテスト2013のこの作品の「簡単に再現できる」の部分です。
100ページ以上のマニュアルを書いてあったり、複数バージョンのOpenRTM-aist・OpenCVのインストールが必要だったり、しかも複数バージョンのOpenRTM-aistのインストールが必要であることはマニュアルには書いていなかったりするのに「簡単に再現できる」は流石にやっている事が矛盾しています。

何の事を言っているのかわからないかもしれないので説明しますけど、まずこの作品は東芝製のPartialEdgeというRTCを使っています。
PartialEdgeComp.exeをDependency Walkerで調べてみると、



つまりOpenRTM-aist-1.0.0とOpenCV 2.2のDLLが必要だという事が分かります。
ただマニュアルを読んでみるとOpenCV 2.2のインストールは指示していますが、何故かOpenRTM-aist-1.0.0のインストールは指示していません。
つまり開発したシステムを動作させるために必要最低限の情報がマニュアルに足りてないという事になります。これでは簡単とかいう以前に再現自体が無理なので嘘を書いてある事になります。


どうやら「基本的な動作を簡単に再現できる」と書いてあるようなので、開発したシステム全体ではなく「基本的な動作の再現」に必要なRTCの動作だけならば簡単かもしれないのでグレーゾーンではあるのですけど。その基本的な動作の再現にPartialEdgeが必要ならば完全にアウト、必要でないならばセーフかもしれないと言う事になります。そもそも基本的な動作がサンプルのピック&プレースを指しているのか、それとも何かを指しているのではなく基本的な動作全般の事を言っているのかは不明ですけど。


それ以前に、再現できるという言葉がどういう意味合いで使っているのかが気になります。


要は動作の再現なのか、現象の再現なのかという差があります。


前者の場合、例えば産業用ロボットで何かやってみたい動作があったとします。
すると産業用ロボットでやってほしい動きをさせるための(別のRTC作成等の)作業が簡単になるという事になります。あくまで動作の再現をしたいだけですからね。この場合は特に問題はないです。

3コマ漫画にするとこんなかんじです。




後者の場合、例えばこのシステムが既に基本的な動作ができるようになっているとします。おそらくピック&プレースの事だとは思います。
するとこのシステムをどこかの環境に構築して、その基本的な動作ができるようになるまでの作業が簡単だと言う事になります。

基本的な動作=ピック&プレースとすると、マニュアルの情報から動画のロボットの動作と同じ事ができて初めて再現できたと言えます。つまり動画で起こっている現象の再現をしたいという事になります。

3コマ漫画にするとこんな感じです。





後者の意味合いの場合ですが、「再現できる」と言うのがNGワードで、再現性と言うのは第三者が再現できて初めて正当性が認められるものなので、開発者自身が言う事ではありません。
どうしても再現性が高いことを主張したいのであれば、匿名でもいいのでその第三者にコメントを書いてもらうべきでした。




RTC・RTシステムの場合、どうすれば再現できたと言えるのかを考えてみました。
まず開発には全く関係のない第三者が、公開された情報のみ自分の環境で再現できることが最低条件です。
コメントやメールなどで開発者の問い合わせて再現できたとして、その情報をマニュアル等に載せるのであれば再現できたと言っても良いと思います。
ただし、開発者がある程度設定済みの環境で動作できた、あるいは直接やりかたを教えた等は再現できたとは言えません。ただしVMWareイメージ等で設定済みの環境を配布していて、その環境で第三者が再現できたのであれば大丈夫だと思います。

こちらでビルドする必要があるにもかかわらずその手順を書いていない場合は、RTMに精通した人であれば再現は可能なのですが再現性があると言ってよいかはかなり微妙です。
動作するまでに必要最低限の情報が存在しないわけなので、個人的には再現性があると言いたくありません。ただ、一応は第三者の環境で再現はできるので再現性はあるという事にはなります。ただしその場合、簡単に再現できる等とは間違っても書いてはいけません。






結局何が言いたいかと言うと、事実や目的だけを書いてほしいという事です。
そのRTC・RTシステムは何ができるのか、どうすれば使えるのかを知りたいだけなので誇大広告はいりません。










にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
カレンダー
11 2019/12 01
S M T W T F S
1 2 3 4 5 6
9 10 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
フリーエリア
最新CM
[12/11 Nobu]
[12/11 Kanamura]
[08/24 Nobu]
[08/24 puku]
[08/22 Nobu]
プロフィール
HN:
Nobu
年齢:
31
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]