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

[5] Blue-Sky 2) GPIO SPI rqt graph[0] R [7] API Raspberry Pi CPU IoT rqt graph R Blue-Sky 3) pub/sub publisher R roscore R R[6][7] R publish/subscribe

N/A
N/A
Protected

Academic year: 2021

シェア "[5] Blue-Sky 2) GPIO SPI rqt graph[0] R [7] API Raspberry Pi CPU IoT rqt graph R Blue-Sky 3) pub/sub publisher R roscore R R[6][7] R publish/subscribe"

Copied!
6
0
0

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

全文

(1)

分散組込みシステム向き

Web

ベース開発環境

Blue-Sky

ROS

拡張

アモーン タ マ ウ ッ ト プラ ウ ィ ーン

1,a)

早川 栄一

2,b)

概要: 我々 が開発し ている 分散組込みシステム向きWebベース開発環境Blue-Skyから 、 ロ ボッ ト フ レ ー ムワ ークROS対応の各種デバイ スを 利用する ためにに拡張し た. Blue-Skyと ROSと では通信モデルが 異なる こ と から , Blue-Skyを 拡張し , ROSのpublish/subscribe通信を ハン ド リ ン グ可能にし た. ま た,

roscoreが持つ通信に関する 情報を 取得する こ と で, Blue-Skyと ROSのノ ード が混在し た環境において ,

両ノ ード の状態の監視や通信状態のト レ ースを 行う 事が可能にな っ た.

キーワ ード : CPS, IoT, Blue-Sky, Web, ROS,分散組込みシステム

ROS Extension of Blue-Sky Web based Development

Environment for Distributed Embedded Systems

Praween AMONTAMAVUT

1,a)

Eiichi HAYAKAWA

2,b)

Abstract: We extended Blue-Sky that we are developed, to support ROS that is a robotic framework, featuring the web based development environment for distributed embedded systems. The ROS is a framework based on publish/subscribe messaging model. Whereas, Blue-Sky has a different messaging model with ROS. In order to solve the problem, we extended Blue-Sky for enabling publish/subscribe messaging model of ROS , then we collect the messaging data from roscore in order to reduce the confusion among Blue-Sky and ROS nodes with tracing and monitoring the both nodes accessing status.

Keywords: CPS, IoT, Blue-Sky, Web, ROS, Networked Embedded System

1.

はじ めに

近年, CPS[1]やIoT[2]と いっ た, ネ ッ ト ワ ーク に 接続 さ れた複数の組込みデバイ スを 用いて セン サデータ の取得 や加工, 物理世界の操作な ど を 行う システムが数多く 登場 し て いる . こ れに伴い, 組込みシステムおよ びネ ッ ト ワ ー ク シス テム の両方に 精通し たエン ジニア の育成[3][4]が必 1 拓殖大学大学院工学研究科電子情報工学専攻

Takushoku University, Graduate School of Engineering, Electronics and Information Sciences

2 拓殖大学工学部情報工学科

Takushoku University, Faculty of Engineering, Department of Computer Science a) praween@hykwlab.org b) hayakawa@cs.takushoku-u.ac.jp 要と さ れて いる . 特に , 従来のシ ン プ ルな セ ン サやア ク チュ エータ だけ ではなく , 複数のセン サが搭載さ れたセン サボード や, ロ ボッ ト と いっ たデバイ スを 遠隔から 操作す る こ と も 行われて いる . こ のよ う な 状況に対し て , 拓殖大学工学部早川研究室で は, 分散組込みシステムの教育や開発を 対象と し たフ レ ーム ワ ーク である Blue-Sky[5]の開発を 行っ て いる . Blue-Sky は, IoTを 主な 対象と し て , Linuxが動作する 組込み機器 のマ シン 管理およ び監視システム と , 通信状態やマ シン の 監視を 行う ゲート ウ ェ イ , およ びWebブラ ウ ザベース の 開発環境を 提供する こ と で, イ ン スト ールのコ スト を 下げ つつ, 多く のマ シン の操作およ び管理を 可能にする フ レ ー ムワ ーク である . こ れを 用いて , 演習室など でのIoTの教 2016/3/24

