(57)【要約】同期および非同期ネットワークを含む手術ロボットシステムならびにそれを用いる方法が提供される。１つの手術ロボットシステムは、ネットワーク化されたコンピューティングノードと、スレーブロボットアセンブリと、第１および第２の通信経路と、を含む。スレーブロボットアセンブリは、第１の通信経路を介して互いに通信可能に結合されており、それにより、同期ネットワークの少なくとも一部分を形成するサブユニットを含む。ネットワーク化されたコンピューティングノードおよびサブユニットは、第２の通信経路を介して互いに通信可能に結合されており、それにより、第２のネットワークの少なくとも一部分を形成し、第２のネットワークを介して１つ以上のパケットを互いに通信するように構成される。サブユニットは、１つ以上のパケットからのデータを、同期ネットワークを介して他のサブユニットと通信するように構成される。【選択図】図４
2021511888.tif 000002
【特許請求の範囲】
【請求項１】
手術ロボットシステムであって、
ネットワーク化されたコンピューティングノードと、
複数のサブユニットを含む、スレーブロボットアセンブリと、
複数の第１の通信経路と、
複数の第２の通信経路と、を含み、
前記複数のサブユニットが、前記複数の第１の通信経路を介して互いに通信可能に結合されており、それにより、同期ネットワークの少なくとも一部分を形成し、
前記ネットワーク化されたコンピューティングノードおよび前記複数のサブユニットのうちの少なくとも１つが、前記複数の第２の通信経路のうちの１つ以上を介して互いに通信可能に結合されており、それにより、第２のネットワークの少なくとも一部分を形成し、前記第２のネットワークを介して１つ以上のパケットを互いに通信するように構成されており、
前記複数のサブユニットのうちの前記少なくとも１つが、前記同期ネットワークを介して前記複数のサブユニットのうちの他のものと、前記１つ以上のパケットからのデータを通信するように構成されており、
前記同期ネットワークのクロックレートが、前記第２のネットワークのクロックレートから独立しており、
前記ネットワーク化されたコンピューティングノードが、グローバルセーフティモニターをさらに含み、前記スレーブロボットアセンブリが、１つ以上のローカル解決ルールを記憶しているメモリを含み、前記複数のサブユニットのうちの前記少なくとも１つは、
前記複数の第１の通信経路のうちの１つ以上を介して、前記複数のサブユニットの別のサブユニットからセーフティ警告を受信することと、
前記受信されたセーフティ警告のセーフティメトリックがそれぞれの閾値を超えているかどうかを決定することと、
前記セーフティメトリックが前記それぞれの閾値を超えているとの決定に応じて、前記１つ以上のローカル解決ルールに基づいて、対応するセーフティ警告に関連するアクションが前記複数のサブユニットのうちの１つ以上によって実行され得るかどうかを決定することと、
前記対応するセーフティ警告に関連する前記アクションが前記複数のサブユニットのうちの１つ以上によって実行され得るとの決定に応じて、前記複数のサブユニットのうちの１つ以上によって前記アクションを実行させて、前記セーフティ警告に対処することと、
前記対応するセーフティ警告に関する前記アクションが前記複数のサブユニットのうちのいずれによっても実行され得ないとの決定に応じて、前記第２のネットワークを介して、前記セーフティ警告を前記グローバルセーフティモニターに送信することと、を行うようにさらに構成されている、手術ロボットシステム。
【請求項２】
前記１つ以上のローカル解決ルールは、セーフティ警告にそれぞれ対応する１つ以上のアクションを示す情報、または前記スレーブロボットアセンブリの前記複数のサブユニットのうちの１つ以上が前記セーフティ警告にそれぞれ対応する前記１つ以上のアクションを実行し得るかどうかを示す情報のうちの少なくとも１つを含む、請求項１に記載の手術ロボットシステム。
【請求項３】
前記アクションが、前記セーフティ警告と関連付けられる前記複数のサブユニットのうちの１つ以上をパワーダウンすることを含む、請求項１に記載の手術ロボットシステム。
【請求項４】
前記ネットワーク化されたコンピューティングノードの前記グローバルセーフティモニターが、
前記複数の第２の通信経路のうちの１つ以上を介して、前記複数のサブユニットの前記１つから前記セーフティ警告を受信することと、
前記セーフティ警告の前記受信に応じて、前記ネットワーク化されたコンピューティングノードに、前記セーフティ警告に対処するための前記アクションを実行させることと、を行うようにさらに構成されている、請求項１に記載の手術ロボットシステム。
【請求項５】
前記複数のサブユニットの各々が、（ａ）前記複数の第２の通信経路のうちの前記１つ以上、または（ｂ）前記複数の第１の通信経路のうちの１つ以上、前記複数のサブユニットのうちの別の１つ、および前記複数の第２の通信経路のうちの前記１つ以上、のうちの少なくとも１つを含むそれぞれの経路を介して、対応するセーフティ警告を前記グローバルセーフティモニターに送信するように構成されている、請求項１に記載の手術ロボットシステム。
【請求項６】
外科医コンソールをさらに含み、
前記外科医コンソール、前記ネットワーク化されたコンピューティングノード、および前記複数のサブユニットのうちの前記少なくとも１つが、前記複数の第２の通信経路のうちの１つ以上を介して互いに通信可能に結合されており、それにより、前記第２のネットワークの少なくとも別の部分を形成する、請求項１に記載の手術ロボットシステム。
【請求項７】
前記複数のサブユニットが、リングトポロジーで、前記複数の第１の通信経路を介して、互いに通信可能に結合されている、請求項１に記載の手術ロボットシステム。
【請求項８】
複数の第２のサブユニットを含む、第２のスレーブロボットアセンブリと、
複数の第３の通信経路と、をさらに含み、
前記複数の第２のサブユニットが、前記複数の第３の通信経路を介して互いに通信可能に結合されており、それにより、第２の同期ネットワークの少なくとも一部分を形成し、
前記第２の同期ネットワークのクロックレートが、前記同期ネットワークの前記クロックレートおよび前記第２のネットワークの前記クロックレートから独立している、請求項１に記載の手術ロボットシステム。
【請求項９】
前記スレーブロボットアセンブリが、第１の一意の識別子と関連付けられており、前記第２のスレーブロボットアセンブリが、第２の一意の識別子と関連付けられている、請求項８に記載の手術ロボットシステム。
【請求項１０】
前記１つ以上のパケットが、前記スレーブロボットアセンブリと関連付けられた前記第１の一意の識別子、または前記第２のスレーブロボットアセンブリと関連付けられた前記第２の一意の識別子を含む、請求項９に記載の手術ロボットシステム。
【請求項１１】
前記第２のネットワークが、同期ネットワークである、請求項１に記載の手術ロボットシステム。
【請求項１２】
前記第２のネットワークが、非同期ネットワークである、請求項１に記載の手術ロボットシステム。
【請求項１３】
手術ロボットシステムの同期ネットワークおよび非同期ネットワークを用いる方法であって、
スレーブロボットアセンブリのメモリに、１つ以上のローカル解決ルールを記憶させることと、
前記スレーブロボットアセンブリの複数のサブユニットのうちの少なくとも１つによって、前記同期ネットワークを介して、前記複数のサブユニットのうちの別のサブユニットからセーフティ警告を受信することと、
前記受信されたセーフティ警告のセーフティメトリックがそれぞれの閾値を超えているかどうかを決定することと、
前記セーフティメトリックが前記それぞれの閾値を超えているとの決定に応じて、前記１つ以上のローカル解決ルールに基づいて、対応するセーフティ警告に関連するアクションが前記複数のサブユニットのうちの１つ以上によって実行され得るかどうかを決定することと、
前記対応するセーフティ警告に関連する前記アクションが前記複数のサブユニットのうちの１つ以上によって実行され得るとの決定に応じて、前記複数のサブユニットのうちの１つ以上によって前記アクションを実行させて、前記セーフティ警告に対処することと、
前記対応するセーフティ警告に関する前記アクションが前記複数のサブユニットのうちのいずれによっても実行され得ないとの決定に応じて、前記非同期ネットワークを介して、ネットワーク化されたコンピューティングノードにおけるグローバルセーフティモニターに、前記セーフティ警告を送信することと、を含み、前記同期ネットワークのクロックレートが、前記非同期ネットワークのクロックレートから独立している、方法。
【請求項１４】
前記１つ以上のローカル解決ルールは、セーフティ警告に対応する１つ以上のアクションを示す情報、および／または前記スレーブロボットアセンブリの前記サブユニットのうちの１つ以上が前記セーフティ警告に対応する前記１つ以上のアクションを実行し得るかどうかを示す情報を含む、請求項１３に記載の方法。
【請求項１５】
前記アクションが、前記セーフティ警告と関連付けられる前記複数のサブユニットのうちの１つ以上をパワーダウンすることを含む、請求項１３に記載の方法。
【請求項１６】
前記非同期ネットワークを介して、前記サブユニットのうちの前記１つから前記セーフティ警告を受信することと、前記セーフティ警告の前記受信に応じて、前記ネットワーク化されたコンピューティングノードに、前記セーフティ警告に対処するための前記アクションを実行させることと、をさらに含む、請求項１３に記載の方法。
【請求項１７】
前記非同期ネットワークを介して、前記ネットワーク化されたコンピューティングノードにおける前記グローバルセーフティモニターに前記セーフティ警告を送信することが、（ａ）前記非同期ネットワークの第１の通信経路のうちの１つ以上、または（ｂ）前記同期ネットワークの第２の通信経路のうちの１つ以上、前記サブユニットのうちの別の１つ、および前記非同期ネットワークの前記第１の通信経路のうちの前記１つ以上、のうちの少なくとも１つを含むそれぞれの経路を介して送信することを含む、請求項１３に記載の方法。
【請求項１８】
前記アクションが、前記セーフティ警告と関連付けられる前記複数のサブユニットのうちの１つ以上のモータを抑制することを含む、請求項１３に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
手術ロボットシステムの人気が高まるにつれて、向上した機能、パフォーマンス、および柔軟性を有し、広範囲の手術処置に適応することができる、改善された手術ロボットシステムを開発する取り組みが進行中である。開発中のいくつかの手術ロボットシステムには、様々な通信リンクを介して互いに通信する多数のサブシステムが含まれる。手術ロボットシステムの複雑さが増すにつれて、例えば、様々なタイプの待ち時間を軽減する効率的な様式で、手術ロボットシステムが動作および／または通信することを保証することに関連する課題も増大する。
【発明の概要】
【課題を解決するための手段】
【０００２】
本開示は、ロボットシステムに関し、より具体的には、同期および非同期ネットワークを含む手術ロボットシステム、ならびに同期および非同期ネットワークを用いる通信方法に関する。
【０００３】
本開示の一態様によれば、上述のニーズに対処するシステムおよび方法が提供される。本開示の一態様では、ロボット手術システムが提供される。システムは、ネットワーク化されたコンピューティングノードと、スレーブロボットアセンブリと、複数の第１の通信経路と、複数の第２の通信経路と、を含む。スレーブロボットアセンブリは、複数のサブユニットを含む。複数のサブユニットは、複数の第１の通信経路を介して互いに通信可能に結合されており、それにより、同期ネットワークの少なくとも一部分を形成する。ネットワーク化されたコンピューティングノードおよび複数のサブユニットのうちの少なくとも１つは、複数の第２の通信経路のうちの１つ以上を介して互いに通信可能に結合されており、それにより、第２のネットワークの少なくとも一部分を形成し、第２のネットワークを介して１つ以上のパケットを互いに通信するように構成される。複数のサブユニットのうちの少なくとも１つは、同期ネットワークを介して複数のサブユニットのうちの他のものと、１つ以上のパケットからのデータと通信するように構成される。同期ネットワークのクロックレートは、第２のネットワークのクロックレートから独立している。ネットワーク化されたコンピューティングノードは、グローバルセーフティモニターをさらに含み、スレーブロボットアセンブリは、１つ以上のローカル解決ルールを記憶しているメモリを含む。複数のサブユニットのうちの少なくとも１つは、（１）複数の第１の通信経路のうちの１つ以上を介して、複数のサブユニットの別のサブユニットからセーフティ警告を受信することと、（２）受信されたセーフティ警告のセーフティメトリックがそれぞれの閾値を超えているかどうかを決定することと、（３）セーフティメトリックがそれぞれの閾値を超えているとの決定に応じて、１つ以上のローカル解決ルールに基づいて、対応するセーフティ警告に関連するアクションが複数のサブユニットのうちの１つ以上によって実行され得るかどうかを決定することと、（４）対応するセーフティ警告に関連するアクションが複数のサブユニットのうちの１つ以上によって実行され得るとの決定に応じて、複数のサブユニットのうちの１つ以上によってアクションを実行させて、セーフティ警告に対処することと、（５）対応するセーフティ警告に関するアクションが複数のサブユニットのうちのいずれによっても実行され得ないとの決定に応じて、第２のネットワークを介して、セーフティ警告をグローバルセーフティモニターに送信することと、を行うようにさらに構成される。
【０００４】
本開示の別の態様では、１つ以上のローカル解決ルールは、セーフティ警告にそれぞれ対応する１つ以上のアクションを示す情報、またはスレーブロボットアセンブリの複数のサブユニットのうちの１つ以上がセーフティ警告にそれぞれ対応する１つ以上のアクションを実行し得るかどうかを示す情報のうちの少なくとも１つを含む。
【０００５】
本開示のさらに別の態様では、アクションは、セーフティ警告と関連付けられる複数のサブユニットのうちの１つ以上をパワーダウンすることを含む。
【０００６】
本開示のさらに別の態様では、ネットワーク化されたコンピューティングノードのグローバルセーフティモニターは、複数の第２の通信経路のうちの１つ以上を介して、複数のサブユニットの１つからセーフティ警告を受信することと、セーフティ警告の受信に応じて、ネットワーク化されたコンピューティングノードに、セーフティ警告に対処するためのアクションを実行させることと、を行うようにさらに構成される。
【０００７】
本開示のさらなる態様では、複数のサブユニットの各々は、（ａ）複数の第２の通信経路のうちの１つ以上、または（ｂ）複数の第１の通信経路のうちの１つ以上、複数のサブユニットのうちの別の１つ、および複数の第２の通信経路のうちの１つ以上、のうちの少なくとも１つを含むそれぞれの経路を介して、対応するセーフティ警告をグローバルセーフティモニターに送信するように構成される。
【０００８】
本開示の別の態様では、手術ロボットシステムは、外科医コンソールをさらに含み、外科医コンソール、ネットワーク化されたコンピューティングノード、および複数のサブユニットのうちの少なくとも１つは、複数の第２の通信経路のうちの１つ以上を介して互いに通信可能に結合されており、それにより、第２のネットワークの少なくとも別の部分を形成する。
【０００９】
本開示のさらに別の態様では、複数のサブユニットは、リングトポロジーで、複数の第１の通信経路を介して、互いに通信可能に結合される。
【００１０】
本開示のさらに別の態様では、手術ロボットシステムは、複数の第２のサブユニットを含む、第２のスレーブロボットアセンブリと、複数の第３の通信経路と、をさらに含む。複数の第２のサブユニットは、複数の第３の通信経路を介して互いに通信可能に結合されており、それにより、第２の同期ネットワークの少なくとも一部分を形成する。第２の同期ネットワークのクロックレートは、同期ネットワークのクロックレートおよび第２のネットワークのクロックレートから独立している。
【００１１】
本開示のさらなる態様では、スレーブロボットアセンブリは、第１の一意の識別子と関連付けられており、第２のスレーブロボットアセンブリは、第２の一意の識別子と関連付けられる。
【００１２】
本開示の別の態様では、１つ以上のパケットは、スレーブロボットアセンブリと関連付けられた第１の一意の識別子、または第２のスレーブロボットアセンブリと関連付けられた第２の一意の識別子を含む。
【００１３】
本開示のさらに別の態様では、第２のネットワークは、同期ネットワークである。
【００１４】
本開示のさらに別の態様では、第２のネットワークは、非同期ネットワークである。
【００１５】
本開示の別の態様に従って、手術ロボットシステムの同期ネットワークおよび非同期ネットワークを用いる方法が提供される。方法は、スレーブロボットアセンブリのメモリに、１つ以上のローカル解決ルールを記憶させることを含む。セーフティ警告は、スレーブロボットアセンブリの複数のサブユニットのうちの少なくとも１つによって、同期ネットワークを介して、複数のサブユニットのうちの別のサブユニットから受信される。受信されたセーフティ警告のセーフティメトリックがそれぞれの閾値を超えているかどうかに関する決定が行われる。セーフティメトリックがそれぞれの閾値を超えているとの決定に応じて、１つ以上のローカル解決ルールに基づいて、対応するセーフティ警告に関連するアクションが複数のサブユニットのうちの１つ以上によって実行され得るかどうかに関する決定が行われる。対応するセーフティ警告に関連するアクションが複数のサブユニットのうちの１つ以上によって実行され得るとの決定に応じて、複数のサブユニットのうちの１つ以上によってアクションを実行させて、セーフティ警告に対処する。対応するセーフティ警告に関するアクションが複数のサブユニットのうちのいずれによっても実行され得ないとの決定に応じて、非同期ネットワークを介して、ネットワーク化されたコンピューティングノードにおけるグローバルセーフティモニターに、セーフティ警告が送信される。同期ネットワークのクロックレートは、非同期ネットワークのクロックレートから独立している。
【００１６】
本開示の別の態様では、１つ以上のローカル解決ルールは、セーフティ警告に対応する１つ以上のアクションを示す情報、および／またはスレーブロボットアセンブリのサブユニットのうちの１つ以上がセーフティ警告に対応する１つ以上のアクションを実行し得るかどうかを示す情報を含む。
【００１７】
本開示のさらに別の態様では、アクションは、セーフティ警告と関連付けられる複数のサブユニットのうちの１つ以上をパワーダウンすることを含む。
【００１８】
本開示のさらに別の態様では、方法は、非同期ネットワークを介して、サブユニットのうちの１つからセーフティ警告を受信することと、セーフティ警告の受信に応じて、ネットワーク化されたコンピューティングノードに、セーフティ警告に対処するためのアクションを実行させることと、をさらに含む。
【００１９】
本開示のさらに別の態様では、非同期ネットワークを介して、ネットワーク化されたコンピューティングノードにおけるグローバルセーフティモニターにセーフティ警告を送信することは、（ａ）非同期ネットワークの第１の通信経路のうちの１つ以上、または（ｂ）同期ネットワークの第２の通信経路のうちの１つ以上、サブユニットのうちの別の１つ、および非同期ネットワークの第１の通信経路のうちの１つ以上、のうちの少なくとも１つを含むそれぞれの経路を介して送信することを含む。
【００２０】
本開示のさらに別の態様では、アクションは、セーフティ警告と関連付けられる複数のサブユニットのうちの１つ以上のモータを抑制することを含む。
【図面の簡単な説明】
【００２１】
本開示の様々な態様および特徴は、図面を参照して、本明細書に後述される。
【００２２】
【図１】本明細書の例示的な実施形態による例示のロボット手術システムを示す。
【図２】本明細書の例示的な実施形態による、図１のロボット手術システムの様々な構成要素が非同期ネットワークおよび同期ネットワークを形成する例示的な実施形態を示す概略図である。
【図３】本明細書の例示的な実施形態による図１のロボット手術システムの構成要素間の様々なタイプの情報の通信を容易にする、図２の非同期ネットワークおよび同期ネットワークの例示の構成を示す別の概略図である。
【図４】本明細書の例示的な実施形態による、図１のロボット手術システムの構成要素の構成を示す概略図であり、ここで、意思決定制御は、スレーブロボットアセンブリおよび／もしくはネットワーク化されたコンピューティングノードの構成要素、または他の構成要素間に割り振られる。
【図５】本明細書の例示的な実施形態による、図４の手術ロボットシステムの構成要素の構成を用いて、スレーブロボットアセンブリおよび／もしくはネットワーク化されたコンピューティングノードの構成要素、または他の構成要素間に、意思決定制御を割り振るための例示の方法を示すフローチャートである。
【図６】本明細書の例示的な実施形態による、図２の手術ロボットシステムの構成要素の構成を用いて、アクションの実行を割り振るための例示の方法を示すフローチャートである。
【発明を実施するための形態】
【００２３】
本開示は、同期および非同期ネットワークを含む手術ロボットシステム、ならびに同期および非同期ネットワークを用いる通信方法を対象とする。特に、本明細書で説明されるシステムおよび方法は、非同期ネットワークおよび同期ネットワークで構成要素を用いる手術ロボットシステムを設計および実装することを可能にする。構成要素は、互いに通信可能に結合されており、かつ非同期ネットワーク、同期ネットワーク、およびそれらの間の通信経路を利用し、手術ロボットシステムは、最初に同期ネットワーク内の構成要素レベルでローカルに決定を行い、最初に同期ネットワーク内の構成要素レベルでローカルに決定を行うことができない場合には、手術ロボットシステムは、その際、非同期ネットワーク内の構成要素を使用して、グローバルレベルまたはシステムレベルで決定を行う。本明細書で説明する技術、技法、および実施形態を利用して、手術ロボットシステムの全体的な待ち時間が低減され、手術ロボットシステムの動作およびデータ通信効率が改善される。
【００２４】
ここで本開示の実施形態が図面を参照して詳細に記載され、図面の中で同様の参照番号は、いくつかの図の各々において同一のまたは対応する要素を示す。本明細書で使用される場合、「臨床医」という用語は、医師、看護師、技術者、医療助手、もしくは同様のサポート要員、または本明細書に記載の手術ロボットシステムを使用することができる任意の他の人物を指す。本明細書全体を通じて、「非同期ネットワーク」という用語は、コンピューティングデバイスが１つ以上の通信経路を介して互いに通信可能に結合され、かつ例えば、送信および受信コンピューティングデバイスのクロック信号を同期させる必要なく、非同期様式でこれらの通信経路を介してデータおよび／または他の情報を互いに通信するように構成されるように構成されている、一セットのコンピューティングデバイスと１つ以上の通信経路によって画定される、ネットワークを指す。本明細書全体を通じて、「同期ネットワーク」という用語は、コンピューティングデバイスが１つ以上の通信経路を介して互いに通信可能に結合され、かつ例えば、互いに同期された送信および受信コンピューティングデバイスのクロック信号を使用することによって、同期様式でこれらの通信経路を介してデータおよび／または他の情報を互いに通信するように構成されるように構成されている、一セットのコンピューティングデバイスと１つ以上の通信経路によって画定される、ネットワークを指す。本明細書に記載の非同期ネットワークおよび同期ネットワークを画定するコンピューティングデバイスおよび／または通信経路の間に、重複が存在する可能性がある。例えば、コンピューティングデバイスおよび／または通信経路は、非同期ネットワークの一部として含まれ得、また同期ネットワークの一部として含まれ得る。さらに、図面中および続く説明において、例えば、前側、後側、上側、下側、頂部、底部、および類似の方向性の用語などの用語は、単に説明の便宜のために使用されており、本開示を限定することを意図するものではない。以下の記載では、周知の機能または構成は、本開示を不必要に詳細に示して不明瞭にすることを避けるために、詳細には記載されていない。
【００２５】
ここで図１を参照すると、本明細書の様々な例示的実施形態に従って用いられる例示的なロボット手術システム１００が示されている。システム１００は、手術室で用いられる例示的なシステムである。図１に示されるシステム１００の特定の数の構成要素、ならびにその配置および構成は、例示目的のみのために提供され、限定するものとして解釈されるべきではない。例えば、本明細書の様々な実施形態は、図１に示される構成要素のすべてよりも少ないまたは多い構成要素を用いる。例えば、システム１００の追加の構成要素が、図２および図４に示されている。さらに、図１に示されるシステム１００は、本明細書の様々な例示的実施形態が適用可能な例示的な文脈として提供される。しかしながら、本明細書の様々な例示的実施形態は、ロボット手術システム以外の状況においても適用可能である。
【００２６】
システム１００は、手術処置中に患者１０４が横たわる手術台１０２と、手術処置中に臨床医、ユーザまたは外科医が対話する、外科医コンソール１７０と、ネットワーク化されたコンピューティングノード１８０と、１つ以上のスレーブロボットアセンブリ１９０と、を含む。便宜上、本説明は、単一のスレーブロボットアセンブリ１９０の文脈で行われるが、本開示は、多数のスレーブロボットアセンブリ１９０を含む実施形態にも同様に適用可能であることを理解されたい。外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０およびスレーブロボットアセンブリ１９０は、本明細書の様々な実施形態では、有線通信経路および／または無線通信経路として実装され得る、それぞれの通信経路１０６（個別に、１０６ａ、１０６ｂ、および１０６ｃ）を介して互いに通信可能に結合される。特に、外科医コンソール１７０およびネットワーク化されたコンピューティングノード１８０は、通信経路１０６ａを介して互いに通信可能に結合される。ネットワーク化されたコンピューティングノード１８０およびスレーブロボットアセンブリ１９０は、通信経路１０６ｂを介して互いに通信可能に結合される。外科医コンソール１７０およびスレーブロボットアセンブリ１９０は、通信経路１０６ａ、ネットワーク化されたコンピューティングノード１８０、および通信経路１０６ｂを介して互いに通信可能に結合される。以下でさらに詳細に説明するように、いくつかの実施形態では、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、およびスレーブロボットアセンブリ１９０は、通信経路１０６と共に、非同期ネットワーク（図１に個別に示されていない）を画定する。これにより、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、およびスレーブロボットアセンブリ１９０は、データおよび／または他の情報を非同期様式で互いに通信するように構成される。本明細書では非同期ネットワークとして説明されているが、当業者は、通信経路１０６と共に外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、およびスレーブロボットアセンブリ１９０によって形成されるネットワークが、代替的に同期ネットワークであってもよいことを認識されよう。また以下でさらに詳細に説明するように、システム１００は、システム１００内の異なる構成要素が互いに通信することを可能にするパブリッシュ／サブスクライブメッセージングパターンを実装するように構成され得る。外科医コンソール１７０と、ネットワーク化されたコンピューティングノード１８０と、スレーブロボットアセンブリ１９０との間の通信のさらなる詳細は、図２、図３、図４、および図５の文脈で本明細書に提供される。
【００２７】
スレーブロボットアセンブリ１９０は、多数のサブユニット１９１、１９２、１９３、および１９４、すなわち、カートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、および器具駆動ユニット（ＩＤＵ）１９４を含む。スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４は、互いにスレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４に直接的または間接的のいずれかで動作可能に結合される。例えば、カートユニット１９１は、セットアップアームユニット１９２、ロボットアームユニット１９３、および器具駆動ユニット１９４に動作可能に結合される。同様に、セットアップアームユニット１９２は、カートユニット１９１、ロボットアームユニット１９３、および器具駆動ユニット１９４に動作可能に結合されており、一方で、ロボットアームユニット１９３は、カートユニット１９１、セットアップアームユニット１９２、および器具駆動ユニット１９４に動作可能に結合されており、さらに器具駆動ユニット１９４は、カートユニット１９１、セットアップアームユニット１９２、およびロボットアームユニット１９３に動作可能に結合される。サブユニット１９１、１９２、１９３、および１９４はまた、１つ以上の通信経路（図１には示されていない）を介して直接的または間接的のいずれかでスレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４に互いに通信可能に結合され、それにより、同期ネットワークを画定する。カートユニット１９１は、手術処置を受ける患者１０４の範囲内で手術台１０２に隣接して配置される。器具駆動ユニット１９４は、それに交換可能に固定され得る１つ以上の対応する手術器具（図１には示されていない）に結合可能である。カートユニット１９１は、手術台１０２または患者１０４の側面に沿って移動するように構成される。カートユニット１９１は、患者１０４に向かって、また患者１０４から離れて移動するように構成される。
【００２８】
ネットワーク化されたコンピューティングノード１８０は、１つ以上のプロセッサ１１８および１つ以上のメモリユニット１２０を含む、コンピューティングデバイスである。ネットワーク化されたコンピューティングノード１８０は、ネットワークおよび／またはインターネットを介して外科医コンソール１７０、スレーブロボットアセンブリ１９０、および／または外部デバイスとの通信を容易にする、ネットワークインターフェースなどの１つ以上の通信インターフェースをさらに含み得る。様々な実施形態では、ネットワーク化されたコンピューティングノード１８０は、外科医コンソール１７０と統合されてもよく、または手術室の内部またはその近くに配設されたコンピューティングタワーなどのスタンドアロンデバイスであってもよい。メモリユニット１２０は、本明細書の様々な実施形態の手順を実行するためにプロセッサ１１８が実行する命令１３６（一実施例では、ソフトウェア）を記憶する。理解されるように、プロセッサ１１８およびメモリユニット１２０の実装は、例としてのみ提供されており、限定するものとして解釈されるべきではない。例えば、本開示のいずれかの実施形態の手順は、ハードウェア構成要素、ファームウェア構成要素、ソフトウェア構成要素、および／またはそれらの任意の組み合わせによって実装されてもよい。ネットワーク化されたコンピューティングノード１８０の追加の詳細は、図２、図３、図４、および図５の文脈で以下に提供される。
【００２９】
外科医コンソール１７０は、手術処置中に外科医が対話するディスプレイデバイス１２２およびハンドル１１２を含む。いくつかの実施形態では、ハンドル１１２は、様々な触覚部１２４および／またはアクチュエータ１２６を含む。外科システム１００の動作中に、外科医は、外科医コンソール１７０のハンドル１１２を動かして、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４、および／または器具駆動ユニット１９４に結合された１つ以上の手術器具（図１には示されていない）の対応する移動および／または作動を生成する。外科医の入力コマンドに基づいて、ハンドル１１２は、通信経路１０６ａを介して、ネットワーク化されたコンピューティングノード１８０に信号を提供し、その後、通信経路１０６ｂを介して、スレーブロボットアセンブリ１９０のカートユニット１９１に、対応する信号を提供し、他の通信経路（図１には示されていない）を介して、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４に、コマンドされたアクションを実行させるために、対応する信号または命令を提供する。いくつかの実施形態では、スレーブロボットアセンブリ１９０は、対応するサブユニット１９２、１９３、１９４および／またはそれに結合された手術器具（図１には示されていない）の運動が引き起こすために、セットアップアームユニット１９２、ロボットアームユニット１９３、および／または器具駆動ユニット１９４に結合されている１つ以上の駆動モータ（図１には示されていない）を含む。
【００３０】
いくつかの実施形態では、ハンドル１１２内の様々な触覚部１２４は、様々な組織パラメータまたは状態、一実施例では、操作、切断または他の治療による組織抵抗、器具による組織への圧力、組織温度、組織インピーダンスなどに関するフィードバックを臨床医に提供する。理解され得るように、そのような触覚部１２４は、実際の動作状態をシミュレートする強化された触覚フィードバックを臨床医に提供する。触覚部１２４は、振動モータ、電気活性ポリマー、圧電デバイス、静電デバイス、亜音速音波表面作動デバイス、逆電気振動、またはユーザに触覚フィードバックを提供することができる任意の他のデバイスを含んでもよい。上述のように、ハンドル１１２はまた、例えば、実際の動作状態を模倣する外科医の能力をさらに高める繊細な組織操作および／または治療に用いられ得る、様々な異なるアクチュエータ１２６も含んでもよい。
【００３１】
上述のように、実行される特定の手術処置に応じて、１つ以上の手術器具（図１では別個に示されていない）を器具駆動ユニット１９４に交換可能に固定することができる。任意のタイプの手術器具を用いることができるが、そのような手術器具の例示的なタイプは、限定ではなく例として、画像捕捉デバイス、プローブ、エンドエフェクタ、把持器、ナイフ、はさみ、および／または同類のものを含む。本明細書のいくつかの実施形態によれば、器具駆動ユニット１９４に結合された手術器具のうちの１つ以上は、立体画像捕捉デバイスを含むプローブ（図１には示されていない）であり、それは、手術処置中に患者１０４の内部の関心領域の画像を捕捉するために患者１０４に挿入される。画像捕捉デバイスによって捕捉された画像は、画像を外科医に表示する外科医コンソール１７０のディスプレイデバイス１２２（本明細書では「ディスプレイ」とも呼ばれる）に伝達される。
【００３２】
図２は、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、およびスレーブロボットアセンブリ１９０の追加の構成要素を含む、外科システム１００の追加の態様を示すブロック図を示している。また、図２には、少なくとも部分的に通信経路１０６ａおよび１０６ｂによって画定される非同期ネットワークと、少なくとも部分的に通信経路２０２ａ、２０２ｂ、２０２ｃ、および２０２ｄ（集合的に２０２）によって画定される同期ネットワークの例示的なトポロジーも示されている。外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、スレーブロボットアセンブリ１９０、ならびに非同期および同期ネットワークをそれぞれ画定する通信経路１０６および２０２の構成および機能性により、手術ロボットシステム１００の個々の構成要素は、例えば、外科医コンソール１７０を介して移動コマンドを入力する外科医と対応するサブユニット１９１、１９２、１９４、および１９４の実際の移動との間の待ち時間などの様々なタイプの待ち時間を軽減する効率的な様式で動作および／または通信することを可能にする。例えば、様々な実施形態では、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９４、および１９４は、通信経路２０２によって少なくとも部分的に画定される同期ネットワークを介して、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０から独立して、互いに通信するように構成される。同時に、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、および／またはスレーブロボットアセンブリ１９０は、通信経路１０６によって少なくとも部分的に画定される非同期ネットワークを介して互いに通信するように構成される。システム１００の構成要素を並列非同期および同期ネットワークに割り振り、機能（電力管理機能など）をシステム１００の特定の構成要素に割り振ることにより、操作性能、通信および／または同様のものの効率が改善される。例えば、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９４、および１９４のうちの１つ以上が、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０からの処理、通信などを必要とする状況が発生した場合、サブユニット１９１、１９２、１９４、および１９４は、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０と通信するように構成される。しかしながら、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９４、および１９４は、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０からの処理、通信などを必要とせずに、特定の処理、通信、および／または他のコンピューティングタスクを処理し、それにより外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０の処理および／または通信帯域幅を解放するように構成される。これにより、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０は、より多くのスレーブロボットアセンブリ１９０に適応することが可能になり、それにより、外科ロボットシステム１００の機能および柔軟性が向上する。
【００３３】
外科医コンソール１７０と、ネットワーク化されたコンピューティングノード１８０と、スレーブロボットアセンブリ１９０との間の通信は、リアルタイム通信および非リアルタイム通信を含む。本明細書で使用される場合、「リアルタイム通信」という用語は、発生したイベントに対応するデータ（例えば、手術システム１００のエラーに関するデータ、手術システム１００に対する重大なリスクに関する警告、他の重要なデータなど）の送信を指す。本明細書で使用される場合、「非リアルタイム通信」という用語は、ネットワーク化されたコンピューティングノード１８０があまり使用されていないとき、またはオフピーク時にあることに対応するデータ（例えば、重要でないデータ）の送信を指す。
【００３４】
図２に示されるように、外科医コンソール１７０は、外科医ディスプレイグラフィカルユーザインターフェース（ＧＵＩ）３０６、外科医マスターコンソールソフトウェアサブシステム３０７、および外科医二次的ディスプレイＧＵＩ３０８を含む。図２には別個に示されていないが、いくつかの実施形態では、外科医コンソール１７０は、１つ以上のプロセッサによって実行されたときに、外科医コンソール１７０に、外科医ディスプレイグラフィカルユーザインターフェース（ＧＵＩ）３０６、外科医マスターコンソールソフトウェアサブシステム３０７、および／または外科医二次的ディスプレイＧＵＩ３０８を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、外科医コンソール１７０は、外科医などのユーザがネットワーク化されたコンピューティングノード１８０およびスレーブロボットアセンブリ１９０を介して１つ以上のセットアップアームユニット１９２、ロボットアームユニット１９３、および／または器具駆動ユニット１９４と対話することを可能にする、プログラム、スクリプト、または他の実行可能コマンドなどの手順を実行するように構成される。外科医コンソール１７０は、外科医ディスプレイＧＵＩ３０６を生成して、ディスプレイユニット１２２を介して外科医に情報を提示するようにさらに構成される。
【００３５】
いくつかの実施形態では、外科医コンソール１７０のディスプレイユニット１２２は、外科医からタッチ入力を受信することができるタッチスクリーンである。外科医コンソール１７０のディスプレイユニット１２２は、タッチの圧力および長さを識別および決定するように構成される。いくつかの実施形態では、外科医ディスプレイＧＵＩ３０６は、タッチ入力の時間の長さを決定するように構成されており、タッチ入力の時間の長さに基づいて、外科医ディスプレイＧＵＩ３０６は、１つ以上の異なるグラフィカルユーザインターフェースアイテムを提示することができる。例えば、外科医ディスプレイＧＵＩ３０６が「戻る」ボタンを表示している場合に、「戻る」ボタンを単にタッチすると、画面が外科医ディスプレイＧＵＩ３０６の前の画面に戻り、外科医が戻るボタンを一定時間押し続けた場合、その際、メニューがドロップダウンして、１つ以上の外科医コンソール操作オプションが外科医に提供され得る。
【００３６】
図１には示されていないが、いくつかの実施形態では、外科医コンソール１７０は、第２のディスプレイユニットを含み、その場合、外科医コンソール１７０は、外科医二次的ディスプレイＧＵＩ３０８を生成して、外科医ディスプレイＧＵＩ３０６に関連して上述したのと同様の様式で、二次的ディスプレイユニットによって外科医に情報を提示するようにさらに構成される。
【００３７】
外科医マスターコンソールソフトウェアサブシステム３０７は、外科医ディスプレイＧＵＩ３０６および外科医二次的ディスプレイＧＵＩ３０８に動作可能に結合されており、一般に、外科医コンソール１７０の機能を実行するように構成される。例えば、外科医マスターコンソールソフトウェアサブシステム３０７は、外科医からの入力を捕捉、記録、および／または分析し、ならびに／またはネットワーク化されたコンピューティングノード１８０および／またはスレーブロボットアセンブリ１９０に、およびそれらからデータを通信するように構成される。いくつかの実施形態では、外科医マスターコンソールソフトウェアサブシステム３０７は、外科医コンソール１７０のオペレーティングシステム（図２には示されていない）、および／またはインターネットワーキング機能を実装する１つ以上のアプリケーションなどの外科医コンソール１７０のうちの１つ以上の他の構成要素に結合される。そのようなインターネットワーキング機能の実施例には、リアルタイムパブリッシュサブスクライブプロトコル（ＲＴＰＳ）を含む、リアルタイムシステム（ＤＤＳ）のデータ分布サービスプロトコルなどの機械間通信プロトコルを含む、１つ以上のパケット通信または送信プロトコルが含まれるが、これに限定されない。インターネットワーキング機能によって実装されたパケット送信プロトコルは、システム１００のパブリッシャとサブスクライバ間のスケーラブルで、リアルタイムで、信頼性があり、高性能で、相互運用可能なパケットまたはデータ交換を可能にする。本明細書で説明するように、「パブリッシャ」は、メッセージまたはデータの送信者であり、「サブスクライバ」は、メッセージまたはデータの受信者である。上述のように、手術ロボットシステム１００は、いくつかの実施例では、パブリッシュ−サブスクライブメッセージングパターンを実装し、それにより、パブリッシャは、メッセージをクラスに分類することによってサブスクライバにメッセージを送信し得る。サブスクライバは、特定のクラスへの関心を示し、特定のクラスと関連付けられた、または特定のクラスに分類されたメッセージを受信することができる。
【００３８】
各クラスは特定の識別子と関連付けられ、パブリッシャは、メッセージをクラスの識別子と関連付けることにより、メッセージを特定のクラスに分類することができる。サブスクライバは、クラスの特定の識別子と関連付けられ、識別子と関連付けられるメッセージを受信する。いくつかの実施形態では、サブスクライバの入口インターフェースのインターネットワーキング機能は、サブスクライバと関連付けられたクラス識別子を決定し、かつそれらのクラス識別子と関連付けられたメッセージを受信するように構成される。メッセージは、使用されている通信または送信プロトコルに基づいて、パケット内にカプセル化され得る。いくつかの実施形態では、パケットの特定のフィールドまたはビットは、メッセージと関連付けられたクラスの識別子を含み得る。サブスクライバの入口インターフェースは、パケットのフィールドまたはビットを読み取ることにより、メッセージと関連付けられたクラスの識別子を決定するように構成され得る。
【００３９】
コンピューティングノードは、メッセージのパブリッシャおよび別のメッセージのサブスクライバの両方である場合がある。例えば、外科医コンソール１７０は、外科医コンソール１７０がネットワーク化されたコンピューティングノード１８０に送るメッセージ、またはそれに送信するメッセージのパブリッシャであり得、外科医コンソール１７０は、外科医コンソール１７０がネットワーク化されたコンピューティングノード１８０から受信するメッセージのサブスクライバであり得る。いくつかの実施形態では、外科医コンソール１７０は、外科医コンソール１７０がスレーブロボットアセンブリ１９０に送るメッセージ、またはそれに送信するメッセージのパブリッシャであり得、外科医コンソール１７０は、外科医コンソール１７０がスレーブロボットアセンブリ１９０から受信するメッセージのサブスクライバであり得る。
【００４０】
図２を引き続き参照すると、ネットワーク化されたコンピューティングノード１８０は、手術室（ＯＲ）チームディスプレイＧＵＩ３０１、コアソフトウェア３０２、オブザーバソフトウェア３０３、電源管理ソフトウェア３０４、およびグローバルセーフティモニター３０５を含む。図２には別個に示されていないが、いくつかの実施形態では、ネットワーク化されたコンピューティングノード１８０は、１つ以上のプロセッサによって実行されたときに、ネットワーク化されたコンピューティングノードに、手術室チームディスプレイＧＵＩ３０１、コアソフトウェア３０２、オブザーバソフトウェア３０３、電源管理ソフトウェア３０４、および／またはグローバルセーフティモニター３０５を実装させる命令を記憶する１つ以上のメモリユニット１２０に結合された１つ以上のプロセッサ１１８を含む。このようにして、例えば、ネットワーク化されたコンピューティングノード１８０は、外科医などのユーザが外科医コンソール１７０を介してスレーブロボットアセンブリ１９０の１つ以上のセットアップアームユニット１９２、ロボットアームユニット１９３、および／または器具駆動ユニット１９４の動作を達成することを可能にする、プログラム、スクリプト、または他の実行可能コマンドなどの手順を実行するように構成される。場合によっては、ネットワーク化されたコンピューティングノード１８０は、それぞれ外科医コンソール１７０およびスレーブロボットアセンブリ１９０のうちの一方から受信した情報を変換または他の方法で処理し、かつ外科医コンソール１７０およびスレーブロボットアセンブリ１９０のうちの他方に情報を伝達する、外科医コンソール１７０とスレーブロボットアセンブリ１９０との間のインターフェースとして動作する。
【００４１】
図１または図２には示されていないが、いくつかの実施形態では、ネットワーク化されたコンピューティングノード１８０は、１つ以上の画像または画像のストリームなどの情報をＯＲ要員に表示するように構成されたディスプレイユニットを含むか、またはそれに結合される。ディスプレイユニットは、ディスプレイユニットに表示された情報または画像の可視性がＯＲ内の誰でも容易に見ることができるように構成され得る。そのような実施形態では、ネットワーク化されたコンピューティングノード１８０は、ＯＲチームディスプレイＧＵＩ３０１を生成して、ネットワーク化されたコンピューティングノード１８０のディスプレイユニットを介してＯＲ要員に情報を提示するように構成されている。
【００４２】
手術室チームディスプレイＧＵＩ３０１は、コアソフトウェアシステム３０２に動作可能に結合されており、それにより、ユーザまたは臨床医からの入力が、コアソフトウェアシステム３０２およびコアソフトウェアシステム３０２に結合された他のシステムによって捕捉、記録および分析される。様々な実施形態において、コアソフトウェアシステム３０２は、ネットワーク化されたコンピューティングノード１８０のオペレーティングシステム（図２には別個に示されていない）、および／または例えば、インターネットワーキング機能を実装するアプリケーションなどのネットワーク化されたコンピューティングノード１８０のうちの１つ以上の他のアプリケーションに結合されている。
【００４３】
コアソフトウェアシステム３０２はまた、オブザーバソフトウェアシステム３０３に動作可能に結合され、オブザーバソフトウェアシステム３０３は、スレーブロボットアセンブリ１９０などのシステム１００の他の構成要素を観察および制御するように構成されたプロトコルおよびツールを含む産業用制御システムである。例えば、オブザーバソフトウェアシステム３０３は、ネットワーク化されたコンピューティングノード１８０と動作可能に結合されているシステム１００の構成要素の様々な動作状態を観察するように構成される。例えば、オブザーバソフトウェアシステム３０３は、電源オンおよび電源オフ状態を含む、スレーブロボットアセンブリ１９０の様々な動作状態を観察することができる。オブザーバソフトウェアシステム３０３はまた、システム１００の構成要素の様々な動作状態と関連付けられた情報を、コアソフトウェアシステム３０２に送信するように構成される。いくつかの実施形態では、コアソフトウェアシステム３０２は、システム１００の構成要素の動作状態に基づいて、実施される１つ以上の命令および／または実行されるアクションを決定するように構成される。
【００４４】
コアソフトウェアシステム３０２はまた、電源管理ソフトウェアシステム３０４に動作可能に結合されており、電源管理ソフトウェアシステム３０４は、スレーブロボットアセンブリ１９０、ならびにカートユニット１９４、セットアップアームユニット１９２、ロボットアームユニット１９３および／または器具駆動ユニット１９４などのスレーブロボットアセンブリ１９０の様々な構成要素の電力使用量などのシステム１００の様々な構成要素による電力使用量を決定するように構成される。電源管理ソフトウェアシステム３０４は、様々な電力使用量メトリック、ルール、および／または閾値を記憶し、システム１００の様々な構成要素による電力使用量と関連付けられた一セットの電力使用量ルールに基づいて、実施される１つ以上の命令および／または実行されるアクションを決定するように構成される。コアソフトウェアシステム３０２は、いくつかの実施例では、システム１００の構成要素に供給される、またはそれによって使用される電力の変化の要求を電源管理ソフトウェアシステム３０４に転送して、電力使用量ルールの遵守を確実にするように構成される。
【００４５】
電源管理ソフトウェアシステム３０４は、電力使用量メトリックおよび／または電力使用量と関連付けられたルールに基づいて、要求された変更が許可されるか、または実行可能であるかどうかを決定するように構成される。例えば、ネットワーク化されたコンピューティングノード１８０が、通信経路１０６ａのうちの１つを介して外科医コンソール１７０から、器具駆動ユニット１９４に結合された手術器具を駆動するために使用される電力を増加する要求を受信すると、コアソフトウェアシステム３０２は、その電力を増加する要求を電源管理ソフトウェアシステム３０４に転送する。電源管理ソフトウェアシステム３０４は、器具駆動ユニット１９４の電力使用量と関連付けられたルールに基づいて、器具駆動ユニット１９４に結合された手術器具を駆動するのに現在使用されている電力が、器具駆動ユニット１９４の器具が駆動されることを許可される最大電力より低いことを決定し、それに応答して、通信経路１０６および２０２のうちの１つ以上を介して、ＩＤＵソフトウェアサブシステム３１４に、器具駆動ユニット１９４に結合された手術器具を駆動するのに使用される電力を増加させる命令を転送する。いくつかの実施形態では、電源管理ソフトウェアシステム３０４は、命令をコアソフトウェアシステム３０２に転送し、コアソフトウェアシステム３０２は、命令をスレーブロボットアセンブリ１９０に送信する。
【００４６】
コアソフトウェアシステム３０２はまた、グローバルセーフティモニターシステム３０５に動作可能に結合される。グローバルセーフティモニターシステム３０５は、システム１００の様々なセーフティ閾値を超えているかどうかを決定するための１つ以上のルールを含む。グローバルセーフティモニターシステム３０５は、ネットワーク化されたコンピューティングノード１８０、外科医コンソール１７０、ならびにスレーブロボットアセンブリ１９０およびそれらの構成要素を含む、システム１００の各構成要素のセーフティレベルを監視する。システムのセーフティレベルは、構成要素の１つ以上のセーフティメトリック（例えば、図１または図２に個別に示されていないセンサまたは他の測定デバイスによって決定される）を比較し、次に、メトリックをグローバルセーフティモニター３０５の１つ以上のルールと比較することにより、それらのメトリックが構成されたセーフティ閾値内にあるかどうかを決定することによって決定される。グローバルセーフティモニターシステム３０５の追加の詳細は、図４の文脈で以下に提供される。
【００４７】
上述のように、システム１００はまた、スレーブロボットアセンブリ１９０などの１つ以上のスレーブロボットアセンブリを含み、各スレーブロボットアセンブリは、それぞれカートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４などのカートユニット、セットアップアームユニット、ロボットアームユニット、器具駆動ユニットを含むことができる。一般に、スレーブロボットアセンブリ１９０のカートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、および器具駆動ユニット１９４は、通信経路２０２とともに、同期ネットワークを画定し、ここで、サブユニット１９１、１９２、１９３、および１９４の各々によって使用されるクロックは、互いに同期される。スレーブロボットアセンブリ１９０の同期ネットワークのトポロジーは、単方向リングネットワーク、双方向リングネットワークおよび／または同様のものを含むリングネットワークトポロジーなどの効率的な同期ネットワークを可能にする任意のネットワークトポロジーであり得る。カートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４などのスレーブロボットアセンブリ１９０の様々な構成要素は、制御自動化技術（ＥｔｈｅｒＣＡＴ）のためのイーサネット（登録商標）などの１つ以上の通信プロトコルを利用して、通信経路２０２を介して互いに通信するように構成される。
【００４８】
図２に示すように、カートユニット１９１は、スレーブロボットアセンブリソフトウェアサブシステム３０９、アームカートソフトウェアサブシステム３１０、およびデータコントローラ３１５を含む。図２には別個に示されていないが、いくつかの実施形態では、カートユニット１９１は、１つ以上のプロセッサによって実行されたときに、カートユニット１９１に、スレーブロボットアセンブリソフトウェアサブシステム３０９およびアームカートソフトウェアサブシステム３１０を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、カートユニット１９１は、外科医などのユーザが、他の操作の中でも、カートユニット１９１を手術台の側面に沿って移動することを可能にするプログラム、スクリプト、または他の実行可能なコマンドなどの特定の手順を実施するように構成される。カートユニット１９１は、いくつかの実施例では、ネットワーク化されたコンピューティングノード１８０および／または外科医コンソール１７０などのシステム１００の他の構成要素から１つ以上のパケットを受信するように構成される。
【００４９】
いくつかの実施形態では、スレーブロボットアセンブリソフトウェアサブシステム３０９は、ＥｔｈｅｒＣＡＴなどの１つ以上のパケット通信または伝送プロトコルを含むインターネットワーキング機能を実装するアプリケーションなどのスレーブロボットアセンブリ１９０のうちの１つ以上の他のアプリケーションに結合される。スレーブロボットアセンブリソフトウェアサブシステム３０９は、スレーブロボットアセンブリソフトウェアサブシステム３０９がスレーブロボットアセンブリ１９０の様々なサブユニット１９１、１９２、１９３、および１９４と関連付けられた情報に基づいて実施される命令および／または実行されるアクションを決定するために利用する、１つ以上のルールのセットを含む。スレーブロボットアセンブリユニット１９０は、カートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４と関連付けられた情報を使用して決定を行うように構成される。スレーブロボットアセンブリ１９０の様々なユニットと関連付けられた情報に基づいて命令を分析および決定することのさらなる詳細は、図４、図５、および図６の文脈で以下に提供される。
【００５０】
スレーブロボットアセンブリソフトウェアサブシステム３０９は、通信経路１０６ａおよび１０６ｂのうちの１つ以上を介して、ネットワーク化されたコンピューティングノード１８０および外科医コンソール１７０などのシステム１００の他の構成要素から１つ以上のパケットを非同期様式で受信するように構成される。効率的な通信を促進するために、いくつかの実施形態では、スレーブロボットアセンブリ１９０によって受信されるパケットは固定サイズであり、パケット内のデータの特定ビットは、スレーブロボットアセンブリ１９０の特定の構成要素と関連付けられている。スレーブロボットアセンブリソフトウェアサブシステム３０９は、パケット内のデータの特定のビットと関連付けられているスレーブロボットアセンブリ１９０の構成要素を識別し、必要に応じて、通信経路２０２のうちの１つ以上を介して、同期様式でビットが運ぶデータをスレーブロボットアセンブリ１９０の適切な構成要素に転送するように構成される。例えば、スレーブロボットアセンブリソフトウェアサブシステム３０９に通信されるパケットは、パケットの最初の１２８ビットがカートユニット１９１と関連付けられ、パケットの次の１２８ビットがセットアップアームユニット１９２と関連付けられ、パケットの次の１２８ビットがロボットアームユニット１９３と関連付けられ、パケットの次の１２８ビットが器具駆動ユニット１９４と関連付けられるように構成され得る。パケットはまた、サブユニット１９１、１９２、１９３、および１９４に対応し、それらの値に応じて、パケットがそれぞれのサブユニット１９１、１９２、１９３、および１９４のデータを含むかどうかを示すそれぞれのフラグを含むことができる。スレーブロボットアセンブリソフトウェアサブシステム３０９は、パケットに存在するフラグおよび／またはビットの値に基づいて、パケットの意図された宛先を識別するように構成される。パケットがカートユニット１９１自体を対象とするデータを含む場合、カートソフトウェアサブシステム３１０に動作可能に結合されているスレーブロボットアセンブリソフトウェアサブシステム３０９は、データをカートソフトウェアサブシステム３１０に転送し、カートソフトウェアサブシステム３１０は、そのデータに基づいて、カートユニット１９１が実施する命令を決定するように構成される。
【００５１】
スレーブロボットアセンブリソフトウェアサブシステム３０９は、データコントローラ３１５に通信可能に結合される。スレーブロボットアセンブリ１９０の他のサブユニットのうちの１つからスレーブロボットアセンブリソフトウェアサブシステム３０９が受信した各パケットについて、データコントローラ３１５は、受信したデータに応答するアクションがスレーブロボットアセンブリ１９０によってローカルに実行され得るかどうか、またはデータがネットワーク化されたコンピューティングノード１８０に送信されるべきかどうかを決定する。スレーブロボットアセンブリソフトウェアサブシステム３０９に送信されるデータは、本明細書ではデータタイプと称されるタイプまたはカテゴリと関連付けられる。スレーブロボットアセンブリ１９０の各サブユニットは、データを様々なデータタイプと関連付けるように構成されており、データタイプは、構成データまたは構成データへの変更を通じてスレーブロボットアセンブリ１９０に追加され、またはそれから削除される。データタイプには、画像データ、位置データ、中間計算データ、エラーデータが含まれるが、これらに限定されない。
【００５２】
各データタイプは一意の識別子と関連付けられており、スレーブロボットアセンブリ１９０のサブユニットは、スレーブロボットアセンブリソフトウェアサブシステム３０９にデータを送信するときに、送信されるデータを含むパケット内に一意の識別子を含むように構成される。いくつかの実施形態では、データが一連のパケットで送信される場合、一連のパケット内のパケットの各々は、データと関連付けられたデータタイプの一意の識別子を含む。いくつかの実施形態では、データが一連のパケットで送信される場合、一連の最初のパケットのみがデータと関連付けられたデータタイプの一意の識別子を含み、一連の最後のパケットは、すべてのデータが送信されたことを示す一連のビットを含み、スレーブロボットアセンブリソフトウェアサブシステム３０９は、最初のパケットに含まれるデータタイプを、最初のパケット、最後のパケット、およびすべての中間パケットのデータと関連付けるように構成される。
【００５３】
各データタイプは優先度レベルと関連付けられており、スレーブロボットアセンブリ１９０は、データタイプと関連付けられた優先度レベルに基づいてアクションを実行することができるかどうかを示す、一セットのローカルアクションルールを含む。いくつかの実施形態では、優先度レベルは、高優先度、中優先度、低優先度である。１つ以上のローカルアクションルールは、スレーブロボットアセンブリ１９０のサブユニットが利用するように構成されている各データタイプについて少なくとも１つの優先度レベルを特定する。上述のように、データタイプには、画像データ、位置データ、中間計算データ、エラーデータが含まれているが、これらに限定されない。いくつかの実施形態では、画像データは、高優先度と関連付けられ、中間計算は、低優先度と関連付けられ、位置データは、中優先度と関連付けられ、さらにエラーデータは、中優先度と関連付けられる。
【００５４】
優先度レベルごとに、１つ以上のローカルアクションルールが、アクションをローカルで実行することができるかどうかを特定する。特定の優先度レベルでは、ローカルアクションルールは、優先度レベルおよび受信されたデータと関連付けられたデータタイプに基づいて、アクションをローカルで実行することができるかどうかを特定する。アクションをローカルで実行することができない場合、ローカルアクションルールは、データがネットワーク化されたコンピューティングノード１８０に送信されるべきであることを特定する。アクションをローカルで実行することができる場合、ローカル解決ルールは、アクションを実行するための機械可読な指示を特定する。本明細書で説明するように、「機械可読命令」という用語は、実行するコンピューティングノードが処理または実施するように構成されている、プログラミング言語の構文、またはバイナリコードなどの命令および／またはコマンドを含む。ローカルアクションルールが特定するアクションの実施例には、セットアップアームユニット１９２、ロボットアームユニット１９３および／または同様のものなどのスレーブロボットアセンブリ１９０のサブユニットの新しい位置データを計算すること、スレーブロボットアセンブリ１９０に動作可能に結合された画像捕捉デバイスによって捕捉された画像からの画像データを、ネットワーク化されたコンピューティングノード１８０および／または同様のものなどのシステム１００の別のコンピューティングノードに送信すること、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４および／または同様のものなどのスレーブロボットアセンブリ１９０のサブユニットの電力レベルを計算および／または設定すること、スレーブロボットアセンブリ１９０のサブユニットの温度が閾値温度を超えているかどうかを決定すること、器具駆動ユニット１９４に結合されているエンドエフェクタおよび／または同様のものなどの特定の器具のケーブルのたるみを計算すること、スレーブロボットアセンブリ１９０の１つ以上のサブユニットへの電力供給を抑制（例えば、パワーダウンすることによって）すること、ならびにスレーブロボットアセンブリ１９０の１つ以上のサブユニットと関連付けられたモータを抑制（例えば、ブレーキをかけること、および／または電力供給を抑制することによって）することが含まれるが、これらに限定されない。
【００５５】
データコントローラ３１５は、スレーブロボットアセンブリソフトウェアサブシステム３０９によって受信されたデータのデータタイプを識別し、１つ以上のローカルアクションルールおよびデータタイプに基づいて、受信されたデータの優先度レベルを識別するように構成される。データコントローラ３１５は、優先度レベルおよび１つ以上のローカルアクションルールに基づいて、実行するアクションを識別するように構成される。アクションがローカルで実行することができないことをデータコントローラ３１５が識別した場合、データコントローラ３１５は、ネットワーク化されたコンピューティングノード１８０に、スレーブロボットアセンブリソフトウェアサブシステム３０９が受信したデータを送信する。アクションがローカルで実行することができることをデータコントローラ３１５が識別した場合、その際、データコントローラ３１５は、アクションを実行し、実行されたアクションを実装するために、データをスレーブロボットアセンブリソフトウェアサブシステム３０９に送信したサブユニットのための一セットの命令を生成する。
【００５６】
上述のように、位置データおよびエラーデータなどの特定のデータタイプは、中優先度と関連付けられており、スレーブロボットアセンブリソフトウェアサブシステム３０９が中優先度と関連付けられたデータを受信することに応じて、データコントローラ３１５は、アクションが優先度レベル、データタイプ、およびローカルアクションルールに基づいてローカルで実行することができるかどうかを決定する。例えば、ローカルアクションルールが、中優先度データおよび位置データのデータタイプについてのアクションがローカルで実行され得る一方で、エラーデータのデータタイプについてのアクションがローカルで実行され得ないと特定する場合、データコントローラ３１５は、スレーブロボットアセンブリソフトウェアサブシステム３０９が位置データを受信することに応じて、特定された機械可読命令に基づいて新しい位置データを計算し、スレーブロボットアセンブリソフトウェアサブシステム３０９がエラーデータを受信することに応じて、ネットワーク化されたコンピューティングノード１８０にエラーデータを送信する。
【００５７】
セットアップアームユニット１９２は、セットアップアームソフトウェアサブシステム３１１およびアームカートディスプレイＧＵＩ３１２を含む。さらに、図２には別個に示されていないが、いくつかの実施形態では、セットアップアームユニット１９２は、１つ以上のプロセッサによって実行されたときに、セットアップアームユニット１９２に、セットアップアームソフトウェアサブシステム３１１およびアームカートディスプレイＧＵＩ３１２を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、セットアップアームユニット１９２は、外科医などのユーザが、他の操作の中でも、セットアップアームユニット１９２を移動することを可能にするプログラム、スクリプト、または他の実行可能なコマンドなどの特定の手順を実施するように構成される。
【００５８】
また、図２には示されていないが、セットアップアームユニット１９２は、アームカートディスプレイデバイスに結合され得、ディスプレイデバイスを介して情報を表示するように構成され得る。ディスプレイデバイスに表示される情報は、例えば、手術台に対するカートユニット１９１の位置、患者および手術台に対するセットアップアームユニット１９２の位置、ロボットアームユニット１９３の位置、ならびに／または器具駆動ユニット１９４の位置を含む、スレーブロボットアセンブリ１９０の位置と関連付けられた情報を含み得る。アームディスプレイＧＵＩ３１２は、セットアップアームソフトウェアサブシステム３１１に動作可能に結合され得、それにより、ユーザまたは臨床医からの入力が、アームディスプレイＧＵＩ３１２によって、捕捉、記録、および分析され、入力は、セットアップアームソフトウェアサブシステム３１１に送信される。セットアップアームソフトウェアサブシステム３１１は、スレーブロボットアセンブリ１９０によって受信されたパケットおよび／またはカートユニット１９１、ロボットアームユニット１９３、または器具駆動ユニット１９３から受信されたパケットで受信された情報に基づいて、セットアップアームユニット１９１によって実施されるべき命令および／または実行されるべきアクションを決定するように構成される。いくつかの実施形態では、セットアップアームソフトウェアサブシステム３１１は、スレーブロボットアセンブリ１９０の１つ以上の他の構成要素によって実施される命令を決定し、スレーブロボットアセンブリ１９０の１つ以上の他の構成要素に、命令および／または他のデータを送信するように構成される。
【００５９】
ロボットアームユニット１９３は、ロボットアームソフトウェアサブシステム３１３を含む。さらに、図２には示されていないが、いくつかの実施形態では、ロボットアームユニット１９３はまた、１つ以上のプロセッサによって実行されたときに、ロボットアームユニット１９３に、ロボットアームソフトウェアサブシステム３１３を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、ロボットアームユニット１９３は、外科医などのユーザが、他の操作の中でも、ロボットアームユニット１９３を患者１０４に対して移動することを可能にするプログラム、スクリプト、または他の実行可能なコマンドなどの特定の手順を実施するように構成される。ロボットアームソフトウェアサブシステム３１３は、いくつかの実施形態では、スレーブロボットアセンブリ１９０のうちの１つ以上の他のアプリケーションに結合されており、スレーブロボットアセンブリ１９０によって受信されたパケットおよび／またはカートユニット１９１、セットアップアームユニット１９２、もしくは器具駆動ユニット１９３から受信されたパケットに基づいて、ロボットアームユニット１９３によって実施されるべき命令および／または実行されるべきアクションを決定するように構成される。
【００６０】
例えば、スレーブロボットアセンブリ１９０は、ロボットアームユニット１９３と関連付けられた構成データを受信することができ、ロボットソフトウェアサブシステム３１３は、構成データがロボットアームユニット１９３によって受信されると、ロボットアームユニット１９３の構成データを更新する。スレーブロボットアセンブリ１９０はまた、ロボットアームを新しい位置に移動すること、またはロボットアームのすべての動作を一時停止することなどの、ロボットアームユニット１９３が実行する動作を示す動作モードデータまたは命令を受信する。ロボットソフトウェアサブシステム３１３は、ロボットアームユニット１９３に対する命令が有効であるかどうかを決定し、有効である場合、ロボットアームユニット１９３に動作を実行させるように構成される。いくつかの実施形態では、スレーブロボットアセンブリソフトウェアサブシステム３０９は、スレーブロボットアセンブリ１９０に対する何らかの命令が有効であるかどうかを決定し、有効である場合、通信経路２０２によって画定されるリングトポロジーを介して命令を送信するように構成されており、命令がロボットアームユニット１９３を対象としたものである場合、ロボットソフトウェアサブシステム３１３は、その際、ロボットアームユニット１９３に、命令が有効であるかどうかをチェックすることなく、命令またはコマンドと関連付けられた動作を実行させる。
【００６１】
ロボットアームユニット１９３は、通信経路２０２のうちの１つ以上、他のサブユニット１９１、１９２、および１９４のうちの１つ以上、ならびに通信経路１０６のうちの１つ以上を介して、ネットワーク化されたコンピューティングノード１８０または外科医コンソール１７０に、１つ以上のパケットを送信する。このようにして、ロボットアームユニット１９３は、同期ネットワークおよび非同期ネットワークの両方の要素を用いることによって、ネットワーク化されたコンピューティングノード１８０または外科医コンソール１７０に、１つ以上のパケットを送信する。ロボットアームユニット１９３は、他のデータの中でも、ロボットアームユニット１９３のロボットアームに結合された任意のセンサもしくはロボットアームユニット１９３に結合された任意のセンサからのデータ、患者および／もしくは手術台に対するロボットアームの位置データ、ロボットアームユニット１９３の動作状態もしくは動作モード、ロボットアームユニット１９３の現在の構成データならびに／または同様のものを送信する。ロボットアームユニット１９３は、いくつかの実施例では、ＥｔｈｅｒＣＡＴを使用してアームカートユニット１９１に情報を送信するように構成されており、アームカートユニット１９１は、ネットワーク化されたコンピューティングノード１８０にデータを転送するように構成される。
【００６２】
器具駆動ユニット１９４は、器具駆動ユニットソフトウェアサブシステム３１４を含む。さらに、図２には示されていないが、いくつかの実施形態では、器具駆動ユニット１９４は、１つ以上のプロセッサによって実行されたときに、器具駆動ユニット１９４に、器具駆動ユニットソフトウェアサブシステム３１４を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、器具駆動ユニット１９４は、外科医などのユーザが、他の操作の中でも、医療処置中に器具駆動ユニット１９４に結合された手術器具を操作することを可能にするプログラム、スクリプト、または他の実行可能なコマンドなどの特定の手順を実施するように構成される。器具駆動ユニットソフトウェアサブシステム３１４は、器具駆動ユニット１９４によって受信されたデータに基づいて、器具駆動ユニット１９４によって、および／またはそれに結合された手術器具によって実行されるべき１つ以上のアクションを決定するように構成される。器具駆動ユニットソフトウェアサブシステム３１４はまた、器具駆動ユニット１９４および／または手術器具に、決定された１つ以上のアクションを実行させるように構成される。
【００６３】
器具駆動ユニットソフトウェアサブシステム３１４は、ネットワーク化されたコンピューティングノード１８０および／または外科医コンソール１７０にデータの１つ以上のパケットを送信するように構成される。いくつかの実施形態では、ネットワーク化されたコンピューティングノード１８０または外科医コンソール１７０にデータを送信するために、器具駆動ユニットソフトウェアサブシステム３１４は、通信経路２０２のうちの１つ以上を介して同期様式でアームカートユニット１９１にデータを送信し、アームカートユニット１９１は、データをネットワーク化されたコンピューティングノード１８０に転送する。次に、ネットワーク化されたコンピューティングノード１８０は、アームカートユニット１９１から受信したデータに基づいて、命令または信号を外科医コンソール１７０に送信するべきかどうかを決定する。器具駆動ユニット１９４は、他のデータの中でも、器具駆動ユニット１９４に結合された手術器具に含まれるか、またはそれに取り付けられる１つ以上のセンサ（図２には示されていない）によって捕捉または記録されたデータを含むパケットを送信することができる。器具駆動ユニット１９４は、器具駆動ユニット１９４の手術器具の位置に関連するか、もしくはそれと関連付けられたデータのパケット、器具駆動ユニット１９４の構成データおよび／または同様のものを送信する。器具駆動ユニット１９４はまた、いくつかの実施例では、器具駆動ユニット１９４の手術器具の動作モードデータを送信する。
【００６４】
いくつかの実施形態では、器具駆動ユニット１９４は、構成データの１つ以上のパケットを受信し、器具駆動ユニットソフトウェアサブシステム３１４は、受信した構成データに基づいて、器具駆動ユニット１９４の構成データを更新するように構成される。器具駆動ユニット１９４はまた、器具駆動１９４の手術器具を差し入れるために、いくつかの動作モードの中から特定の動作モードなどの動作モードデータのパケットを受信する。器具駆動ユニット１９４はまた、手術器具の特定の動作を開始する、もしくは手術器具の特定の動作を停止する、または器具駆動ユニット１９４の手術器具の任意の動作を一時的に停止するためのコマンドなどの、手術器具に対するコマンドを含むパケットを受信する。
【００６５】
いくつかの実施形態では、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４は、サブユニット１９１、１９２、１９３、および１９４の各々がサブユニット１９１、１９２、１９３、および１９４のうちの少なくとも２つの他のものに結合するように、互いに結合して、リングトポロジーを形成する。例えば、図２では、カートユニット１９１は、セットアップアームユニット１９２および器具駆動ユニット１９４に結合される。同様に、セットアップアームユニット１９２は、カートユニット１９１およびロボットアームユニット１９３に結合されており、ロボットアームユニット１９３は、セットアップアームユニット１９２および器具駆動ユニット１９４に結合されており、器具駆動ユニット１９４は、ロボットアームユニット１９３およびカートユニット１９１に結合される。
【００６６】
図３を参照すると、外科医コンソール１７０と、ネットワーク化されたコンピューティングノード１８０と、スレーブロボットアセンブリ１９０と、外部システム３７１との間で通信される様々なタイプの情報が示されている。上述のように、ネットワーク化されたコンピューティングノード１８０は、通信経路１０６を介して外科医コンソール１７０に通信可能に結合されており、スレーブロボットアセンブリ１９０および外科医コンソール１７０は、通信経路１０６およびネットワーク化されたコンピューティングノード１８０を介して互いに通信可能に結合される。さらに、ネットワーク化されたコンピューティングノード１８０は、通信経路３１６を介して１つ以上の外部システム３７１に結合される。
【００６７】
外科医コンソール１７０とネットワーク化されたコンピューティングノード１８０との間の通信は、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、および通信経路１０６ａによって少なくとも部分的に画定された非同期ネットワークを介してもたらされる。ネットワーク化されたコンピューティング１８０とスレーブロボットアセンブリ１９０のカートユニット１９１との間の通信は、通信経路１０６ｂによって少なくとも部分的に画定された非同期ネットワークによってもたらされる。カートユニット１９１と、器具駆動ユニット１９４および／またはロボットアームユニット１９３などのスレーブロボットアセンブリ１９０の他のサブユニットとの間の通信は、通信経路２０２によって少なくとも部分的に画定された同期ネットワークによって達成される。いくつかの実施形態では、通信経路２０２は、１つのリングネットワークの一部である。
【００６８】
通信経路１０６ａを介して外科医コンソール１７０からネットワーク化されたコンピューティングノード１８０に送信されるデータのタイプの実施例には、限定ではないが、外科医からの様々な入力と関連付けられたデータ、外科医コンソール１７０の１つ以上のセンサと関連付けられたデータ、患者と関連付けられた診断データ、外科医コンソール１７０が、電源がオンになっているか、または電源がオフになっているかなどの外科医コンソールと関連付けられた状態またはモードデータ、外科医に関する情報、ならびに外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、および／またはスレーブロボットアセンブリ１９０と関連付けられた構成データが含まれる。外科医コンソール１７０は、ネットワーク化されたコンピューティングノード１８０から、外科医コンソール１７０のハンドル１１２などの１つ以上の制御ユニットとの対話に応じて触覚フィードバックを受信する。さらに、外科医コンソール１７０は、通信経路１０６ａを介して、ネットワーク化されたコンピューティングノード１８０から、例えば、スレーブロボットアセンブリの器具駆動ユニットに取り付けられた、または結合された内視鏡などの１つ以上の画像捕捉デバイスによって捕捉された１つ以上の画像を含むデータを受信する。外科医コンソール１７０はまた、システム１００の様々なスレーブロボットアセンブリおよび／または様々な他のサブユニットによって使用されている様々な手術器具の状態またはモードデータおよび構成データを受信することができる。外科医コンソール１７０はまた、外科医コンソール１７０が実行するために、または外科医コンソールを操作する外科医が実行するか、もしくは従うために、ネットワーク化されたコンピューティングノード１８０から１つ以上のコマンドを受信し得る。例えば、ネットワーク化されたコンピューティングノード１８０は、特定のスレーブロボットアセンブリがもはや適切に機能していないこと、および外科医がそのスレーブロボットアセンブリの使用をもはや試みるべきではないことを外科医に警告するコマンドを、外科医コンソール１７０に送信し得る。
【００６９】
ネットワーク化されたコンピューティングノード１８０は、ＯＲチームに提示される情報を更新するように構成される。例えば、コアソフトウェア３０２は、外科医コンソール１７０およびスレーブロボットアセンブリ１９０などのスレーブロボットアセンブリから受信したデータに応答して、通信経路３６６ａを介して、ＯＲチームディスプレイＧＵＩ３０１上のＯＲチームに関連する情報を表す様々なビューへの更新を送信することができる。同様に、コアソフトウェア３０２は、通信経路３６６ｂを介して、外科医コンソール１７０またはスレーブロボットアセンブリ１９０に送信されることに関連する特定のデータを受信することができる。
【００７０】
ネットワーク化されたコンピューティングノード１８０は、非同期ネットワークの一部である通信経路１０６ｂを介してスレーブロボットアセンブリ１９０のカートユニット１９１にデータを送信し、かつ通信経路１０６ｂを介してスレーブロボットアセンブリ１９０のカートユニット１９１からデータを受信するように構成される。ネットワーク化されたコンピューティングノード１８０のコアソフトウェア３０２によってカートユニット１９１に送信されるデータの例示的なタイプは、構成データ、動作状態またはモードデータ、ならびにスレーブロボットアセンブリ１９０の１つ以上のサブユニット１９１、１９２、１９３、および１９４に対して特定のアクションを実行するための命令またはコマンドを含むが、これらに限定されない。
【００７１】
スレーブロボットアセンブリ１９０のカートユニット１９１は、スレーブロボットアセンブリ１９０内の同期ネットワークの一部である２０２などの通信経路を使用してパケットを送信することにより、ネットワーク化されたコンピューティングノード１８０から受信したデータを、ロボットアームユニット１９３および器具駆動ユニット１９４に送信する。カートユニット１９１は、同様の様式で、スレーブロボットアセンブリ１９０の他のサブユニット１９２、１９３、および／または１９４からデータを受信する。例えば、カートユニット１９１は、同期ネットワークの一部として、通信経路２０２を介して、器具駆動ユニット１９４およびロボットアームユニット１９３から、センサ、位置、動作状態もしくはモード、および／または構成に関するデータを受信する。ネットワーク化されたコンピューティングノード１８０に送信される必要があるデータの場合、カートユニット１９１は、非同期ネットワークの一部である通信経路１０６ｂを使用してデータを送信する。
【００７２】
ネットワーク化されたコンピューティングノード１８０は、いくつかの実施例では、１つ以上の外部システム３７１に通信可能に結合される。外部システム３７１の実施例には、患者システム、ユーザシステム、手術をスケジュールするスケジューリングシステム、外科システム１００によってローカルおよびシステム全体の決定を行うのに使用されるローカル解決ルールおよびグローバル解決ルールを含むルールの１つ以上のセットを再構成するために使用され得る、医療処置システム、ならびに他の外部システムが含まれるが、これらに限定されない。ネットワーク化されたコンピューティングノード１８０が外部システム３７１から受信するデータの実施例には、例えば、ＣＴスキャンなどの手術前画像、患者の病歴を含む患者に関連するデータ、ならびに外科医およびスタッフに関連するデータが含まれるが、これらに限定されない。ネットワーク化されたコンピューティングノード１８０は、外部システム３７１に、手術器具の使用、外科医コンソール１７０の使用、手順データ、および手術システム１００で利用された画像捕捉デバイスによって捕捉された１つ以上の画像に関連するデータを送信し得る。
【００７３】
図４を参照すると、ロボット手術システム１００の構成要素の例示的な構成が示されており、ここで、意思決定制御は、スレーブロボットアセンブリ１９０および／もしくはネットワーク化されたコンピューティングノード１８０の構成要素、または別の構成要素の間に割り振られる。明確な実施例を示すために、図１、図２、および図３の様々な構成要素を使用して、図４の文脈で手術システム１００によって実行される動作を説明する。
【００７４】
本明細書で説明するように、ローカル意思決定は、システム１００のマスター構成要素ではない、スレーブロボットアセンブリ１９０などの構成要素によって行われる決定を指す。本明細書で説明するように、グローバル意思決定は、ネットワーク化されたコンピューティングノード１８０などのシステム１００のマスター構成要素によって行われる決定を指す。上述のように、ネットワーク化されたコンピューティングノード１８０は、システム１００の様々なセーフティ閾値を識別し、システム１００の様々なセーフティ閾値に違反しているかどうかを決定するための１つ以上のグローバル解決ルールを含む、グローバルセーフティモニター３０５を含む。したがって、以下でさらに説明するように、グローバル意思決定は、グローバルなアクションの実行につながる可能性があるが、ローカル意思決定は、ローカルアクションの実行につながる可能性がある。グローバルセーフティモニター３０５は、セーフティハンドラ４０１、４０２、４０３、４０４、４０５、４０６、４０７、４０８、４０９、４１０、４１１、４１２、４１３、４１４（総称して、４０１〜４１４）などのシステム１００内の様々なセーフティハンドラから、様々なセーフティ閾値に関連するデータを受信する。各セーフティハンドラ４０１〜４１４は、セーフティ測定値を捕捉し、グローバルセーフティモニター３０５またはローカルセーフティモニター４１５などの意思決定ユニットに、その情報を送信するように構成される。本明細書で説明するように、セーフティ測定値は、システム１００の異なる構成要素の性能測定、および／またはシステム１００の構成要素の動作中に発生するエラーであり得る。
【００７５】
各セーフティハンドラ４０１〜４１４は、セーフティハンドラ４０１〜４１４に結合された、および／またはそれと関連付けられた構成要素またはサブシステムのセーフティ測定値を捕捉するように構成される。例えば、セーフティハンドラ４０１、４０２、４０３、４０４は、それぞれ、グラフィカルユーザインターフェース３０１、コアソフトウェアシステム３０２、オブザーバソフトウェアシステム３０３、電源管理ソフトウェアシステム３０４のセーフティ測定値を捕捉する。同様に、セーフティハンドラ４０６、４０７、４０８は、それぞれ、グラフィカルユーザインターフェース３０６、サブシステム３０７、グラフィカルユーザインターフェース３０８のセーフティ測定値を捕捉し、セーフティハンドラ４０９、４１０、４１１、４１２、４１３、４１４は、スレーブロボットアセンブリソフトウェアサブシステム３０９、カートソフトウェアサブシステム３１０、セットアップアームソフトウェアサブシステム３１１、アームディスプレイグラフィカルユーザインターフェース３１２、ロボットソフトウェアサブシステム３１３、器具駆動ユニットソフトウェアサブシステム３１４のセーフティ測定値を捕捉する。
【００７６】
上述のように、セーフティ測定値は、システム１００の異なる構成要素の性能測定、および／またはシステム１００の構成要素の動作中に発生するエラーであり得、セーフティハンドラ４０１〜４１４は、グローバルセーフティモニター３０５またはローカルセーフティモニター４１５などの意思決定エンティティに、情報を送信する。例えば、セーフティハンドラ４０６は、編集可能であるべき外科医コンソール１７０のディスプレイ１２２のグラフィカルユーザインターフェース上のフィールドが、ユーザがフィールドをクリックすることなどによってフィールドと対話しようとするときに編集可能であるかどうかを捕捉して、フィールドが編集可能であるかどうかを、グローバルセーフティモニター３０５に送信し得る。グローバルセーフティモニター３０５に送信されたデータが、編集可能なフィールドが編集不可能であり、ユーザがフィールドを編集することを妨げていることを示す場合、グローバルセーフティモニター３０５は、外科医コンソール１７０でユーザに警告を送信し、グラフィカルユーザインターフェース３０６が機能しているグラフィカルユーザインターフェースであるとはもはや見なさないように、ユーザに指示することができる。
【００７７】
セーフティハンドラ４０９〜４１４から受信した情報に基づく意思決定は、ローカル意思決定エンティティであるローカルセーフティモニター４１５によって、システム１００のシステム内でローカルに実行され得る。ローカルセーフティモニター４１５は、セーフティハンドラ４０９〜４１４から受信したデータに基づいて様々な命令を決定し、ローカルセーフティモニター４１５が性能の問題またはエラーなどのセーフティ問題点を解決することができない場合は、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４、またはグローバルセーフティモニター３０５のいずれかに命令を送信するようにローカル解決ルールの１つ以上のセットで構成されている。ローカルセーフティモニター４１５は、セーフティハンドラから受信したデータをローカル解決ルールの一部として含んだセーフティ閾値データと比較することに基づいて、命令を生成することができる。
【００７８】
例えば、ロボットアームソフトウェアサブシステム３１３と結合されたセーフティハンドラ４１３は、ローカルセーフティモニター４１５に、ロボットアームユニット１９３がロボットアームの位置を更新するための命令を受信した後にロボットアームユニット１９３がロボットアームの位置を更新するのにかかる時間に関する情報を送信し得る。ローカルセーフティモニター４１５は、ロボットアームユニット１９３が命令を受信した後にロボットアームユニット１９３がロボットアームの位置を更新するのにかかった時間量が、ロボットアームによるそのような動きの実行についてのセーフティ閾値時間より大きいかどうかを決定する。時間量がセーフティ閾値時間よりも十分に長い場合、ローカルセーフティモニター４１５は、ロボットアームユニット１９３の動作を一時停止または停止し、スレーブロボットアセンブリ１９０のロボットアームユニット１９３がもはや使用可能でないことをグローバルセーフティモニター３０５に通知するために、カートユニット１９１を介してグローバルセーフティモニター３０５に警告を送信することができる。したがって、この実施例におけるスレーブロボットアセンブリ１９０は、ローカルで決定を行う。
【００７９】
しかしながら、時間量はセーフティ閾値よりも大きいが、ローカルセーフティモニター４１５がロボットアームユニット１９３の動作を停止または一時停止するために十分な時間よりも小さい場合、ローカルセーフティモニター４１５は、時間量を含む警告を、カートユニット１９１を介してグローバルセーフティモニター３０５に送信することができる。グローバルセーフティモニター３０５は、時間量がロボットアームユニット１９３の動作を停止または一時停止するために十分であるかどうかを決定する際に、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０などの他のシステムからの他のセーフティ測定値を考慮することができる。グローバルセーフティモニター３０５が、他のシステムからの他のセーフティ測定値を考慮した時間量がロボットアームユニット１９３の動作を一時停止または停止するために十分であると決定した場合、ネットワーク化されたコンピューティングノード１８０は、ロボットアームユニット１９３の動作を一時停止または停止するための命令を、スレーブロボットアセンブリ１９０に送信する。したがって、グローバルセーフティモニター３０５は、スレーブロボットアセンブリ１９０に対して非ローカルまたはシステム全体またはグローバルの決定を行う。いくつかの実施形態では、セーフティ閾値データは、構成手順中に利用された構成データからのものを含む１つ以上の構成手順によって設定および更新されてもよい。セーフティ閾値データは、構成データへの更新またはシステム１００内のシステムの様々な構成要素への他の更新に基づいて更新されてもよい。
【００８０】
次に図５を参照すると、手術ロボットシステム１００の構成要素の構成を用いて、スレーブロボットアセンブリ１９０および／もしくはネットワーク化されたコンピューティングノード１８０の構成要素または他の構成要素間にセーフティ関連データの意思決定制御を割り振るための方法５００が示されている。ステップ５０２で、ローカルセーフティモニター（ローカルセーフティモニター４１５など）が開始され、それは、スレーブロボットアセンブリ１９０などのその対応するスレーブロボットアセンブリの様々なセーフティメトリックの監視を実行する。ステップ５０４で、ローカルセーフティモニターは、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４の様々なセーフティハンドラ（セーフティハンドラ４０９〜４１４など）から警告を受信する。いくつかの実施例では、特定のセーフティ問題点が発生していなくても、セーフティ警告が周期的に送信される場合がある。例えば、スレーブロボットアセンブリ１９０のロボットアームユニット１９３は、特定のセーフティ問題点が発生していなくても、スレーブロボットアセンブリが動作している間に３０秒ごとにローカルセーフティモニターにセーフティ警告を送信することができる。ステップ５０６で、ローカルセーフティモニターは、ステップ５０４で受信した警告からのあらゆる警告がそれらのそれぞれの閾値を超えているかどうかを決定する。図４で上述したように、ローカルセーフティモニターは、セーフティ監視と関連付けられたルールに基づいて、対応する閾値に違反しているかどうかを決定する。閾値を超えている警告がない場合、方法５００は、ステップ５０２に戻り、セーフティ監視を続ける。警告が対応する閾値を超える場合、ステップ５０８で、セーフティ警告およびセーフティ警告を送信したサブユニットが、ローカルセーフティモニターによって識別される。
【００８１】
ステップ５１０において、その対応する閾値を超えていると識別された各セーフティ警告について、ローカルセーフティモニターは、様々なセーフティ警告の閾値と関連付けられたルールに基づいて、ローカルアクションがローカルセーフティモニターによって実行され得るかどうかを決定する。ローカルアクションが実行され得る場合、ステップ５１２で、ローカルセーフティモニターは、ローカルアクションを実行して、セーフティ警告を解決する。ローカルアクションが実行され得ない場合、ステップ５１４で、ローカルセーフティモニターは、セーフティ警告をグローバルセーフティモニター（グローバルセーフティモニター３０５など）に伝達する。上述のように、グローバルセーフティモニターは、ネットワーク化されたコンピューティングノード１８０に常駐している。ステップ５１６において、グローバルセーフティモニターは、グローバルセーフティルールを使用して、伝達されたセーフティ警告の解決策を識別する。ステップ５１８において、ネットワーク化されたコンピューティングノード１８０は、受信されたセーフティ警告と関連付けられたサブユニットについての命令またはコマンドを決定すること、および命令またはコマンドをスレーブロボットアセンブリのカートユニットに送信することによって、受信されたセーフティ警告を解決するために必要なアクションを実行する。カートユニットは、スレーブロボットアセンブリの関連付けられたサブユニットおよびローカルセーフティモニターに、命令またはコマンドを送信する。ローカルセーフティモニターは、特定のセーフティ警告が解決されたとマークし、ステップ５０２のセーフティモニターで再開するように構成され得る。
【００８２】
次に図６を参照すると、手術ロボットシステム１００の構成要素の構成を用いて、スレーブロボットアセンブリ１９０および／もしくはネットワーク化されたコンピューティングノード１８０の構成要素または他の構成要素間にアクションの実行を割り振るための方法６００が示されている。明確な実施例を示すために、図２の文脈で説明された構成要素は、方法６００を説明する際に使用される。ステップ６０２で、データコントローラ３１５などのデータコントローラが開始され、それは、スレーブロボットアセンブリソフトウェアサブシステム３０９によって受信されたデータを監視する。ステップ６０４において、パケットは、スレーブロボットアセンブリソフトウェアサブシステム３０９において同期ネットワークを介して受信される。いくつかの実施形態では、スレーブロボットソフトウェアサブシステム３０９は、同期ネットワークを介して受信されたパケットを、データコントローラ３１５に送信するように構成される。いくつかの実施形態では、データコントローラ３１５は、同期ネットワークを介してスレーブロボットソフトウェアサブシステム３０９に送信されたパケットのコピーを同時に受信する。ステップ６０６で、データコントローラ３１５は、パケット内のデータと関連付けられたデータタイプを識別する。いくつかの実施形態では、データコントローラ３１５は、データタイプの識別子に基づいてデータタイプを特定するように構成された１つ以上のルールに基づいて、データタイプを識別する。ステップ６０８で、データコントローラ３１５は、パケットにおけるデータと関連付けられた優先度レベルを識別する。上述のように、データコントローラ３１５は、パケット内のデータのデータタイプに基づいて、パケット内のデータと関連付けられた優先度レベルを識別するように構成される。
【００８３】
ステップ６１０で、データコントローラ３１５は、パケット内のデータと関連付けられた優先度レベルが高優先度閾値を超えているかどうかを決定する。高優先度と関連付けられたデータの実施例には、画像データが含まれるが、これに限定されない。いくつかの実施形態では、様々な優先度レベルに異なる値が割り当てられ、高優先度閾値は、高優先度レベルに割り当てられた値よりもわずかに低い値として特定される。受信したデータと関連付けられた優先度レベルが高優先度閾値を超えているとデータコントローラ３１５が決定した場合、ステップ６２０で、データコントローラ３１５は、非同期ネットワークを介して、パケットで受信したデータをネットワーク化されたコンピューティングノード１８０に送信する。いくつかの実施形態では、データコントローラ３１５は、パケットで受信したデータを送信するために、命令をスレーブロボットアセンブリソフトウェアサブシステム３０９に送信し、スレーブロボットアセンブリソフトウェアサブシステム３０９は、ネットワーク化されたコンピューティングノード１８０に、データを送信する。
【００８４】
受信したデータと関連付けられた優先度レベルが高優先度閾値を超えていないとデータコントローラ３１５が決定した場合、ステップ６１２で、データコントローラ３１５は、データと関連付けられた優先度レベルが低優先度閾値を下回っているかどうかを決定する。いくつかの実施形態では、低優先度閾値は、低優先度に割り当てられた値よりわずかに高い値として特定される。受信したデータと関連付けられた優先度レベルが低優先度閾値を下回っているとデータコントローラ３１５が決定した場合、データコントローラ３１５は、ローカルアクションルールおよび優先度レベルに基づいて、データに関連するアクションを識別する。ステップ６２４において、データコントローラ３１５は、上述のようにアクションを実行し、そのアクションに基づいて一セットの命令を生成し、ステップ６２６において、データコントローラ３１５は、同期ネットワークを介して、スレーブロボットアセンブリ１９０のサブユニットにパケットを送信する。
【００８５】
ステップ６１２で、データと関連付けられた優先度レベルが低優先度閾値を下回っているとデータコントローラ３１５が決定した場合、ステップ６１４で、データコントローラ３１５は、データと関連付けられた優先度レベルが中優先度閾値に関連するかどうかを決定する。いくつかの実施形態では、中優先度閾値は、値のある範囲に割り当てられ、例えば、中優先度閾値は、高優先度閾値に割り当てられた値よりも低いすべての値、および低優先度閾値に割り当てられた値よりも高いすべての値を含む。優先度レベルの値が中優先度閾値に割り当てられた値の範囲内にある場合、優先度レベルは、中優先度閾値に関連する。データの優先度レベルが中優先度閾値に関連しない場合、ステップ６１６で、データコントローラ３１５は、パケットをエラーパケットとして識別し、エラー処理を実行する。中優先度に関連しないデータの優先度レベルの実施例には、パケット内の値が未知の値である、もしくは破損している、および／または同様のことが含まれるが、これらに限定されない。エラー処理の一部として、データコントローラ３１５は、パケットの送信者を識別し、ネットワーク化されたコンピューティングノード１８０に、エラーおよび送信者の情報を送信する。いくつかの実施形態では、ネットワーク化されたコンピューティングノード１８０は、エラーおよび送信者の情報の受信に応答して、メッセージおよび／または命令をスレーブロボットアセンブリ１９０に送信して、送信者を再始動するか、または送信者の構成データを再ロードする。
【００８６】
ステップ６１４において、優先度レベルが中優先度レベルに関連しているとデータコントローラ３１５が決定した場合、データコントローラ３１５は、データに関連するアクションをローカルで実行することができるかどうかを決定する。上述のように、データコントローラ３１５は、データと関連付けられた優先度レベル、データと関連付けられたデータタイプ、およびローカルアクションルールに基づいて、データに関連するアクションをローカルに実行することができるかどうかを決定する。ローカルアクションルールが、データのアクションがローカルで実行され得ないことを特定する場合、方法６００はステップ６２０に進み、データコントローラ３１５は、非同期ネットワークを介して、ネットワーク化されたコンピューティングノード１８０にデータを送信する。ローカルアクションルールが、アクションがローカルで実行され得ることを特定する場合、方法６００はステップ６２２に進み、データコントローラ３１５は、上述のステップ６２２、６２４、および６２６に従って実行する。
【００８７】
「一実施例では」、「実施例では」、「いくつかの実施例では」、「一実施形態では」、「実施形態では」、「いくつかの実施形態では」、または「他の実施形態では」という語句は、各々、本開示による同じまたは異なる実施形態のうちの１つ以上のことを指す場合がある。「ＡまたはＢ」という形式の語句は、「（Ａ）、（Ｂ）、または（ＡおよびＢ）」を意味する。「Ａ、Ｂ、またはＣのうちの少なくとも１つ」という形式の語句は、「（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、Ｂ、およびＣ）」を意味する。
【００８８】
本明細書で説明するシステムはまた、１つ以上のコントローラを利用して、様々な情報を受信し、受信した情報を変換して出力を生成することができる。コントローラは、メモリ内に記憶された一連の命令を実行することが可能な、任意のタイプのコンピューティングデバイス、演算回路、または任意のタイプのプロセッサまたは処理回路を含み得る。コントローラは、多数のプロセッサおよび／またはマルチコア中央処理装置（ＣＰＵ）を含んでもよく、マイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、プログラマブルロジックデバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および／または同類のものなどの任意のタイプのプロセッサを含んでもよい。コントローラはまた、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに１つ以上の方法および／またはアルゴリズムを実行させるデータおよび／または命令を記憶するメモリも含んでもよい。
【００８９】
本明細書で説明される方法、プログラム、アルゴリズム、またはコードのいずれもが、プログラミング言語またはコンピュータプログラムに変換されるか、または表現されてもよい。「プログラミング言語」および「コンピュータプログラム」は各々、本明細書で使用される場合、コンピュータへの命令を特定するために使用される任意の言語を含み、以下の言語およびその派生語（これらに限定されないが）：Ａｓｓｅｍｂｌｅｒ、Ｂａｓｉｃ、Ｂａｔｃｈ  ｆｉｌｅｓ、ＢＣＰＬ、Ｃ、Ｃ＋、Ｃ＋＋、Ｄｅｌｐｈｉ、Ｆｏｒｔｒａｎ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｍａｃｈｉｎｅ  ｃｏｄｅ、オペレーティングシステムコマンド言語、Ｐａｓｃａｌ、Ｐｅｒｌ、ＰＬ１、スクリプト言語、Ｖｉｓｕａｌ  Ｂａｓｉｃ、プログラム自体を特定するメタ言語、およびすべての第１、第２、第３、第４、第５世代、またはそれ以降のコンピュータ言語を含む。また、データベースおよび他のデータスキーマ、ならびに任意の他のメタ言語も含まれる。解釈され、コンパイルされ、またはコンパイルおよび解釈されたアプローチの両方を使用する言語間で、区別はなされない。プログラムのコンパイル済みバージョンとソースバージョンとの間でも、区別はなされない。このため、プログラミング言語が、プログラミング言語が複数の状態（ソース、コンパイル済み、オブジェクト、またはリンク等）で存在し得る、プログラムへの参照は、かかる状態のいずれか、およびすべてへの参照である。プログラムへの参照は、実際の命令および／またはそれらの命令の意図を包含し得る。
【００９０】
本明細書で説明される方法、プログラム、アルゴリズム、またはコードのいずれも、１つ以上の機械可読媒体またはメモリ上に収容され得る。「メモリ（ｍｅｍｏｒｙ）」という用語は、プロセッサ、コンピュータ、またはデジタル処理デバイス等の機械によって読み取り可能な形式で情報を提供（例えば、記憶および／または送信）する機構を含み得る。例えば、メモリは、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、または任意の他の揮発性または不揮発性メモリ記憶デバイスを含み得る。収容されるコードまたは命令は、搬送波信号、赤外線信号、デジタル信号、および他の同様の信号によって表されることができる。
【００９１】
上記の説明は、単に本開示の例示的なものであることが理解されるべきである。様々な代替例および変更例が本開示から逸脱することなく当業者によって想到され得る。したがって、本開示は、すべてのこのような代替、修正および変形を包含することが意図される。添付された図面を参照して説明された実施形態は、本開示の特定の実施例を説明するためにのみ提示される。上記および／または添付の特許請求の範囲に説明されたものとは非現実的に異なる他の要素、ステップ、方法および技術はまた、本開示の範囲内にあるように意図される。
【図１】
2021511888.tif 000003
【図２】
2021511888.tif 000004
【図３】
2021511888.tif 000005
【図４】
2021511888.tif 000006
【図５】
2021511888.tif 000007
【図６】
2021511888.tif 000008
【手続補正書】
【提出日】令和2年10月1日(2020.10.1)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１９年２月１日に出願されたＰＣＴ出願第ＰＣＴ／ＵＳ２０１９／０１６２２４号の国内段階の出願であり、２０１８年２月２日に出願された米国仮特許出願第６２／６２５，６６７号の利益および優先権を主張し、上記で特定された出願の各々の開示は、それらの全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
手術ロボットシステムの人気が高まるにつれて、向上した機能、パフォーマンス、および柔軟性を有し、広範囲の手術処置に適応することができる、改善された手術ロボットシステムを開発する取り組みが進行中である。開発中のいくつかの手術ロボットシステムには、様々な通信リンクを介して互いに通信する多数のサブシステムが含まれる。手術ロボットシステムの複雑さが増すにつれて、例えば、様々なタイプの待ち時間を軽減する効率的な様式で、手術ロボットシステムが動作および／または通信することを保証することに関連する課題も増大する。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示は、ロボットシステムに関し、より具体的には、同期および非同期ネットワークを含む手術ロボットシステム、ならびに同期および非同期ネットワークを用いる通信方法に関する。
【０００４】
本開示の一態様によれば、上述のニーズに対処するシステムおよび方法が提供される。本開示の一態様では、ロボット手術システムが提供される。システムは、ネットワーク化されたコンピューティングノードと、スレーブロボットアセンブリと、複数の第１の通信経路と、複数の第２の通信経路と、を含む。スレーブロボットアセンブリは、複数のサブユニットを含む。複数のサブユニットは、複数の第１の通信経路を介して互いに通信可能に結合されており、それにより、同期ネットワークの少なくとも一部分を形成する。ネットワーク化されたコンピューティングノードおよび複数のサブユニットのうちの少なくとも１つは、複数の第２の通信経路のうちの１つ以上を介して互いに通信可能に結合されており、それにより、第２のネットワークの少なくとも一部分を形成し、第２のネットワークを介して１つ以上のパケットを互いに通信するように構成される。複数のサブユニットのうちの少なくとも１つは、同期ネットワークを介して複数のサブユニットのうちの他のものと、１つ以上のパケットからのデータを通信するように構成される。同期ネットワークのクロックレートは、第２のネットワークのクロックレートから独立している。ネットワーク化されたコンピューティングノードは、グローバルセーフティモニターをさらに含み、スレーブロボットアセンブリは、１つ以上のローカル解決ルールを記憶しているメモリを含む。複数のサブユニットのうちの少なくとも１つは、（１）複数の第１の通信経路のうちの１つ以上を介して、複数のサブユニットの別のサブユニットからセーフティ警告を受信することと、（２）受信されたセーフティ警告のセーフティメトリックがそれぞれの閾値を超えているかどうかを決定することと、（３）セーフティメトリックがそれぞれの閾値を超えているとの決定に応じて、１つ以上のローカル解決ルールに基づいて、対応するセーフティ警告に関連するアクションが複数のサブユニットのうちの１つ以上によって実行され得るかどうかを決定することと、（４）対応するセーフティ警告に関連するアクションが複数のサブユニットのうちの１つ以上によって実行され得るとの決定に応じて、複数のサブユニットのうちの１つ以上によってアクションを実行させて、セーフティ警告に対処することと、（５）対応するセーフティ警告に関するアクションが複数のサブユニットのうちのいずれによっても実行され得ないとの決定に応じて、第２のネットワークを介して、セーフティ警告をグローバルセーフティモニターに送信することと、を行うようにさらに構成される。
【０００５】
本開示の別の態様では、１つ以上のローカル解決ルールは、セーフティ警告にそれぞれ対応する１つ以上のアクションを示す情報、またはスレーブロボットアセンブリの複数のサブユニットのうちの１つ以上がセーフティ警告にそれぞれ対応する１つ以上のアクションを実行し得るかどうかを示す情報のうちの少なくとも１つを含む。
【０００６】
本開示のさらに別の態様では、アクションは、セーフティ警告と関連付けられる複数のサブユニットのうちの１つ以上をパワーダウンすることを含む。
【０００７】
本開示のさらに別の態様では、ネットワーク化されたコンピューティングノードのグローバルセーフティモニターは、複数の第２の通信経路のうちの１つ以上を介して、複数のサブユニットの１つからセーフティ警告を受信することと、セーフティ警告の受信に応じて、ネットワーク化されたコンピューティングノードに、セーフティ警告に対処するためのアクションを実行させることと、を行うようにさらに構成される。
【０００８】
本開示のさらなる態様では、複数のサブユニットの各々は、（ａ）複数の第２の通信経路のうちの１つ以上、または（ｂ）複数の第１の通信経路のうちの１つ以上、複数のサブユニットのうちの別の１つ、および複数の第２の通信経路のうちの１つ以上、のうちの少なくとも１つを含むそれぞれの経路を介して、対応するセーフティ警告をグローバルセーフティモニターに送信するように構成される。
【０００９】
本開示の別の態様では、手術ロボットシステムは、外科医コンソールをさらに含み、外科医コンソール、ネットワーク化されたコンピューティングノード、および複数のサブユニットのうちの少なくとも１つは、複数の第２の通信経路のうちの１つ以上を介して互いに通信可能に結合されており、それにより、第２のネットワークの少なくとも別の部分を形成する。
【００１０】
本開示のさらに別の態様では、複数のサブユニットは、リングトポロジーで、複数の第１の通信経路を介して、互いに通信可能に結合される。
【００１１】
本開示のさらに別の態様では、手術ロボットシステムは、複数の第２のサブユニットを含む、第２のスレーブロボットアセンブリと、複数の第３の通信経路と、をさらに含む。複数の第２のサブユニットは、複数の第３の通信経路を介して互いに通信可能に結合されており、それにより、第２の同期ネットワークの少なくとも一部分を形成する。第２の同期ネットワークのクロックレートは、同期ネットワークのクロックレートおよび第２のネットワークのクロックレートから独立している。
【００１２】
本開示のさらなる態様では、スレーブロボットアセンブリは、第１の一意の識別子と関連付けられ、第２のスレーブロボットアセンブリは、第２の一意の識別子と関連付けられる。
【００１３】
本開示の別の態様では、１つ以上のパケットは、スレーブロボットアセンブリと関連付けられた第１の一意の識別子、または第２のスレーブロボットアセンブリと関連付けられた第２の一意の識別子を含む。
【００１４】
本開示のさらに別の態様では、第２のネットワークは、同期ネットワークである。
【００１５】
本開示のさらに別の態様では、第２のネットワークは、非同期ネットワークである。
【００１６】
本開示の別の態様に従って、手術ロボットシステムの同期ネットワークおよび非同期ネットワークを用いる方法が提供される。方法は、スレーブロボットアセンブリのメモリに、１つ以上のローカル解決ルールを記憶させることを含む。セーフティ警告は、スレーブロボットアセンブリの複数のサブユニットのうちの少なくとも１つによって、同期ネットワークを介して、複数のサブユニットのうちの別のサブユニットから受信される。受信されたセーフティ警告のセーフティメトリックがそれぞれの閾値を超えているかどうかに関する決定が行われる。セーフティメトリックがそれぞれの閾値を超えているとの決定に応じて、１つ以上のローカル解決ルールに基づいて、対応するセーフティ警告に関連するアクションが複数のサブユニットのうちの１つ以上によって実行され得るかどうかに関する決定が行われる。対応するセーフティ警告に関連するアクションが複数のサブユニットのうちの１つ以上によって実行され得るとの決定に応じて、複数のサブユニットのうちの１つ以上によってアクションを実行させて、セーフティ警告に対処する。対応するセーフティ警告に関するアクションが複数のサブユニットのうちのいずれによっても実行され得ないとの決定に応じて、非同期ネットワークを介して、ネットワーク化されたコンピューティングノードにおけるグローバルセーフティモニターに、セーフティ警告が送信される。同期ネットワークのクロックレートは、非同期ネットワークのクロックレートから独立している。
【００１７】
本開示の別の態様では、１つ以上のローカル解決ルールは、セーフティ警告に対応する１つ以上のアクションを示す情報、および／またはスレーブロボットアセンブリのサブユニットのうちの１つ以上がセーフティ警告に対応する１つ以上のアクションを実行し得るかどうかを示す情報を含む。
【００１８】
本開示のさらに別の態様では、アクションは、セーフティ警告と関連付けられる複数のサブユニットのうちの１つ以上をパワーダウンすることを含む。
【００１９】
本開示のさらに別の態様では、方法は、非同期ネットワークを介して、サブユニットのうちの１つからセーフティ警告を受信することと、セーフティ警告の受信に応じて、ネットワーク化されたコンピューティングノードに、セーフティ警告に対処するためのアクションを実行させることと、をさらに含む。
【００２０】
本開示のさらに別の態様では、非同期ネットワークを介して、ネットワーク化されたコンピューティングノードにおけるグローバルセーフティモニターにセーフティ警告を送信することは、（ａ）非同期ネットワークの第１の通信経路のうちの１つ以上、または（ｂ）同期ネットワークの第２の通信経路のうちの１つ以上、サブユニットのうちの別の１つ、および非同期ネットワークの第１の通信経路のうちの１つ以上、のうちの少なくとも１つを含むそれぞれの経路を介して送信することを含む。
【００２１】
本開示のさらに別の態様では、アクションは、セーフティ警告と関連付けられる複数のサブユニットのうちの１つ以上のモータを抑制することを含む。
【００２２】
本開示のさらに別の態様によれば、上述のニーズに対処するシステムおよび方法が提供される。本開示の一態様では、ロボット手術システムが提供される。システムは、ネットワーク化されたコンピューティングノードと、スレーブロボットアセンブリと、複数の第１の通信経路と、複数の第２の通信経路と、を含む。複数のサブユニットを含む、スレーブロボットアセンブリ。複数のサブユニットは、複数の第１の通信経路を介して互いに通信可能に結合されており、それにより、同期ネットワークの少なくとも一部分を形成する。ネットワーク化されたコンピューティングノードおよび複数のサブユニットのうちの少なくとも１つは、複数の第２の通信経路のうちの１つ以上を介して互いに通信可能に結合されており、それにより、非同期ネットワークの少なくとも一部分を形成し、非同期ネットワークを介して１つ以上のパケットを互いに通信するように構成される。複数のサブユニットのうちの少なくとも１つは、同期ネットワークを介して複数のサブユニットのうちの他のものと、１つ以上のパケットからのデータを通信するように構成される。同期ネットワークのクロックレートは、非同期ネットワークのクロックレートから独立している。
【００２３】
本開示の別の態様では、手術ロボットシステムは、外科医コンソールをさらに含み、外科医コンソール、ネットワーク化されたコンピューティングノード、および複数のサブユニットのうちの少なくとも１つは、複数の第２の通信経路のうちの１つ以上を介して互いに通信可能に結合されており、それにより、非同期ネットワークの少なくとも別の部分を形成する。
【００２４】
本開示のさらに別の態様では、複数のサブユニットは、リングトポロジーで、複数の第１の通信経路を介して、互いに通信可能に結合される。
【００２５】
本開示のさらに別の態様では、第１のサブユニットは、複数のサブユニットのうちの第２のサブユニットから、同期ネットワークを介して第１のパケットを受信するようにさらに構成される。第１のパケット内のデータと関連付けられた優先度レベルが識別される。データと関連付けられた優先度レベルが第１の閾値優先度レベルを超えているかどうかに関する決定が行われる。データと関連付けられた優先度レベルが第１の閾値優先度レベルを超えているかどうかの決定に応じて、第１のパケット内のデータは、非同期ネットワークを介してネットワーク化されたコンピューティングノードに送信される。
【００２６】
本開示の別の態様では、複数のサブユニットのうちの第１のサブユニットは、１つ以上のローカル解決ルールを記憶しているメモリをさらに含む。複数のサブユニットのうちの第１のサブユニットは、データと関連付けられた優先度レベルが第２の閾値優先度レベルを下回っているかどうかを決定することと、データと関連付けられた優先度レベルが第２の閾値優先度レベルを下回っているかどうかの決定に応じて、１つ以上のローカル解決ルールに基づいて、データに関連するアクションを識別することと、決定されたアクションに基づいて、一セットの命令を生成することと、同期ネットワークを介して、命令のセットを含む第２のパケットを第２のサブユニットに送信することと、を行うようにさらに構成される。
【００２７】
本開示のさらなる態様では、複数のサブユニットのうちの第１のサブユニットは、データと関連付けられた優先度レベルが第１の閾値優先度レベルを下回っており、かつ第２の閾値優先度レベルを超えているかどうかの決定に応じて、１つ以上のローカル解決ルールに基づいて、データに関連するアクションが第２のサブユニットによって実行され得るどうかを決定するようにさらに構成される。データに関連するアクションが第２のサブユニットによって実行され得るかどうかの決定に応じて、アクションに基づいて一セットの命令が生成され、送信すること、命令のセットを含む第２のパケットは、同期ネットワークを介して第２のサブユニットに送信される。
【００２８】
本開示の別の態様では、複数のサブユニットのうちの第１のサブユニットは、データに関連するアクションが第２のサブユニットによって実行され得ないかどうかの決定に応じて、非同期ネットワークを介して、第１のパケット内のデータをネットワーク化されたコンピューティングノードに送信するようにさらに構成される。
【００２９】
本開示のさらに別の態様では、第２のサブユニットは、画像捕捉装置に結合されており、データは、画像捕捉装置によって捕捉された１つ以上の画像に関連する。
【００３０】
本開示のさらに別の態様では、データと関連付けられた優先度レベルは、低優先度、中優先度、または高優先度のうちの少なくとも１つである。
【００３１】
本開示のさらなる態様では、データは、あるタイプのデータと関連付けられており、１つ以上のローカル解決ルールは、データの各タイプに対する１つ以上のアクションを含む。
【００３２】
本開示の別の態様では、データと関連付けられたデータのタイプは、画像データ、位置データ、中間計算データ、またはエラーデータのうちの少なくとも１つである。
【００３３】
本開示のさらに別の態様では、スレーブロボットアセンブリの１つ以上のサブユニットは、制御自動化技術のためのイーサネット（登録商標）（ＥｔｈｅｒＣＡＴ）を使用して、互いに通信するように構成される。
【００３４】
本開示のなおもさらなる態様では、複数のサブユニットは、複数の第１の通信経路のうちの１つ以上を介して互いにパケットを通信するように構成されており、パケットの宛先アドレスフィールドは、複数のサブユニットのうちの１つのサブユニットと関連付けられた識別子を含む。
【００３５】
本開示の別の態様では、宛先アドレスフィールドのサイズは、複数のビットフィールドによって表され、複数のサブユニットの各々について、複数のサブユニットのうちのそれぞれ１つと関連付けられた識別子は、複数のビットフィールドのサブセットによって表される。
【００３６】
本開示のさらに別の態様では、１つ以上のパケットは、固定サイズを有する。
【００３７】
本開示の別の態様では、スレーブロボットアセンブリの複数のサブユニットのうちの少なくとも１つは、ロボットアームユニットである。
【００３８】
本開示のさらに別の態様では、スレーブロボットアセンブリの複数のサブユニットのうちの少なくとも１つは、器具駆動ユニットである。
【００３９】
本開示のさらなる態様では、スレーブロボットアセンブリの複数のサブユニットのうちの少なくとも１つは、カートユニットである。
【００４０】
本開示のさらに別の態様では、スレーブロボットアセンブリの複数のサブユニットは、カートユニット、セットアップアームユニット、ロボットアームユニット、および器具駆動ユニットを含む。
【００４１】
本開示の別の態様によれば、スレーブロボットアセンブリの構成要素間に制御を割り振るための方法が提供される。方法は、手術ロボットシステムのスレーブロボットアセンブリの複数のサブユニットのうちの第１のサブユニットによって、複数のサブユニットが互いに通信可能に結合される複数の第１の通信経路を含む同期ネットワークを介して、複数のサブユニットのうちの第２のサブユニットから第１のパケットを受信することを含む。第１のパケット内のデータと関連付けられた優先度レベルは、第１のサブユニットによって識別される。第１のサブユニットは、データと関連付けられた優先度レベルが第１の閾値優先度レベルを超えているかどうかを決定する。データと関連付けられた優先度レベルが第１の閾値優先度レベルを超えているかどうかの決定に応じて、第１のサブユニットは、ネットワーク化されたコンピューティングノードおよび複数のサブユニットの少なくとも１つが互いに通信可能に結合される複数の第２の通信経路を含む非同期ネットワークを介して、ネットワーク化されたコンピューティングノードに第１のパケット内のデータを送信する。同期ネットワークのクロックレートは、非同期ネットワークのクロックレートから独立している。
【図面の簡単な説明】
【００４２】
本開示の様々な態様および特徴は、図面を参照して、本明細書に後述される。
【００４３】
【図１】本明細書の例示的な実施形態による例示のロボット手術システムを示す。
【図２】本明細書の例示的な実施形態による、図１のロボット手術システムの様々な構成要素が非同期ネットワークおよび同期ネットワークを形成する例示的な実施形態を示す概略図である。
【図３】本明細書の例示的な実施形態による図１のロボット手術システムの構成要素間の様々なタイプの情報の通信を容易にする、図２の非同期ネットワークおよび同期ネットワークの例示の構成を示す別の概略図である。
【図４】本明細書の例示的な実施形態による、図１のロボット手術システムの構成要素の構成を示す概略図であり、ここで、意思決定制御は、スレーブロボットアセンブリおよび／もしくはネットワーク化されたコンピューティングノードの構成要素、または他の構成要素間に割り振られる。
【図５】本明細書の例示的な実施形態による、図４の手術ロボットシステムの構成要素の構成を用いて、スレーブロボットアセンブリおよび／もしくはネットワーク化されたコンピューティングノードの構成要素、または他の構成要素間に、意思決定制御を割り振るための例示の方法を示すフローチャートである。
【図６】本明細書の例示的な実施形態による、図２の手術ロボットシステムの構成要素の構成を用いて、アクションの実行を割り振るための例示の方法を示すフローチャートである。
【発明を実施するための形態】
【００４４】
本開示は、同期および非同期ネットワークを含む手術ロボットシステム、ならびに同期および非同期ネットワークを用いる通信方法を対象とする。特に、本明細書で説明されるシステムおよび方法は、非同期ネットワークおよび同期ネットワークで構成要素を用いる手術ロボットシステムを設計および実装することを可能にする。構成要素は、互いに通信可能に結合されており、かつ非同期ネットワーク、同期ネットワーク、およびそれらの間の通信経路を利用し、手術ロボットシステムは、最初に同期ネットワーク内の構成要素レベルでローカルに決定を行い、最初に同期ネットワーク内の構成要素レベルでローカルに決定を行うことができない場合には、手術ロボットシステムは、その際、非同期ネットワーク内の構成要素を使用して、グローバルレベルまたはシステムレベルで決定を行う。本明細書で説明する技術、技法、および実施形態を利用して、手術ロボットシステムの全体的な待ち時間が低減され、手術ロボットシステムの動作およびデータ通信効率が改善される。
【００４５】
ここで本開示の実施形態が図面を参照して詳細に記載され、図面の中で同様の参照番号は、いくつかの図の各々において同一のまたは対応する要素を示す。本明細書で使用される場合、「臨床医」という用語は、医師、看護師、技術者、医療助手、もしくは同様のサポート要員、または本明細書に記載の手術ロボットシステムを使用することができる任意の他の人物を指す。本明細書全体を通じて、「非同期ネットワーク」という用語は、コンピューティングデバイスが１つ以上の通信経路を介して互いに通信可能に結合され、かつ例えば、送信および受信コンピューティングデバイスのクロック信号を同期させる必要なく、非同期様式でこれらの通信経路を介してデータおよび／または他の情報を互いに通信するように構成されるように構成されている、一セットのコンピューティングデバイスと１つ以上の通信経路によって画定される、ネットワークを指す。本明細書全体を通じて、「同期ネットワーク」という用語は、コンピューティングデバイスが１つ以上の通信経路を介して互いに通信可能に結合され、かつ例えば、互いに同期された送信および受信コンピューティングデバイスのクロック信号を使用することによって、同期様式でこれらの通信経路を介してデータおよび／または他の情報を互いに通信するように構成されるように構成されている、一セットのコンピューティングデバイスと１つ以上の通信経路によって画定される、ネットワークを指す。本明細書に記載の非同期ネットワークおよび同期ネットワークを画定するコンピューティングデバイスおよび／または通信経路の間に、重複が存在する可能性がある。例えば、コンピューティングデバイスおよび／または通信経路は、非同期ネットワークの一部として含まれ得、また同期ネットワークの一部として含まれ得る。さらに、図面中および続く説明において、例えば、前側、後側、上側、下側、頂部、底部、および類似の方向性の用語などの用語は、単に説明の便宜のために使用されており、本開示を限定することを意図するものではない。以下の記載では、周知の機能または構成は、本開示を不必要に詳細に示して不明瞭にすることを避けるために、詳細には記載されていない。
【００４６】
ここで図１を参照すると、本明細書の様々な例示的実施形態に従って用いられる例示的なロボット手術システム１００が示されている。システム１００は、手術室で用いられる例示的なシステムである。図１に示されるシステム１００の特定の数の構成要素、ならびにその配置および構成は、例示目的のみのために提供され、限定するものとして解釈されるべきではない。例えば、本明細書の様々な実施形態は、図１に示される構成要素のすべてよりも少ないまたは多い構成要素を用いる。例えば、システム１００の追加の構成要素が、図２および図４に示されている。さらに、図１に示されるシステム１００は、本明細書の様々な例示的実施形態が適用可能な例示的な文脈として提供される。しかしながら、本明細書の様々な例示的実施形態は、ロボット手術システム以外の状況においても適用可能である。
【００４７】
システム１００は、手術処置中に患者１０４が横たわる手術台１０２と、手術処置中に臨床医、ユーザまたは外科医が対話する、外科医コンソール１７０と、ネットワーク化されたコンピューティングノード１８０と、１つ以上のスレーブロボットアセンブリ１９０と、を含む。便宜上、本明細書は、単一のスレーブロボットアセンブリ１９０の文脈で行われるが、本開示は、多数のスレーブロボットアセンブリ１９０を含む実施形態にも同様に適用可能であることを理解されたい。外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０およびスレーブロボットアセンブリ１９０は、本明細書の様々な実施形態では、有線通信経路および／または無線通信経路として実装され得る、それぞれの通信経路１０６（個別に、１０６ａ、１０６ｂ、および１０６ｃ）を介して互いに通信可能に結合される。特に、外科医コンソール１７０およびネットワーク化されたコンピューティングノード１８０は、通信経路１０６ａを介して互いに通信可能に結合される。ネットワーク化されたコンピューティングノード１８０およびスレーブロボットアセンブリ１９０は、通信経路１０６ｂを介して互いに通信可能に結合される。外科医コンソール１７０およびスレーブロボットアセンブリ１９０は、通信経路１０６ａ、ネットワーク化されたコンピューティングノード１８０、および通信経路１０６ｂを介して互いに通信可能に結合される。以下でさらに詳細に説明するように、いくつかの実施形態では、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、およびスレーブロボットアセンブリ１９０は、通信経路１０６と共に、非同期ネットワーク（図１に個別に示されていない）を画定する。これにより、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、およびスレーブロボットアセンブリ１９０は、データおよび／または他の情報を非同期様式で互いに通信するように構成される。本明細書では非同期ネットワークとして説明されているが、当業者は、通信経路１０６と共に外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、およびスレーブロボットアセンブリ１９０によって形成されるネットワークが、代替的に同期ネットワークであってもよいことを認識されよう。また以下でさらに詳細に説明するように、システム１００は、システム１００内の異なる構成要素が互いに通信することを可能にするパブリッシュ／サブスクライブメッセージングパターンを実装するように構成され得る。外科医コンソール１７０と、ネットワーク化されたコンピューティングノード１８０と、スレーブロボットアセンブリ１９０との間の通信のさらなる詳細は、図２、図３、図４、および図５の文脈で本明細書に提供される。
【００４８】
スレーブロボットアセンブリ１９０は、多数のサブユニット１９１、１９２、１９３、および１９４、すなわち、カートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、および器具駆動ユニット（ＩＤＵ）１９４を含む。スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４は、互いにスレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４に直接的または間接的のいずれかで動作可能に結合される。例えば、カートユニット１９１は、セットアップアームユニット１９２、ロボットアームユニット１９３、および器具駆動ユニット１９４に動作可能に結合される。同様に、セットアップアームユニット１９２は、カートユニット１９１、ロボットアームユニット１９３、および器具駆動ユニット１９４に動作可能に結合されており、一方で、ロボットアームユニット１９３は、カートユニット１９１、セットアップアームユニット１９２、および器具駆動ユニット１９４に動作可能に結合されており、さらに器具駆動ユニット１９４は、カートユニット１９１、セットアップアームユニット１９２、およびロボットアームユニット１９３に動作可能に結合される。サブユニット１９１、１９２、１９３、および１９４はまた、１つ以上の通信経路（図１には示されていない）を介して直接的または間接的のいずれかでスレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４に互いに通信可能に結合され、それにより、同期ネットワークを画定する。カートユニット１９１は、手術処置を受ける患者１０４の範囲内で手術台１０２に隣接して配置される。器具駆動ユニット１９４は、それに交換可能に固定され得る１つ以上の対応する手術器具（図１には示されていない）に結合可能である。カートユニット１９１は、手術台１０２または患者１０４の側面に沿って移動するように構成される。カートユニット１９１は、患者１０４に向かって、また患者１０４から離れて移動するように構成される。
【００４９】
ネットワーク化されたコンピューティングノード１８０は、１つ以上のプロセッサ１１８および１つ以上のメモリユニット１２０を含む、コンピューティングデバイスである。ネットワーク化されたコンピューティングノード１８０は、ネットワークおよび／またはインターネットを介して外科医コンソール１７０、スレーブロボットアセンブリ１９０、および／または外部デバイスとの通信を容易にする、ネットワークインターフェースなどの１つ以上の通信インターフェースをさらに含み得る。様々な実施形態では、ネットワーク化されたコンピューティングノード１８０は、外科医コンソール１７０と統合されてもよく、または手術室の内部またはその近くに配設されたコンピューティングタワーなどのスタンドアロンデバイスであってもよい。メモリユニット１２０は、本明細書の様々な実施形態の手順を実行するためにプロセッサ１１８が実行する命令１３６（一実施例では、ソフトウェア）を記憶する。理解されるように、プロセッサ１１８およびメモリユニット１２０の実装は、例としてのみ提供されており、限定するものとして解釈されるべきではない。例えば、本開示のいずれかの実施形態の手順は、ハードウェア構成要素、ファームウェア構成要素、ソフトウェア構成要素、および／またはそれらの任意の組み合わせによって実装されてもよい。ネットワーク化されたコンピューティングノード１８０の追加の詳細は、図２、図３、図４、および図５の文脈で以下に提供される。
【００５０】
外科医コンソール１７０は、手術処置中に外科医が対話するディスプレイデバイス１２２およびハンドル１１２を含む。いくつかの実施形態では、ハンドル１１２は、様々な触覚部１２４および／またはアクチュエータ１２６を含む。外科システム１００の動作中に、外科医は、外科医コンソール１７０のハンドル１１２を動かして、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４、および／または器具駆動ユニット１９４に結合された１つ以上の手術器具（図１には示されていない）の対応する移動および／または作動を生成する。外科医の入力コマンドに基づいて、ハンドル１１２は、通信経路１０６ａを介して、ネットワーク化されたコンピューティングノード１８０に信号を提供し、その後、通信経路１０６ｂを介して、スレーブロボットアセンブリ１９０のカートユニット１９１に、対応する信号を提供し、他の通信経路（図１には示されていない）を介して、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４に、コマンドされたアクションを実行させるために、対応する信号または命令を提供する。いくつかの実施形態では、スレーブロボットアセンブリ１９０は、対応するサブユニット１９２、１９３、１９４および／またはそれに結合された手術器具（図１には示されていない）の運動が引き起こすために、セットアップアームユニット１９２、ロボットアームユニット１９３、および／または器具駆動ユニット１９４に結合されている１つ以上の駆動モータ（図１には示されていない）を含む。
【００５１】
いくつかの実施形態では、ハンドル１１２内の様々な触覚部１２４は、様々な組織パラメータまたは状態、一実施例では、操作、切断または他の治療による組織抵抗、器具による組織への圧力、組織温度、組織インピーダンスなどに関するフィードバックを臨床医に提供する。理解され得るように、そのような触覚部１２４は、実際の動作状態をシミュレートする強化された触覚フィードバックを臨床医に提供する。触覚部１２４は、振動モータ、電気活性ポリマー、圧電デバイス、静電デバイス、亜音速音波表面作動デバイス、逆電気振動、またはユーザに触覚フィードバックを提供することができる任意の他のデバイスを含んでもよい。上述のように、ハンドル１１２はまた、例えば、実際の動作状態を模倣する外科医の能力をさらに高める繊細な組織操作および／または治療に用いられ得る、様々な異なるアクチュエータ１２６も含んでもよい。
【００５２】
上述のように、実行される特定の手術処置に応じて、１つ以上の手術器具（図１では別個に示されていない）を器具駆動ユニット１９４に交換可能に固定することができる。任意のタイプの手術器具を用いることができるが、そのような手術器具の例示的なタイプは、限定ではなく例として、画像捕捉デバイス、プローブ、エンドエフェクタ、把持器、ナイフ、はさみ、および／または同類のものを含む。本明細書のいくつかの実施形態によれば、器具駆動ユニット１９４に結合された手術器具のうちの１つ以上は、立体画像捕捉デバイスを含むプローブ（図１には示されていない）であり、それは、手術処置中に患者１０４の内部の関心領域の画像を捕捉するために患者１０４に挿入される。画像捕捉デバイスによって捕捉された画像は、画像を外科医に表示する外科医コンソール１７０のディスプレイデバイス１２２（本明細書では「ディスプレイ」とも呼ばれる）に伝達される。
【００５３】
図２は、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、およびスレーブロボットアセンブリ１９０の追加の構成要素を含む、外科システム１００の追加の態様を示すブロック図を示している。また、図２には、少なくとも部分的に通信経路１０６ａおよび１０６ｂによって画定される非同期ネットワークと、少なくとも部分的に通信経路２０２ａ、２０２ｂ、２０２ｃ、および２０２ｄ（集合的に２０２）によって画定される同期ネットワークの例示的なトポロジーも示されている。外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、スレーブロボットアセンブリ１９０、ならびに非同期および同期ネットワークをそれぞれ画定する通信経路１０６および２０２の構成および機能性により、手術ロボットシステム１００の個々の構成要素は、例えば、外科医コンソール１７０を介して移動コマンドを入力する外科医と対応するサブユニット１９１、１９２、１９４、および１９４の実際の移動との間の待ち時間などの様々なタイプの待ち時間を軽減する効率的な様式で動作および／または通信することを可能にする。例えば、様々な実施形態では、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９４、および１９４は、通信経路２０２によって少なくとも部分的に画定される同期ネットワークを介して、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０から独立して、互いに通信するように構成される。同時に、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、および／またはスレーブロボットアセンブリ１９０は、通信経路１０６によって少なくとも部分的に画定される非同期ネットワークを介して互いに通信するように構成される。システム１００の構成要素を並列非同期および同期ネットワークに割り振り、機能（電力管理機能など）をシステム１００の特定の構成要素に割り振ることにより、操作性能、通信および／または同様のものの効率が改善される。例えば、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９４、および１９４のうちの１つ以上が、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０からの処理、通信などを必要とする状況が発生した場合、サブユニット１９１、１９２、１９４、および１９４は、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０と通信するように構成される。しかしながら、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９４、および１９４は、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０からの処理、通信などを必要とせずに、特定の処理、通信、および／または他のコンピューティングタスクを処理し、それにより外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０の処理および／または通信帯域幅を解放するように構成される。これにより、外科医コンソール１７０および／またはネットワーク化されたコンピューティングノード１８０は、より多くのスレーブロボットアセンブリ１９０に適応することが可能になり、それにより、外科ロボットシステム１００の機能および柔軟性が向上する。
【００５４】
外科医コンソール１７０と、ネットワーク化されたコンピューティングノード１８０と、スレーブロボットアセンブリ１９０との間の通信は、リアルタイム通信および非リアルタイム通信を含む。本明細書で使用される場合、「リアルタイム通信」という用語は、発生したイベントに対応するデータ（例えば、手術システム１００のエラーに関するデータ、手術システム１００に対する重大なリスクに関する警告、他の重要なデータなど）の送信を指す。本明細書で使用される場合、「非リアルタイム通信」という用語は、ネットワーク化されたコンピューティングノード１８０があまり使用されていないとき、またはオフピーク時にあることに対応するデータ（例えば、重要でないデータ）の送信を指す。
【００５５】
図２に示されるように、外科医コンソール１７０は、外科医ディスプレイグラフィカルユーザインターフェース（ＧＵＩ）３０６、外科医マスターコンソールソフトウェアサブシステム３０７、および外科医二次的ディスプレイＧＵＩ３０８を含む。図２には別個に示されていないが、いくつかの実施形態では、外科医コンソール１７０は、１つ以上のプロセッサによって実行されたときに、外科医コンソール１７０に、外科医ディスプレイグラフィカルユーザインターフェース（ＧＵＩ）３０６、外科医マスターコンソールソフトウェアサブシステム３０７、および／または外科医二次的ディスプレイＧＵＩ３０８を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、外科医コンソール１７０は、外科医などのユーザがネットワーク化されたコンピューティングノード１８０およびスレーブロボットアセンブリ１９０を介して１つ以上のセットアップアームユニット１９２、ロボットアームユニット１９３、および／または器具駆動ユニット１９４と対話することを可能にする、プログラム、スクリプト、または他の実行可能コマンドなどの手順を実行するように構成される。外科医コンソール１７０は、外科医ディスプレイＧＵＩ３０６を生成して、ディスプレイユニット１２２を介して外科医に情報を提示するようにさらに構成される。
【００５６】
いくつかの実施形態では、外科医コンソール１７０のディスプレイユニット１２２は、外科医からタッチ入力を受信することができるタッチスクリーンである。外科医コンソール１７０のディスプレイユニット１２２は、タッチの圧力および長さを識別および決定するように構成される。いくつかの実施形態では、外科医ディスプレイＧＵＩ３０６は、タッチ入力の時間の長さを決定するように構成されており、タッチ入力の時間の長さに基づいて、外科医ディスプレイＧＵＩ３０６は、１つ以上の異なるグラフィカルユーザインターフェースアイテムを提示することができる。例えば、外科医ディスプレイＧＵＩ３０６が「戻る」ボタンを表示している場合に、「戻る」ボタンを単にタッチすると、画面が外科医ディスプレイＧＵＩ３０６の前の画面に戻り、外科医が戻るボタンを一定時間押し続けた場合、その際、メニューがドロップダウンして、１つ以上の外科医コンソール操作オプションが外科医に提供され得る。
【００５７】
図１には示されていないが、いくつかの実施形態では、外科医コンソール１７０は、第２のディスプレイユニットを含み、その場合、外科医コンソール１７０は、外科医二次的ディスプレイＧＵＩ３０８を生成して、外科医ディスプレイＧＵＩ３０６に関連して上述したのと同様の様式で、二次的ディスプレイユニットによって外科医に情報を提示するようにさらに構成される。
【００５８】
外科医マスターコンソールソフトウェアサブシステム３０７は、外科医ディスプレイＧＵＩ３０６および外科医二次的ディスプレイＧＵＩ３０８に動作可能に結合されており、一般に、外科医コンソール１７０の機能を実行するように構成される。例えば、外科医マスターコンソールソフトウェアサブシステム３０７は、外科医からの入力を捕捉、記録、および／または分析し、ならびに／またはネットワーク化されたコンピューティングノード１８０および／またはスレーブロボットアセンブリ１９０に、およびそれらからデータを通信するように構成される。いくつかの実施形態では、外科医マスターコンソールソフトウェアサブシステム３０７は、外科医コンソール１７０のオペレーティングシステム（図２には示されていない）、および／またはインターネットワーキング機能を実装する１つ以上のアプリケーションなどの外科医コンソール１７０のうちの１つ以上の他の構成要素に結合される。そのようなインターネットワーキング機能の実施例には、リアルタイムパブリッシュサブスクライブプロトコル（ＲＴＰＳ）を含む、リアルタイムシステム（ＤＤＳ）のデータ分布サービスプロトコルなどの機械間通信プロトコルを含む、１つ以上のパケット通信または送信プロトコルが含まれるが、これに限定されない。インターネットワーキング機能によって実装されたパケット送信プロトコルは、システム１００のパブリッシャとサブスクライバ間のスケーラブルで、リアルタイムで、信頼性があり、高性能で、相互運用可能なパケットまたはデータ交換を可能にする。本明細書で説明するように、「パブリッシャ」は、メッセージまたはデータの送信者であり、「サブスクライバ」は、メッセージまたはデータの受信者である。上述のように、手術ロボットシステム１００は、いくつかの実施例では、パブリッシュ−サブスクライブメッセージングパターンを実装し、それにより、パブリッシャは、メッセージをクラスに分類することによってサブスクライバにメッセージを送信し得る。サブスクライバは、特定のクラスへの関心を示し、特定のクラスと関連付けられた、または特定のクラスに分類されたメッセージを受信することができる。
【００５９】
各クラスは特定の識別子と関連付けられ、パブリッシャは、メッセージをクラスの識別子と関連付けることにより、メッセージを特定のクラスに分類することができる。サブスクライバは、クラスの特定の識別子と関連付けられ、識別子と関連付けられるメッセージを受信する。いくつかの実施形態では、サブスクライバの入口インターフェースのインターネットワーキング機能は、サブスクライバと関連付けられたクラス識別子を決定し、かつそれらのクラス識別子と関連付けられたメッセージを受信するように構成される。メッセージは、使用されている通信または送信プロトコルに基づいて、パケット内にカプセル化され得る。いくつかの実施形態では、パケットの特定のフィールドまたはビットは、メッセージと関連付けられたクラスの識別子を含み得る。サブスクライバの入口インターフェースは、パケットのフィールドまたはビットを読み取ることにより、メッセージと関連付けられたクラスの識別子を決定するように構成され得る。
【００６０】
コンピューティングノードは、メッセージのパブリッシャおよび別のメッセージのサブスクライバの両方である場合がある。例えば、外科医コンソール１７０は、外科医コンソール１７０がネットワーク化されたコンピューティングノード１８０に送るメッセージ、またはそれに送信するメッセージのパブリッシャであり得、外科医コンソール１７０は、外科医コンソール１７０がネットワーク化されたコンピューティングノード１８０から受信するメッセージのサブスクライバであり得る。いくつかの実施形態では、外科医コンソール１７０は、外科医コンソール１７０がスレーブロボットアセンブリ１９０に送るメッセージ、またはそれに送信するメッセージのパブリッシャであり得、外科医コンソール１７０は、外科医コンソール１７０がスレーブロボットアセンブリ１９０から受信するメッセージのサブスクライバであり得る。
【００６１】
図２を引き続き参照すると、ネットワーク化されたコンピューティングノード１８０は、手術室（ＯＲ）チームディスプレイＧＵＩ３０１、コアソフトウェア３０２、オブザーバソフトウェア３０３、電源管理ソフトウェア３０４、およびグローバルセーフティモニター３０５を含む。図２には別個に示されていないが、いくつかの実施形態では、ネットワーク化されたコンピューティングノード１８０は、１つ以上のプロセッサによって実行されたときに、ネットワーク化されたコンピューティングノードに、手術室チームディスプレイＧＵＩ３０１、コアソフトウェア３０２、オブザーバソフトウェア３０３、電源管理ソフトウェア３０４、および／またはグローバルセーフティモニター３０５を実装させる命令を記憶する１つ以上のメモリユニット１２０に結合された１つ以上のプロセッサ１１８を含む。このようにして、例えば、ネットワーク化されたコンピューティングノード１８０は、外科医などのユーザが外科医コンソール１７０を介してスレーブロボットアセンブリ１９０の１つ以上のセットアップアームユニット１９２、ロボットアームユニット１９３、および／または器具駆動ユニット１９４の動作を達成することを可能にする、プログラム、スクリプト、または他の実行可能コマンドなどの手順を実行するように構成される。場合によっては、ネットワーク化されたコンピューティングノード１８０は、それぞれ外科医コンソール１７０およびスレーブロボットアセンブリ１９０のうちの一方から受信した情報を変換または他の方法で処理し、かつ外科医コンソール１７０およびスレーブロボットアセンブリ１９０のうちの他方に情報を伝達する、外科医コンソール１７０とスレーブロボットアセンブリ１９０との間のインターフェースとして動作する。
【００６２】
図１または図２には示されていないが、いくつかの実施形態では、ネットワーク化されたコンピューティングノード１８０は、１つ以上の画像または画像のストリームなどの情報をＯＲ要員に表示するように構成されたディスプレイユニットを含むか、またはそれに結合される。ディスプレイユニットは、ディスプレイユニットに表示された情報または画像の可視性がＯＲ内の誰でも容易に見ることができるように構成され得る。そのような実施形態では、ネットワーク化されたコンピューティングノード１８０は、ＯＲチームディスプレイＧＵＩ３０１を生成して、ネットワーク化されたコンピューティングノード１８０のディスプレイユニットを介してＯＲ要員に情報を提示するように構成されている。
【００６３】
手術室チームディスプレイＧＵＩ３０１は、コアソフトウェアシステム３０２に動作可能に結合されており、それにより、ユーザまたは臨床医からの入力が、コアソフトウェアシステム３０２およびコアソフトウェアシステム３０２に結合された他のシステムによって捕捉、記録および分析される。様々な実施形態において、コアソフトウェアシステム３０２は、ネットワーク化されたコンピューティングノード１８０のオペレーティングシステム（図２には別個に示されていない）、および／または例えば、インターネットワーキング機能を実装するアプリケーションなどのネットワーク化されたコンピューティングノード１８０のうちの１つ以上の他のアプリケーションに結合されている。
【００６４】
コアソフトウェアシステム３０２はまた、オブザーバソフトウェアシステム３０３に動作可能に結合され、オブザーバソフトウェアシステム３０３は、スレーブロボットアセンブリ１９０などのシステム１００の他の構成要素を観察および制御するように構成されたプロトコルおよびツールを含む産業用制御システムである。例えば、オブザーバソフトウェアシステム３０３は、ネットワーク化されたコンピューティングノード１８０と動作可能に結合されているシステム１００の構成要素の様々な動作状態を観察するように構成される。例えば、オブザーバソフトウェアシステム３０３は、電源オンおよび電源オフ状態を含む、スレーブロボットアセンブリ１９０の様々な動作状態を観察することができる。オブザーバソフトウェアシステム３０３はまた、システム１００の構成要素の様々な動作状態と関連付けられた情報を、コアソフトウェアシステム３０２に送信するように構成される。いくつかの実施形態では、コアソフトウェアシステム３０２は、システム１００の構成要素の動作状態に基づいて、実施される１つ以上の命令および／または実行されるアクションを決定するように構成される。
【００６５】
コアソフトウェアシステム３０２はまた、電源管理ソフトウェアシステム３０４に動作可能に結合されており、電源管理ソフトウェアシステム３０４は、スレーブロボットアセンブリ１９０、ならびにカートユニット１９４、セットアップアームユニット１９２、ロボットアームユニット１９３および／または器具駆動ユニット１９４などのスレーブロボットアセンブリ１９０の様々な構成要素の電力使用量などのシステム１００の様々な構成要素による電力使用量を決定するように構成される。電源管理ソフトウェアシステム３０４は、様々な電力使用量メトリック、ルール、および／または閾値を記憶し、システム１００の様々な構成要素による電力使用量と関連付けられた一セットの電力使用量ルールに基づいて、実施される１つ以上の命令および／または実行されるアクションを決定するように構成される。コアソフトウェアシステム３０２は、いくつかの実施例では、システム１００の構成要素に供給される、またはそれによって使用される電力の変化の要求を電源管理ソフトウェアシステム３０４に転送して、電力使用量ルールの遵守を確実にするように構成される。
【００６６】
電源管理ソフトウェアシステム３０４は、電力使用量メトリックおよび／または電力使用量と関連付けられたルールに基づいて、要求された変更が許可されるか、または実行可能であるかどうかを決定するように構成される。例えば、ネットワーク化されたコンピューティングノード１８０が、通信経路１０６ａのうちの１つを介して外科医コンソール１７０から、器具駆動ユニット１９４に結合された手術器具を駆動するために使用される電力を増加する要求を受信すると、コアソフトウェアシステム３０２は、その電力を増加する要求を電源管理ソフトウェアシステム３０４に転送する。電源管理ソフトウェアシステム３０４は、器具駆動ユニット１９４の電力使用量と関連付けられたルールに基づいて、器具駆動ユニット１９４に結合された手術器具を駆動するのに現在使用されている電力が、器具駆動ユニット１９４の器具が駆動されることを許可される最大電力より低いことを決定し、それに応答して、通信経路１０６および２０２のうちの１つ以上を介して、ＩＤＵソフトウェアサブシステム３１４に、器具駆動ユニット１９４に結合された手術器具を駆動するのに使用される電力を増加させる命令を転送する。いくつかの実施形態では、電源管理ソフトウェアシステム３０４は、命令をコアソフトウェアシステム３０２に転送し、コアソフトウェアシステム３０２は、命令をスレーブロボットアセンブリ１９０に送信する。
【００６７】
コアソフトウェアシステム３０２はまた、グローバルセーフティモニターシステム３０５に動作可能に結合される。グローバルセーフティモニターシステム３０５は、システム１００の様々なセーフティ閾値を超えているかどうかを決定するための１つ以上のルールを含む。グローバルセーフティモニターシステム３０５は、ネットワーク化されたコンピューティングノード１８０、外科医コンソール１７０、ならびにスレーブロボットアセンブリ１９０およびそれらの構成要素を含む、システム１００の各構成要素のセーフティレベルを監視する。システムのセーフティレベルは、構成要素の１つ以上のセーフティメトリック（例えば、図１または図２に個別に示されていないセンサまたは他の測定デバイスによって決定される）を比較し、次に、メトリックをグローバルセーフティモニター３０５の１つ以上のルールと比較することにより、それらのメトリックが構成されたセーフティ閾値内にあるかどうかを決定することによって決定される。グローバルセーフティモニターシステム３０５の追加の詳細は、図４の文脈で以下に提供される。
【００６８】
上述のように、システム１００はまた、スレーブロボットアセンブリ１９０などの１つ以上のスレーブロボットアセンブリを含み、各スレーブロボットアセンブリは、それぞれカートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４などのカートユニット、セットアップアームユニット、ロボットアームユニット、器具駆動ユニットを含むことができる。一般に、スレーブロボットアセンブリ１９０のカートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、および器具駆動ユニット１９４は、通信経路２０２とともに、同期ネットワークを画定し、ここで、サブユニット１９１、１９２、１９３、および１９４の各々によって使用されるクロックは、互いに同期される。スレーブロボットアセンブリ１９０の同期ネットワークのトポロジーは、単方向リングネットワーク、双方向リングネットワークおよび／または同様のものを含むリングネットワークトポロジーなどの効率的な同期ネットワークを可能にする任意のネットワークトポロジーであり得る。カートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４などのスレーブロボットアセンブリ１９０の様々な構成要素は、制御自動化技術（ＥｔｈｅｒＣＡＴ）のためのイーサネット（登録商標）などの１つ以上の通信プロトコルを利用して、通信経路２０２を介して互いに通信するように構成される。
【００６９】
図２に示すように、カートユニット１９１は、スレーブロボットアセンブリソフトウェアサブシステム３０９、アームカートソフトウェアサブシステム３１０、およびデータコントローラ３１５を含む。図２には別個に示されていないが、いくつかの実施形態では、カートユニット１９１は、１つ以上のプロセッサによって実行されたときに、カートユニット１９１に、スレーブロボットアセンブリソフトウェアサブシステム３０９およびアームカートソフトウェアサブシステム３１０を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、カートユニット１９１は、外科医などのユーザが、他の操作の中でも、カートユニット１９１を手術台の側面に沿って移動することを可能にするプログラム、スクリプト、または他の実行可能なコマンドなどの特定の手順を実施するように構成される。カートユニット１９１は、いくつかの実施例では、ネットワーク化されたコンピューティングノード１８０および／または外科医コンソール１７０などのシステム１００の他の構成要素から１つ以上のパケットを受信するように構成される。
【００７０】
いくつかの実施形態では、スレーブロボットアセンブリソフトウェアサブシステム３０９は、ＥｔｈｅｒＣＡＴなどの１つ以上のパケット通信または伝送プロトコルを含むインターネットワーキング機能を実装するアプリケーションなどのスレーブロボットアセンブリ１９０のうちの１つ以上の他のアプリケーションに結合される。スレーブロボットアセンブリソフトウェアサブシステム３０９は、スレーブロボットアセンブリソフトウェアサブシステム３０９がスレーブロボットアセンブリ１９０の様々なサブユニット１９１、１９２、１９３、および１９４と関連付けられた情報に基づいて実施される命令および／または実行されるアクションを決定するために利用する、１つ以上のルールのセットを含む。スレーブロボットアセンブリユニット１９０は、カートユニット１９１、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４と関連付けられた情報を使用して決定を行うように構成される。スレーブロボットアセンブリ１９０の様々なユニットと関連付けられた情報に基づいて命令を分析および決定することのさらなる詳細は、図４、図５、および図６の文脈で以下に提供される。
【００７１】
スレーブロボットアセンブリソフトウェアサブシステム３０９は、通信経路１０６ａおよび１０６ｂのうちの１つ以上を介して、ネットワーク化されたコンピューティングノード１８０および外科医コンソール１７０などのシステム１００の他の構成要素から１つ以上のパケットを非同期様式で受信するように構成される。効率的な通信を促進するために、いくつかの実施形態では、スレーブロボットアセンブリ１９０によって受信されるパケットは固定サイズであり、パケット内のデータの特定ビットは、スレーブロボットアセンブリ１９０の特定の構成要素と関連付けられる。スレーブロボットアセンブリソフトウェアサブシステム３０９は、パケット内のデータの特定のビットと関連付けられているスレーブロボットアセンブリ１９０の構成要素を識別し、必要に応じて、通信経路２０２のうちの１つ以上を介して、同期様式でビットが運ぶデータをスレーブロボットアセンブリ１９０の適切な構成要素に転送するように構成される。例えば、スレーブロボットアセンブリソフトウェアサブシステム３０９に通信されるパケットは、パケットの最初の１２８ビットがカートユニット１９１と関連付けられ、パケットの次の１２８ビットがセットアップアームユニット１９２と関連付けられ、パケットの次の１２８ビットがロボットアームユニット１９３と関連付けられ、パケットの次の１２８ビットが器具駆動ユニット１９４と関連付けられるように構成され得る。パケットはまた、サブユニット１９１、１９２、１９３、および１９４に対応し、それらの値に応じて、パケットがそれぞれのサブユニット１９１、１９２、１９３、および１９４のデータを含むかどうかを示すそれぞれのフラグを含むことができる。スレーブロボットアセンブリソフトウェアサブシステム３０９は、パケットに存在するフラグおよび／またはビットの値に基づいて、パケットの意図された宛先を識別するように構成される。パケットがカートユニット１９１自体を対象とするデータを含む場合、カートソフトウェアサブシステム３１０に動作可能に結合されているスレーブロボットアセンブリソフトウェアサブシステム３０９は、データをカートソフトウェアサブシステム３１０に転送し、カートソフトウェアサブシステム３１０は、そのデータに基づいて、カートユニット１９１が実施する命令を決定するように構成される。
【００７２】
スレーブロボットアセンブリソフトウェアサブシステム３０９は、データコントローラ３１５に通信可能に結合される。スレーブロボットアセンブリ１９０の他のサブユニットのうちの１つからスレーブロボットアセンブリソフトウェアサブシステム３０９が受信した各パケットについて、データコントローラ３１５は、受信したデータに応答するアクションがスレーブロボットアセンブリ１９０によってローカルに実行され得るかどうか、またはデータがネットワーク化されたコンピューティングノード１８０に送信されるべきかどうかを決定する。スレーブロボットアセンブリソフトウェアサブシステム３０９に送信されるデータは、本明細書ではデータタイプと称されるタイプまたはカテゴリと関連付けられる。スレーブロボットアセンブリ１９０の各サブユニットは、データを様々なデータタイプと関連付けるように構成されており、データタイプは、構成データまたは構成データへの変更を通じてスレーブロボットアセンブリ１９０に追加され、またはそれから削除される。データタイプには、画像データ、位置データ、中間計算データ、エラーデータが含まれるが、これらに限定されない。
【００７３】
各データタイプは一意の識別子と関連付けられており、スレーブロボットアセンブリ１９０のサブユニットは、スレーブロボットアセンブリソフトウェアサブシステム３０９にデータを送信するときに、送信されるデータを含むパケット内に一意の識別子を含むように構成される。いくつかの実施形態では、データが一連のパケットで送信される場合、一連のパケット内のパケットの各々は、データと関連付けられたデータタイプの一意の識別子を含む。いくつかの実施形態では、データが一連のパケットで送信される場合、一連の最初のパケットのみがデータと関連付けられたデータタイプの一意の識別子を含み、一連の最後のパケットは、すべてのデータが送信されたことを示す一連のビットを含み、スレーブロボットアセンブリソフトウェアサブシステム３０９は、最初のパケットに含まれるデータタイプを、最初のパケット、最後のパケット、およびすべての中間パケットのデータと関連付けるように構成される。
【００７４】
各データタイプは優先度レベルと関連付けられており、スレーブロボットアセンブリ１９０は、データタイプと関連付けられた優先度レベルに基づいてアクションを実行することができるかどうかを示す、一セットのローカルアクションルールを含む。いくつかの実施形態では、優先度レベルは、高優先度、中優先度、低優先度である。１つ以上のローカルアクションルールは、スレーブロボットアセンブリ１９０のサブユニットが利用するように構成されている各データタイプについて少なくとも１つの優先度レベルを特定する。上述のように、データタイプには、画像データ、位置データ、中間計算データ、エラーデータが含まれているが、これらに限定されない。いくつかの実施形態では、画像データは、高優先度と関連付けられ、中間計算は、低優先度と関連付けられ、位置データは、中優先度と関連付けられ、さらにエラーデータは、中優先度と関連付けられる。
【００７５】
優先度レベルごとに、１つ以上のローカルアクションルールが、アクションをローカルで実行することができるかどうかを特定する。特定の優先度レベルでは、ローカルアクションルールは、優先度レベルおよび受信されたデータと関連付けられたデータタイプに基づいて、アクションをローカルで実行することができるかどうかを特定する。アクションをローカルで実行することができない場合、ローカルアクションルールは、データがネットワーク化されたコンピューティングノード１８０に送信されるべきであることを特定する。アクションをローカルで実行することができる場合、ローカル解決ルールは、アクションを実行するための機械可読な指示を特定する。本明細書で説明するように、「機械可読命令」という用語は、実行するコンピューティングノードが処理または実施するように構成されている、プログラミング言語の構文、またはバイナリコードなどの命令および／またはコマンドを含む。ローカルアクションルールが特定するアクションの実施例には、セットアップアームユニット１９２、ロボットアームユニット１９３および／または同様のものなどのスレーブロボットアセンブリ１９０のサブユニットの新しい位置データを計算すること、スレーブロボットアセンブリ１９０に動作可能に結合された画像捕捉デバイスによって捕捉された画像からの画像データを、ネットワーク化されたコンピューティングノード１８０および／または同様のものなどのシステム１００の別のコンピューティングノードに送信すること、セットアップアームユニット１９２、ロボットアームユニット１９３、器具駆動ユニット１９４および／または同様のものなどのスレーブロボットアセンブリ１９０のサブユニットの電力レベルを計算および／または設定すること、スレーブロボットアセンブリ１９０のサブユニットの温度が閾値温度を超えているかどうかを決定すること、器具駆動ユニット１９４に結合されているエンドエフェクタおよび／または同様のものなどの特定の器具のケーブルのたるみを計算すること、スレーブロボットアセンブリ１９０の１つ以上のサブユニットへの電力供給を抑制（例えば、パワーダウンすることによって）すること、ならびにスレーブロボットアセンブリ１９０の１つ以上のサブユニットと関連付けられたモータを抑制（例えば、ブレーキをかけること、および／または電力供給を抑制することによって）することが含まれるが、これらに限定されない。
【００７６】
データコントローラ３１５は、スレーブロボットアセンブリソフトウェアサブシステム３０９によって受信されたデータのデータタイプを識別し、１つ以上のローカルアクションルールおよびデータタイプに基づいて、受信されたデータの優先度レベルを識別するように構成される。データコントローラ３１５は、優先度レベルおよび１つ以上のローカルアクションルールに基づいて、実行するアクションを識別するように構成される。アクションがローカルで実行することができないことをデータコントローラ３１５が識別した場合、データコントローラ３１５は、ネットワーク化されたコンピューティングノード１８０に、スレーブロボットアセンブリソフトウェアサブシステム３０９が受信したデータを送信する。アクションがローカルで実行することができることをデータコントローラ３１５が識別した場合、その際、データコントローラ３１５は、アクションを実行し、実行されたアクションを実装するために、データをスレーブロボットアセンブリソフトウェアサブシステム３０９に送信したサブユニットのための一セットの命令を生成する。
【００７７】
上述のように、位置データおよびエラーデータなどの特定のデータタイプは、中優先度と関連付けられており、スレーブロボットアセンブリソフトウェアサブシステム３０９が中優先度と関連付けられたデータを受信したことに応じて、データコントローラ３１５は、アクションが優先度レベル、データタイプ、およびローカルアクションルールに基づいてローカルで実行することができるかどうかを決定する。例えば、ローカルアクションルールが、中優先度データおよび位置データのデータタイプについてのアクションがローカルで実行され得る一方で、エラーデータのデータタイプについてのアクションがローカルで実行され得ないと特定する場合、データコントローラ３１５は、スレーブロボットアセンブリソフトウェアサブシステム３０９が位置データを受信したことに応じて、特定された機械可読命令に基づいて新しい位置データを計算し、スレーブロボットアセンブリソフトウェアサブシステム３０９がエラーデータを受信したことに応じて、ネットワーク化されたコンピューティングノード１８０にエラーデータを送信する。
【００７８】
セットアップアームユニット１９２は、セットアップアームソフトウェアサブシステム３１１およびアームカートディスプレイＧＵＩ３１２を含む。さらに、図２には別個に示されていないが、いくつかの実施形態では、セットアップアームユニット１９２は、１つ以上のプロセッサによって実行されたときに、セットアップアームユニット１９２に、セットアップアームソフトウェアサブシステム３１１およびアームカートディスプレイＧＵＩ３１２を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、セットアップアームユニット１９２は、外科医などのユーザが、他の操作の中でも、セットアップアームユニット１９２を移動することを可能にするプログラム、スクリプト、または他の実行可能なコマンドなどの特定の手順を実施するように構成される。
【００７９】
また、図２には示されていないが、セットアップアームユニット１９２は、アームカートディスプレイデバイスに結合され得、ディスプレイデバイスを介して情報を表示するように構成され得る。ディスプレイデバイスに表示される情報は、例えば、手術台に対するカートユニット１９１の位置、患者および手術台に対するセットアップアームユニット１９２の位置、ロボットアームユニット１９３の位置、ならびに／または器具駆動ユニット１９４の位置を含む、スレーブロボットアセンブリ１９０の位置と関連付けられた情報を含み得る。アームディスプレイＧＵＩ３１２は、セットアップアームソフトウェアサブシステム３１１に動作可能に結合され得、それにより、ユーザまたは臨床医からの入力が、アームディスプレイＧＵＩ３１２によって、捕捉、記録、および分析され、入力は、セットアップアームソフトウェアサブシステム３１１に送信される。セットアップアームソフトウェアサブシステム３１１は、スレーブロボットアセンブリ１９０によって受信されたパケットおよび／またはカートユニット１９１、ロボットアームユニット１９３、または器具駆動ユニット１９３から受信されたパケットで受信された情報に基づいて、セットアップアームユニット１９１によって実施されるべき命令および／または実行されるべきアクションを決定するように構成される。いくつかの実施形態では、セットアップアームソフトウェアサブシステム３１１は、スレーブロボットアセンブリ１９０の１つ以上の他の構成要素によって実施される命令を決定し、スレーブロボットアセンブリ１９０の１つ以上の他の構成要素に、命令および／または他のデータを送信するように構成される。
【００８０】
ロボットアームユニット１９３は、ロボットアームソフトウェアサブシステム３１３を含む。さらに、図２には示されていないが、いくつかの実施形態では、ロボットアームユニット１９３はまた、１つ以上のプロセッサによって実行されたときに、ロボットアームユニット１９３に、ロボットアームソフトウェアサブシステム３１３を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、ロボットアームユニット１９３は、外科医などのユーザが、他の操作の中でも、ロボットアームユニット１９３を患者１０４に対して移動することを可能にするプログラム、スクリプト、または他の実行可能なコマンドなどの特定の手順を実施するように構成される。ロボットアームソフトウェアサブシステム３１３は、いくつかの実施形態では、スレーブロボットアセンブリ１９０のうちの１つ以上の他のアプリケーションに結合されており、スレーブロボットアセンブリ１９０によって受信されたパケットおよび／またはカートユニット１９１、セットアップアームユニット１９２、もしくは器具駆動ユニット１９３から受信されたパケットに基づいて、ロボットアームユニット１９３によって実施されるべき命令および／または実行されるべきアクションを決定するように構成される。
【００８１】
例えば、スレーブロボットアセンブリ１９０は、ロボットアームユニット１９３と関連付けられた構成データを受信することができ、ロボットソフトウェアサブシステム３１３は、構成データがロボットアームユニット１９３によって受信されると、ロボットアームユニット１９３の構成データを更新する。スレーブロボットアセンブリ１９０はまた、ロボットアームを新しい位置に移動すること、またはロボットアームのすべての動作を一時停止することなどの、ロボットアームユニット１９３が実行する動作を示す動作モードデータまたは命令を受信する。ロボットソフトウェアサブシステム３１３は、ロボットアームユニット１９３に対する命令が有効であるかどうかを決定し、有効である場合、ロボットアームユニット１９３に動作を実行させるように構成される。いくつかの実施形態では、スレーブロボットアセンブリソフトウェアサブシステム３０９は、スレーブロボットアセンブリ１９０に対する何らかの命令が有効であるかどうかを決定し、有効である場合、通信経路２０２によって画定されるリングトポロジーを介して命令を送信するように構成されており、命令がロボットアームユニット１９３を対象としたものである場合、ロボットソフトウェアサブシステム３１３は、その際、ロボットアームユニット１９３に、命令が有効であるかどうかをチェックすることなく、命令またはコマンドと関連付けられた動作を実行させる。
【００８２】
ロボットアームユニット１９３は、通信経路２０２のうちの１つ以上、他のサブユニット１９１、１９２、および１９４のうちの１つ以上、ならびに通信経路１０６のうちの１つ以上を介して、ネットワーク化されたコンピューティングノード１８０または外科医コンソール１７０に、１つ以上のパケットを送信する。このようにして、ロボットアームユニット１９３は、同期ネットワークおよび非同期ネットワークの両方の要素を用いることによって、ネットワーク化されたコンピューティングノード１８０または外科医コンソール１７０に、１つ以上のパケットを送信する。ロボットアームユニット１９３は、他のデータの中でも、ロボットアームユニット１９３のロボットアームに結合された任意のセンサもしくはロボットアームユニット１９３に結合された任意のセンサからのデータ、患者および／もしくは手術台に対するロボットアームの位置データ、ロボットアームユニット１９３の動作状態もしくは動作モード、ロボットアームユニット１９３の現在の構成データならびに／または同様のものを送信する。ロボットアームユニット１９３は、いくつかの実施例では、ＥｔｈｅｒＣＡＴを使用してアームカートユニット１９１に情報を送信するように構成されており、アームカートユニット１９１は、ネットワーク化されたコンピューティングノード１８０にデータを転送するように構成される。
【００８３】
器具駆動ユニット１９４は、器具駆動ユニットソフトウェアサブシステム３１４を含む。さらに、図２には示されていないが、いくつかの実施形態では、器具駆動ユニット１９４は、１つ以上のプロセッサによって実行されたときに、器具駆動ユニット１９４に、器具駆動ユニットソフトウェアサブシステム３１４を実装させる命令を記憶する１つ以上のメモリユニットに結合された１つ以上のプロセッサを含む。このようにして、例えば、器具駆動ユニット１９４は、外科医などのユーザが、他の操作の中でも、医療処置中に器具駆動ユニット１９４に結合された手術器具を操作することを可能にするプログラム、スクリプト、または他の実行可能なコマンドなどの特定の手順を実施するように構成される。器具駆動ユニットソフトウェアサブシステム３１４は、器具駆動ユニット１９４によって受信されたデータに基づいて、器具駆動ユニット１９４によって、および／またはそれに結合された手術器具によって実行されるべき１つ以上のアクションを決定するように構成される。器具駆動ユニットソフトウェアサブシステム３１４はまた、器具駆動ユニット１９４および／または手術器具に、決定された１つ以上のアクションを実行させるように構成される。
【００８４】
器具駆動ユニットソフトウェアサブシステム３１４は、ネットワーク化されたコンピューティングノード１８０および／または外科医コンソール１７０にデータの１つ以上のパケットを送信するように構成される。いくつかの実施形態では、ネットワーク化されたコンピューティングノード１８０または外科医コンソール１７０にデータを送信するために、器具駆動ユニットソフトウェアサブシステム３１４は、通信経路２０２のうちの１つ以上を介して同期様式でアームカートユニット１９１にデータを送信し、アームカートユニット１９１は、データをネットワーク化されたコンピューティングノード１８０に転送する。次に、ネットワーク化されたコンピューティングノード１８０は、アームカートユニット１９１から受信したデータに基づいて、命令または信号を外科医コンソール１７０に送信するべきかどうかを決定する。器具駆動ユニット１９４は、他のデータの中でも、器具駆動ユニット１９４に結合された手術器具に含まれるか、またはそれに取り付けられる１つ以上のセンサ（図２には示されていない）によって捕捉または記録されたデータを含むパケットを送信することができる。器具駆動ユニット１９４は、器具駆動ユニット１９４の手術器具の位置に関連するか、もしくはそれと関連付けられたデータのパケット、器具駆動ユニット１９４の構成データおよび／または同様のものを送信する。器具駆動ユニット１９４はまた、いくつかの実施例では、器具駆動ユニット１９４の手術器具の動作モードデータを送信する。
【００８５】
いくつかの実施形態では、器具駆動ユニット１９４は、構成データの１つ以上のパケットを受信し、器具駆動ユニットソフトウェアサブシステム３１４は、受信した構成データに基づいて、器具駆動ユニット１９４の構成データを更新するように構成される。器具駆動ユニット１９４はまた、器具駆動１９４の手術器具を差し入れるために、いくつかの動作モードの中から特定の動作モードなどの動作モードデータのパケットを受信する。器具駆動ユニット１９４はまた、手術器具の特定の動作を開始する、もしくは手術器具の特定の動作を停止する、または器具駆動ユニット１９４の手術器具の任意の動作を一時的に停止するためのコマンドなどの、手術器具に対するコマンドを含むパケットを受信する。
【００８６】
いくつかの実施形態では、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４は、サブユニット１９１、１９２、１９３、および１９４の各々がサブユニット１９１、１９２、１９３、および１９４のうちの少なくとも２つの他のものに結合するように、互いに結合して、リングトポロジーを形成する。例えば、図２では、カートユニット１９１は、セットアップアームユニット１９２および器具駆動ユニット１９４に結合されている。同様に、セットアップアームユニット１９２は、カートユニット１９１およびロボットアームユニット１９３に結合されており、ロボットアームユニット１９３は、セットアップアームユニット１９２および器具駆動ユニット１９４に結合されており、器具駆動ユニット１９４は、ロボットアームユニット１９３およびカートユニット１９１に結合されている。
【００８７】
図３を参照すると、外科医コンソール１７０と、ネットワーク化されたコンピューティングノード１８０と、スレーブロボットアセンブリ１９０と、外部システム３７１との間で通信される様々なタイプの情報が示されている。上述のように、ネットワーク化されたコンピューティングノード１８０は、通信経路１０６を介して外科医コンソール１７０に通信可能に結合されており、スレーブロボットアセンブリ１９０および外科医コンソール１７０は、通信経路１０６およびネットワーク化されたコンピューティングノード１８０を介して互いに通信可能に結合されている。さらに、ネットワーク化されたコンピューティングノード１８０は、通信経路３１６を介して１つ以上の外部システム３７１に結合されている。
【００８８】
外科医コンソール１７０とネットワーク化されたコンピューティングノード１８０との間の通信は、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、および通信経路１０６ａによって少なくとも部分的に画定された非同期ネットワークを介してもたらされる。ネットワーク化されたコンピューティング１８０とスレーブロボットアセンブリ１９０のカートユニット１９１との間の通信は、通信経路１０６ｂによって少なくとも部分的に画定された非同期ネットワークによってもたらされる。カートユニット１９１と、器具駆動ユニット１９４および／またはロボットアームユニット１９３などのスレーブロボットアセンブリ１９０の他のサブユニットとの間の通信は、通信経路２０２によって少なくとも部分的に画定された同期ネットワークによって達成される。いくつかの実施形態では、通信経路２０２は、１つのリングネットワークの一部である。
【００８９】
通信経路１０６ａを介して外科医コンソール１７０からネットワーク化されたコンピューティングノード１８０に送信されるデータのタイプの実施例には、限定ではないが、外科医からの様々な入力と関連付けられたデータ、外科医コンソール１７０の１つ以上のセンサと関連付けられたデータ、患者と関連付けられた診断データ、外科医コンソール１７０が、電源がオンになっているか、または電源がオフになっているかなどの外科医コンソールと関連付けられた状態またはモードデータ、外科医に関する情報、ならびに外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０、および／またはスレーブロボットアセンブリ１９０と関連付けられた構成データが含まれる。外科医コンソール１７０は、ネットワーク化されたコンピューティングノード１８０から、外科医コンソール１７０のハンドル１１２などの１つ以上の制御ユニットとの対話に応じて触覚フィードバックを受信する。さらに、外科医コンソール１７０は、通信経路１０６ａを介して、ネットワーク化されたコンピューティングノード１８０から、例えば、スレーブロボットアセンブリの器具駆動ユニットに取り付けられた、または結合された内視鏡などの１つ以上の画像捕捉デバイスによって捕捉された１つ以上の画像を含むデータを受信する。外科医コンソール１７０はまた、システム１００の様々なスレーブロボットアセンブリおよび／または様々な他のサブユニットによって使用されている様々な手術器具の状態またはモードデータおよび構成データを受信することができる。外科医コンソール１７０はまた、外科医コンソール１７０が実行するために、または外科医コンソールを操作する外科医が実行するか、もしくは従うために、ネットワーク化されたコンピューティングノード１８０から１つ以上のコマンドを受信し得る。例えば、ネットワーク化されたコンピューティングノード１８０は、特定のスレーブロボットアセンブリがもはや適切に機能していないこと、および外科医がそのスレーブロボットアセンブリの使用をもはや試みるべきではないことを外科医に警告するコマンドを、外科医コンソール１７０に送信し得る。
【００９０】
ネットワーク化されたコンピューティングノード１８０は、ＯＲチームに提示される情報を更新するように構成される。例えば、コアソフトウェア３０２は、外科医コンソール１７０およびスレーブロボットアセンブリ１９０などのスレーブロボットアセンブリから受信したデータに応答して、通信経路３６６ａを介して、ＯＲチームディスプレイＧＵＩ３０１上のＯＲチームに関連する情報を表す様々なビューへの更新を送信することができる。同様に、コアソフトウェア３０２は、通信経路３６６ｂを介して、外科医コンソール１７０またはスレーブロボットアセンブリ１９０に送信されることに関連する特定のデータを受信することができる。
【００９１】
ネットワーク化されたコンピューティングノード１８０は、非同期ネットワークの一部である通信経路１０６ｂを介してスレーブロボットアセンブリ１９０のカートユニット１９１にデータを送信し、かつ通信経路１０６ｂを介してスレーブロボットアセンブリ１９０のカートユニット１９１からデータを受信するように構成される。ネットワーク化されたコンピューティングノード１８０のコアソフトウェア３０２によってカートユニット１９１に送信されるデータの例示的なタイプは、構成データ、動作状態またはモードデータ、ならびにスレーブロボットアセンブリ１９０の１つ以上のサブユニット１９１、１９２、１９３、および１９４に対して特定のアクションを実行するための命令またはコマンドを含むが、これらに限定されない。
【００９２】
スレーブロボットアセンブリ１９０のカートユニット１９１は、スレーブロボットアセンブリ１９０内の同期ネットワークの一部である２０２などの通信経路を使用してパケットを送信することにより、ネットワーク化されたコンピューティングノード１８０から受信したデータを、ロボットアームユニット１９３および器具駆動ユニット１９４に送信する。カートユニット１９１は、同様の様式で、スレーブロボットアセンブリ１９０の他のサブユニット１９２、１９３、および／または１９４からデータを受信する。例えば、カートユニット１９１は、同期ネットワークの一部として、通信経路２０２を介して、器具駆動ユニット１９４およびロボットアームユニット１９３から、センサ、位置、動作状態もしくはモード、および／または構成に関するデータを受信する。ネットワーク化されたコンピューティングノード１８０に送信される必要があるデータの場合、カートユニット１９１は、非同期ネットワークの一部である通信経路１０６ｂを使用してデータを送信する。
【００９３】
ネットワーク化されたコンピューティングノード１８０は、いくつかの実施例では、１つ以上の外部システム３７１に通信可能に結合される。外部システム３７１の実施例には、患者システム、ユーザシステム、手術をスケジュールするスケジューリングシステム、外科システム１００によってローカルおよびシステム全体の決定を行うのに使用されるローカル解決ルールおよびグローバル解決ルールを含むルールの１つ以上のセットを再構成するために使用され得る、医療処置システム、ならびに他の外部システムが含まれるが、これらに限定されない。ネットワーク化されたコンピューティングノード１８０が外部システム３７１から受信するデータの実施例には、例えば、ＣＴスキャンなどの手術前画像、患者の病歴を含む患者に関連するデータ、ならびに外科医およびスタッフに関連するデータが含まれるが、これらに限定されない。ネットワーク化されたコンピューティングノード１８０は、外部システム３７１に、手術器具の使用、外科医コンソール１７０の使用、手順データ、および手術システム１００で利用された画像捕捉デバイスによって捕捉された１つ以上の画像に関連するデータを送信し得る。
【００９４】
図４を参照すると、ロボット手術システム１００の構成要素の例示的な構成が示されており、ここで、意思決定制御は、スレーブロボットアセンブリ１９０および／もしくはネットワーク化されたコンピューティングノード１８０の構成要素、または別の構成要素の間に割り振られている。明確な実施例を示すために、図１、図２、および図３の様々な構成要素を使用して、図４の文脈で手術システム１００によって実行される動作を説明する。
【００９５】
本明細書で説明するように、ローカル意思決定は、システム１００のマスター構成要素ではない、スレーブロボットアセンブリ１９０などの構成要素によって行われる決定を指す。本明細書で説明するように、グローバル意思決定は、ネットワーク化されたコンピューティングノード１８０などのシステム１００のマスター構成要素によって行われる決定を指す。上述のように、ネットワーク化されたコンピューティングノード１８０は、システム１００の様々なセーフティ閾値を識別し、システム１００の様々なセーフティ閾値に違反しているかどうかを決定するための１つ以上のグローバル解決ルールを含む、グローバルセーフティモニター３０５を含む。したがって、以下でさらに説明するように、グローバル意思決定は、グローバルなアクションの実行につながる可能性があるが、ローカル意思決定は、ローカルアクションの実行につながる可能性がある。グローバルセーフティモニター３０５は、セーフティハンドラ４０１、４０２、４０３、４０４、４０５、４０６、４０７、４０８、４０９、４１０、４１１、４１２、４１３、４１４（総称して、４０１〜４１４）などのシステム１００内の様々なセーフティハンドラから、様々なセーフティ閾値に関連するデータを受信する。各セーフティハンドラ４０１〜４１４は、セーフティ測定値を捕捉し、グローバルセーフティモニター３０５またはローカルセーフティモニター４１５などの意思決定ユニットに、その情報を送信するように構成される。本明細書で説明するように、セーフティ測定値は、システム１００の異なる構成要素の性能測定、および／またはシステム１００の構成要素の動作中に発生するエラーであり得る。
【００９６】
各セーフティハンドラ４０１〜４１４は、セーフティハンドラ４０１〜４１４に結合された、および／またはそれと関連付けられた構成要素またはサブシステムのセーフティ測定値を捕捉するように構成される。例えば、セーフティハンドラ４０１、４０２、４０３、４０４は、それぞれ、グラフィカルユーザインターフェース３０１、コアソフトウェアシステム３０２、オブザーバソフトウェアシステム３０３、電源管理ソフトウェアシステム３０４のセーフティ測定値を捕捉する。同様に、セーフティハンドラ４０６、４０７、４０８は、それぞれ、グラフィカルユーザインターフェース３０６、サブシステム３０７、グラフィカルユーザインターフェース３０８のセーフティ測定値を捕捉し、セーフティハンドラ４０９、４１０、４１１、４１２、４１３、４１４は、スレーブロボットアセンブリソフトウェアサブシステム３０９、カートソフトウェアサブシステム３１０、セットアップアームソフトウェアサブシステム３１１、アームディスプレイグラフィカルユーザインターフェース３１２、ロボットソフトウェアサブシステム３１３、器具駆動ユニットソフトウェアサブシステム３１４のセーフティ測定値を捕捉する。
【００９７】
上述のように、セーフティ測定値は、システム１００の異なる構成要素の性能測定、および／またはシステム１００の構成要素の動作中に発生するエラーであり得、セーフティハンドラ４０１〜４１４は、グローバルセーフティモニター３０５またはローカルセーフティモニター４１５などの意思決定エンティティに、情報を送信する。例えば、セーフティハンドラ４０６は、編集可能であるべき外科医コンソール１７０のディスプレイ１２２のグラフィカルユーザインターフェース上のフィールドが、ユーザがフィールドをクリックすることなどによってフィールドと対話しようとするときに編集可能であるかどうかを捕捉して、フィールドが編集可能であるかどうかを、グローバルセーフティモニター３０５に送信し得る。グローバルセーフティモニター３０５に送信されたデータが、編集可能なフィールドが編集不可能であり、ユーザがフィールドを編集することを妨げていることを示す場合、グローバルセーフティモニター３０５は、外科医コンソール１７０でユーザに警告を送信し、グラフィカルユーザインターフェース３０６が機能しているグラフィカルユーザインターフェースであるとはもはや見なさないように、ユーザに指示することができる。
【００９８】
セーフティハンドラ４０９〜４１４から受信した情報に基づく意思決定は、ローカル意思決定エンティティであるローカルセーフティモニター４１５によって、システム１００のシステム内でローカルに実行され得る。ローカルセーフティモニター４１５は、セーフティハンドラ４０９〜４１４から受信したデータに基づいて様々な命令を決定し、ローカルセーフティモニター４１５が性能の問題またはエラーなどのセーフティ問題点を解決することができない場合は、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４、またはグローバルセーフティモニター３０５のいずれかに命令を送信するようにローカル解決ルールの１つ以上のセットで構成される。ローカルセーフティモニター４１５は、セーフティハンドラから受信したデータをローカル解決ルールの一部として含んだセーフティ閾値データと比較することに基づいて、命令を生成することができる。
【００９９】
例えば、ロボットアームソフトウェアサブシステム３１３と結合されたセーフティハンドラ４１３は、ローカルセーフティモニター４１５に、ロボットアームユニット１９３がロボットアームの位置を更新するための命令を受信した後にロボットアームユニット１９３がロボットアームの位置を更新するのにかかる時間に関する情報を送信し得る。ローカルセーフティモニター４１５は、ロボットアームユニット１９３が命令を受信した後にロボットアームユニット１９３がロボットアームの位置を更新するのにかかった時間量が、ロボットアームによるそのような動きの実行についてのセーフティ閾値時間より大きいかどうかを決定する。時間量がセーフティ閾値時間よりも十分に長い場合、ローカルセーフティモニター４１５は、ロボットアームユニット１９３の動作を一時停止または停止し、スレーブロボットアセンブリ１９０のロボットアームユニット１９３がもはや使用可能でないことをグローバルセーフティモニター３０５に通知するために、カートユニット１９１を介してグローバルセーフティモニター３０５に警告を送信することができる。したがって、この実施例におけるスレーブロボットアセンブリ１９０は、ローカルで決定を行う。
【０１００】
しかしながら、時間量がセーフティ閾値よりも大きいが、ローカルセーフティモニター４１５がロボットアームユニット１９３の動作を停止または一時停止するために十分な時間よりも小さい場合、ローカルセーフティモニター４１５は、時間量を含む警告を、カートユニット１９１を介してグローバルセーフティモニター３０５に送信することができる。グローバルセーフティモニター３０５は、時間量がロボットアームユニット１９３の動作を停止または一時停止するために十分であるかどうかを決定する際に、外科医コンソール１７０、ネットワーク化されたコンピューティングノード１８０などの他のシステムからの他のセーフティ測定値を考慮することができる。グローバルセーフティモニター３０５が、他のシステムからの他のセーフティ測定値を考慮した時間量がロボットアームユニット１９３の動作を一時停止または停止するために十分であると決定した場合、ネットワーク化されたコンピューティングノード１８０は、ロボットアームユニット１９３の動作を一時停止または停止するための命令を、スレーブロボットアセンブリ１９０に送信する。したがって、グローバルセーフティモニター３０５は、スレーブロボットアセンブリ１９０に対して非ローカルまたはシステム全体またはグローバルの決定を行う。いくつかの実施形態では、セーフティ閾値データは、構成手順中に利用された構成データからのものを含む１つ以上の構成手順によって設定および更新されてもよい。セーフティ閾値データは、構成データへの更新またはシステム１００内のシステムの様々な構成要素への他の更新に基づいて更新されてもよい。
【０１０１】
次に図５を参照すると、手術ロボットシステム１００の構成要素の構成を用いて、スレーブロボットアセンブリ１９０および／もしくはネットワーク化されたコンピューティングノード１８０の構成要素または他の構成要素間にセーフティ関連データの意思決定制御を割り振るための方法５００が示されている。ステップ５０２で、ローカルセーフティモニター（ローカルセーフティモニター４１５など）が開始され、それは、スレーブロボットアセンブリ１９０などのその対応するスレーブロボットアセンブリの様々なセーフティメトリックの監視を実行する。ステップ５０４で、ローカルセーフティモニターは、スレーブロボットアセンブリ１９０のサブユニット１９１、１９２、１９３、および１９４の様々なセーフティハンドラ（セーフティハンドラ４０９〜４１４など）から警告を受信する。いくつかの実施例では、特定のセーフティ問題点が発生していなくても、セーフティ警告が周期的に送信される場合がある。例えば、スレーブロボットアセンブリ１９０のロボットアームユニット１９３は、特定のセーフティ問題点が発生していなくても、スレーブロボットアセンブリが動作している間に３０秒ごとにローカルセーフティモニターにセーフティ警告を送信することができる。ステップ５０６で、ローカルセーフティモニターは、ステップ５０４で受信した警告からのあらゆるの警告がそれらのそれぞれの閾値を超えているかどうかを決定する。図４で上述したように、ローカルセーフティモニターは、セーフティ監視と関連付けられたルールに基づいて、対応する閾値に違反しているかどうかを決定する。閾値を超えている警告がない場合、方法５００は、ステップ５０２に戻り、セーフティ監視を続ける。警告が対応する閾値を超える場合、ステップ５０８で、セーフティ警告およびセーフティ警告を送信したサブユニットが、ローカルセーフティモニターによって識別される。
【０１０２】
ステップ５１０において、その対応する閾値を超えていると識別された各セーフティ警告について、ローカルセーフティモニターは、様々なセーフティ警告の閾値と関連付けられたルールに基づいて、ローカルアクションがローカルセーフティモニターによって実行され得るかどうかを決定する。ローカルアクションが実行され得る場合、ステップ５１２で、ローカルセーフティモニターは、ローカルアクションを実行して、セーフティ警告を解決する。ローカルアクションが実行され得ない場合、ステップ５１４で、ローカルセーフティモニターは、セーフティ警告をグローバルセーフティモニター（グローバルセーフティモニター３０５など）に伝達する。上述のように、グローバルセーフティモニターは、ネットワーク化されたコンピューティングノード１８０に常駐している。ステップ５１６において、グローバルセーフティモニターは、グローバルセーフティルールを使用して、伝達されたセーフティ警告の解決策を識別する。ステップ５１８において、ネットワーク化されたコンピューティングノード１８０は、受信されたセーフティ警告と関連付けられたサブユニットについての命令またはコマンドを決定すること、および命令またはコマンドをスレーブロボットアセンブリのカートユニットに送信することによって、受信されたセーフティ警告を解決するために必要なアクションを実行する。カートユニットは、スレーブロボットアセンブリの関連付けられたサブユニットおよびローカルセーフティモニターに、命令またはコマンドを送信する。ローカルセーフティモニターは、特定のセーフティ警告が解決されたとマークし、ステップ５０２のセーフティモニターで再開するように構成され得る。
【０１０３】
次に図６を参照すると、手術ロボットシステム１００の構成要素の構成を用いて、スレーブロボットアセンブリ１９０および／もしくはネットワーク化されたコンピューティングノード１８０の構成要素または他の構成要素間にアクションの実行を割り振るための方法６００が示されている。明確な実施例を示すために、図２の文脈で説明された構成要素は、方法６００を説明する際に使用される。ステップ６０２で、データコントローラ３１５などのデータコントローラが開始され、それは、スレーブロボットアセンブリソフトウェアサブシステム３０９によって受信されたデータを監視する。ステップ６０４において、パケットは、スレーブロボットアセンブリソフトウェアサブシステム３０９において同期ネットワークを介して受信される。いくつかの実施形態では、スレーブロボットソフトウェアサブシステム３０９は、同期ネットワークを介して受信されたパケットを、データコントローラ３１５に送信するように構成される。いくつかの実施形態では、データコントローラ３１５は、同期ネットワークを介してスレーブロボットソフトウェアサブシステム３０９に送信されたパケットのコピーを同時に受信する。ステップ６０６で、データコントローラ３１５は、パケット内のデータと関連付けられたデータタイプを識別する。いくつかの実施形態では、データコントローラ３１５は、データタイプの識別子に基づいてデータタイプを特定するように構成された１つ以上のルールに基づいて、データタイプを識別する。ステップ６０８で、データコントローラ３１５は、パケットにおけるデータと関連付けられた優先度レベルを識別する。上述のように、データコントローラ３１５は、パケット内のデータのデータタイプに基づいて、パケット内のデータと関連付けられた優先度レベルを識別するように構成される。
【０１０４】
ステップ６１０で、データコントローラ３１５は、パケット内のデータと関連付けられた優先度レベルが高優先度閾値を超えているかどうかを決定する。高優先度と関連付けられたデータの実施例には、画像データが含まれるが、これに限定されない。いくつかの実施形態では、様々な優先度レベルに異なる値が割り当てられ、高優先度閾値は、高優先度レベルに割り当てられた値よりもわずかに低い値として特定される。受信したデータと関連付けられた優先度レベルが高優先度閾値を超えているとデータコントローラ３１５が決定した場合、ステップ６２０で、データコントローラ３１５は、非同期ネットワークを介して、パケットで受信したデータをネットワーク化されたコンピューティングノード１８０に送信する。いくつかの実施形態では、データコントローラ３１５は、パケットで受信したデータを送信するために、命令をスレーブロボットアセンブリソフトウェアサブシステム３０９に送信し、スレーブロボットアセンブリソフトウェアサブシステム３０９は、ネットワーク化されたコンピューティングノード１８０に、データを送信する。
【０１０５】
受信したデータと関連付けられた優先度レベルが高優先度閾値を超えていないとデータコントローラ３１５が決定した場合、ステップ６１２で、データコントローラ３１５は、データと関連付けられた優先度レベルが低優先度閾値を下回っているかどうかを決定する。いくつかの実施形態では、低優先度閾値は、低優先度に割り当てられた値よりわずかに高い値として特定される。受信したデータと関連付けられた優先度レベルが低優先度閾値を下回っているとデータコントローラ３１５が決定した場合、データコントローラ３１５は、ローカルアクションルールおよび優先度レベルに基づいて、データに関連するアクションを識別する。ステップ６２４において、データコントローラ３１５は、上述のようにアクションを実行し、そのアクションに基づいて一セットの命令を生成し、ステップ６２６において、データコントローラ３１５は、同期ネットワークを介して、スレーブロボットアセンブリ１９０のサブユニットにパケットを送信する。
【０１０６】
ステップ６１２で、データと関連付けられた優先度レベルが低優先度閾値を下回っているとデータコントローラ３１５が決定した場合、ステップ６１４で、データコントローラ３１５は、データと関連付けられた優先度レベルが中優先度閾値に関連するかどうかを決定する。いくつかの実施形態では、中優先度閾値は、値のある範囲に割り当てられ、例えば、中優先度閾値は、高優先度閾値に割り当てられた値よりも低いすべての値、および低優先度閾値に割り当てられた値よりも高いすべての値を含む。優先度レベルの値が中優先度閾値に割り当てられた値の範囲内にある場合、優先度レベルは、中優先度閾値に関連する。データの優先度レベルが中優先度閾値に関連しない場合、ステップ６１６で、データコントローラ３１５は、パケットをエラーパケットとして識別し、エラー処理を実行する。中優先度に関連しないデータの優先度レベルの実施例には、パケット内の値が未知の値である、もしくは破損している、および／または同様のことが含まれるが、これらに限定されない。エラー処理の一部として、データコントローラ３１５は、パケットの送信者を識別し、ネットワーク化されたコンピューティングノード１８０に、エラーおよび送信者の情報を送信する。いくつかの実施形態では、ネットワーク化されたコンピューティングノード１８０は、エラーおよび送信者の情報の受信に応答して、メッセージおよび／または命令をスレーブロボットアセンブリ１９０に送信して、送信者を再始動するか、または送信者の構成データを再ロードする。
【０１０７】
ステップ６１４において、優先度レベルが中優先度レベルに関連しているとデータコントローラ３１５が決定した場合、データコントローラ３１５は、データに関連するアクションをローカルで実行することができるかどうかを決定する。上述のように、データコントローラ３１５は、データと関連付けられた優先度レベル、データと関連付けられたデータタイプ、およびローカルアクションルールに基づいて、データに関連するアクションをローカルに実行することができるかどうかを決定する。ローカルアクションルールが、データのアクションがローカルで実行され得ないことを特定する場合、方法６００はステップ６２０に進み、データコントローラ３１５は、非同期ネットワークを介して、ネットワーク化されたコンピューティングノード１８０にデータを送信する。ローカルアクションルールが、アクションがローカルで実行され得ることを特定する場合、方法６００はステップ６２２に進み、データコントローラ３１５は、上述のステップ６２２、６２４、および６２６に従って実行する。
【０１０８】
「一実施例では」、「実施例では」、「いくつかの実施例では」、「一実施形態では」、「実施形態では」、「いくつかの実施形態では」、または「他の実施形態では」という語句は、各々、本開示による同じまたは異なる実施形態のうちの１つ以上のことを指す場合がある。「ＡまたはＢ」という形式の語句は、「（Ａ）、（Ｂ）、または（ＡおよびＢ）」を意味する。「Ａ、Ｂ、またはＣのうちの少なくとも１つ」という形式の語句は、「（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、Ｂ、およびＣ）」を意味する。
【０１０９】
本明細書で説明するシステムはまた、１つ以上のコントローラを利用して、様々な情報を受信し、受信した情報を変換して出力を生成することができる。コントローラは、メモリ内に記憶された一連の命令を実行することが可能な、任意のタイプのコンピューティングデバイス、演算回路、または任意のタイプのプロセッサまたは処理回路を含み得る。コントローラは、多数のプロセッサおよび／またはマルチコア中央処理装置（ＣＰＵ）を含んでもよく、マイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、プログラマブルロジックデバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および／または同類のものなどの任意のタイプのプロセッサを含んでもよい。コントローラはまた、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに１つ以上の方法および／またはアルゴリズムを実行させるデータおよび／または命令を記憶するメモリも含んでもよい。
【０１１０】
本明細書で説明される方法、プログラム、アルゴリズム、またはコードのいずれもが、プログラミング言語またはコンピュータプログラムに変換されるか、または表現されてもよい。「プログラミング言語」および「コンピュータプログラム」は各々、本明細書で使用される場合、コンピュータへの命令を特定するために使用される任意の言語を含み、以下の言語およびその派生語（これらに限定されないが）：Ａｓｓｅｍｂｌｅｒ、Ｂａｓｉｃ、Ｂａｔｃｈ  ｆｉｌｅｓ、ＢＣＰＬ、Ｃ、Ｃ＋、Ｃ＋＋、Ｄｅｌｐｈｉ、Ｆｏｒｔｒａｎ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｍａｃｈｉｎｅ  ｃｏｄｅ、オペレーティングシステムコマンド言語、Ｐａｓｃａｌ、Ｐｅｒｌ、ＰＬ１、スクリプト言語、Ｖｉｓｕａｌ  Ｂａｓｉｃ、プログラム自体を特定するメタ言語、およびすべての第１、第２、第３、第４、第５世代、またはそれ以降のコンピュータ言語を含む。また、データベースおよび他のデータスキーマ、ならびに任意の他のメタ言語も含まれる。解釈され、コンパイルされ、またはコンパイルおよび解釈されたアプローチの両方を使用する言語間で、区別はなされない。プログラムのコンパイル済みバージョンとソースバージョンとの間でも、区別はなされない。このため、プログラミング言語が、プログラミング言語が複数の状態（ソース、コンパイル済み、オブジェクト、またはリンク等）で存在し得る、プログラムへの参照は、かかる状態のいずれか、およびすべてへの参照である。プログラムへの参照は、実際の命令および／またはそれらの命令の意図を包含し得る。
【０１１１】
本明細書で説明される方法、プログラム、アルゴリズム、またはコードのいずれも、１つ以上の機械可読媒体またはメモリ上に収容され得る。「メモリ（ｍｅｍｏｒｙ）」という用語は、プロセッサ、コンピュータ、またはデジタル処理デバイス等の機械によって読み取り可能な形式で情報を提供（例えば、記憶および／または送信）する機構を含み得る。例えば、メモリは、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、または任意の他の揮発性または不揮発性メモリ記憶デバイスを含み得る。収容されるコードまたは命令は、搬送波信号、赤外線信号、デジタル信号、および他の同様の信号によって表されることができる。
【０１１２】
上記の説明は、単に本開示の例示的なものであることが理解されるべきである。様々な代替例および変更例が本開示から逸脱することなく当業者によって想到され得る。したがって、本開示は、すべてのこのような代替、修正および変形を包含することが意図される。添付された図面を参照して説明された実施形態は、本開示の特定の実施例を説明するためにのみ提示される。上記および／または添付の特許請求の範囲に説明されたものとは非現実的に異なる他の要素、ステップ、方法および技術はまた、本開示の範囲内にあるように意図される。
【国際調査報告】
2021511888.tif 000009
2021511888.tif 000010
2021511888.tif 000011