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

Cc568a0b1284645f9fb927b2343eb87e?s=47 Yutaka Kondo
November 29, 2019

(発表紹介)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

Cc568a0b1284645f9fb927b2343eb87e?s=128

Yutaka Kondo

November 29, 2019
Tweet

Transcript

  1. 消費者向けロボットにおけるROS 2 iRobotのユースケース ROS 2 for Consumer Robotics: the iRobot

    Use-Case 近藤 豊 <yutaka.kondo@youtalk.jp> Alberto Sorogna, Juan Oxoby, Dhiraj Goel (iRobot) 1
  2. ⾃⼰紹介 近藤 豊 • 博⼠(⼯学) • ~2018 カワダロボティクス • 2018~

    Preferred Networks • 2019.8.13 世界初のROS2本出版 2
  3. ROS 2の計算資源 デスクトップ:ROS 2 • いわゆる普通のROS 2 マイクロコントローラ:micro-ROS • マイコン⽤のROS

    2 • DDS-XRCEによるブローカを介したROS 2ネットワーク参加 • https://micro-ros.github.io その中間の計算資源では? • 低コスト、LINUXベース、組み込みハードウェア • 単⼀プロセスアプリケーション • 同⼀ネットワークに数百ロボット参加 3
  4. RasPi 2を 使った性能評価 許容オーバヘッド • 20%のCPU負荷増加 • 20MBのRAM増加 • ⼗分速い応答速度

    • 通信の無⽋損 ROS 2 Performance Framework • 任意のユーザ定義ROS 2 プログラムの性能評価 • 可読性が⾼いログ • https://github.com/irobot- ros/ros2-performance 4
  5. ⼊⼒ 5

  6. 出⼒ 6

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

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

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

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

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

    11
  12. 解決策 12 解1:デフォルトのDDS設定 • 遅い • 信頼性の低い相互接続 • ネットワーク過負荷 解2:環境変数

    ROS_DOMAIN_IDの設定 • ROS_DOMAIN_IDの枯渇問題 解3:マルチキャスト検出機能 の無効化 • 接続先のIPアドレスを使ったユニ キャスト
  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
  14. 14