(2)

育環境[5]およ びシステム開発を 行う こ と を 想定し て いる . し かし , Blue-Skyでは, 組込み機器に 搭載する デバイ スは, GPIOやSPIと いっ た低レ ベルなイ ン タ フ ェ ースへ ア ク セ ス するAPIだけ を 提供し て いる . こ れは, 当初の タ ーゲッ ト デバイ ス がRaspberry Piな ど のCPUボード であり , シン プルなデバイ スだけ を 対象と し て いたためで ある . し かし , 最近のIoTシステムでは, セン サボード や ロ ボッ ト など 高機能かつ複雑な デバイ スプロ グラ ミ ン グを 必要と する デバイ スを 扱う こ と も 増え て き て いる . こ のこ と から , Blue-Skyにおいて も , こ のよ う なデバイ スに対応 する 必要が出て き た. こ のよ う な 問題に 対し て , 我々 はロ ボッ ト ア プ リ ケ ー ショ ン 開発のフ レ ームワ ーク であるROS[6][7]に着目し た. ROSは, ハード ウ ェ ア抽象化機構, デバイ スド ラ イ バ, ラ イ ブラ リ 群, 可視化ツ ール, pub/subの基づいたメ ッ セー ジ通信, およ びパッ ケージ管理を 提供し , 複数コ ン ポーネ ン ト に お け る ア プ リ ケ ーシ ョ ン 開発を サポート し て いる オープン ソ ースプロ ジェ ク ト である . 現在, 多く のデバイ ス ベン ダがROS対応のラ イ ブラ リ を 公開し て いる こ と か ら , デバイ スに関する 複雑な プロ グラ ミ ン グを 行う こ と な く , セン サやアク チュ エータ , さ ら にはロ ボッ ト など を 利 用する こ と ができ る . そ こ で, 本研究の目的は, IoTの学習者を 対象と し て , Blue-Skyから ROS対応の各種デバイ ス を 扱え る よ う に , システム を 拡張する こ と である . ROSと Blue-Skyでは通 信のモデルが異なる こ と から , こ れら の違いを 吸収する 機 構を 設計実装し た. ま た, ROSおよ びBlue-Skyのノ ード が混在する 環境において, Blue-Skyが提供する 監視およ び 可視化システムを 利用でき る よ う にする こ と で, Blue-Sky の開発環境内でシステム全体での動作を 理解し やすく する こ と が可能にな っ た.

2.

ROS

本章ではROSについて 述べる . ROSは, ロ ボッ ト ソ フ ト ウ ェ ア の開発を 目的と し た フ レ ーム ワ ーク であ る . ROSは, コ ン ピ ュ テ ーショ ン を 行 う プロ セ ス であ る 各ノ ード を XML-RPC[8]ベース に おけ る publish/subscribe (pub/sub)通信する こ と に よ っ て 動 作する . 本報告で対象と する ROSのコ ン ポーネ ン ト は次の三つ である . 1) プロ ジェ ク ト の作成ツ ール群 作成ツ ール群はCMake マ ク ロ のビルド パッ ケ ージであ る catkin[9]のコ マ ン ド 群によ っ て ワ ーク スペースや複数階層で作成可能な パッ ケ ージと し て 構成さ れる . ROSパッ ケ ージはこ のマ ク ロ 群で宣言さ れたパッ ケ ージラ イ ブラ リ を 指定 する こ と によ っ て catkinによ る ビルド が可能である . こ れら のツ ール群やラ イ ブラ リ はシステム開発を 行う OS上にイ ン スト ールする 必要がある . 2) ノ ー ド の 可 視 化 ツ ー ル 可 視 化 ツ ー ル と し て は rqt graph[10]を 提供し て いる . ROSのノ ー ド [7]は 実行さ れて いる プロ セスのこ と を 定義し て いる . さ ら に , ROSはモジュ ール化さ れて いて , ノ ード はソ フ ト ウ ェ ア のモ ジュ ールや実行自体そ のも のと する こ と も 可能である . こ れで, rqt graphは各ROSのコ ン ピ ュ ーテショ ン と いう ノ ード の状態や通信間の繋がり を 可視する プラ グイ ン である .

