Visual Studio 2008からRDSサービスを作成(2)

前回の「Visual Studio 2008からRDSサービスを作成(1)」からの続きで、今回はサービスを自作して、コマンドプロンプトにに"Hello, Robotics Studio!!"と表示させます。



プロジェクトの新規作成からマイテンプレートで『DSS Service(2.0)』を選択してプロジェクト名を入力後、OKボタンを押すと

  1. プロジェクト名Types.cs
  2. プロジェクト名.cs
  3. プロジェクト名.manifest.xml

の3種類のファイルが作成されます。

プロジェクト名.csの中のStart関数を以下のように書き換え、デバック実行します。

  • 修正前
protected override void Start()
{
    // 
    // Add service specific initialization here
    // 
    base.Start();
 }
  • 修正後
protected override void Start()
{
    // 
    // Add service specific initialization here
    // 
    base.Start();
  System.Console.WriteLine("Hello Robotics Studio!!");

 }
  • 実行結果

Tech Fielders セミナー 東京でライトニングトーク発表してきました。

12/13(土)に開催されたTech Fielders セミナー 東京(Silverlight 2 アプリケーション開発) のライトニングトーク枠

「使ってみよう!RDS 2008 Express Edition -1週間+αでできること」

というテーマで5分間の発表をしてきました。
こちらに発表時の資料を公開しました。


【12/23 追記】
SlideShare版とPDF版を追加しました。
ppt版は動画ファイルが含まれているので、zipファイルになってます。

SlideShare版 ppt版 pdf版



今回、お伝えしたかったことは


とりあえずやってみるっていうのも結構大事かも


ということです。

8月のTechEdでライトニングトークをした後、何かしたいと思いながらも時間だけが過ぎてしまい、結局何も進展のないまま3ヶ月近くがたっていました。
今回応募したきっかけのひとつに、後には引けない状況を作ってやれば何かしら形になるものができるのではないかと思ったという点があります。

ライトニングトークスの応募締切が11/28金だったのですが、その翌日から資料提出締切り日(12/8月)までの約1週間を使って、インストールしたばかりのMicrosoft Robotics Developer Studio 2008 Express Edition (以下、RDS 2008 Express Edition)をいろいろと試してみようと、応募締切日の朝に決断しました。

同時にその結果の記録をこのブログにまとめていこうと思い、ここ1週間近くのエントリはほぼこのライトニングトークスの準備のために書いていました。

発表資料はアニメーションを多様していて説明文不足によりわかりにくい点があると思うので、もし詳細をお知りになりたい方がいらっしゃいましたら、発表資料中の○○日目という日付とブログの日付が(たぶん)リンクしておりますので、日記の過去検索をしていただければと思います。
また、多少説明文を加えたPDF版も作成したので、パワーポイントを表示できない環境の方はこちらをダウンロードして下さい。

それ以外でも分かりづらい点やご指摘があればご連絡下さい。

結果は練習が足りずに予定していた内容を5分間で全て話しきることができませんでした。会場は残り30秒をきると発表者側からは振り向かないと残り時間がわからないような構図になっているのですが、途中で残り時間がわからなくなってしまい、最後にデモをする予定だったので、とにかくそこまではもっていこうと必死でした。


「時間がないので残りはとばして、デモを見てください。」


一瞬起こったどよめきに多少の違和感を覚えつつも、VPLを起動した時、持ち時間5分の終了ベルが鳴ってしまいました。(/_;)/~~


なんと残り時間が3秒の時点で上の台詞を発言をするというとんでもないことをしてしまったようです。。。(ρ_-)o
どよめきの理由がようやくわかりました。


これにはさまざまな意見があると思うのですが、私は決められた5分という時間をクリアすることが最低条件だという思いがあるので、自分の中で一番したくなかったことをしてしまいました。

予想外のどたばたした終わりになってしまい、内容も満足に伝えきれていないというぼろぼろの状態で、笑っていただいた方、私に投票していただいた方、本当にありがとうございました。

優勝商品にこちらのマウスをいただきました。

また、大野さんご提供DVDをじゃんけん大会(?)で勝ち抜き、いただくことができました。

レミーのおいしいレストラン [DVD]

レミーのおいしいレストラン [DVD]

とてもいい話だとおっしゃっていたので、楽しみです。
年末にでも見てみようと思います。

