Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
消費者向けロボットにおけるROS 2 iRobotのユースケース ROS 2 for Consumer Robotics: the iRobot Use-Case 近藤 豊 Alberto Sorogna, Juan Oxoby, Dhiraj Goel (iRobot) 1
Slide 2
Slide 2 text
⾃⼰紹介 近藤 豊 • 博⼠(⼯学) • ~2018 カワダロボティクス • 2018~ Preferred Networks • 2019.8.13 世界初のROS2本出版 2
Slide 3
Slide 3 text
ROS 2の計算資源 デスクトップ:ROS 2 • いわゆる普通のROS 2 マイクロコントローラ:micro-ROS • マイコン⽤のROS 2 • DDS-XRCEによるブローカを介したROS 2ネットワーク参加 • https://micro-ros.github.io その中間の計算資源では? • 低コスト、LINUXベース、組み込みハードウェア • 単⼀プロセスアプリケーション • 同⼀ネットワークに数百ロボット参加 3
Slide 4
Slide 4 text
RasPi 2を 使った性能評価 許容オーバヘッド • 20%のCPU負荷増加 • 20MBのRAM増加 • ⼗分速い応答速度 • 通信の無⽋損 ROS 2 Performance Framework • 任意のユーザ定義ROS 2 プログラムの性能評価 • 可読性が⾼いログ • https://github.com/irobot- ros/ros2-performance 4
Slide 5
Slide 5 text
⼊⼒ 5
Slide 6
Slide 6 text
出⼒ 6
Slide 7
Slide 7 text
Fast-RTPSを 使った評価結果 メッセージの⽋落 RAMの使いすぎ 7 ⻘:実測値 ⾚:許容値
Slide 8
Slide 8 text
CyclonDDSを 使った評価結果 すべての値が許容値内 Raspberry Piでも許容 可能な性能 8 ⻘:実測値 ⾚:許容値
Slide 9
Slide 9 text
新しいプロセス 内通信を使った 性能評価 CPU使⽤率の半減 応答性の改善 メッセージの⽋落なし 9 ⻘:実測値 ⾚:許容値
Slide 10
Slide 10 text
新しいプロセス 間通信 iRobotによる改善 RMW層での共有メモリ 実装ではなく、rclcpp での共有メモリ実装 ⼩さなメッセージでも 効果⼤ 10 https://github.com/irobot-ros/ros2-performance/blob/master/proposals/intraprocess_communication.md
Slide 11
Slide 11 text
現実課題への 適⽤ 課題設定 • ~1000台のロボットの同⼀ ネットワーク参加 • 1台あたり~35トピック送信 • ~5のサブネット接続 11
Slide 12
Slide 12 text
解決策 12 解1:デフォルトのDDS設定 • 遅い • 信頼性の低い相互接続 • ネットワーク過負荷 解2:環境変数 ROS_DOMAIN_IDの設定 • ROS_DOMAIN_IDの枯渇問題 解3:マルチキャスト検出機能 の無効化 • 接続先のIPアドレスを使ったユニ キャスト
Slide 13
Slide 13 text
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
Slide 14
Slide 14 text
14