(57)【要約】      （修正有）【課題】ロボティクス環境のための制御システムソリューションを生成するシステムを提供する。【解決手段】システムにおいて、知識バス３０１は、複数のロボティクス分野に対応するリソースおよび能力に関する情報を含む知識リポジトリ３０２および複数の文脈上の問題に対応する情報を含む知識リポジトリ３０３を含む。ソリューション記述構成要素３０４により、ロボティクス環境のためのソリューション仕様を抽出し、ソリューションシンセサイザ構成要素３０５が、対応する合成設計またはソリューションに変換する。ソリューション検証構成要素３０６は、生成されたソリューションをシミュレート環境において検証する。自動構成および展開構成要素３０８は、自動作成された実装形態(または生成されたソリューション)を展開環境において展開する。運用構成要素３０９は、運用システムが想定通りに、初期設計で指定されたように動作することを保証する。【選択図】図３
2020004372.tif 000002
【特許請求の範囲】
【請求項１】
ロボティクス環境のための制御システムソリューションを生成する方法であって、
1つまたは複数のハードウェアプロセッサを介して複数のソースから情報の第1のセットを取得するステップであって、前記情報の第1のセットが複数のロボティクス環境に対応するロボティクス分野の知識を含み、前記複数のロボティクス環境がリアルタイム環境とシミュレーション環境とを含む、ステップ(401)と、
前記情報の第1のセットに基づいて、ソリューション記述構成要素を介して情報の第2のセットを抽出するステップであって、前記情報の第2のセットが前記複数のロボティクス環境に対応する1つまたは複数のソリューション仕様を含む、ステップ(402)と、
ソリューションシンセサイザ構成要素を介して、前記情報の第2のセットを前記複数のロボティクス環境のための1つまたは複数の設計ソリューションに変換するステップ(403)と、
前記1つまたは複数の設計ソリューションに基づいて複数のステップを実行するステップであって、前記複数のステップが、
(i)前記ソリューションシンセサイザ構成要素を介して、前記複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成するステップであって、前記1つまたは複数の制御システムソリューションが、アーキテクチャ設計と、前記複数のロボティクス環境において前記アーキテクチャ設計を実装するための複数の構成要素とを含む、ステップ(404(i))と、
(ii)前記ソリューションシンセサイザ構成要素を介して、前記シミュレーション環境においてシミュレーション活動のセットを実行するための1つまたは複数のシミュレーションモデルを生成するステップ(404(ii))と
を含む、ステップ(404)と
のプロセッサ実施ステップを含む、方法。
【請求項２】
前記情報の第2のセットを変換するステップが、前記情報の第1のセットに基づいて前記ソリューションシンセサイザ構成要素によって前記1つまたは複数の制御システムソリューションのための合成設計を生成するステップを含む、請求項1に記載の方法。
【請求項３】
前記合成設計が、前記複数のロボティクス環境の各々において実行されるべき複数ロボットの活動およびタスクのセットのための合成ソリューションを表す、請求項2に記載の方法。
【請求項４】
前記1つまたは複数の制御システムソリューションを生成するステップが、
(i)ドメイン固有言語(DSL)を使用して、複数のロボットオペレーティングシステム(ROS)に対応する実装コードのセットを生成するステップであって、前記複数のROSの各々が前記複数のロボティクス環境のうちの少なくとも1つに対応する、ステップと、
(ii)前記DSLを使用して、複数のロボットシミュレータに対応する1つまたは複数の構成ファイルを生成するステップであって、前記複数のロボットシミュレータの各々が前記複数のロボティクス環境のうちの少なくとも1つに対応する、ステップと、
(iii)前記生成された1つまたは複数の制御システムソリューションを検証するために、前記生成された合成設計に対応する1つまたは複数の設計仕様を生成するステップと
を含む、請求項1に記載の方法。
【請求項５】
前記生成された1つまたは複数の制御システムソリューションが、前記ソリューションシンセサイザ構成要素によって挙動モデルを抽出するために前記1つまたは複数のシミュレーションモデルに基づいて最適化され、前記挙動モデルが、前記複数のロボティクス環境において実行される複数のコマンドと複数の状態遷移とを含む、請求項1に記載の方法。
【請求項６】
前記最適化が、前記複数のロボティクス環境内で実行される前記複数のコマンドと前記複数の状態遷移とを検証するために前記挙動モデルに基づいてタスク実行ログのセットを実行することによって閉ループ検証を実行することを含む、請求項5に記載の方法。
【請求項７】
ロボティクス環境のための制御システムソリューションを生成するためのシステム(100)であって、
命令を記憶するメモリ(102)と、
1つまたは複数の通信インターフェース(106)と、
前記1つまたは複数の通信インターフェース(106)を介して前記メモリ(102)に結合された1つまたは複数のハードウェアプロセッサ(104)と
を備え、前記1つまたは複数のハードウェアプロセッサ(104)が前記命令によって、
複数のソースから情報の第1のセットを取得することであって、前記情報の第1のセットが複数のロボティクス環境に対応するロボティクス分野の知識を含み、前記複数のロボティクス環境がリアルタイム環境とシミュレーション環境とを含む、ことと、
前記情報の第1のセットに基づいて、ソリューション記述構成要素(304)を介して情報の第2のセットを抽出することであって、前記情報の第2のセットが前記複数のロボティクス環境に対応する1つまたは複数のソリューション仕様を含む、ことと、
ソリューションシンセサイザ構成要素(305)を介して、前記情報の第2のセットを前記複数のロボティクス環境のための1つまたは複数の設計ソリューションに変換することと、
前記1つまたは複数の設計ソリューションに基づいて複数のステップを実行することであって、前記複数のステップが、
(i)前記ソリューションシンセサイザ構成要素(305)を介して、前記複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成するステップであって、前記1つまたは複数の制御システムソリューションが、アーキテクチャ設計と、前記複数のロボティクス環境において前記アーキテクチャ設計を実装するための複数の構成要素とを含む、ステップと、
(ii)前記ソリューションシンセサイザ構成要素(305)を介して、前記シミュレーション環境においてシミュレーション活動のセットを実行するための1つまたは複数のシミュレーションモデルを生成するステップと
を含む、ことと
を行うように構成される、システム(100)。
【請求項８】
前記1つまたは複数のハードウェアプロセッサ(104)が、前記情報の第1のセットに基づいて前記ソリューションシンセサイザ構成要素(305)を介して前記1つまたは複数の制御システムソリューションのための合成設計を生成することによって前記情報の第2のセットを変換するように構成される、請求項7に記載のシステム(100)。
【請求項９】
前記合成設計が、前記複数のロボティクス環境の各々において実行されるべき複数ロボットの活動およびタスクのセットのための合成ソリューションを表す、請求項8に記載のシステム(100)。
【請求項１０】
前記1つまたは複数のハードウェアプロセッサ(104)が、
(i)ドメイン固有言語(DSL)(307)を使用して、複数のロボットオペレーティングシステム(ROS)に対応する実装コードのセットを生成することであって、前記複数のROSの各々が前記複数のロボティクス環境のうちの少なくとも1つに対応する、ことと、
(ii)前記DSL(307)を使用して、複数のロボットシミュレータに対応する1つまたは複数の構成ファイルを生成することであって、前記複数のロボットシミュレータの各々が前記複数のロボティクス環境のうちの少なくとも1つに対応する、ことと、
(iii)前記生成された1つまたは複数の制御システムソリューションを検証するために、前記生成された合成設計に対応する1つまたは複数の設計仕様を生成することと
によって前記1つまたは複数の制御システムソリューションを生成するように構成される、請求項7に記載のシステム(100)。
【請求項１１】
前記1つまたは複数のハードウェアプロセッサ(104)が、前記ソリューションシンセサイザ構成要素(305)を介して挙動モデルを抽出するために、前記1つまたは複数のシミュレーションモデルに基づいて、前記生成された1つまたは複数の制御システムソリューションを最適化するように構成され、前記挙動モデルが、前記複数のロボティクス環境内で実行される複数のコマンドと複数の状態遷移とを含む、請求項7に記載のシステム(100)。
【請求項１２】
前記最適化が、前記複数のロボティクス環境内で実行される前記複数のコマンドと前記複数の状態遷移とを検証するために前記挙動モデルに基づいてタスク実行ログのセットを実行することによって閉ループ検証を実行することを含む、請求項11に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書の開示は、全体的には、ロボティクス環境のための制御システムソリューションを生成することに関し、より具体的には、ロボティクス環境のための制御システムソリューションを生成するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ロボットおよび関連技術は、デジタルおよびオートメーションの時代に様々な用途および産業において広く使用されている。ロボットはしばしば、たとえば、繰り返しの製造手順を実行するために使用される。ロボットは、たとえば、正確に、すばやく、そして繰り返して、構成要素を配置し、選び取り、ハンダ付けし、締結する能力を有する。これは、ロボットが、構築時間とコストとを低減しながら、製品の品質を改善することを可能にし得る。結果として、ロボットは、人間が少しも価値がないものと感じる可能性がある繰り返しの手順を実行するようによく適合する。ロボットに関する多くの用途、分野、および結果として生じる構造が存在する。例は、多岐にわたり、数ある中で、軍事分野における無人自律車両、商業分野における監視および警備ロボット、産業分野におけるロボットマニピュレータアーム、専門サービス分野における医薬品輸送ロボット、家庭用掃除機ロボット、個人用の脚式娯楽ロボットを含む。メカニズム、電子機器、センサ、アクチュエータ、およびそれらの相互接続もすべて、ロボットによって異なる。さらに、ロボットの挙動を制御するアーキテクチャまたはソリューションも、ロボティクス用途によって異なる。
【０００３】
現在のロボティクスの、および一般的にロボットの用途の根本的な問題は、タスク要件の自然言語からコンパイルされ統合された作業システムへの複数の変換に関連する。タスクを規定し、要件をプリミティブなアルゴリズムに変換し、それらをソフトウェアアプリケーションの一般的で特定のサービスと統合するには、多大なリソースと複数のチームとを必要とする。
【０００４】
ロボティクスソリューションを提供する従来のシステムおよび方法は、特定のロボットの用途、分野、および選択された構造に特化されてきた。結果として、ロボティクスアーキテクチャは、本質的にモノリシックであり、相互運用性に欠け、主流のオープンスタンダードの使用に欠け、結局コストがかかる。たとえば、特定の環境および分野のための新しいロボティクスアプリケーションが開発されることになっている場合、基礎となるメカニズム、電子機器、センサ、およびアクチュエータの組み合わせが選択および構成され、そのようなハードウェアと対話するためのソフトウェア全体、ならびに所望のアプリケーションの挙動を具体化するためのソフトウェアが最初から開発される、ならびに/または、既存の特化されたロボティクスアプリケーション、分野、および/もしくは構造から新しいロボティクスアプリケーション、分野、および/もしくは構造に再利用される。同様に、新しいセンサ、または新しい挙動などが既存のロボティクスアプリケーションに追加される場合、新しいロボティクスアプリケーションをモノリシックアーキテクチャに統合する面倒なプロセスが生じる。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示の実施形態は、従来のシステムにおいて発明者らによって認識された上述の技術的問題のうちの1つまたは複数に対する解決策として技術的改善を提示する。たとえば、一実施形態ではロボティクス環境のための制御システムソリューションを生成するための方法が提供され、方法は、1つまたは複数のハードウェアプロセッサを介して複数のソースから情報の第1のセットを取得するステップであって、情報の第1のセットが複数のロボティクス環境に対応するロボティクス分野の知識を含み、複数のロボティクス環境がリアルタイム環境とシミュレーション環境とを含む、ステップと、情報の第1のセットに基づいて、ソリューション記述構成要素を介して情報の第2のセットを抽出するステップであって、情報の第2のセットが複数のロボティクス環境に対応する1つまたは複数のソリューション仕様を含む、ステップと、ソリューションシンセサイザ構成要素を介して、情報の第2のセットを複数のロボティクス環境のための1つまたは複数の設計ソリューションに変換するステップと、1つまたは複数の設計ソリューションに基づいて複数のステップを実行するステップであって、複数のステップが、(i)ソリューションシンセサイザ構成要素を介して、複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成するステップであって、1つまたは複数の制御システムソリューションが、アーキテクチャ設計と、複数のロボティクス環境においてアーキテクチャ設計を実装するための複数の構成要素とを含む、ステップと、(ii)ソリューションシンセサイザ構成要素を介して、シミュレーション環境においてシミュレーション活動のセットを実行するための1つまたは複数のシミュレーションモデルを生成するステップとを含む、ステップと、情報の第1のセットに基づいてソリューションシンセサイザ構成要素によって1つまたは複数の制御システムソリューションのための合成設計を生成することによって情報の第2のセットを変換するステップと、1つまたは複数の制御システムソリューションを、(i)ドメイン固有言語(DSL)を使用して、複数のロボットオペレーティングシステム(ROS)に対応する実装コードのセットを生成するステップであって、複数のROSの各々が複数のロボティクス環境のうちの少なくとも1つに対応する、ステップと、(ii)DSLを使用して、複数のロボットシミュレータに対応する1つまたは複数の構成ファイルを生成するステップであって、複数のロボットシミュレータの各々が複数のロボティクス環境のうちの少なくとも1つに対応する、ステップと、(iii)生成された1つまたは複数の制御システムソリューションを検証するために、生成された合成設計に対応する1つまたは複数の設計仕様を生成するステップとによって生成するステップと、1つまたは複数のシミュレーションモデルに基づいて、ソリューションシンセサイザ構成要素によって、挙動モデルを抽出するために、生成された1つまたは複数の制御システムソリューションを最適化するステップであって、挙動モデルが、複数のロボティクス環境内で実行される複数のコマンドと複数の状態遷移とを含む、ステップと、複数のロボティクス環境内で実行される複数のコマンドと複数の状態遷移とを検証するために、挙動モデルに基づいてタスク実行ログのセットを実行することによって閉ループ検証を実行するステップとを含む。
【０００６】
別の態様では、ロボティクス環境のための制御システムソリューションを生成するためのシステムが提供され、システムは、命令を記憶するメモリと、1つまたは複数の通信インターフェースと、1つまたは複数の通信インターフェースを介してメモリに結合された1つまたは複数のハードウェアプロセッサとを備え、1つまたは複数のハードウェアプロセッサが命令によって、複数のソースから情報の第1のセットを取得することであって、情報の第1のセットが複数のロボティクス環境に対応するロボティクス分野の知識を含み、複数のロボティクス環境がリアルタイム環境とシミュレーション環境とを含む、ことと、情報の第1のセットに基づいて、ソリューション記述構成要素を介して情報の第2のセットを抽出することであって、情報の第2のセットが複数のロボティクス環境に対応する1つまたは複数のソリューション仕様を含む、ことと、ソリューションシンセサイザ構成要素を介して、情報の第2のセットを複数のロボティクス環境のための1つまたは複数の設計ソリューションに変換することと、1つまたは複数の設計ソリューションに基づいて複数のステップを実行することであって、複数のステップが、(i)ソリューションシンセサイザ構成要素を介して、複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成するステップであって、1つまたは複数の制御システムソリューションが、アーキテクチャ設計と、複数のロボティクス環境においてアーキテクチャ設計を実装するための複数の構成要素とを含む、ステップと、(ii)ソリューションシンセサイザ構成要素を介して、シミュレーション環境においてシミュレーション活動のセットを実行するための1つまたは複数のシミュレーションモデルを生成するステップとを含む、ことと、情報の第1のセットに基づいてソリューションシンセサイザ構成要素を介して1つまたは複数の制御システムソリューションのための合成設計を生成することによって情報の第2のセットを変換することと、1つまたは複数の制御システムソリューションを、(i)ドメイン固有言語(DSL)を使用して、複数のロボットオペレーティングシステム(ROS)に対応する実装コードのセットを生成することであって、複数のROSの各々が複数のロボティクス環境のうちの少なくとも1つに対応する、ことと、(ii)DSLを使用して、複数のロボットシミュレータに対応する1つまたは複数の構成ファイルを生成することであって、複数のロボットシミュレータの各々が複数のロボティクス環境のうちの少なくとも1つに対応する、ことと、(iii)生成された1つまたは複数の制御システムソリューションを検証するために、生成された合成設計に対応する1つまたは複数の設計仕様を生成することとによって生成することと、1つまたは複数のシミュレーションモデルに基づいて、ソリューションシンセサイザ構成要素を介して、挙動モデルを抽出するために、生成された1つまたは複数の制御システムソリューションを最適化することであって、挙動モデルが、複数のロボティクス環境内で実行される複数のコマンドと複数の状態遷移とを含む、ことと、複数のロボティクス環境内で実行される複数のコマンドと複数の状態遷移とを検証するために、挙動モデルに基づいてタスク実行ログのセットを実行するこ���によって閉ループ検証を実行することとを行うように構成される。
【０００７】
さらに別の態様では、1つまたは複数のハードウェアプロセッサによって実行されると、ロボティクス環境のための制御システムソリューションを生成するための方法を1つまたは複数のハードウェアプロセッサに実行させる1つまたは複数の命令を含む1つまたは複数の非一時的機械可読情報記憶媒体が提供され、方法は、複数のソースから情報の第1のセットを取得するステップであって、情報の第1のセットが複数のロボティクス環境に対応するロボティクス分野の知識を含み、複数のロボティクス環境がリアルタイム環境とシミュレーション環境とを含む、ステップと、情報の第1のセットに基づいて、ソリューション記述構成要素を介して情報の第2のセットを抽出するステップであって、情報の第2のセットが複数のロボティクス環境に対応する1つまたは複数のソリューション仕様を含む、ステップと、ソリューションシンセサイザ構成要素を介して、情報の第2のセットを複数のロボティクス環境のための1つまたは複数の設計ソリューションに変換するステップと、1つまたは複数の設計ソリューションに基づいて複数のステップを実行するステップであって、複数のステップが、(i)ソリューションシンセサイザ構成要素を介して、複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成するステップであって、1つまたは複数の制御システムソリューションが、アーキテクチャ設計と、複数のロボティクス環境においてアーキテクチャ設計を実装するための複数の構成要素とを含む、ステップと、(ii)ソリューションシンセサイザ構成要素を介して、シミュレーション環境においてシミュレーション活動のセットを実行するための1つまたは複数のシミュレーションモデルを生成するステップとを含む、ステップと、情報の第1のセットに基づいてソリューションシンセサイザ構成要素によって1つまたは複数の制御システムソリューションのための合成設計を生成することによって情報の第2のセットを変換するステップと、1つまたは複数の制御システムソリューションを、(i)ドメイン固有言語(DSL)を使用して、複数のロボットオペレーティングシステム(ROS)に対応する実装コードのセットを生成するステップであって、複数のROSの各々が複数のロボティクス環境のうちの少なくとも1つに対応する、ステップと、(ii)DSLを
使用して、複数のロボットシミュレータに対応する1つまたは複数の構成ファイルを生成するステップであって、複数のロボットシミュレータの各々が複数のロボティクス環境のうちの少なくとも1つに対応する、ステップと、(iii)生成された1つまたは複数の制御システムソリューションを検証するために、生成された合成設計に対応する1つまたは複数の設計仕様を生成するステップとによって生成するステップと、1つまたは複数のシミュレーションモデルに基づいて、ソリューションシンセサイザ構成要素によって、挙動モデルを抽出するために、生成された1つまたは複数の制御システムソリューションを最適化するステップであって、挙動モデルが、複数のロボティクス環境内で実行される複数のコマンドと複数の状態遷移とを含む、ステップと、複数のロボティクス環境内で実行される複数のコマンドと複数の状態遷移とを検証するために、挙動モデルに基づいてタスク実行ログのセットを実行することによって閉ループ検証を実行するステップとを含む。
【０００８】
前述の一般的な説明と以下の詳細な説明の両方は、例示的で説明的なものにすぎず、特許請求されているような本発明の制限的なものではないことが理解されるべきである。
【０００９】
本開示に組み込まれ、その一部を構成する添付の図面は、例示的な実施形態を示し、説明とともに、開示された原理を説明するのに役立つ。
【図面の簡単な説明】
【００１０】
【図１】本開示のいくつかの実施形態による、ロボティクス環境のための制御システムソリューションを生成するためのシステムのブロック図である。
【図２】本開示のいくつかの実施形態による、ロボティクス環境のために生成された制御システムソリューションが確認するミドルウェアアーキテクチャまたはソリューションアーキテクチャを示す図である。
【図３】本開示のいくつかの実施形態による、ロボティクス環境のための制御システムソリューションを生成するためのシステムの構成要素およびフローを示すアーキテクチャ図である。
【図４Ａ】本開示のいくつかの実施形態による、ロボティクス環境のための制御システムソリューションを生成するプロセス内に含まれるステップを示すフロー図である。
【図４Ｂ】本開示のいくつかの実施形態による、ロボティクス環境のための制御システムソリューションを生成するプロセス内に含まれるステップを示すフロー図である。
【図５】本開示のいくつかの実施形態による、複数のソースから取得され、知識バス内に格納されたロボティクス分野の知識の一例を示す図である。
【図６】本開示のいくつかの実施形態による、複数のソースから取得され、知識バス内に投入されるロボティクス分野の知識の一例を示す図である。
【図７】本開示のいくつかの実施形態による、ペトリネットモデルに変換された合成設計の一例を示す図である。
【図８】本開示のいくつかの実施形態による、複数のロボティクス環境のために生成された1つまたは複数の制御システムソリューションを示す図である。
【図９】本開示のいくつかの実施形態による、生成された1つまたは複数の制御システムソリューションの最適化を容易にするために単一のロボット構成要素について抽出された挙動モデルの一例を示す図である。
【図１０】本開示のいくつかの実施形態による、生成された1つまたは複数の制御システムソリューションの最適化を容易にするために1つまたは複数の構成要素コントローラにわたるロボット動作について抽出された別の挙動モデルの一例を示す図である。
【発明を実施するための形態】
【００１１】
例示的な実施形態について、添付の図面を参照して説明する。図において、参照番号の左端の数字は、参照番号が最初に現れる図を識別する。都合がよいときはいつでも、同じ参照番号は、同じまたは同様の部分を指すために図面全体を通して使用される。開示された原理の例および特徴が本明細書で説明されるが、開示された実施形態の要旨および範囲から逸脱することなく、修正形態、適応形態、および他の実装形態が可能である。以下の詳細な説明は、例示のみとして考慮されるべきであり、真の範囲および要旨は、以下の特許請求の範囲によって示されることが意図される。
【００１２】
本開示の実施形態は、ロボティクス環境のための制御システムソリューションを生成するためのシステムおよび方法を提供する。ロボティクスアプリケーションが開発され実施されている潜在的な領域の多様性が存在する。主要な領域は、製造業、ヘルスケア、および軍事用途などを含む。ロボットは、人間が入るには危険すぎる環境においてタスクを実行する上で重要な役割も演じる。ロボットを設計するにはかなりの努力が費やされてきたが、ロボットの開発に関連する制限がある。ロボットを設計することに関連する現在の制限は、ロボットを設計および開発することに関与するスキルの複雑な性質と、新しいロボットの設計への拡張のための現在のロボット設計に関する移植性の欠如と、ロボットデバイスが予期しない事態または状況に対応できないこととを含む。
【００１３】
一般に、挙動プランを決定および実行するためのロボットの動作制御は、計算システム上で(アプリケーションのような)プログラムコードを実行することによって行われる。ロボティクスに属する従来のシステムおよび方法において使用されるロボット制御ソフトウェアアーキテクチャは、特定の用途、すなわち、ペット型ロボットに限定されているので、広い意味で一般的な自律ロボット制御アーキテクチャとして使用することができない。ロボティクスソリューションを提供する従来のシステムおよび方法は、特定のロボット用途、分野、および選択された構造に特化されてきた。結果として、現在のロボティクスアーキテクチャは、本質的にモノリシックであり、相互運用性に欠け、主流のオープンスタンダードの使用に欠け、結局コストがかかる。
【００１４】
上記に加えて、従来のシステムおよび方法は、複数の他の欠点を抱えている。たとえば、従来のシステムおよび方法のいずれも、ロボティクスならびにロボティクスのための統合エンジニアリング言語におけるアプリケーション(倉庫)分野固有の語彙の統合を提供しない。さらに、従来のシステムおよび方法のいずれも、ロボティクス制御ソリューションの様々な態様の最適化および性能調整を提供しない。
【００１５】
したがって、ロボティクス制御ソリューションが実施しなければならないプロセスおよびタスクの高レベルの記述を生成することと、1つまたは複数のタスク記述に基づいて特定のタスクを実行するためにワークフロー定義のセットを生成することと、ソリューション設計および合成の自動生成と、複数のソースから得られたロボティクス分野の知識に基づいて、完全に自動的に、ロボティクス制御ソリューション全体ならびにソリューションが実行される必要がある環境の構成を生成することとを提供する技術に対する必要性が存在する。
【００１６】
ここで、同様の参照文字が図面全体を通して一貫して対応する特徴を示す図面、より具体的には図1から図10を参照すると、好ましい実施形態が示されており、これらの実施形態について、以下の例示的なシステムおよび/または方法の文脈において説明する。
【００１７】
図1は、本開示のいくつかの実施形態による、ロボティクス環境のための制御システムソリューションを生成するためのシステム100のブロック図である。一実施形態では、システム100は、1つまたは複数のプロセッサ104と、通信インターフェースデバイスまたは入力/出力(I/O)インターフェース106と、1つまたは複数のプロセッサ104に動作可能に結合された1つまたは複数のデータ記憶デバイスまたはメモリ102とを含む。ハードウェアプロセッサである1つまたは複数のプロセッサ104は、1つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、状態機械、論理回路、および/または動作命令に基づいて信号を操作する任意のデバイスとして実装され得る。数ある能力の中でも、プロセッサは、メモリ102内に記憶されたコンピュータ可読命令を取り出して実行するように構成される。一実施形態では、システム100は、ラップトップコンピュータ、ノートブック、ハンドヘルドデバイス、ワークステーション、メインフレームコンピュータ、サーバ、ネットワーククラウドなどのような様々なコンピューティングシステムにおいて実装され得る。
【００１８】
I/Oインターフェースデバイス106は、たとえば、ウェブインターフェース、グラフィカルユーザインターフェースなどの様々なソフトウェアインターフェースおよびハードウェアインターフェースを含むことができ、有線ネットワーク、たとえば、LAN、ケーブルなどと、WLAN、セルラー、または衛星のようなワイヤレスネットワークとを含む多種多様なネットワークN/Wおよびプロトコルタイプ内での複数の通信を容易にすることができる。一実施形態では、I/Oインターフェースデバイスは、いくつかのデバイスを互いにまたは別のサーバに接続するための1つまたは複数のポートを含むことができる。
【００１９】
メモリ102は、たとえば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアクセスメモリ(DRAM)のような揮発性メモリ、ならびに/または読み出し専用メモリ(ROM)、消去可能プログラム可能ROM、フラッシュメモリ、ハードディスク、光ディスク、および磁気テープのような不揮発性メモリを含む、当該技術分野で公知の任意のコンピュータ可読媒体を含んでもよい。
【００２０】
本開示の一実施形態によれば、図2を参照すると、提案された方法論が確認するミドルウェアアーキテクチャまたはソリューションアーキテクチャが考慮され得る。再び図2を参照すると、提案された開示は、1つまたは複数のロボットソリューションが望まれる可能性がある複数の問題を含む複数のロボット分野用のロボットソリューションを作成するために使用され得る汎用ミドルウェアアーキテクチャを提供することに気づき得る。したがって、ミドルウェアアーキテクチャは、作成されるべき複数のロボットソリューションのための標準アーキテクチャとして役立つ場合がある。
【００２１】
さらに再び図2を参照すると、ミドルウェアアーキテクチャまたはソリューションアーキテクチャは、知識層201を含み、知識層201は、複数のロボット分野または関連分野(たとえば、倉庫、検索、およびレスキュー)および対応するソリューション分野に対応する知識を含むことに気づき得る。さらに再び図2を参照すると、1つまたは複数のロボットソリューションが実行する(ロボットソリューションの生成後)コンテキスト層202を含むことに気づき得る。コンテキスト層202は、ミドルウェアアーキテクチャが動作するのに必要なコンテキストに関するすべての情報を維持する。高レベル記述構成要素203は、1つまたは複数のロボットソリューションが実施するプロセスおよびタスクの高レベル記述を含む。たとえば、タスクは、1つまたは複数の倉庫ロボットによって倉庫内の人工物のピックアンドプレースを自動化することであり得る。
【００２２】
さらに再び図2を参照すると、ワークフロー204は、1つまたは複数のロボットタスク記述に基づいて1つまたは複数の特定のタスクを実行するためにワークフロー定義のセットを含む。ワークフロー204は、1つまたは複数の特定のタスクを実行するためにロボットが実行しなければならない命令の特定のセット、たとえば、倉庫内の特定のラックから特定の物体を選び取るための命令に関する詳細を含む。実装構成要素205は、1つまたは複数のワークフローをインターフェースし実行するための1つまたは複数のアプリケーションプログラミングインターフェース(API)を提供する。実装構成要素205は、命令が1つまたは複数の物理的タスクを実行するために実行されるように、基礎となるロボティクスハードウェアとの1つまたは複数のインターフェースをさらに備える。最後に、実際の実行前に1つまたは複数のワークフローを検証するための実現および実行構成要素206。
【００２３】
本開示の一実施形態によれば、図3を参照すると、技術的構成要素を含む提案された開示の技術的アーキテクチャが詳細に検討され得る。再び図3を参照すると、知識バス301は、複数のロボティクス分野に対応する知識を取得することを容易にする。知識バス301は、2つの知識リポジトリ、すなわち、知識リポジトリ302および知識リポジトリ303を含む。知識リポジトリ302は、複数のロボティクス分野に対応するリソースおよび能力に関する情報を含む。知識リポジトリ303は、複数の文脈上の問題に対応する情報を含む。
【００２４】
ソリューション記述構成要素304は、ロボティクス環境のためのソリューション仕様を抽出することを容易にする。ソリューションシンセサイザ構成要素305は、抽出されたソリューション仕様を対応する合成設計またはソリューションに変換する。ソリューション検証構成要素306は、生成されたソリューションをシミュレート環境において検証する。ドメイン固有言語(DSL)307は、1つまたは複数のプログラミング言語における生成されたソリューションの記述を容易にする。自動構成および展開構成要素308は、自動作成された実装形態(または生成されたソリューション)を展開環境において展開する。運用構成要素309は、運用システムが想定通りに、初期設計で指定されたように動作することを保証する。
【００２５】
図4A〜図4Bは、図1を参照し、本開示のいくつかの実施形態による、ロボティクス環境のための制御システムソリューションを生成するための方法の例示的なフロー図を示す。一実施形態では、システム100は、1つまたは複数のハードウェアプロセッサ104に動作可能に結合されたメモリ102の1つまたは複数のデータ記憶デバイスを備え、1つまたは複数のプロセッサ104による方法のステップの実行のための命令を記憶するように構成される。ここで、本開示の方法のステップについて、図1およびフロー図に示すようにシステム100の構成要素を参照して説明する。本開示の実施形態では、ハードウェアプロセッサ104は、命令によって構成されると、本明細書に記載の1つまたは複数の方法論を実行する。
【００２６】
本開示の一実施形態によれば、ステップ401において、1つまたは複数のハードウェアプロセッサ104は、複数のソースから情報の第1のセットを取得し、ここで、情報の第1のセットは、複数のロボティクス環境に対応するロボティクス分野の知識を含み、複数のロボティクス環境は、リアルタイム環境とシミュレート環境とを含む。
【００２７】
ロボットおよび関連技術は、複数の用途および分野にわたって適用されている。複数のロボティクス環境は、とりわけ、数ある中で、一連のタスクを実行する倉庫内のロボット、軍事分野における無人自律型ロボット車両、商業分野における監視および警備ロボット、産業分野におけるロボットマニピュレータアーム、専門サービス分野における医薬品輸送ロボット、家庭用掃除機ロボット、個人用の脚式娯楽ロボットを含んでもよい。
【００２８】
さらに、複数のロボティクス環境は、リアルタイムおよび/またはシミュレートであってもよい。当該技術分野で知られているように、物理的ロボットの現実世界の環境は、「物理的」または「リアルタイム環境」であり、物理的環境のコンピュータ化シミュレーションは、「仮想環境」または「シミュレート環境」を含む。コンピューティングデバイスによってロードされると、ソフトウェアは、物理的ロボットと物理的環境とをシミュレートする1つまたは複数の仮想ロボットおよび仮想環境の1つまたは複数の視覚的画像を提供する。加えて、ソフトウェアは、物理的ロボットと物理的環境との間の相互作用をシミュレートする1つまたは複数の仮想ロボットと仮想環境との間の相互作用を提供する。
【００２９】
一実施形態では、情報の第1のセットは、複数のロボティクス分野からの知識と、複数のロボティクス分野に対応するリソースおよび能力に関する情報と、1つまたは複数のロボットソリューションが実施しなければならない複数のプロセスおよびタスク(たとえば、1つまたは複数のロボットによって倉庫内の人工物のピックアンドプレースを自動化するためのタスク)の高レベル記述と、タスクに基づいて複数のタスクを実行するためのワークフロー定義のセットと、複数のタスクを実行するために1つまたは複数のロボットが実行しなければならない命令のセットとを含む。
【００３０】
一実施形態では、1つまたは複数のハードウェアプロセッサ104は、知識バス301を介して情報の第1のセットを取得してもよい。知識バス301は、複数のロボティクス分野に対応する知識を取得することを容易にする。一実施形態では、知識バス301は、知識リポジトリ302を含んでもよく、知識リポジトリ302は、ロボティクスソフトウェアを実装するために使用され得る複数のロボティクス分野に対応するリソースおよび能力に関する知識または情報を含んでもよい。別の実施形態では、知識バス301は、複数の文脈上の問題、たとえば、特定の倉庫などに関する知識または情報を含む別のリポジトリ303を含んでもよい。
【００３１】
一実施形態では、1つまたは複数のハードウェアプロセッサ104は、複数のソースから情報の第1のセットを取得する。たとえば、知識リポジトリ302および303から情報の第1のセットを取得することに加えて、1つまたは複数のハードウェアプロセッサ104は、1つまたは複数の既存のデータベースから(知識バス301を実装することによって)情報の第1のセットを取得してもよく、または、人間の活動を推測もしくは観察することを介して既存のロボットによって取り込まれたロボティクス分野に関する情報のセットをさらに取得してもよい。
【００３２】
ステップ401の例示的な実装形態において、図5〜図6を参照すると、倉庫調達のために複数のソースから取得され、知識バス301内に格納された情報の第1のセットまたはロボティクス分野の知識が参照され得る。再び図5〜図6を参照すると、ロボティクス分野の知識が対応する挙動の知識にさらに関連付けられていることに気づき得る。例示的な実装形態では、挙動の知識は、以下のようにDSL307を使用して取り込まれてもよい。
InterfaceDescription Gripper_ID {
commands {
OPEN_GRIPPER_PALM[std msqs.String mode = open], MOVE_ARM_TO_OBJECT_LOCATION(asynch true) [ Object Location object_location],
CLOSE_GRIPPER_PALM[std mscps.Strinq mode = open]
operatingStates {
START [ ],
END [ ]
}
responses {
RESPONSE[std msqs.Strinq msg]
}
}
controlNode Gripper_CN{
Associated Interface Description : Gripper ID
commandResponseBlock {
Command gripper.Gripper_ID.OPEN_GRIPPER_PALM {
Transitions {
currentstate gripper.Gripper_ID.START {
exitAction Action {
Op open_gripper_palm_request_script inputItems {
Gripper_ID.OPEN_GRIPPER_PALM.mode )
execute
"platform:/resource/Gripper_Warehouse/operation_scripts/manipulate_pal
m_request_script.py"
) => nextState gripper.Gripper_ID.END (
entryAction Action [
Op open_gripper_palm_response_script
//execute "platform:/resource/Gripper_Warehouse/operation
scripts/manipulate palm response script.py"
}
) => nextState .gripper.GRIPPER_ID.END (
entryAction Action [
Op open_gripper_palm_response_script
//execute "platform:/resource/Gripper_Warehouse/operation scripts/manipulate palm response script.py"
]
)
}
ResponseBlock {
【００３３】
本開示の一実施形態によれば、ステップ402において、1つまたは複数のハードウェアプロセッサ104は、情報の第1のセットに基づいて、ソリューション記述構成要素304を介して情報の第2のセットを抽出し、情報の第2のセットは、複数のロボティクス環境に対応する1つまたは複数のソリューション仕様を含む。一実施形態では、1つまたは複数のソリューション仕様は、1つまたは複数のプログラミング言語、たとえば、DSL307における1つまたは複数のソリューションの記述を含み、1つまたは複数のソリューションは、複数のロボティクス環境のためのロボティクスソフトウェアによって実装され実行される。
【００３４】
一実施形態では、1つまたは複数のプログラミング言語(たとえば、DSL307)は、1つまたは複数のプログラミング言語の対応する語彙において、知識バス301から取得された情報の第1のセットに対応する複数の概念および関係を統合する。ステップ402の例示的な実装形態では、ソリューション記述構成要素304によって抽出された情報の第2のセットは、以下のようであってもよい。
Resource : Mobile Robot
Description : The "Mobile Robot" consists of two components. The "Mobile Robot" has one “Simple_Mobile_Chassis_With_Two_Wheels. The -Mobile Robot" has a -Simple_Arm_With_Gripper".
Abstract Solution Move Pick Drop:
* The Mobile Robot" should be able to "Move To Location" of Rack *
*The Mobile Robot" should be able to pick the SmallCan".
* To pick Mobile Robot" should do the following:-
* The "Mobile Robot" should be able to "Open Gripper Palm on "Bin".
* The "Mobile Robot" should be able to "MoveArm" to the location of SmallCan.
* The "Mobile Robot" should be able to Close Gripper Palm and hold the SmallCan". end
* The "Mobile Robot" should be able to "Move To Location" of "Bin".
* The "Mobile Robot" shall drop the "SmallCan in the 'Bin'.
* To drop "Mobile Robot" should do the following:-
* The "Mobile Robot" should be able to "Move Arm" to the target location in the "Bin".
* The "Mobile Robot" should be able to "Open Gripper Palm" and drop the "SmallCan". end
Solution 1: -SmallCan" = -Small_Coke_Can_00001- , "Bin" = "Bin_00001", "Rack" = "Rack_0001"
【００３５】
本開示の一実施形態によれば、ステップ403において、1つまたは複数のハードウェアプロセッサ104は、ソリューションシンセサイザ構成要素305を介して、情報の第2のセットを、複数のロボティクス環境のための1つまたは複数の設計ソリューションに変換する。ソリューションシンセサイザ構成要素305は、ソリューション記述言語(たとえば、監視および制御仕様モデリング言語)を使用して、1つまたは複数のソリューション仕様を1つまたは複数の設計ソリューションに変換し、1つまたは複数の設計ソリューションは、ロボットソフトウェアを含むロボットアプリケーションに対応し、1つまたは複数の設計ソリューションは、ロボットアプリケーションまたはロボットソフトウェアのための1つまたは複数の具体的な設計を表す。
【００３６】
一実施形態では、情報の第2のセットを変換するステップは、ソリューションシンセサイザ構成要素305を実装することによって生成されるべき最終出力(すなわち、制御システムソリューション)のための合成設計を生成することを含み、合成設計は、監視および制御仕様モデリング言語を使用して生成される。一実施形態では、合成設計は、複数のロボット環境の各々において実行されるべき複数ロボットの活動およびタスクのセットのための合成されたソリューションを表す。
【００３７】
ステップ403の例示的な実装形態では、合成設計または1つまたは複数の設計ソリューションが参照され得る。以下の例を参照すると、合成設計は、実行されるべき複数ロボットの活動およびタスクのセットのための合成されたソリューション、たとえば、「OPEN_GRIPPER_PALM」を表し、「OPEN_GRIPPER_PALM」が成功した場合、実行されるべき次の活動は、「MOVE"ARM_TO_OBJECTS」などである。
1つまたは複数の設計ソリューション
ActivityDiagram PICK_TASK produces outcomes
(succeeded,aborted,preempted)
has activities {
Activity OPEN GRIPPER PALM{
requireCapability {
gripper.Gripper ID.OPEN GRIPPER PALM
}
conditions {
if ( outcome is succeeded ) nextActivity : MOVE ARM TO OBJECT,
if(outcome is preempted) final outcome : PICK TASK.preempted,
if(outcome is aborted) final outcome : PICK TASK.aborted
}
},
Activity MOVE_ARM_TO_OBJECT{
inputData : {
Object Location
}
requireCapability
gripper.Gripper_ID.MOVE_ARM TO OBJECT LOCATION
)
conditions {
if ( outcome is succeeded ) nextActivity : CLOSE GRIPPER PALM,
if(outcome is preempted) final outcome : PICK_TASK.preempted,
if(outcome is aborted) final outcome : PICK TASK.aborted
}
},
Activity CLOSE GRIPPER_PALM{
requireCapability {
gripper.Gripper_ID.CLOSE_GRIPPER_PALM
}
conditions {
Synthesized design generated-
ActivityDiagram MOVE_TASK produces outcomes {
succeded, aborted
}
has activities
{
Activity GO_TO_DESTINATION{
inputData : {
Pick Location
}
requireCapability {
mobile_base.Navigation_ID.MOVE_TO_LOCATION
}
conditions {
if ( outcome is reached_destination ) final outcome : succeeded
}
}
}
【００３８】
一実施形態では、ソリューションシンセサイザ構成要素305によって生成された1つもしくは複数の設計ソリューションまたは合成設計は、たとえば、ペトリネットモデルを介して、1つまたは複数の正式な検証方法を使用して検証されてもよい。例示的な実装形態では、実行されるべき複数ロボットの活動およびタスクのセットを含む合成設計は、1つまたは複数のハードウェアプロセッサ104によってペトリネットモデルに変換されてもよく、変換された合成設計に基づいて、実行されるべき複数ロボットの活動およびタスクのセットが検証されてもよい。
【００３９】
例示的な実装形態では、図7を参照すると、ペトリネットモデルに変換された合成設計の一例が参照され得る。再び図7を参照すると、変換された合成設計は、倉庫調達のために実行されるべき複数ロボットの活動およびタスクのセット、たとえば、物体検出(object_detect)、把持計画(Grasp_Plan)などを含むことに気づき得る。
【００４０】
一実施形態では、再び挙動知識とともにステップ401および402の例を考慮すると、従来のシステムおよび方法と比較して、提案された開示は、複数のロボティクス環境のための統合化エンジニアリング言語におけるロボティクスならびにアプリケーション(倉庫)分野固有の語彙の統合を提供する。
【００４１】
本開示の一実施形態によれば、ステップ404において、1つまたは複数のハードウェアプロセッサ104は、1つまたは複数の設計ソリューションに基づいて、複数のステップを実行する。ステップ404(i)において、1つまたは複数のハードウェアプロセッサ104は、ソリューションシンセサイザ構成要素305によって、複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成し、1つまたは複数の制御システムソリューションは、アーキテクチャ設計と、複数のロボティクス環境においてアーキテクチャ設計を実装するための複数の構成要素とを含む。ソリューションシンセサイザ構成要素305は、1つまたは複数の制御システムソリューションが実装および実行されるべき複数のロボティクス環境の各々に対応する1つまたは複数の構成をさらに生成する。
【００４２】
一実施形態では、合成設計または1つもしくは複数の設計ソリューションに変換された情報の第2のセットは、DSL307を使用して複数のロボットオペレーティングシステム(ROS)に対応する実装コードのセットを生成するために、コード生成器構成要素(図には示さず)によって最初にコンパイルされてもよく、複数のROSの各々は、複数のロボティクス環境のうちの少なくとも1つに対応する。例示的な実装形態では、実装コードのセットは、Python(登録商標)において以下のように生成されてもよい。
manipulate_palm_request_script.py
manipulate_palm_respone_script.py
move_arm_request_script.py
move_arm_response_script.py
navigation_request_script.py
navigation_response_script.py
【００４３】
一実施形態では、1つまたは複数のハードウェアプロセッサ104は、次いで、DSL307を使用して、複数のロボットシミュレータに対応する1つまたは複数の構成ファイルを生成し、複数のロボットシミュレータの各々は、複数のロボティクス環境のうちの少なくとも1つに対応する。1つまたは複数の構成ファイルは、複数のロボティクス環境における1つまたは複数の制御システムソリューションの実装を容易にする。たとえば、1つまたは複数の構成ファイルは、どのセンサ、アクチュエータ、およびAPIが特定のロボット上で使用されているかを指定してもよい。構成と一緒にスクリプト構造を使用することは、ソースコードを修正する(たとえば、C/C++コードを再コンパイルする)ことを必要とすることなく、ロボットの挙動および機能性の容易な再構成を可能にする。例示的な実装形態では、1つまたは複数の構成ファイルは、以下のように倉庫調達環境のために生成されてもよい。
CLOSE_GRIPPER_PALM.srv
OPEN_GRIPPER_PALM.srv
【００４４】
一実施形態では、1つまたは複数のハードウェアプロセッサ104は、実装コードのセットと1つまたは複数の構成ファイルとを実装することによって、1つまたは複数の制御システムソリューションを最終的に生成する。図8を参照すると、生成された1つまたは複数の制御システムソリューションが参照され得る。再び図8を参照すると、1つまたは複数の制御システムソリューションは、実装コードのセット(以下に示す)と、アーキテクチャ設計と、複数のロボティクス環境においてアーキテクチャ設計を実装するための複数の構成要素、たとえば、グリッパおよび自動生成ラックとを含むことに気づき得る。
【００４５】
上述のように、生成された1つまたは複数の制御システムソリューションは、図2を介して示されているミドルウェアアーキテクチャに対応する。1つまたは複数のハードウェアプロセッサ104は、自動構成および展開構成要素308を介して複数のロボティクス環境の各々において生成された1つまたは複数の制御システムソリューションを展開し、運用構成要素309は、運用システムが、複数のロボティクス環境の各々において展開された1つまたは複数の制御システムソリューションを実装および実行するために、想定通りに、初期設計で指定されたように挙動することを保証する。
図8における実装コードの自動生成されたセット
<model name="simple_mobile_manipulatorn>
<include>
<uri>model://my_gripper</uri>
<pose>1.3 0 0.1 0 0 0</pose>
</include>
<include>
<uri>model://my_robot</uri>
<pose>0 0 0 0 0 0</pose>
</include>
<joint name="arm_gripper_joint" type="fixed">
<parent>mobile_base::chassis</parent>
<child>simple_gripper::riser</child>
</joint>
【００４６】
本開示の一実施形態によれば、ステップ404(ii)において、1つまたは複数のハードウェアプロセッサ104は、ソリューションシンセサイザ構成要素305を介して、シミュレート環境においてシミュレーション活動(たとえば、倉庫調達において商品をピックアップするロボット)のセットを実行するための1つまたは複数のシミュレーションモデルを生成する。生成された1つまたは複数のシミュレーションモデルは、シミュレーション活動のセットを実行するための任意のシミュレーション技法を用いてもよい。シミュレーションの1つまたは複数のモデルはまた、または代わりに、統計モデル、発見的モデル、線形モデル、定性的モデル、決定解析モデル、決定木、および、複数のロボティクス環境において動作する複数のロボットの応答を特徴付け予測するために有用な任意の他のモデリング技法または行動技法を用いてもよい。
【００４７】
ステップ404(ii)の例示的な実施形態では、倉庫調達のために、(シミュレーション環境における)1つまたは複数のシミュレーションモデルを生成するための構成が以下のように生成されてもよい。
<sdf version='1.6'>
<world name='Warehouse-TCS-00001-Gurgaon'>
<light name='sun' type='directional'>
<cast_shadows>1</cast_shadows>
<pose frame=''>0 0 10 0 -0 0</pose>
<diffuse>0.8 0.8 0.8 1</diffuse>
<specular>0.1 0.1 0.1 1</specular>
<attenuation>
<range>1000</range>
<constant>0.9</constant>
<linear>0.01</linear>
<quadratic>0.001</quadratic>
</attenuation>
<direction>-0.5 0.5 -1</direction>
</light>
<gravity>0 0 -9.8</gravity>
<magnetic_field>6e-06 2.3e-05 -4.2e-05</magnetic_field>
<atmosphere type='adiabatic'/>
<physics name='default_physics' default='0' type='ode'>
<max_step_size>0.001</max_step_size>
<real_time_factor>1</real_time_factor>
<real_time_update_rate>1000</real_time_update_rate>
</physics>
<scene>
<ambient>0.4 0.4 0.4 1</ambient>
<background>0.7 0.7 0.7 1</background>
<shadows>1</shadows>
</scene>
<spherical_coordinates>
<surface_model>EARTH_WGS84</surface_model>
<latitude_deg>0</latitude_deg>
<longitude_deg>0</longitude_deg>
<elevation>0</elevation>
<heading_deg>0</heading_deg>
</spherical_coordinates>
<model name='ground_plane'>
<include><uri>model://ground_plane</uri></include>
</model>
<model name='Bin-00001_0'>
<include><uri>model://Bin-00001</uri></include>
<pose frame = ''>3.0 3.0 0.0 0 0 0</pose>
</model>
<model name='Rack-0001_0'>
<include><uri>model://BaseRackModel</uri></include>
<pose frame = ''>0.0 0.0 0.0 0 0 0</pose>
</model>
<!-- <population name="can_population3">
<model name="can3"> <!-- coke can height (z) is 0.003988*2, diameter is around 0.17
<include>
<static>false</static>
<uri>model://coke_can</uri>
</include>
</model>
<pose>-1.0 2.0 1.35 0 0 0.0</pose>
<box>
<size>1.5 1.0 0.5</size>
</box>
<model_count>20</model_count>
<distribution>
<type>uniform</type>
</distribution>
</population> -->
<gui fullscreen='0'>
<camera name='user_camera'>
<pose frame=''>5 -5 2 0 0.275643 2.35619</pose>
<view_controller>orbit</view_controller>
<projection_type>perspective</projection_type>
</camera>
</gui>
<model name='simple_mobile_manipulator'>
<include><uri>model://simple_mobile_manipulator</uri></include>
<pose frame = ''>5.0 0.0 0.0 0 0 3.09</pose>
</model>
</world>
</sdf>
さらに、倉庫調達シミュレーション環境のための1つまたは複数のモデルは、以下のように(生成された構成に基づいて)生成されてもよく、1つまたは複数のシミュレーションモデルは、複数のロボットと複数のロボットの動作制御とをシミュレートするために使用されてもよい。
<?xml version="1.0" ?>
<sdf version="1.5">
<!--
<world name="default">
<-- A global light source ->
<include>
<uri>model://sun</uri>
</include>
<-- A ground plane ->
<include>
<uri>model://ground_plane</uri>
</include>
-->
<model name="simple_mobile_manipulator">
<include>
<uri>model://my_gripper</uri>
<pose>1.3 0 0.1 0 0 0</pose>
</include>
<include>
<uri>model://my_robot</uri>
<pose>0 0 0 0 0 0</pose>
</include>
<joint name="arm_gripper_joint" type="fixed">
<parent>mobile_base::chassis</parent>
<child>simple_gripper::riser</child>
</joint>
<!-- attach sensor to the gripper -->
<!--
<include>
<uri>model://hokuyo</uri>
<pose>1.3 0 0.3 0 0 0</pose>
</include>
<joint name="hokuyo_joint" type="fixed">
<child>hokuyo::link</child>
<parent>simple_gripper::palm</parent>
</joint>
-->
<plugin name="simple_mobile_manipulator" filename="libsimple_mobile_manipulator_plugin.so">
</plugin>
</model>
<!--
</world>
-->
</sdf>
【００４８】
一実施形態では、1つまたは複数のハードウェアプロセッサ104は、生成された1つまたは複数の制御システムソリューションを検証するために、生成された合成設計に対応する1つまたは複数の設計仕様を生成する。1つまたは複数のハードウェアプロセッサ104は、ソリューション検証構成要素306を介して、生成された1つまたは複数の制御システムソリューションを検証する。1つまたは複数の設計仕様は、1つまたは複数のシミュレーションモデルを実行することによる1つまたは複数の制御システムソリューションの実装形態のシミュレーションを容易にする。例示的な実装形態では、さらに再び図8を参照すると、生成された1つまたは複数の設計仕様が参照され得、倉庫調達のためのシミュレーションモデルを生成するために、実装コードまたはROSコードのセットが実行される。
【００４９】
本開示の一実施形態によれば、生成された1つまたは複数の制御システムソリューションは、ソリューションシンセサイザ構成要素305を使用することによって挙動モデルを抽出するために、1つまたは複数のシミュレーションモデルに基づいて最適化されてもよい。シミュレーションは、複数のロボット環境に対応する複数のパラメータ(たとえば、時間、コスト、および待ち時間)の最適化および性能調整を容易にする。一実施形態では、ソリューションシンセサイザ構成要素305は、シミュレーションを実行するために、1つまたは複数のサードパーティのフレームワークまたはアプリケーション、たとえば、Gazebo(登録商標)シミュレータを使用してもよい。
【００５０】
一実施形態では、最適化は、複数のロボティクス環境における複数のコマンドと、実行中の複数の状態遷移と、複数のコマンドの各々をトリガする時間と、複数のコマンドの各々の終了の時間とを検証するために、生成された1つまたは複数の制御システムソリューションに基づいて、タスク実行ログのセットを実行することによって、閉ループ検証を実行することを含む。最適化および性能調整は、例示的なシナリオを考慮して詳細に説明され得る。
【００５１】
例示的なシナリオを考え、生成された1つまたは複数の制御システムソリューションが倉庫調達のために実装され、シミュレーションが、たとえば、Gazebo(登録商標)シミュレータを使用して実行されると仮定する。シミュレートされた環境において実行されるとき、生成された1つまたは複数の制御システムソリューションの中で任意の実行中の制御システムソリューションは、以下のようにタスク実行ログのセットを含む運用情報を記録してもよい。
‘[INFO] [1420702977.006703278] :
Capability:Mobile_Chasis.Navigation 11:23:04'
【００５２】
上記のタスク実行ログのセットを参照すると、1つまたは複数の制御システムソリューションが複数のロボティクス環境において実装または実行されたとき、時間11:23:04において機能「Navigation」をトリガすることに気づき得る。さらに、コマンドパラメータ、実行中のコマンドにおける待ち時間などのような任意の他の情報(複数のロボティクス環境に対応する任意の複雑な情報を含む)も、タスク実行ログのセットから生成されてもよい。したがって、タスク実行ログのセットは、複数のロボティクス環境において実装または実行された1つまたは複数の制御システムソリューションから生成されてもよい。
【００５３】
一実施形態では、タスク実行ログのセットは、複数のロボティクス環境に対応するロボティクスシステムのための挙動モデルを抽出することを容易にする。挙動モデルは、複数のコマンドと、複数のコマンドの各々をトリガする時間と、複数のコマンドの各々を終了する時間と、複数のコマンドの各々からトリガされる複数の状態遷移と、複数のコマンドなどから生じるイベントの対応するセットとに対応する詳細を含む。
【００５４】
例示的な実装形態では、図9および図10を参照すると、複数のコマンドと、複数のコマンドの各々をトリガする時間と、複数のコマンドの各々を終了する時間と、複数のコマンドの各々からトリガされる複数の状態遷移とを含む挙動モデルの例が参照され得る。図9を参照すると、単一のロボット構成要素(たとえば、ロボットアーム)を動作させるために抽出された挙動モデルの例が参照され得、生成された1つまたは複数の制御システムソリューションは、ロボット構成要素内で実行される。図10を参照すると、1つまたは複数の構成要素コントローラにわたる1つまたは複数のロボット動作のために抽出された挙動モデルの別の例が参照され得、生成された1つまたは複数の制御システムソリューションは、複数のロボット構成要素(たとえば、1つまたは複数のロボットアームおよび1つまたは複数のロボットホイール)にわたって実行される。
【００５５】
一実施形態では、挙動モデルは、1つまたは複数の制御システムソリューションが初期活動フローに対応するものとして実行されたかどうかを検証するために、初期活動フローに対してさらに検証されてもよい。プロセスは、閉ループ検証と呼ばれる。したがって、最適化は、複数のロボティクス環境において実行されている複数のコマンドおよび複数の状態遷移を検証するために、挙動モデルに基づいてタスク実行ログのセットを実行することによって、閉ループ検証を容易にする。
【００５６】
一実施形態では、タスク実行ログのセットは、複数のコマンドの中から1つまたは複数の実行中のコマンドを識別し、実行するのにより時間がかかる複数の状態遷移の中から1つまたは複数の状態遷移を識別するためにさらに使用されてもよい。識別に基づいて、よりよい性能もしくは最適化のために対応するアルゴリズムを修正することによって、または異なるソフトウェアライブラリを使用することによって、1つもしくは複数の実行中のコマンドおよび/または1つもしくは複数の状態遷移または任意の他の問題のあるモジュールにおいて適切な変更が実施されてもよい。これは、タスク実行ログのセットに基づく時間的要因の最適化または性能調整をもたらす。同様に、最適化または性能調整は、他の要因、たとえば、コスト、待ち時間などについて実行されてもよい。
【００５７】
本開示の一実施形態によれば、提案された開示の技術的利点がここで詳細に考察され得る。上記で論じたように、再び図2を参照すると、提案された開示は、1つまたは複数のロボットソリューションが望まれる可能性がある複数の問題を含む複数のロボット分野のためのロボットソリューションを作成するために使用され得る汎用ミドルウェアアーキテクチャを提供することに気づき得る。ミドルウェアアーキテクチャは、作成されるべき複数のロボットソリューションのための標準アーキテクチャとして役立ち得る。
【００５８】
提案された開示は、任意のロボットソフトウェアの作成に伴う複雑さを大幅に低減する知識中心型エンジニアリングプラットフォームを提案する。さらに、提案された開示は、重要なロボティクスソフトウェアの再利用を提供し、関連する(たとえば、倉庫)アプリケーションのファミリーが最小限の変更で適切に構成することによって再利用されるために同じコードベースが再利用または再作成されることを可能にする。
【００５９】
1つまたは複数の制御システムソリューションは、複数のロボティクス環境のために実装されるように自動生成されてもよい。たとえば、1つまたは複数の制御システムソリューションは、複数の活動(たとえば、種子を拾い上げる)を実行するために農場内で動作する複数のロボットのために実装されてもよい。したがって、提案された開示によって提案されるソリューションは、完全に構成可能であり、静的にも動的にも適合され得る。したがって、提案された方法は、特に、自律型ロボティクス用途において、および、多数の個々の独立したユニットが、ロボットソリューションを実装するときに望ましいかまたは必要であり得るような全体的な機能グループに統合される用途において、多数の利点を提供する。
【００６０】
提案された開示は、ロボットの自動組立および開発ならびに自動化アプリケーションも可能にし、ロボティクスまたは自動化環境における1つまたは複数のアプリケーションのサイクルを自動的に管理する能力を提供する。多種多様なサードパーティのフレームワーク(たとえば、Gazebo(登録商標))をプラグインする能力は、ロボティクスおよび自動化分野における現在の技術からは得られない利点を提供する。最後に、上記で論じたように、提案された開示は、生成された1つまたは複数の制御システムソリューションの最適化および閉ループ検証と、1つまたは複数のシミュレーションモデルを実行することによって1つまたは複数の制御システムソリューションのシミュレーションを実行するための1つまたは複数の設計仕様を生成することとを提供する。
【００６１】
一実施形態では、メモリ102は、複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成することに関連する任意のデータを記憶するように構成され得る。一実施形態では、取得された情報の第1のセット、抽出された情報の第2のセット、1つまたは複数の設計ソリューション、合成設計、および生成された1つまたは複数の制御システムソリューションなどに属する情報は、メモリ102内に記憶される。さらに、複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成することに属するすべての情報(入力、出力など)も、参照目的のために履歴データとしてデータベース内に記憶されてもよい。
【００６２】
記載された説明は、当業者が実施形態を製作および使用することを可能にするために本明細書における主題を説明する。主題の実施形態の範囲は、特許請求の範囲によって規定され、当業者に想起される他の修正を含んでもよい。そのような他の修正は、それらが特許請求の範囲の文字通りの言語と異ならない類似の要素を有する場合、または、それらが特許請求の範囲の文字通りの言語と非実質的相違を有する同等の要素を含む場合、特許請求の範囲内にあることが意図される。
【００６３】
本明細書における本開示の実施形態は、複数のロボティクス環境(リアルタイム環境とシミュレーション環境の両方を含む)のための1つまたは複数の制御システムソリューションを生成する(または自動生成する)ことの未解決の問題に対処する。したがって、実施形態は、複数のロボティクス環境に対応するロボティクス分野の知識を取得することと、ロボティクス分野の知識に基づいて1つまたは複数のソリューション仕様を抽出することと、1つまたは複数の設計ソリューションと合成設計とを生成することと、最後に、1つまたは複数の設計ソリューションに基づいて複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成することとを提供する。さらに、本明細書の実施形態は、DSL307を使用して実装コードのセットを生成することと、閉ループ検証を実施することによって生成される1つまたは複数の制御システムソリューションの最適化とをさらに提供する。
【００６４】
保護の範囲は、そのようなプログラム、および、加えて、メッセージを内部に有するコンピュータ可読手段に拡張されることが理解されるべきであり、そのようなコンピュータ可読記憶手段は、プログラムがサーバまたはモバイルデバイスまたは任意の適切なプログラム可能デバイス上で実行されるときに方法の1つまたは複数のステップを実施するためのプログラムコード手段を含む。ハードウェアデバイスは、たとえば、サーバもしくはパーソナルコンピュータなどのような任意の種類のコンピュータ、またはそれらの組み合わせを含む、プログラムされ得る任意の種類のデバイスであり得る。デバイスはまた、たとえば、たとえば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)のようなハードウェア手段、または、ハードウェア手段およびソフトウェア手段の組み合わせ、たとえば、ASICおよびFPGA、もしくは少なくとも1つのマイクロプロセッサおよびソフトウェアモジュールが内部に位置する少なくとも1つのメモリ、であり得る手段を含んでもよい。したがって、手段は、ハードウェア手段とソフトウェア手段の両方を含むことができる。本明細書に記載の方法の実施形態は、ハードウェアおよびソフトウェアにおいて実装され得る。デバイスはまた、ソフトウェア手段を含んでもよい。代替的には、実施形態は、たとえば、複数のCPUを使用して、異なるハードウェアデバイス上で実装されてもよい。
【００６５】
本明細書の実施形態は、ハードウェア要素およびソフトウェア要素を含むことができる。ソフトウェアにおいて実装された実施形態は、限定はしないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含む。本明細書に記載の様々なモジュールによって実行される機能は、他のモジュールまたは他のモジュールの組み合わせにおいて実装されてもよい。この説明の目的のために、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれらに関連して使用するためのプログラムを含む、記憶する、通信する、伝播する、または輸送することができる任意の装置であり得る。
【００６６】
示されたステップは、示された例示的な実施形態を説明するために提示されており、進行中の技術開発が、特定の機能が実行される方法を変えることが予想されるべきである。これらの例は、例示の目的のために本明細書に提示されており、限定ではない。さらに、機能的基礎的要素の境界は、説明の便宜のために本明細書で任意に定義されている。特定の機能およびそれらの関係が適切に実行される限り、代替の境界が定義され得る。代替形態(本明細書に記載されたものの等価物、拡張形態、変形形態、逸脱形態などを含む)は、本明細書に含まれる教示に基づいて当業者には明らかであろう。そのような代替形態は、開示された実施形態の範囲および要旨の範囲内に入る。また、「備える」、「有する」、「含有する」、および「含む」という単語、および他の同様の形態は、意味において同等であり、これらの単語のうちのいずれか1つに続く項目がそのような項目の網羅的なリストであることを意味しない、または、リストされた項目のみに限定されることを意味しないという点で開かれていることを意図する。本明細書および添付の特許請求の範囲で使用されるとき、単数形「a」、「an」および「the」は、文脈が明らかにそうでないことを指示しない限り、複数の言及を含むことも留意されなければならない。
【００６７】
さらに、本開示と一致する実施形態を実施する際、1つまたは複数のコンピュータ可読記憶媒体が利用されてもよい。コンピュータ可読記憶媒体は、プロセッサによって読み取り可能な情報またはデータが記憶され得る任意のタイプの物理的メモリを指す。したがって、コンピュータ可読記憶媒体は、プロセッサに本明細書に記載の実施形態と一致するステップまたはステージを実行させるための命令を含む、1つまたは複数のプロセッサによる実行のための命令を記憶してもよい。「コンピュータ可読媒体」という用語は、有形のアイテムを含み、搬送波および過渡信号、すなわち、非一時的なものを除外すると理解されるべきである。例は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、揮発性メモリ、不揮発性メモリ、ハードドライブ、CD ROM、DVD、フラッシュドライブ、ディスク、および任意の他の公知の物理的記憶媒体を含む。
【００６８】
本開示および例は、例示的なものとしてのみ考慮されることを意図しており、開示された実施形態の真の範囲および精神は、以下の特許請求の範囲によって示される。
【符号の説明】
【００６９】
100  システム
102  メモリ
104  プロセッサ、ハードウェアプロセッサ
106  通信インターフェースデバイスまたは入力/出力(I/O)インターフェース、I/Oインターフェースデバイス
201  知識層
202  コンテキスト層
203  高レベル記述構成要素
204  ワークフロー
205  実装構成要素
206  実現および実行構成要素
301  知識バス
302  知識リポジトリ
303  知識リポジトリ
304  ソリューション記述構成要素
305  ソリューションシンセサイザ構成要素
306  ソリューション検証構成要素
307  ドメイン固有言語(DSL)、DSL
308  自動構成および展開構成要素
309  運用構成要素
【図１】
2020004372.tif 000003
【図２】
2020004372.tif 000004
【図３】
2020004372.tif 000005
【図４Ａ】
2020004372.tif 000006
【図４Ｂ】
2020004372.tif 000007
【図５】
2020004372.tif 000008
【図６】
2020004372.tif 000009
【図７】
2020004372.tif 000010
【図８】
2020004372.tif 000011
【図９】
2020004372.tif 000012
【図１０】
2020004372.tif 000013
【手続補正書】
【提出日】令和1年6月3日(2019.6.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ロボティクス環境のための制御システムソリューションを生成する方法であって、
1つまたは複数のハードウェアプロセッサを介して複数のソースから情報の第1のセットを取得するステップであって、前記情報の第1のセットが複数のロボティクス環境に対応するロボティクス分野の知識を含み、前記複数のロボティクス環境がリアルタイム環境とシミュレーション環境とを含む、ステップ(401)と、
前記情報の第1のセットに基づいて、ソリューション記述構成要素を介して情報の第2のセットを抽出するステップであって、前記情報の第2のセットが前記複数のロボティクス環境に対応する1つまたは複数のソリューション仕様を含む、ステップ(402)と、
ソリューションシンセサイザ構成要素を介して、前記情報の第2のセットを前記複数のロボティクス環境のための1つまたは複数の設計ソリューションに変換するステップ(403)と、
前記1つまたは複数の設計ソリューションに基づいて複数のステップを実行するステップであって、前記複数のステップが、
(i)前記ソリューションシンセサイザ構成要素を介して、前記複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成するステップであって、前記1つまたは複数の制御システムソリューションが、アーキテクチャ設計と、前記複数のロボティクス環境において前記アーキテクチャ設計を実装するための複数の構成要素とを含む、ステップ(404(i))と、
(ii)前記ソリューションシンセサイザ構成要素を介して、前記シミュレーション環境においてシミュレーション活動のセットを実行するための1つまたは複数のシミュレーションモデルを生成するステップ(404(ii))とを含む、ステップ(404)とのプロセッサ実施ステップを含む、方法。
【請求項２】
前記情報の第2のセットを変換するステップが、前記情報の第1のセットに基づいて前記ソリューションシンセサイザ構成要素によって前記1つまたは複数の制御システムソリューションのための合成設計を生成するステップを含む、請求項1に記載の方法。
【請求項３】
前記合成設計が、前記複数のロボティクス環境の各々において実行されるべき複数ロボットの活動およびタスクのセットのための合成ソリューションを表す、請求項2に記載の方法。
【請求項４】
前記1つまたは複数の制御システムソリューションを生成するステップが、
(i)ドメイン固有言語(DSL)を使用して、複数のロボットオペレーティングシステム(ROS)に対応する実装コードのセットを生成するステップであって、前記複数のROSの各々が前記複数のロボティクス環境のうちの少なくとも1つに対応する、ステップと、
(ii)前記DSLを使用して、複数のロボットシミュレータに対応する1つまたは複数の構成ファイルを生成するステップであって、前記複数のロボットシミュレータの各々が前記複数のロボティクス環境のうちの少なくとも1つに対応する、ステップと、
(iii)前記生成された1つまたは複数の制御システムソリューションを検証するために、前記生成された合成設計に対応する1つまたは複数の設計仕様を生成するステップとを含む、請求項1に記載の方法。
【請求項５】
前記生成された1つまたは複数の制御システムソリューションが、前記ソリューションシンセサイザ構成要素によって挙動モデルを抽出するために前記1つまたは複数のシミュレーションモデルに基づいて最適化され、前記挙動モデルが、前記複数のロボティクス環境において実行される複数のコマンドと複数の状態遷移とを含む、請求項1に記載の方法。
【請求項６】
前記最適化が、前記複数のロボティクス環境内で実行される前記複数のコマンドと前記複数の状態遷移とを検証するために前記挙動モデルに基づいてタスク実行ログのセットを実行することによって閉ループ検証を実行することを含む、請求項5に記載の方法。
【請求項７】
ロボティクス環境のための制御システムソリューションを生成するためのシステム(100)であって、
命令を記憶するメモリ(102)と、
1つまたは複数の通信インターフェース(106)と、
前記1つまたは複数の通信インターフェース(106)を介して前記メモリ(102)に結合された1つまたは複数のハードウェアプロセッサ(104)と
を備え、前記1つまたは複数のハードウェアプロセッサ(104)が前記命令によって、
複数のソースから情報の第1のセットを取得することであって、前記情報の第1のセットが複数のロボティクス環境に対応するロボティクス分野の知識を含み、前記複数のロボティクス環境がリアルタイム環境とシミュレーション環境とを含む、ことと、
前記情報の第1のセットに基づいて、ソリューション記述構成要素(304)を介して情報の第2のセットを抽出することであって、前記情報の第2のセットが前記複数のロボティクス環境に対応する1つまたは複数のソリューション仕様を含む、ことと、
ソリューションシンセサイザ構成要素(305)を介して、前記情報の第2のセットを前記複数のロボティクス環境のための1つまたは複数の設計ソリューションに変換することと、
前記1つまたは複数の設計ソリューションに基づいて複数のステップを実行することであって、前記複数のステップが、
(i)前記ソリューションシンセサイザ構成要素(305)を介して、前記複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成するステップであって、前記1つまたは複数の制御システムソリューションが、アーキテクチャ設計と、前記複数のロボティクス環境において前記アーキテクチャ設計を実装するための複数の構成要素とを含む、ステップと、
(ii)前記ソリューションシンセサイザ構成要素(305)を介して、前記シミュレーション環境においてシミュレーション活動のセットを実行するための1つまたは複数のシミュレーションモデルを生成するステップとを含む、こととを行うように構成される、システム(100)。
【請求項８】
前記1つまたは複数のハードウェアプロセッサ(104)が、前記情報の第1のセットに基づいて前記ソリューションシンセサイザ構成要素(305)を介して前記1つまたは複数の制御システムソリューションのための合成設計を生成することによって前記情報の第2のセットを変換するように構成される、請求項7に記載のシステム(100)。
【請求項９】
前記合成設計が、前記複数のロボティクス環境の各々において実行されるべき複数ロボットの活動およびタスクのセットのための合成ソリューションを表す、請求項8に記載のシステム(100)。
【請求項１０】
前記1つまたは複数のハードウェアプロセッサ(104)が、
(i)ドメイン固有言語(DSL)(307)を使用して、複数のロボットオペレーティングシステム(ROS)に対応する実装コードのセットを生成することであって、前記複数のROSの各々が前記複数のロボティクス環境のうちの少なくとも1つに対応する、ことと、
(ii)前記DSL(307)を使用して、複数のロボットシミュレータに対応する1つまたは複数の構成ファイルを生成することであって、前記複数のロボットシミュレータの各々が前記複数のロボティクス環境のうちの少なくとも1つに対応する、ことと、
(iii)前記生成された1つまたは複数の制御システムソリューションを検証するために、前記生成された合成設計に対応する1つまたは複数の設計仕様を生成することとによって前記1つまたは複数の制御システムソリューションを生成するように構成される、請求項7に記載のシステム(100)。
【請求項１１】
前記1つまたは複数のハードウェアプロセッサ(104)が、前記ソリューションシンセサイザ構成要素(305)を介して挙動モデルを抽出するために、前記1つまたは複数のシミュレーションモデルに基づいて、前記生成された1つまたは複数の制御システムソリューションを最適化するように構成され、前記挙動モデルが、前記複数のロボティクス環境内で実行される複数のコマンドと複数の状態遷移とを含む、請求項7に記載のシステム(100)。
【請求項１２】
前記最適化が、前記複数のロボティクス環境内で実行される前記複数のコマンドと前記複数の状態遷移とを検証するために前記挙動モデルに基づいてタスク実行ログのセットを実行することによって閉ループ検証を実行することを含む、請求項11に記載のシステム(100)。
【請求項１３】
1つまたは複数のハードウェアプロセッサによって実行されると、前記1つまたは複数のハードウェアプロセッサに、ロボティクス環境のための制御システムソリューションを生成する方法を実行させる1つまたは複数の命令を含む1つまたは複数の非一時的機械可読情報記憶媒体であって、前記方法が、
前記1つまたは複数のハードウェアプロセッサを介して複数のソースから情報の第1のセットを取得するステップであって、前記情報の第1のセットが複数のロボティクス環境に対応するロボティクス分野の知識を含み、前記複数のロボティクス環境がリアルタイム環境とシミュレーション環境とを含む、ステップ(401)と、
前記情報の第1のセットに基づいて、ソリューション記述構成要素を介して情報の第2のセットを抽出するステップであって、前記情報の第2のセットが前記複数のロボティクス環境に対応する1つまたは複数のソリューション仕様を含む、ステップ(402)と、
ソリューションシンセサイザ構成要素を介して、前記情報の第2のセットを前記複数のロボティクス環境のための1つまたは複数の設計ソリューションに変換するステップ(403)と、
前記1つまたは複数の設計ソリューションに基づいて複数のステップを実行するステップであって、前記複数のステップが、
(i)前記ソリューションシンセサイザ構成要素を介して、前記複数のロボティクス環境のための1つまたは複数の制御システムソリューションを生成するステップであって、前記1つまたは複数の制御システムソリューションが、アーキテクチャ設計と、前記複数のロボティクス環境において前記アーキテクチャ設計を実装するための複数の構成要素とを含む、ステップ(404(i))と、
(ii)前記ソリューションシンセサイザ構成要素を介して、前記シミュレーション環境においてシミュレーション活動のセットを実行するための1つまたは複数のシミュレーションモデルを生成するステップ(404(ii))とを含む、ステップ(404)とを含む、1つまたは複数の非一時的機械可読情報記憶媒体。
【請求項１４】
前記情報の第2のセットを変換するステップが、前記情報の第1のセットに基づいて前記ソリューションシンセサイザ構成要素によって前記1つまたは複数の制御システムソリューションのための合成設計を生成するステップを含む、請求項13に記載の1つまたは複数の非一時的機械可読情報記憶媒体。
【請求項１５】
前記合成設計が、前記複数のロボティクス環境の各々において実行されるべき複数ロボットの活動およびタスクのセットのための合成ソリューションを表す、請求項14に記載の1つまたは複数の非一時的機械可読情報記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
関連出願の相互参照および優先権
本特許出願は、2018年6月25日に出願したインド特許出願第201821023578号の優先権を主張するものである。
本明細書の開示は、全体的には、ロボティクス環境のための制御システムソリューションを生成することに関し、より具体的には、ロボティクス環境のための制御システムソリューションを生成するためのシステムおよび方法に関する。
【外国語明細書】
2020004372000001.pdf