ROS Watch

このページでは、ROSやロボットミドルウェアに関するさまざまなニュースを発信しています。


2022/09/16 eCal, Iceoryx

  • 最新の通信ミドルウェア (pub/sub)
  • eCAL
    • https://github.com/eclipse-ecal/ecal
    • enhanced Communication Abstraction Layer.
    • A fast publish-subscribe cross-plattform middleware using Shared Memory and UDP
  • Iceoryx
    • https://github.com/eclipse-iceoryx/iceoryx
    • Eclipse iceoryx™ プロジェクト
    • true zero-copy
    • DDSよりだいぶ早い模様

2022/09/16 ロボット工学アルゴリズムの Python コード コレクション PythonRobotics

  • ロボット工学アルゴリズムの Python コード コレクション
    • https://github.com/AtsushiSakai/PythonRobotics
  • 特徴:
    • 各アルゴリズムの基本的な考え方を提示するコード
    • 広く使用されている実用的なアルゴリズム集
    • 依存ライブラリが少ない

2022/09/16 AuthROS:イーサリアムに基づくROSシステム間での安全なデータ共有

  • AuthROS:イーサリアムに基づくROSシステム間での安全なデータ共有
  • 安全なデータ共有フレームワーク
  • ROS ノード間で交換される機密データの不変性とセキュリティを保証
  • SM2 鍵交換と SM4 平文暗号化メカニズム
  • 800KB の暗号化データから 6.34ms でダイジェストを生成
  • 安全なデータ交換、データ操作の検出、および Node Forging 攻撃保護を実現

2022/09/16 ROSを使っている会社のリスト ros-robotics-companies

  • ROSを使っている会社のリスト
    • GitHubリポジトリ上で公開
      • https://github.com/vmayoral/ros-robotics-companies
    • 現在348社登録済み

2022/09/06 NASA の次の宇宙飛行コンピュータ

  • チップメーカーSiFiveが同社の RISC-V 互換 CPU コアが、発表されたばかりの NASA の高性能宇宙飛行コンピュータ (HPSC: High-Performance Spaceflight Computer) のメインCPUとなることを発表 (9/6)
  • NASAのHPSCは長らく(20年以上)PowerPCを使用
    • PowerPCエンジニアの不足
  • SiFiveのHPSCプロセッサ
    • RISC-V4コア
    • AI/MLに最適化されたX280ベクトル演算8コア
  • RISC-V
    • オープンソース、ロイヤリティフリーなISAを持つCPU IP
    • 様々な拡張性を有するCPUアーキテクチャ
  • 対宇宙環境性能・対放射線性能
    • アーキテクチャ上の改良
    • チップ設計上の改良
    • プロセス上の改良などが必要

2022/09/05 パスタロボット TechMagic

  • プロントが丸の内にパスタロボットの店舗をオープン
  • ロボット:TechMagic社のP-Robo
    • パスタ自動調理ロボット
    • 1皿/min 以上の速度で調理可能
    • 特許技術
  • TechMagic社
    • 2,300 万ドル(約30億)の資金を調達
    • 調理ロボット主体で開発
      • P-ROBO
      • W-ROBO:食器洗浄・仕分け
      • M-ROBO:惣菜盛り付け等
      • D-ROBO:飲料給仕

2022/09/03 myAGV: Elephanto Robotics

  • Elephant RoboticsのAGV
    • メカナムホイールの全方向移動ロボット
    • RaspberryPi 4で制御
    • ROSサポート(ROS2はまだ)
    • ペイロード 2kg
    • LiDAR, IMU


2022/08/30 GAZEBO Garden、Ignition名称廃止

  • Ignitionという名称を廃止
    • Gazeboの新アーキテクチャ採用→Ignition
    • Ignition, Gazebo, Ignition-Gazeboなど紛らわしい
    • Ignitionの商標問題が発覚
  • 変更されるもの
    • Ignition → Gazebo, ign → gz に一律変更
    • Webサイト
    • GitHub Organization とリポジトリ
    • 名前空間、コマンドラインツール、ライブラリ、ディレクトリ、API、ファイル
    • UI
    • ドキュメント
  • タイムライン
    • GardenはエイリアスでIgnitionを継続
    • Citadel, Fortressは引き続きサポート
    • 将来のリリース:Ignitionエイリアスはすべて削除


2022/08/29 海上・砂浜清掃ロボット BeBot、Pixie Drone

  • SearialCleaners社のBeBot、Pixie Droneは砂浜や水上のクリーナーロボット
  • BeBot:遠隔操作の砂浜清掃ロボット
    • 1 時間あたり 32,000 平方フィート(約3000m^2)の清掃能力
  • Pixie Drone
    • リモート制御の水上ドローン
    • 1 回あたり最大200ポンド(約90kg)のゴミを収集
  • 五大湖のゴミ収集に活用
    • Meijer(中西部の小売業者)の取り組み
    • 大湖プラスチック クリーンアップ プログラム
    • マイクロプラスチック問題に対処


