• 検索結果がありません。

Microsoft Word - AHRTC_Manual.docx

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft Word - AHRTC_Manual.docx"

Copied!
19
0
0

読み込み中.... (全文を見る)

全文

(1)

エアホッケーロボットシステム RTC 群 説明書

電気通信大学大学院 情報システム学研究科 情報メディアシステム学専攻 知能システム学講座 佐藤 雄也 [目次] 1. システム概要 2. エアホッケーロボットの構成 2.0 エアホッケー台の寸法 2.1 ロボットアーム 2.2 高速カメラ 2.3 測域センサ 2.4 各センサ・アーム制御用計算機 3. ソフトウェア構成 4. ソースコードのディレクトリ構成およびコンパイル方法 5. エアホッケーシステム RTC の説明 5.1 AHCommonData(共有データ管理 RTC) 5.2 HockeyArmController(ロボットアーム制御 RTC) 5.3 PuckTracker(パック位置検出 RTC) 5.4 MalletTracker(マレット位置検出 RTC) 5.5 AHAttack(対戦アルゴリズムのサンプル RTC) 6. システムの使用方法 7. その他 RTC の説明 7.1 AHViewer(アーム手先位置、マレット位置、パック位置表示 RTC) 7.2 AHLogger(対戦状況のログ取り RTC) 7.3 AHLogPlayer(ログの再生 RTC)

(2)

1. システム概要 本システムは、電気通信大学知能システム学講座に設置されているエアホッ ケーロボット上に対戦アルゴリズムを実装し、動作させるための RTC 群です。 本 RTC 群は、ロボットアームの制御機能、パックの位置検出機能、ロボットの 対戦相手が持つマレットの位置検出機能を提供しており、これらの情報を用い て動作する対戦アルゴリズムを開発することができます。 本 RTC 群を用いることで、対戦アルゴリズムを 1 つのコンポーネントとして 実装することができるため、他の対戦アルゴリズムとの比較や対戦アルゴリズ ムの開発を促進します。 図 1.1 エアホッケーロボットシステムの全体図と RTC 接続例

(3)

2. エアホッケーロボットの構成 エアホッケーロボットシステムの構成図を図 2.1 に示します。本システムは、 パックを打つためのロボットアーム、パックを検出するための高速カメラ、マ レットを検出するための測域センサで構成されており、これらの制御を行う計 算機が全体を統括しています。以下、エアホッケー台の寸法や、図 2.1 の各構 成要素について説明します。 図 2.1 システム構成図 2.0 エアホッケー台の寸法 エアホッケー台の寸法は、図 2.0.1 の通りです。 図 2.0.1 エアホッケー台の寸法

(4)

2.1 ロボットアーム

ロボットアームは水平2関節で構成されています。X 軸(肩)は 400W のモー ター(MSM041A1, Panasonic)を減速比 1:25 にて、Y 軸(肘)は 100W のモータ ー(MSM011A1, Panasonic)を減速比 1:15 にて駆動させています。なお、各モ ー タ ー の ド ラ イ バ に は 、 そ れ ぞ れ MSD041A1XX(Panasonic) 、 MSD011A1XX (Panasonic)を用いています。ロボットアームの手先には、専用のマレットを ばねで押しつけるように装着しており、ホッケー台の歪みに関係なくパックを 打ち返せるようになっています。 図 2.2.1 ロボットアーム 図 2.2.2 モータードライバ等の配線

(5)

2.2 高速カメラ パ ッ ク の 位 置 を 検 出 す る た め 、 ホ ッ ケ ー 台 上 部 に 高 速 カ メ ラ (MV-D640C-66-CL-10, Photonfocus)を設置しています(図 2.2.1)。本カメラ は 120fps で動作しており、パック位置の高速な検出を可能としています。 図 2.2.1 ホッケー台上部の天井に設置した高速カメラ 2.3 測域センサ 対戦相手が持つマレットの位置を検出するために、ホッケー台のセンターラ イン横に測域センサ(UTM-30LX, 北陽電機)を設置しています(図 2.3.1)。本 センサを使い、マレットの位置を毎秒 40 回検出しています。 図 2.3.1 ホッケー台横に設置した測域センサ

(6)

2.4 各センサ・アーム制御用計算機 ロボットアームや各種センサの制御、対戦アルゴリズムを動作させる環境と して、デスクトップ PC を 1 台配置しています。本計算機の構成は以下の通りで す。なお、基本ソフトやインストールされているライブラリ等、ソフトウェア の具体的な構成については第 3 章で説明します。 表 2.4.1 デスクトップ PC の構成

(7)

3. ソフトウェア構成 本章では、エアホッケーロボットシステムを動作させている計算機のソフト ウェア構成について説明します。本計算機上で動作している基本ソフトを表 3.1 に示します。 表 3.1 基本ソフト また、各 RTC を動かすために必要なライブラリ・ドライバを表 3.2 に示します。 測域センサの制御には SCIP2 ドライバ、高速カメラの制御には GPG-5300 ドライ バ、モータードライバの制御には PEX-361316 ドライバを使用しています。 表 3.2 主なインストール済みライブラリ・ドライバ

