SlideShare a Scribd company logo
mros2 on Mbed
ROSCon JP 2021に行ってきました。
Mbedとは
• Arm社が提供するマイコン向け開発プラットフォーム
• Single Board Computer(SBC)御三家の一つ
• 核となるのはCortex M※1を搭載したMbed Enabled なボードで、※1 M以外稀にAもある
ソフトウェアスタックとツールチェイン、
クラウド環境などのインフラ全体を指す。
Mbed
Interface chip
Mbed Enabled ボード
USB接続
Cortex M
mbed Device connector
Peripherals
Peripherals
mbed Compiler
Peripherals
Mbedの開発環境 SBC御三家(個人の感想)
人気
出来ること
展示準備風景
Mbed Enabled Boards
• ARMの互換性認証をパスしたサードパーティが
提供している
• Armマイコンのチップベンダが各社強みを活かせる形のSBCを提供
• 最新のMbed OS6に対応しているものだけ
でも102枚あった。(2021/06/24時点)
• スイッチサイエンスさんからも出ています。
• Ethernetが初めから載っているボードも
多い。
→母屋乗取り系のEthernet Shieldは
必要なし
Mbed Eanbled Boardsの一覧
https://os.mbed.com/platforms/
明日おもしろいもの発表
するから見に来いよ!
お、、、おうっ。
思わぬところでLTのネタを拾う。
Mbed ソフトウェアスタック
• ネットワークスタックだけでなくOTAや暗号化通信等
が含まれ商用RTOS顔負けの重厚さをもつ。
• これらのソフトウェアスタックがApache 2.0ライセンスで無料で提供される。
Mbed OS 6の構成図
https://monoist.atmarkit.co.jp/mn/articles/2009/03/news027.html
mros2予習→移植開始
Mbedのクラウド環境
• Mbedのソフトウェアスタックとつながるクラウド環境(Pelion Device
Management)がインターネット上に用意されている。
• AWSのように無料アカウントから始めることができ、デバイスの
開発とクラウドアプリの開発を並行して即開始できる。
Pelion Device Managementの構成図
https://developer.pelion.com/docs/device-management/v4.1/introduction/index.html
開場
• クラウド上にオンラインコンパイラが用
意されておりPCへのインストールなし
で即開発できるようになっている。
• 作ったコードはWikiのようなシステムで
他のユーザと共有することもでき、また
公開されているコードをインポートする
ことができる。
• ボードを買ってくれば2分でLチカが出
来るらしい。
※"mbedでプログラミング"
ENJOY work Channel
https://www.youtube.com/watch?v=Roa5nCbcm0k
Mbed オンラインコンパイラ
Mbedのオンラインコンパイラ
オープニング
仕事で使うには良いところ/悪かったところ
[良いところ]
• ボードの種類が豊富で入手性が良い。
→ 展示会でタダでもらえることがよくあった。
• 各ボードベンダからデバイスドライバが提供されている。
→ いちいちUARTドライバとかを書かなくてもよい。
• C++によるインタフェースがボードの差異を隠蔽している。
→ 一度作ったプログラムが他のボードでも殆ど変更なしに動く。
[悪かったところ]
• コンパイラがオンラインでしか使えない。
→ Cmake等を多用するようなプロジェクトをインポートするのは骨が折れる。
• デバッグ環境がなかった。
→ デバッグは基本printfと気合と根性
さっと開発用の治具とかは作れちゃうけど、、、
デバッガ無しでターゲットボードとして開発ができるか?
コードをクラウドに置けない事情がある場合もある。
CIに使えないじゃん。
感染対策は大事
Mbed CLI/CLI2 と PyOCD
[Mbed CLI/CLI2]
• オフライン環境にインストールできるToolchain
• CLI(1)は比較的前からあったが独自色が強く、問題があったとき調査が難しかった。
• 去年CLI2がリリース、CMakeベースに移行して見通しが良くなった。
[PyOCD]
• CMSIS-DAP経由でJTAGデバッグができるOpen On-Chip DebuggerのPython版
• これ単体でGDB Serverとして動作する。
• CMSIS-DAPはMbedチップのファームに搭載されているの
で、これを使えばJTAG相当のデバッグができる。
CMSIS-DAPインターフェース
https://os.mbed.com/users/MACRUM/notebook/cmsis-dap-interface-firmware/
展示説明はマスクで対応
仕事でも使えそうな開発環境
• 開発環境はなるべくDocker Containerの中に収め
たい。
• エディタやラインレベルのデバッガとしては
VS Codeを使う。
• USBをDockerに見せようとすると碌なことが
無いのでPyOCDはホストで動作
• VS Codeから普通に開発・デバッグができる
環境が用意できた。
→ で、これを使って何するか?
Mbed
Interface chip
Mbed Enabled ボード
USB
Cortex M
Peripherals
Peripherals
Peripherals
Linux PC
PyOCD
/dev/ttyACM0
Docker Container
VS
Code
Mbed
CLI2
TCP/IP
Port 3333
Sharing
Workspace
仕事で使える?Mbed CLI開発環境
簡単な動作確認結果
登壇者もマスク着用
で、これを使って何をするか?
• 会社で推しているのでROSで何かしたい。
• 最近micro-ROSのチームがMbed版を提供し始めた。
https://github.com/micro-ROS/micro_ros_mbed
(ただしUART通信)
• ただ、IoTネイティブなMbedなんだから
直接RTPSを話すROS2環境を構築した
い。
• XRCE-DDSにニーズが有ることは理解
できる。
ただ、マイコンベースでリアルタイム
が求められるROS2 ノードの用途も有
るはず。
micro-ROS のソフトウェアスタック
https://micro.ros.org/img/micro-ROS_architecture.png
豪華弁当ごちそうさまでした。
そうだmros2がある!
• ROSCon JP 2021(9月16日)で発表された
”agent無用のROS 2軽実行環境”
• 通信ミドルウェアにembeddedRTPS
+ lwIPを使っている。
• 現状TOPPERS上で動作しているが
他のプラフォームへの移植も検討
しているらしい。
• lwIPはMbedではバックエンドで
動作しているので簡単に移植
できるのでは?
ROSCON JP 2021でのmROS2の発表資料
https://www.slideshare.net/takasehideki/ros-2-client-library-for-e2-250206371
ドリンク・スナックもあります。
移植しました&動きました。
• ビルドだけなら割と簡単(色々ズル修正は必要)
• 動作させるためにはlwIPのパラメタ調整が必要だった。
• ROSCon JPデモ程度の動作
Dashing(PC) ⇔ Mbedボード
• PC側: 公式Dashingコンテナ
• Mbed側: NUCELO F429ZI
• 若干embedded RTPSが怪しい
挙動をしている。
(例: Locator 周り) ROSCon JP 2021のデモレベルの動作確認
両国なのでちゃんこ鍋です。
次はどうする?
• Mbedにはセンサやモータを使ったロボットの作例がたくさんある。
→ Mbedで動いているデバイスで ロボットをROSで制御したい。
• mros2の応答性が必要なのがいい。
→ 倒立振子(PID制御)にチャレンジ
• Mbed単体で制御できることを確認
→ mros2化&PIDをPCに移動
• 本質的にはAgentlessなのでPCは
Mbedで置き換え可能なはず。
参考にしたページ
倒立振子をサクッと作る | Natural Days (hirotakaster.com)
mros2の特性を生かした?デモ案
IMU
Motor
PID
PC
Mbedなロボット
こっちはMbed単体
でも無理でしたOrz
mros2 on Mbedが立ちました!
【結果】
• フラフラしているもののなんとか立ちました。
→ PIDスキルの問題
• 油断していると不意にコケます。
→ PCにRT patchを当ててないから?
• Pub/SubがString型なのは内緒
【まとめ】
• Mbedで普通に開発できるように
なってきました。
• mros2を使えばMbedアプリは
AgentlessにROS2化可能です。
• Mbedなデバイスを使った
ROS2ノードが増えるといいですね。 なんとか立ったmros2 on Mbed
こっちはMbed単体
でも無理でした。
ベタなお土産