2022/07/11 PlanSys2

  • PlanSys2
    • PDDLベースのプランニングシステム
  • 主に4つのノードから構成される
    • Domain Expert
      • PDDLモデル情報(タイプ、述語、関数、およびアクション)
    • Problem Export
      • モデルを構成する現在のインスタンス、Predicate、関数、および目標
    • Planner
      • ドメインおよびProblem Expertsに含まれる情報を使用して、計画(一連のアクション)を生成
    • Executor
      • プランを取得し、アクションパフォーマー(各アクションを実装するROS2ノード)をアクティブ化し実行
    • プラン→ビヘイビアツリーに変換して実行

———-

2022/07/11 PlotJuggler

  • 高速で強力かつ 直感的な時系列を視覚化するツール
  • ドラッグアンドドロップのユーザーインターフェイス
  • ファイルからのデータロード
  • データのライブストリーミングに接続可能
  • ビジュアライゼーションレイアウト・構成を保存、再利用可能
  • OpenGLによる高速なビジュアライゼーション
  • 微分、移動平均、積分など変換可能
  • プラグインを使用して簡単に拡張できます


2022/07/11 ROS Learning Series (YouTube)

  • Robotics with Sakshayが提供するチュートリアルビデオ
  • 6本のビデオ
    • Introduction
    • Simulation Turtlebot3
    • ROS Concepts
    • Custom Mobile Robot
    • MoveIt! Robot Manipulation
    • ROS2

2022/07/11 Fast DDS Visualizer

  • DepthAI
    • SpatialAIプラットフォーム
    • Intel Movidius VPUを利用
    • OAKカメラシリーズで利用可能
  • DepthAI ROS2ドライバー
    • DepthAIをROS2で利用可能
    • 深度、RGB、モノラルカメラ出力
    • .h264ストリームを記録
    • X86 PC, ARMベースシステム対応
    • ROS2 Galactic, ROS2 Humble


2022/07/22 Fast DDS Visualizer

  • Fast DDS Visualizer
    • データをリアルタイムの2Dチャートで視覚化するグラフィカルデスクトップアプリケーションをリリース
    • データの抽出とその監視をリアルタイムで実行可能
  • 仕様
    • Windows and Linux
    • ライセンス:Apache 2.0, GPL 3.0 OSS
    • 無料で使用可能
    • ダウンロード時に氏名e-mail登録を求められる


2022/07/22 ATOM Calibration

  • ATOM Calibration
    • マルチセンサー、マルチモーダル、ロボットシステム用の一連のキャリブレーションツール
    • キャリブレーション手順のすべてのステップを容易にするためのいくつかのスクリプトを提供
    • 今の所ROS1のみ
    • 今後ROS2サポート予定
    • YouTubeにて動画リスト提供
      • https://www.youtube.com/watch?v=BYs1-H9vh0s&list=PLQN09mzV5mbI4h5IQt3Eu9kugSk-08mnY


2022/06/22 Humble / 22.04 RollingのFast-DDS通信障害

  • Humble / 22.04 RollingがFast-DDSに移行して以来、通信障害に関連する問題が増加
    • Fast-DDSのRMWレイヤーがリグレッションを起こしている
    • FastDDS without Discovery Server?
    • Nav2 lifecycle manager won’t startup nodes
      • https://github.com/ros-planning/navigation2/issues/2917)
      • Nav2のライフサイクルノードのステートが切り替わらない
      • callback_group_からコールバックを削除すると解決
      • FastDDSとCycloneDDSで挙動が異なる、タイマーの呼び出しタイミングの問題?
    • lifecycle manager wait for service should have a finite, or at least configurable, timeout
      • https://github.com/ros-planning/navigation2/issues/3033
      • ライフサイクルマネージャーに、エラーが発生している管理ノードを指定するとライフサイクルサービスが適切に作成されない
      • ライフサイクルマネージャがタイムアウトすべきところでデッドロックする
      • これもFastDDSが問題?

2022/05/21 DDSよるネットワークの停止問題

  • ROS2において設定が不十分の場合ネットワークが落ちる問題に遭遇
    • DDSを適切に設定しないと、マルチキャストパケットによりパケットフラッディングが発生する
  • 解決策:export ROS_LOCALHOST_ONLY=1に設定、あるいは以下のように設定↓
    • ホスト間通信ができなくなる
<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
  <Domain id="any">
    <General>
      <NetworkInterfaceAddress>lo</NetworkInterfaceAddress>
      <AllowMulticast>false</AllowMulticast>
    </General>
    <Discovery>
      <ParticipantIndex>auto</ParticipantIndex>
      <Peers>
       <Peer Address="localhost"/>
      </Peers>
      <MaxAutoParticipantIndex>120</MaxAutoParticipantIndex>
    </Discovery>
  </Domain>
