SlideShare a Scribd company logo
1 of 29
Download to read offline
M2M製品開発における
mrubyの効果
九州工業大学
田中 和明
自己紹介
• 九州工業大学
田中 和明(たなか かずあき)
• 組込みシステムに関する教育研究
– プログラミング,データ構造,データベース,
Robot Sensor Processing
Rubyアソシエーション
福岡県Ruby・コンテンツビジネス振興会議
軽量Rubyフォーラム
Rubyビジネス推進協議会
研究
• 2010年~2012年
– 経済産業省 地域イノベーション創出研究開発事
業でmrubyを開発(ネットワーク応用通信研究
所,福岡CSK,九州工業大学)
• 2015年~
– しまねソフト研究開発センターとの共同研究で
mruby/cを開発
• 2016年~
– NEDO 次世代スマートデバイス開発プロジェク
トでmruby用IDEを開発中(九州工業大学,
SCSK九州,有明高専)
mruby
Rubyを組込みソフト開発に利用する
Rubyの特徴
• Webアプリケーション開発では
標準的な開発言語
– 開発しやすい
– プログラムを再利用しやすい
– 可読性
例
#include <stdio.h>
int main(void)
{
int i, s;
int ary[5] = {2,3,5,7,11};
s = 0;
for( i=0 ; i<5 ; i++ ){
s += ary[i];
}
printf("%d¥n", s);
return 0;
}
ary = [2,3,5,7,11]
s = 0
ary.each do |x|
s = s + x
end
puts s
mrubyが目指すもの
• Rubyが持つ「開発しやすさ」を,
組込みソフト開発に利用する(手軽)
• 実行に必要な資源を減らす(軽量)
• 実装をコンパクトにする(シンプル)
• ハードウェアが提供する機能と
ソフトウェアロジックを分離する(分か
りやすさ)
組込みシステム開発
• 従来の開発イメージ
ソフトウェア
ハードウェア
(ターゲットデバイス)
ユーザ
インターフェース
デバイスドライバ
アプリケーション
ロジック
リアルタイム処理
(割り込み)
Cで実装され,単一の
実行オブジェクトとなる
(ファームウェアなど)
開発の種類
• 新規開発 or ライブラリの利用
ソフトウェア
ハードウェア
(ターゲットデバイス)
ユーザ
インターフェース
デバイスドライバ
アプリケーション
ロジック
リアルタイム処理
(割り込み)
通常,既存のライブラリが存在する
mrubyのアイディア
• 最初にライブラリ部分を準備する
• 新規開発部分だけを開発する
ハードウェアに依存する部分
ハードウェアが変わらなければ,
同じものを再利用できる
アプリケーションに依存する部分
ハードウェアとは切り離して
開発したい
mrubyの仕組み
• Ruby:インタープリタ型
• mruby:コンパイラ+VM(仮想計算機)
• コンパイラが生成する中間コードは
デバイス非依存
• 中間コードをVMが実行する
• VMはデバイス依存だが,移植は容易
mrubyを使った開発
• ターゲットデバイス用のmruby VMを
ビルドしておく(初回のみ)
• mrubyアプリケーションをVMで動かす
mruby VM
mrubyアプリケーション
得られる効果
• ライブラリ・ドライバを再利用できる
– VMの中にライブラリが含まれている
– デバイスごとにVMは1つで十分
• ハードとソフトの開発を並行できる
– VMがあれば,アプリケーション開発できる
• ハードの変更が容易
– mrubyプログラムはデバイス非依存
– ソフトへの影響を少なくできる
組込みシステムの開発例
• ハードウェアとソフトウェアを開発する
• どちらも新規開発と仮定する
• 内容
– ハードウェアの開発
– ソフトウェアの開発
– 動作検証
ハードウェア開発
(ターゲットデバイス)
ソフトウェアを開発 動作検証
時間
mrubyを使った開発の
イメージ
時間
ハードウェア開発
(ターゲットデバイス)
動作検証
PC用
VM
作成
VMでの
動作検証
デバイス用VM作成
(PC用を移植する) ハード開発の時間を
増やせる
ハードが未完成でも
ソフト開発できる
PC用VM上で
ソフトウェアを開発
mruby/c
さらに小さいデバイスを目指す
mrubyのフィードバック
• もっと小さいマイコンで使いたい
• 16bit CPU
• 省電力
• リアルタイム処理
• マルチスレッド
mruby/c
• mruby/cの位置づけ
mruby/c
mruby中間コード
(*.mrb)
この部分を小さくする
mruby/c
• mrubyをさらにコンパクトにした実装
• ある程度のリアルタイム性を実現する
実行時に必要なメモリ量
Ruby
mruby
mruby/c
数MB
400KB
< 64KB
mruby/cの特徴
• 小さい実装
– ワンチップマイコンで動作する
(例:Cortex-M3 64KB)
• ROM上のプログラムを実行できる
• 移植しやすい(C99)
mruby/cの機能
• 最小限のクラスライブラリ
• 複数プログラムの並行実行,優先度付き
• C関数の呼び出し
• 共有変数(共有メモリ)
• (計画中)GC機能
性能評価
• Ruby, mruby, mruby/cの実行速度
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0 5000 10000 15000 20000 25000 30000 35000
Execution time
Ruby mruby mruby/c
繰り返し回数
実行時間 [秒]
mruby/cの適用分野
• イベント処理
– 起動時間が短く,ゆらぎが少ない
(ある時間で必ず処理を開始できる)
• 並行処理
– 共有メモリを介した協調動作
DEMO
• IDEも開発しています
while true do
led 1
delay 1000
led 0
delay 1000
end
led delay
研究紹介
• SenStick – 小型ウェアラブルデバイス
奈良先端科学技術大学院大学と共同開発
研究紹介
• エナジーハーベスティング
(ご覧の通り,試作段階です)
研究紹介
• 軽量な通信プロトコル MQTT
入手方法
• Github
• しまねソフト研究開発センターで
紹介資料を公開しています
http://www.s-itoc.jp/
https://github.com/mrubyc/mrubyc
まとめ
(私的な意見ですが)
• 今後のM2Mで要求される技術
– デバイスが増加&通信量が増加
• 軽量な通信
• 省電力