More Related Content

PPTX
デプスセンサとその応用
PDF
ストリーミングのげんざい
PDF
オンラインゲームのRails複数db戦略
PDF
事例で学ぶ QCD向上のための運用改善
PDF
Pythonのmain関数
PDF
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
PDF
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
PDF
見やすいプレゼン資料の作り方 - リニューアル増量版
デプスセンサとその応用
ストリーミングのげんざい
オンラインゲームのRails複数db戦略
事例で学ぶ QCD向上のための運用改善
Pythonのmain関数
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
見やすいプレゼン資料の作り方 - リニューアル増量版

What's hot (20)

PDF
QoS for ROS 2 Dashing/Eloquent
PPTX
smarthrを支えるインフラ
PPTX
AWSで作る分析基盤
PPTX
これから始める Azure の基礎サービス: IaaS/PaaS
PDF
Git & ブランチモデルで学ぶ バージョン管理入門
PDF
Protocol Buffers 入門
PPTX
Nmapの真実
PDF
Web開発者が始める .NET MAUI Blazor App
PDF
SharePoint Framework Extension 基礎講座
PDF
技術ブログを書こう
PDF
WebRTC開発者向けプラットフォーム SkyWayの裏側
PPTX
脱RESTful API設計の提案
PDF
【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューション
PDF
デジタルゲームにおける 人工知能のワークフローと導入フロー
PDF
Githubを使って簡単に helm repoを公開してみよう
PDF
データとQC7つ道具を利用したDEVOPSプラクティスによる生産性改善
PDF
第1回 配信講義 計算科学技術特論A (2021)
PPTX
今さら聞けない人のためのDevOps超入門
PDF
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
QoS for ROS 2 Dashing/Eloquent
smarthrを支えるインフラ
AWSで作る分析基盤
これから始める Azure の基礎サービス: IaaS/PaaS
Git & ブランチモデルで学ぶ バージョン管理入門
Protocol Buffers 入門
Nmapの真実
Web開発者が始める .NET MAUI Blazor App
SharePoint Framework Extension 基礎講座
技術ブログを書こう
WebRTC開発者向けプラットフォーム SkyWayの裏側
脱RESTful API設計の提案
【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューション
デジタルゲームにおける 人工知能のワークフローと導入フロー
Githubを使って簡単に helm repoを公開してみよう
データとQC7つ道具を利用したDEVOPSプラクティスによる生産性改善
第1回 配信講義 計算科学技術特論A (2021)
今さら聞けない人のためのDevOps超入門
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Ad