3) pub/subの 通 信 を 処 理 す る publisher ROS は ,

roscore[11]と 呼ぶ基本的なプロ グラ ムやノ ード の集合 である . ノ ード 間で通信する 場合には,roscoreはROS のパッ ケージで作成さ れたプロ グラ ム やノ ード のデー タ を publish/subscribe(以下, pub/sub)のメ ッ セージ ン グ方式で収集し , “/rosout”[12]のト ピッ ク でロ グを publishする 機能を 持つ. ち な みに , pub/sub通信モ デルは, 非同期モデルであり メ ッ セージの送信者であ る publisherは受信者である subscriberの情報を 持た ずにメ ッ セージを 送る . subscriberは, publisherの情 報を 持たずに, 受信対象と なる ク ラ スだけを 指定し , そ のク ラ スのメ ッ セージだけ を 受け 取る . こ のため, 送 信者と 受信者と は疎結合であり , スケ ーラ ブルな シス テム を 作る こ と ができ る . 一つのROSの基に 作成さ れたすべて のプロ グラ ム群やノ ード の状態は, roscore から 取得する こ と が可能である .

3.

問題分析

我々 の開発し たフ レ ームワ ーク である Blue-Skyを ROS に適用する 場合の問題点は次のと おり である . 1) Blue-Skyと ROSと での提供する 機能の違い: ROSは, 各OSに 属する 言語のラ イ ブラ リ やそ のビ ルド シス テ ム ま で統合さ れた シス テ ム であ る . 一方,

Blue-Skyは, サーバが提供する Blue-Sky APIを 用い

て デバイ スの機能を 呼び出すこ と で, アプリ ケ ーショ ン を 構築し , 実行する . ROSのロ ボッ ト ア プリ ケ ー ショ ン から Blue-Skyの機能を ア ク セ ス 可能に する に は, 低オーバヘッ ド でこ の二つの仕組みを 繋ぐ 必要が ある . 2) Blue-Skyと ROSと の通信: ROSのノ ード の状態を 取得する 場合, roscoreと の通 信が必要と な る . roscoreと の通信は, pub/sub通信 モデルによ る が, Blue-SkyはHTTPによ る 通信を 基 本と し て いる こ と から , こ の二つの通信モデルを 変換 する 必要がある . Blue-Skyの開発観葉は, ブラ ウ ザ上 でJSONベース で通信を 行う た めに , ROSがベース に し て いる XML-RPCのデータ 形式を そ のま ま 扱う こ と ができ な い. ま た , Blue-Skyの開発環境[5]は, Javascriptを 利用し たブラ ウ ザアプリ ケ ーショ ン な の 2016/3/24

(3)

で, roscoreのXMLデータ 形式を 利用する こ と が難 し い. 3) Blue-Sky上でのROSの可視化のための拡張: ROSはrqt graphと 呼ぶ可視化ツ ールを 備え て いる が, 単一のツ ールであり , システムのイ ン スト ールや 設定が必要であり , 複数台数を 管理し なけ ればいけ な い教室環境において は管理コ スト が上がる . ま た, 複 数のツ ールを ま たいで利用する こ と は, 利用者の利便 性を 阻害する こ と にな る .

4.

設計方針

前章の問題分析に 対し て , 我々 が開発し たBlue-Skyの 環境を ROSに 適用可能に 拡張する こ と で対応する . 拡張 する 部分は次の2 点である . 1) Blue-Skyの開発ラ イ ブラ リ のROS拡張:

Blue-Skyで組んだIoTアプリ ケーショ ン から ROSの

ノ ード が提供する デバイ ス に 低オーバヘッ ド でア ク

セ ス でき る よ う に する . こ れに よ り , Blue-Skyから

ROSが提供する 高水準な APIを 備え たデバイ ス を 利

用する こ と が可能にな る .

2) Blue-Skyの可視ツ ールのROS可視ツ ール拡張:

Blue-SkyのWebベース開発環境でブラ ウ ザ上に

