SlideShare a Scribd company logo
2014年8月5日
開発本部 第四開発部
中本啓之
RTミドルウェアサマーキャンプ2014
RTM on Androidの紹介
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 2
機能安全対応
RTミドルウェア
OpenRTM.NET
miniRTCs-CAN
microRTCs-Zigbee
Android版RTミドルウェア
RTM on AndroidTM
OpenRTM-aist for
VxWorks
エンタープライズ層
ロボット層
エンベデッド/デバイス層
用途に合わせ、多様なRTミドルウェアを開発・提供しています。
PC/タブレット向け
ロボット制御向け
省資源マイコン向け
さまざまなRTミドルウェア
OpenRTM-aist
HONDA RTM
RTC-lite
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
RTミドルウェア導入のメリット
マルチプラットフォーム対応
単体のロボットだけでなく、ロボット周辺システ
ムや、ロボット操作系のシステムともシームレス
に結合する
省資源マイコンで動作し、センサーネットワーク
のプラットフォームにも適用可能
ROSにはない機能
ネットワーク分散
ロボット体内LANやネットワークロボットなど、
分散システムを容易に構築可能
RTCRTC
RTM
Windows
RTCRTC
RTM
TRON
RTCRTC
RTM
Linux
RTCRTC
RTM
Solaris
RTCRTC
RTM
FreeBSD
RTCRTC
RTM
ARTLinux
RTC
アプリケーション 操作デバイス センサ
ロボットA ロボットB ロボットC
ネットワーク
資料作成/提供:
産業技術総合研究所
ネットワーク上に
分散するRTCを
OS・言語の壁を
越えて接続する
ことができる
柔軟性の向上
モジュール接続構成を変えるだけで様々なシ
ステムを構築できる
再利用性の向上、選択肢の多様化
同じコンポーネントをいろいろなシステムに
使いまわせる
同じ機能を持つ複数のモジュールを試すこと
ができる
ロボット 防犯センサシステム
レーザレンジファインダの入れ替えが容易(ソフト変更不要)
レーザレンジ
センサRTC
USBカメラ
RTC
移動体検知
RTC
モータ
RTC
LCD出力
RTC
音声出力
RTC
ビジネス
アプリRTC
3
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
RTM on Android 開発の狙い
RTC開発者/利用者の
裾野拡大!!
これに伴う
RTミドルウェアの
普及促進!!
4
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 5
ロボットを制御
Android端末をロボットシステムのフロントエンドに活用!
ライトを消し忘れを
センサーでモニタリング
RTM on Androidは、Android端末に対応したRTミドルウェアです。
RTM on Android を用いることで、ロボットやセンサーがAndroid端
末と連携するシステムを迅速かつ安価に作成することが可能になります。
RTM on Androidとは
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 6
RTM on Android とは
OMGで承認された国際規格であ
るRTC SpecificationをAndroid上
に実現
Androidタブレットを用いることで、場
所を選ばずにロボットの制御・監視が可
能になります
OpenRTM-aist-1.0と相互運用可
能
RTミドルウェアを使用した既存ロボッ
ト/センサが利用できるため、開発コス
トを下げ、開発期間を短くすることがで
きます
分散ミドルウェアCORBAには
産総研が開発したRtORBを採用
例えば、こんな使い方
産業用ロボットの生産管理
端末として
ロボットの遠隔操作や
モニタリングを行う端末として
TM
スマートハウスで部屋ごとの
電力消費量や家電の状態を
確認する端末として
RTM on Androidとは
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 7
情報表示端末として利用
SCENE1: ロボットの遠隔制御・監視 SCENE2: センサーネットワーク
部屋ごとの温度、照度
センサーの情報を収集
RT-ADK
(センサー)
RT-ADK
(センサー)
RT×Androidでロボット/センサーを制御・監視
インフォメーション
ロボット
コントローラとして利用
ロボットの
首振りを制御
カメラ映像
人のセンシング結果
Android端末をセンサネットワークのデバイスとして活用
部屋情報をセンサーと接続したAndroid端末から収集
収集結果をタブレットに表示
Android端末を用いてロボットを遠隔制御
タブレットからロボットを操作
ロボットのカメラ映像をタブレットで表示
RTM on Androidの活用事例
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
AndroidにRTMを載せるとは?
そもそもRTMとは
RTCを作成するために
RTCがRTCとして動作するために
存在するミドルウェア
...としてのソフトウェア
実行単位はRTMではなくRTC
Android上でRTCを作成する?
そのようなシーンは想像できない!
Android上で動作するRTCとは?
単なるAndroidアプリの1形態に過ぎない
Androidアプリとして
RTCを作成し
Android端末上で
上記RTCが動作する
ことを可能にする
こと
8
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
RTM on Android の効能
RTミドルウェアやRTCの知識が乏しくても、通常
のAndroidアプリケーション開発スキルを持つ人
であれば、容易にRTCの開発が可能となる
RTM on Androidを利用して開発したRTCは、ごく
普通のAndroidアプリケーションとして扱うこと
ができ、実行時のシステムリソースへの負荷も軽い
RTM on Androidを利用して開発したRTCは、
OMGにより標準化されたRTC標準仕様Ver1.0に
従った軽量RTCのOpenRTM拡張モデルとしての基
本的な振る舞いに対応し、他プラットフォーム上の
RTCともシームレスに相互接続できる
9
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
RTCとAndroidにおける
コンポーネントの対応
RTCは,必ずしもUIを必要としない
他RTCとの通信は継続的に実施できる必要が
ある
RTM on Androidでは,RTCがAndroid上で
Serviceとして動作
UIが必要な場合は別途Activityを必要なだけ追加
これら全体で一つのアプリケーション単位
(apk)
一つのAndroid端末上にて 複数のRTCを同時に
Activeな状態で稼動可能
10
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
Androidアーキテクチャとアプリケーション
Android Runtimeに専用VM
(Dalvik VM)
各アプリケーションは,それぞれ
が独立したLinuxのプロセス
各アプリケーションに一つの
Dalvik VMインスタンスが対応
して動作
一般的Androidアプリケーショ
ンは,UIを持つコンポーネント
であるActivityとして実装され
る
Activityは画面の最上位に表示さ
れる場合にのみ動作
UIを持たず,バックグラウンド
で継続的に動作するServiceも代
表的なコンポーネント単位
11
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
RTM on Android のアーキテクチャ
12
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
RTM on Android でのRTC開発
ごく普通のAndroidアプリ開発手法と同じ
Google社により提供されているEclipse用SDKを利用
アプリケーション単位にAndroidプロジェクトを作成
ソースの編集からビルドまでを実施
RTCとしての動作は
シンプルなAPI記述
で実現可能
13
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
RTM on Android使用上の注意点
画面オフや回転への注意
Androidバージョン2系では、画面オフ時や回転時に
onDestroy()やonCreate()が内部で呼ばれてしまう
このため、RTCの起動・終了方法によっては、意に反して
連動して終了してしまう危険性がある
対処方法
画面レイアウト定義への指定にて画面オフ抑止
マニフェストへの指定にて回転を抑止
omni-ORBとの親和性への注意
omni-ORBは、デフォルトで一定時間後にタイムアウト処理が走る
RTM on Androidが採用しているRtORBはこれに未対応
対処方法(実際にOpenRTM-aistのサンプルRTC用rtc.confを修正)
omni-ORBを利用するRTCのコンフィグレーション指定にて、タイムアウトを抑止
RT SystemEditorとの親和性への注意
RTM on Androidを利用したRTCは、RT SystemEditor上での操作感
が悪く、RT SystemEditorが無応答に陥ることもある
対処方法
Rtshellを使うか、Connectorを作成する
14
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved.
RTM on Androidでの独自型の使用
独自型を使用する場合は、データクラスを用意する
※データのアライメントに注意する必要がある
参考:http://www.openrtp.jp/wiki/_hara/ja/RtORB/RtORB_CDR.html
import java.util.List;
public class CameraImage implements
Marshalizable {
private static final String dataType =
"CameraImage";
public RTCTime tm = null;
public short width;
public short height;
public short bpp;
public String format;
public double fDiv;
public List<Byte> pixels;
public CameraImage() {
tm = new RTCTime(0, 0);
pixels = new ArrayList<Byte>();
}
public CORBA_CdrData marshal() {
Marshalizer mslzr = new Marshalizer();
mslzr.marshalLong(getTm().getSec());
mslzr.marshalLong(getTm().getNsec());
mslzr.marshalShort(width);
mslzr.marshalShort(height);
mslzr.marshalShort(bpp);
mslzr.marshalShort(0);
mslzr.marshalString(format);
mslzr.marshalDouble(fDiv);
mslzr.marshalByteSeq(pixels);
CORBA_CdrData cdr = new CORBA_CdrData();
cdr.setData(mslzr.get());
return cdr;
}
public void demarshal(CORBA_CdrData
cdrData) {
Marshalizer mslzr = new
Marshalizer(cdrData.getData());
int sec = mslzr.demarshalLong();
int nsec = mslzr.demarshalLong();
tm.set(sec, nsec);
width = mslzr.demarshalShort();
height = mslzr.demarshalShort();
bpp = mslzr.demarshalShort();
mslzr.demarshalShort();
format = mslzr.demarshalString();
fDiv = mslzr.demarshalDouble();
pixels = mslzr.demarshalByteSeq();
}
}
15
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 16
ロボコンマガジン連載
ロボコンマガジン(オーム社)で、2012年7月号~
2013年1月号に「RTM on Android」の連載記事
http://www.ohmsha.co.jp/robocon/
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 17
ロボコンマガジン連載
OpenRTM.NETで実装したWindows PC上で動作
するRTCをAndroid端末からコントロールする
RTCの開発
Google Earth内を移動する
バ-チャル飛行体
Arduino用移動台車
KURUMA Shield(ピルクス社)
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 18
デモシステム構成
Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 19
• ロボットサイトにて、NEDO「次世代ロボット知能化技術開発プ
ロジェクト」をはじめ、当社の研究開発成果を公開しています。
ロボットサイト
e-mail : robot@sec.co.jp
nakamoto@sec.co.jp
RTM on Androidの紹介