More Related Content

What's hot

What's hot (18)

Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
 
プラットフォーム事業者としての今後のエッジコンピューティングのあり方について
プラットフォーム事業者としての今後のエッジコンピューティングのあり方についてプラットフォーム事業者としての今後のエッジコンピューティングのあり方について
プラットフォーム事業者としての今後のエッジコンピューティングのあり方について
 
Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介
Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介
Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介
 
SIGSPATIAL 2020 参加報告資料
SIGSPATIAL 2020 参加報告資料SIGSPATIAL 2020 参加報告資料
SIGSPATIAL 2020 参加報告資料
 
ノード間通信の優位性評価を目的としたFogコンピューティングテストベッドの構築に関する一検討
ノード間通信の優位性評価を目的としたFogコンピューティングテストベッドの構築に関する一検討ノード間通信の優位性評価を目的としたFogコンピューティングテストベッドの構築に関する一検討
ノード間通信の優位性評価を目的としたFogコンピューティングテストベッドの構築に関する一検討
 
if-up 2017 | B2 デバイスデザインパターン〜ユースケース別デバイス選定〜
 if-up 2017 | B2 デバイスデザインパターン〜ユースケース別デバイス選定〜 if-up 2017 | B2 デバイスデザインパターン〜ユースケース別デバイス選定〜
if-up 2017 | B2 デバイスデザインパターン〜ユースケース別デバイス選定〜
 
なぜRustか?
なぜRustか?なぜRustか?
なぜRustか?
 
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
 
文系学生も知っておくべき技術のこと - IoT, 5G, AI
文系学生も知っておくべき技術のこと - IoT, 5G, AI文系学生も知っておくべき技術のこと - IoT, 5G, AI
文系学生も知っておくべき技術のこと - IoT, 5G, AI
 
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
 
固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介
 
データ流通実証実験について-20180207
データ流通実証実験について-20180207データ流通実証実験について-20180207
データ流通実証実験について-20180207
 
if-up 2017 | A4:カメラデバイスとクラウド〜スムーズな連携のために〜
if-up 2017 | A4:カメラデバイスとクラウド〜スムーズな連携のために〜if-up 2017 | A4:カメラデバイスとクラウド〜スムーズな連携のために〜
if-up 2017 | A4:カメラデバイスとクラウド〜スムーズな連携のために〜
 
Wio LTEと連携できるGroveを普段の実体験から
Wio LTEと連携できるGroveを普段の実体験からWio LTEと連携できるGroveを普段の実体験から
Wio LTEと連携できるGroveを普段の実体験から
 
