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

RSNP クライアントの実装を簡略化するための追加ライブラリ

N/A
N/A
Protected

Academic year: 2021

シェア "RSNP クライアントの実装を簡略化するための追加ライブラリ"

Copied!
2
0
0

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

全文

(1)

RSNP クライアントの実装を簡略化するための追加ライブラリ

An additional library for implement cost reduction of RSNP clients

加納 政芳

1

Masayoshi Kanoh

山本 悠策

1

Yusaku Yamamoto

中村 剛士

2

Tsuyoshi Nakamura

1

中京大学

Chukyo University

2

名古屋工業大学

Nagoya Institute of Technology

The Robot Service Network Protocol (RSNP) is a common platform for providing services with robots. Devel- oping a service in reference to RSNP costs its developers programs for server and robot control. In this paper, we propose an additional library for implement cost reduction of RSNP clients.

1. はじめに

近年,情報端末やネットワーク技術の発展,普及に伴い,様々 な情報へのアクセスが容易になった.ロボット分野において も,コンテンツの提供やセンサ情報の集約といったネットワー クを利用したサービスが提案されており

[1, 2, 3]

,今後,サー ビスが拡大していくと考えられる.ロボットを用いた様々な サービスを提供するための共通プラットフォームとして

Robot Service Network Protocol

RSNP

[4, 5]

がある.

RSNP

に 準拠して開発されたサービスは,

RSNP

が利用可能な全ての ロボットで使用できる利点がある.

RSNP

に準拠したサービスの開発には,それに準拠したサー バの構築,ロボットの開発および,サーバとロボット用のプロ グラム開発など,要求される技術が多岐にわたる.このよう にサービス開発には大きなコストがかかることから,サービ ス開発は敬遠されがちである.

RSNP

に準拠したサービス開 発の環境を改善する試みとして,文献

[6]

では,

RSNP Server

Container

を提案している.サーバ仮想化技術である

Linux

Containers

を利用して

RSNP

サーバ環境をゲスト

OS

として 提供することによって,

RSNP

に準拠したサーバを容易に構 築できるようにしている.文献

[7]

では,リアルタイム音声通 信のために

MultimediaProfile

を拡張し,リアルタイムで音声 データを通信可能にする機能を追加している.このようにサー ビス開発環境改善の試みは数多くなされているが,これまでに

RSNP

クライアントのプログラム開発を改善する提案は行わ れていない.そこで本稿では,

RSNP

クライアントのための サービス実装を簡略する追加ライブラリを提案する.本ライブ ラリは,サービスの開発に必要となる基本的な処理をパッケー ジとして提供するため,

RSNP

サービスの開発コストの削減 が見込める.

2. RSNP クライアント開発用ライブラリ

従来の

RSNP

ライブラリ構造では,複数のクラスにロボッ トの動作指示,サーバへの依頼送信やサーバからの依頼要求対 応といった処理を記述している.そのため,開発者にとって,

ソースコードの加筆修正箇所やデータ通信の流れがイメージし づらいといえる.これに対して提案ライブラリでは,サービス の開発に必要な接続・認証・切断といった基本的な処理をパッ ケージとして提供しつつ,簡易な実装を実現する.

連絡先

:

加納 政芳,中京大学,〒

466-8666

名古屋市昭和区八 事本町

101-2

ユーザプログラム

RSNPController

AcceptorProfileFa ctory_impl

RSNPConnect Data

Acceptor

AcceptorProfile FactoryBase

MultimediaProfile Base

Invoker

InvokerProfile Factory

Multimedia Profile RSNPライブラリ

提案ライブラリ

2 1

3 4

7

9

5 8

6

1:

提案ライブラリ

簡易な実装を実現するために,

RSNPController

クラス,

RSNPConnectData

クラス,

AcceptorProfileFactory impl

ク ラスを開発した(図

1

).

RSNPController

クラスは,接続・

切断や認証といった通信の管理と各プロファイルの利用処理を 行う.

RSNP

クライアントの開発者は基本的にこのクラスの みを用いてプログラムを開発すればよい.

RSNPConnectData

