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 の内部で行われるため、既存のツール、ワークフロー、コードベースとの互換性が確保されています。
タイプ アダプテーションとネゴシエーションは有望な結果を示しています。各ノードで最小限の計算を行う ROS ノードのグラフからなるベンチマークを ROS 2 Foxy と ROS 2 Humble で実行し、基盤となるフレームワークの性能を観察することができました。このベンチマークは、 Jetson AGX Xavier と新しい Jetson AGX Orin で実行されました。その結果、Xavier では 3 倍、 Orin では 7 倍という驚異的な向上が見られました。
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 Pipeline | ArgusCameraStereo (Raw Image) – Rectify – (Rectified Image) – ESSDisparity (DNN Inference) – PointCloud (Point Cloud Output) |
Image Segmentation Pipeline | ArgusCameraMono (Raw Image) – Rectify – (Rectified Image) – DNNImageEncode (DNN Pre-Processed Tensors) – Triton (DNN Inference) – UNetDecode (Segmentation Image) |
ロボティクスのパーセプションを助ける強力な新しい 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 つの機能を提供することになりました。
Isaac ROS 2 GEM Image Pipeline | Description Camera Image Processing |
NVBlox | 3D Scene Reconstruction |
Visual SLAM | VSLAM and Stereo Odometry |
AprilTags | Apriltag Detection and Pose Estimation |
Pose Estimation | 3D Object Pose Estimation |
Image Segmentation | Semantic Image Segmentation |
Object Detection | DNN for Object Detection using DetectNet |
DNN Inference | DNN Node for using Triton/TensorRT |
Argus Camera | CSI/GSML Camera Support |
はじめる前に
NVIDIA AI Perception の製品への統合に興味のある ROS 開発者の方は、今すぐ Isaac ROS をご利用ください。
翻訳に関する免責事項
この記事は、「Improve Perception Performance for ROS 2 Applications with NVIDIA Isaac Transport for ROS」の抄訳で、お客様の利便性のために機械翻訳によって翻訳されたものです。NVIDIA では、翻訳の正確さを期すために注意払っておりますが、翻訳の正確性については保証いたしません。翻訳された記事の内容の正確性に関して疑問が生じた場合は、原典である英語の記事を参照してください。