</CycloneDDS>

  • V2

  • Discovery Protocolによるパケット数の違い

  • ↑のtutorialではFastDDSのDiscovery Serviceを設定する方法を解説
    • SDPに比べて、パケット数を半分以下にすることができる
    • V2なら15分の1にすることができる
    • でも、もともとDDSを導入したのはSPOFをなくすためでは?
  • Discovery Server
    • 複数利用可能、冗長構成、バックアップ構成は可能
    • SDPは使わずSDを使うべきか

2022/06/24 DDSよるネットワークの停止問題

  • ROS2において設定が不十分の場合ネットワークが落ちる問題に遭遇
    • DDSを適切に設定しないと、マルチキャストパケットによりパケットフラッディングが発生する
  • 解決策:export ROS_LOCALHOST_ONLY=1あるいは↓
    • ホスト間通信ができなくなる
<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
  <Domain id="any">
    <General>
      <NetworkInterfaceAddress>lo</NetworkInterfaceAddress>
      <AllowMulticast>false</AllowMulticast>
    </General>
    <Discovery>
      <ParticipantIndex>auto</ParticipantIndex>
      <Peers>
       <Peer Address="localhost"/>
      </Peers>
      <MaxAutoParticipantIndex>120</MaxAutoParticipantIndex>
    </Discovery>
  </Domain>
</CycloneDDS>


2022/06/24 ROSConJPプログラムリリース

  • ROSConJP 2022/10/19 @京都国際会館
    • ROSCon 10/19-21
  • 基調講演
    • 基調講演1: Airpeak S1ドローンのオーバービューとソニーでのROSの活用:藤田智哉、小林大 (ソニー)
    • 基調講演2: Open-RMFによるマルチフリートオペレーション:Michael Grey & Morgan Quigley (Open Robotics)
  • その他講演
    • Unreal Engineを用いたROS 2分散シミュレータの構築
    • ROSとNode-REDの組み合わせによるIT-OT連携システム開発の効率化
    • SROS 2 with OIDC(OpenID Connect) :ロボットと人を安全に繋ぐ技術


2022/06/20 pyrobosim


2022/06/13 Gazeboリリース (6/13) (Fortress, Citadel)

  • Gazeboリリース 2022/6/13
    • 主な新機能
    • 押し出し2Dポリラインジオメトリサポート→
    • エレベーターシステム→
    • JSON形式でメッセージを出力する


2022/6/10 ABBロボットROS2ドライバー

  • PickNikRoboticsとOptimaxSystemsInc.がABBロボットのROS2ドライバをリリース
  • 2つの異なるシミレーションモード
  • ROSでのシミュレーション用にros2_controlドライバーをエミュレート
    • ABB独自のRobotStudioソフトウェアと通信
    • IRB 1200-5/0.9マニピュレーター対応
  • GitHub
    • https://github.com/PickNikRobotics/abb_ros2
  • おまけ
    • TurtleBot3 ROS2 Humble対応
    • https://github.com/ROBOTIS-GIT/turtlebot3


2022/04/11 (ROS NEWS 4/11より) あなたのパッケージをROS2へアップグレードしてください!!(ROS2移行の呼びかけ?)


2022/04/13 Open Roboticsの求人

  • Open Robotics: 企業、アカデミック、政府と協力してロボットOSS・ハード開発をサポート
  • 開発対象
    • ROSコア
    • Gazebo
    • Open-RMF
    • 一般的なメッセージインターフェイスおよび関連する動作
  • オフィス
    • マウンテンビュー、カリフォルニア、シンガポール
  • 職種
    • DevOpsエンジニア:Linux / Cloud
    • ソフトウェアエンジニア:ロボット工学
    • ソフトウェアWebエンジニア:フロントエンド開発者


2022/04/13 New Ignition releases 2022-04-13 (Fortress, Edifice)

  • Edifice終了→Fortressへ
  • ハイライト
    • オンデマンドで画像キャプチャが可能にIMUセンサは任意の参照フレームでプリセットをサポート
    • センサは実行時に有効・無効にできる
  • Ignition Gazebo 6.8.0
    • 23のPR→様々な機能追加


2022/04/11 (ROS Newsより) Open Robotics の GoC (Google Summer of Code) のプロジェクトについて

  • Project List
    • Gazebo and Ignition
      • Gazeboにおけるメッシュフォーマットのローディング機能のサポート
      • Ignition レンダリングライブラリをベースとしたrvizの開発
      • Mininet-WiFi Ignition
      • Texture Domain Randomization
      • 新しいignition projectのためのツール開発
  • ROS2
    • Prototype multi-transport support in ROS 2
    • 現状ROS2では1つのロードされたRMW実装のみをサポートするが、同時に複数のトランスポート(ex. 共有メモリとDDS等)をサポートするようにする。
    • 予想サイズ350h
      • → OpenRTM2の相互運用機能と同じもの?