クラスは,通信に必要なデータおよび,サーバからの要求に 対する各プロファイルの応答処理を登録する.

AcceptorPro- fileFactory impl

クラスは,サーバからの要求に対する各プロ ファイルの応答処理を管理する.

1

の矢印は処理の流れを表しており,

1

4

はサーバか らの要求に対する処理,

5

6

はサーバからの要求に対する 各プロファイルの応答処理の管理,

7

9

は通信の接続・切断 や認証処理である.従来の

RSNP

ライブラリを用いたクライ アントの開発では,

1 2 3 5 7 8

をコーディングする必要が あるが,提案ライブラリを用いた場合は,

1

7

のみコーディ ングすればよい.なお,図

1

MultimediaProfile

を例にして いるが,他のプロファイルにおいても提案ライブラリは利用可 能である.

1

The 29th Annual Conference of the Japanese Society for Artificial Intelligence, 2015

3H4-NFC-03b-1

(2)

1: p u b l i c s t a t i c v o i d m a i n ( S t r i n g [] a r g s ) t h r o w s I O E x c e p t i o n { 2: if ( a r g s . l e n g t h >= 3) {

3: r o b o t _ i d = a r g s [ 0 ] ; 4: p a s s w o r d = a r g s [ 1 ] ;

5: p o r t = I n t e g e r . p a r s e I n t ( a r g s [ 2 ] ) ;

6: }

7: S e r v e r S o c k e t s e r v e r s o c k = n e w S e r v e r S o c k e t( p o r t );

8: S o c k e t s o c k = n u l l ;

9: R S N P C o n t r o l l e r r s n p = n e w R S N P C o n t r o l l e r( epn , r o b o t _ i d , p a s s w o r d );

1 0 : r s n p . c o n n e c t ( ) ; 1 1 :

1 2 : t r y {

1 3 : if ( r s n p . _ i s C o n n e c t ( ) ) {

1 4 : l o n g c o n v _ i d = r s n p . g e t C o n v _ i d ( ) ;

1 5 : I C o n t e n t s _ p r o f i l e cp = r s n p . s t a r t C o n t e n t s _ p r o f i l e( n e w C o n t e n t s P r o f i l e B a s e ( ) ) ; 1 6 : I A s y n c C a l l B a c k c a l l b a c k = n e w I A s y n c C a l l B a c k () {

1 7 : @ O v e r r i d e p u b l i c v o i d d o E v e n t ( R e t _ v a l u e ret , b o o l e a n i s L a s t ) { 1 8 : C o n t e n t s P r o f i l e H e l p e r h e l p e r = n e w C o n t e n t s P r o f i l e H e l p e r ( r e t );

1 9 : S t r i n g m e s s a g e = h e l p e r . g e t D e t a i l ( ) ;

2 0 : }

2 1 : @ O v e r r i d e p u b l i c v o i d d o E x c e p t i o n( E x c e p t i o n e ) {}

2 2 : };

2 3 : cp . d i s t r i b u t e _ c o n t e n t s ( c o n v _ i d , "" , -1 , 0 , c a l l b a c k );

2 4 :

2 5 : M u l t i m e d i a _ p r o f i l e _ i m p l m p i = n e w M u l t i m e d i a _ p r o f i l e _ i m p l ( ) ; 2 6 : I M u l t i m e d i a _ p r o f i l e mp = r s n p . s t a r t M u l t i m e d i a _ p r o f i l e( m p i );

2 7 : mp . s t a r t _ p r o f i l e( c o n v _ i d );

2 8 : s o c k = s e r v e r s o c k. a c c e p t ( ) ; 2 9 :

3 0 : r s n p . d i s c o n n e c t ( ) ;

3 1 : s o c k . c l o s e ( ) ;

3 2 : s e r v e r s o c k. c l o s e ( ) ;

3 3 : } e l s e { }

3 4 : } c a t c h ( R S i E x c e p t i o n e ){

3 5 : e . p r i n t S t a c k T r a c e ( ) ;

3 6 : }

3 7 : }

2: RobotMain.java

の開発例

3. 開発例

本節では,

