(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-04
(54)【発明の名称】ロボットシステムモデリング
(51)【国際特許分類】
G06F 8/70 20180101AFI20240328BHJP
【FI】
G06F8/70
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023548894
(86)(22)【出願日】2022-02-11
(85)【翻訳文提出日】2023-09-19
(86)【国際出願番号】 EP2022053396
(87)【国際公開番号】W WO2022175182
(87)【国際公開日】2022-08-25
(32)【優先日】2021-02-16
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】390040671
【氏名又は名称】ユナイテッド キングドム アトミック エナヂイ オーソリティ
【氏名又は名称原語表記】UNITED KINGDOM ATOMIC ENERGY AUTHORITY
(74)【代理人】
【識別番号】100087480
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】スキルトン,ロバート
(72)【発明者】
【氏名】グッドリフ,マシュー
(72)【発明者】
【氏名】カリスカネリ,イペク
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA32
5B376BB03
5B376BB07
5B376BC14
5B376BC17
5B376BC28
(57)【要約】
本発明は、ロボットシステムをモデリングするためのモデリング装置であって、前記モデルが、リンクで相互接続された定義された型のセットの少なくともサブセットのインスタンスを含み、各インスタンスが前記ロボットシステムの要素の記述であり、前記インスタンス間のリンクがそれらの間の関係を表すモデルを用いて前記ロボットシステムをモデリングし、前記モデルが検証ルールを満たすかどうかを判定することによって検証ルールに照らして前記モデルを検証し、前記検証ルールは、親子関係で相互接続された前記定義された型の1つまたは複数の有向非巡回グラフの定義を含み、前記定義された型がノードに対応し、前記親子関係が前記1つまたは複数の有向非巡回グラフの有向エッジに対応し、各定義された型が、その型のインスタンスが有効であるために満たさなければならない型ルールを定義し、前記一対の型の間の各親子関係が、対応するエッジ方向に従ってそれらの型を互いに対して親型および子型として定義し、各子型が、前記複数の親子関係に従って対応する親型の各々の前記型ルールを継承する。
【特許請求の範囲】
【請求項1】
ロボットシステムをモデリングするためのモデリング装置であって、
モデルを用いて前記ロボットシステムをモデリングするモデラであって、前記モデルは、複数のリンクと相互接続された複数の定義された型のセットの少なくともサブセットの複数のインスタンスを備え、各インスタンスは、前記ロボットシステムの要素の記述であり、前記複数のインスタンス間の前記複数のリンクは、前記インスタンス間の関係を表すモデラと、
前記モデルが複数の検証ルールを満たすかどうかを判定することによって、前記モデルを前記複数の検証ルールに照らして検証する検証部とを備え、
前記複数の検証ルールは、複数の親子関係と相互接続された前記複数の定義された型の1つまたは複数の有向非巡回グラフの定義を含み、前記複数の定義された型が複数のノードに対応し、前記複数の親子関係が前記1つまたは複数の有向非巡回グラフの複数の有向エッジに対応し、各定義された型が、その型のインスタンスが有効であるために満たさなければならないその型の複数の型ルールを定義し、一対の型の間の各親子関係が、対応するエッジ方向に従ってそれらの型を互いに対して親型および子型として定義し、
各子型が、前記複数の親子関係に従って対応する複数の親型の各々の前記複数の型ルールを継承する、
ことを特徴とするモデリング装置。
【請求項2】
各子型は、
その子型が対応する複数の親型の各々を参照することによって対応する複数の親型の各々から継承する前記複数の型ルール、および/または
その子型が対応する複数の親型の各々から継承する前記複数の型ルール以外のその子型に対する各型ルールを定義する、ことを特徴とする請求項1に記載のモデリング装置。
【請求項3】
少なくとも1つの子型は少なくとも2つの親型を有し、および/または
少なくとも1つの子型は少なくとも1つの親型を有し、前記少なくとも1つの親型が少なくとも1つの別の親型を有する子型であり、任意で、前記少なくとも1つの別の親型が少なくとも1つのさらに別の親型を有する子型である、ことを特徴とする請求項1または2に記載のモデリング装置。
【請求項4】
前記複数の検証ルールは、少なくとも1つの特定の定義された型について、前記モデルが有効であるために、前記特定の定義された型のインスタンスが前記モデル内の複数の定義された型の他の複数のインスタンスと共に有さなければならない複数の相互接続を定義する複数の形態学的ルールを含み、
任意で、少なくとも1つの定義された型について、対応する複数の型ルールは、対応する複数の形態学的ルールを含む、ことを特徴とする前記請求項のいずれかに記載のモデリング装置。
【請求項5】
前記モデルが、当該モデルの複数のインスタンスの有向グラフを定義し、前記複数のリンクが複数の有向リンクであり、前記複数のインスタンスが複数のノードに対応し、前記複数のリンクが前記有向グラフの複数のエッジに対応し、各リンクは、各リンクが相互接続する複数のインスタンスのうちの1つによって所有され、前記複数のリンクの方向が、当該リンクを所有するインスタンスに対する当該相互接続された複数のインスタンス間の入力関係または出力関係を表す、ことを特徴とする前記請求項のいずれかに記載のモデリング装置。
【請求項6】
前記複数の定義された型は、複数の記述型を含み、任意で少なくとも1つの機能型も含み、
記述型の各インスタンスは、前記ロボットシステムの対応する要素の現在の状態および/または目標状態を記述し、任意で、
機能型の各インスタンスは、前記ロボットシステムを記述する情報を導き出すため、および/または前記ロボットシステム内の活動をモデリングするために、記述型の相互接続されたインスタンスのデータを操作する方法を記述することを特徴とする前記請求項のいずれかに記載のモデリング装置。
【請求項7】
各インスタンスは、前記モデルの別の1つまたは複数のインスタンスへの対応する複数のリンクの各々を任意で定義するインスタンスデータユニットであり、
任意で、複数のインスタンスデータユニットは、互いに同じ構造化フォーマットを有する、ことを特徴とする前記請求項のいずれかに記載のモデリング装置。
【請求項8】
前記複数の定義された型の1つまたは複数の有向非巡回グラフの定義は、定義された型ごとの型データユニットを含み、
各前記型データユニットは、当該定義された型を定義し、任意で、前記1つまたは複数の有向非巡回グラフのルートノードに対応するルート定義された型以外の各定義された型について、対応する複数の親型の各々に対する親子関係を定義する、ことを特徴とする前記請求項のいずれか1つに記載のモデリング装置。
【請求項9】
複数の型データユニットは、互いに同じ構造化フォーマットを有し、
任意で、前記インスタンスデータユニットの前記構造化フォーマットは、前記型データユニットの前記構造化フォーマットに対応する、ことを特徴とする請求項8に記載のモデリング装置。
【請求項10】
前記モデルおよび/または前記複数の検証ルールを変更し、
前記変更に続けて、前記モデルが前記複数の検証ルールを満たすかどうかを判定することによって、前記複数の検証ルールに照らして前記モデルを検証する、ことを特徴とする前記請求項のいずれかに記載のモデリング装置。
【請求項11】
前記変更が、
前記複数の定義された型のうちの1つの前記複数の型ルール、任意で前記モデルがインスタンスを含む前記複数の定義された型のうちの1つの前記複数の型ルール、または特定の定義された型が複数の型ルールを継承する前記定義された型のうちの1つの前記複数の型ルールであって、前記モデルは前記特定の定義された型のインスタンスを含み、または所定の定義された型から複数の型ルールを継承する前記複数の定義された型のうちの1つの前記複数の型ルールであって、前記モデルは前記所定の定義された型のインスタンスを含み、前記複数の型ルールを変更する処理と、
前記1つまたは複数の有向非巡回グラフの既存の定義された型に対する少なくとも1つの親子関係とともに、前記1つまたは複数の有向非巡回グラフに新しい定義された型を追加する処理であって、任意で、前記新しい定義された型は、特定の既存の定義された型の前記型ルールを継承するように、その特定の既存の定義された型に対する親子関係と相互接続され、前記モデルは、その特定の既存の定義された型のインスタンスを含む、処理と、
前記1つまたは複数の有向非巡回グラフから不要な定義された型を、前記1つまたは複数の有向非巡回グラフの既存の定義された型に対する当該不要な定義された型の親子関係の各々とともに削除し、任意で、前記不要な定義された型から任意の定義された型の複数のルールを継承する当該任意の定義された型を削除する処理であって、任意で、前記不要な定義された型が、前記特定の既存の定義された型ルールを継承するように、特定の既存の定義された型に対する少なくとも1つの親子関係と相互接続されて、前記モデルが前記特定の既存の定義された型のインスタンスを含む、処理と、
前記モデル内の定義された型のインスタンスを変更する処理と、
前記モデルの既存のインスタンスへの少なくとも1つのリンクとともに、定義された型のインスタンスを前記モデルに追加する処理と、
前記モデルの既存のインスタンスへの少なくとも1つのリンクとともに、定義された型のインスタンスを前記モデルから除去する処理と、の少なくとも1つを含む、ことを特徴とする請求項10に記載のモデリング装置。
【請求項12】
前記モデルの各インスタンスは、前記ロボットシステムのロボットの要素および/または前記ロボットシステムのロボットコントローラの記述であり、および/または
前記モデルは、前記ロボットシステム、前記ロボットシステムの前記ロボット、または前記ロボットシステムの前記ロボットコントローラのうちの少なくとも一部の現在の状態および/または目標状態を表す、ことを特徴とする前記請求項のいずれかに記載のモデリング装置。
【請求項13】
前記モデリング装置と前記ロボットシステムとの間の接続のためのインターフェースを備え、前記モデリング装置は、前記モデルの検証を行った後、
前記インターフェースを介して前記ロボットシステムからデータを受信し、前記受信されたデータに基づいて前記モデルを更新し、および/または
前記インターフェースを介して前記ロボットシステムにデータを出力し、前記モデルに基づいて前記ロボットシステムを制御するように構成されている、ことを特徴とする前記請求項のいずれかに記載のモデリング装置。
【請求項14】
互いに通信するように構成された第1および第2のモデリング装置を備えるマルチ装置モデリングシステムであって、前記第1および第2のモデリング装置の各々は、前記請求項のいずれかに記載のモデリング装置であり、
前記第1のモデリング装置は、前記第1のロボットシステムの第1のモデルを用いて前記第1のロボットシステムをモデリングし、前記第2のモデリング装置は、前記第2のロボットシステムの第2のモデルを用いて第2のロボットシステムをモデリングし、
前記マルチ装置モデリングシステムは、
前記第2のモデリング装置の前記検証ルールに照らして前記第1のモデルを検証する処理、および/または
前記第1のモデリング装置の前記検証ルールに照らして前記第2のモデルを検証する処理、および/または
前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分と、前記第2のモデリング装置の前記1つまたは複数の有向非巡回グラフの第2のモデル固有部分との間の互換性を判定する処理によって、前記第1のモデルと前記第2のモデルとの間の相互運用性を判定するように構成されている、ことを特徴とするマルチ装置モデリングシステム。
【請求項15】
前記第1のモデリング装置の1つまたは複数の有向非巡回グラフの少なくとも前記第1のモデル固有部分と、前記第2のモデリング装置の1つまたは複数の有向非巡回グラフの少なくとも前記第2のモデル固有部分とが、
前記第1のモデル固有部分および前記第2のモデル固有部分の両方にある定義された型は、実質的に同一であり、および/または
前記第1のモデル固有部分および前記第2のモデル固有部分の両方にある定義された型が、互いに少なくとも同じ型ルールを定義する、および/または
前記第1のモデル固有部分および前記第2のモデル固有部分が、競合するルールまたは定義された型の競合する階層を定義していない、場合に互換性があると判定するように構成されている、ことを特徴とする請求項14に記載のマルチ装置モデリングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、ロボットシステムモデリングに関する。
【0002】
特に、本開示は、ロボットシステムをモデリング(モデル化)するためのモデリング装置、第1および第2のそのような装置を備えるマルチ装置モデリングシステム、ならびに関連する方法、コンピュータプログラムおよび記憶媒体に関する。モデリングは、ロボットシステムを制御することを含んでもよい。
【背景技術】
【0003】
ロボットは、複雑な一連の動作を自動的に実行することができる自律機械または半自律機械であると考えることができる。ロボットは、外部制御デバイスまたは組み込みコントローラによって誘導されてもよい。1つの有用な例は、グリッパが取り付けられたロボットマニピュレータ(合わせてロボットアーム)である。
【0004】
ロボットシステム(1つ以上のロボットを含むシステム)は、増加する数および範囲のタスクのために使用されている。これは、特に原子力、採鉱、石油化学処理、海底作業などの世界で顕著であり、その結果、これまで以上に複雑なロボット設備が長期間にわたって配置され、維持され、拡張されている。さらに、非構造的、実験的、または未知の運用条件により、システム要件が新しくなったり、変更されたりすることが頻繁にあるため、拡張と適応が必要になる。
【0005】
ロボットシステムをモデリングして、例えば外部システムに対してそれらのロボットシステムを記述または表現すること、および/またはそれらのロボットシステムを制御することが望ましい。
【0006】
既存のモデリングフレームワークは、複雑なロボットシステムの強固な統合を可能にするが、残念ながら、例えば数十年に及ぶ期間にわたる、要求の変化および陳腐化の問題に直面して、高度に効率的な保守および拡張を伴った互換性がない。
【発明の概要】
【0007】
上記の観点から、改良されたロボットシステムモデリングを提供することが望ましい。
【0008】
本開示の第1の態様によれば、ロボットシステムをモデル化するためのモデリング装置が提供される。モデリング装置は、モデルを用いて前記ロボットシステムをモデリングするモデラであって、前記モデルは、複数のリンクと相互接続された複数の定義された型のセットの少なくともサブセットの複数のインスタンスを備え、各インスタンスは、前記ロボットシステムの要素の記述であり、前記複数のインスタンス間の前記複数のリンクは、前記インスタンス間の関係を表すモデラと、前記モデルが複数の検証ルールを満たすかどうかを判定することによって、前記モデルを前記複数の検証ルールに照らして検証する検証部とを備え、前記複数の検証ルールは、複数の親子関係と相互接続された前記複数の定義された型の1つまたは複数の有向非巡回グラフの定義を含み、前記複数の定義された型が複数のノードに対応し、前記複数の親子関係が前記1つまたは複数の有向非巡回グラフの複数の有向エッジに対応し、各定義された型が、その型のインスタンスが有効であるために満たさなければならないその型の複数の型ルールを定義し、一対の型の間の各親子関係が、対応するエッジ方向に従ってそれらの型を互いに対して親型および子型として定義し、各子型が、前記複数の親子関係に従って対応する複数の親型の各々の前記複数の型ルールを継承する。
【0009】
このような装置は、保守性、拡張性および相互運用性の点で有利である。例えば、各子型が対応する複数の親型の各々の複数の型ルールを継承する、親型および子型のそのようなシステムでは、親型におけるルール変更は、その子型(および任意の孫型など)に効率的に影響を及ぼす。さらに、親型の特定のサブセット(すなわち、特定の子型)は、その親型またはその親型の他の子型に影響を及ぼすことなく、ルールに関して更新されることができる。
【0010】
検証ルールで形態学的ルールが表現される場合、構文的な意味と型のオントロジーで表現される結合構造を強制することで、所定のシステムの構造に関して明示的な仮定を行うことができ、相互運用性を促進することができる。
【0011】
本開示の第2の態様によれば、互いに通信するように構成された第1および第2のモデリング装置を備えるマルチ装置モデリングシステムが提供される。前記第1および第2のモデリング装置の各々は、上記第1の態様に記載のモデリング装置であり、前記第1のモデリング装置は、前記第1のロボットシステムの第1のモデルを用いて前記第1のロボットシステムをモデリングし、前記第2のモデリング装置は、前記第2のロボットシステムの第2のモデルを用いて第2のロボットシステムをモデリングし、前記マルチ装置モデリングシステムは、前記第2のモデリング装置の前記検証ルールに照らして前記第1のモデルを検証する処理、および/または前記第1のモデリング装置の前記検証ルールに照らして前記第2のモデルを検証する処理、および/または前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分と、前記第2のモデリング装置の前記1つまたは複数の有向非巡回グラフの第2のモデル固有部分との間の互換性を判定する処理によって、前記第1のモデルと前記第2のモデルとの間の相互運用性を判定するように構成されている。
【0012】
このようなマルチ装置モデリングシステムは、特に相互運用性の点で有利である。第1および第2のモデリング装置はそれぞれ、それらの検証ルールに照らしてそれらのモデルを検証するので、第1のモデルと第2のモデルとの間の相互運用性は、第1のモデリング装置の1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分と、第2のモデリング装置の1つまたは複数の有向非巡回グラフの第2のモデル固有部分との間の互換性を判定することによって判定することができる。さらに、型がルールの継承を有する有向非巡回グラフによって定義される方法のために、互換性を効率的な方法で判定することができる。
【0013】
本開示の第3の態様によれば、ロボットシステムをモデリングする方法が提供される。この方法は、前記ロボットシステムをモデルを使ってモデリングするステップであって、前記モデルが、複数のリンクで相互接続された複数の定義された型のセットの少なくともサブセットの複数のインスタンスを含み、各インスタンスが前記ロボットシステムの要素の記述であり、前記複数のインスタンス間の前記複数のリンクがそれらの間の関係を表す、ステップと、前記モデルが複数の検証ルールを満たすかどうかを判定することによって、前記モデルを前記複数の検証ルールに照らして検証するステップと、を有し、前記検証ルールは、複数の親子関係と相互接続された前記複数の定義された型の1つまたは複数の有向非巡回グラフの定義であって、前記複数の定義された型が複数のノードに対応し、前記複数の親子関係が前記1つまたは複数の有向非巡回グラフの複数の有向エッジに対応し、各定義された型が、その型のインスタンスが有効であるために満たさなければならないその型の型ルールを定義し、一対の型の間の各親子関係が、対応するエッジ方向に従ってそれらの型を互いに対して親型および子型として定義し、各子型が前記複数の親子関係に従って対応する複数の親型の各々の前記複数の型ルールを継承する、定義を備える。
【0014】
本開示の第4の態様によれば、コンピュータプログラムが提供され、このコンピュータプログラムは、コンピュータ上で実行されると、コンピュータに上述の第3の態様の方法を実行させる。
【0015】
本開示の第5の態様によれば、上述の第4の態様のコンピュータプログラムが記憶されたコンピュータ読み取り可能な記憶媒体が提供される。
【0016】
本開示の第6の態様によれば、第1および第2の方法を含む一連の方法が提供される。前記第1および第2の方法の各々は、上述の第3の態様に記載の方法であり、前記第1の方法は、前記第1のロボットシステムの第1のモデルを用いて前記第1のロボットシステムをモデリングし、前記第2の方法は、前記第2のロボットシステムの第2のモデルを用いて前記第2のロボットシステムをモデリングし、前記一連の方法は、さらに、前記第1のモデルと前記第2のモデルとの間の相互運用性を、前記第2の方法の前記検証ルールに照らして前記第1のモデルを検証するステップ、および/または前記第1の方法の前記検証ルールに照らして前記第2のモデルを検証するステップ、および/または前記第1の方法の前記1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分と、前記第2の方法の前記1つまたは複数の有向非巡回グラフの第2のモデル固有部分との間の互換性を判定するステップによって判定することを含む。
【0017】
本開示の第7の態様によれば、1つまたは複数のコンピュータ上で実行されると、1つまたは複数のコンピュータに上述の第6の態様の一連の方法を実行させる一連のコンピュータプログラムが提供される。
【0018】
本開示の第8の態様によれば、上述の第7の態様の一連のコンピュータプログラムが記憶されたコンピュータ読み取り可能な記憶媒体が提供される。
【0019】
本開示の第9の態様によれば、上述の第1の態様によるモデリング装置、または上述の第2の態様によるマルチ装置モデリングシステムを備えるロボットシステムが提供される。対応する方法の態様、コンピュータプログラムの態様、及び記憶媒体の態様も想定される。
【0020】
一態様の特徴は、別の態様に適用されてもよく、逆もまた同様である。
【0021】
上述した態様によれば、既存の技術の限界が解決される。特に、既存のロボットシステムモデリング技術における保守性、拡張性、および相互運用性の限界が解決される。
【0022】
これら及び他の態様は、以下に記載される実施形態を参照することにより明らかになるであろう。
【図面の簡単な説明】
【0023】
ここで、実施形態が、以下の図面を参照して、単なる例として説明される。
【
図1】
図1Aは、本発明を実施するロボットシステムの概略図である。
図1Bは、本発明を実施するロボットシステムの概略図である。
【
図2】
図2は、本発明を実施するモデリング装置の概略図である。
【
図3】
図3は、ロボットシステムのモデルの概略図である。
【
図4】
図4は、
図3のモデルの一部を簡略化した図であり、形態学的ルールを理解するのに有用な図である。
【
図5】
図5は、
図3のモデルの一部を簡略化した図であり、形態学的ルールを理解するのに有用な図である。
【
図6】
図6はモデル部分の概略図であり、形態学的ルールを理解するためにも有用な図である。
【
図7】
図7は、例示的な定義された型の簡略化された有向非巡回グラフを提示する。
【
図8】
図8は、
図7の有向非巡回グラフよりも、定義された型のより広範な有向非巡回グラフを示す。
【
図9】
図9は、インスタンスデータユニットの概略図であり、その構造化されたフォーマットを示す。
【
図10】
図10は、型データユニットの概略図であり、その構造化されたフォーマットを示す。
【
図11】
図11は、第1および第2のモデリング装置を備えるマルチ装置システムの概略図である。
【
図13】
図13は、互いに互換性のある2つの型グラフを示す。
【
図14】
図14も、互いに互換性のある2つの型グラフを示す。
【
図15】
図15は、互いに互換性のない2つの型グラフを示す。
【
図16】
図16も、互いに互換性のない2つの型グラフを示す。
【
図17】
図17は、
図2のモデリング装置が一連のループサイクルで動作してもよいことを理解するのに有用な方法の概略図である。
【
図19】
図19は、本明細書で説明される装置または方法のうちのいずれかを実装するために使用されてもよいコンピューティング装置のブロック図である。
【発明を実施するための形態】
【0024】
以下の説明は、本開示による例示的な実施形態を記載する。さらなる例示的な実施形態および実装形態は、当業者には明らかであろう。さらに、当業者は、様々な同等の技術が、以下で論じられる実施形態の代わりに、またはそれと併せて適用されてもよく、すべてのそのような同等物が、本開示によって包含されると見なされるべきであることを認識するべきである。
【0025】
序論として、原子力遠隔操作のようなアプリケーションをサポートすることができる制御システムソフトウェアの開発が直面する問題は、相互運用性、保守性、拡張性、および性能の4つの主なカテゴリーに分類することができる。本明細書で開示される実施形態は、規格化された自己記述データ表現および関連する通信プロトコルの使用を通じて、長期的な保守性および拡張性の問題を解決することを目的としている。
【0026】
制御システムが、様々なサプライヤからのハードウェアを統合する際に必要とされる様々な特注インターフェースをサポートし、同時に統合の労力を削減するためには、高レベルの相互運用性が望ましい。本明細書に開示された実施形態によって提供されるミドルウェア内の標準インターフェースによって、システムの様々な構成要素が、基本的なレベル、すなわちシステム内のデータおよび機能性の発見および探索において相互運用可能であることが明らかになるであろう。
【0027】
さらに、フレームワークアーキテクチャによって実装される設計および構造における高レベルのモジュール性は、システムの残りの部分への影響を最小限に抑えながら、システムの構成要素を交換することを可能にする。このモジュール性はさらに、システムの既存の構成要素を変更することなく追加の機能性を追加することを可能にする。影響を受ける構成要素を最小限に抑えながら、システムの能力を拡張する能力は、高度に凝集し、疎結合で、粒度の高いアーキテクチャによって達成される。
【0028】
図1Aは、ロボット20とロボットコントローラ30とを備えるロボットシステム10Aの概略図である。
【0029】
この例では、ロボット20は、グリッパ24が取り付けられたロボットマニピュレータ22(合わせてロボットアーム)として示されている。アームは複数のジョイント26を備え、グリッパは同様にジョイント28を備える。ロボットコントローラ30による制御下で、特にジョイント26および28の制御下で、ロボット20の動きが制御されてもよい。当然ながら、ロボットアーム22、24はロボットの単純な例であり、本明細書に開示される技術は任意の型のロボットに適用されてもよいことが理解されるであろう。
【0030】
場合によっては、ロボット20とロボットコントローラ30の組み合わせ自体をロボットと呼ぶこともある。さらに、ロボットシステム10Aでは、簡略化のために1つのロボット20のみが示されているが、ロボットシステム10Aは複数のロボットから構成されてもよく、それらのロボットは互いに異なる型であってもよい。従って、本明細書で検討するロボットシステムのモデルは、場合によっては、複数のロボットから構成されるロボットシステムのモデルに対応することがあり、それらのロボットは互いに異なる型であってもよい。同様に、本明細書におけるロボットへの言及は、場合によっては、複数のロボットへの言及と見なされることがあり、それらのロボットは互いに異なる型であることがある。
【0031】
ロボットコントローラ30は、モデリング装置100を備えるものとして示されているが、その詳細については後述する。このように、ロボットシステム10Aは本発明を具体化する。いくつかの構成では、モデリング装置100は、ロボットシステムを表現または記述するという意味でロボットシステムをモデリング(モデル化)することができる。いくつかの構成では、モデリング装置100は、ロボットシステム10A、特にロボット20を制御することができる。モデリング装置100は、もちろん、それ自体をモデリングする必要はなく、したがって、モデリング装置は、ロボットシステム10Aとは別個であり、ロボットシステム10Aを備えるより大きなシステムの一部であると考えられてもよい。
【0032】
図1Bは、ロボットシステム10Bの概略図であり、ロボットシステム10Bは、モデリング装置100がロボット20およびロボットコントローラ30とは別に設けられ、通信可能に接続されている点を除いて、ロボットシステム10Aと同じである。前述と同様に、また実線および破線の矢印によって示されるように、いくつかの構成では、モデリング装置100は、ロボットシステムを表現または記述するという意味でロボットシステムを単にモデリングしてもよく、いくつかの構成では、モデリング装置100は、ロボットシステム、特にロボット20を追加的に制御してもよい。
【0033】
モデリング装置100は、もちろん、それ自体をモデリングする必要はなく、したがって、モデリング装置100は、ロボットシステム10Aまたは10Bとは別個であり、ロボットシステム10Aまたは10Bを備えるより大きなシステムの一部であるとみなさられてもよい。別の言い方をすれば、モデリング装置100は、ロボットシステム10Aまたは10Bをモデリングするものであって、それ自体をモデリングするものではないとみなすこともできる。
【0034】
図2は、モデリング装置100の概略図である。実行例として、モデリング装置100は、ロボットシステム10A(ロボットシステム10Aおよび10Bのうちの代表的な1つとして)をモデリングするためのものであると考えられる。
【0035】
モデリング装置100は、モデラ120と、モデル検証部140と、検証ルール160とを備える(ただし、ルールはモデリング装置100の外部に格納され、それによってアクセス可能であってもよい。モデリング装置100は、コンピュータ支援装置とみなされてもよく、またはコンピューティング装置を含んでもよく、例えば、コンピュータ上で、ソフトウェアで、ハードウェアで、またはソフトウェアとハードウェアの組合せで実装されてもよい。
【0036】
モデラ120は、ロボットシステム10Aをモデルでモデリングするように構成されている。この点に関して、モデラ120は、モデルを制御し、実行し、取り扱い、または維持するとみなすことができる。モデラ120は、モデルを実行し、動作させ、または実装するとみなすことができる。モデルは、ロボットシステム10Aをシミュレートまたはエミュレートまたは表現または記述するとみなされてもよい。
【0037】
これに関して、ロボットシステム10A、特にロボット20および/またはロボットコントローラ30のモデル200の概略図である
図3を参照する。単に簡略化のために、ロボットマニピュレータ22は(
図1Aのような2つのジョイント26ではなく)1つのジョイント26を有し、グリッパ24は1つのジョイント28を有すると仮定する。
【0038】
モデル200は、リンク220(ボックスを相互接続する矢印によって表される)と相互接続された定義された型のインスタンス210(ボックスによって表される)を含み、各インスタンスは、ロボット20もしくはロボットコントローラ30の要素、または単にロボットシステム10Aの要素の記述である。モデル200は、ロボットシステム10Aの現在の状態および/または目標状態を表すかまたは記述する。単に
図3が過密になるのを避けるために、インスタンス210のすべておよびリンク220のすべてに参照符号が付されているわけではなく、同様の考察が他の図にも適用される。
【0039】
インスタンス210間のリンク220は、インスタンス210間の関係(情報の流れを含む)を表す。各インスタンスには、その名前(太字)と、その下にそのインスタンスである定義された型(太字以外)が表示される。この文脈では、インスタンスは、当該型を持つデータユニットまたはアイテムまたはブロックの例または発生とみなすことができる。
【0040】
図3に示すように、モデル200は、そのインスタンス210の有向グラフ(または単にグラフ)を定義し、リンク220は有向リンクであり、インスタンス210はノードに対応し、リンク220は有向グラフのエッジに対応する。
【0041】
また、この時点で、インスタンス210のいくつかが狭い縁幅のボックスで表され、他のインスタンスが広い縁幅のボックスで表されることに注目すべきである。縁幅の狭いボックスで表されるインスタンス210は、記述型のインスタンス210であり、縁幅の広いボックスで表されるインスタンス210は、機能(または能動)型のインスタンスである。
【0042】
記述型と機能型の違いについては後で詳しく説明するが、現在の目的では、記述型の各インスタンスは、ロボットシステム10Aの要素の現在の状態および/または目標状態を記述し、機能型(または能動型)の各インスタンスは、ロボットシステムを記述する情報を導出するため、および/またはロボットシステム10A内の活動をモデリングするために、記述型の相互接続されたインスタンスのデータを操作する方法を記述する。
【0043】
各リンクは、それが相互接続するインスタンス210の1つによって「所有」され、リンク220の方向は、明らかになるように、当該リンク220を所有するインスタンス210に対する、当該相互接続インスタンス210間の「入力関係」または「出力関係」を表す。ボックス内の矢じり(矢の先端)は、関係の所有者を表し、すなわち、矢じりを含むボックスは、入力関係または出力関係の所有者であり、関連するルールを実行する責任がある。
【0044】
リンクの方向は、その方向が当該リンクを所有するインスタンスに向かう方向を指す場合、当該リンクを所有するインスタンスに対する当該相互接続インスタンス間の入力関係を表す。リンクの方向は、その方向が当該リンクを所有するインスタンスから離れる方向を指す場合、当該リンクを所有するインスタンスに対する当該相互接続されたインスタンス間の出力関係を表す。
【0045】
例えば、リンクの所有者が機能型のインスタンスである場合、そのリンクは、当該相互接続インスタンス210間の「入力関係」または「出力関係」を表すことができる。例えば、その方向がその所有者インスタンスに向かう方向を指すそのようなリンクでは、その他のインスタンスは、その所有者インスタンスの入力として機能する(または入力である)。同様に、その方向が所有者インスタンスから離れる方向を指すそのようなリンクでは、その他のインスタンスは、その所有者インスタンスの出力として機能する。
【0046】
別の言い方をすれば、その方向がその機能的所有者インスタンスに向かう方向を指す少なくとも1つのリンクでは、その所有者インスタンスに関する入力情報は、そのリンクの他のインスタンスにおいて表されるか、またはそのリンクの他のインスタンスからそのリンクを介して読み取られる。同様に、その方向がその機能的所有者インスタンスから離れる方向を指す少なくとも1つのリンクでは、その所有者インスタンスの出力情報は、そのリンクの他のインスタンスにおいて表されるか、またはそのリンクの他のインスタンスにそのリンクを介して書き込まれる。
【0047】
一方、リンクの所有者が記述型のインスタンスである場合、そのリンクは、当該相互接続されたインスタンス210間の「所有関係」または「構造的関係」を表すことがある。例えば、そのようなリンクの所有者インスタンスは、そのリンクの他のインスタンスを「含む」または「有する」と理解することができる。
【0048】
具体的な例を挙げると、
図3に戻り、最上部のインスタンス210は「ロボットアーム」と名付けられ、型は「アーム」であり、実質的にロボット20全体を表している。そして、このインスタンスは、型「シリアルマニピュレータ」の「KUKA LBR iiwa」と名付けられたインスタンス210と、型「グリッパ」の「Robotiq 2-フィンガグリッパ」と名付けられたインスタンス210とに別々に接続されている。
【0049】
KUKA LBR iiwaは、KUGA AG社から現在入手可能な便利なシリアルマニピュレータの一例です。LBRは「Leichtbauroboter」(ドイツ語で軽量ロボット)を表し、iiwaは「インテリジェント産業作業アシスタント」を表す。Robotiq 2-フィンガグリッパも同様に、現在Robotiq社から入手可能な便利なグリッパの一例です。
【0050】
これらのインスタンス210は記述型のインスタンスであり、それらを相互接続するリンク220は、それらのリンクの所有者に対して定義された「has a」または「contains a」関係(すなわち、所有関係または構造的関係)を示す。「ロボットマニピュレータ」と名付けられ、型「アーム」の最上位インスタンス210に対してこれらのリンクに定義された入力関係があり、所有関係または構造的関係を表す。したがって、アームは、シリアルマニピュレータおよびグリッパを有するかまたは含むものと理解される。シリアルマニピュレータおよびグリッパは、実質的に、アームのサブ構成要素であるか、またはアームは、実質的に、シリアルマニピュレータおよびグリッパの(またはシリアルマニピュレータおよびグリッパを備える)アセンブリである。この関係は、モデル200の一部の簡略図(インスタンスの名前は省略されている)である
図4により明確に示されている。
【0051】
同様に、
図3を見ると、シリアルマニピュレータおよびグリッパは両方とも、それらのそれぞれのジョイントにおいて回転軸を「有し」、これは、「ジョイント」と名付けられ、型「回転軸」のインスタンス210によって示されている。ただし、「KUKA LBR iiwa」と名付けられたインスタンス210は、「ジョイント」と名付けられた2つのインスタンス210にリンクされており、「Robotiq 2-フィンガグリッパ」と名付けられたインスタンス210についても同様である。
【0052】
各場合において、回転軸インスタンスの一方は、データがロボットシステム10Aの(具体的には関連するジョイント26または28の)現在の状態に関連する入力インスタンスとして機能し、それら回転軸インスタンスの他方は、データがロボットシステム10Aの(具体的には関連するジョイント26または28の)所望の状態または要求された状態または目標状態に関連する出力インスタンスとして機能する。この関係は
図5に示されており、
図5はモデル200の一部の簡略図である(インスタンスの名前は省略されている)。それにもかかわらず、回転軸インスタンスとシリアルマニピュレータおよびグリッパインスタンスとの間のこれらのリンクにおいて、シリアルマニピュレータおよびグリッパインスタンスに対する入力関係(所有関係または構造的関係を表す)が定義されている。
【0053】
図5に注目すると、
図3の回転軸インスタンスの下に接続されたインスタンスは、汎用機能型「[機能]」の1つの機能インスタンス210として簡略化されている(理由は後で明らかになる)。したがって、例えば、シリアルマニピュレータの回転軸は、「入力」回転軸インスタンス210のデータによって表される現在位置を有し、「出力」回転軸インスタンス210のデータによって表される目標位置を割り当てられてもよい。そして、汎用機能型「[機能]」の1つの機能インスタンス210は、シリアルマニピュレータの回転軸の現在位置を入力として、シリアルマニピュレータの回転軸の目標位置を出力として生成する処理(所望の活動をシミュレートする)を実行するように構成される場合がある。リンクの破線の矢印の理由はここでは無視するが、後で説明する。
【0054】
ここで注目すべきは、
図5に示す機能型「[機能]」インスタンスが存在する必要はなく、
図3のモデル200の対応する機能型インスタンス(およびそれらの機能インスタンスのいくつかを相互接続して示すデカルト概念インスタンス)についても同様であることである。例えば、モデル200は、ロボットシステム10Aを制御しようとせずに、ロボットシステム10Aを表現または記述してもよい。例えば、
図3の型「シリアルマニピュレータ」の「KUKA LBR iiwa」インスタンスを考慮すると、その回転軸インスタンスの一方は、データがロボットシステム10Aの現在の状態に関連する入力インスタンスとして機能し、それらの回転軸インスタンスの他方は、先に説明したように、データがロボットシステム10Aの所望の状態または要求された状態または目標状態に関連する出力インスタンスとして機能する。しかしながら、それらのインスタンスのデータは、モデルが、自身の制御を実行するロボットコントローラ30(モデリング装置100ではない)によって提供される現在の状態および要求された状態または目標状態を記述するように、ロボットシステム10Aから実質的に「読み取られる」ことがある。
【0055】
図6の上半分には、「入力」、「出力」、「処理」のインスタンスを含むモデル部分が示されており、(処理を実行する)機能型のインスタンスと(ロボットシステム10Aのその要素の状態を記述する)記述型の入出力インスタンスとの間の入出力関係が示されている。ここでは、汎用機能型「[機能]」は、(処理を実行する)型「プロセッサ」の具体例に置き換えられており、記述型の入出力インスタンスは、高レベル型「概念」のインスタンスとして示されており、この場合、(例えば物理的な構成要素を表すのではなく)ロボットシステムの態様を記述する純粋なデータを表している。リンクの破線矢印や多矢印の理由は、ここでも無視するが、後で説明する。
【0056】
このモデル部分と、
図5の簡略化モデルのグリッパ部分とは、
図3のモデル200のグリッパ部分に戻って関連付けることができる。特に、「Robotiq 2-フィンガグリッパ」というインスタンス210は、「ジョイント」と名付けられ、「回転軸」という型の2つのインスタンス210にリンクされており、これらは、「回転軸コントローラ」という型の、「グリッパコントローラ」と名付けられた機能インスタンスに連結されている。左側の回転軸インスタンスは回転軸コントローラインスタンスの入力として機能し、右側の回転軸インスタンスは出力として機能する。従って、回転軸コントローラインスタンスは、例えば、グリッパの回転軸の現在の向き(左側の回転軸インスタンスによって表される)を入力として使用し、その後、グリッパの回転軸の目標向き(その後、右側の回転軸インスタンスによって表される)を(後述するいくつかの制御入力に基づいて)出力することができる。
【0057】
図6の下半分には、上半分に示されたモデル部分の具体例が示されており、これは、
図3のモデル200のシリアルマニピュレータ部分により密接に関連している。この具体例では、入力インスタンスは軸概念のインスタンス(例えば軸の現在の向きを表す)であり、出力インスタンスはデカルト概念のインスタンス(例えばその軸の先端の現在の位置を表す)である。この例の機能インスタンスは、順運動学機能型のインスタンスであり、その方向に基づいて軸先端の現在位置を効果的に計算する。制御理論に精通している者が認識するように、この場合の順運動学の目的は、そのジョイント/軸位置を使用してマニピュレータの先端位置を導出することである。
【0058】
ここで、
図3のモデル200自体のシリアルマニピュレータ部分に戻ると、「KUKA LBR iiwa」と名付けられたインスタンス210は、「ジョイント」と名付けられ、型「回転軸」である2つのインスタンス210にリンクされている。左側の回転軸インスタンスは、「KUKA FK」と名付けられた順運動学インスタンスを介して、「先端位置」と名付けられた先端位置インスタンス(現在の状態を記述する入力インスタンス)にリンクされている。同様に、右側の回転軸インスタンスは、「KUKA IK」と名付けられた逆運動学インスタンスを介して、「先端位置」と名付けられた別の先端位置インスタンス(目標状態を記述する出力インスタンス)にリンクされている。
【0059】
2つの先端位置インスタンスは、型「デカルトコントローラ」の「マニピュレータコントローラ」と名付けられた機能インスタンスに連結されている。左側の先端位置インスタンスは入力として機能し、右側の先端位置インスタンスは出力として機能する。従って、デカルトコントローラインスタンスは、マニピュレータの回転軸の現在の先端位置(左側の先端位置インスタンスによって表される)を入力として使用し、マニピュレータの回転軸の目標先端位置(その後、右側の先端位置インスタンスによって表される)を(後述するいくつかの制御入力に基づいて)出力することができる。順運動学インスタンスは、上記のように、入力された現在の向きに基づいて軸先端の現在位置を効果的に計算し、同様に逆運動学インスタンスは、入力された目標軸先端位置に基づいて軸の目標向きを効果的に計算する。
【0060】
図2に戻ると、モデル検証部140は、モデル200がそれらのルール(のすべて、または少なくともいくつか)を満足するか、満たすか、または準拠するかを判定することによって、モデル200を検証ルール160に照らして検証する(妥当性を検査または評価する)ように構成されている。
【0061】
検証ルール160は、親子関係と相互接続された定義された型の1つまたは複数の有向非巡回グラフ(または単にグラフ、または有向グラフ、または非巡回グラフ)の定義を含み、定義された型はノードに対応し、親子関係は1つまたは複数の有向非巡回グラフの有向エッジに対応する。次に、定義された各型は、その型のインスタンスが有効であるために満たさなければならないその型の型ルールを定義する。さらに、一対の型の間の各親子関係は、それらの型を、対応するエッジ方向に従って互いに対応する親型および子型として定義する。
【0062】
親子関係の効果は、各子型がその親型の各々のルールを継承する(または、有する、含む、定義する、吸収する、または引き継ぐ)ことである。すなわち、各子型は、それらのルール自体を明示的に定義する(すなわち、繰り返す)必要なしに、(その親型からの導出もしくは継承、またはその親型への参照によって)その親型の各々のルールを有するかまたは含むと解釈される。
【0063】
これに関して、親子関係320(ボックスを相互接続する矢印によって表される)と相互接続された例示的に定義された型310(ボックスによって表される)の簡略化された有向非巡回グラフ300を示す
図7を参照する。有向非巡回グラフ300は、定義された型のすべてが記述型であるという点で簡略化されているとみなすことができる。したがって、先に示した記述インスタンス210との一貫性のために、記述型は、縁幅の狭いボックスで表される。
【0064】
有向非巡回グラフ300は、すべての型に共通のルールが表現されたルート型(またはベース型)を先頭とする。次いで、このルート型は、2つの子型、すなわち、放射線に強い機器型(すなわち、高レベルの放射線によって引き起こされる損傷または誤動作に耐性がある機器を表す)およびマニピュレータ型に対する親型であることが示される。事実上、これらの後者の2つの型は、ルート型の異なる型またはサブセットである。したがって、放射線に強い機器型およびマニピュレータ型は両方とも、それらの親型、この場合はルート型のルールを継承する(つまり、自身のルールの中に持っているとみなされる)。
【0065】
同様に、マニピュレータ型は、シリアルマニピュレータ型とパラレルマニピュレータ型という2つの子型の親型であることが示されている。事実上、後者の2つの型はマニピュレータ型の異なる型またはサブセットである。したがって、シリアルマニピュレータ型とパラレルマニピュレータ型はともに、親型、この場合はマニピュレータ型のルールを継承する(すなわち、自身のルールの中にマニピュレータ型のルールを含むとみなされる)(そして、グラフの上位にある継承によって、ルート型のルールも継承される)。
【0066】
完全を期すために、放射線に強い機器型およびシリアルマニピュレータ型は両方とも、子型、すなわち放射線に強いシリアルマニピュレータ型に関して親型であることが示されている。事実上、放射線に強いシリアルマニピュレータ型は、放射線に強い機器型およびシリアルマニピュレータ型の両方の特定の型またはサブセットである。したがって、放射線に強いシリアルマニピュレータ型は、その親型のそれぞれのルール、この場合は放射線に強い機器型およびシリアルマニピュレータ型のルールを継承する(すなわち、それ自体のルールの中に有すると考えられる)(また、グラフの上位の継承によって、放射線に強い機器型、マニピュレータ型、およびルート型のルールも継承する)。
【0067】
したがって、検証ルール160は、当該有向非巡回グラフによって定義されるように、型によるルールの多重継承を可能にする。各子型は、それ自身の内部でそれらのルールを言葉通りに繰り返すのではなく、各親型を参照することによって、その子型が各親型から継承する型ルールを定義する。これによって、例えば、親型におけるルールの変更が、そのすべての子型(および孫型など)に効率的に影響するようになる。各子型は、その子型が各親型から継承する型ルールを超えて、その子型のための各型ルールをそれ自身の中で定義する。これにより、親型やその親型の他の子型に影響を与えることなく、親型の特定のサブセット(つまり特定の子型)のルールを更新することができる。多重継承が実装される場合、少なくとも1つの子型は少なくとも2つの親型を有する。複数の世代が階層で表現されてもよい(
図7のように、例えば祖父母-親-子)。
【0068】
ここで、
図8を参照すると、定義された型310(ボックスで表される)が親子関係320(ボックスを相互接続する矢印で表される)で相互接続された、より充実した(または、より大きい、または、より広範な)有向非巡回グラフ400が示されている。有向非巡回グラフ400は、機能型と記述型の両方から構成され、
図3のモデル200(この例では、定義された型のセットのサブセットのインスタンスから構成される)の検証をサポートするのに十分な定義された型(例えば、定義された型のセット)から構成されるという点で、有向非巡回グラフ300と比較して充実しているとみなすことができる。先に示したインスタンス20との一貫性を保つため、記述型は縁幅の狭いボックスで表され、機能型(または能動型)は縁幅の広いボックスで表されている。
【0069】
有向非巡回グラフ300と同様に、有向非巡回グラフ400は、すべての型に共通のルールが表現されてもよいルート型(またはベース型)を先頭とする。機能型と記述型の両方が存在する場合、このルート型は、縁幅の狭いボックスと縁幅の広いボックスの両方で表される。このルート型は、4つの記述子型、すなわち、マニピュレータ、概念、サブシステム、およびHID(ヒューマンインターフェースデバイス)型と、2つの機能型、すなわち、プロセッサおよびプロセッサコーディネータ型とに対する親型であることが示されている。
【0070】
マニピュレータ型は、4つの子型、すなわちシリアルマニピュレータ、1自由度マニピュレータ、グリッパ、およびパラレルマニピュレータに対する親型である。
【0071】
シリアルマニピュレータ型は、前述のように「KUKA LBR iiwa」として知られる特定の型のシリアルマニピュレータの親型である。したがって、「KUKA LBR iiwa」型はシリアルマニピュレータ型のサブセット(またはサブ型)と理解される。もちろん、「KUKA LBR iiwa」はシリアルマニピュレータの型の単なる一例である。
【0072】
1自由度マニピュレータ型とグリッパ型は、前述のように多重継承を実装する2-フィンガグリッパ型の親型であることが示されている。グリッパ型は3-フィンガグリッパ型の親型でもある。したがって、2-フィンガグリッパ型は1自由度マニピュレータとグリッパ型の両方のサブセット(またはサブ型)であり、3-フィンガグリッパ型はグリッパ型のみのサブセットであると理解される。
【0073】
ロボットシステムの態様を記述する純粋なデータを表す概念型は、3つの子型、すなわち、軸概念型、デカルト概念型、およびデジタルIO概念型の親型である。軸概念型は、2つの子型、すなわち直線軸概念型および回転軸概念型の親型である。サブシステムおよびHID型は、それぞれ、アーム型およびHTC Viveハンドセット型に対する親型である。したがって、HTC Viveハンドセット型は、HTC社から現在入手可能なHTC Viveハンドセットに対応する特定の型のHIDである。もちろん、HTC Viveハンドセットは、HIDの型の一例に過ぎないものである。
【0074】
プロセッサ型は、4つの子型、すなわち順運動学型、逆運動学型、コントローラ型および概念コーディネータ型の親型である。順運動学型および逆運動学型は、それぞれ、KUKA順運動学型およびKUKA逆運動学型の親型であり、これらは、KUGA AG社の製品に特有の機能性を表し、したがって、便利な例として提供されている。コントローラ型は、2つの子型、すなわち軸コントローラ型とデカルトコントローラ型の親型である。次に、軸コントローラ型は、2つの子型である回転軸コントローラ型と直線軸コントローラ型の親型である。
【0075】
最後に、プロセッサコーディネータ型、概念コーディネータ型、およびコントローラ型は、それぞれ、プロセッサセレクタ型、概念セレクタ型、およびデカルトコントローラ型の親型である。
【0076】
ちなみに、逆運動学型および順運動学型、異なる型のコントローラおよび概念(データ)コーディネータは、すべてプロセッサ型に分類されるが、プロセッサコーディネータ型は、例として、提供された階層内のプロセッサセレクタ型にのみ関連付けられている。基本的に、運動学モジュールは、物体の運動および運動を提供するために必要とされる力を扱う。
【0077】
もちろん、有向非巡回グラフ400は、有向非巡回グラフ300と比較してより完全(またはより大きく、またはより広範囲)であると考えられるが、任意の数の定義された型が、別の、任意選択でより完全な(またはより大きく、またはより広範囲の)有向非巡回グラフで表されてもよいことが理解される。また、有向非巡回グラフ400は、関連する定義された型(記述型および機能型を含む)を備える1つの有向非巡回グラフとして示されているが、定義された型を、記述型(例えば、有向非巡回グラフ300に類似する)用のものおよび機能型用のものなど、複数の有向非巡回グラフで表すことも可能である。したがって、検証ルールは、定義された型の1つまたは複数の有向非巡回グラフの定義を含み、本開示はそれに応じて解釈されることが理解される。定義された型が2つ以上の有向非巡回グラフの組合せによって定義される場合、それらのグラフは、それら自体の別個のルート型を有してもよく、または共通の共有ルート型を有してもよい。
【0078】
本構成では、検証ルール160は、少なくとも1つの特定の定義された型について、モデルが有効であるために、その特定の定義された型のインスタンスが、モデル(モデル200など)内の定義された型のセットの少なくともサブセットの他のインスタンスと共に有さなければならない相互接続を定義する形態学的ルールも含む。このような形態学的ルールは、いくつかの構成では提供されなくてもよい。
【0079】
形態学は、もちろん形状および構造の研究である。本フレームワークまたは構成内では、オントロジー(定義された型およびそのインスタンス)を使用して、ドメイン固有情報の共通構造を構築し、分散および再使用して明示的な仮定を行う。したがって、ロボット工学および制御システムのオントロジーは、型のインスタンスおよび型自体(それらの階層を含む)によって表される、ロボット工学および制御システム要素の構成要素に意味論的意味を提供するために使用される。一方、形態学(モルフォロジー)は、構文論的意味を強制するためのルールセットと、オントロジーで表現される構成要素型への結合構造とを提供するために使用され、分散構成要素間の運用の成功を達成し、与えられたシステムの構造に関して明示的な仮定を行うことを可能にし、相互運用性を促進する。
【0080】
オントロジーにおいて提供される定義された型は、機能性や構造だけでなく、表現されるデータや外部インターフェースも定義する。オントロジーで示される構成要素の文脈における関係は、他の構成要素(要素)への接続を定義する。型は、構成要素が(その特定の型とみなされるために)持たなければならない関係だけでなく、構成要素に関係する構成要素の数(最小、最大、または絶対値)も定義でき、関係する構成要素が持たなければならない特定の型も定義できる。これらの関係ルールの結果、システムは特定の形態学を形成し、それは共通の型を使用するすべてのシステム間で一貫している。これらの形態学は、
図4に示すような構造的なものと、
図6に示すような挙動的なものという、2つの異なるグループのいずれかに分類される傾向がある。
【0081】
構造的形態学は、記述インスタンスの物理的な対応物が実際にどのように接続されるかを記述するために使用されるか、または複数の粒状の記述インスタンスを互いの下で構成するために(例えば、入れ子関係を表すために)使用される。
【0082】
例えば、
図4を見ると、アームは、物理的アセンブリを記述するためにどのように関係を使用できるかの例である。この例では、アームは物理的にシリアルマニピュレータとグリッパとを備えている。これは、シリアルマニピュレータ(例えばKUKA LBR iiwa)およびグリッパ(例えばRobotiq 2-フィンガグリッパ)から構成される場合、ロボット構成要素がロボットアーム(例えば
図3のモデル200を参照)とみなされることを意味する。これは、2つの例示的な関係ルールを使用して達成される。第1のルールは、アームはシリアルマニピュレータ型の入力関係を持たなければならないというもので、第2のルールは、アームはグリッパ型の入力関係を持たなければならないというものである。これは、アーム型のインスタンスは、シリアルマニピュレータ型のインスタンスとグリッパ型のインスタンス、およびそれらを接続するように構成された関係(リンク)がなければ、モデル200のようなモデルに追加することができないことを意味する。これにより、本フレームワークとその構成要素構造によるモデルは、これらの構造を認識し探索することができるため、非常に発見しやすく、ナビゲートしやすくできる。
【0083】
同様に、HTC Viveハンドセットは、1つのデカルト概念と1つ以上の(多対1の記号で示される)デジタルIO概念を(関係性を介して)組み合わせることによって記述することができる。これらの構成要素を使用して、(追跡システムによって提供される)3D空間におけるHTC Viveハンドセットの位置、およびそのボタンの状態を記述することができる。モデリングされているHTC Viveハンドセットの状態を完全に知ることができる前に、個々の構成要素の状態を最初に評価しなければならないので、これらの関係は両方ともHTC Viveハンドセット型のインスタンスの入力である。
図4のアームの例と同様に、これらの関係ルールは、モデル200のようなモデル内で認識可能で期待される構造を作成することを可能にし、グループを文脈化し、意味論的意味を導き出すために使用することができる。
【0084】
図4では、アーム構造形態学的ルールが視覚的に図示されているとみなされる。ボックス内の矢じり(矢の先端)は、先ほどのルールの所有権を示す。矢じりを含むボックスは、形態学的ルールの所有者であり、関連するルールを実装する責任がある。
【0085】
挙動形態学は、記述インスタンスと機能(能動)インスタンスとを組み合わせるときに作成され、したがって、ロボットシステム10Aなどのロボットシステムを単に表すのではなくロボットシステムを制御することを考慮するときに有用である(
図1Bの実線矢印および破線矢印を想起されたい)。
【0086】
図6の上半分には、記述インスタンスと機能インスタンスをどのように併用できるかを示す簡単な例として、プロセッサの例が示されている。この例は、概念およびプロセッサの基本的な型を使用しており、特に機能的な目的はないが、特定の型のインスタンスが従うことができるテンプレートを確立するために使用されている。プロセッサ型は、以下の3つの関係または形態学的ルールの第1番目および第3番目を定義するものとして示されている。1)プロセッサ型のインスタンスは、概念型の1つ以上の(点線および1対多の記号で示される)入力関係を有することができ、2)プロセッサ型のインスタンスは、プロセッサ型の1つ以上の入力関係を持つことができ、3)プロセッサ型のインスタンスは、概念型の少なくとも1つの(実線および1対多の記号で示される)出力関係を有してなければならない。これら3つの関係ルールは挙動上の理由から存在し、プロセッサ型のインスタンスが機能することを保証するために存在する。第1のルールは、プロセッサに入力を提供することである。これは、プロセッサが「オープンループ」であり、したがって任意である場合には、必要とされない場合がある。第2のルールは、プロセッサが機能するために最初に完了する必要があるサブプロセスを許容するためのものである。これも必要ない場合があるため、任意である(
図6には示されていない)。第3のルールは、プロセッサに出力を提供することである。出力がない場合、プロセッサはシステムの状態に寄与せず、したがって冗長であるため、これは必須である。
【0087】
したがって、そのような形態学的ルールは、モデルが有効であるために、特定の定義された型のインスタンスがモデル内の定義された型の他のインスタンスとともに有さなければならない相互接続を定義することが理解される。このような形態学的ルールは、それぞれの型の型ルールにおいて定義されてもよいし、別々に定義されてもよく、いくつかの構成において提供されなくてもよい。そのようなルールの例を上に示したが、もちろん、型のインスタンスの多くの他の相互接続されたグループがルールにおいて定義されてもよい。
図5は、そのような一例を示しており、ロボット構成要素は、シリアルマニピュレータおよびグリッパ(前述のように)から構成され、それぞれが回転軸を有し、各回転軸が、機能インスタンスによって接続されてもよい(破線矢印によって示される)入力インスタンスおよび出力インスタンスを有する場合、ロボット構成要素はロボットアームと見なされる。
【0088】
機能は、形態学的ルールによって定義される形態学において明白であり、暗示されてもよいことに留意されたい。例えば、
図6の下部の順運動学の例は、上部に示されたプロセッサ形態学のあまり抽象的でない例である。この場合、包括的な概念型は、より具体的な軸概念型およびデカルト概念型によって継承されているが、軸概念およびデカルト概念の両方が概念型から継承されるので(
図8参照)、この変更は依然として、ベースとなるプロセッサ型によって確立された形態学的ルールを満たす。したがって、子型は親型から形態学的ルールを継承することができる。順運動学インスタンスは、1つまたは複数の軸概念インスタンス(この場合はジョイント位置)を入力とし、1つのデカルト概念インスタンス(この場合は先端位置)を出力として生成するため、ジョイント位置を使用してマニピュレータの先端位置を導出する順運動学の目的は、形態学において明らかである。先に説明した構造形態学と同様に、これらの挙動形態学は、全体的なフレームワーク内で一貫性があり、発見可能で、ナビゲート可能な構造を作成するのに役立つ。
【0089】
図3に戻ると、各ノードが定義された型310のインスタンス210を表すことが想起される。本構成では、各インスタンスは、モデル200の別のインスタンスへのリンクを任意に定義するインスタンスデータユニットとして実装される。
【0090】
概して、各インスタンスデータユニット(シンプレックスと呼ばれることがある)は、それがインスタンスである定義された型の指示と、型付けされたデータとを含む。各インスタンスデータユニットは、1つ以上のサポートされたコマンドのステータスの定義をさらに含んでもよい。有利なことに、インスタンスデータユニットは、互いに同じ構造化フォーマットを有することができる。
【0091】
任意である能動制御を考慮に入れると、インスタンスデータユニット500は、当該インスタンスまたは相互接続されたインスタンスのデータを操作するために実行されるタスクを定義する拡張データユニット(図示せず)に関連付けられる可能性がある。インスタンスデータユニット500と拡張データユニットとの組合せは、それ自体が(インスタンスデータユニット500に対して拡張された)拡張または拡張データユニットと見なされてもよいが、能動制御が実装されるかどうかにかかわらず、インスタンスデータユニット500が互いに同じ構造化フォーマットを有することが有利な場合がある。
【0092】
より詳細には、本構成では、インスタンスデータユニットは、内部データ表現のために同じフォーマットを使用し、互いに同じ外部インターフェースを有する。このデータ表現は、通信プロトコルの一部として使用して、単一制御システムの分散構成要素が互いの事前知識なしにデータを交換することを可能にすることができる。これは、例えば、モデル200などのモデル(例えば、制御システムとして動作する)が、他の分散構成要素を修正することなく、新しいハードウェアおよび制御特徴を組み込むように成長することができることを意味する。
【0093】
インスタンスデータユニット500は、データを定義すること、入出力関係を記述すること、機能性を呼び出すこと、システム(の一部)を表すこと、能動要素(すなわち、コントローラ)を制御すること、またはシステム内の他のインスタンスデータユニットと通信することを含む、制御システム内の機能性を促進する。
【0094】
図9は、インスタンスデータユニット500の概略図であり、その構造化フォーマットを示している。典型的なインスタンスデータユニット500である「s
m ∈ S」は、情報の自己完結型ユニットであり、タプル(または順序付けられ、定義されたリスト)である。
s
m = <type
m,id
m,data
m,rlsp
m,cmd
m,cmdbox
m>
ここで、
・type
mは、
図9の型に対応し、当該型グラフ(例えば、有向非巡回グラフ400)からの型を参照する一意の識別子である。インスタンスデータユニット500は、参照された型(および前述のように継承によるその祖先)において、または参照された型のため表されたすべての検証ルールを満たさなければならない。
・id
mは、
図9のパスおよびIDに対応し、当該インスタンスデータユニット500を識別する一意の識別子である。パスは、インスタンスデータユニット500のグループ化/組織化を可能にすることができる。
・data
mは、
図9のデータに対応し、参照された型においてまたは参照された型のために表された検証ルールによって定義される、所定のデータ型のデータ項目の識別子/値のペアを含む。値は、例えば、int、float、boolまたはstring値であってもよく、配列を含んでもよい。
・rlsp
mは、
図9の関係に対応し、例えば情報を取得したりコマンドを呼び出したりするために、識別子/パスのペアとして他のインスタンスデータユニット500への1つ以上のリンク210を定義する(それによってモデル200などのモデル全体を定義する)。リンクは配列で定義することができ、前述のように方向を有することができる(例えば、入力/出力の関係を表す)。また、リンクは、先に述べた形態学的関係を表現する(および形態学的ルールを実装する)関連型を有する。
・cmd
mは、
図9のコマンドに対応し、識別子/可用性ペアと呼ばれる1つまたは複数のコマンドおよびそれらの可用性を定義する。コマンドは、タスクまたは変更を実行するために呼び出すことができる機能とみなすことができる。コマンドは、呼び出しと共に送信される応答パラメータのリストで宣言することができ、完了時に応答パラメータを返すことができ、パラメータは、データ型を有することができ、配列とすることができる。
・cmdbox
mは、
図9のコマンドメールボックスに対応し、コマンドを交換するための規格化されたインターフェースである。コマンドメールボックスは、インスタンスデータユニット500に(他のインスタンスデータユニットによって)送信されたコマンドのキューを含むことができる。各コマンドは、一意の番号または識別子、要求パラメータ値、応答パラメータ値、および状態(例えば、保留、送信、受信、成功、失敗など)を有することができる。
【0095】
前述したように、能動制御を考慮すると、インスタンスデータユニット500は、当該インスタンスまたは相互接続されたインスタンスのデータを操作するために実行されるタスクを定義する拡張データユニット(図示せず)と関連付けられてもよい。
【0096】
このような場合、タプルは、(インスタンスデータユニット500とは別個に)以下に定義するように拡張されていると考えることができる。
・taskmは、システム全体の各ループサイクルで実行される機能を定義する(後でより詳細に説明する)。
【0097】
インスタンスデータユニット500と並んで、型データユニット600(シンプレックスと呼ばれることもある)がある。
図10は、型データユニット600の概略図であり、構造化されたフォーマットを示している。
【0098】
定義された型の1つまたは複数の有向非巡回グラフ(例えば、有向非巡回グラフ400を参照)は、定義された型310ごとに型データユニット600を備え、各前記型データユニットは、当該定義された型を定義し、任意で、1つまたは複数の有向非巡回グラフのルートノードに対応するルート定義された型以外の各定義された型について、その親型の各々に対する親子関係を定義する。
【0099】
概して、各型データユニット600は、その定義された型310の指示と、定義された型のインスタンスのデータ型データが存在しなければならない少なくとも1つのデータ型の定義とを備えている。各型データユニット600は、1つまたは複数のサポートされるコマンドのステータスが、定義された型310のインスタンス210内でどのように表現されなければならないかの定義をさらに備えていてもよい。有利なことに、型データユニット600は、互いに同じ構造化フォーマットを有していてもよい。
【0100】
さらに、インスタンスデータユニット500の構造化フォーマットは、型データユニット600の構造化フォーマットに対応してもよく、これは
図9と
図10を比較すればわかる。これにより、規格化された(しかし拡張可能な)データユニットまたはブロックが得られ、ブロック間の規格化されたデータ交換が保証される。規格化された情報交換は、規格化されたインターフェースによって保証され、または可能になる。所定の構造のデータユニットを継承階層のさまざまなレベルで使用できるため、規格化だけでなく、多形性(ポリモーフィズム)の形態での拡張も可能になる。これは、オントロジー型システムを使用する利点のひとつである。
【0101】
図10を見ると、ID部分は、当該型310を識別する一意の識別子である。データルール部分は、識別子/定義ペアを含み、各定義は、(その型の)インスタンスデータユニット500が、指定されたデータ型および、オプションとして最小および/または最大配列サイズを有するデータ項目を含まなければならないことを強制するルールである。関係ルール部分は、同様に、識別子/定義ペアを含み、各定義は、(その型の)インスタンスデータユニット500が(特定のデータ型を有する)1つまたは複数のリンクを、オプションとして、最小および/または最大の配列サイズの配列で定義しなければならないことを強制するルールであり、形態学的ルールに対応する。コマンドルール部分は、識別子/定義ペアを含み、各定義は、要求および/または応答パラメータ定義のリストを含むルールである。そして、各パラメータ定義は、(その型310の)インスタンスデータユニット500が、特定のデータ型のパラメータを持つコマンドを、オプションとして最小および/または最大配列サイズの配列で定義しなければならないことを強制する。
【0102】
親型部分は、有向非巡回グラフ400のように、有向非巡回グラフにおいて型310を互いに連結することができる。前述のように、子型は、それらの親型のルールを継承し、多重継承を実装するため、子型1つにつき1つ以上の親型が許可される。祖先型から継承されたルールを含むすべてのルールは、その型310のインスタンスデータユニット500(すなわちインスタンス210)によって満たされなければならない。
【0103】
上述したように、モデリング装置100は、当該ロボットを表現するために採用することはできるが、制御することはできない。しかしながら、モデリング装置100は、当該ロボット20(又はロボットシステム10A)を能動的に制御するために採用することもできる。例えば、そのような能動制御は、
図5の「[機能]」インスタンス(複数のインスタンスの組み合わせを表してもよい)の能動機能性において適用されてもよく、その出力は、当該「出力」回転軸インスタンスの要求データ又は目標データとなり、次いで、ロボット20(又はロボットシステム10A)に適用されて制御される。もちろん、特定のアプリケーションでは、任意の複雑な能動機能性を実装することができる。
【0104】
この点に関して、モデリング装置100は、モデリング装置100とロボットシステム10Aとの間の接続のためのインターフェースを備えてもよく、モデリング装置100は、モデル200の検証後、インターフェースを介してロボット20からデータ(例えば、制御信号と呼ばれてもよい信号またはデータ信号)を受信し、受信したデータに基づいてモデルを更新し、および/または、モデル200に基づいてロボット20(またはロボットシステム10A)を制御するために、インターフェースを介してロボット20(またはロボットシステム10A)にデータを出力するように構成される。一例として、モデリング装置100が、ロボット20(またはロボットシステム10A)を制御するのではなく、当該ロボット20(またはロボットシステム10A)を表現または記述するために採用される場合、モデル200は、記述型のインスタンスのみ、または記述型のインスタンスおよび利用可能な機能型のサブセットのインスタンス(例えば、ロボット20(またはロボットシステム10A)を制御することなく、先端位置に関する情報を発見するために、すなわち先端位置を記述するために、順運動学型を含む)のみから構成されてもよい。
【0105】
特に
図3、
図8、
図9、および
図10を振り返ると、定義された型(
図8参照)のオントロジーを持つ規格化されたインスタンスデータユニット500(
図9)および型データユニット600(
図10)を使用することにより、最小限の再利用可能なユニットに関連する粒度レベルで、モデル(
図3参照)に共通のビルディングブロックを採用できることが理解されるだろう。
【0106】
自己記述分散データモデルの背後にある概念は、ソフトウェアオントロジーおよび形態学的技術に関連付けられた、定義された型310を有するインスタンス210上に構築される。オントロジーは、ロボットおよび制御システムの構成要素に意味論的意味を提供し、形態学的ルールは、構文をシステム内で表される構成要素に関連付ける。
【0107】
(定義された型および関連する型ルールで表される)オントロジーは、ドメイン知識の共通かつ一貫した使用を保証し、ドメインの仮定を明示することを可能にする。例えば、モデリング装置100(この文脈では、エージェントと呼ばれることがある)のマルチ装置システムがある場合、検証ルール(型ルール、およびオプションとして形態学的ルール)が実行前に共有されていれば、モデル(モデル200など)は、モデリング装置100をまたがるモデル間の相互運用性を保証する方法で検証することができる。実行時に、モデリング装置100は、共有されたオントロジー(および共有されたモデル)で表された知識を使用して明示的な仮定を行うことができ、その結果、モデリング装置100間で分散されたドメイン知識の一貫した再利用が保証される。
【0108】
検証ルール(型モデルまたはルール、およびオプションで形態学的ルール)を例えば実行時に配布することで、事前の知識は必要ない。また、検証ルールは、あらかじめ決められた型を使用するのではなく、特定の用途のために完全にカスタマイズすることができる。2つのモデリング装置100(エージェント)が相互運用する必要がある場合、それらの型モデル内の型は互いに矛盾してはならないが、モデル全体は同一である必要はない。
【0109】
次の例を考える:エージェントAは軸型を宣言し、位置、速度、および加速度データを含む。エージェントBは軸型を宣言しているが、位置、速度、およびトルクデータを含むこと述べている。これらの2つのエージェントは、軸型の定義に同意していないため、相互運用できない。
【0110】
しかし、次にこの例を考える:エージェントAは先ほどと同じように軸型を宣言する。エージェントBは、エージェントAと一致する定義を持つ軸型を宣言するが、軸を継承し、トルクデータを含むとする別の型も宣言し、それをトルクを有する軸と呼ぶ。これらの2つのエージェントは、どの型の定義においても競合しないため相互運用が可能であるが、エージェントBは軸型を拡張して必要なデータを含めることができる。これは、エージェントBがシステムにデータを追加できることを意味するだけでなく、エージェントAは一方が他方から継承するので、軸型のインスタンス用に設計された任意のインターフェースでトルクを有する軸型のインスタンスを使用することもでき、したがって、軸型からのすべての必要な情報を含まなければならないことを意味する。
【0111】
図11は、互いに通信するように構成された第1および第2のモデリング装置100-1および100-2からなるマルチ装置システム700の概略図である。第1および第2のモデリング装置100-1および100-2の各々は、
図2と同様にモデリング装置100とみなすことができる。もちろん、マルチ装置システム700は、互いに通信するように構成された2つ以上のモデリング装置100を備えてもよい。
【0112】
説明を容易にするために、
図2のモデラ120、モデル検証部140および検証ルール160は、モデリング装置100-1および100-2に明示的に示されていない。代わりに、
図3のモデル200および
図8の型グラフ400に焦点を当てる。
【0113】
したがって、第1のモデリング装置100-1は、モデル200に対応する第1のモデル200-1と、型グラフ400に対応する第1の型グラフ400-1とを備えるように示されている。同様に、第2のモデリング装置100-2は、モデル200に対応する第2のモデル200-2と、型グラフ400に対応する第2の型グラフ400-2とを備えるように示されている。
【0114】
第1のモデリング装置100-1は、ここでは第1のエージェントまたは第1のクラスタとして見なされてもよく、同様に、第2のモデリング装置100-2は、ここでは第2のエージェントまたは第2のクラスタとして見なされてもよい。したがって、例えば、第1のモデリング装置100-1は、第1のロボットシステム10A-1(図示せず)のものとされた第1のモデル200-1を制御し、第2のモデリング装置100-2は、第2のロボットシステム10A-2(これも図示せず)のものとされた第2のモデル200-2を制御する。
【0115】
図11に示されるように、第1および第2のモデリング装置100-1および100-2は、それぞれ第1および第2の通信インターフェース800-1および800-2を備え、したがって、互いに通信するように構成される。ここでは、第1のモデリング装置100-1と第2のモデリング装置100-2とがパブリッシャ・サブスクライバの関係にあり、第1のモデリング装置100-1がパブリッシャであり、第2のモデリング装置100-2がサブスクライバであるものとする。この意味で、第1のモデリング装置100-1は「ローカル」装置とみなすことができ、第2のモデリング装置100-2は「リモート」装置とみなすことができる。
【0116】
サブスクライバとしての役割において、第2のモデリング装置100-2は、第1のロボットシステム10A-1の第1のモデル200-1と第2のロボットシステム10A-2の第2のモデル200-2との間の相互運用性を判定するように構成される。この目的のために、第1および第2のモデリング装置100-1および100-2は、
図11に示すように、第2のモデリング装置100-2(サブスクライバとして動作する)が第1のモデリング装置100-1(パブリッシャとして動作し、第1のモデル200-1および第1の型グラフ400-1を利用可能にする)から第1のモデル200-1(第1のロボットシステム10A-1を記述する)および第1の型グラフ400-1を取得するように、第1および第2の通信インターフェース800-1および800-2を介して通信する。
【0117】
なお、上述したように、第1のロボットシステム10A-1の能動制御を可能にするために、いくつかの構成において第1のモデル200-1を「拡張」することが可能である。しかしながら、
図9に関連して説明したように、そのような能動制御は、インスタンスデータユニット500において表現される必要はない(そして、いくつかの構成においては、有利には表現されない)。そのような場合、第1のモデル200-1は、拡張モデル200-1EX(任意であるとして、
図11において括弧で示される)とみなされてもよいが、非拡張第1のモデル200-1(拡張モデル200-1EXではない)は、第2のモデリング装置100-2に対して第1のロボットシステム10A-1を単純に記述するように、第2のモデリング装置100-2に通信されるものであってもよい。インスタンスデータユニット500に沿って、非拡張モデルが通信されるモデルであることで、規格化されたデータユニットおよびインターフェースの利点は、マルチ装置システム間での迅速な相互運用性の観点から享受される(すなわち、1つのモデリング装置が、別のモデリング装置によって実行される能動制御を気にする必要がない)。
【0118】
もちろん、同様に、第2のモデル200-1は、いくつかの構成において、拡張モデル200-2EXであってもよい。
【0119】
先に説明したように、第1および第2のモデリング装置100-1、100-2の各々は、そのモデルがその検証ルールを満たすかどうかを判定することによって、その検証ルールに照らしてそのモデルを検証するように構成されており、これは
図11に示されている。具体的には、第1のモデリング装置100-1は、第1の型グラフ400-1(その装置の検証ルールを表す)に照らして第1のモデル200-1(または200-1EX)を検証するように構成され、第2のモデリング装置100-2は、第2の型グラフ400-2(その装置の検証ルールを表す)に照らして第2のモデル200-2(または200-2EX)を検証するように構成される。このようにして、第1および第2のモデリング装置100-1、100-2は、上記の教示に従って、互いに独立して動作することができる。
【0120】
しかしながら、さらに、マルチ装置モデリングシステム700は、第2のモデリング装置100-2の検証ルールに照らして第1のモデル200-1を検証すること、および/または第1のモデリング装置100-1の検証ルールに照らして第2のモデル200-2を検証すること、および/または第1のモデリング装置100-1の1つまたは複数の有向非巡回グラフ400-1の少なくとも第1のモデル固有部分と第2のモデリング装置100-2の1つまたは複数の有向非巡回グラフ400-2の第2のモデル固有部分との間の互換性を判定することによって、第1のモデル200-1と第2のモデル200-2との間の相互運用性を判定するように構成されている。
【0121】
図11の例では、第2のモデリング装置100-2は、示されるように、第1の型グラフ400-1と第2の型グラフ400-2との間の互換性を判定することによって、相互運用性を判定するように構成されている。
【0122】
第1および第2の型グラフ400-1および400-2は、
図8の型グラフ400と同様に、それぞれのモデリング装置の完全な「装置レベル」型グラフであるとみなすことができる。実際、これは、2つのモデリング装置(したがって、それらのモデル)間の「完全な」相互運用性を判定する方法である。しかしながら、相互運用性を判定するためのより効率的な方法は、第1および第2のモデル200-1および200-2を動作させるのに必要な程度までこれを行うことであってもよい(そして、他のルール(すなわち、影響を受けず、したがって、テストまたは照合する必要のないルール)を満足または満たしていると「みなす」または仮定する)。
【0123】
この目的のために、第1の型グラフ400-1は、第1のモデリング装置100-1の1つ以上の有向非巡回グラフの第1のモデル固有部分とみなされてもよく、各ルートノードに対応する各ルート定義された型、第1のモデル200-1内の複数のインスタンスを有する定義された型のすべて、および親子関係を介してそれらの間に接続されている各他の定義された型を含む第1のモデリング装置100-1の1つ以上の有向非巡回グラフの部分であってもよい。
図12は、そのようなモデル固有の第1の型グラフ400-1(MS)の概略図であり、
図8の型グラフ400の型のすべてを含まない(したがって、
図8の型グラフ400のルールのすべてを表さないと見なされてもよい)ことが分かる。例えば、
図8の型グラフ400は、定義された型(およびそれらの関連付けられたルール)のセットを定義すると見なされてもよく、
図12の型グラフ400-1(MS)は、定義された型(およびそれらの関連付けられたルール)のセットのサブセットを定義すると見なされてもよい。いくつかの構成では、そのセット自体が、定義された型のより大きなセットのサブセットであってもよい。第1のモデリング装置100-1は、第1のモデリング装置100-1の1つまたは複数の有向非巡回グラフの第1のモデル固有部分を生成するように構成されてもよい。
【0124】
第2の型グラフ400-2は、同様に、第2のモデリング装置100-2の1つまたは複数の有向非巡回グラフの第2のモデル固有部分400-2(MS)と見なされてもよく、第2のモデリング装置100-2の1つまたは複数の有向非巡回グラフの一部であって、各ルートノードに対応する各ルート定義された型、第2のモデル200-2に複数のインスタンスを有する定義された型のすべて、および親子関係を介してそれらの間に接続されている各他の定義された型を備えてもよいことが理解される。第2のモデリング装置100-2自体は、第2のモデリング装置100-2の1つ以上の有向非巡回グラフの第2のモデル固有部分を生成するように構成されてもよい。
【0125】
インスタンスデータユニット500および型データユニット600の構造化されたフォーマットは、第1および第2のモデリング装置100-1および100-2の間で同一または実質的に同一であってもよいことは注目に値する。これにより、マルチ装置システム700全体で規格化された(しかし拡張可能な)データユニットまたはブロックが実現され、ブロック間および第1および第2のモデリング装置100-1、100-2間での規格化されたデータ交換が保証される。
【0126】
マルチ装置モデリングシステム700は、第1のモデリング装置100-1の1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分と、第2のモデリング装置100-2の1つまたは複数の有向非巡回グラフの少なくとも第2のモデル固有部分とが、それらの部分の両方にある定義された型が実質的に同一であるか、または少なくとも同じ型ルールを互いに定義する場合、またはそれらの部分が競合するルールまたは定義された型の競合する階層を定義しない場合、互換性があると判定するように構成される。
【0127】
原理的には、第1のモデリング装置100-1または第2のモデリング装置100-2のいずれかが、第1のモデリング装置100-1の1つまたは複数の有向非巡回グラフの第1のモデル固有部分と、第2のモデリング装置100-2の1つまたは複数の有向非巡回グラフの第2のモデル固有部分との間の互換性を判定することができる。しかしながら、
図11の場合、第2のモデリング装置100-2は(サブスクライバとして機能する)、第1および第2の型グラフ400-1、400-2(装置レベルまたはモデル固有グラフである)間の互換性を判定する。
【0128】
ちなみに、例えば第1のモデリング装置100-1だけを例にとると、その装置は、
図8の装置レベルグラフ400に相当する検証ルールのすべてに対してではなく、
図12のモデル固有グラフ400-1(MS)に相当する検証ルールのサブセットを使用して、そのモデルがそれらのルールを満たすかどうかを判定することによって、その検証ルールに照らしてそのモデル200-1を検証することができる。すなわち、他のルール、すなわち、影響を受けず、したがって、テストまたは照合する必要のないルールは、満たされたまたは満たされていると仮定またはみなしてもよい。
【0129】
互換性を考慮すると、
図13は、2つの型グラフが同一の定義された型を有するので、互いに互換性がある2つの型グラフを示す。
図14は、2つの型グラフの両方にある定義された型が同一であるので、互いに互換性のある2つの型グラフを示す。型Aのみがこれらのグラフ間で共通であるが、示された他の型は2つのグラフ間で競合しないことは事実である。
【0130】
一方、
図15は、型Bと型B’とが実質的に同一でない(互いに同じでない)ために互換性のない2つの型グラフを示しており、したがって、型Dと型Eのルールは2つの型グラフ間で異なる可能性がある。
図16はまた、型GおよびG’が実質的に同一でない(互いに同じでない)ので、互いに互換性のない2つの型グラフを示す。ここで、型GおよびG’は、同じ型であるものとして効果的に識別される(したがって、両方が同じ文字によって示される)が、G’がCおよびHから継承し、GがCからのみ継承するので、何らかの点で互いに異なると仮定される。G’が型Fなどのような型Gとは完全に異なる型である場合、2つの型グラフは互換性がある。
【0131】
図2に戻って、
図17は、モデリング装置100が一連のループサイクル910において動作してもよいことを理解するのに有用な高レベル方法900の概略図である。
【0132】
各ループサイクルにおける動作は、モデリング装置100の内部クロック信号に同期させることができるチック信号(同期信号)によってトリガされる。したがって、各ループサイクル910において、チック信号が待機され(920)、その後、更新が読み取られる(930)。
【0133】
任意の更新(930)の読み取りは、モデリング装置100-2などの遠隔モデリング装置からデータを読み取ること、および/またはモデリングされているロボットシステム10Aからデータを読み取ることを含んでもよい。このようにして、現在の状態データ値をモデル200の記述インスタンス210に投入することができる。
【0134】
モデリング装置100がロボットシステム10Aの制御を実行し、モデル200が機能(能動)インスタンス210を有する場合、関連インスタンス210に関連付けられたタスクは、モデルのインスタンス間の関係によって決定される順序で実行されてもよい(940)。
【0135】
次いで、任意の更新を書き込むことができる(950)。これは、ロボットシステム10Aを制御するために、モデリング装置100-2などの遠隔モデリング装置にデータを書き込むこと、および/またはモデリングされているロボットシステム10Aにデータを書き込むことを含んでもよい。
【0136】
図18は、本発明を実施する高レベル方法960および970の概略図であり、本明細書で開示される実施形態を理解するためにも有用である。
【0137】
方法960は、モデリング装置100、またはモデリング装置100-1および100-2のいずれかによって使用されることができる。モデリング装置100を例にとると、方法960は、ロボットシステム10Aをモデリングする方法であり、モデル200を用いてモデリングするステップであって、モデル200が、前述のようにリンク220と相互接続された定義された型310のセットの少なくともサブセットのインスタンス210を含むステップと、モデル200が検証ルール160を満たすかどうかを判定することによって、モデル200を検証するステップとを含む。
【0138】
方法970は、第1および第2のモデリング装置100-1および100-2、またはモデリング装置100-1および100-2のいずれかを備えるマルチ装置システム700によって用いられてもよい。示されるように、方法970は、モデリング装置ごとに、方法960のインスタンスを含む。例えば、
図18の上段の方法960-1が第1のモデリング装置100-1に対応し、下段の方法960-2が第2のモデリング装置100-2に対応してもよい。
【0139】
加えて、方法970は、
図11に関連して説明されるように、第1のロボットシステムのモデルと第2のロボットシステムのモデルとの間の相互運用性を判定することを含む。これは、第1のモデリング装置100-1または方法960-1の検証ルールに照らして第1のロボットシステムのモデル200-1を検証すること、および/または第2のモデリング装置100-2または方法960-2の検証ルールに照らして第2のロボットシステムのモデル200-2を検証すること、および/または第1のモデリング装置100-1または方法960-1の1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分と第2のモデリング装置100-2または方法960-2の1つまたは複数の有向非巡回グラフの第2のモデル固有部分との間の互換性を判定することを含むことができる。
【0140】
要約すると、
図11および
図18を見ると、本発明は、互いに通信するように構成された第1および第2のモデリング装置を備えるマルチ装置モデリングシステムとして具現化され得ることがわかる。もちろん、システムを構成する第1および第2のモデリング装置の例は、単に便利な実行例にすぎず、任意の数のモデリング装置(例えば、2つ、3つ、4つ、またはそれ以上)がシステムに設けられてもよい。
【0141】
第1および第2のモデリング装置の各々は、ロボットシステムをモデリングするためのものであり、ロボットシステムをモデルを使ってモデリングし、モデルがそれらの検証ルール(例えば、
図8および
図10参照)を満たすかどうかを判定することによって、それらの検証ルールに照らしてモデルを検証するように構成されてもよい。モデル(例えば
図3参照)は、リンクで相互接続された定義された型のセットの少なくともサブセットのインスタンス(例えば
図9参照)を備え、各インスタンスはロボットシステムの要素の記述であり、インスタンス間のリンクはそれらの間の関係を表す。ここで、前述と同様に、ロボットシステムは、1つまたは複数のロボットであるか、または1つまたは複数のロボットを備えるとみなされてもよい。
【0142】
第1および第2のモデリング装置の各々について、一例として
図8を見ると、検証ルールは、親子関係で相互接続された定義された型の1つまたは複数の有向非巡回グラフの定義、定義された型はノードに対応し、親子関係は1つまたは複数の有向非巡回グラフの方向エッジに対応する、を備えていてもよい。各定義された型(例えば
図10参照)は、その型のインスタンスが有効であるために満たさなければならないその型の型ルールを定義し、一対の型の間の各親子関係は、対応するエッジの方向に従って、それらの型を互いに対して親型および子型として定義し、各子型は、親子関係に従って、その親型の各々の型ルールを継承する。
【0143】
図11を参照すると、実行例において、第1のモデリング装置は、第1のロボットシステムの第1のモデルを用いて第1のロボットシステムをモデリングすることができ、第2のモデリング装置は、第2のロボットシステムの第2のモデルを用いて第2のロボットシステムをモデリングすることができる。
【0144】
第1および第2のモデリング装置の各々について、定義された型の1つまたは複数の有向非巡回グラフの定義は、定義された型ごとに型データユニット(例えば
図10参照)を備えていてもよく、各前記型データユニットは、当該定義された型を定義し、1つまたは複数の有向非巡回グラフのルートノードに対応するルート定義された型以外の各定義された型について、その親型の各々に対する親子関係を定義する。さらに(例えば
図10参照)、各型データユニットは、その定義された型の指示と、定義された型のインスタンスのデータが有効であるためにどのデータ型でなければならないかの少なくとも1つのデータ型の定義とを含んでいてもよい。さらに、定義された型は、(少なくとも)記述型を含んでいてもよく、記述型の各インスタンスは、ロボットシステムのその要素の現在の状態および/または目標状態を記述する。さらに、各インスタンスは、モデルの別の1つまたは複数のインスタンスへのリンクの各々を定義するインスタンスデータユニット(例えば
図9参照)であってもよく、各インスタンスデータユニットは、それがインスタンスである定義された型の指示と、型付けされたデータとを含む。さらに、検証ルールは、少なくとも1つの特定の定義された型に対して、モデルが有効であるために、その特定の定義された型のインスタンスがモデル内の定義された型の他のインスタンスと共に有さなければならない相互接続を定義する形態学的ルールを含むことができる。
【0145】
第1および第2のモデリング装置の両方について、型データユニットは互いに同じ構造化フォーマットを有してもよく、インスタンスデータユニットは互いに同じ構造化フォーマットを有してもよく、インスタンスデータユニットの構造化フォーマットは型データユニットの構造化フォーマットに対応してもよい。
【0146】
この点に関して、インスタンスデータユニットは、少なくともある程度、同じ構成要素部分(個別のまたは区切られたセクション、フィールド、カプセル化された部分)を有するという意味で、互いに同じ構造化フォーマットを有することができる。例えば、
図9を見ると、全てのインスタンスデータユニットは、「パス」、「ID」、「型」、「データ」、および「関係」部分の内容がインスタンスデータユニットごとに異なる可能性がある場合であっても、これらの部分を有することがある。例えば、
図10を見ると、すべての型データユニットは、「ID」、「親型」、「データルール」、および「関係ルール」部分の内容が型データユニットごとに異なり可能性がある場合であっても、これらの部分を有する場合がある。さらに、インスタンスデータユニットの構造化フォーマットは、両方のフォーマットが構成要素部分(セクション、フィールド、カプセル化された部分)を定義し、型データユニットの構成要素部分が、インスタンスデータユニットが有効であるためにインスタンスデータユニットの対応する構成要素部分が満たさなければならないルールを定義するという意味で、型データユニットの構造化フォーマットに対応することがある。例えば、
図9および
図10を参照すると、所定の型に対する型データユニットの「データルール」部分は、その型のインスタンスデータユニットの「データ」部分が、そのインスタンスデータユニットが有効であるために満たさなければならないルールを定義することができる。同様に、所定の型についての型データユニットの「関係ルール」部分は、その型のインスタンスデータユニットの「関係」部分が、そのインスタンスデータユニットが有効であるために満たさなければならないルールを定義することができる。
【0147】
結果として、モデリング装置内およびモデリング装置間で通信され得るデータユニットは、両方のモデリング装置によって読み取られ、解釈/理解されることができるように、構造/フォーマットに関して規格化される。モデリング装置は、インスタンスデータユニット及び型データユニットを、それらの既知の又は所定の規格化された構造/フォーマットに基づいて解釈/理解するように構成されてもよい。したがって、システムのモデリング装置にわたって、情報がどのようにおよびどのような形式で表現されるかは知られていてもよく、その結果、モデリング装置のうちの1つのインスタンスデータユニットが、システムの任意の他のモデリング装置によって読み取られ、理解/解釈されることができる。同様に、モデリング装置のうちの1つの型データユニットは、システムの任意の他のモデリング装置によって読み取られ、理解/解釈されることができる。
【0148】
簡単に言えば、モデリング装置は、互いに同じデータ構造規格(情報表現規格又は通信規格又は通信言語)を使用して、内部的にも互いにも情報を通信する。データ構造規格は、定義またはラベル付けされたフィールドのセットを指定し、情報がどのように組織化または表現されるかを定義するとみなすことができる。すなわち、インスタンスデータユニットは、モデリング装置(の両方/各々)に知られているか、またはそれによってアクセス可能であるデータ構造規格または定義に準拠する(または準拠する、または満足する、または満たす)。同様に、型データユニットは、モデリング装置(の両方/各々)に知られているか、またはそれによってアクセス可能であるデータ構造規格または定義に準拠する(または準拠する、または満足する、または満たす)。このため、特定の情報を見つけるためにデータユニットのどの部分を見るべきか、及びその情報がどのように表現されるかが分かる。すなわち、データユニットはモデリング装置によって理解することができる。各型データユニットは、同じ型のインスタンスデータユニットが有効性についてチェックされ、解釈/理解される(ロボットシステムに関連して処理される/意味を与えられる)ことを可能にするデータ構造規格に従って(によって定義される方法で)ルールを表現する。したがって、所定のモデリング装置が対応する型データユニットを有する場合、インスタンスデータユニットを解釈/理解することができる。ある意味で、データ構造規格は、部分的には(例えば、全ての型データユニットが理解/解釈できるように)全てのモデリング装置に対して同じように定義され、部分的には(例えば、インスタンスデータユニットが当該型グラフにおいて定義された型のものである場合に、インスタンスデータユニットを理解/解釈することができるように)当該型グラフ(例えば
図8参照)に対する型データユニットによって拡張される。さらに、所定のモデリング装置の型データユニットは、効率的な方法で、かつ既存の型がどのように使用されるかに影響を及ぼすことなく(既存の型から継承する新しい型を追加することによって)経時的に構築することができる方法で、所定の型のルールを表現するために継承を利用する型のツリー構造(例えば、
図8参照)または階層を集合的に定義する。
【0149】
この共通のデータ構造規格が存在することを保証することの一部には、相互運用性を判定することが含まれる。マルチ装置モデリングシステムは、第1のモデルを第2のモデリング装置の検証ルールに照らして検証すること、および/または、第2のモデルを第1のモデリング装置の検証ルールに照らして検証すること、および/または、第1のモデリング装置の1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分(またはすべて)と、第2のモデリング装置の1つまたは複数の有向非巡回グラフの少なくとも第2のモデル固有部分(またはすべて)との間の互換性を判定することによって、第1のモデルと第2のモデルとの間の相互運用性を判定するように構成されていてもよい。
【0150】
したがって、1つのモデリング装置は、他のモデリング装置からの通信(インスタンスデータユニット及び任意で型データユニット)を理解することができ、したがって、その他のモデリング装置のロボットシステムの構成と状態を理解することができる。
【0151】
一例を挙げると、第2のモデリング装置は、第1のモデリング装置から第1のモデルを取得するように構成されていてもよい。第1のモデルが第1のモデリング装置の検証ルールを満たし、(型グラフまたはその関連部分の間に)前記互換性があると判定された場合、または第1のモデルが第2のモデリング装置の検証ルールを満たすと判定された場合、第2のモデリング装置は、第1のモデルに基づいて、第1のロボットシステムの現在の状態(例えば、構造/構成および/または動作状態)を表す第1のロボットシステムの表現を生成する(および任意で、例えば、人間のユーザが理解可能な形式で出力する)ように構成されてもよい。
【0152】
ロボットシステムの(例えば、人間のユーザのための)出力表現は、例えば、値のテーブル(例えば、ラベル付けされたテーブル)、又は2Dまたは3D表現(例えば、2Dまたは3Dコンピュータグラフィックスモデル)などのグラフィック描写を含んでいてもよい。このような表現が経時的に更新される場合、表現は、値の更新テーブル、もしくは1つまたは複数の更新トレース(たとえば、時間に対してプロットされた値)、あるいは動的2Dまたは3D表現(たとえば、動的またはアニメーション化された2Dまたは3Dコンピュータグラフィックスモデル)などの更新グラフィカル描写の形態をとることができる。
【0153】
一例として
図11を見ると、モデリング装置100-1のロボットシステムのモデル200-1(インスタンスデータユニット)が型グラフ400-1(型データユニット)に照らして検証され、型グラフ400-1がモデリング装置100-2の型グラフ400-2と互換性がある(またはそれに対して有効である)ことが判明すると、モデリング装置100-2は、モデリング装置100-1からの通信(インスタンスデータユニット)を理解することができ、その結果、モデリング装置100-1のロボットシステムの構成および状態を理解することができる。事実上、モデリング装置100-2は、モデリング装置100-1からの通信(インスタンスデータユニット)に基づいてモデル200-1に対応するローカルモデルを再構築し、モデリング装置100-1のロボットシステムの意味のある表現を生成することができる。
【0154】
ロボットシステム(ロボットなど)の「現在の状態」(および同様に「将来の状態」)は、ロボットシステムにおいて一般的な内部状態を定義し、構成および動作状態から構成されると理解することができる。このようなロボットシステムを全体として(またはその一部を考慮して)考えると、構成は、例えば、それが構成される要素、それらの要素がどのように接続されるか、およびそれらの要素の機能性を含んでいてもよい。動作状態は、例えば、位置、姿勢、速度、トルク、電力、故障状態、挙動など、技術的に意味のある状態を含むことができ、もちろんこれらは単なる例に過ぎない。このように、現在の状態は、ロボットシステムの技術的特性を定義する動的情報および/または静的情報を含むことができる。ここで考慮されるような、ロボットシステムで一般的な内部状態は、システムの内部機能に関連する動作モード、技術的条件、またはイベントを含むと考えられてもよい。このような状態の中には、動的に変化し、自動的に検出されるものもある。このような状態の提示は、例えば技術的な誤動作を回避するために、ユーザ(または他のシステム)にロボットシステムとの対話を促すことがある。
【0155】
ロボットシステムの現在の状態は、もちろん、時間とともに変化/更新される可能性がある。実行例において、第1のモデリング装置は、第1のロボットシステムからデータを読み取り、読み取られたデータに基づいて、第1のモデルの記述型の少なくとも1つのインスタンスに現在の状態データ値を投入するように構成されてもよい。次に、第2のモデリング装置は、前記現在の状態データ値を有する第1のモデルを取得し、前記現在の状態データ値を有する第1のモデルに基づいて第1のロボットシステムの表現を生成するように構成されてもよい。このように、(ユーザに提示され得る)情報は、技術システム(ロボットシステム)において普及している内部状態に関連し、ユーザが技術システムを適切に操作できるようにしてもよい。
【0156】
ロボットシステムの現在の状態は、時々又は定期的に、例えば連続サイクルで監視されてもよい。実行中の例では、第1のモデリング装置は、連続するサイクルにおいて、第1のロボットシステムからデータを読み取り、読み取られたデータに基づいて第1のモデルの記述型の少なくとも1つのインスタンスに現在の状態データ値を投入するように構成されてもよく、第2のモデリング装置は、所定の前記サイクルにおいて更新された第1のモデルに基づいて第1のロボットシステムの表現を出力するように構成されてもよい。
【0157】
もちろん、共通のデータ構造規格の使用は、モデリング装置間だけでなく、1つのモデリング装置内でも利点を有する。
図3の例のように、1つのモデリング装置は、例えば異なる製造業者(
図3では、KUKAおよびRobotiq)からの複数の異なるロボットを備えるロボットシステムをモデリングすることができる。
図8の対応する例示的な型グラフは、型間でいくらかの重複または共通性を有する両方のロボットを表すので(例えば、KUKA LBR iiwaおよびRobotiq 2-フィンガグリッパは両方とも、祖父母型の型マニピュレータを有する)、型が重複する(すなわち同じである)汎用性の同じレベル、この場合はマニピュレータとして、両ロボットを同じように理解/表現(または制御)することができる。例えば、
図3の両方のロボットは、回転軸型のインスタンスとしてモデリングされた回転軸を有し、したがって、(型グラフのより低いレベルで異なる特定の型の回転軸を有する場合であっても)そのレベルの汎用性で同じように理解/表現(または制御さえ)することができる。事実上、型グラフのモデル固有部分が少なくとも部分的に重複するか、または2つのロボットに対して(ルート型を超えて)互いに同じである場合、たとえその(より低い)レベルでは2つのロボットが異なる方法で理解/表現(あるいは制御)される可能性があることを示す重なり合わない部分(例えばシリアルマニピュレータ対グリッパ)があったとしても、2つのロボットが同じ方法で理解/表現(または制御)できる汎用性(例えば、マニピュレータ)のレベルが存在する。
【0158】
上記のロボットシステムの現在の状態の読み取りと同様に、ロボットシステムは、経時的にモデルに基づいて制御され(または書き込まれ)、その結果、ロボットシステムの現在の状態を経時的に変更及び更新することができる。実行例では、第1のモデリング装置は、第1のロボットシステムにデータを書き込む(それを制御する)ように構成されてもよい。第2のモデリング装置は、現在の状態データ値と将来の状態データ値とを有する第1のモデルを取得し、第1のロボットシステムがどのように制御されているかを示す表現を生成するように構成されてもよい。
【0159】
要約すると、本明細書で説明される技術は、複雑なロボットシステムを安全に統合するための要件だけでなく、長期の保全性および拡張性、最小限の労力でシステムを拡張する能力に対する解決策を提供する。これは、例えば原子力産業のシナリオにおいて有利である。ハードウェア、制御システム実装、およびオペレータインターフェースを抽象化することによって、ハードウェアの変更から生じる非互換性の問題が低減され、制御ソリューションの再利用性および再構成性が向上し、ハードウェア構成に関係なく一貫したオペレータインターフェースが提供することができる。
【0160】
したがって、制御システムフレームワークは、長期の保全性および拡張性を目指している。これを達成するために、システム基盤は、2つの概念、すなわち、1)構成要素間の低い結合、および2)非常に粒度の細かいモジュール構成要素の高い結合を実装する。ビルディングブロック方法論(インスタンスデータユニットおよび型データユニット)が提供される。必要なシステム機能性は、複数の共通プラグアンドプレイ構成要素(インスタンスデータユニットおよび型データユニット)をまとめることによって提供される。いくつかの構成では、インスタンスデータユニットおよび型データユニットは、内部データ表現のために同じ構造を使用し、同じ外部インターフェース(すなわち、規格化されたインターフェース)を有する。このデータ表現を通信プロトコルの一部として使用して、1つの制御システムの分散構成要素(複数のクラスタ、エージェント、モデリング装置)が互いの事前知識なしにデータを交換することを可能にすることができる。これは、ローカルシステムへの影響を最小限に抑えながら、他の分散構成要素を修正することなく、制御システムが成長して新しいハードウェアおよび制御機能を組み込むことができることを意味する。
【0161】
自己記述分散データモデルは、インスタンスデータユニットの集合から構成されている。各インスタンスデータユニットは、それが他のインスタンスデータユニットとの接続方法、利用可能な機能性、および関連する型に関する情報を含む。これらの型は、各インスタンスデータユニットに格納された構文情報に関するルール(型ルール)と、規格化された構造を作成するための形態学的ルールとを含むソフトウェアオントロジーを形成する。オントロジーの継承された性質は、様々な制御システム構成要素に意味論的意味を提供する。フレームワーク内では、オントロジーを使用してドメイン固有情報の共通構造を構築し、次にこれを使用して構成要素を分散および再利用して明示的な仮定を行う。加えて、形態論(モルフォロジー)は、構文的な意味を提供し、オントロジーにおいて表された型を使用して構成要素間の構造を作成するために使用される。これらの構造は、分散された構成要素を規格化し、所定のシステムの内容に関して明示的な仮定を行うことを可能にし、相互運用性を促進するために使用される。
【0162】
本システムは、1つのオントロジーモデルのみ、すなわち、型モデルオントロジーを使用すると見なされてもよい。本システムモデル(例えば、
図3)は、オントロジー自体ではなく、必要な情報をまとめるために、型モデルオントロジー(例えば、
図8)を特徴とするシステムモデルである。
【0163】
インスタンスデータユニット間の接続は、「関係」を使用して記述される。定義された型は、(その特定の型とみなされるために)それが有さなければならない関係だけでなく、いくつの(最小、最大、または絶対的な)インスタンスデータユニットがそれおよびそれらの関連する型に関連付けられなければならないかを定義することができる。これらの関係ルールは、同じ型を使用するシステム間で一貫性のある特定の形態を有するシステムを生成する。これらの形態は、構造的なもの(例えば、ロボットアームがシリアルマニピュレータおよびグリッパから構成される)および挙動的なもの(例えば、逆運動学ソルバが、デカルト位置の入力を必要とし、いくつかのジョイント角度を出力する)という2つの別個のグループのうちのいずれかに分類される傾向がある。これらの関係ルールは、強化された相互運用性をもたらし、それらは、統合された構成要素を明示的に仮定するために使用される。
【0164】
ここでは自己記述データ表現が有利に使用される。規格化されているが拡張可能なデータインターフェース(インスタンスデータユニットおよび型データユニットによって定義される)は、相互運用性を提供するために開発され、意味論的意味は、ロボットおよび制御システム構成要素のためのソフトウェアオントロジーに関連付けられた定義された型を介して構成要素によって自己記述される。これらのインターフェース間のデータ交換における構造的解釈を支援するために、ソフトウェアモルフォロジーが実装され、構文的意味を提供するために使用される。ロボットおよび制御システム知識構造は、実行時にエージェント間で分散される。
【0165】
規格化されたインターフェースの使用と共に、構成要素間の低結合と細粒度モジュール構成要素の高結合とを組み合わされたカプセル化は、モジュール性および試験容易性を達成するのに役立つ。次いで、ライフサイクル管理プロセスおよび効果的な構成要素ベースの開発技法によって、品質および保全性の要件を達成することができる。本明細書で説明するようなシステムまたは装置を、一定のメモリフットプリントで実行し、実行時の割り当てとメモリリークを最小限に抑えることが可能である。
【0166】
図19は、本発明を具現化し、本明細書で説明される装置または方法のいずれかを実装するために使用することができるコンピューティング装置1000のブロック図である。コンピューティング装置1000は、プロセッサ993およびメモリ994を備える。任意選択的に、コンピューティング装置は、他のコンピューティング装置、例えば第1および第2のモデリング装置100-1および100-2との間の通信のためのネットワークインターフェース997も含む。
【0167】
例えば、実施形態は、このようなコンピューティング装置のネットワークで構成されることがある。オプションとして、コンピューティング装置は、キーボードやマウス996などの1つ以上の入力機構や、1つ以上のモニタ995などの表示装置も含む。
【0168】
各構成要素は、バス992を介して互いに接続可能である。
【0169】
メモリ994は、コンピュータ読取可能な媒体を含むことができ、この用語は、コンピュータ実行可能命令を搬送するように、またはその上に記憶されたデータ構造を有するように構成された1つの媒体または複数の媒体(たとえば、集中型もしくは分散型データベースならびに/または関連するキャッシュおよびサーバ)を指すことができる。コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイス(例えば、1つ以上のプロセッサ)によってアクセス可能であり、それらに1つ以上の機能または動作を実行させる命令およびデータを含んでもよい。したがって、「コンピュータ読取可能な記憶媒体」という用語は、機械による実行のための命令のセットを記憶、符号化、または担持することが可能であり、機械に本開示の方法のうちのいずれか1つまたは複数を実行させる任意の媒体を含むことができる。したがって、「コンピュータ読取可能な記憶媒体」という用語は、ソリッドステートメモリ、光学媒体、および磁気媒体を含むものと解釈されるが、これらに限定されない。限定ではなく例として、そのようなコンピュータ読取可能な記憶媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)または他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶装置、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)を含む非一過性のコンピュータ読み取り可能な記憶媒体を含むことができる。
【0170】
プロセッサ993は、コンピューティング装置を制御し、処理動作を実行するように構成され、例えば、メモリに格納されたコードを実行して、本明細書で説明するモジュールおよびユニットの様々な異なる機能を実装する。メモリ994は、プロセッサ993によって読み書きされるデータを記憶する。本明細書で言及されるように、プロセッサは、マイクロプロセッサ、中央処理装置などの1つまたは複数の汎用処理装置を含んでいてもよい。プロセッサは、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、または命令セットの組合せを実装するプロセッサを含んでもよい。プロセッサはまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどの1つまたは複数の専用処理デバイスを含むこともできる。1つまたは複数の実施形態において、プロセッサは、本明細書で議論される動作およびステップを実行するための命令を実行するように構成される。
【0171】
表示部997は、コンピューティング装置によって記憶されたデータの表現を表示することができ、カーソル、およびユーザとコンピューティング装置上に記憶されたプログラムおよびデータとの間の対話を可能にするダイアログボックスおよび画面を表示することもできる。 入力機構996は、ユーザが、データおよび命令をコンピューティングデバイスに入力して、例えば、モデル200を生成もしくは作成すること、またはモデル200を使用してロボットシステム10Aの状態を発見すること、および/またはモデル200を使用してロボットシステム10Aを制御することを可能にし得る。入力機構996は、ユーザ入力に基づいて、モデリング装置100にモデル200および/または検証ルール160を追加、削除、変更、または制御させるように構成されたユーザインターフェースを備えていてもよい。
【0172】
ネットワークインターフェース(ネットワークI/F)997は、インターネットなどのネットワークに接続されてもよく、ネットワークを介して他のこのようなコンピューティング装置と接続可能である。ネットワークI/F997は、ネットワークを介して他の装置とのデータの入出力を制御してもよい。その他、マイク、スピーカ、プリンタ、電源装置、ファン、筐体、スキャナ、トラッカーボール等の周辺機器がコンピューティング装置に含まれていてもよい。
【0173】
もちろん、本実施形態は、ロボットシステムのモデリング(さらには制御)に関連して説明されている。しかしながら、本明細書で説明されるモデリングは、その現在の状態、構造/構成、および利用可能な命令を記述(または制御)する能力が有益/必要とされる任意のシステムなどの他の型のシステムに適用され得ることが理解されるであろう。この点に関して、ロボットシステムへの言及は、システムまたは制御可能なシステムへの言及とみなすことができる。同様に、ロボットへの言及は、システムの構成要素または制御可能なシステムの制御可能な構成要素への言及と解釈されてもよい。本開示はそれに応じて理解されるであろう。
【0174】
本開示は、コンピュータ上で実行されると、本明細書に記載の装置または方法のいずれかをコンピュータに実施させるコンピュータプログラムに及ぶ。このようなコンピュータプログラムは、コンピュータ読み取り可能な媒体に格納することができる。
【0175】
当業者は、上述の装置及び方法のいくつかの態様が、例えば、ディスク、CD若しくはDVD-ROM、読み出し専用メモリ(ファームウェア)などのプログラムされたメモリなどの不揮発性キャリア媒体上、又は光若しくは電気信号キャリアなどのデータキャリア上のプロセッサ制御コードとして具現化され得ることを認識するであろう。例えば、モデリング装置100は、プロセッサ制御コードに基づいて動作するプロセッサとして実装されてもよい。
【0176】
いくつかの適用例では、そのような態様は、DSP(デジタル信号プロセッサ)、ASIC(特定用途向け集積回路)、またはFPGA(フィールドプログラマブルゲートアレイ)上で実装される。したがって、コードは、従来のプログラムコードまたはマイクロコード、あるいは、例えば、ASICまたはFPGAを設定または制御するためのコードを含むことができる。コードはまた、再プログラム可能な論理ゲートアレイ等の再構成可能装置を動的に構成するためのコードを備えてもよい。同様に、コードは、Verilog(登録商標)またはVHDLなどのハードウェア記述言語のコードを含むことができる。当業者が理解するように、コードは、互いに通信する複数の結合された構成要素間で分散されてもよい。適切な場合、そのような態様は、アナログハードウェアを構成するために、フィールド(再)プログラマブルアナログアレイまたは同様のデバイス上で実行されるコードを使用して実装されてもよい。
【0177】
上述の実施形態は、本発明を限定するのではなく例示するものであり、当業者は、添付の特許請求の範囲から逸脱することなく、多くの代替の実施形態を設計することができることに留意すべきである。「有する、備える(comprising)」という語は、特許請求の範囲に記載された要素又はステップ以外の要素又はステップの存在を排除するものではなく、不定冠詞の「a」又は「an」は複数を排除するものではなく、1つの特徴又は他のユニットが特許請求の範囲に記載された複数のユニットの機能を果たしてもよい。特許請求の範囲におけるいかなる参照番号またはラベルも、その範囲を限定するように解釈されるべきではない。
【0178】
本開示は、当業者が理解するであろう、本明細書の例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。同様に、必要に応じて、添付の特許請求の範囲は、当業者が理解するであろう、本明細書の例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。さらに、添付の特許請求の範囲における、特定の機能を実行するように適合され、配置され、可能であり、構成され、有効化され、動作可能であり、または動作可能である装置もしくはシステム、または装置もしくはシステムの構成要素への言及は、その装置、システム、または構成要素がそのように適合され、配置され、可能であり、構成され、有効化され、動作可能であり、または動作可能である限り、それまたはその特定の機能がアクティブ化され、オンにされ、またはロック解除されるかどうかにかかわらず、その装置、システム、または構成要素を包含する。したがって、本開示の範囲から逸脱することなく、本明細書で説明されるシステム、装置、および方法に対して修正、追加、または省略を加えることができる。例えば、システム及び装置の構成要素は、統合されてもよく、分離されてもよい。さらに、本明細書で開示されるシステムおよび装置の動作は、より多くの、より少ない、または他の構成要素によって実行されてもよく、説明される方法は、より多くの、より少ない、または他のステップを含んでもよい。さらに、ステップは、任意の適切な順序で実行されてもよい。本明細書で使用される場合、「各」は、セットの各メンバーまたはセットのサブセットの各メンバーを指す。
【0179】
例示的な実施形態が図面に示され、以下で説明されるが、本開示の原理は、現在知られているか否かにかかわらず、任意の数の技術を使用して実装されてもよい。本開示は、図面に示され、上記で説明された例示的な実装形態および技術に決して限定されるべきではない。
【0180】
特に明記しない限り、図面に描かれた物品は、必ずしも縮尺どおりに描かれていない。
【0181】
本明細書に記載されるすべての例および条件付き言語は、読者が本開示および本発明者によって当技術分野の促進に寄与される概念を理解するのを助けるための教育的目的を意図しており、そのような具体的に記載された例および条件に限定されないものとして解釈される。本開示の実施形態を詳細に説明してきたが、本開示の趣旨および範囲から逸脱することなく、本明細書に対して様々な変更、置換、および改変を行うことができることを理解されたい。
【0182】
以上、特定の利点を列挙したが、様々な実施形態は、列挙された利点のいくつかを含んでもよく、含まなくてもよく、またはすべてを含んでもよい。加えて、他の技術的利点は、前述の図面および説明を検討した後に、当業者に容易に明らかになるだろう。
【0183】
本開示は、以下の番号の段落に及ぶものであり、および/または本発明は、以下の番号の段落によって少なくとも部分的に定義されるものである。
【0184】
(付記1)ロボットシステムをモデリングするためのモデリング装置であって、
モデルを用いて前記ロボットシステムをモデリングするモデラであって、前記モデルは、複数のリンクと相互接続された複数の定義された型のセットの少なくともサブセットの複数のインスタンスを備え、各インスタンスは、前記ロボットシステムの要素の記述であり、前記複数のインスタンス間の前記複数のリンクは、前記インスタンス間の関係を表すモデラと、
前記モデルが複数の検証ルールを満たすかどうかを判定することによって、前記モデルを前記複数の検証ルールに照らして検証する検証部とを備え、
前記複数の検証ルールは、複数の親子関係と相互接続された前記複数の定義された型の1つまたは複数の有向非巡回グラフの定義を含み、前記複数の定義された型が複数のノードに対応し、前記複数の親子関係が前記1つまたは複数の有向非巡回グラフの複数の有向エッジに対応し、各定義された型が、その型のインスタンスが有効であるために満たさなければならないその型の複数の型ルールを定義し、一対の型の間の各親子関係が、対応するエッジ方向に従ってそれらの型を互いに対して親型および子型として定義し、
各子型が、前記複数の親子関係に従って対応する複数の親型の各々の前記複数の型ルールを継承する、ことを特徴とするモデリング装置。
【0185】
(付記2)各子型は、
その子型が対応する複数の親型の各々を参照することによって対応する複数の親型の各々から継承する前記複数の型ルール、および/または
その子型が対応する複数の親型の各々から継承する前記複数の型ルール以外のその子型に対する各型ルールを定義する、ことを特徴とする付記1に記載のモデリング装置。
【0186】
(付記3)少なくとも1つの子型は少なくとも2つの親型を有し、および/または
少なくとも1つの子型は少なくとも1つの親型を有し、それ自体(前記少なくとも1つの親型)が少なくとも1つの(別の)親型を有する子型であり、任意で、それ自体(前記少なくとも1つの別の親型)が少なくとも1つの(さらに別の)親型を有する子型である、ことを特徴とする付記1または2に記載のモデリング装置。
【0187】
(付記4)前記複数の検証ルールは、少なくとも1つの特定の定義された型について、前記モデルが有効であるために、前記特定の定義された型のインスタンスが前記モデル内の複数の定義された型の他の複数のインスタンスと共に有さなければならない複数の相互接続を定義する複数の形態学的ルールを含み、
任意で、少なくとも1つの定義された型について、対応する複数の型ルールは、対応する複数の形態学的ルールを含む、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0188】
(付記5)前記モデルが、当該モデルの複数のインスタンスの有向グラフを定義し、前記複数のリンクが複数の有向リンクであり、前記複数のインスタンスが複数のノードに対応し、前記複数のリンクが前記有向グラフの複数のエッジに対応し、各リンクは、各リンクが相互接続する複数のインスタンスのうちの1つによって所有され、前記複数のリンクの方向が、当該リンクを所有するインスタンスに対する当該相互接続された複数のインスタンス間の入力関係または出力関係を表す、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0189】
(付記6)前記複数のリンクの前記方向は、前記方向が当該リンクを所有する前記インスタンスに向かう方向を指す場合に、当該リンクを所有する前記インスタンスに対する当該相互接続された複数のインスタンス間の入力関係を表し、および/または
前記複数のリンクの前記方向は、前記方向が当該リンクを所有するインスタンスから離れる方向を指す場合に、当該リンクを所有するインスタンスに対する当該相互接続された複数のインスタンス間の出力関係を表す、ことを特徴とする付記5に記載のモデリング装置。
【0190】
(付記7)少なくとも1つのリンクの方向が当該リンクの所有者インスタンスに向かう方向を指す当該少なくとも1つのリンクについて、当該リンクの他のインスタンスは、その所有者インスタンスに対する入力であり、および/または
少なくとも1つのリンクの方向が当該リンクの所有者インスタンスから離れる方向を指す当該少なくとも1つのリンクについて、当該リンクの他のインスタンスは、その所有者インスタンスに対する出力である、ことを特徴とする付記5または6に記載のモデリング装置。
【0191】
(付記8)少なくとも1つのリンクの方向が当該リンクの所有者インスタンスに向かう方向を指す当該少なくとも1つのリンクについて、その所有者インスタンスの入力情報は、そのリンクの他のインスタンスにおいて表されるか、またはそのリンクの他のインスタンスからそのリンクを介して読み取られる、および/または
少なくとも1つのリンクの方向が当該リンクの所有者インスタンスから離れる方向を指す当該少なくとも1つのリンクについて、その所有者インスタンスの出力情報は、そのリンクの他のインスタンスにおいて表されるか、またはそのリンクの他のインスタンスにそのリンクを超えて書き込まれる、ことを特徴とする付記5乃至7のいずれか1つに記載のモデリング装置。
【0192】
(付記9)少なくとも1つのリンクの方向が当該リンクの所有者インスタンスに向かう方向を指す当該少なくとも1つのリンクについて、その所有者インスタンスの所有情報および/または含有情報は、そのリンクの他のインスタンスにおいて表される、ことを特徴とする付記5乃至8のいずれか1つに記載のモデリング装置。
【0193】
(付記10)前記複数の定義された型は、複数の記述型を含み、任意で少なくとも1つの機能型も含み、
記述型の各インスタンスは、前記ロボットシステムの対応する要素の現在の状態および/または目標状態を記述し、任意で、各前記状態は、動作状態または状況またはモードであり、そして任意で、
機能型の各インスタンスは、前記ロボットシステムを記述する情報を導き出すため、および/または前記ロボットシステム内の活動をモデリングするために、記述型の相互接続されたインスタンスのデータを操作する方法を記述し、任意で、前記データは機能データまたは操作データである、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0194】
(付記11)各インスタンスは、前記モデルの別の1つまたは複数のインスタンスへの対応する複数のリンクの各々を任意で定義するインスタンスデータユニットである、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0195】
(付記12)各インスタンスデータユニットは、各インスタンスデータユニットがインスタンスである定義された型の指示と、型付けされたデータと、を含み、
任意で、各インスタンスデータユニットは、1つまたは複数のサポートされるコマンドのステータスの定義をさらに含む、ことを特徴とする付記11に記載のモデリング装置。
【0196】
(付記13)前記複数のインスタンスデータユニットは、互いに同じ構造化フォーマットを有し、および/または
前記複数のインスタンスデータユニットは、前記モデリング装置によって知られている又はアクセス可能であり、かつ複数の準拠するインスタンスデータユニットのフォーマットを定義するデータ構造規格に準拠し、および/または
前記複数のインスタンスデータユニットの各々は、前記モデリング装置によって知られている又はアクセス可能であるデータ構造規格によって定義される複数の(個別のまたは区切られた)部分を含む、ことを特徴とする付記11または12に記載のモデリング装置。
【0197】
(付記14)少なくとも1つのインスタンスデータユニットが、当該インスタンスまたは相互接続されたインスタンスのデータを操作するために実行されるタスクを定義する拡張データユニットに関連付けられている、ことを特徴とする付記11乃至13のいずれか1つに記載のモデリング装置。
【0198】
(付記15)前記複数の定義された型の1つまたは複数の有向非巡回グラフの定義は、定義された型ごとの型データユニットを含み、
各前記型データユニットは、当該定義された型を定義し、任意で、前記1つまたは複数の有向非巡回グラフのルートノードに対応するルート定義された型以外の各定義された型について、対応する複数の親型の各々に対する親子関係を定義する、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0199】
(付記16)各型データユニットは、当該各型データユニットの定義された型の指示と、少なくとも1つのデータ型の定義であって、前記定義された型のインスタンスのデータが有効であるためにはどのデータ型でなければならないかの定義と、を含み、
任意で、各型データユニットは、1つまたは複数のサポートされたコマンドのステータスが有効であるために、定義された型のインスタンスにおいてどのように表現されなければならないかの定義をさらに含む、
ことを特徴とする付記15に記載のモデリング装置。
【0200】
(付記17)複数の型データユニットは、互いに同じ構造化フォーマットを有し、及び/又は
前記複数の型データユニットは、前記モデリング装置によって知られている又はアクセス可能であり、かつ準拠する型データユニットのフォーマットを定義するデータ構造規格に準拠する、ことを特徴とする付記15または16に記載のモデリング装置。
【0201】
(付記18)前記複数のインスタンスデータユニットの前記構造化フォーマットが、前記複数の型データユニットの前記構造化フォーマットに対応し、および/または
前記複数の型データユニットの各々は、前記データ構造規格によって定義された複数の(個別のまたは区切られた)部分を含む
各型データユニットは、同じ型の複数のインスタンスデータユニットが、前記モデリング装置によって有効であり、任意で解釈、理解、または処理されるために満たす必要があるルールを、前記データ構造規格によって定義された方法で定義し、および/または
各型データユニットは、前記データ構造規格によって定義されたその型データユニットの複数の個別のまたは区切られた部分の各々において、同じ型の複数のインスタンスデータユニットのデータ構造規格によって定義された対応する(個別のまたは区切られた)部分が、モデリング装置によって有効であり、任意で解釈、理解、または処理されるために満たさなければならないルールを、データ構造規格によって定義された方法で定義または表現する、ことを特徴とする付記17に記載のモデリング装置。
【0202】
(付記19)前記モデルの各インスタンスは、前記ロボットシステムのロボットの要素および/または前記ロボットシステムのロボットコントローラの記述であり、および/または
前記モデルは、前記ロボットシステム、前記ロボットシステムの前記ロボット、または前記ロボットシステムの前記ロボットコントローラのうちの少なくとも一部の現在の状態および/または目標状態を表す、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0203】
(付記20)前記モデリング装置と前記ロボットシステムとの間の接続のためのインターフェースを備え、前記モデリング装置は、前記データ構造規格に基づく前記複数の型データユニットおよび前記複数のインスタンスデータユニットの解釈/理解に基づいて任意に前記モデルの検証を行った後、
前記インターフェースを介して前記ロボットシステムからデータを受信し、前記受信されたデータに基づいて前記モデルを更新し、任意で、前記更新されたモデルに基づいて前記ロボットシステムの表現を出力または生成し、および/または
前記インターフェースを介して前記ロボットシステムにデータを出力し、前記モデルに基づいて前記ロボットシステムを制御し、任意で、前記ロボットシステムの動作を制御し、または前記ロボットシステムを誘導し、または前記ロボットシステムの動きを制御し、任意で、前記制御は能動制御であり、
任意で、
前記データは、前記ロボットシステムの少なくとも1つの要素の現在の状態/挙動または将来の状態/挙動を定義する機能データであり、および/または
前記データは、前記ロボットシステムの少なくとも1つの要素の動作状態または動作モードを定義し、および/または
前記データは、前記ロボットシステムの少なくとも1つの要素の技術的状態または技術的モードを定義し、および/または
前記データは、前記ロボットシステムの少なくとも1つの要素の現在または将来の構成または性能または活動または挙動を定義し、および/または
前記データは、前記ロボットシステムの少なくとも1つの要素の位置、方向、活動または動作を定義する、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0204】
(付記21)
前記1つまたは複数の有向非巡回グラフは装置レベルの有向非巡回グラフであり、
前記モデリング装置は、
前記モデル内で表される前記定義された型の1つまたは複数のモデル固有有向非巡回グラフを生成し、
前記1つまたは複数のモデル固有有向非巡回グラフは、各ルートノードに対応する各ルート定義された型と、前記モデル内の複数のインスタンスを有する前記定義された型のすべてと、前記複数の親子関係を介してそれらの間に接続されている各他の定義された型とを含む前記1つまたは複数の装置レベル有向非巡回グラフの一部であり、
前記1つまたは複数のモデル固有有向非巡回グラフにおいて定義された前記複数の検証ルールに対して前記モデルを検証し、任意で、前記1つまたは複数の装置レベル有向非巡回グラフにおいて定義されるが前記1つまたは複数のモデル固有有向非巡回グラフにおいては定義されていない各検証ルールに対して、これらのルールが満たされているとみなすことによって、前記モデルが有効であると判定する、
ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0205】
(付記22)前記モデリング装置は、コンピューティング装置、コンピュータ実装装置、またはコンピュータ支援装置であるかまたは備える、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0206】
(付記23)前記モデルおよび/または前記複数の検証ルールを変更し、任意で
前記変更に続けて、前記モデルが前記複数の検証ルールを満たすかどうかを判定することによって、前記複数の検証ルールに照らして前記モデルを検証する、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0207】
(付記24)前記変更が、
前記複数の定義された型のうちの1つの前記複数の型ルール、任意で前記モデルがインスタンスを含む前記複数の定義された型のうちの1つの前記複数の型ルール、または特定の定義された型が複数の型ルールを継承する前記定義された型のうちの1つの前記複数の型ルールであって、前記モデルは前記特定の定義された型のインスタンスを含み、または所定の定義された型から複数の型ルールを継承する前記複数の定義された型のうちの1つの前記複数の型ルールであって、前記モデルは前記所定の定義された型のインスタンスを含み、前記複数の型ルールを変更する処理と、
前記1つまたは複数の有向非巡回グラフの既存の定義された型に対する少なくとも1つの親子関係とともに、前記1つまたは複数の有向非巡回グラフに新しい定義された型を追加する処理であって、任意で、前記新しい定義された型は、特定の既存の定義された型の前記型ルールを継承するように、その特定の既存の定義された型に対する親子関係と相互接続され、前記モデルは、その特定の既存の定義された型のインスタンスを含む、処理と、
前記1つまたは複数の有向非巡回グラフから不要な定義された型を、前記1つまたは複数の有向非巡回グラフの既存の定義された型に対する当該不要な定義された型の親子関係の各々とともに削除し、任意で、前記不要な定義された型から任意の定義された型の複数のルールを継承する当該任意の定義された型を削除する処理であって、任意で、前記不要な定義された型が、前記特定の既存の定義された型ルールを継承するように、特定の既存の定義された型に対する少なくとも1つの親子関係と相互接続されて、前記モデルが前記特定の既存の定義された型のインスタンスを含む、処理と、
前記モデル内の定義された型のインスタンスを変更する処理と、
前記モデルの既存のインスタンスへの少なくとも1つのリンクとともに、定義された型のインスタンスを前記モデルに追加する処理と、
前記モデルの既存のインスタンスへの少なくとも1つのリンクとともに、定義された型のインスタンスを前記モデルから除去する処理と、の少なくとも1つ(または任意の組み合わせ)を含む、ことを特徴とする付記23に記載のモデリング装置。
【0208】
(付記25)前記モデルが前記検証ルールを満たすと判定された場合には、前記モデルが有効であると判定し、および/または
前記モデルが前記検証ルールを満たさないと判定された場合には、前記モデルが有効ではないと判定する、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0209】
(付記26)ユーザ入力に基づいて、前記モデリング装置に前記モデルおよび/または前記検証ルールを追加、除去、変更、使用または制御させるように構成されたユーザインターフェースを備える、ことを特徴とする前記付記のいずれかに記載のモデリング装置。
【0210】
(付記27)互いに通信するように構成された第1および第2のモデリング装置を備えるマルチ装置モデリングシステムであって、前記第1および第2のモデリング装置の各々は、前記付記のいずれかに記載のモデリング装置であり、
前記第1のモデリング装置は、前記第1のロボットシステムの第1のモデルを用いて前記第1のロボットシステムをモデリング(モデル化)し、前記第2のモデリング装置は、前記第2のロボットシステムの第2のモデルを用いて第2のロボットシステムをモデリングし、
前記マルチ装置モデリングシステムは、
前記第2のモデリング装置の前記検証ルールに照らして前記第1のモデルを検証する処理、および/または
前記第1のモデリング装置の前記検証ルールに照らして前記第2のモデルを検証する処理、および/または
前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分と、前記第2のモデリング装置の前記1つまたは複数の有向非巡回グラフの第2のモデル固有部分との間の互換性を判定する処理によって、前記第1のモデルと前記第2のモデルとの間の相互運用性を判定するように構成されている、ことを特徴とするマルチ装置モデリングシステム。
【0211】
(付記28)前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第1のモデル固有部分は、各ルートノードに対応する各ルート定義された型、前記第1のモデル内のインスタンスを有する前記定義された型のすべて、および前記複数の親子関係を介してそれらの間に接続されている各他の定義された型を含む前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの一部であり、
前記第2のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第2のモデル固有部分は、各ルートノードに対応する各ルート定義された型、前記第2のモデル内のインスタンスを有する前記定義された型のすべて、および前記複数の親子関係を介してそれらの間に接続されている各他の定義された型を含む前記第2のモデリング装置の前記1つまたは複数の有向非巡回グラフの一部である、ことを特徴とする付記27に記載のマルチ装置モデリングシステム。
【0212】
(付記29)前記第1のモデリング装置の1つまたは複数の有向非巡回グラフの少なくとも前記第1のモデル固有部分と、前記第2のモデリング装置の1つまたは複数の有向非巡回グラフの少なくとも前記第2のモデル固有部分とが、
前記第1のモデル固有部分および前記第2のモデル固有部分の両方にある定義された型は、実質的に同一であり、および/または
前記第1のモデル固有部分および前記第2のモデル固有部分の両方にある定義された型が、互いに少なくとも同じ型ルールを定義する、および/または
前記第1のモデル固有部分および前記第2のモデル固有部分が、競合するルールまたは定義された型の競合する階層を定義していない、
場合に互換性があると判定するように構成されている、ことを特徴とする付記27または28に記載のマルチ装置モデリングシステム。
【0213】
(付記30)前記第1のモデリング装置は、前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第1のモデル固有部分を生成するように構成され、
前記第2のモデリング装置は、前記第2のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第2のモデル固有部分を生成するように構成され、
前記第1のモデリング装置または前記第2のモデリング装置のいずれか一方は、前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第1のモデル固有部分と、前記第2のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第2のモデル固有部分との間の互換性を判定するように構成される、ことを特徴とする付記27乃至29のいずれか1つに記載のマルチ装置モデリングシステム。
【0214】
(付記31)前記第2のモデリング装置が、前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第1のモデル固有部分を前記第1のモデリング装置から取得し、前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第1のモデル固有部分と前記第2のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第2のモデル固有部分との間の互換性を判定するように構成される、ことを特徴とする付記27乃至30のいずれか1つに記載のマルチ装置モデリングシステム。
【0215】
(付記32)前記第1のモデリング装置は、前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの前記第1のモデル固有部分をサブスクライバ装置に利用可能にするように構成されたパブリッシャ装置であり、前記第2のモデリング装置は前記サブスクライバ装置である、ことを特徴とする付記31に記載のマルチ装置モデリングシステム。
【0216】
(付記33)互いに通信するように構成された第1および第2のモデリング装置を備えるマルチ装置モデリングシステムであって、
前記第1および前記第2のモデリング装置の各々は、ロボットシステムをモデリングするためのものであり、
モデルを用いて前記ロボットシステムをモデリングするモデラであって、前記モデルは、複数のリンクと相互接続された複数の定義された型のセットの少なくとも1つのサブセットの複数のインスタンスを備え、各インスタンスは、前記ロボットシステムの要素の記述であり、前記複数のインスタンス間の前記複数のリンクは、それらの間の関係を表す、モデラと、
前記モデルが複数の検証ルールを満たすかどうかを判定することによって、前記モデルを前記検証ルールに照らして検証する検証部と、を有し、
前記検証ルールは、複数の親子関係と相互接続された前記複数の定義された型の1つまたは複数の有向非巡回グラフの定義であって、前記定義された型は複数のノードに対応し、前記複数の親子関係は前記1つまたは複数の有向非巡回グラフの複数の有向エッジに対応し、各定義された型は、その型のインスタンスが有効であるために満たさなければならないその型の型ルールを定義し、一対の型の間の各親子関係は、対応するエッジ方向に従ってそれらの型を互いに対して親型および子型として定義し、各子型は、前記複数の親子関係に従って対応する複数の親型の各々の型ルールを継承する、定義を備え、
前記第1のモデリング装置は、前記第1のロボットシステムの第1のモデルを用いて第1のロボットシステムをモデリングし、前記第2のモデリング装置は、前記第2のロボットシステムの第2のモデルを用いて第2のロボットシステムをモデリングし、
前記第1および前記第2のモデリング装置の各々について、
前記複数の定義された型の前記1つまたは複数の有向非巡回グラフの前記定義は、定義された型ごとの型データユニットを含み、各前記型データユニットは、当該定義された型を定義し、前記1つまたは複数の有向非巡回グラフのルートノードに対応するルート定義された型以外の各定義された型について、対応する複数の親型の各々に対する前記親子関係を定義し、
各型データユニットは、対応する定義された型の指示と、前記定義された型のインスタンスのデータが有効であるためにどのデータ型のデータでなければならないかの少なくとも1つのデータ型の定義とを含み、
前記複数の定義された型は記述型を含み、
記述型の各インスタンスは、前記ロボットシステムの対応する要素の現在の状態および/または目標状態を記述し、
各インスタンスは、前記モデルの別の1つまたは複数のインスタンスへの対応する複数のリンクの各々を定義するインスタンスデータユニットであり、
各インスタンスデータユニットは、それがインスタンスである定義された型の指示と、型付けされたデータとを含み、
前記複数の検証ルールは、少なくとも1つの特定の定義された型について、前記モデルが有効であるためにその特定の定義された型のインスタンスが前記モデル内の複数の定義された型の複数の他のインスタンスと共に有さなければならない相互接続を定義する形態学的ルールを含み、
前記第1および第2のモデリング装置の両方について、
前記複数の型データユニットは、互いに同じ構造化フォーマットを有し、
前記複数のインスタンスデータユニットは、互いに同じ構造化フォーマットを有し、
前記複数のインスタンスデータユニットの前記構造化フォーマットは、前記複数の型データユニットの前記構造化フォーマットに対応し、
前記マルチ装置モデリングシステムは、前記第1のモデルと前記第2のモデルとの間の相互運用性を、
前記第2のモデリング装置の前記検証ルールに照らして前記第1のモデルを検証する処理、および/または
前記第1のモデリング装置の前記検証ルールに照らして前記第2のモデルを検証する処理、および/または
前記第1のモデリング装置の前記1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分と、前記第2のモデリング装置の前記1つまたは複数の有向非巡回グラフの第2のモデル固有部分との間の互換性を判定する処理、によって判定するように構成され、
前記第2のモデリング装置は、前記第1のモデリング装置から前記第1のモデルを取得し、前記第1のモデルが前記第1のモデリング装置の前記検証ルールを満たし、かつ前記互換性があると判定された場合、または前記第1のモデルが前記第2のモデリング装置の前記検証ルールを満たすと判定された場合、前記第1のモデルに基づいて、前記第1のロボットシステムの構造、機能性、および現在の状態のうちの少なくとも1つを表す前記第1のロボットシステムの表現を生成/出力するように構成される、ことを特徴とするマルチ装置モデリングシステム。
【0217】
(付記34)前記第1のモデリング装置は、前記第1のロボットシステムからデータを読み取り、前記読み取られたデータに基づいて前記第1のモデルの記述型の少なくとも1つのインスタンスに現在の状態データ値を投入するように構成され、
前記第2のモデリング装置は、前記現在の状態データ値を有する前記第1のモデルを取得し、前記現在の状態データ値を有する前記第1のモデルに基づいて前記第1のロボットシステムの前記表現を生成/出力するように構成されている、ことを特徴とする付記33に記載のマルチ装置モデリングシステム。
【0218】
(付記35)前記第1のモデリング装置は、連続するサイクルにおいて、前記第1のロボットシステムからデータを読み取り、前記読み取られたデータに基づいて、現在の状態データ値を前記第1のモデルの記述型の少なくとも1つのインスタンスに投入するように構成され、
前記第2のモデリング装置は、所定のサイクルで更新された前記第1のモデルに基づいて、前記第1のロボットシステムの表現を生成/出力するように構成される、ことを特徴とする付記33または34に記載のマルチ装置モデリングシステム。
【0219】
(付記36)ロボットシステムをモデリングする方法であって、
前記ロボットシステムをモデルを使ってモデリングするステップであって、前記モデルが、複数のリンクで相互接続された複数の定義された型のセットの少なくともサブセットの複数のインスタンスを含み、各インスタンスが前記ロボットシステムの要素の記述であり、前記複数のインスタンス間の前記複数のリンクがそれらの間の関係を表す、ステップと、
前記モデルが複数の検証ルールを満たすかどうかを判定することによって、前記モデルを前記複数の検証ルールに照らして検証するステップと、を有し、
前記検証ルールは、複数の親子関係と相互接続された前記複数の定義された型の1つまたは複数の有向非巡回グラフの定義であって、前記複数の定義された型が複数のノードに対応し、前記複数の親子関係が前記1つまたは複数の有向非巡回グラフの複数の有向エッジに対応し、各定義された型が、その型のインスタンスが有効であるために満たさなければならないその型の型ルールを定義し、一対の型の間の各親子関係が、対応するエッジ方向に従ってそれらの型を互いに対して親型および子型として定義し、各子型が前記複数の親子関係に従って対応する複数の親型の各々の前記複数の型ルールを継承する、定義を備える、ことを特徴とする方法。
【0220】
(付記37)コンピュータ上で実行される場合に、付記36に記載の方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【0221】
(付記38)付記37に記載のコンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【0222】
(付記39)第1および第2の方法を含む一連の方法であって、前記第1および第2の方法の各々は、付記36に記載の方法であり、
前記第1の方法は、前記第1のロボットシステムの第1のモデルを用いて前記第1のロボットシステムをモデリングし、前記第2の方法は、前記第2のロボットシステムの第2のモデルを用いて前記第2のロボットシステムをモデリングし、
前記一連の方法は、さらに、前記第1のモデルと前記第2のモデルとの間の相互運用性を、
前記第2の方法の前記検証ルールに照らして前記第1のモデルを検証するステップ、および/または
前記第1の方法の前記検証ルールに照らして前記第2のモデルを検証するステップ、および/または
前記第1の方法の前記1つまたは複数の有向非巡回グラフの少なくとも第1のモデル固有部分と、前記第2の方法の前記1つまたは複数の有向非巡回グラフの第2のモデル固有部分との間の互換性を判定するステップによって判定することを含む、ことを特徴とする一連の方法。
【0223】
(付記40)1つまたは複数のコンピュータ上で実行される場合に、前記1つまたは複数のコンピュータに付記39に記載の一連の方法を実行させる一連のコンピュータプログラム。
【0224】
(付記41)付記40に記載の一連のコンピュータプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【0225】
(付記42)付記1から付記26のいずれかに記載のモデリング装置、または付記27から付記35のいずれかに記載のマルチ装置モデリングシステムを含むロボットシステム。
【0226】
(付記43)各モデルによってモデリングされた少なくとも1つのロボットを含むことを特徴とする付記42に記載のロボットシステム。
【0227】
開示された実施形態に対する変形は、図面、開示、及び添付の特許請求の範囲の検討から、本明細書に記載された原理及び技術を実施する際に当業者によって理解され、効果を奏することができる。特許請求の範囲において、「含む、備える(comprising)」という語は、他の要素またはステップを除外せず、不定冠詞「a」または「an」は、複数を除外するものではない。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせを有利に使用することができないことを示すものではない。特許請求の範囲におけるいかなる参照符号も、範囲を限定するものとして解釈されるべきではない。
【国際調査報告】