忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[10]  [11]  [12]  [13]  [14]  [15]  [16]  [17]  [18]  [19]  [20
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

以前作成した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
とりあえず、RTCを同梱したツールをダウンロードできるようにしました。
Windows版はここ、ubilinux版はここからダウンロードできます。

マニュアルにも書いてありますが、SettingRTSystem.bat(SettingRTSystem.sh)を実行するとツールが起動します。

Ubuntu等で使う場合はそちらでビルドする必要があるのでWindows版をマニュアルの手順でビルドしてください。


一応、WindowsであればインストールしてあるOpenRTM-aistが1.1.1、VS2013、32bit以外でもツールや同梱したRTC自体は動作できますが、独自に作成したRTCはツールのrtcdで動作できないので気に食わない人は再ビルドしてください。



ubilinux版はIntel Edison用のRTCのソースコードを同梱しているだけでツールやRTCはビルドしていないので、そちらでビルドしてください。


色々と仕様変更しているのでマニュアルと違ってきた部分がいくつかあります。
気が向いたらマニュアルも編集します。





Edison用のデバイスRTCを17個開発しましたが、Raspberry Piでも動作できた方が便利なので動作確認ぐらいはしておいた方が良いかもしれないです。
ただ、mraaがRaspbarry Piに対応しているらしいという情報は見つけても、実際に動作させたという情報は見つからないのでEdisonと同じ手順でインストール、動作ができるかどうかが疑わしいです。
こっちも気が向いたらやることにします。




















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

人気ブログランキングへ
サマーキャンプには行っていないので公式サイトの情報しか知らないのですが、前回の記事で懸念した通り2班は動作できなかったみたいです。
100ページ以上のマニュアルが付属しているRTCなんて動作できるわけないじゃないですか。
動作できないと思ったらスパッと諦める事が重要です。

こんな感じで使えるRTCを見極める意味でのリトマス試験紙的な事はサマーキャンプの前にやった方が良かったかもしれません。2日しか期間がない中でやるべきことではないです。




RTCの選択ミスと言う事にはなりますが、替わりになるものがなくてそもそも選択の余地がなかったのかもしれません。


やはりもっと学習用ロボット+RTCが充実しないと厳しいです。
以前開発したロボットアーム制御RTCもありますが、学習用と考えたらもっと教育方面に詳しい人が作った方が良いものができるかもしれないです。
そういう意味ではこのスライドの最後の方で紹介されているVISTON社製スカラロボット制御RTCは期待できそうです。
それからこのスライドの人も何か作りたいと言っているのでどうなるのか興味はあります。




それにしても3人の班もあれば5人の班もありますけど、どういう班分けなんでしょうね?
4班、5班は3人にもかかわらず、他の班に引けを取らない出来になっているのは凄いです。



プロジェクトページや発表を見る限り、かなり使用したRTCの開発者が偏っている印象です。
サンプルも含めた産総研の公開しているRTC以外だと、2~3人ぐらいの人が開発したRTCしか使われていません。


動作できるできない以前に、そもそもRTCを見つけられないという可能性も高そうです。










それはさておき、例のツールに機能を色々追加しているところです。


まず、ツールバーを追加したので多少はRTCD起動等が楽になるかもしれないです。





RTCの概要をQtWebKitで表示するようにしました。




マニュアルの部分をクリックすると、ウェブブラウザでRTCのオンラインマニュアルを開きます。




HTMLでリンクを追加する要領で、
<a href="http://robotarmrtc.iaigiri.com/" target="_blank">マニュアル</a> 
のようにするとリンクを追加できます。

テキストだけでRTCの説明をするのは限界があるのであったら便利だと思ったのですが、上記のようにRTC.xmlを編集しておく必要があるので現状ではあまり意味のない機能ではあります。


そもそもオンラインマニュアルではなくてRTCに同梱したマニュアルを読み込むことも考えたのですが、個々のRTCでマニュアルを作る人ってあまり見たことがないのでやめました。
大抵の場合はマニュアルとソースコードは別々にダウンロードできるようになっているので、特に問題はないとは思います。










既に公開済みのRTCも修正していますが、Intel Edison用のRTCが少ないと思っていたので8つのRTCを追加します。
僕以外にもEdisonでRTMを使っている人は誰かしらいるとは思うので、多分役立つとは思います。
mraaのサポートしているプラットフォーム一覧にRaspberry Piもあるので、ひょっとしたらRaspberry Piでも動作できるかもしれないです。
試していないから分かりませんけど。

RTMやっている人でEdisonを使っている人はレアですけど、Raspberry Piを使っている人はたくさんいるので、開発したRTCが動作できるのであれば得する人はいるかもしれません。












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

人気ブログランキングへ
サマーキャンプの実習で僕の開発したExcelを操作するRTCを使った班があったみたいですね。
どうやらそれでトラブルが発生したらしく、Twitterで某先生が呟いていたので一応返信はしておきました。
ExcelRTCのC++版を使ったらしいのですが、それでTimedVelocity2D型のデータと通信できないという事だったみたいです。
ExtendedDataTypes.idlのデータ型にはOpenOffice CalcのRTCとExcelRTCのPython版には対応していますが、ExcelRTCのC++版には対応していないのでバグとかではなくそもそもできない仕様だったみたいです。
一応、個別のマニュアルには一言書いてはいたのですが、プロジェクトページを見てからだと確かに勘違いするかもしれないです。
どうやら変換コンポーネントを作る羽目になってしまったみたいなので、手間を掛けさせてしまい申し訳なく思います。
プロジェクトページのコメントにも返信しておいたので、これで後から見る人は大丈夫だとは思います。
C++版は今後更新しないと思うので、ExtendedDataTypes.idlのデータ型には対応することはないです。



それにしても2班だけは何をどうしたのかが謎だなあ。
サマーキャンプには行っていないので公式サイトの情報しか分からないのですが、他の班は何をしたのかが大体想像できます。
プロジェクトページを読んだ印象で、まず何のロボットを動作させたのかが分かりませんでした。
ORiNのRTCを使っているという事は、ORiNに対応したロボットアームが産総研にあったのか自分で持ってきたのかだとは思いますが、Lego MindStormは一体どこで使ったのかが謎です。


まあ近いうちに発表スライドが公開されると思うので、それを読んで確認します。




思ったのが、作業する期間は実質的に2日ぐらいしかないのですから、ORiN対応の産業用ロボットなんて100ページ以上のマニュアルを読まなければならないぐらい難しいものは余程の自信がない限り使わない方が良いと思います。
開発モデルの発表で「いきなり難しいことをやっても破綻するといけない」と言っていた班がありましたが、2日と言う期間を考えるとそうするしかないです。
まあ、僕はサマーキャンプ自体一回も行ったことがないのでよく分かりませんけど。

ちょうどこのスライドの最後の方で手頃なロボットアームを紹介しているので、これでも良かったと思います。

もっと入門用のロボットが増えれば良いのですけどね。





RTMコンテストのエントリー登録ができるようになっているみたいですけど、過去の受賞歴とかいう項目ってありましたっけ?
つまりここで過去の参加歴、受賞歴をなしにして参加すれば僕でもビギナー限定賞が取れるという事ですかね?バレなければですけど。まあ多分バレないと思います。




初心者の方でも積極的に参加してほしいです。
内容が悪くても賞を取る方法は間違いなくあります。
最初から奨励賞狙いでやるのも手ですが、それ以外にも方法があるみたいです。
内容がスカスカ(実質的に自分で書いたコードは百数十行程度)で特に工夫した点もない、マニュアルが読みにくい、独自のデータ型を考えなしに使ったため相互運用性が低い、既に同じようなRTCは存在していたためオリジナリティは低い、プロジェクトページへのコメントを放置する、コメントで間違いを修正すると言っておいて修正しない作品が複数の賞を取れます。
正直なところ、AR Droneを操作するのなら既存のRTCを使った方が良いと思います。
上記の作品のRTCは信用できません。



改めてまとめてみるとマイナスの要素ばかりですけど、それを覆す何かがあったのだと思うので参加する人は参考にしてください。
いやでも、その何かをみんなが使ったら僕だけ不利になるので、何かの正体が分かった人は下のコメント欄で教えてください。


















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

人気ブログランキングへ
サマーキャンプの講義のスライドがいくつか公開されているみたいなので、少し読んでいました。

まずRTコンポーネント開発の注意点というスライドです。
このスライドには極めて重要なことが書いてあるので穴が開くぐらい読んでください。
5ページ目の「この過程で、RTコンポーネントの粒度も考える」と言う部分は字は小さいですが、これ一つでRTシステム全体が台無しになるレベルで重要なので注意してください。
以前SysMLで設計したというRTC群を見たことがありますが、粒度が小さすぎてシステムの見通しが悪くなっていたので設計は慎重に行う必要があります。
と言うより、慣れてもいないのにSysMLを使うべきではないかなとは思います。

一番重要なのは5ページ目ですけど、4ページ目も重要です。
RTCビルダで生成したファイルに全てを記述している、つまり最終的にはXXX.h、XXX.cpp、XXXComp.cppしかソースファイルがないRTCがかなり多いのですが、ロジック部分は切り離しておいた方がソースコードとしての再利用性は上がります。そうすればサンプルの作成からRTCの開発も楽になります。



そして9ページ目の「そもそも使うのをあきらめる」というのは至言だと思います。
と言うよりマニュアルがあっても動作できないRTCも多いので、動かないと思ったら諦めましょう。





RTミドルウェアコンテスト必勝法のスライドもあるようですが、これを読んでも前々回、前回言った疑問は解消しませんでした。
内容が伴っていなくても賞が取れるという裏技のようなものがあると思います。
でないとあの作品が2つも賞を取った理由が説明できません。
そりゃ最優秀賞以外は平等に審査する必要はないので好きな作品を選べばよいのですが、ここまで内容と審査結果がかけ離れた作品は2013以前のコンテストでは見たことがありません。
何か人とは違う事をやった故の結果だと思うので、まさに裏技です。
ただそれが一体何なのかが全然分からないので、知っている人は教えてください。



それにしても本当に一体何をしたのでしょうね?
僕はソースコード、マニュアル、予稿原稿を全て読んで発表も聴いたので、内容が評価されての受賞ではないという事には確信があります。
だから内容以外の評価点が必ずあるはずです。
過去にはコミュニティ的な活動が評価された作品はあったと思いますが、この作品の場合は特にそういうのもなかったように思います。

関係ないけど、コミュニティ的な活動が評価されるのであればこのブログやHPも評価に加えてほしいです。


まあそれは今はどうでもいいので置いておきますが、あの作品には何かしら評価される要素があったのかもしれません。

それさえわかればRTMコンテスト連覇も見えてくると思うのですけど。








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

人気ブログランキングへ
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
フリーエリア
最新CM
[08/31 ysuga]
[08/31 Nobu]
[08/31 ysuga]
[12/11 Nobu]
[12/11 Kanamura]
最新TB
プロフィール
HN:
Nobu
年齢:
35
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]