開始前のプロジェクタとデモ用の持ち込みパソコン接続チェック時には画面が写らないというハプニングがあり、たくさんの方にお手数をおかけしました。ご対応いただき、ありがとうございました。電源をはずしてバッテリー駆動をしていたことが原因だったようです。

発表終了後にデモをやらせてもらったところ、娘さんがLEGO教室に通っているからと興味を持っていただいた方とお話することができました。それとセミナーを受講されていた方の中に私もRobotics Studioをやってみようと思っていたんだという方がいらっしゃったのですが、時間がなくてあまりお話できなかったので、またお会いする機会があればお話してみたいです。

応募を決めたからできることもある

というのが今回参加してみた感想です。
聞く側から話す側になることで得られる気付きを持てることがライトニングトークの魅力の一つだと思います。

現在、以下日程で登壇者募集がされているようです。
ご興味あるかたは応募してみてはいかがでしょうか。

■ Tech Fielders セミナー 東京 [Weekend]セミナー詳細 & 登録サイト
日時: 2009 年 1 月 17 日 (土) 10:30-18:40
ライトニング トーク : 16:40-17:40
エバンジェリスト セッション : 10:30-15:15 「失敗しない分散 ID 管理 〜 ILM "2" のワークフローを使用したユーザー ID 管理の自動化」

場所: マイクロソフト株式会社 新宿本社 5F セミナールーム
応募締切: 1 月 6 日 (火)
発表資料締切: 1 月 13日 (火)

今回も反省点が盛りだくさんの発表となりました。。。(ρ_-)o


が、


今回発表したことで、一人でも多くの人にMicrosoft Robotics Developer Studio 2008 Express Edition (以下、RDS 2008 Express Edition)を知ってもらえるきっかけになったらいいなと思います。


来週土曜日のわんくま同盟 東京勉強会 #27では3回目のライトニングトークにチャレンジしてきます。
今回の教訓(?)を生かせるように頑張ります!

アトムの世紀 〜夢のロボット開発に挑む科学者たち〜

先週の爆笑問題のニッポンの教養FILE056:「誰がためのロボットか?」)を見た時に番組の最後で紹介されていたので、これは見たい〜(>_<)//と18日というのだけ覚えていてたので、そろそろ番組予約をしておこうかな〜と思ったら一覧を探してもどこにも見当たらない。。。

あ゛・・・
BSなんですね、これ・・・(/_;)/~~
見たかったな。。。(T_T)
再放送はいってもやっぱり見れないや。。。


そういえば、番組中に古田貴之さんもロボットに興味をもったきっかけが鉄腕アトムだったとおっしゃってました。
やっぱり多いんですね〜アトムファン。
古田さんが憧れていたのはアトムじゃなくて、天馬博士だったようですが。

ハイビジョン特集 フロンティア

  12月18日(木) 午後8時放送
 12月26日(金) 午後2時再放送

番組データ
・原題:ASTROBOY IN ROBOLAND
・制作年:2008年
・制作会社:Les Films d'Ici(フランス)

50年以上前に手塚治虫が生み出した究極のロボット「鉄腕アトム」が今、現実になろうとしている。人間と同じような能力や感情を持つ人間型ロボットの開発が急速に進んでいるのだ。その担い手となっているのは、アトムの活躍に胸を躍らせ、ロボット開発を夢見た科学者たちだ。
ホンダのアシモソニーのアイボだけではない高齢者の介護を行なうロボットや、絵を描いたり楽器を演奏したりするロボットの開発など、日本の科学者たちはロボット工学の未来を担い、世界の開発競争のトップを走り続けている。
ディレクターは、映画「ロスト・チルドレン」「デリカテッセン」などで監督・美術をつとめてきたフランスの奇才マルク・キャロ。人類の生活を大きく変えると言われる日本のロボット開発の最前線を斬新な演出で見せていく。

●アトム開発の夢を追う科学者たち
50年以上前、漫画家・手塚治虫が生み出した「鉄腕アトム」。この究極のロボットには、科学の未来が詰まっていた。日本の開発現場で活躍する科学者の多くは幼い頃、「鉄腕アトム」に憧れ、ヒューマノイド開発の道を選んだという。夢のロボット開発に挑む科学者たちを追う。