※1 SCIP2 ドライバ(libscip2awd)は、筑波大学 知能ロボット研究室「Robot Platform Project」にて提供されているものを利用しております。 http://www.roboken.esys.tsukuba.ac.jp/platform/ ※2 GPG-5300 および PEX-361316 各ドライバは、株式会社 Interface 社にて提供されてい るものを利用しております。 http://www.interface.co.jp/

(8)

4. ソースコードのディレクトリ構成およびコンパイル方法 本 RTC 群のディレクトリ構成は以下のような構成になっています。 表 4.1 ディレクトリ構成

(9)

5. エアホッケーシステム RTC の説明 本章では、エアホッケーシステムを動作させるために必要な RTC について説 明します。なお、すべての RTC の入出力(サービスポートを除く)は 2 次元の 座標系(x,y)を表しており、TimedDoubleSeq 型、要素数:2、単位:mm となっ ています。 5.1 AHCommonData(共有データ管理 RTC) ホッケー台の寸法やパック・マレットの直径等、各 RTC 間で共有すべきデー タをサービスポートにより提供する RTC です。なお、サービスポートでやりと りするための IDL ファイルは common/AHCommonDataService.idl に存在します。 図 5.1.1 AHCommonData 表 5.1.2 コンフィギュレーション変数 本 RTC が Activate 状態になると、コンフィギュレーション変数の common_data で指定されている INI ファイルを読み込み、共有データを提供する準備を行い ます(INI ファイルの記述例は図 5.1.3 の通りです)。 本 RTC から共有データを受け取るには、getData()オペレーションを使用しま す。例えば、図 5.1.3 における HockeyParam セクション内の TableWidth(ホッ ケー台の幅)パラメータ 1408.0 を取得したい場合、サービスポートに対して getData("HockeyParam.TableWidth", data) と要求します。ここで、変数 data は文字列型(C++の場合、CORBA::String_var) です。このように要求すると、引数 data に文字列型としてデータ "1408.0" が

(10)

格納され、getData()は戻り値として true が返されます。なお、データが見つ からない場合は、引数 data に空文字列 "" が格納され、getData()は戻り値と して false を返します。

[HockeyParam]

; measurements of air hockey objects TableWidth = 1408.0 TableDepth = 2290.0 PuckD = 85.0 ; hockey arm ArmLenX2Y = 557.0 ArmLenY2M = 322.0 ArmOffsetY = 203.0 RMalletD = 100.0 ; player PMalletD = 100.0 ; Top-URG URGPosX = -724.0 URGPosY = 0.0 URGRotTh = 0.02094395102 図 5.1.3 共有データの記述例(デフォルトの AHData.ini)

(11)

5.2 HockeyArmController(ロボットアーム制御 RTC) ロボットアームの手先位置を移動するための RTC です。本 RTC に対し、移動 先のアーム手先位置(x,y)を入力すると、その座標までロボットアームの手先を 移動します。なお、本 RTC が以前に入力された手先位置に向けてアームを移動 している途中でも、再度手先位置を入力した場合、すぐにその新しい手先位置 に向けて移動を開始します。 また、本 RTC は Activate 状態の間、ロボットアームの移動中・停止中に関係 なく、現在のアーム手先位置(x,y)を出力し続けます。対戦アルゴリズム RTC で フィードバックが必要な場合などに使用することができます。 図 5.2.1 HockeyArmController 表 5.2.2 コンフィギュレーション変数

(12)

5.3 PuckTracker(パック位置検出 RTC) パックの位置を検出し、その座標(x,y)を出力する RTC です。パックの位置検 出にはパーティクルフィルタ※を用いています。デフォルトでは HSV 色空間を用 いて赤色のパックを検出しますが、コンフィギュレーション変数にて他の色を 検出するようにしたり、RGB 色空間を用いて検出するようにしたりできます。 図 5.3.1 PuckTracker 図 5.3.2 コンフィギュレーション変数 ※ 本 RTC 内で用いているパーティクルフィルタについては、以下のページをご参照願いま す。 http://opencv.jp/sample/estimators.html

(13)

5.4 MalletTracker(マレット位置検出 RTC) 対戦相手が持つマレットの位置を検出し、その座標(x,y)を出力する RTC です。 本 RTC は、対戦相手側の領域内にある物体のうち、円形(マレットの形)にな っているものをパーティクルフィルタにより検出し、もっともらしいマレット の座標を出力します。 図 5.4.1 MalletTracker 図 5.4.2 コンフィギュレーション変数 具体的な手順としては、まず対戦相手側の領域内にあるスキャン点のうち、 もっとも測域センサに近いものを探します。そして、そのスキャン点と測域セ ンサの 2 点を通る直線上を、センサと反対方向にマレットの半径分だけ進んだ 位置を中心としてパーティクルをばらまきます。次に各パーティクルから、先 ほどのスキャン点を中心とした他のスキャン点を含む点群までの距離の分散を 求めます。最後に、分散が小さいパーティクルほど尤度を高く与えパーティク ルの重み付き平均座標を求めることで、もっともらしいマレットの位置を求め ることができます。