2022/04/21 Nav2 (ROS2 navigation stack) と NVIDIA Isaac の統合


2022/04/12 myCobot: オープンソース6自由度ロボットアーム

  • myCobot: Elephantroboticsの小型ロボット
  • GitHub: https://github.com/elephantrobotics
  • 4つのバージョン
    • M5stack
    • Raspberry Pi
    • Jetson Nano
    • Arduino
  • Working range 280mm
  • Payload 250g
  • ROS1で動作、ROS2も準備中


2022/03/17 移動ロボット用におけるPTP(Precision Time Protocol)利用について

  • Precision Time Protocol(IEEE 1588v2)
    • コンピュータネットワーク全体でクロックを同期させるために使用される通信プロトコル
    • マイクロ秒以下の精度のクロック同期できる
  • 移動ロボットでPTPを使い始めたがうまく行かない
    • PTPは通常、有線接続を前提としている→移動ロボットはワイヤレス接続
    • ロボット間の時刻同期:NTPの10〜100ミリ秒の精度で一応はOK
    • ロボット内部の複数のコンピュター間:PTPによるマイクロ秒前後の同期が必要
      • センサフュージョン、etc.
    • NTPクライアント=PTPマスター、PTP配下のノードはPTPマスターに動悸させたい
    • 問題
      • PTPはP2PまたはE2E (End to end) 遅延メカニズムを前提とする、P2Pは2台だけ、→E2E
      • スイッチ:小型の4ポートGbEハブ→PTPのP2P/E2Eクロックを透過するはず
      • NIC:パケットタイムスタンプをサポートするNICが必要だが、どれかわからない
      • PTP同期できたかどうか判断しロボットをスタートさせるのが難しい
  • 回答
    • OusterLIDARでPTPを使用して10〜100us同期できた、GNSSクロックを使ったほうが簡単
    • 高い精度が必要な場合、ハードとファームの組み合わせでPTPを実装(ハード間の相互運用性検証が必要、コンピュータ、スイッチ、センサーがすべてHWでPTPをサポートするものが必要)
    • ソフトウェアPTPであれば特別なハードは不要(ただし10〜100us、かつジッタが大きい)
    • モジュラーロボット間での時刻同期についての論文

2022/03/07 Fusion2urfdに関するブログ記事

Fusion360のモデルをfusion2urdfというツールを使ってURDFに変換しROS2でシミュレーションすることに関する日本語のブログ記事

  • fusion2urdfを使って変換したモデルを動かすために気をつけること
  • ROS2で、Fusion360で作ったモデルをurdfに変換して、シミュレーションを行う方法

2022/03/07 Micro-ROSを使って開発する理由

Micro-ROSを使って開発する理由についての質問と議論がROS Discourseにてありました。

  • 質問
    • Arduinoベースでロボットを開発中
    • Micro-ROSを使うのと使わないのとの違いは?
    • ROS2を使わない場合でもMicro-ROSを使う理由は?
    • なにか適切なチュートリアルはありますか?
    • → ROS2、rviz, TF よくわからない
  • 回答
    • Rviz→visualizationの部分を簡単にできるよ!
    • 組み込みでROS2を使うならMicro-ROSが必要、でもROS2を使わないのであればMicro-ROSもいらないのでは?
    • 通信部分が楽にできるよ
    • Micro-ROSはROSの起動機能をサポートしてないよ
    • Micro-ROSのデモあります↓


2022/03/07 ROSCon’22 Kyoto

  • 開催日時: 10月19日〜21日@京都
    • IROS2022 10/23〜10/27
  • 現在Call for Contents中(〆切5/6、notification7/18)
    • Day 0: ワークショップ
    • Day1,2: 通常会議(講演)
      • 新しいパッケージ/フレームワーク
      • 既存のパッケージの洞察/改善
      • 独自のROS展開/ユースケースに関するケーススタディ
      • 特定のロボット、センサー、プラットフォームの開発
      • コンテスト/コラボレーション/イニシアチブ
      • 商業/研究/教育環境におけるROS
      • 標準/ベストプラクティス/開発ツール


2022/01/29 HW IF ワーキング立ち上げに関する議論

  • 一般的なメッセージインターフェイスおよび関連する動作
  • 同じハードウェア上の複数のドライバーの統合
  • メーカーによるデバイスへの組み込みリファレンス実装の開発
  • 既存の適用可能な標準の統合/組み込み

  • 成果物
    • ハードウェアタイプ/クラス別の上記のリファレンス実装
    • 既存の標準の組み込み
    • リファレンス実装を採用する際の障壁/OEMベンチマークの声
    • パイロットROS2実装

以上がSwRI/ROS-IのMatt R.から提案された


2022/02/11 Ros2_control unsmooth motion

