RDS 2008 Express Editionの基礎知識
RDS 2008 Express Editionの基礎知識として、メッセージ、サービス、CCR、DSS、ビジュアルプログラミング、シミュレーション環境、ロボットアプリケーションの作り方について説明します。
メッセージとサービス
例えば、PCに接続されたXbox用のゲームコントローラのスタートボタン(A)を押して、ロボット(B)を動かす例を考えてみます。この時、AからBへの「スタートボタンが押されました」、またBからAへの「ロボットを起動します」のような情報をメッセージと呼びます。あるメッセージに対してメッセージを返す機能をサービスと呼びます。RDS 2008 Express Editionはこのようなメッセージのやりとりをネットワークを介して行います。

CCRとDSS
ロボットの動作には走りながら色を判別したり、障害物を検知したり、人を感知したら停止させたりなど、複数動作の非同期処理が必要となってきます。RDS 2008 Express Editionではこれらのサービスの並列実行のスケジューリングを「Concurrency and Coordination Runtime」(以下、CCR)と呼ばれるランタイムで行い、「Decentralized Software Services」(以下、DSS)と呼ばれる実行エンジン上でサービスを実行します。
DSSとロボットの配置の関係は次のように大きく2つに分類されます。
- DSSがロボットの中にある場合
- DSSがロボットの外にある場合
1.は産業用ロボットのような大型なロボットで、コントローラにOSとしてWindowsが搭載されている場合などがあげられます。

2.は卓上を二足歩行できるような小型のロボットなど、Windowsをインストールすることができない環境の場合、パソコン上にDSSを配置してワイヤレス通信することでパソコンとロボットを接続します。本稿では後者について扱います。
ビジュアルプログラミング言語
RDS 2008 Express EditionではVisual Programming Language(以下、VPL)と呼ばれる、処理の流れの記述をビジュアルに行える開発環境および、言語が用意されています。
[スタート]-[すべてのプログラム]-[Microsoft Robotics Developer Studio 2008 Express]-[Visual Programming Language 2008 Express]を選択すると、Visual Programming Languageエディタ(以下、VPLエディタ)が起動します。下記にVPLエディタの画面構成図を示します。
中央の「ダイアグラム領域」に左上の「アクティビティ一覧」や左下の「サービス一覧」から選択したブロックをドラック&ドロップで配置し、ブロック同士を接続することで容易に処理の流れを記述することができます。その際にサービスをつなぐものをアクティビティと呼び、例えば条件式による条件分岐を行う「If」や、2つのデータを結合する「Join」などが用意されています。具体的な使い方については次回以降で説明します。
シミュレーション環境について
RDS 2008 Express EditionではVisual Simulation Environment(以下、VSE)というシミュレーション環境が付属されており、VPLエディタで作成したロボット制御プログラムをシミュレーション実行することができます。このようにロボット本体を持っていなくても、手軽にロボット制御を体験することができます。
図5にRDS 2008 Express Editionの対応ロボットの一つであるLEGO MINDSTORM社のNXTを用いた場合のシミュレーション環境の実行結果を示します。シミュレーション環境の具体的な使い方については本連載の後半で解説予定です。
ロボットアプリケーションを作るには
RDS 2008では人型や動物型だけではなく、ネットワークに対応していれば家電製品などもロボットとして制御することができます。それでは、それらを制御するアプリケーションを作成するにはどうすればよいのでしょうか。以下に簡単に手順をまとめます。
- サービスをC#やVisual Basicなどで作成
- ロボット制御プログラミングをVPLやC#などで作成
- シミュレーション環境および実機での実行
ロボット制御プログラミングは1.で作成したサービスや、あらかじめ用意されているサービスをアクティビティを使って組み合わせて制御フローを作るようなイメージです。
ただし、1.には、別途、Microsoft Visual C# 2008 Express EditionやVisual Studio 2008 シリーズのインストールが必要です。今回はサービスの作成は取り扱わないので、これらのインストールは不要です。
本連載では主にあらかじめ用意されているサービスを利用することで、手順2.以降のVPLを用いたロボット制御プログラミングおよびシミュレーション環境を用いたロボット制御を取り上げていきます。