Blue-Skyのノ ード と ROSのノ ード の両方を 可視化可能に する. こ れによ り , 開発者や学習者は各ノ ード の状態 や通信を 監視する こ と ができ る . IoTでは, 多く の機 器の状態の監視や, 通信オーバヘッ ド によ る プロ グラ ムでの対応な ど が必要になる こ と から , そのよ う な課 題を 容易に行え る よ う にする .

5.

設計

5.1 全体構成 図1に シ ス テ ム の全体構成を 示す. 本報告では, 利用 者はBlue-Skyの開発環境およ びノ ード を 利用し , さ ら に そ こ から ROSが動作する ノ ード を 利用する こ と が可能に な る . Blue-Skyのサーバは, ROSと 通信を する た めに , Multi-purpose Handlerと 呼ぶプロ ト コ ル変換の機構を 実 装し た . こ の機構を 用いて , roscoreのト ピ ッ ク を ハン ド ルする こ と で, ROSノ ード のデータ を 取得する こ と が可能 にな る . そし て,ROSノ ード の状態は本システムのskycoder[5]で 可視化する . 可視化データ はJSON形式にする ため,

Blue-Skyサー バのMulti-purpose Handlersで , XML-RPCを

JSON-RPC[13]に変換する 機能を 追加する こ と で行う .

5.2 ROS-Blue-Skyプロキシ

Blue-Skyから ,ROSの各ノ ード を 呼び出すために,roscore

が動作する シス テム 上でBlue-Skyと の通信を 行う プロ キ シを 起動する . プロ キシは次の役割を 持つ. An App (Skycoder) An App (Skycoder) An App (Skycoder) ROS ROS node1 ROS node2 Blue-Sky ROSCORE Blue-Sky servers with gateways Subscription Topic

ED node Private Cloud Storage

Handling ROS of Blue-Sky

Blue-Sky API (Public or Private) ED node ED node ED node Proxy node Multi-purpose Handlers 図1 Blue-SkyのROS拡張モデル Fig. 1 ROS Extensional Model of Blue-Sky

• Blue-Skyから のト ピ ッ ク ア ク セ ス 要求を ROSの各

ノ ード への通信に置き 換え る

• ROSから 生成さ れたデータ を Blue-Sky gatewayに中

継する • roscoreに対し て , 各ノ ード の操作を 依頼する • ノ ード 名の管理 • 通信オーバヘッ ド の測定 プロ キシは, ROSのノ ード の一つと し て 扱われて いる . こ のよ う な 設計にする こ と で, 他のノ ード やラ イ ブラ リ を 変更する こ と な く , その機能を 利用する こ と ができ る . ま た, プロ キシは, pub/sub通信の時間情報を 取得し , それ を Blue-Skyへ送信する こ と でノ ード の通信オーバヘッ ド を 測定する .

# F l a s h i n g LED and getting the light # sensor data for 10 times . loop 10

lsn 1 7 2 . 1 6 . 4 . 1 0 3 gpio set 22 1 # EDの利用node sleep 300

lsn 1 7 2 . 1 6 . 4 . 2 2 2 get a 3 0 # EDの利用node sleep 600

lsn ros :// node0 / onLed #ノ ード の利用ROS sleep 600

lsn ros :// node0 / offLed #ノ ード の利用ROS sleep 600

end

図2 コ マ ン ド ラ イ ン によ る ROSノ ード へのアク セス例 Fig. 2 Example to access ROS node in command line interface.

/**

* F l a s h i n g LED and getting the light sensor data * for 10 times with API o r i e n t e d f u n c t i o n . */ for ( var i = 0; i < 10; i ++) { l _ s e n s o r n e t w o r k ( " 1 7 2 . 1 6 . 4 . 1 0 3 " , " gpio " , " set " , "22" , "1"); Sleep (300); l _ s e n s o r n e t w o r k ( " 1 7 2 . 1 6 . 4 . 2 2 2 " , " get " , " a " , "3" , "0"); Sleep (600);

l _ s e n s o r n e t w o r k (" ros :// node0 / onLed "); Sleep (600);

l _ s e n s o r n e t w o r k (" ros :// node0 / offLed "); Sleep (600);

}