ROS2_controlの制御においてスムースでない動作が見られる問題についてのROS discourseのスレッド

  • KUKA LBR をFast Robot Interfaceで制御
    • joint_trajectory_controller / JointTrajectoryController でMoveIt2で制御
    • Ros2_control制御周期200Hzまではなめらかだが、200Hz(5ms)を超えると軌道がなめらかではなくなる
    • → ruckig を使用して軌道平滑化をしている?
    • ROS1のros_controlではううまく言っている。
    • Ros2_control_nodeはRT_PREEMPT パッチでリアルタイム実行している。
    • 正弦波を入力すると0となる
  • コメント・回答
    • Read/writeのようなブロッキング呼び出しはないか?
      • Sleepは削除した
    • control_msgs::action::FollowJointTrajectory を各ステップで送信してはいけない
    • position_controllers/JointGroupPositionController を変わりに使用してみては?
    • Ruckigはデフォルトでは使用されない
  • 解決
    • position_controllers/JointGroupPositionControllerを使用し、ロボットのコントローラ周期とros2_controlの周期を合わせるとなめらかに動作した

2022/01/28 Open-RMF紹介

  • Open Robotics Middleware Framework
    • ロボット相互運用のための共通フレームワーク
    • Webページ: https://www.open-rmf.org/
    • GitHubページ: https://github.com/open-rmf
  • ROS2ベースのロボットフレームワーク
    • 移動ロボット制御
    • フリートコントロール
    • 屋内外の複数の移動ロボット制御
    • タスクディスパッチャ
    • など
  • 環境
    • Ubuntu 20.04
    • ROS2 Galactic
    • Gazebo 11.1.0


2022/01/19 ROS 2 Embedded WG meetings

  • Micro-ROS official page
    • https://micro-ros.github.io/
  • Embedded Working Group meeting #16 from January 2022
    • micro-ROS meets Azure RTOS IoT by Benjamin Cabé from Microsoft
      • Azure RTOS IoT: IEC 61508 SIL 4、IEC 62304 Class C、ISO 26262 ASIL D 認証取得済み
      • Thread, File, GUI, Network, USB等のコンポーネントを提供、多くのMCUをサポート
    • Learn about ROSbot XL: micro-ROS based autonomous robot platform by Dominik Nowak from Husarion
    • Latest enhancements
      • CAN/FD transport, Espressif ESP32S3 micro-ROS support,

2022/01/25 Get ROS2 Industrial Ready Online Workshop 2022

  • ROS2: 2023年までにROSを置き換える予定
    • 2022年2月21日−23日
  • WS:対象者
    • 開発者・研究者、企業、エンジニア、ROS1→ROS2移行したい人
  • トレーニング内容
    • ROS2でパッケージ、ノード、トピック、サービス、およびアクションを作成する方法
    • 新しいコルコンユニバーサルビルディングシステムの管理
    • ROS2Pythonのトピックパブリッシャーとサブスクライバー
    • ROS2のノードの管理:ライフサイクル、エグゼキュータ、コールバックグループ
    • ROS1およびROS2とのハイブリッドアプリケーション
    • ROS2でのデバッグツールの使用
    • ROS2ローカリゼーション
    • ROS2パスプランニング
    • ROS2マッピング
    • ROS2 + DDS
    • ROS2障害物回避
    • MoveIt2を使用したROS2アームの計画と把握
  • 主催
    • Robotnik

ros2industrialready


2022/01/21 ROS2 Manipulation Basics

  • Construct社が提供するROSのMoveItのチュートリアルコース
    • コースの詳細ページ:https://www.theconstructsim.com/robotigniteacademy_learnros/ros-courses-library/ros2-manipulation-basics/
  • コンテンツ
    • ROS2におけるMoveIt!パッケージ設定方法
    • C++でプログラムからROS2/MoveIt!使用方法
    • Visionを使用しROS2で赤い箱の座標を出力する方法
    • ROS2でピックアンドプレースタスクを実行する方法


2021/11/17 Remote Warehouse Real Robot Lab

Construct+Robotnikによる、遠隔からリアルなロボットに接続して実験ができるラボ立ち上げのお知らせ。

  • ROS1+ROS2で産業用物流ロボット用ラボを立ち上げ
  • リモートからラボに接続して練習可能
  • ROSスキルの習得、最新技術へのキャッチアップ等を目的とする
  • 提供ロボットシステム
    • RB-1BASE移動ロボットで自律ナビゲーションの練習
    • UR3eを使用してPointCloud+協働型アームによるマニピュレーションの練習


2021/11/8 ROS2のmacOSサポート

課題

ROS2からは、macOSがTier1 platform (正式サポートOS) とされてきたが、以下のような課題があり、開発側はmacOSをTier1から外したいとの提案がある。 (2020年12月) 主な課題としては、

  • SIP (System Integrity Protection) を無効にする必要がある
  • RViz2やRQtは動作しない (Qtがうまく動かない)
  • 依存パッケージをHomebrewのものを利用するとつらい→Homebrewの更新頻度が早い