http://www.robotservices.org/wiki/jp

にお いて公開されているサンプルプログラム

RobotSample.zip

を 例にして,提案ライブラリを用いた場合のソースコードを示す.

RobotSample.zip

は画像送信サービスのサンプルプログラム

であるが,このサービスを実現するために,

AcceptorProfile- Factory impl.java

Multimedia profile impl

および,

Robot-

Main.java

3

つのソースコードを作成している.提案ライブ

ラリを用いた場合は,

AcceptorProfileFactory impl.java

は作 成せずに,

Multimedia profile impl.java

と同一のソースコー ドを用いて,

RobotMain.java

のみ書き換えることで同様の機 能を有したサービスを開発できる.図

2

に提案ライブラリを 用いた場合の

RobotMain.java

のソースコードを示す.

まず,

RSNPController

クラスをインスタンス化する(同 図

l.9;

1

7

).つぎに,

RSNPController

クラスのイン スタンスを通じてサーバへの接続およびロボットの認証を行 い,

conv id

を同インスタンスから取得する(

ll.10

14

15;

7

).そして,

MultimediaProfile

をインスタンス化し(

l.25;

1

),同プロファイルの開始処理を行う(

l.26; 7

).最後に,

RSNPController

クラスのインスタンスを通じてサーバとの接

続を切断する(

l.30; 7

).

以上の手続きによって容易にサーバとの通信管理と

Multi- mediaProfile

の利用ができる.

4. おわりに

本稿では

RSNP

を用いたサービスの実装を簡略化するため の追加ライブラリを提案した.本ライブラリを使用することで クライアント用のプログラムの開発が容易になり短時間でサー ビスの提供が可能になると考える.今後は,サーバ用の追加ラ イブラリの提案を行う予定である.

参考文献

[1]

ジメネスフェリックス,加納政芳:

RSNP

を用いた英単 語学習支援ロボットの開発

,

日本ロボット学会学術講演会

2012, 2B2-6, 2012.

[2]

牟田真介

,

山本悠策,加納政芳,中村剛士:動画からの特 徴的な表情抽出による高齢者の心の見守りシステム

,

日本 ロボット学会学術講演会

2012, 2B2-5, 2012.

[3]

石田真一

,

荻谷浩史,松日楽信人:ロボットサーフィンサー ビスの提案

,

日本ロボット学会学術講演会

2013, 3R3-05, 2013.

[4]

成田雅彦,村川賀彦,植木美和,中本啓之,日浦亮太,平野 線治,蔵田英之,加藤由花:普及期のロボットサービス基盤 を目指す

RSNP

Robot Service Network Protocol

2.0

の開発,日本ロボット学会誌,

vol.27

no.8

pp.857-867

2009

[5]

成田雅彦,村川賀彦:ロボット技術の標準化と

RSi

Robot Service Initiative

)の取り組み,日本ロボット学会誌,

vol.29

no.4

pp.353-356

2011

[6]

三浦秋人

,

小川康一

,

加藤由花:

RSNP Server Container

の提案

,

日本ロボット学会学術講演会

2013, 3R1-04, 2013.

[7]

大澤秀也,朝倉健介,小原範子,佐藤健,藤田尚宏,成 田雅彦:

RSNP

を利用したリアルタイム音声の実現

,

日 本ロボット学会学術講演会

2013, 3R2-02, 2013.

2

The 29th Annual Conference of the Japanese Society for Artificial Intelligence, 2015

参照

関連したドキュメント

2Tは、、王人公のイメージをより鮮明にするため、視点をそこ C木の棒を杖にして、とぼと

従って、こ こでは「嬉 しい」と「 楽しい」の 間にも差が あると考え られる。こ のような差 は語を区別 するために 決しておざ

本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot

タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

えて リア 会を設 したのです そして、 リア で 会を開 して、そこに 者を 込 ような仕 けをしました そして 会を必 開 して、オブザーバーにも必 の けをし ます

本文のように推測することの根拠の一つとして、 Eickmann, a.a.O..

太宰治は誰でも楽しめることを保証すると同時に、自分の文学の追求を放棄していませ