図3 Javascriptによ る ROSノ ード へのアク セス例 Fig. 3 Example to access ROS node in Javascript

図2はBlueSkyから ROSノ ード を 利用する 例であ る .

(4)

skycoderのコ マ ン ド ラ イ ン から 利用する 場合, ros://ノ ー

ド 名/ト ピ ッ ク 名で, rosのノ ード と ト ピ ッ ク を 指定する .

例では, node0に おいて onLedと offLedと いう ト ピ ッ ク

がすでに 定義さ れて いる 場合は, Blue-SkyのEDノ ード と 同じ アク セスメ ソ ッ ド によ っ て アク セスする こ と ができ る . skycoderでJavascriptを 用いたプロ グラ ムの例を 図3 に示す. こ れも , Blue-Skyのノ ード と 同じ メ ソ ッ ド によ っ て アク セスする こ と が可能である . 5.3 roscoreから の情報取得機能 roscoreから 通信に関する 情報取得を 行う ために,

Blue-Skyサーバ上に Multi-purpose Handlersと 呼ぶハン ド ラ

を 提供する . 本機能はroscoreのXML-RPCのメ ソ ッ ド を

Blue-Skyサーバから 呼び出すために用いる .

<? xml v e r s i o n = ’1.0 ’? > < methodCall > < methodName > g e t S y s t e m S t a t e </ methodName > < params > < param >

< value > < string >/ rosnode </ string > </ value > </ param > </ params > </ methodCall >

図4 Multi-purpose Handlersに追加し たroscoreに対する ハン ド リ ン グRPCの呼び出し メ ゾッ ド

Fig. 4 Calling Method of RPC Handling Roscore Added to Multi-purpose Handlers. 図4にROSで用いるXML-RPCの呼出し メ ソ ッ ド 例を 示す. こ のデータ を 本サーバのハン ド リ ン グでroscoreに 渡し , ROSのノ ード XMLデータ を 取得する . そし て , 図 5のよ う にJSONのロ グに変換し , Blue-Sky上のスト レ ー ジへ格納し たり , skycoderに提供する . XML-RPC response data: <?xml version=’1.0’?> <methodResponse><params><param><value> <array><data><value><int>1</int></value> <value><string>current system state</string> </value>...</param></params></methodResponse>

converted to JSON-RPC

