見出し画像

NVIDIAが外科チームの手術支援ロボット操作スキルを向上するシミュレーションフレームワーク「ORBIT-Surgical」を解説し、実装法を説明します。

針のような小さな物体を掴み、ロボットアームからアームに受け渡し、高い精度で配置するなど、腹腔鏡手術のトレーニングカリキュラムにヒントを得た十数種類の操作をサポートしている。

オープンソースのコードパッケージは、現在GitHubで公開されている。

ORBIT-SurgicalはNVIDIA Isaac Simを使用して構築
この物理ベースのフレームワークは、AIベースのロボットを設計、トレーニング、テストするためのロボティクスシミュレーション プラットフォームである NVIDIA Isaac Simを使用して構築された。

研究者たちは、NVIDIA GPU上で強化学習と模倣学習のアルゴリズムをトレーニングし、
Universal Scene Description(OpenUSD)に基づく高度な3Dアプリケーションとパイプラインを開発、展開するためのプラットフォームであるNVIDIA Omniverseを使用して、フォトリアルなレンダリングを可能にした。

ロボット手術をリードしている Intuitive Surgicalが支援する非営利団体Intuitive Foundationが提供し、コミュニティが支援するda Vinci Research Kitを使用した。

ORBIT-Surgicalは、Isaac Sim上に構築されたロボット学習のためのモジュラーフレームワークであるIsaac Orbitに基づいている。

Orbitには、強化学習や模倣学習のための様々なライブラリがサポートされており、AIエージェントは実際の専門家の例を模倣するようにトレーニングされる。

この手術フレームワークにより、開発者は、NVIDIA RTX GPU上で動作する強化学習および模倣学習フレームワークを使用して、da Vinci Research Kit ロボット(dVRK)をトレーニングし、硬い物体と柔らかい物体の両方を操作させることができる。

ORBIT-Surgicalは、ガーゼを拾い上げたり、シャントを血管に挿入する、縫合針を特定の位置まで持ち上げるといった片手での作業を含む、手術トレーニングのための十数種類のベンチマーク作業を紹介している。
また、片方のアームからもう片方のアームに針を渡す、糸の付いた針をリングポールに通す、障害物を避けながら両アームを特定の位置まで伸ばすといった両手作業も含まれている。

研究チームは、GPUアクセラレーションと並列化を活用した手術シミュレータを開発することで、既存の手術フレームワークと比較して、ロボットの学習速度を1桁向上させた。

研究チームは、1基のNVIDIA RTX GPUで、シャントの挿入や縫合針の持ち上げなどのタスクを2時間以内に完了できるよう、ロボットデジタルツインをトレーニングできることがわかった。

Omniverse上のレンダリングによって視覚的なリアリズムが可能になるため、ORBIT-Surgicalを活用すると、研究者は忠実度の高い合成データを生成することもできる。
これは、手術室で撮影された現実世界のビデオで、手術器具のセグメンテーションなどの知覚タスクのためのAIモデルのトレーニングに役立つ可能性があるとしている。

研究チームによる概念実証(PoC)では、シミュレーションと実データを組み合わせることで、
画像から手術針をセグメンテーションするAIモデルの精度が大幅に向上し、
そのようなモデルのトレーニングのための大規模で高価な実世界のデータセットの必要性を減らすことができることが示された。

Orbitは、NVIDIA、AI研究所、チューリッヒ工科大学、トロント大学で開発された。
Nvidia Isaac Simを介して直感的にタスクを設計できるようになっています。

Orbitは、フォトリアルなシーンとロボットシミュレーションを作成できるモジュールです。

さまざまな難易度のベンチマークタスク(例:キャビネットの開閉)を提供しており、
物理センサーやモーションジェネレータを備えた固定アームとマニピュレータをサポートします。
GPUの並列処理を活用して、強化学習トレーニングやデモデータセットの収集が数分で行えます。

このフレームワークには16のロボティックプラットフォーム、
4つのセンサーモダリティ、
10のモーションジェネレータ、
20のベンチマークタスク、
および4つの学習ライブラリのラッパーが含まれており、
表現学習、強化学習、模倣学習、タスクとモーションプランニングをサポートしています。

Orbitを使用すると、さまざまなロボットタスクを実行できます。
具体的なタスクの例をいくつか紹介します:

  1. 物体の掴み取りと移動:物理シミュレーションを活用して、ロボットアームやマニピュレータが物体を掴んで移動するタスクをサポートします。

  2. 物体の配置:物体を特定の位置に配置する。例えば、テーブル上にカップを置くなどです。

  3. ナビゲーション:Orbitはロボットの移動と障害物回避をシミュレートできます。部屋内のナビゲーションや迷路の解決などが含まれます。

  4. 強化学習のトレーニング:OrbitはGPUベースの並列処理を活用して、強化学習ポリシーのトレーニングを効率的に行えます。さまざまなタスクに対してエージェントを訓練できます。

  5. 物体の検出と認識:物体検出やセンサーデータの処理にも利用できます。

外科手術ロボットOrbit-Surgicalはgithubから入手できます。:

  1. ORBIT-Surgicalのセットアップ:

    • ORBIT-Surgicalは、物理ベースの外科ロボットシミュレーションフレームワークで、NVIDIA Omniverseでフォトリアルなレンダリングを提供します。GPU並列処理を活用して、強化学習と模倣学習アルゴリズムのトレーニングを行い、人間の外科スキルを補完するロボット。

    • ORBIT-SurgicalはORBITフレームワークとNVIDIA Isaac Simをベースにしており、フォトリアルなシーンと高速かつ正確なシミュレーション機能を提供します。

  2. 依存関係のインストール:

    • ORBIT-SurgicalはIsaac SimとORBITに依存しています。

  3. 環境変数の設定:

    • ORBIT-SurgicalリポジトリをORBITリポジトリの外部にクローンします。

    • `ORBIT_PATH`環境変数を定義して、ORBITのインストールディレクトリへのパスを指定します。

  4. Pythonインタープリタの設定:

    • 仮想環境を作成し、condaを使用することをお勧めします。または、Isaac SimのバンドルされたPythonを使用することもできます。

    • VSCodeでconda環境をデフォルトのインタープリタとして設定します。

  5. IDEのセットアップ:

    • VSCodeでORBIT-Surgicalディレクトリを開き、タスクを実行してPython環境をセットアップします。

この記事が気に入ったらサポートをしてみませんか?