More Related Content

What's hot

Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory  for the robot programing ...Portable RT-Middleware environment on a USB memory  for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
s15mh218
 
Rtmコンテスト必勝法
Rtmコンテスト必勝法Rtmコンテスト必勝法
Rtmコンテスト必勝法openrtm
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02openrtm
 
Robomec2015講習会 150517 01
Robomec2015講習会 150517 01Robomec2015講習会 150517 01
Robomec2015講習会 150517 01openrtm
 
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)openrtm
 
160608 01
160608 01160608 01
160608 01
openrtm
 
Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部openrtm
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)openrtm
 
2015 summercamp 05
2015 summercamp 052015 summercamp 05
2015 summercamp 05
openrtm
 
130522 01
130522 01130522 01
130522 01openrtm
 
RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要 RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要
openrtm
 
130710 01
130710 01130710 01
130710 01openrtm
 
OpenRTM概要
OpenRTM概要OpenRTM概要
OpenRTM概要
openrtm
 
2015RTミドルウエア講習会
2015RTミドルウエア講習会2015RTミドルウエア講習会
2015RTミドルウエア講習会
openrtm
 
130522 00
130522 00130522 00
130522 00openrtm
 
Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部openrtm
 
190605 01
190605 01190605 01
190605 01
openrtm
 
iREX2015 RTM講習会
iREX2015 RTM講習会iREX2015 RTM講習会
iREX2015 RTM講習会
openrtm
 
