Upgrade to Pro — share decks privately, control downloads, hide ads and more …

けっきょくmROS 2ってなんなのか?

けっきょくmROS 2ってなんなのか?

ALGYAN x STM x mROS-base:mROS 2 ハンズオン!
2022/09/31
https://algyan.connpass.com/event/259028/

ハンズオン資料
https://docs.google.com/document/d/14tb6riEkbYYiEMxBEIIdI4j2KYm1JenvI23AvOBuCHU/edit?usp=sharing

ハンズオン開催当日のYouTubeアーカイブ
https://youtu.be/Hjo1ZfefjL4?t=1158

takasehideki

October 01, 2022
Tweet

More Decks by takasehideki

Other Decks in Technology

Transcript

  1. @takasehideki
    @ShintaroHosoai
    けっきょく ってなんなのか︖
    〜ROS 2の復習︖紹介︖も交えつつ〜

    View Slide

  2. Hobby
    Recent R&D
    Affiliation
    Mission
    あらゆる
    モノ・コトと
    ヒトを繋げる
    設計基盤の
    確⽴
    最適化 設計技術
    良いモノ を 誰でも楽に
    つくることができる世界へ
    組込み/IoTコンピューティング基盤を⽀える
    プラットフォーム技術と設計⽅法論
    @takasehideki
    ശ ఉ
    ϩʔΧϧ؀ڥ
    ηϯγϯά
    ̇
    ̇
    ̇
    ө૾
    Ի
    Թ౓
    ࣪౓
    ѹྗ
    ৼಈ
    Edge AI
    ޯ഑ܭࢉɾߋ৽
    -PTT
    8FJHIU
    ਪ࿦
    ੍ޚ
    ΢ΣΞϥϒϧ
    σόΠεɾ
    ϔϧεέΞ
    ϩϘοτ
    ϞϏϦςΟ
    ೖྗ ग़ྗ
    ϑΟʔυ
    όοΫ
    Edge
    AI
    Edge
    AI
    Edge
    AI
    Edge
    AI
    Fog AI
    ू໿ ෼഑
    ϩʔΧϧ؀ڥ
    Fog AI
    Edge
    AI
    Edge
    AI
    ϩʔΧϧ؀ڥ
    Fog AI
    Edge
    AI
    Edge
    AI
    Cloud
    MEC
    BEAM
    クラウド
    BEAM
    エッジ
    BEAM
    最適配分アルゴリズム
    透過型分散プラットフォーム
    BEAM
    システム開発者
    デプロイされる
    コード






    評価アプリ

    評価アプリ



    評価アプリ




    評価アプリ





    View Slide

  3. Software
    Engineering
    Embedded
    System
    Modeling
    ほそあい しんたろう
    略歴
    都島⼯業⾼校
    →近⼤⽣物理⼯(B)
    →JAIST(M,D)
    →九⼤研究員
    →チェンジビジョン
    →東⼤研究員 なう
    @ShintaroHosoai
    細合 晋太郎
    @s-hosoai 細合晋太郎
    Software
    Hardware
    Electronics
    Mechatronics
    DIY
    3D
    cad
    3D
    print
    Software
    product line
    DSL
    Web
    Cloud
    AI
    ROS
    専門分野
    趣味
    ・ダイビングで海底漁り
    ・プログラミング言語漁り
    ・Steamでゲーム漁り
    ・ハヤカワでSF漁り
    ・つくりたいもの漁り

    View Slide

  4. (Robot Operating System)
    • Plumbing: 出版購読型の通信ミドルウェア
    • Tools: プロジェクト管理,デバッグ,可視化,等
    • Capabilities: 膨⼤なライブラリ・パッケージ
    • Ecosystem: 世界規模の強⼒なOSSコミュニティ
    ロボットソフトウェアの開発を加速するプラットフォーム
    http://www.ros.org/about-ros/
    4
    https://youtu.be/9wM_l6Y1IJI

    View Slide

  5. 通信ミドルウェアとしての
    • Publish / Subscribe messaging infrastructure
    —ROSノード︓ロボットシステムを構成する機能単位
    —Topicを介した出版購読型通信︓基本的に⾮同期・疎な通信⽅式
    üノードの登録・変更・削除・配置が容易に実現できる
    ü障害時にはノード単位で再起動と復旧ができる
    node1
    node2
    node3
    node4
    Topic1
    Topic2
    node5
    出版(Publish) 購読(Subscribe)
    msg
    msg
    msg
    msg
    • その他の通信⽅式
    — Service: 同期式
    — Action: 同期と⾮同期の組合せ
    — Parameter: 多変量辞書
    5

    View Slide

  6. ROS 2 の階層構造
    … …
    6
    rclcpp rclpy
    node.cpp node.py
    RCL (ROS Client Library)
    RMW (ROS MiddleWare)
    DDS B
    DDS A
    General Purpose OS
    • 共通の基盤機能を提供
    • C⾔語による実装
    • 任意の⾔語から呼び出して
    そのライブラリを開発可能
    • DDS通信機能を抽象化すAPI層
    • 複数のDDS実装から選択可能
    rclrs
    node.rs
    DDS C
    DDS (Data Distribution Service)
    • OMG標準仕様として規定
    • 出版購読型の通信機能を提供
    • RTPSによる通信相⼿の⾃動探索

    View Slide

  7. 7
    つまり,,,
    • ROSの本質は通信にあり
    — ROSノード (機能単位) の疎な結合⽅式
    — ROS 2ではDDS/RTPSに則った通信⽅式
    — 基本はTopicを介した出版購読型
    http://www.ros.org/about-ros/
    node1
    node2
    node3
    node4
    Topic1
    Topic2
    node5
    出版(Publish) 購読(Subscribe)
    msg
    msg
    msg
    msg
    ROS2/DDS通信技術の
    IoT分野への展開にも期待
    • 通信性能の向上
    — 応答性︓遅延時間
    — リアルタイム性︓遅延変動
    • 消費電⼒の削減
    mROS-base/mros2
    meets EMB for IoT!!

    View Slide

  8. 8
    X どうやるの︖︖
    micro-ROS
    GPC
    agent
    master
    node
    node
    client node
    dds-xrce
    rtps
    rtps
    m
    • RTPS︓DDSの通信プロトコル
    — SPDP/SEDP︓⾃律的に通信相⼿と
    通信経路を探索/確⽴
    • micro-ROS︓ROS 2の組込み対応
    — POSIX準拠の複数のRTOSをサポート
    — Micro-XRCE-DDS を利⽤
    ØRTPS通信の仲介に agent が必要
    agent無⽤で
    ROS 2通信︕
    Participant_A
    SPDP
    Endpoint
    Writer
    Reader
    SEDP
    Endpoint
    RTPS
    Endpoint
    HistoryCache
    Writer
    Reader
    Publisher
    Subscriber
    Topic_1
    Topic_2
    P_E
    W_E
    R_E
    W_E
    R_E
    P_E
    S_E
    T_3
    P_D
    W_D
    R_D
    W_D
    R_D
    P_D
    S_D
    T_2
    T_3
    P_C
    W_C
    R_C
    W_C
    R_C
    P_C
    S_C
    T_1
    T_2
    P_B
    W_B
    R_B
    W_B
    R_B
    P_B
    S_B
    P_A C
    1
    D
    2
    B
    2
    W_E
    R_E
    W_E
    W_D
    R_D
    W_D
    R_D
    P_D
    T_2
    W_C
    R_C
    W_C
    R_C
    T_2
    W_B
    R_B
    W_B
    R_B
    P_B
    S_B
    P_A
    T_1
    T_2
    P_B
    T_2
    P_A
    T_1
    T_2
    P_C
    T_1
    P_A
    T_1
    T_2
    P_D
    T_3
    T_2
    P_A
    T_1
    T_2
    P_E
    T_3

    View Slide

  9. 9
    mROS 2??
    https://vimeo.com/638040779/8a10335711
    このとき
    v0.1.4,,,
    https://www.stmcu.jp/design/thirdparty/os/91883/ Embedded devices
    HAL library
    RTOS (ASP3 or Mbed)
    mROS 2 application
    mROS 2 comm. lib.
    mROS 2 API
    UDP stack (lwIP)
    RTPS (embeddedRTPS)
    mROS-base/mros2
    ROSConʼ22も
    お楽しみに,,,

    View Slide

  10. Embedded devices
    HAL library
    RTOS (ASP3 or Mbed)
    mROS 2 application
    mROS 2 comm. lib.
    mROS 2 API
    UDP stack (lwIP)
    RTPS (embeddedRTPS)
    10
    ソフトウェア構成
    通信の⾃律性の確保
    RTPSの仕様に則った通信の実現
    軽量かつ効率的な通信処理の実現
    C++実装 / CPU 数百MHz / Mem 数MB程度
    ⾼品質なリアルタイムOSの採⽤
    通信性能・メモリ軽量性の向上にも寄与
    基本型に対応した出版購読APIの提供
    開発⽣産性=rclcppとの互換性を考慮
    mROS-base/mros2 多種デバイスへの
    展開の容易化も考慮
    ASP3ではCMSIS
    互換レイヤを整備

    View Slide

  11. 11
    補⾜︓embeddedRTPS [A. Kampmann+ ITSC'2019]
    • C++実装による組込み向けのRTPSスタック
    —UDP/IP には lwIP (Raw Mode) を採⽤
    —シリアライズに eProsima Micro-CDR を利⽤
    • 主な機能と利点
    —Discovery: SPDP と SEDP の機能を提供
    —Interoperability: FastDDS 2.3.1 との疎通確認済み
    —QoS Policies: reliable と best-effort に対応
    —UDP Multicast: PR#4 より対応
    —Message size: lwIP バッファサイズまで対応可能
    mROS-base/mros2

    View Slide

  12. mROS-base/mros2 12
    Platform Variation

    View Slide

  13. 13
    Getting started!!
    $ git clone https://github.com/mROS-base/mros2-mbed
    $ cd mros2-mbed
    $ ./build.bash all [TARGET] echoreply_string
    mROS-base/mros2
    also available with Keil Studio Cloud
    a.k.a Mbed Online Compiler
    https://os.mbed.com/users/smoritaemb/code/mbed
    -os-example-mros2/

    View Slide

  14. mROS-base/mros2 14
    論よりRUN!! https://twitter.com/takasehideki/status/
    1505066116921524228
    mturtlesim
    $ ros2 run mturtlesim turtlesim_node
    $ picocom /dev/ttyACM0
    EMB board + analog joystick
    publish Twist

    View Slide

  15. mROS-base/mros2
    Check it out!!
    Please give us the Star!
    & your contribution!!
    https://github.com/mROS-base/mros2
    • support other boards & TOPPERS kernels
    • implement new targets with POSIX compliant RTOS
    • support QoS control, Service, Action, ...
    • check with Galactic & support Humble??

    View Slide

  16. mROS-base/mros2 16
    圧倒的︕感︕謝︕︕
    本研究の⼀部は,JST CREST JPMJCR21D2 の⽀援ならびに
    国⽴研究開発法⼈情報通信研究機構の委託研究(04001)により
    得られたものである.
    @ken551
    @Hibagon1go
    @smoriemb
    @tmori
    @hakuturu583
    @Haru-T

    View Slide

  17. 17
    9⽉にハンズオン,開催決定︕︕
    mROS-base/mros2
    もうハラをくくって
    やっちゃうぞぉ,,,
    しらんけど :D
    詳細の続報は
    #ALGYAN にて︕
    本⽇は9⽉31⽇!!
    それではハンズオンを
    楽しみましょう︕
    https://docs.google.com/document/d/
    14tb6riEkbYYiEMxBEIIdI4j2KYm1JenvI
    23AvOBuCHU/edit?usp=sharing

    View Slide