{‘‘ETLog’’:{‘‘ros’’:{‘‘jsonrpc’’:{‘‘jsonrpc’’: ‘‘2.0’’,‘‘result’’:{{‘‘params’’:{‘‘param’’:

{‘‘value’’:{‘‘array’’:{‘‘data’’:{‘‘value’’:[{‘‘int’’:1}, {‘‘string’’:’’current system state’’}...}}}}}

図5 Serializing the Response Data to JSON-RPC Fig. 5 応答データ を JSON-RPCに変換する. 5.4 ROSノ ード 可視ツ ールの設計 ROSノ ード に ついて も , Blue-SkyのEDノ ード と 同じ よ う に可視化可能なよ う に, skycoder上の可視化ツ ールを 拡張し た. ROSのノ ード を ブラ ウ ザ上で可視化する には, 本システムのMulti-purpose Handlersによ っ て変換さ れた JSON形式のROSノ ード データ を 取得し , 本シス テム で 扱っ ている 可視化ラ イ ブラ リ である visjs[14]のdataset[15] にマ ッ ピ ン グし た後にNetwork[16]可視化モジュ ールで表 示する . マ ッ ピ ン グオーバヘッ ド を 減ら すた めに , ROS ノ ード が起動さ れな いかroscoreが起動し て いな い場合は 可視化の処理を し な いよ う に設計する . こ れに よ っ て , ROSノ ード に 対し て も , 従来の可視化 ツ ールのよ う に開発環境上にイ ン スト ールする 必要な く 利 用する こ と が可能にな っ た.

6.

評価

本節は実現およ び評価について 述べる . 表1 ROS実験環境

Table 1 Environment for ROS Implement Experiment. System Name Specification Unit

ROS ・ indigo 1

GUEST OS ・ Ubuntu 14.04.3 LTS 1 HYPERVISOR ・ VMware Player v. “7.1.2” 1 NATIVE OS ・ Ubuntu 12.04.5 LTS 1

・ Intel(R) Core(TM) i7-2600  CPU @ 3.40GHz.

表1に 本シス テム の実装実験に おけ る ROS実験環境を

示す. ROSはindigoを 仮想マ シン に イ ン ス ト ールし , 次

の二つのワ ーク スペースを 作成する .

図7 rqt graph of ROS Fig. 7 ROSのrqt graph

• ワ ーク スペース1: nodenameのパッ ケージを 作成し nodenameと いう ノ ード 名を 初期化する std msgの標 準出力にメ ッ セージを 送信する アプリ ケ ーショ ン • ワ ーク スペース2: rosjavaのパッ ケージを 作成し , デ フ ォ ルト に 提供さ れて いる Talkerと Listenerのア プ リ ケ ーショ ン roslunchや roscoreを 起動さ せて , 各ワ ー ク ス ペー ス 2016/3/24

(5)

40 50 60 Ro u n d T rip T im e d ela y (RT T ) [m sec ]

RTT of Extensional Library of Blue-Sky for ROS

0 10 20 30 0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 Ro u n d T rip T im e d ela y (RT T ) [m sec ] 0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000

Flashing LED Time [msec]

図6 Blue-SkyのROS拡張ラ イ ブラ リ アク セスの往復遅延時間

Fig. 6 RTT of Flashing LED Execution of Extention Library of Blue-Sky for ROS

図8 Physical Embedded Device Nodes Fig. 8 物理的な 組込み機器のノ ード

のア プ リ ケ ーシ ョ ン を 起動する . こ こ で, 図7のよ う に

rqt graphでROSノ ード を 表示する .

Starting ROS

Starting ROS

図9 Blue-SkyのskycoderでROSノ ード の可視 Fig. 9 Visualizing the ROS Nodes with Skycode of Blue-Sky

そし て, 表2に示し たよ う にBlue-Skyのシステムを 起動

し,ワ ーク ス ペース2のア プリ ケ ーショ ン の初期化を 行っ

た後, 本拡張ラ イ ブラ リ を 用いて アプリ ケ ーショ ン を 作成 する .

1) Blue-SkyのROS拡張ラ イ ブラ リ を ROSのパッ ケ ー

ジにおけ る “lib”に入れる . 2) 表2に 示し た よ う に 100Base-TXで 接続し た Rasp-berry Pi上で動作する Blue-Skyの組込み機器ノ ード 上のLEDを 2秒ずつに 点滅する ア プリ ケ ーショ ン を 作成する . 表2 Blue-Sky実験環境 Table 2 Environment of Blue-Sky.

System Name Specification Unit

Skycoder

Browser ・ Google Chrome 1  v. “48.0.2564.103 m”

OS ・ Windows 7

・ Intel(R) Core(TM) i7-3770  CPU @ 3.40GHz

Blue-Sky servers

JAVA ・ java version “1.7.0 55” 2  OpenJDK Runtime  Environment(IcedTea 2.4.7) OS ・ Ubuntu 13.10 ・ AMD Athlon(tm) II X2 260  Processor Raspberry Pi

JAVA ・ java version “1.8.0” 4 ・ Java(TM) SE Runtime  Environment OS ・ Debian GNU/Linux 7.8  (wheezy) ・ Arm (BCM2708) Intel Edison

JAVA ・ java version “1.8.0 25” 1 ・ Java(TM) SE Runtime

OS ・ Linux 3.10.17-poky-edison+ ・ Genuine Intel(R)

 CPU 4000 @ 500MHz

KZM-A9 Platform ・ Android v. “2.2” 1 ・ Linux Kernel v. “2.6.29” こ れによ っ て, 図8のよ う に物理的な組込み機器のLED が2秒ずつに点滅する こ と で動作を 確認し た. さ ら に, 本 シス テム のskycoder上に 図9はワ ーク ス ペース1と ワ ー ク ス ペース 2で作成し た ROSのノ ード を 表示する こ と が でき た. 2016/3/24

(6)

8分間実行し た場合のRTTは, 図6のよ う になっ た. 本 拡張ラ イ ブラ リ のRTTは平均19.897ミ リ 秒であり , 下限 値は12∼53ミ リ 秒と 小さ い値である . こ のこ と から , 拡張 ラ イ ブラ リ と し て は十分な 性能を 持っ て いる も のと 思われ る . 拡張ラ イ ブラ リ と し て 有効である と 考え る . さ ら に, ロ ーカ ルな マ シン でrqt graphを 利用不可能な ROSの開発環境においても , 本可視ツ ールを 利用する こ と に よ っ て , イ ン ス ト ールせずにROSノ ード を 起動する だ けで, ROSノ ード と 本システムのノ ード の同時に容易にト レ ースや監視を 行う こ と が可能にな っ た. こ れは遠隔地に 設置さ れたデバイ スの監視や, 教室のよ う に多く のデバイ スを 扱う 環境では有効である と 考え ら れる . その一方, 各 ノ ード の通信状態の表示は不十分であり , こ の部分には改 善が必要である こ と が明ら かにな っ た.

7.

関連研究

ROS[6][7]のrqt graph[10]はOS上のGUIでROSノ ー

ド を 可視する こ と で, そこ で開発し たROSアプリ ケーショ ン におけるroscore[11]のト ピッ ク を 解析し , ノ ード と し て 表示する も のである . 遠隔地に設置さ れたデバイ スなど のよ う にディ スプレ イ を 持たない環境では, rqt graphで可視する こ と が難し い. 遠隔地のロ ボッ ト やセン サ類を 操作する こ と で, IoTの効 果を 学ばせた い場合に はこ のよ う な 機能では不十分であ る . リ モート デスク ト ッ プ[17]を 用いる こ と も 可能である が, 台数が増え た場合には管理が難し いこ と や, データ 転 送に関する 負荷や遅延が高い. さ ら に , rqt graphはネ ッ ト ワ ーク に 接続する ノ ード を 想定し て いないため, ネ ッ ト ワ ーク 間に実施さ れる ノ ード 間の通信に関する 往復遅延時間の測定を 含めて , ト レ ース や監視が不可能であ る . こ れに 対し て , 本シス テ ム では, 通信時間を 含めた測定や, ノ ード の監視が可能であり , 組 込みシステムと ネ ッ ト ワ ーク の両面を 理解する 必要がある IoTの学習環境と し て は有効である と 考え ら れる .

8.

おわり に

本原稿は分散組込みシス テ ム 向き Webベース 開発環境

Blue-SkyのROS拡張の方式と 実装について述べた.

Blue-Skyに 対し て , ROS上のデバイ ス を 扱う た めの拡張を 行 い, ROSの状態の可視化機能を 追加し た. こ れによ っ て , Blue-Skyが備え る Webブラ ウ ザベースの開発/実行環境 上で, ROSと Blue-Skyのノ ード の操作や, 状態監視, 通 信のト レ ースを 透過的に行う こ と が可能にな っ た. 今後の 課題は, 実利用における 評価と , 可視化の見やすさ の改善 およ びプロ グラ ミ ン グシステム の改善である . 参考文献

[1] Lee, E.: Cyber Physical Systems: Design Chal-lenges, Object Oriented Real-Time Distributed Computing (ISORC), 2008 11th IEEE Interna-tional Symposium on, pp. 363–369 (online), DOI: 10.1109/ISORC.2008.25 (2008).

[2] Gubbi, J., Buyya, R., Marusic, S. and Palaniswami, M.: Internet of Things (IoT): A Vision, Architec-tural Elements, and Future Directions, Future Gener. Comput. Syst., Vol. 29, No. 7, pp. 1645–1660 (online), DOI: 10.1016/j.future.2013.01.010 (2013).

[3] 岩野和夫, 高島洋典: サイ バー フ ィ ジ カ ルシ ス テ ム と

IoT(モノ のイ ンタ ネッ ト), 情報処理,Vol. 57, No. 11, pp. 826–834( オンラ イ ン),DOI: 10.1241/johokanri.57.826 (2015).

[4] Rajkumar, R. R., Lee, I., Sha, L. and Stankovic, J.: Cyber-physical Systems: The Next Computing Rev-olution, Proceedings of the 47th Design Automation Conference, DAC ’10, New York, NY, USA, ACM, pp. 731–736 (online), DOI: 10.1145/1837274.1837461 (2010).

[5] ア モーン タ マ ウ ッ ト プラ ウ ィ ーン , 早川栄一: 分散組込 みシステム向き Webベース開発環境, 組込みシステムシ ン ポジウ ム 2015論文集, Vol. 2015, pp. 34–39 (2015). [6] contributors, R.: About ROS, ROS (online), avail-able from hhttp://www.ros.org/about-rosi (accessed 2016-02-01).

[7] Quigley, M., Conley, K., Gerkey, B. P., Faust, J., Foote, T., Leibs, J., Wheeler, R. and Ng, A. Y.: ROS: an open-source Robot Operating System (2009). [8] Merrick, P., Allen, S. and Lapp, J.: XML remote

procedure call (XML-RPC) (2006).

[9] Troy Straszheim, Morten Kjaergaard, B. G.

and Thomas, D.: catkin, ROS (online), avail-able from hhttp://docs.ros.org/api/catkin/html/i (accessed 2015-12-08).

[10] Thomas, D. et al.: rqt graph, ROS (online), available from hhttp://wiki.ros.org/rqt graphi (accessed 2015-12-17).

[11] Thomas, D.: roscore, ROS (online), available from hhttp://wiki.ros.org/roscorei (accessed 2015-12-17). [12] Saito, I.: rosout, ROS (online), available from

hhttp://wiki.ros.org/rosouti (accessed 2015-12-27).

[13] Morley, M. et al.: JSON-RPC 2.0

Specifica-tion, JSON-RPC google group (online), avail-able from hhttp://www.jsonrpc.org/specificationi (accessed 2016-02-11).

[14] Almende, B. et al.: vis.js, visjs (online), available from hhttp://visjs.orgi (accessed 2015-01-11). [15] Almende, B. et al.: DataSet, visjs (online), available

from hhttp://visjs.org/docs/data/dataset.htmli (ac-cessed 2015-01-11).

[16] Almende, B. et al.: network, visjs (online), avail-able from hhttp://visjs.org/docs/network/i (accessed 2015-01-11).

[17] Bhogal, K., Peterson, R. and Seacat, L.: Bandwidth usage and latency reduction of remote desktop soft-ware based on preferred rendering of a user selected area (2011).

図 2 コ マ ン ド ラ イ ン によ る ROS ノ ード へのアク セス例 Fig. 2 Example to access ROS node in command line interface.
図 4 Multi-purpose Handlers に追加し た roscore に対する ハン ド リ ン グ RPC の呼び出し メ ゾッ ド
図 8 Physical Embedded Device Nodes Fig. 8 物理的な 組込み機器のノ ード

参照

関連したドキュメント

The damped eigen- functions are either whispering modes (see Figure 6(a)) or they are oriented towards the damping region as in Figure 6(c), whereas the undamped eigenfunctions

(The Elliott-Halberstam conjecture does allow one to take B = 2 in (1.39), and therefore leads to small improve- ments in Huxley’s results, which for r ≥ 2 are weaker than the result

“Breuil-M´ezard conjecture and modularity lifting for potentially semistable deformations after

The advection-diffusion equation approximation to the dispersion in the pipe has generated a considera- bly more ill-posed inverse problem than the corre- sponding

Keywords Catalyst, reactant, measure-valued branching, interactive branching, state-dependent branch- ing, two-dimensional process, absolute continuity, self-similarity,

Hugh Woodin pointed out to us that the Embedding Theorem can be derived from Theorem 3.4 of [FM], which in turn follows from the Embedding Theorem for higher models of determinacy

In the operator formalism, we study how to make noncommutative instantons by using the ADHM method, and we review the relation between topological charges and noncommutativity.. In

また、同法第 13 条第 2 項の規定に基づく、本計画は、 「北区一般廃棄物処理基本計画 2020」や「北区食育推進計画」、