130522 rt講習会(説明用)
130522 rt講習会(説明用)130522 rt講習会(説明用)
130522 rt講習会(説明用)openrtm
 
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
openrtm
 

What's hot (20)

Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory  for the robot programing ...Portable RT-Middleware environment on a USB memory  for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
 
Rtmコンテスト必勝法
Rtmコンテスト必勝法Rtmコンテスト必勝法
Rtmコンテスト必勝法
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02
 
Robomec2015講習会 150517 01
Robomec2015講習会 150517 01Robomec2015講習会 150517 01
Robomec2015講習会 150517 01
 
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
 
160608 01
160608 01160608 01
160608 01
 
Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部Robomec2014 rtm講習会第3部
Robomec2014 rtm講習会第3部
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)
 
2015 summercamp 05
2015 summercamp 052015 summercamp 05
2015 summercamp 05
 
130522 01
130522 01130522 01
130522 01
 
RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要 RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要
 
130710 01
130710 01130710 01
130710 01
 
OpenRTM概要
OpenRTM概要OpenRTM概要
OpenRTM概要
 
2015RTミドルウエア講習会
2015RTミドルウエア講習会2015RTミドルウエア講習会
2015RTミドルウエア講習会
 
130522 00
130522 00130522 00
130522 00
 
Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部Robomec2014 rtm講習会第2部
Robomec2014 rtm講習会第2部
 