●日本で次々に生み出される人間型ロボット
数万体を売上げた「アイボ」や二足歩行ロボット「アシモ」だけではない。楽器を演奏したり、絵を描いたり、高齢者の介護を行なうロボットなど、次々に新しいロボットが登場している。さらには、人間の神経と機械の手などをつなげるサイボーグ研究など、日本は世界のロボット研究開発競争のトップを走り続けている。

●マルク・キャロの斬新な映像演出
奇才マルク・キャロは巨匠ジャン・ピエール・ジュネと長年コンビを組み、「ロスト・チルドレン」「デリカテッセン」は共同で監督。「エイリアン4」では美術のスーパーバイザーを担当するなど、世界が注目する奇才だ。この番組でも、CG合成技術を使った高い美的センスの映像で、人間型ロボットの世界を描いている。

ASP.NETにおけるイベントドリブンモデルとページライフサイクル(後編)

前編に引き続き、後編の公開です。

前編に比べて後半、いきなりボリュームがアップしたような。。。
ASP.NETで開発する上では知っていて当然のことなんでしょうけど、
ページライフサイクルの段階の順番とか、すらすらでてくるようになるまでにはまだまだかかりそうです。。。

ここは今更と言わずじっくりと復習してみてはどうでしょうか。

はい。復習します。
というか学習します。。。

次回も引き続き ASP.NET の基礎である ViewState や Session といった部分に触れていきたいと思います。

ASP.NETシリーズが続くようです〜
楽しみです〜

                                                            • -

以下、あとで調べやすいように見出しをメモ。
項目を見たとき、ぱっと自分なりの答えが出せるようになりたいです。

  • サーバー側でのイベントの解釈
  • ASP.NET のアプリケーションライフサイクル
  • アプリケーションドメインとは
  • アプリケーションパイプラインの実行
  • ASP.NET のページライフサイクル
  • Changed 系イベントはいつ起こる?
  • [コラム] IHttpModule と MVC フレームワーク
  • ApplicationManager クラス
  • HostingEnvironment クラス
  • HttpResponse クラス
  • HttpContext
  • HttpApplication クラス
  • IHttpHandler
  • Page クラス
  • Trace="true"
  • Trace.Write
  • IHttpModule
  • アプリケーションの実行ステップ
    1. BeginRequest(開始)
    2. AuthenticateRequest(認証)
    3. AuthorizeRequest(承認)
    4. ResolveRequestCashe(キャッシュ解決)
    5. MapRequestHandler(ハンドラの割り当て)
    6. AcquireRequestState(状態の取得)
    7. RequestHandlerExecute(ハンドラの実行)
    8. ReleaseRequestState(状態の解放)
    9. UpdateRequestCashe(キャッシュの解放)
      1. SendRequest(要求の送信)
      2. EndRequest(終了)
      3. LogRequest(要求ログ)
      4. UpdateRequestCash(キャッシュの解放)
  • ページの実行ステップ
  • ページライフサイクルの段階
    1. PreInit(ページの初期化設定)
    2. Init(コントロールの作成)
    3. InitComplete(View追跡の開始)
    4. LoadState(Viewの復元)
    5. ProcessPostDataFirst(送信データの読込)
    6. PreLoad(構成の開始)
    7. Load(ページの構成)
    8. ProcessPostDataSecond(動的コントロールの読込)
    9. ChangeEvents(変更系イベント)
    10. PostBackEvents(ページのPosotBackイベント)
    11. LoadComplete(構成の完了)
    12. PreRender(描画の設定)
    13. PreRenderComplete(全てのPreRender囚虜う)
    14. SaveState(ステートの保存)
    15. Render(ページの書出)
    16. Unload(ページの解放)

RDS 2008 Express Editionのインストールの注意点

