Robotics

NVIDIA Isaac Transport for ROS による ROS 2 アプリケーションのパーセプション性能の向上

Reading Time: 3 minutes

2021 年 10 月から共同で取り組んでいる NVIDIA と Open Robotics は、ハードウェア アクセラレータを提供する計算プラットフォームでのパフォーマンスを改善するために、 Humble ROS 2 リリースで利用可能になった 2 つの重要な変更点を紹介します。

ROS 2 Humble の新しいハードウェア アクセラレーション機能は、タイプ アダプテーションとタイプ ネゴシエーションと呼ばれています。 NVIDIA は、次の NVIDIA Isaac ROS リリース (2022 年 6 月下旬) で、タイプ アダプテーションとタイプ ネゴシエーションを実装したソフトウェア パッケージをリリースする予定です。

フレームワークへのこれらのシンプルかつ強力な追加機能は、 AI/機械学習およびコンピューター ビジョンの機能を ROS ベースのアプリケーションに組み込もうとする開発者のパフォーマンスを大幅に向上させるでしょう。

「ROS の開発者がロボット アプリケーションに自律性を持たせるにつれて、ロボット上のコンピューターはより強力になってきています。私たちは ROS フレームワークを進化させ、これらのエッジ コンピュータの高性能ハードウェア リソースを活用できるように取り組んできました」と Open Robotics の CEO である Brian Gerkey 氏は述べています。

「NVIDIA ロボット チームと密接に協力し、ハードウェア アクセラレーションを採用する ROS コミュニティ全体の努力に役立つ新機能 (タイプ アダプテーションとネゴシエーション) を Humble リリースで共有できることに興奮しています。」

ハードウェア アクセラレーションのオーバーヘッドを排除

タイプ アダプテーション

ハードウェア アクセラレータが最適なパフォーマンスを実現するために、異なるデータ形式を必要とすることはよくあることです。タイプ アダプテーション (REP-2007) は、ROS ノードがハードウェアにより適したフォーマットで動作するように使用できるようになりました。処理パイプラインは、適応された型を使用して、CPU とメモリ アクセラレータの間のメモリ コピーを排除することができます。不要なメモリ コピーは、特に画像のサイズが大きくなると、 CPU の計算量を消費し、電力を浪費し、パフォーマンスを低下させます。

タイプ ネゴシエーション

もう 1 つの新機軸は、タイプ ネゴシエーション (REP-2009) です。処理パイプラインの異なる ROS ノードが、サポートするタイプを公告し、理想的なパフォーマンスをもたらすフォーマットが選択されるようにすることができます。 ROS フレームワークはこのネゴシエーション プロセスを実行し、ネゴシエーションをサポートしないレガシ ノードとの互換性を維持します。

タイプ アダプテーションとネゴシエーションを用いて処理パイプラインを高速化することで、ハードウェア アクセラレータのゼロコピーが可能になります。これにより、ソフトウェアと CPU のオーバーヘッドが削減され、基盤となるハードウェアの潜在能力が引き出されます。ロボティクスが NVIDIA Jetson Orin のようなより強力な計算プラットフォームに移行するにつれ、ハードウェアによって実現される性能向上がより期待できるようになります。

これらの変更は、完全に ROS 2 の内部で行われるため、既存のツール、ワークフロー、コードベースとの互換性が確保されています。

図 1. ハードウェア アクセラレーションによるパイプラインのタイプ アダプテーションとネゴシエーションの有無の比較

タイプ アダプテーションとネゴシエーションは有望な結果を示しています。各ノードで最小限の計算を行う ROS ノードのグラフからなるベンチマークを ROS 2 Foxy と ROS 2 Humble で実行し、基盤となるフレームワークの性能を観察することができました。このベンチマークは、 Jetson AGX Xavier と新しい Jetson AGX Orin で実行されました。その結果、Xavier では 3 倍、 Orin では 7 倍という驚異的な向上が見られました。

図 2. Jetson AGX Xavier と Jetson AGX Orin における ROS 2 Foxy と ROS 2 Humble の型適応フレームワークのベンチマーク性能比較

NVIDIA Isaac for Transport for ROS の紹介