190605 01
190605 01190605 01
190605 01
 
iREX2015 RTM講習会
iREX2015 RTM講習会iREX2015 RTM講習会
iREX2015 RTM講習会
 
130522 rt講習会(説明用)
130522 rt講習会(説明用)130522 rt講習会(説明用)
130522 rt講習会(説明用)
 
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
 

Viewers also liked

ロボカップにおけるRtmの事例紹介
ロボカップにおけるRtmの事例紹介ロボカップにおけるRtmの事例紹介
ロボカップにおけるRtmの事例紹介openrtm
 
Rtm summer camp2014グループ1
Rtm summer camp2014グループ1Rtm summer camp2014グループ1
Rtm summer camp2014グループ1openrtm
 
有用なRtcの紹介
有用なRtcの紹介有用なRtcの紹介
有用なRtcの紹介openrtm
 
Rtm summer camp2014グループ4
Rtm summer camp2014グループ4Rtm summer camp2014グループ4
Rtm summer camp2014グループ4openrtm
 
Choreonoidとopen hriを用いたシステム構築事例
Choreonoidとopen hriを用いたシステム構築事例Choreonoidとopen hriを用いたシステム構築事例
Choreonoidとopen hriを用いたシステム構築事例openrtm
 
Rtm summer camp2014グループ3
Rtm summer camp2014グループ3Rtm summer camp2014グループ3
Rtm summer camp2014グループ3openrtm
 
Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境openrtm
 
2013 summercamp 06
2013 summercamp 062013 summercamp 06
2013 summercamp 06openrtm
 
OpenRTM-aist入門
OpenRTM-aist入門OpenRTM-aist入門
OpenRTM-aist入門
Yuki Suga
 
Rtm summer camp2014グループ2
Rtm summer camp2014グループ2Rtm summer camp2014グループ2
Rtm summer camp2014グループ2openrtm
 

Viewers also liked (10)

ロボカップにおけるRtmの事例紹介
ロボカップにおけるRtmの事例紹介ロボカップにおけるRtmの事例紹介
ロボカップにおけるRtmの事例紹介
 
Rtm summer camp2014グループ1
Rtm summer camp2014グループ1Rtm summer camp2014グループ1
Rtm summer camp2014グループ1
 
有用なRtcの紹介
有用なRtcの紹介有用なRtcの紹介
有用なRtcの紹介
 
Rtm summer camp2014グループ4
Rtm summer camp2014グループ4Rtm summer camp2014グループ4
Rtm summer camp2014グループ4
 
Choreonoidとopen hriを用いたシステム構築事例
Choreonoidとopen hriを用いたシステム構築事例Choreonoidとopen hriを用いたシステム構築事例
Choreonoidとopen hriを用いたシステム構築事例
 
Rtm summer camp2014グループ3
Rtm summer camp2014グループ3Rtm summer camp2014グループ3
Rtm summer camp2014グループ3
 
Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境
 
2013 summercamp 06
2013 summercamp 062013 summercamp 06
2013 summercamp 06
 
OpenRTM-aist入門
OpenRTM-aist入門OpenRTM-aist入門
OpenRTM-aist入門
 
Rtm summer camp2014グループ2
Rtm summer camp2014グループ2Rtm summer camp2014グループ2
Rtm summer camp2014グループ2
 

Similar to RTM on Androidの紹介

ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
openrtm
 
Rtミドルウェア講習会 第1部資料
Rtミドルウェア講習会 第1部資料Rtミドルウェア講習会 第1部資料
Rtミドルウェア講習会 第1部資料
openrtm
 
1.コース概要
1.コース概要1.コース概要
1.コース概要
openrtm
 
Nedo講座・rtmセミナー
Nedo講座・rtmセミナーNedo講座・rtmセミナー
Nedo講座・rtmセミナーopenrtm
 
201110 01 Polytech Center 1
201110 01 Polytech Center 1201110 01 Polytech Center 1
201110 01 Polytech Center 1
openrtm
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Takeshi Fukuhara
 
Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1openrtm
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
 
160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大
openrtm
 
