$30 off During Our Annual Pro Sale. View Details »

(発表紹介)ROS 2 for Consumer Robotics: the iRobot Use-Case

(発表紹介)ROS 2 for Consumer Robotics: the iRobot Use-Case

ROSCon 2019で発表された"ROS 2 for Consumer Robotics: the iRobot Use-Case"(邦題:消費者向けロボットにおけるROS 2 iRobotのユースケース)の発表紹介です。

https://roscon.ros.org/2019/#day-2-november-1st

Yutaka Kondo

November 29, 2019
Tweet

More Decks by Yutaka Kondo

Other Decks in Programming

Transcript

  1. 消費者向けロボットにおけるROS 2
    iRobotのユースケース
    ROS 2 for Consumer Robotics: the iRobot Use-Case
    近藤 豊
    Alberto Sorogna, Juan Oxoby, Dhiraj Goel (iRobot)
    1

    View Slide

  2. ⾃⼰紹介
    近藤 豊
    • 博⼠(⼯学)
    • ~2018
    カワダロボティクス
    • 2018~
    Preferred Networks
    • 2019.8.13
    世界初のROS2本出版
    2

    View Slide

  3. ROS 2の計算資源
    デスクトップ:ROS 2
    • いわゆる普通のROS 2
    マイクロコントローラ:micro-ROS
    • マイコン⽤のROS 2
    • DDS-XRCEによるブローカを介したROS 2ネットワーク参加
    • https://micro-ros.github.io
    その中間の計算資源では?
    • 低コスト、LINUXベース、組み込みハードウェア
    • 単⼀プロセスアプリケーション
    • 同⼀ネットワークに数百ロボット参加
    3

    View Slide

  4. RasPi 2を
    使った性能評価
    許容オーバヘッド
    • 20%のCPU負荷増加
    • 20MBのRAM増加
    • ⼗分速い応答速度
    • 通信の無⽋損
    ROS 2 Performance
    Framework
    • 任意のユーザ定義ROS 2
    プログラムの性能評価
    • 可読性が⾼いログ
    • https://github.com/irobot-
    ros/ros2-performance
    4

    View Slide

  5. ⼊⼒
    5

    View Slide

  6. 出⼒
    6

    View Slide

  7. Fast-RTPSを
    使った評価結果
    メッセージの⽋落
    RAMの使いすぎ
    7
    ⻘:実測値 ⾚:許容値

    View Slide

  8. CyclonDDSを
    使った評価結果
    すべての値が許容値内
    Raspberry Piでも許容
    可能な性能
    8
    ⻘:実測値 ⾚:許容値

    View Slide

  9. 新しいプロセス
    内通信を使った
    性能評価
    CPU使⽤率の半減
    応答性の改善
    メッセージの⽋落なし
    9
    ⻘:実測値 ⾚:許容値

    View Slide

  10. 新しいプロセス
    間通信
    iRobotによる改善
    RMW層での共有メモリ
    実装ではなく、rclcpp
    での共有メモリ実装
    ⼩さなメッセージでも
    効果⼤
    10
    https://github.com/irobot-ros/ros2-performance/blob/master/proposals/intraprocess_communication.md

    View Slide

  11. 現実課題への
    適⽤
    課題設定
    • ~1000台のロボットの同⼀
    ネットワーク参加
    • 1台あたり~35トピック送信
    • ~5のサブネット接続
    11

    View Slide

  12. 解決策
    12
    解1:デフォルトのDDS設定
    • 遅い
    • 信頼性の低い相互接続
    • ネットワーク過負荷
    解2:環境変数
    ROS_DOMAIN_IDの設定
    • ROS_DOMAIN_IDの枯渇問題
    解3:マルチキャスト検出機能
    の無効化
    • 接続先のIPアドレスを使ったユニ
    キャスト

    View Slide

  13. CycleDDSを使ってみる(おまけ)
    https://index.ros.org/doc/ros2/Tutorials/Working-
    with-Eclipse-CycloneDDS/
    $ sudo apt install ros-
    ${ROS_DISTRO}-rmw-cyclonedds-
    cpp
    $ export
    RMW_IMPLEMENTATION=rmw_cyclone
    dds_cpp
    $ ros2 run demo_nodes_cpp talker
    13

    View Slide

  14. 14

    View Slide