SlideShare ist ein Scribd-Unternehmen logo
1 von 12
組込みデバイス向け
ROSノードの軽量実行環境
高瀬 英希・森 智也
(京都大学)
emb@lab3.kuis.kyoto-u.ac.jp
github.com/tlk-emb/mROS
まずはじめに
これはROS1のネタです,,,
2
でも,ROS1ノードが
組込みデバイスで動いたら
面白くないですか??
(絶賛開発中なので言ったもの勝ちのところもあります)
そんな方はLet’s pull!!
github.com/tlk-emb/mROS
なぜROSを使うのか??
• ロボットシステムの
開発支援フレームワーク
1. 分散システムを容易に構築できるPub/Sub通信
2. 強力かつ高機能なビルドシステムとツール群
3. オープンソースの豊富なパッケージ
4. 活発なコミュニティ活動
3
これはとっても
使いやすい!!
ROS1ならこれも
手軽に使いたい! でも高機能な
デバイスと
Linuxが必要,,,
github.com/tlk-emb/mROS
ということでmROSを作ってます
4
オープンソースの既存パッケージが使えるかも!?
ROS
ノード
ROS
ノード
ROS
mROS
ROSの通信プロトコルをサポート!ITRONでROS!
ROSの関数を使って
プログラミング可能
mROSが提供する機能
 ROSマスタとの通信
 ノード間でのpub/sub通信
ミッドレンジ
組込みデバイス
github.com/tlk-emb/mROS
mROSの構成
5
ハードウェア
mbed
TOPPERS/ASPカーネル
mROS通信ライブラリ
アプリケーションアプリケーション
アプリケーションは組込み記述を気にせずにROS記述可能!
ITRON仕様の設計を行うことでリアルタイム性の確保も容易!?
ROSのAPIを
そのまま使える
(advertise, publish,
subscribe等)
マルチタスク化(複数ノード化)は
ITRONプログラミングで実現できる
lwIPを使用
mbedライブラリで
デバドラも開発できる
github.com/tlk-emb/mROS
mROSの提供する機能
• ROS1の通信フローに準拠
(1) ノード情報の登録
(2) publisher情報の送信
(3) トピックリクエストの送信
(4) TCPポート情報の送信
(5) コネクションヘッダ送信
(6) コネクションヘッダ返信
→ データ転送の開始
6
TCPROSのPub/Sub通信によって
ROS1ノードとして振る舞える!
github.com/tlk-emb/mROS
TOPPERSタスクによる
ROSノード間通信の実現
7
• ホストPC上にあるROSシステムとの通信は専用に
生成されるタスクによって実現される
• 複数ユーザタスクに対しても通信タスクは1つずつ
それぞれのタスクは
ITRON仕様に則る
mROS通信ライブ
ラリで生成される
タスク間通信は
共有メモリ+データキュー
github.com/tlk-emb/mROS
TOPPERSタスクによる
ROSノード間通信の実現
• データキューによる同期制御
− 8bitのノード識別IDと24bitのデータ
長(最大16MB)からなるデータを格納
• 共有メモリを介したトピック通信
8
ID length
github.com/tlk-emb/mROS
現在の開発対象
• Renesas GR-PEACH
− mbedライブラリ対応
オンラインコンパイラ有り
− Arduino互換ピン
− 純正カメラシールドあり
OpenCVも使える!??
9
http://gadget.renesas.com/ja/product/peach.html
搭載マイコン RZ/A1H
ROM/RAM 外部FLASH 8MB
内蔵10MB
動作周波数 400MHz
動作電圧 3.3V/1.18V
画像認識ROSノードが
きびきび動く,かも!?
github.com/tlk-emb/mROS
今はこんなふうに動いています
10
github.com/tlk-emb/mROS
今はこんなふうに動いています
11
パブリッシュサブスクライブ トピックを介して
Lチカ
超音波センサの
取得データを送信
green メッセージ受信
red メッセージ受信
緑に光る
赤く光る
ホストから
std_msgs/String
のデータ出版
センサの値をパブリッシュコールバック関数
LEDの発光
コールバック関数
標準出力
github.com/tlk-emb/mROS
おわりに
• 組込みデバイス向けROSノードの軽量実行環境
− 既存ROSパッケージをそのまま使える,かも!
− ROS1ノードの省電力化に使える,かも!?
− リアルタイム性能の向上に使える,かも!?
• ユーザ様募集中!!
− ROS1を使っているけど資源制約が厳しい方
− 開発済みのROS1資産を組込み化したい方
− 結局ROSマスタ必要やん?時代はROS2!!という方
一緒にROSマスタ組込み化/ROS2対応に
取り組みませんか!??
12
そんな方はLet’s pull!!

Weitere ähnliche Inhalte

Mehr von Hideki Takase

IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
Hideki Takase
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
 

Mehr von Hideki Takase (20)

ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワークElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
 
Rclex: ElixirでROS!!
Rclex: ElixirでROS!!Rclex: ElixirでROS!!
Rclex: ElixirでROS!!
 
QoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentQoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/Eloquent
 
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
 
ROSCon2019 参加報告:オーバビュー+α
ROSCon2019 参加報告:オーバビュー+αROSCon2019 参加報告:オーバビュー+α
ROSCon2019 参加報告:オーバビュー+α
 
ElixirでFPGAを設計する
ElixirでFPGAを設計するElixirでFPGAを設計する
ElixirでFPGAを設計する
 
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
 
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けてZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
 
Cockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with ElixirCockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with Elixir
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
 
TOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYANTOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYAN
 
ElixirでFPGAハードウェアが作れちゃう,かも!!?
ElixirでFPGAハードウェアが作れちゃう,かも!!?ElixirでFPGAハードウェアが作れちゃう,かも!!?
ElixirでFPGAハードウェアが作れちゃう,かも!!?
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
 
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
 
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォームZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
 
mROSをクラウド/仮想環境に連携させてみる
mROSをクラウド/仮想環境に連携させてみるmROSをクラウド/仮想環境に連携させてみる
mROSをクラウド/仮想環境に連携させてみる
 
Elixirでハードウェアが作れちゃう,かも!!? データフロー型ハードウェア設計環境Cockatriceのご紹介
Elixirでハードウェアが作れちゃう,かも!!?データフロー型ハードウェア設計環境Cockatriceのご紹介Elixirでハードウェアが作れちゃう,かも!!?データフロー型ハードウェア設計環境Cockatriceのご紹介
Elixirでハードウェアが作れちゃう,かも!!? データフロー型ハードウェア設計環境Cockatriceのご紹介
 
Design Concept of a Lightweight Runtime Environment for Robot Software Compo...
Design Concept of a LightweightRuntime Environment for Robot SoftwareCompo...Design Concept of a LightweightRuntime Environment for Robot SoftwareCompo...
Design Concept of a Lightweight Runtime Environment for Robot Software Compo...
 
mROS:組込みデバイス向けのROS1ノード軽量実行環境
mROS:組込みデバイス向けのROS1ノード軽量実行環境mROS:組込みデバイス向けのROS1ノード軽量実行環境
mROS:組込みデバイス向けのROS1ノード軽量実行環境
 

mROS:組込みデバイス向けROSノードの軽量実行環境