130711 01
130711 01130711 01
130711 01openrtm
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
Atomu Hidaka
 
Smart tag firststep
Smart tag firststepSmart tag firststep
181106 01
181106 01181106 01
181106 01
openrtm
 
RTミドルウェアによるロボットプログラミング技術 1.コース概要
RTミドルウェアによるロボットプログラミング技術 1.コース概要RTミドルウェアによるロボットプログラミング技術 1.コース概要
RTミドルウェアによるロボットプログラミング技術 1.コース概要
Noriaki Ando
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
Atomu Hidaka
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Takeshi Fukuhara
 
131111 東工大授業「ロボット技術」資料
131111 東工大授業「ロボット技術」資料131111 東工大授業「ロボット技術」資料
131111 東工大授業「ロボット技術」資料openrtm
 
Androidアプリケーション開発中級研修 前編
Androidアプリケーション開発中級研修 前編Androidアプリケーション開発中級研修 前編
Androidアプリケーション開発中級研修 前編
株式会社 NTTテクノクロス
 
160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大
openrtm
 
150629 01
150629 01150629 01
150629 01openrtm
 

Similar to RTM on Androidの紹介 (20)

ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
 
Rtミドルウェア講習会 第1部資料
Rtミドルウェア講習会 第1部資料Rtミドルウェア講習会 第1部資料
Rtミドルウェア講習会 第1部資料
 
1.コース概要
1.コース概要1.コース概要
1.コース概要
 
Nedo講座・rtmセミナー
Nedo講座・rtmセミナーNedo講座・rtmセミナー
Nedo講座・rtmセミナー
 
201110 01 Polytech Center 1
201110 01 Polytech Center 1201110 01 Polytech Center 1
201110 01 Polytech Center 1
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大
 
130711 01
130711 01130711 01
130711 01
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
 
Smart tag firststep
Smart tag firststepSmart tag firststep
Smart tag firststep
 
181106 01
181106 01181106 01
181106 01
 
RTミドルウェアによるロボットプログラミング技術 1.コース概要
RTミドルウェアによるロボットプログラミング技術 1.コース概要RTミドルウェアによるロボットプログラミング技術 1.コース概要
RTミドルウェアによるロボットプログラミング技術 1.コース概要
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
131111 東工大授業「ロボット技術」資料
131111 東工大授業「ロボット技術」資料131111 東工大授業「ロボット技術」資料
131111 東工大授業「ロボット技術」資料
 
Androidアプリケーション開発中級研修 前編
Androidアプリケーション開発中級研修 前編Androidアプリケーション開発中級研修 前編
Androidアプリケーション開発中級研修 前編
 
160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大
 
150629 01
150629 01150629 01
150629 01
 

More from openrtm

ピッキングシステム
ピッキングシステムピッキングシステム
ピッキングシステム
openrtm
 
GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画
openrtm
 
まねっこロボット
まねっこロボットまねっこロボット
まねっこロボット
openrtm
 
商品自動補充ロボットシステム
商品自動補充ロボットシステム商品自動補充ロボットシステム
商品自動補充ロボットシステム
openrtm
 
RTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptxRTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptx
openrtm
 
SysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdfSysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdf
openrtm
 
RTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdfRTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdf
openrtm
 
5.総合演習(2)
5.総合演習(2)5.総合演習(2)
5.総合演習(2)
openrtm
 
4.総合演習(1)
4.総合演習(1)4.総合演習(1)
4.総合演習(1)
openrtm
 
3.RTCプログラミング演習
3.RTCプログラミング演習3.RTCプログラミング演習
3.RTCプログラミング演習
openrtm
 
2.プログラミングの基礎
2.プログラミングの基礎2.プログラミングの基礎
2.プログラミングの基礎
openrtm
 
Slam実習
Slam実習Slam実習
Slam実習
openrtm
 
Rtshell入門
Rtshell入門Rtshell入門
Rtshell入門
openrtm
 
Rtコンポーネント作成入門
Rtコンポーネント作成入門Rtコンポーネント作成入門
Rtコンポーネント作成入門
openrtm
 
Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦
openrtm
 
RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1
openrtm
 
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
openrtm
 
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
openrtm
 
ROBOMECH2021 RTMオンライン講習会 第1部
ROBOMECH2021 RTMオンライン講習会 第1部ROBOMECH2021 RTMオンライン講習会 第1部
ROBOMECH2021 RTMオンライン講習会 第1部
openrtm
 