意見


2021/10/30 DDS for Unity

DDS for Unity (OSS)が以下のサイトでリリースされている。

DDS for UnityはUnityにDDS通信機能を追加するライブラリであり、もともとはUnityで作成されたデジタルツインとシミュレータをROS2と統合ゴするために作成された。

ROSにおいてシミュレータの一つとしてUnityを使用可能であり、Unity内のロボットに指令を送ったり、Unity内のカメラからjpeg-videoをROS2側にストリーミングすることなどが可能。


2021/10/26 ROS2の速度について

  • 質問

ROS1で9000Hzまで可能なpublisherが、ROS2では1000Hz以上速度が上がらない→ROS2の方が遅いのか?

  • 回答
  • ROS2ではエグゼキュータがデータのpublishまでは行わないのでは?
  • FastRTPSでは同期モードと非同期モードがある、CycloneDDSは同期モードのみサポート
  • 実験例
    • ROS1: 1kHz, 650MB/s で送信可能
    • ROS2(CycloneDDS): 31Hz, 27MB/s
    • ROS2(FastRTPS):950Hz, 550MB/s, CPU使用率95%
  • band幅測定ツールの提案あり
  • 設定変更により改善
    • UDPソケットバッファを64MBに設定、MsgTypeをルーブ外で割当
    • Cycloneの場合MaxMessageSizeを大きな値に設定
    • 以上で、FastRTPS/Cycloneともdにだいぶ早くはなる(でもROS1には及ばない)
    • 別スレッド参照:ROS2 default Behavior (Wifi)
    • 固定長の16bytesほどのmsg→130kHz程度で送信可能
  • CDRマーシャリングは可変長配列の場合ROS1のそれよりだいぶ遅い(プロファイラで検証)
  • マーシャリングが遅い問題はすぐには解決できないが、チューニングについてはドキュメント化

雑感

ROS2で使われている DDS (Data Distribution Service) は、さまざまなネットワークの状況に対応するため、さまざまな調整パラメータが存在し、望むパフォーマンスを引き出すためには、チューニングを施す必要がある。チューニング方法に関してはいかにまとめられている。

ROS1は多くのユーザ環境では無調整でかなりのスループット性能が出、低レイテンシでの通信も可能であるため、DDSはパフォーマンスを上げるためには面倒なチューニングが必要。

DDSでは、データのシリアライズ(マーシャリングと呼ぶ)方法に、CORBAと互換な CDR (Common Data representation) 方式が利用されており、互換性やデータ形式の柔軟性のために、マーシャリングに時間がかかる問題がある。CORBAやDDSの実装によりそのパフォーマンスはさまざまであるが、いずれにしろ、処理的にはそこそこ重いものになっているのは事実。上記スレッドでも述べられている通り、通信ミドルウェアのコア部分であり、標準準拠の部分でもあるため、パフォーマンスの改善は容易ではない。


2021/10/16 TSC meeting 10/28

ROS TSC (Technical Steering Committee) ミーティングが10/28に開催されました。

Contribution Reportにおいては、ADLINK, Amazon, Apex.AI, Bosch, Canonical, eProsima, Intel, iRobot, LG, Microsoft, Open Robotics, PickNik, ROBOTIS, Rover Robotics, ROS-I, Samsung, Sony, GVSC, Royota RI, Wind River からのそれぞれのContributionのレポートが行われました。

WGレポート

各WGからは以下のような報告がなされました。

  • Control→品質改善@Galactic, Foxy → Rollingへ
  • Embedded→micro-ROS, embeddedRTPS
  • Manipulatioin→Moveit2リファクタリング
  • Middleware→ミーティング、QoSの課題、ROS_LOCALHOST_ONLYの実装方法
  • Navigation→VSLAM統合、振る舞い実装方法の投票:BehaviorTreesが人気、Windows互換性が統合
  • Rust→2種類のRust ROSクライアントライブラリの協力方法について議論
  • Safety→Northstar Roboticsの安全管理ノード(認証品質)
  • Tool→スナップショットメカニズム(ros2bag)完了→Rollingへ
  • WrbTool→FoxgloveのROS2動作テストROS1からの移植

2021/10/16 ROSConJPのビデオ・スライドが公開されました

ROSCon JPは、ことしはリアルな会議として2021年9月16日(木)に東京で開催されました。 当日の発表の様子を撮影したビデオとスライドがROSConJPのページにおいて公開されました。


2021/9/24 Intel Realsenseの代替カメラ?

Intel Cancelling its Realsense business: Alternatives? というトピックが ROS Discourseに上がっていました。

Intel が最近 Realsense のサポートの終了を正式にアナウンスし、 Realsense を多用していたロボット業界などで波紋が広がっています。 ROSコミュニティでも、この発表を残念がっている人が多数いるようで、 このようなトピックが上がっています。

