NVIDIA Isaac ROS
NVIDIA Isaac™ Robot Operating System (ROS) コレクションは、ハードウェア アクセラレーションされたパッケージを使用して、高性能なソリューションをより速く、簡単に構築する方法を提供します。これには複数のオープンソースのオプションが含まれており、ROS 開発者に NVIDIA® Jetson™ などの NVIDIA ハードウェア上で構築する新しい手法を提供するよう設計されています。
今すぐ始めるIsaac ROS の主な利点
高スループットの認識
Isaac ROS は、画像処理およびコンピューター ビジョン機能を備えた個別のパッケージ (GEMs) と完全なパイプライン (NITROS) を提供します。これらのソリューションは、NVIDIA GPU および NVIDIA Jetson プラットフォーム向けに高度に最適化されています。
モジュール型の柔軟なパッケージ
モジュール型パッケージにより、ROS 開発者はアプリケーションに統合するために必要なものを確実に入手できます。これにより、パイプライン全体を置き換えたり、単一のアルゴリズムだけを簡単に置き換えたりすることができます。
開発時間の短縮
Isaac ROS は、既存の使い慣れた ROS 2 ノードに似ているため、既存のアプリケーションに簡単に統合することができます。
Perception AI パッケージの豊富なコレクション
一般的な画像処理とコンピューター ビジョンを組み合わせた ROS 2 ノードの全機能にアクセスできます。これらには、高性能な Perception を提供するために重要な DNN ベースのアルゴリズムが含まれており、ROS ベースのロボティクス アプリケーションにハードウェア アクセラレーションを提供します。
新着情報
NVIDIA は開発者が ROS 2 に新しいハードウェア アクセラレーション機能を変更や追加できるように、複数の Isaac ROS パッケージをオープンソース化しました。詳細については、Isaac ROS リリース ノートをご確認ください。
占有グリッド マップ ローカライザー
ロボットの初期位置は、grid-search-localizer パッケージを使用して 1 秒以内に自動的に計算されます。これにより、ナビゲーションのための初期位置を手動で指定する必要がなくなります。
アップグレードされたビジュアル SLAM
アップデートされた VSLAM (Visual Simultaneous Localization And Mapping) パッケージには、最新の cuVSLAM ライブラリが備わっており、Leopard Imaging Hawk 3D 深度カメラのサポートと大幅なパフォーマンスの最適化を提供します。 NVIDIA Xavier™ と比較して最大 40%、NVIDIA Orin™ との比較は最大 4% 高速になります。
人間検出機能を備えた NvBlox
アップデートされた NvBlox Isaac ROS パッケージを使用して、混雑した環境でクリーンな 3D メッシュを生成します。その後、NvBlox が処理するフレームから人間を検出し削除することもできます。
NVIDIA Isaac Transport for ROS (NITROS)
最新の Humble ROS 2 リリースでは、ハードウェア アクセラレーションを提供するコンピュート プラットフォームのパフォーマンスが向上しています。これにより、タイプ アダプテーションとタイプ ネゴシエーションのためのハードウェア アクセラレーション機能が可能になり、ソフトウェア/CPU のオーバーヘッドが排除され、ハードウェア アクセラレーションのパフォーマンスが向上します。
NVIDIA によるタイプ アダプテーションとタイプ ネゴシエーションの実装は NITROS と呼ばれます。これらは、Isaac ROS ハードウェア アクセラレーション モジュール (別名 GEM) で構成される ROS 処理パイプラインです。 NITROS のソース コードは、開発者がアプリケーションで変更、拡張、使用できるようになりました。
ROS 用 NVIDIA Isaac トランスポート
NITROS 用の H.264 ビデオ エンコードとデコード ハードウェア アクセラレーション パッケージ は、AI モデルおよび認識機能の開発のための圧縮カメラ データの記録と再生に使用されます。 2 台の 1080p ステレオ カメラを 30fps (合計 120fps 以上) で圧縮し、データ フットプリントを最大 10 分の 1 に削減します。
ビジュアル SLAM ベースのローカリゼーション
自律マシンは環境内を移動する間、自身がどこにいるのかを追跡し続ける必要があります。 VSLAM は、VO (ビジュアル オドメトリ) として知られる、開始位置に相対したロボットの位置を視覚的に推定する方法を提供します。VSLAM 向けの Isaac ROS GEM は、この強力な機能を ROS 2 開発者に提供します。
この GEM は、リアルタイム ステレオ カメラ VSLAM ソリューションに最高の精度を提供します。広く使用されている KITTI データベースに基づいて公開されている結果を こちらでご覧いただけます。 KITTI ベンチマークの場合、このアルゴリズムは位置特定において最大 1% のドリフトと、1 メートルの動きあたり 0.003 度の方向誤差を実現します。この GPU アクセラレーション パッケージは、非常に正確であることに加えて、非常に高速に実行されます。このパッケージは、cuVSLAM ライブラリを使用して、より多くのキー ポイントをリアルタイムで検索して照合し、全体的な再投影エラーを最小限に抑えるために微調整します。これは、視覚データと IMU 測定を組み合わせて使用することで達成されます。
Isaac ROS ステレオ ビジュアル SLAM
NvBlox による 3D シーンの再構築
ロボットの位置を知るだけでは、複雑な環境を安全に移動するには十分ではありません。ロボットは障害物を自ら発見できなければなりません。 NvBlox (プレビュー版) は、RGB-D データを使用して、ロボット環境の高密度 3D 表現を作成します。これには、リアルタイムで観察されないとロボットに危険をもたらす可能性のある不測の障害物も含まれます。このデータは、ナビゲーション スタックの時間コストマップの生成に役立ちます。
Isaac ROS NvBlox
DNN 推論プロセス
DNN Inference GEM は、開発者が NGC で利用可能な NVIDIA の多数の推論モデルを使用したり、独自の DNN を提供したりできる ROS 2 パッケージ セットです。 NVIDIA TAO Toolkitを使用すると、学習済みモデルのさらなる調整や開発者自身のモデルの最適化を行うことができます。
最適化後、これらのパッケージは、NVIDIA TensorRT™高性能推論 SDK または NVIDIA の推論サーバーであるTriton™によってデプロイされます。希望の DNN モデルが TensorRT でサポートされていない場合は、Triton を使用してモデルをデプロイできます。
モデル サポートを組み込んだ追加の GEM が利用可能で、これには U-Net および DOPE のサポートが含まれます。 TensorRT に基づく U-Net パッケージは、画像からセマンティック セグメンテーション マスクを生成するために使用でき、DOPE パッケージは、検出されたすべてのオブジェクトの 3D 姿勢推定に使用できます。
DNN 推論 GEM は、パフォーマンスの高い AI 推論を ROS 2 アプリケーションに組み込む最速の方法です。画像 (右) に示されている学習済みモデル PeopleSemSegNet は、NVIDIA Jetson AGX Orin 上で 325fps @544p で実行します。
Isaac ROS DNN 推論
Isaac ROS ポーズ推定
Isaac ROS 画像セグメンテーション
ステレオ 認識
ステレオ認識 DNN ベースの GEM は、一般的な認識タスクでロボット工学者を支援するように設計されています。
強化された半教師あり (ESS) ステレオ視差は、ステレオ カメラの視差予測のための DNN であり、Bi3D はビジョンベースの近接検出のための DNN です。
どちらも合成データを使用してロボット用途向けに事前学習されており、商用利用を目的としています。
Isaac ROS DNN ステレオ視差
Isaac ROS 近接セグメンテーション
NITROS パイプラインによる高性能な認識
ROS 2 Humble に追加されたハードウェア アクセラレーションを活用する強力なパイプラインでパフォーマンスを向上します。
完全なパフォーマンス要約はこちらでご覧いただけます
|
|
|
|
|
|
|
---|---|---|---|---|---|---|
AprilTag グラフ | 720p |
143 fps 16 ミリ秒 |
129 fps 22 ミリ秒 |
82.9 fps 22 ミリ秒 |
58.0 fps 31 ミリ秒 |
349 fps 11 ミリ秒 |
フリースペース セグメンテーショングラフ | 576p | 54.0 fps 36 ミリ秒 |
23.7 fps 150 ミリ秒 |
28.4 fps 120 ミリ秒 |
23.6 fps 140 ミリ秒 |
178 fps 30 ミリ秒 |
センターポーズ姿勢推定グラフ | VGA | 50.2 fps 37 ミリ秒 |
10.2 fps 130 ミリ秒 |
23.7 fps 70 ミリ秒 |
18.4 fps 87 ミリ秒 |
45.0 fps 21 ミリ秒 |
DOPE 姿勢推定グラフ | VGA | 40.5 fps 31 ミリ秒 |
12.5 fps 170 ミリ秒 |
17.6 fps 120 ミリ秒 |
-- | 90.9 fps 14 ミリ秒 |
DNN ステレオ視差グラフ | 1080p | 52.7 fps 21 ミリ秒 |
26.1 fps 41 ミリ秒 |
20.8 fps 50 ミリ秒 |
-- | 156 fps 10 ミリ秒 |
ステレオ視差グラフ | 1080p | 162 fps 14 ミリ秒 |
90.5 fps 21 ミリ秒 |
75.1 fps 20 ミリ秒 |
50.6 fps 28 ミリ秒 |
387 fps 8.3 ミリ秒 |
DetectNet オブジェクト検出グラフ | 544p | 248 fps 9.1 ミリ秒 |
94.0 fps 16 ミリ秒 |
117 fps 14 ミリ秒 |
79.1fps 20 ミリ秒 |
589 fps 4.3 ミリ秒 |
TensorRT グラフ PeopleSemSegNet |
544p | 385 fps 6.9 ミリ秒 |
228 fps 10 ミリ秒 |
210 fps 8.3 ミリ秒 |
142 fps 13 ミリ秒 |
827 fps |
Mission Dispatch と Client
Isaac Mission Dispatch を使用すると、本番環境向けの業界標準を使用して、クラウド システムまたはエッジ システムが Isaac Mission Client を備えた ROS 2 ロボットからタスクを送信および監視できるようになります。 Mission Dispatch は、より大規模なフリート管理システムの一部として統合できるクラウドネイティブのマイクロサービスです。
Mission Dispatch と Mission Client はどちらもオープンソースで提供されており、継続的インテグレーションと継続的デプロイメント (CI/CD) のテスト部分を自動化するシミュレーションでロボットをテストし、予期される結果に対して評価される一連の事前に定義されたタスクを実行するために使用できます。この利点は、動作中のロボットにタスクを割り当てるという主な用途に加えられます。
Mission Dispatch は、ROS 2 ロボット上の Mission Client でフリート管理システム (Anyfleet、Roborunner FleetGateway など) に統合できます。また、VDA5050 上に構築された他の ROS 2 クライアントとも相互運用が可能です。
Isaac ROS Mission Dispatch
Isaac ROS Mission Client
カメラ/画像処理
この画像は、レンズで歪んだカメラ画像 (左) と LDC GEM を使用して補正した画像 (右) を示しています。
典型的なロボット画像処理パイプラインでは、カメラ センサーからの生データを、認識処理のために DNN または従来のコンピューター ビジョン モジュールに渡す前に処理する必要があります。この画像処理は、レンズ歪み補正 (LDC)、画像サイズ変更、画像フォーマット変換などで構成されます。ステレオ カメラが関係する場合は、視差の推定も必要です。画像処理 GEM は、GPU、VIC (ビデオおよびイメージ コンポジター)、PVA (プログラマブル ビジョン アクセラレーター) など、Jetson ソリューションで利用可能な特殊なコンピューター ビジョン ハードウェアを活用するように設計されています。
CSI インターフェイス経由で接続されたカメラを使用するロボットのために、NVIDIA は ROS ハードウェア アクセラレーション向けの Argus パッケージを提供しています。
Isaac ROS 画像処理
Isaac ROS カメラ パートナー
Isaac ROS パートナーは、ROS ハードウェア アクセラレーションのために Isaac ROS GEM とシームレスに統合するドライバーを提供しています。ドライバーと互換性のあるハードウェアの一覧をこちらでご確認ください。