ROBOMECH2021 RTM講習会 第1部
ROBOMECH2021 RTM講習会 第1部ROBOMECH2021 RTM講習会 第1部
ROBOMECH2021 RTM講習会 第1部
openrtm
 

More from openrtm (20)

ピッキングシステム
ピッキングシステムピッキングシステム
ピッキングシステム
 
GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画GNGを使った未知環境における経路計画
GNGを使った未知環境における経路計画
 
まねっこロボット
まねっこロボットまねっこロボット
まねっこロボット
 
商品自動補充ロボットシステム
商品自動補充ロボットシステム商品自動補充ロボットシステム
商品自動補充ロボットシステム
 
RTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptxRTサマーキャンプ2022最終発表_都立大.pptx
RTサマーキャンプ2022最終発表_都立大.pptx
 
SysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdfSysML実習20220822SC_GA.pdf
SysML実習20220822SC_GA.pdf
 
RTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdfRTミドルウェアサマーキャンプ資料2022.pdf
RTミドルウェアサマーキャンプ資料2022.pdf
 
5.総合演習(2)
5.総合演習(2)5.総合演習(2)
5.総合演習(2)
 
4.総合演習(1)
4.総合演習(1)4.総合演習(1)
4.総合演習(1)
 
3.RTCプログラミング演習
3.RTCプログラミング演習3.RTCプログラミング演習
3.RTCプログラミング演習
 
2.プログラミングの基礎
2.プログラミングの基礎2.プログラミングの基礎
2.プログラミングの基礎
 
Slam実習
Slam実習Slam実習
Slam実習
 
Rtshell入門
Rtshell入門Rtshell入門
Rtshell入門
 
Rtコンポーネント作成入門
Rtコンポーネント作成入門Rtコンポーネント作成入門
Rtコンポーネント作成入門
 
Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦Rtミドルウェアサマーキャンプ2021_宮本信彦
Rtミドルウェアサマーキャンプ2021_宮本信彦
 
RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1RTミドルウェアサマーキャンプ2021_坂本武志_1
RTミドルウェアサマーキャンプ2021_坂本武志_1
 
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
 
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹Rtミドルウェアサマーキャンプ資料2021_菅佑樹
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
 
ROBOMECH2021 RTMオンライン講習会 第1部
ROBOMECH2021 RTMオンライン講習会 第1部ROBOMECH2021 RTMオンライン講習会 第1部
ROBOMECH2021 RTMオンライン講習会 第1部
 
ROBOMECH2021 RTM講習会 第1部
ROBOMECH2021 RTM講習会 第1部ROBOMECH2021 RTM講習会 第1部
ROBOMECH2021 RTM講習会 第1部
 