Realsenseのだいたいカメラとして上がっていたものは、

  • Orbecc
  • Ovc, https://github.com/osrf/ovc
  • Kinect2.0, Azure Kinect
  • ASUS XtionPro
  • Ifm
  • ZED
  • MultiSense
  • Ensenso

などが有り、価格と性能面で完全に Realsense の代替となるかは難しいかもしれません。 また、すでにいくつかのカメラは製造終了となっているものもあるようです。

また、ROS-Industrialでは以下のページで3Dカメラの情報を収集しているとのことで、 参考になりそうです。

2021/9/16 ROSCon JP

ROSCon JP 2021 が76名の参加者、18社のスポンサーを集めて、 9月16日にオフライン開催されたとのことです。

発表スライドとビデオは10月中旬ごろにアップロードされるとのことです。


2021/9/24 メールを使ってROS2メッセージを行うパッケージ: rmw_email

メールを使ってROS2メッセージ通信を行うパッケージ rmw_email が公開されています。 研究プロジェクトとして開発されたこのパッケージは、 ROS2で導入された通信ミドルウェア部分の抽象化が正しく機能するか、 について検証するために、実際にROS2のメッセージをメールとして送受信する 通信レイヤを実装したものです。

メッセージのレイテンシは実験結果から4秒から8秒だそうで実用的にはあまり意味がありませんが、 ROS2の抽象レイヤがちゃんと実装されていることの証左になりそうです。

なお、OpenRTM-aistでは、OMGの標準仕様レベルでポート間通信の抽象化がなされており、 共有メモリ通信、ダイレクト通信、MQTT、(廃止されましたが直接TCP通信)なども実装されてきましたが、 OpenRTM2.0からは、この仕組がより洗練され、ROSやROS2、UDP、などのプロトコルも 使用できるようになります。


2021/5月頃から ROS2移行戦略 (ROS discourseより)

  • ROS-iからの問題提起
    • ROS1/2のリポジトリ構成について
    • 2つの方法案
      • Core,ros1ラッパー,ros2ラッパーを別々のリポジトリに配置
      • Core+ros1,core+ros2をブランチで管理
  • 意見
    • 別々のコードベースを同一repoで管理すべきではない(ros1/ros2)
    • コアライブラリ+ROSラッパー構成
      • 個別のリポジトリ(lib, ros1wrap, ros2warap)がいいのでは無いか?
      • 共有コードが多い場合→同一repoがいいのでは?
      • コア, ros1wrap/ros2wrap で分ける
    • ROS1/ROS2を共存させるときどうするか?
    • タグ(ros1_3.2.1, ros2_2.2.1)をつけては? など、いろいろな意見がかわされていた。

2021/8/19 ROSConは中止されROS World2021(バーチャル会議)開催

ROSCon 2021は対面での通常開催が予定されていましたが、Covid-19の影響によりキャンセルされました。代わりに、仮想イベントとしてROS World2021が 10月20−21日に開催されることとなりました。 詳細

詳細はこちらから


2021/5月頃から ROS2移行戦略 (ROS discourseより)

  • ROS-iからの問題提起
    • ROS1/2のリポジトリ構成について
    • 2つの方法案
      • Core,ros1ラッパー,ros2ラッパーを別々のリポジトリに配置
      • Core+ros1,core+ros2をブランチで管理
  • 意見
    • 別々のコードベースを同一repoで管理すべきではない(ros1/ros2)
    • コアライブラリ+ROSラッパー構成
      • 個別のリポジトリ(lib, ros1wrap, ros2warap)がいいのでは無いか?
      • 共有コードが多い場合→同一repoがいいのでは?
      • コア, ros1wrap/ros2wrap で分ける
    • ROS1/ROS2を共存させるときどうするか?
    • タグ(ros1_3.2.1, ros2_2.2.1)をつけては? など、いろいろな意見がかわされていた。

2021/8/8 ROS NEWS (ROS discourseより)


2021/7/18 ROSCon JPプログラムが公開されました

ROSCon JPが2021年9月16日(木)に東京で開催されます。 すでにプログラムが発表されており、Apex.AI, Inc., Jan Becker氏による基調講演「自動車・スマート機器・IoTのためのROS 2に基づく安全認証取得済みフレームワーク」や、Samsung Research AmericaのSteve Macenski氏による基調講演「ROS 2のナビゲーションフレームワーク」など注目の講演が予定されています。 本NEDO特別講座のメンバーである、東京大学の岡田先生も「GGC (ガンダム GLOBAL CHALLENGE) リサーチ オープンシミュレータの開発と公開」について発表されます。


2021/7/8 Rclshark

ROS用WireShark? ROS2において、headlessなボードCPUのIPアドレスを特定するツールとして、日本人が作者のrclsharkというツールが公開されています。 ROS2のDDSの仕組みを利用して、ROSノードのリストを探し出してIPアドレスを特定することができるようです。