(14)

図 5.4.3 マレットの検出イメージ 5.5 AHAttack(対戦アルゴリズムのサンプル RTC) これまでに説明した RTC 群を利用することで、対戦アルゴリズムを開発する ことができます。本 RTC は、対戦アルゴリズムの作り方のサンプルとして用意 したものです。入力として、5.2〜5.4 で説明したコンポーネントからの出力を 受け取ります(内部ではパックの座標しか使用していません)。また、パックを 打ち返すためにアーム手先位置を出力し、ロボットアーム RTC に対して指令を 出します。 図 5.5.1 AHAttack アルゴリズムは非常に単純で、パックがロボット側に近づいたときに打ち返 し動作をするというものです。基本的な動作としては、パックがロボット側に 近づいてくる際、パックの進行方向へアーム手先を動かし続け、ある程度まで 近づいたところで手先を前方に動かし、パックを打ち返すというものです。 具体的には、ホッケー台を縦に 3 分割し、パックがどの領域に存在するかで 処理を分けています。図 5.5.2 において、パックが①の領域にある場合は、ア ームの手先を待機位置(ゴール手前)に配置します。②の領域にある場合は、 先に述べたようにパックにあわせてアーム手先を動かし続けます。そして、③ の領域に達した際に、パックの移動方向とは逆方向にアーム手先を動かし、パ

(15)

ックを打ち返します。

図 5.5.2 AHAttack における領域の分け方

(16)

6. システムの使用方法 RTC 群の接続方法を図 6.1 に示します。接続後、RTC Builder における All Activate を押し、すべての RTC を Activate 状態にすることで、エアホッケーシ ステムが起動します。なお、HockeyArmController について、起動時にアームの 初期角度を調整する処理が行われるため、あらかじめアームを対戦相手側にま っすぐ伸ばした状態で RTC を起動してください。 図 6.1 RTC 群のつなぎ方

(17)

7. その他 RTC の説明 エアホッケーシステム(特に対戦アルゴリズム RTC)には直接関係しないもの の、システムの動作確認や、対戦状況のログ取りを行うための RTC が存在しま す。 7.1 AHViewer(アーム手先位置、マレット位置、パック位置表示 RTC) 各 RTC からアーム手先位置やマレット位置、パック位置が正常に出力されて いるかを確認する RTC です。ロボットのマレットは水色、対戦相手のマレット は青、パックは赤で示されます(図 7.1.2、画面上部がロボット側)。 図 7.1.1 AHViewer 図 7.1.2 動作中のスクリーンショット

(18)

7.2 AHLogger(対戦状況のログ取り RTC) 対戦状況(両者のマレットの動き、パックの動き)をログとしてファイルに 記録する RTC です。PuckTracker、MalletTracker、HockeyArmController からの 出力を入力とします。記録先のディレクトリはコンフィギュレーション変数に て設定できます。記録ログファイル名の形式は、以下の通りです。 パック座標 : LogPK_yyyyMMddHHmmss.log(例:LogPK_20130101012345) マレット座標 : LogPM_yyyyMMddHHmmss.log(例:LogPM_20130101012345) アーム手先座標 : LogRM_yyyyMMddHHmmss.log(例:LogRM_20130101012345) 図 7.2.1 AHLogger 表 7.2.2 コンフィギュレーション変数

(19)

7.3 AHLogPlayer(ログの再生 RTC)

AHLogger で記録したログを再生し出力する RTC です。コンポーネントを Activate 状態にすると、「input log date (yyyyMMddHHmmss) > 」と表示されま

す。再生したいログの日付・時間(例えば、7.2 節で説明した「20130101012345」) を入力し Enter を押すと、ログの再生が開始され、当時の対戦状況が各ポート から出力されます。 図 7.3.1 AHLogPlayer 表 7.3.2 コンフィギュレーション変数

図 5.5.2	
  AHAttack における領域の分け方

参照

関連したドキュメント

この問題に対処するため、第5版では Reporting Period HTML、Reporting Period PDF 、 Reporting Period Total の3つのメトリックのカウントを中止しました。.

線遷移をおこすだけでなく、中性子を一つ放出する場合がある。この中性子が遅発中性子で ある。励起状態の Kr-87

EU の指令 Restriction of the use of certain Hazardous Substances in Electrical and Electronic Equipment の略称。詳しくは以下の URL

膵管内乳頭粘液性腺癌、非浸潤性 Intraductal papillary mucinous carcinoma(IPMC), noninvasive 8453/2 膵管内乳頭粘液性腺癌、浸潤性 Intraductal papillary mucinous

2813 論文の潜在意味解析とトピック分析により、 8 つの異なったトピックスが得られ

Scival Topic Prominence

当社は、お客様が本サイトを通じて取得された個人情報(個人情報とは、個人に関する情報

類内膜腺癌 Endometrioid adenocarcinoma 8380/3 明細胞腺癌 Clear cell adenocarcinoma 8310/3 粘液型腺癌 Mucinous adenocarcinoma 8480/3 中腎性腺癌 Mesonephric