Wio LTEをJavaScriptで開発
Wio LTEをJavaScriptで開発Wio LTEをJavaScriptで開発
Wio LTEをJavaScriptで開発
 
実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2
 
データ活用に関するさくらインターネットの取組事例
データ活用に関するさくらインターネットの取組事例データ活用に関するさくらインターネットの取組事例
データ活用に関するさくらインターネットの取組事例
 
クラウドをエッジに延伸せよ
クラウドをエッジに延伸せよクラウドをエッジに延伸せよ
クラウドをエッジに延伸せよ
 

Similar to M2M製品開発におけるmrubyの効果160726

Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
openrtm
 
130522 00
130522 00130522 00
130522 00
openrtm
 
Metro Style AppsでMSIL ver.2012/06/09
Metro Style AppsでMSILver.2012/06/09Metro Style AppsでMSILver.2012/06/09
Metro Style AppsでMSIL ver.2012/06/09
terurou
 
情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game
Yoshiaki Rikitake
 
Higashi 20120825
Higashi 20120825Higashi 20120825
Higashi 20120825
nextedujimu
 

Similar to M2M製品開発におけるmrubyの効果160726 (20)

文系ITエンジニア育成教育におけるRubyの活用
文系ITエンジニア育成教育におけるRubyの活用文系ITエンジニア育成教育におけるRubyの活用
文系ITエンジニア育成教育におけるRubyの活用
 
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
 
PBL as a Service
PBL as a ServicePBL as a Service
PBL as a Service
 
クラウドコンピューティング時代のタブレットコンピューター向けマトリックス型ワードプロセッシングシステムの試作
クラウドコンピューティング時代のタブレットコンピューター向けマトリックス型ワードプロセッシングシステムの試作クラウドコンピューティング時代のタブレットコンピューター向けマトリックス型ワードプロセッシングシステムの試作
クラウドコンピューティング時代のタブレットコンピューター向けマトリックス型ワードプロセッシングシステムの試作
 
柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出について柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出について
 
130522 00
130522 00130522 00
130522 00
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
IoTあるじゃん北海道支部勉強会#1
IoTあるじゃん北海道支部勉強会#1IoTあるじゃん北海道支部勉強会#1
IoTあるじゃん北海道支部勉強会#1
 
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
 
マイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャーマイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャー
 
Metro Style AppsでMSIL ver.2012/06/09
Metro Style AppsでMSILver.2012/06/09Metro Style AppsでMSILver.2012/06/09
Metro Style AppsでMSIL ver.2012/06/09
 
事業共創ワークセッションのご案内
事業共創ワークセッションのご案内事業共創ワークセッションのご案内
事業共創ワークセッションのご案内
 
16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...
16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...
16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...
 
Mtl主催i os勉強会中級編in筑波
Mtl主催i os勉強会中級編in筑波Mtl主催i os勉強会中級編in筑波
Mtl主催i os勉強会中級編in筑波
 
文科系教育におけるIT人材育成
文科系教育におけるIT人材育成文科系教育におけるIT人材育成
文科系教育におけるIT人材育成
 
情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game
 
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発ET2014資料: mruby プログラム言語Rubyによる組込みソト開発
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発
 
Moodle3.1の概要
Moodle3.1の概要Moodle3.1の概要
Moodle3.1の概要
 
大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)
大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)
大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)
 
Higashi 20120825
Higashi 20120825Higashi 20120825
Higashi 20120825
 

More from shimane-itoc (6)

ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォーム
ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォームET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォーム
ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォーム
 
170731 深層学習による顔認識入室記録
170731 深層学習による顔認識入室記録170731 深層学習による顔認識入室記録
170731 深層学習による顔認識入室記録
 
Why not mruby?
Why not mruby?Why not mruby?
Why not mruby?
 
ITOCミニセミナー 160623
ITOCミニセミナー 160623ITOCミニセミナー 160623
ITOCミニセミナー 160623
 
mruby/c機能紹介20160329
mruby/c機能紹介20160329mruby/c機能紹介20160329
mruby/c機能紹介20160329
 
しまねソフト研究開発センターの概要説明
しまねソフト研究開発センターの概要説明しまねソフト研究開発センターの概要説明
しまねソフト研究開発センターの概要説明
 

Recently uploaded

Recently uploaded (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

M2M製品開発におけるmrubyの効果160726