Similar to mros2 on Mbed (20)

PDF
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
PPTX
ET2016 Smart Japan Alliance Llilum 161118
PDF
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
PPT
bc10 (Android 2.2対応) について @Gadget1 R2
PPTX
MBEDへのオーディオフレームワークの実装
PDF
【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!
KEY
Cocos2d-xのかんたんな紹介
PPT
IDCF クラウド meets Node-RED !
PDF
Db2リブランディングと製品動向 201707
PPTX
Azure IoT Edge の基本
PPTX
Windows 10 driver development (fixed, rev.2)
PPTX
Windows 10 driver development
PDF
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
PDF
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
PPTX
LLILUM and TinyCLR OS
PPTX
Oem pcのつくりかた
PDF
Cocos2d-xおよび関連サービスについて
PDF
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
PPT
トラ技オフ
ODP
Monomeeting 20081022
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
ET2016 Smart Japan Alliance Llilum 161118
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
bc10 (Android 2.2対応) について @Gadget1 R2
MBEDへのオーディオフレームワークの実装
【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!
Cocos2d-xのかんたんな紹介
IDCF クラウド meets Node-RED !
Db2リブランディングと製品動向 201707
Azure IoT Edge の基本
Windows 10 driver development (fixed, rev.2)
Windows 10 driver development
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
LLILUM and TinyCLR OS
Oem pcのつくりかた
Cocos2d-xおよび関連サービスについて
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
トラ技オフ
Monomeeting 20081022
Ad

mros2 on Mbed