RTM on Androidの紹介

  • 2. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 2 機能安全対応 RTミドルウェア OpenRTM.NET miniRTCs-CAN microRTCs-Zigbee Android版RTミドルウェア RTM on AndroidTM OpenRTM-aist for VxWorks エンタープライズ層 ロボット層 エンベデッド/デバイス層 用途に合わせ、多様なRTミドルウェアを開発・提供しています。 PC/タブレット向け ロボット制御向け 省資源マイコン向け さまざまなRTミドルウェア OpenRTM-aist HONDA RTM RTC-lite
  • 3. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. RTミドルウェア導入のメリット マルチプラットフォーム対応 単体のロボットだけでなく、ロボット周辺システ ムや、ロボット操作系のシステムともシームレス に結合する 省資源マイコンで動作し、センサーネットワーク のプラットフォームにも適用可能 ROSにはない機能 ネットワーク分散 ロボット体内LANやネットワークロボットなど、 分散システムを容易に構築可能 RTCRTC RTM Windows RTCRTC RTM TRON RTCRTC RTM Linux RTCRTC RTM Solaris RTCRTC RTM FreeBSD RTCRTC RTM ARTLinux RTC アプリケーション 操作デバイス センサ ロボットA ロボットB ロボットC ネットワーク 資料作成/提供: 産業技術総合研究所 ネットワーク上に 分散するRTCを OS・言語の壁を 越えて接続する ことができる 柔軟性の向上 モジュール接続構成を変えるだけで様々なシ ステムを構築できる 再利用性の向上、選択肢の多様化 同じコンポーネントをいろいろなシステムに 使いまわせる 同じ機能を持つ複数のモジュールを試すこと ができる ロボット 防犯センサシステム レーザレンジファインダの入れ替えが容易(ソフト変更不要) レーザレンジ センサRTC USBカメラ RTC 移動体検知 RTC モータ RTC LCD出力 RTC 音声出力 RTC ビジネス アプリRTC 3
  • 4. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. RTM on Android 開発の狙い RTC開発者/利用者の 裾野拡大!! これに伴う RTミドルウェアの 普及促進!! 4
  • 5. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 5 ロボットを制御 Android端末をロボットシステムのフロントエンドに活用! ライトを消し忘れを センサーでモニタリング RTM on Androidは、Android端末に対応したRTミドルウェアです。 RTM on Android を用いることで、ロボットやセンサーがAndroid端 末と連携するシステムを迅速かつ安価に作成することが可能になります。 RTM on Androidとは
  • 6. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 6 RTM on Android とは OMGで承認された国際規格であ るRTC SpecificationをAndroid上 に実現 Androidタブレットを用いることで、場 所を選ばずにロボットの制御・監視が可 能になります OpenRTM-aist-1.0と相互運用可 能 RTミドルウェアを使用した既存ロボッ ト/センサが利用できるため、開発コス トを下げ、開発期間を短くすることがで きます 分散ミドルウェアCORBAには 産総研が開発したRtORBを採用 例えば、こんな使い方 産業用ロボットの生産管理 端末として ロボットの遠隔操作や モニタリングを行う端末として TM スマートハウスで部屋ごとの 電力消費量や家電の状態を 確認する端末として RTM on Androidとは
  • 7. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 7 情報表示端末として利用 SCENE1: ロボットの遠隔制御・監視 SCENE2: センサーネットワーク 部屋ごとの温度、照度 センサーの情報を収集 RT-ADK (センサー) RT-ADK (センサー) RT×Androidでロボット/センサーを制御・監視 インフォメーション ロボット コントローラとして利用 ロボットの 首振りを制御 カメラ映像 人のセンシング結果 Android端末をセンサネットワークのデバイスとして活用 部屋情報をセンサーと接続したAndroid端末から収集 収集結果をタブレットに表示 Android端末を用いてロボットを遠隔制御 タブレットからロボットを操作 ロボットのカメラ映像をタブレットで表示 RTM on Androidの活用事例
  • 8. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. AndroidにRTMを載せるとは? そもそもRTMとは RTCを作成するために RTCがRTCとして動作するために 存在するミドルウェア ...としてのソフトウェア 実行単位はRTMではなくRTC Android上でRTCを作成する? そのようなシーンは想像できない! Android上で動作するRTCとは? 単なるAndroidアプリの1形態に過ぎない Androidアプリとして RTCを作成し Android端末上で 上記RTCが動作する ことを可能にする こと 8
  • 9. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. RTM on Android の効能 RTミドルウェアやRTCの知識が乏しくても、通常 のAndroidアプリケーション開発スキルを持つ人 であれば、容易にRTCの開発が可能となる RTM on Androidを利用して開発したRTCは、ごく 普通のAndroidアプリケーションとして扱うこと ができ、実行時のシステムリソースへの負荷も軽い RTM on Androidを利用して開発したRTCは、 OMGにより標準化されたRTC標準仕様Ver1.0に 従った軽量RTCのOpenRTM拡張モデルとしての基 本的な振る舞いに対応し、他プラットフォーム上の RTCともシームレスに相互接続できる 9
  • 10. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. RTCとAndroidにおける コンポーネントの対応 RTCは,必ずしもUIを必要としない 他RTCとの通信は継続的に実施できる必要が ある RTM on Androidでは,RTCがAndroid上で Serviceとして動作 UIが必要な場合は別途Activityを必要なだけ追加 これら全体で一つのアプリケーション単位 (apk) 一つのAndroid端末上にて 複数のRTCを同時に Activeな状態で稼動可能 10
  • 11. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. Androidアーキテクチャとアプリケーション Android Runtimeに専用VM (Dalvik VM) 各アプリケーションは,それぞれ が独立したLinuxのプロセス 各アプリケーションに一つの Dalvik VMインスタンスが対応 して動作 一般的Androidアプリケーショ ンは,UIを持つコンポーネント であるActivityとして実装され る Activityは画面の最上位に表示さ れる場合にのみ動作 UIを持たず,バックグラウンド で継続的に動作するServiceも代 表的なコンポーネント単位 11
  • 12. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. RTM on Android のアーキテクチャ 12
  • 13. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. RTM on Android でのRTC開発 ごく普通のAndroidアプリ開発手法と同じ Google社により提供されているEclipse用SDKを利用 アプリケーション単位にAndroidプロジェクトを作成 ソースの編集からビルドまでを実施 RTCとしての動作は シンプルなAPI記述 で実現可能 13
  • 14. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. RTM on Android使用上の注意点 画面オフや回転への注意 Androidバージョン2系では、画面オフ時や回転時に onDestroy()やonCreate()が内部で呼ばれてしまう このため、RTCの起動・終了方法によっては、意に反して 連動して終了してしまう危険性がある 対処方法 画面レイアウト定義への指定にて画面オフ抑止 マニフェストへの指定にて回転を抑止 omni-ORBとの親和性への注意 omni-ORBは、デフォルトで一定時間後にタイムアウト処理が走る RTM on Androidが採用しているRtORBはこれに未対応 対処方法(実際にOpenRTM-aistのサンプルRTC用rtc.confを修正) omni-ORBを利用するRTCのコンフィグレーション指定にて、タイムアウトを抑止 RT SystemEditorとの親和性への注意 RTM on Androidを利用したRTCは、RT SystemEditor上での操作感 が悪く、RT SystemEditorが無応答に陥ることもある 対処方法 Rtshellを使うか、Connectorを作成する 14
  • 15. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. RTM on Androidでの独自型の使用 独自型を使用する場合は、データクラスを用意する ※データのアライメントに注意する必要がある 参考:http://www.openrtp.jp/wiki/_hara/ja/RtORB/RtORB_CDR.html import java.util.List; public class CameraImage implements Marshalizable { private static final String dataType = "CameraImage"; public RTCTime tm = null; public short width; public short height; public short bpp; public String format; public double fDiv; public List<Byte> pixels; public CameraImage() { tm = new RTCTime(0, 0); pixels = new ArrayList<Byte>(); } public CORBA_CdrData marshal() { Marshalizer mslzr = new Marshalizer(); mslzr.marshalLong(getTm().getSec()); mslzr.marshalLong(getTm().getNsec()); mslzr.marshalShort(width); mslzr.marshalShort(height); mslzr.marshalShort(bpp); mslzr.marshalShort(0); mslzr.marshalString(format); mslzr.marshalDouble(fDiv); mslzr.marshalByteSeq(pixels); CORBA_CdrData cdr = new CORBA_CdrData(); cdr.setData(mslzr.get()); return cdr; } public void demarshal(CORBA_CdrData cdrData) { Marshalizer mslzr = new Marshalizer(cdrData.getData()); int sec = mslzr.demarshalLong(); int nsec = mslzr.demarshalLong(); tm.set(sec, nsec); width = mslzr.demarshalShort(); height = mslzr.demarshalShort(); bpp = mslzr.demarshalShort(); mslzr.demarshalShort(); format = mslzr.demarshalString(); fDiv = mslzr.demarshalDouble(); pixels = mslzr.demarshalByteSeq(); } } 15
  • 16. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 16 ロボコンマガジン連載 ロボコンマガジン(オーム社)で、2012年7月号~ 2013年1月号に「RTM on Android」の連載記事 http://www.ohmsha.co.jp/robocon/
  • 17. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 17 ロボコンマガジン連載 OpenRTM.NETで実装したWindows PC上で動作 するRTCをAndroid端末からコントロールする RTCの開発 Google Earth内を移動する バ-チャル飛行体 Arduino用移動台車 KURUMA Shield(ピルクス社)
  • 18. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 18 デモシステム構成
  • 19. Copyrightⓒ 2014 Systems Engineering Consultants Co., LTD. All rights reserved. 19 • ロボットサイトにて、NEDO「次世代ロボット知能化技術開発プ ロジェクト」をはじめ、当社の研究開発成果を公開しています。 ロボットサイト e-mail : robot@sec.co.jp nakamoto@sec.co.jp