ロボットナビゲーションの背後にある技術は絶えず進化していますが、真に自律的になるまでには克服すべき大きなハードルがいくつかあります。NVIDIA の新しいソリューションにより、この次のステップがより現実的なものになります。この記事では、GPUアクセラレーションROSおよびROS2システム、さらにVSLAMアルゴリズムとNvbloxパッケージを使用して、より少ないCPUパワーでより効率的な自律ロボットナビゲーション (AMR) を実現する方法について説明します。
導入
自律ナビゲーションはロボットシステムにとって重要なステップです。自律移動ロボット (AMR) ナビゲーションの重要な要素の1つは、「ビジュアルSLAM」、つまり視覚による同時位置特定およびマッピングです。Visual SLAMは、カメラで撮影した画像を使用して、環境のマッピングとロボットの位置の推定を同時に行う技術です。火星探査に使用されたフェニックス着陸船、オポチュニティ探査車、インジェニュイティ ヘリコプターは、自律航行と着陸にビジュアルSLAMアルゴリズムを利用しています。その他の用途としては、掃除機、内視鏡、無人航空機、地上および水中ロボットなどがあり、機械がタスクを自動化します。
Visual SLAMでは、カメラで取得した画像から姿勢を推定し、マップを生成するために、大きな計算能力が必要です。Visual SLAM (VSLAM) アルゴリズムの大部分はCPUパワーを使用するため、リアルタイムの姿勢推定とマップ作成が制限されます。Isaac ROS (ロボット オペレーティング システム)、VSLAM、およびNvbloxは、GPUアクセラレーションROS2パッケージであり、自律移動ロボットのリアルタイムでのナビゲーションのために姿勢を推定し、周囲の環境のマップを作成するのに役立ちます。Isaac ROS VSLAMとNvbloxがRealsenseカメラと連携してAMRの自律ナビゲーションにどの程度適しているかを確認するための実験が行われます。
NVIDIA ISAAC ROSビジュアルSLAMとNvbloxパイプライン
図1 は、NVIDIA ISAAC ROS Visual SLAMとNvbloxパイプラインの動作と統合を示しています。ここで、VSLAMは姿勢を推定し、Nvbloxはロボットの自律ナビゲーションのために周囲の環境のマップを再構築します。

NVIDIA Isaac ROS VSLAMは、ステレオ視覚による位置特定とマッピングを同時に実行するROS2パッケージです。時間同期されたステレオ画像のペアを使用してステレオ視覚慣性オドメトリを計算し、Isaac Elbrus GPUアクセラレーション ライブラリを使用します。視覚慣性オドメトリ、最適化、マッピングは、Isaac ROS VSLAMの3つのコンポーネントです。ビジュアルオドメトリ (VO) は、カメラの開始点に対する位置を推定する技術です。図1 に示すVOポーズはVOによって推定されます。Visual Simultaneous Localization and Mapping (VSLAM) メソッドは、VOポーズに基づいて構築されており、ループ閉鎖検出と、環境の以前に確認された部分を使用したSLAMポーズの推定によってVOポーズの品質を向上させることを目的としています。Elbrusは視覚データに加えて、慣性計測装置 (IMU) からの測定値も使用できます。照明が不十分であったり、カメラの前に特徴のない長い表面がある場合など、VOがポーズを推定できない場合は、IMUに切り替わります。図1 V-SLAMによって推定されたSLAMポーズを表示します。
NVIDIA Isaac ROS Nvbloxは、カメラ画像からAMR周囲の環境をリアルタイムで3D再構築するために使用されるROS2パッケージです。この再構築は、安全なナビゲーション パスを生成するためにパス プランナーが使用することを目的としています。NvbloxはNVIDIA CUDAを利用してこのプロセスを高速化し、リアルタイム操作を可能にします。このリポジトリには、Nvbloxコア ライブラリのROS2統合が含まれています。Nvbloxアルゴリズムは、切り捨て符号付き距離関数 (TSDF)、メッシュ、ユークリッド符号付き距離関数 (ESDF) という3つの主要コンポーネントで構成されています。Nvbloxは、RGB画像、深度画像、SLAMポーズを入力として使用し、視覚化用のメッシュとパス プランニング用の距離スライス マップを出力します。Nvbloxは、RGBおよび深度画像のストリームと深度画像の対応するポーズから2D距離マップ スライスと3Dメッシュを生成します。視覚化のために周囲の環境の3D再構築に色を付けるために使用されるRGB画像ストリームはオプションです。2D距離マップ スライスには、各ポイントと最も近い再構築された障害物との間の距離と、RVIZ視覚化用の3Dメッシュが表示されます。視覚化のための周囲環境の3D再構築はオプションです。2D距離マップ スライスには、各ポイントと最も近い再構築された障害物間の距離と、RVIZ視覚化用の3Dメッシュが表示されます。
Isaac ROS VSLAM、Nvblox、Nav2スタック パイプラインの説明
Isaac ROS V-SLAM、Nvblox、Nav2スタックを使用したAMR自律航行のパイプライン全体は、 図2。このパイプラインは、Realsenseカメラ ノード、Isaac ROS V-SLAMノード、Isaac ROS Nvbloxノード、Nav2ノード、Rvizノードの5つのノードで構成されています。次の段落では各ブロックについて説明します。

Realsenseカメラ ノードは、Realsenseカメラから画像をキャプチャし、RGB、深度、インフラ1、インフラ2画像を公開します。Infra-1とInfra-2は赤外線画像です。infra-1およびinfra-2画像はIsaac ROS V-SLAMブロックによってサブスクライブされ、ポーズとtfを公開します。Isaac ROS Nvbloxブロックは、RGB画像、深度画像、ポーズ、ifをサブスクライブして距離スライス マップを生成します。経路計画とナビゲーションのために、Nav2ノードは距離スライス マップを利用します。Nav2ノードは、現在の姿勢、マップ、および目的地の姿勢などの目標を使用して、AMRが自律的に目標状態に到達できるようにする制御システムです。Nav2ノードは目標状態へのパスを正常にプロットし、計画されたパスに従って目標位置まで進むようにAMRにコマンドを送信します。Rvizは、画像、オドメトリ、生成されたマップを視覚化し、AMRに目標ポーズを提供するのに便利なツールです。
実験結果
図3 AMR、それに搭載されたリアルセンスカメラを通して見たもの、そして結果として得られる3Dポイント クラウド マップをメッシュとして表示します。図4 指定された目標状態、計画されたパス、および計画されたパスに従って目標状態に安全に到着するAMRを含む作成されたマップを表示します。


結論
ラボ内のAMRを自律的にナビゲートするために、Intel RealSenseカメラがIsaac ROS VSLAM、Isaac ROS Nvblox、およびNav2スタックに統合されています。AMRは、マッピングとナビゲーションの目的でラボ環境内を移動しました。Isaac ROS VSLAMは、AMRの走行距離を正常に推定し、同時にAMRの周囲の環境マップも作成しました。GPUアクセラレーションにより、NVIDIA Isaac ROS VSLAMおよびNvbloxパイプラインはリアルタイムのパフォーマンスを提供します。同時に、VSLAMアルゴリズムは地図上での位置を特定し、安全なナビゲーションのための地図を作成しました。私たちの実験のデモンストレーションが、ロボットエンジニアによるさまざまな商用ロボット製品の開発に役立つことを願っています。詳細については、著者にお問い合わせください。