NVIDIA が実装する型適応とネゴシエーションは NITROS と呼ばれます。これらは、 Isaac ROS ハードウェア アクセラレーション モジュール (通称 GEM) で構成される ROS 処理パイプラインです。これらのパイプラインは、2022 年 6 月下旬に予定されている Isaac ROS Developer Preview (DP) で利用できるようになる予定です。 NITROS の最初のリリースには 3 つのパイプラインが含まれ、さらに多くのパイプラインが年内に予定されています。

NITROS Pipeline

AprilTag Detection Pipeline
ROS 2 Nodes in Pipeline

ArgusCameraMono (Raw Image) – Rectify – (Rectified Image) – AprilTag (AprilTag Detection)
Stereo Disparity PipelineArgusCameraStereo (Raw Image) – Rectify – (Rectified Image) – ESSDisparity (DNN Inference) – PointCloud (Point Cloud Output)
Image Segmentation PipelineArgusCameraMono (Raw Image) – Rectify – (Rectified Image) – DNNImageEncode (DNN Pre-Processed Tensors) – Triton (DNN Inference) – UNetDecode (Segmentation Image)
表 1. DP リリースにおける NITROS のパイプライン

ロボティクスのパーセプションを助ける強力な新しい GEM

NITROS アクセラレーション パイプラインに加えて、Isaac ROS DP リリースには、ロボティクスの一般的なパーセプション タスクを支援するために設計された 2 つの新しい DNN ベースの GEM が含まれています。

最初の GEM である ESS は、ステレオ カメラの視差を予測する DNN です。このネットワークは、ロボット アプリケーションのためのビジョンベースの連続的な深層パーセプションを提供します。

もう 1 つの GEM である Bi3D は、パーセプションに基づく障害物予測のための DNN です。 NVIDIA Research の画期的な研究成果を基にした DNN は、障害物予測と同時にフリース ペースを検出するように強化されています。このネットワークは、障害物がステレオ カメラからのプログラム可能な 4 つの近接フィールドのうちの 1 つ内にあるかどうかを予測します。

Bi3D は、NVIDIA DLA ハードウェア上で動作するように最適化されています。 DLA を活用することで、 GPU と CPUの両方の計算資源を保持することができます。

Bi3D と ESS は合成データと実データを用いたロボット アプリケーション用に事前学習されており、商用利用を想定しています。これら 2 つの新しい Isaac ROS GEM は、以前リリースされた古典的なコンピューター ビジョンの Stereo depth disparity ルーチンである stereo_image_proc に加わり、ステレオ カメラの奥行き知覚のための多様で独立した 3 つの機能を提供することになりました。

図 3. 合成カメラ画像 (上) とアクティブ プロジェクションを用いない RGB ステレオ カメラ画像撮影 (下) の結果比較。左から順に、フリース ペースでの 4 つの近接場に対する 3 次元 DNN 予測、連続深度に対する ESS DNN 予測、古典的な CV ステレオ視差関数
Isaac ROS 2 GEM

Image Pipeline
Description

Camera Image Processing
NVBlox3D Scene Reconstruction
Visual SLAMVSLAM and Stereo Odometry
AprilTagsApriltag Detection and Pose Estimation
Pose Estimation3D Object Pose Estimation
Image SegmentationSemantic Image Segmentation
Object DetectionDNN for Object Detection using DetectNet
DNN InferenceDNN Node for using Triton/TensorRT
Argus CameraCSI/GSML Camera Support
表 2. 利用可能な ROS GEM パッケージ

はじめる前に

NVIDIA AI Perception の製品への統合に興味のある ROS 開発者の方は、今すぐ Isaac ROS をご利用ください。

翻訳に関する免責事項

この記事は、「Improve Perception Performance for ROS 2 Applications with NVIDIA Isaac Transport for ROS」の抄訳で、お客様の利便性のために機械翻訳によって翻訳されたものです。NVIDIA では、翻訳の正確さを期すために注意払っておりますが、翻訳の正確性については保証いたしません。翻訳された記事の内容の正確性に関して疑問が生じた場合は、原典である英語の記事を参照してください。

Tags