2021/7/2 ROS2 メモリプロファイルレポート (Discourse)

(https://discourse.ros.org/t/ros2-memory-usage-no-dds/21206)

ROS2 Memory Usage (no DDS) というタイトルで、ROS2のDDS部分を除くメモリ使用量の分析レポートが7月2日に投稿されていました。

ROS2 の基本メモリ使用量 ≒ 4MB

レポートでは、DDSのライブラリを除くROS2のベースとなるライブラリ (rclcpp.so) と pub/sub 機能が使用するメモリ使用量が約4MB、以降1ノードあたり約10kB程度のメモリ使用量増加が認められたと述べられています。

詳細は、Discourseを御覧ください。


2021/6/9 ROSビジュアライズ開発環境 Foxglove Studio (Discourse)

Foxglove が開発している Foxglove Studio が Discourse で紹介されていました。 TypeScriptベースの今風なかっこいいビジュアルのツールです。画像、グラフ、LiDAR表示、トピック表示等、開発時・デバッグ時に必要そうなツールが一通り揃っているようです。 ブラウザ上でも動作する模様。

詳細は、Discourseおよび、公式サイト を御覧ください。


2021/1/29 「NEDO特別講座キックオフシンポジウム開催」

ロボット用ミドルウェア技術の普及・発展を推進する人材育成講座を開催するNEDO特別講座のキックオフシンポジウムを開催しました.
開催日:2021年1月29日(金)公開
開催方法:オンデマンド(動画配信ですので,29日以降時間を問わず視聴ができます)
内容:
(1)「ロボットのオープン化による市場化適用」 産総研,安藤慶昭様
(2)「市場化適用PJにおけるオープンソースプラットフォーム」東京大学 岡田慧先生
(3)ROSのビジネス応用事例の紹介:「オープンソース活用によるロボットSI効率化(仮題)」 KEBA Japan 株式会社 村上正和様
(4)「本特別講座の実施計画」 埼玉大学 琴坂信哉
視聴の登録は,本講座HP -https://robo-marc.github.io/まで.




2021/1/21 「今週の海外ROSニュース」

海外の様々なROS関連のニュースをお伝えしていきます.

ROS News Letter -https://rosindustrial.org/news/2020/11/5/hbxkihnrz8hjiwidgr16m9hrd4faa7

本URLは「Collaborative Robot Sanding with ROS2 for Aerospace Applications」と題して、ROSの新製品を掲載しています。

論文紹介「ROS Based Safety Concept for Collaborative Robots in Industrial Applications」 -https://link.springer.com/chapter/10.1007/978-3-319-21290-6_3

この論文では、ROSに基づいた協調ロボットの安全コンセプトに関する研究論文である。ROSをベースに衝突検知、経路計画、ロボット制御、行動予測のた めのソフトウェアシステムの開発について述べています。


2021/1/14 「今週の海外ROSニュース」

海外の様々なROS関連のニュースをお伝えしていきます.

Clearpath -https://clearpathrobotics.com/ Clearpath社は,オフロード用の自律型ロボットシステムを設計しています。彼らのウェブサイトによると、この会社はROSの早期採用者であり、世界最大 のROS開発チームの1つである。このグループのアプリケーションは、測量・検査、鉱業、農業、防衛、マテリアルハンドリングなどです。

このプロモーションビデオでは、既存のマイニングマシン(ホイールローダー)を最小限の改造で自律型ロボットに変換できるソフトウェアとハードウェ アのパッケージを紹介していました。

Cyber-protection for the robot system

カスペルスキー、エイリアスロボティクスとともに産業用ロボット向けのRIS(Robot Immune System)を開発中とのこと。

2021/01/07 「ROS2の性能分析論文」

Discourseで紹介されていた内容ですが、ROS2のパフォーマンス評価に関する論文が公開されています。 ROS1との比較や性能評価等の分析が含まれています。以下のリンクから無料で読むことができます。




2020/11/10 「ROS教育の提供を行う企業」

様々なROSの学習コースが用意されています。 また、無料で使えるROSの仮想実行環境のサービスもあります。



2020/10/12 「SoftbankのROSで動く自律走行ロボットCuboid」

ROSで動作する自律走行ロボットです。具体的な用途への実証実験が始まっています。 研究開発用途にリースもされており、Githubにソースコードもあります。



2020/10/08 「ROSのWindows対応状況」

ROS (≠ROS2) のWindowsへの対応が進んでいます。 Windows用パッケージマネジメントシステム 「Chocolatey」 を利用しており、 chocolateyのコマンドで以下のように簡単にインストールできるようになっています。

mkdir c:\opt\chocolatey
set ChocolateyInstall=c:\opt\chocolatey
choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1
choco upgrade ros-foxy-desktop -y --execution-timeout=0