はじめに
第3回ではXbox 360のコントローラを用いてシミュレーション環境でロボットを制御する方法、および標準付属以外のシミュレーション環境の紹介をしました。今回は、Visual C# 2008 Express Editionを用いたサービスプログラムの作成手順を説明します。サービスプログラムプロジェクトのテンプレートを使って、簡単なコンソールに文字列を出力するプログラムを作成するところから、作ったサービスのVPLでの利用方法、またロボット制御での使い方の例について取り上げます。
対象読者
- Microsoft Robotics Developer Studio 2008 Express Edition(以下、RDS 2008 Express Edition)に興味のある方。
必要な環境と準備
- RDS 2008 R2 Express Edition
第1回を参考にインストールしてください。
- Visual Studio 2008またはVisual C# 2008 Express Edition
対応OSは、Windows Vista/XPです。本稿ではWindows Vistaで検証しています。また、シミュレーション環境を使用する場合はグラフィックスのシェーダバージョンが2.0以上でなければ正常に動作しないので注意してください。
サービスの作成
第1回で、簡単なロボットアプリケーション作成の手順を説明しました。
- サービスをC#やVisual Basicなどで作成
- ロボット制御プログラミングをVPLやC#などで作成
- シミュレーション環境および実機での実行
前回まではVPLを用いて、あらかじめ用意されているサービスをアクティビティを組み合わせて制御フローを作成し(2.)、Xbox 360のコントローラを使ってシミュレーション環境(VSE)でロボット(レゴマインドストーム)の動きを確認(3.)してきました。
今回は、1.にあたるサービスについてとりあげます。
図1にサービス実行時の概念図を示します。
RDS 2008 R2ではネットーワークを介したメッセージの受信と送信を繰り返しにより、処理(サービス)を実行します。その際のノードに当たるのが、「Decentralized Software Services」(以下、DSS)です。ポートとは、サービスがメッセージを受け取る場所で、ポートを複数まとめたものをポートセットと呼びます。ハンドラにはメッセージに対してどのような処理を行うかを記述し、それぞれのタスクを実行します。
RDSのテンプレートを使ってHello Robotics Studio!!
ここではVisual C# 2008 Express Edition (Visual Studio 2008も同様)を用いて、簡単なコンソールに文字列を出力するプログラムをもとに、サービスプログラムプロジェクトのテンプレートの中身を解説します(サンプルプログラム:DSS Service1)。