書籍などにも書かれていることなので、その通りにすすめると問題ないと思うのですが、Microsoft Robotics Developer Studio 2008 Express Edition (以下、RDS 2008 Express Edition)をインストールする前にはVisual Studio 2008(もしくはVisual Studio 2005やVisual C# 2008 Express Edition)をインストールしておくことをお勧めします。

今回、手順を間違えて先にRDS 2008 Express Editionをインストールしてしまったところ、途中でMicrosoft .NET Compact Framework3.5のインストールがされていないとエラーメッセージが表示され、余計な手間が増えてしまいました。

以下、その流れをまとめたものです。


今回、インストールしたマシンのスペックは以下の通りです。

NEC Lavie LL770/B

OS:Microsoft Windows XP Home Edition Version 2002 Service Pack 3
CPU:Intel(R) Celeron(R) M processor 1.3GHz
メモリ:736 MB RAM

ディスプレイアダプタ:ATI MOBILITY RADEON 9110 IGP


今回はRDSをダウンロードするだけで1時間近くかかってしまいました。

そして、またもや.NET Framework 3.5 SP1のインストール長すぎです。。。
インストール開始から6時間半近くたっても残り20分程度あって驚きました。。。
(それまでVisual Studioなど一度もインストールしたことのないパソコンだったという点も影響があったかと思いますが。)

そこからさらに2時間後、終わったかと思えばMicrosoft .NET Compact Framework3.5がインストールされていないというエラーメッセージが。。。


よくよくみると、InstallShield Wizardの中にMicrosoft .NET Compact Framework3.5
の項目が増えてました。。。

参考までに先にVisual Studio 2008(もしくは2005)がインストールされているマシンへRDS 2008を
インストールした時のInstallShield Wizardはこんな感じです。

詳細はこちらを参照して下さい。



そこでこちらから、Microsoft .NET Compact Framework3.5をダウンロードしてきました。
これまたダウンロードだけで45分程度 + インストールに15分程度かかってしまいました。。。(;_;)

そして、ようやく最後のMicrosoft CCR and DSS Runtime 2008をインストールで完了です。

長かった。。。

VPLのバージョンは以前と同じようなので、今回の検証ではData Publishedの謎(?)は結局わかりませんでした。


今回インストールしたバージョン

前回インストールしたバージョン



この後、VSEを起動して、(RDS 2008をインストールしたフォルダ)\Microsoft Robotics Dev Studio 2008 Express\samples\VPLTutorials\Tutorial1にあるHello Worldを実行できることが確認できましたが、Visual Studio類をインストールしないで使用することは可能かは不明です。

VisualStuio類はサービスを作成時に必要となるのでインストールは必須かと思いますが、VSEをちょっと試してみたい時(そんな場合があるかはわかりませんが。。。)はこの方法でも大丈夫かもしれません。(今回、私はそのつもりでした。)
ただ、その後やはりVisual Studio類のインストールが必要になったという場合に不具合が起きないという保証はないのでご注意下さい。

この後、Visual C# 2008 Express Editionをインストールしてみるつもりなので、何か不具合が出てきたらまたまとめてみたいと思います。
(が、今回インストールしたパソコンはVSE実行のスペックを満たしていない為、シミュレーションが実行できないので、あまり参考になるような例は挙げられなさそうです。。。。)

VSE実行のスペックについての詳細はこちらを参照して下さい。

VSEを実行スペックを満たしていないPCで起動した場合の検証

前回の続きで以下のようなVSE実行に必要なスペックを満たしていないパソコンでVSEを起動するとどうなるかを検証してみました。

Microsoft Robotics Developer Studio 2008 Express Edition (以下、RDS 2008 Express Edition)ではVisual Simulation Environment(以下、VSE)実行のためにグラフィックス カードは頂点シェーダ VS_2_0 以降またはピクセル シェーダ PS_2_0 以降がサポートされている必要があるようです。

今回、確認に使用したマシンのスペックは以下の通りです。

NEC Lavie LL770/B

OS:Microsoft Windows XP Home Edition Version 2002 Service Pack 3
CPU:Intel(R) Celeron(R) M processor 1.3GHz
メモリ:736 MB RAM

ディスプレイアダプタ:ATI MOBILITY RADEON 9110 IGP

普段何も手をいれていないパソコンにRDS 2008 Express Editionをインストールしようとするのはかなり大変です。。。。
ネットワーク環境やパソコン性能の依存が大きいとは思いますが、私はVSEでHello,WorldのサンプルVPLを実行してみるまでになんと合計14時間近くかかりました。。。
(途中、運悪く(?)Windows Updateと重なってしまい、2時間半くらい待ちぼうけをくらったせいもあるのですが。。。)

まずはRDS 2008 Express Editionをインストールしました。詳細はこちら。

今回、RDS 2008 Express Editionをインストールしたパソコンは


  • Maximum Vertex Shader: VS_1_1
  • Maximum Pixel Shader: PS_1_4

と、VSE実行スペックを満たしていませんでした。
そこで、

スタート → すべてのプログラム → Microsoft Robotics Developer Studio(RDS)2008 Express Edition → Visual Simulation Environment 2008 Express → Lego NXT Tribot Simulation

を実行したところ、紫色の画面はでませんでしたが、色合いが悪く、ボタンを押してみてもLegoは動きませんでした。


また、(RDS 2008をインストールしたフォルダ)\Microsoft Robotics Dev Studio 2008 Express\samples\VPLTutorials\Tutorial1にあるHello Worldは実行可能であることが確認できました。

が、この時に気になったのがVPL上で'Simple Dialog'ブロックのところに

Service 'Simple Dialog' was not found.

という!マークが表示されていた点です。


試しにServices欄で"simple"というキーワードで検索してみたところ、"Simple Dialog"は存在していました。

また、再度、VPLを起動してみたら今度は

No services found.

となり、Services欄に一つもサービスが表示されなくなったり、(これはしばらくするとサービス一覧が表示されるようになったので、処理に時間がかかっていただけかもしれません。)

前回のような"DirectionDialogt"ブロックとNXTのマニフェストファイルを使ったVPL図を作成しようとしたところ、(あ゛・・・また、Dataブロックのパラメータ指定を間違えてました。。。(ρ_-)o「Forwards」ではなくて「Name」にしないと。)"Simulated Generic Differential Drive"が見つからなかったり。

どうも動作が不安定なようです。

これらが事前にVisual Studio類のインストールをせずに先にRDS 2008 Express Editionをインストールしてしまったことが原因なのかを検証するため、次回はVisual C# 2008 Express Editionをインストールしてみます。
(なんとなく、マシンスペック条件を満たしていないことが原因なような気がしますが。。。)

  • 結論

VSE実行時に紫色の画面がでてしまうのは恐らくスペックを満たしていないことが原因だと思っていたのですが、場合によってはそういう現象になるかもしれないとしか言えない結果となりました。

VSEでシェーダバージョンを確認する方法

Microsoft Robotics Developer Studio 2008 Express Edition (以下、RDS 2008 Express Edition)ではVisual Simulation Environment(以下、VSE)実行のためにグラフィックス カードは頂点シェーダ VS_2_0 以降またはピクセル シェーダ PS_2_0 以降がサポートされている必要があるようです。

RDS 2008 Express Editionをインストール後、自分の使用しているパソコンのグラフィックスカードのサポートバージョンを調べたい時は以下のような方法があります。


1.VSEを起動する。

VSEの正式(?)な起動のさせ方がまだよくわかっていませんが、例えばVPLを起動後、前回作ったようなシミュレーション機能を使う簡単なVPL図を実行させてもよいですし、またはRDS 2008 Express Editionインストール時に付属されているシミュレーションのサンプルを実行するのが一番簡単かもしれません。

スタート → すべてのプログラム → Microsoft Robotics Developer Studio(RDS)2008 Express Edition → Visual Simulation Environment 2008 Express → お好きなファイル(今回はLego NXT Tribot Simulationを指定)

2.メニューバーからhelp → About Visual Simulation Environment 2008 Express

すると、以下のようなダイアログが表示され、使用グラフィックスカードのサポートされているVertex Shader(図の赤線部分)バージョンとPixel Shader(図の青線部分)バージョンを確認することができます。(下が欠けているのはこれも日本語OSを使っているせいなのでしょうか。。。)



私の環境は

  • Maximum Vertex Shader: VS_3_0
  • Maximum Pixel Shader: PS_2_0

だったので、VSEの実行条件をクリアしていたようです。

昨日、いただいたコメントによると、(恐らく)グラフィックス カードが対応していない場合はVSEの起動時に画面が紫色になってしまうようです。


以前、赤色のエラー画面が表示されたときは、対応しているグラフィックスカード搭載のパソコンを利用していましたが、ドライバが正しくインストールされていなかったことが原因だったので、この現象とはやや異なりますね。

試しに(恐らく)対応していない(であろう)パソコンで実行するとどうなるか、確認してみようと30分前ほどからRDS 2008 Express Edition のダウンロードを始めたのですが、残りが1時間8分からすすみません。。。(;_;)
ついでにこのData Publishedの謎(?)も解けたらラッキー。

あとはVertex ShaderとPixel Shaderがなんなのかもよくわかっていないので、調べてみようと思います。