この記事は ROS Advent Calendar 2021 の11日目です.
昨日の記事は @youtalk さんの「C言語用ROS2クライアントライブラリrclcのmacOS Montereyビルド」でした.ウチにはまだ新型Macbook Proが届いてこないです,,,
おしらせ:本記事の2022年更新版を執筆しています.合わせてご笑覧ください.
まえおき
みなさんmicro-ROS大好きですよね??
組込みでROS 2がイゴくやつです.
今年の7月に開催された rosjp #43 組み込み勉強会 では,LTの7件中の3件の発表がmicro-ROSに関するものでした.もはやROS界隈では圧倒的な知名度と地位を確立しております.
でもあれ,agent立てなかんかったりプログラミングモデルが固有だったり,アレじゃないですか??(個人の感想です
ということで,そんなモヤモヤを脱却すべく,mROS 2というものを作っています,というご紹介です.
どんなの??
ざっくり言うと,こんな感じです.
- agent無用で組込みデバイスがhost PCと軽量にROS 2通信できます.
- APIはだいたいRclcpp準拠なのでスムーズに開発移行できるはずです.
- 下回りはTOPPERS/ASP3カーネルを使っていてたぶんリアルタイム性が高いです(しらんけど
9/16に開催されたROSCon JP 2021にて「ROS 2 Client Library for E^2」というタイトルにて講演させていただきました!
動画アーカイブが公開されていますので,コチラ見ていただくのが早いです.前半はちょっと別の話しでして,mROS 2の紹介は10:40頃から始まります.
SlideShareはP.13からです.
デモはこんな感じです.
そんでもって10/20-21にオンライン開催されたROS World 2021のLT Videoにエントリーしたところ,無事に投影されました!
コチラもVimeoより.08:09からです(いや冒頭の rmw_email
おもろいけども
mbed対応も!
rosjp #44 LT大会でsmorita_embさんから対応したでよっ!報告をいただきました.圧倒的!感!謝!!
YouTubeアーカイブの 39:53 からです.
どうやってイゴかすの?
mROS 2は,主に通信機能とRclcppほぼ準拠のAPIを提供するコア部分を https://github.com/mROS-base/mros2 のリポジトリとして公開しています.
組込みはカーネルとかボードとかCPUでいろいろバリエーションがありますので,ターゲットとするカーネルとボードに応じて,上記の mros2 を submodule として取り込んだリポジトリをそれぞれ設けてメンテしています.
READMEもそれなりに頑張って書いていますので,そちらに沿ってだいたいイゴかせるはずです.
mros2-asp3-f767zi
- カーネル:TOPPERS/ASP3
- ボード:STM32 NUCLEO-F767ZI
mros2-mbed
- カーネル:Mbed OS 6
- ボード:Mbed対応でEthernetポート付きのもの
- だったら,なんでもいけるはず!!?
- 開発チームではSTM32 NUCLEO-F767ZIとF429ZIで動作を確認しています.
すぐに試してみたい方は,こちらのMbed版が良いかと思います.
--net=host
が必須なので母艦がLinux機であるある必要がありますが,Docker環境を用いることで,クロスコンパイルもホストのROS 2ノード実行もさくっとたった5分で!試せる手順をREADMEにて紹介しています.それに,最新の更新にてFoxyでも正常にPub/Sub通信どちらも出来るようになりました(ASP3版はまだ未対応なのです,,, → v0.2.1にてASP3版でもFoxy対応できました!!
それと,Ethernetポートの付いてるMbed対応なボード,一般の誤家庭でしたら1枚くらい床に転がってません??
上記の2種類以外(特にSTM32以外)で動作確認できたよっということがあれば,ぜひ教えてください.
どちらにしてもぜひ試してみてもらえたら嬉しいです.
ちゃんと動かなかったりREADME手順にミスとか見つけられたら,ぜひぜひIssueなり報告いただけましたら泣いて喜んじゃいます.
ちなみに,すでに動作確認な報告もちらほらと,,, あざまっす!!
あれっでも,,,
「あれっmicro-ROSもなんか最近agent不要になったんじゃないの??」っとお気づきの方もいらっしゃるかもです.
はい,,, がむばります,,,
これからどうするの??
なんだかリンク集みたいな記事になってしまって申し訳ないです.
いろいろ喋る機会もありまして動画アーカイブがちゃんと残っているし,READMEそれなりに頑張って整備しているしで,Qiita記事として書くことが無くなってしまっていました.
まぁ年の瀬の記録として,いろんなリンク情報をひとまとめにしておくのも大事なんじゃないかなということで,ご容赦いただけましたらです.
これからもmROS 2の開発はどんどん続けていきますし,なんならまだまだ絶賛進行中です.~~ASP3版でのFoxy対応もちゃんとしたいし,~~年明けには大きめの新機能の紹介ができるかもかも??
→ v0.2.1にてASP3版でもFoxy対応できました!!
ぜひGitHubにStar & Watchを付けて,今後の活動を眺め見ていただけましたら幸いです.
12日目の記事は @chikuta さんです.ロボットになりたいですねぇ.