(57)【要約】  ロボット制御システム１は、複数の教示者の情報を記憶する教示者記憶部２１１と、ロボット２０に作業を継続させるためにサポート情報が必要である場合に、教示者記憶部２１１が記憶する複数の教示者のいずれかを選択する選択部２１４と、選択部２１４が選択した教示者に、ネットワーク回線５０を介してロボット２０の環境情報を送信する環境情報送信部２１５と、選択部２１４が選択した教示者からネットワーク回線５０を介してサポート情報を受信するサポート情報受信部２１６と、を備える。
2020149414.tif 000002
【特許請求の範囲】
【請求項１】
複数の教示者の情報を記憶する教示者記憶部と、
ロボットに作業を継続させるためにサポート情報が必要である場合に、教示者記憶部が記憶する複数の教示者のいずれかを選択する選択部と、
前記選択部が選択した教示者に、ネットワーク回線を介して前記ロボットの環境情報を送信する環境情報送信部と、
前記選択部が選択した教示者からネットワーク回線を介して前記サポート情報を受信するサポート情報受信部と、を備えるロボット制御システム。
【請求項２】
前記サポート情報に基づく前記ロボットの作業前に、既存のデータに基づいて前記サポート情報の適正度を導出する事前評価部と、
前記事前評価部が導出した前記サポート情報の適正度に基づいて、当該サポート情報の採用可否を判定するサポート可否判定部と、を更に備える請求項１記載のロボット制御システム。
【請求項３】
前記サポート情報に基づく前記ロボットの作業後に、前記ロボットの作業結果に基づいて前記サポート情報の適正度を導出する事後評価部と、
前記事後評価部が導出した前記サポート情報の適正度に基づいて、当該サポート情報の教示者のスコアを導出するスコア導出部と、を更に備え、
前記選択部は、前記スコア導出部が導出したスコアに基づいて前記複数の教示者のいずれかを選択する、請求項１又は２記載のロボット制御システム。
【請求項４】
前記教示者記憶部が記憶する前記教示者の情報は、教示可能な作業種別の情報を含み、
前記選択部は、前記教示可能な作業種別の情報と、前記ロボットの作業種別とに基づいて前記複数の教示者のいずれかを選択する、請求項１〜３のいずれか一項記載のロボット制御システム。
【請求項５】
前記サポート情報が必要である場合に、前記教示者記憶部が記憶する前記複数の教示者にネットワーク回線を介して前記サポート情報の送信を要求する教示要求部を更に備え、
前記選択部は、前記教示要求部からの要求への応答の速さに基づいて前記複数の教示者のいずれかを選択する、請求項１〜４のいずれか一項記載のロボット制御システム。
【請求項６】
前記サポート情報の送信に対する報酬額の算出基準となる教示実績値と、教示者とを対応付けて記憶する教示実績記憶部と、
前記サポート情報に基づく前記ロボットの作業が実行される度に、当該作業に応じて当該サポート情報の教示者の前記教示実績値を更新する教示実績更新部と、を更に備える請求項１〜５のいずれか一項記載のロボット制御システム。
【請求項７】
前記サポート情報の利用に応じた課金額の算出基準となる利用実績値と、前記ロボットとを対応付けて記憶する利用実績記憶部と、
前記サポート情報に基づく前記ロボットの作業が実行される度に、当該作業に応じて当該ロボットの前記利用実績値を更新する利用実績更新部と、を更に備える請求項６記載のロボット制御システム。
【請求項８】
前記ロボットの環境情報の入力に応じて、当該環境情報に対応した前記ロボットの作業指示情報を出力する作業モデルを記憶するモデル記憶部と、
前記ロボットの環境情報と、前記モデル記憶部が記憶する前記作業モデルとに基づいて前記ロボットへの作業指示情報を導出する作業指示導出部と、
前記ロボットの環境情報と、前記モデル記憶部が記憶する前記作業モデルとに基づいて前記作業指示情報に基づく前記ロボットの作業可否を判定する作業可否判定部と、
前記作業可否判定部により前記作業指示情報に基づく前記ロボットの作業が不可であると判定された場合に前記サポート情報を要求するサポート要求部と、を更に備える、請求項１〜７のいずれか一項記載のロボット制御システム。
【請求項９】
前記ロボットの環境情報と、前記ロボットの作業結果とを学習用データとして蓄積する学習データ蓄積部と、
前記学習データ蓄積部が蓄積した前記学習用データに基づく機械学習により、前記作業モデルを更新するモデル更新部とを更に備える、請求項８記載のロボット制御システム。
【請求項１０】
前記モデル更新部がいずれかの前記作業モデルを更新した場合に、当該作業モデルの更新内容を前記ロボットの他のロボットの作業モデルにも反映させる更新内容反映部を更に備える、請求項９記載のロボット制御システム。
【請求項１１】
複数の教示者の情報を記憶することと、
ロボットに作業を継続させるためにサポート情報が必要である場合に、前記複数の教示者のいずれかを選択することと、
選択した教示者に、ネットワーク回線を介して前記ロボットの環境情報を送信することと、
選択した教示者からネットワーク回線を介して前記サポート情報を受信することと、を備えるロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ロボット制御システム及びロボット制御方法に関する。
【背景技術】
【０００２】
特許文献１には、ロボットが予め登録された作業プログラムに基づく再生動作の途中で停止する第１段階と、ロボットのダイレクト操作を許可する第２段階と、ダイレクト操作によりロボットを誘導動作させる第３段階と、ロボットのダイレクト操作を禁止する第４段階と、ロボットが作業プログラムに基づく再生動作を継続起動する第５段階からなるロボット誘導方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−８２１８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、ロボットと人との効率的な協働に有効なシステムを提供する。
【課題を解決するための手段】
【０００５】
本開示の一側面に係るロボット制御システムは、複数の教示者の情報を記憶する教示者記憶部と、ロボットに作業を継続させるためにサポート情報が必要である場合に、教示者記憶部が記憶する複数の教示者のいずれかを選択する選択部と、選択部が選択した教示者に、ネットワーク回線を介してロボットの環境情報を送信する環境情報送信部と、選択部が選択した教示者からネットワーク回線を介してサポート情報を受信するサポート情報受信部と、を備える。【０００６】
本開示の他の側面に係るロボット制御方法は、複数の教示者の情報を記憶することと、ロボットに作業を継続させるためにサポート情報が必要である場合に、複数の教示者のいずれかを選択することと、選択した教示者に、ネットワーク回線を介してロボットの環境情報を送信することと、選択した教示者からネットワーク回線を介してサポート情報を受信することと、を備える。
【発明の効果】
【０００７】
本開示によれば、ロボットと人との効率的な協働に有効なシステムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】ロボット制御システムの全体構成を例示する模式図である。
【図２】エッジコントローラの機能的な構成を例示するブロック図である。
【図３】コラボレーションコントローラの機能的な構成を例示するブロック図である。
【図４】エッジコントローラ及びコラボレーションコントローラのハードウェア構成を例示するブロック図である。
【図５】動作指令の出力手順を例示するフローチャートである。
【図６】作業モデルの更新手順を例示するフローチャートである。
【図７】サポート情報の受信手順を例示するフローチャートである。
【発明を実施するための形態】
【０００９】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【００１０】
〔ロボット制御システム〕
図１に示すロボット制御システム１は、ネットワーク回線を介したロボットと教示者との協働を可能にする制御システムである。ロボット制御システム１は、所定の作業を実行させるようにロボットを制御することと、ロボットに作業を継続させるためにサポート情報が必要である場合に、複数の教示者のいずれかを選択することと、選択した教示者に、ネットワーク回線を介してロボットの環境情報を送信することと、選択した教示者からネットワーク回線を介してサポート情報を受信することと、サポート情報に基づいて作業を継続させるようにロボットを制御することと、を実行するように構成されている。ロボットに実行させる作業に特に制限はない。ロボットに実行させる作業の具体例としては、加工、組み立て、搬送作業等が挙げられる。ロボットに実行させる作業は、工業分野における作業に限られない。例えばロボットに実行させる作業は、種まき、収穫、葉掻き及び農薬散布等の農作業であってもよい。
【００１１】
例えばロボット制御システム１は、複数のロボット装置１０と、複数の教示端末４０との間に介在する。ロボット装置１０は、ロボット２０と、ロボットコントローラ３０とを有する。ロボット２０は、例えば垂直多関節ロボットであり、基台２１と、先端部２２と、多関節アーム２３とを有する。基台２１は、作業エリアに設置される。基台２１は、作業エリア内を移動可能な車両に設置されていてもよい。先端部２２は、作業用のツールを保持する。ツールの具体例としては、把持用のハンド及び各種工具等が挙げられる。多関節アーム２３は、複数のアクチュエータ（例えば電動アクチュエータ）を動力源として基台２１に対する先端部２２の位置及び姿勢を変更する。
【００１２】
ロボットコントローラ３０は、動作指令に従って動作させるようにロボット２０を制御する。動作指令は、例えば先端部２２の移動指令と、先端部２２の移動に応じたツールの動作指令とを含む。先端部２２の移動指令は、先端部２２の位置及び姿勢の変更指令であり、時系列に並ぶ複数の目標位置・姿勢（先端部２２の目標位置・姿勢）を含む。教示端末４０は、教示者が用いる端末であり、環境情報の受信及び表示と、サポート情報の入力及び送信が可能であればいかなる端末であってもよい。教示端末４０の具体例としては、スマートフォン、タブレットコンピュータ、及びパーソナルコンピュータ等が挙げられる。
【００１３】
例えばロボット制御システム１は、エッジコントローラ１００と、コラボレーションコントローラ２００とを備える。エッジコントローラ１００は、有線又は無線によりロボットコントローラ３０に接続されている。エッジコントローラ１００は、ロボット２０の環境情報に基づいて、ロボット２０に所定の作業を実行させるための動作指令を生成し、ロボットコントローラ３０に送信する。例えばエッジコントローラ１００は、ロボット２０の環境情報の入力に応じて、当該環境情報に対応したロボット２０の作業指示情報を出力する作業モデルを記憶することと、ロボット２０の環境情報と、作業モデルとに基づいてロボット２０への作業指示情報を導出することと、ロボット２０の環境情報と、作業モデルとに基づいて作業指示情報に基づくロボット２０の作業可否を判定することと、作業指示情報に基づくロボット２０の作業が不可であると判定した場合にサポート情報を要求することとを実行するように構成されている。
【００１４】
作業指示情報に基づくロボット２０の作業が可であると判定した場合、エッジコントローラ１００は作業指示情報に基づく動作指令を生成してロボットコントローラ３０に出力する。作業指示情報に基づくロボット２０の作業が不可であると判定した場合、エッジコントローラ１００はサポート情報に基づく動作指令を生成してロボットコントローラ３０に出力する。
【００１５】
コラボレーションコントローラ２００は、ネットワーク回線５０を介して複数の教示端末４０と接続されている。コラボレーションコントローラ２００は、有線又は無線の専用回線を介してエッジコントローラ１００と接続されていてもよいし、ネットワーク回線５０を介してエッジコントローラ１００と接続されていてもよい。ネットワーク回線５０は、ローカルエリアネットワークであってもよいし、ワイドエリアネットワーク（例えばインターネット）であってもよい。
【００１６】
コラボレーションコントローラ２００は、複数の教示者の情報を記憶することと、エッジコントローラ１００からのサポート情報の要求に応じて、複数の教示者のいずれかを選択することと、選択した教示者の教示端末４０にネットワーク回線５０を介してロボット２０の環境情報を送信することと、選択した教示者の教示端末４０からネットワーク回線５０を介して環境情報に基づくサポート情報を受信することと、受信したサポート情報をエッジコントローラ１００に送信することとを実行するように構成されている。以下、エッジコントローラ１００及びコラボレーションコントローラ２００の具体的な構成を例示する。
【００１７】
（エッジコントローラ）
図２に示すように、エッジコントローラ１００は、機能上の構成（以下、「機能モジュール」という。）として、モデル記憶部１１１と、環境情報取得部１１２と、作業指示導出部１１３と、作業指示記憶部１１４と、信頼度導出部１１５と、作業可否判定部１１６と、サポート要求部１１７と、サポート情報受信部１１８と、動作指令生成部１２１と、動作指令送信部１２２とを有する。
【００１８】
モデル記憶部１１１は、複数のロボット２０にそれぞれ対応する複数の上記作業モデルを記憶する。上述したように、作業モデルは、ロボット２０の環境情報の入力に応じて、当該環境情報に対応したロボット２０の作業指示情報を出力する。環境情報は、ロボット２０の周辺環境の状態を示す情報である。環境情報の具体例としては、二次元又は三次元の画像情報等が挙げられる。作業指示情報は、ロボット２０の周辺環境における作業対象物等、作業内容の特定に必要な情報を含む。ロボット２０の周辺環境に、作業対象となり得る複数の物体が存在している場合、作業指示情報は、複数の物体の作業対象物としての推奨度をそれぞれ示す複数の数値を含んでいてもよい。作業指示情報は、上記動作指令であってもよい。
【００１９】
作業モデルは、機械学習により構築される。作業モデルの具体例としては、上記環境情報を入力ベクトルとし、上記作業指示情報を出力ベクトルとするニューラルネットワークが挙げられる。ニューラルネットワークは、入力層と、一層又は複数層の中間層と、出力層とを有する。入力層は、入力ベクトルをそのまま次の中間層に出力する。中間層は、一つ前の層からの入力を活性化関数により変換して次の層に出力する。出力層は、入力層から最も遠い中間層からからの入力を活性化関数により変換し、変換結果を出力ベクトルとして出力する。作業モデルは、少なくとも環境情報の入力に応じて作業指示情報を出力する限りいかなるものであってもよく、必ずしもニューラルネットワークに限られない。例えば作業モデルは統計的解析等に基づき導出された関数であってもよい。
【００２０】
作業モデルは、上記動作指令を含む作業指示情報を出力するように構成されていてもよい。この場合、作業モデルは、シミュレーションのランダム試行により、ロボット２０と周辺物体との衝突が生じない先端部２２の移動指令を生成するアルゴリズムを含んでもよい。
【００２１】
環境情報取得部１１２は、ロボット２０の環境情報をロボットコントローラ３０から取得する。作業指示導出部１１３は、環境情報取得部１１２が取得したロボット２０の環境情報と、モデル記憶部１１１が記憶する作業モデルとに基づいてロボット２０への作業指示情報を導出する。例えば作業指示導出部１１３は、ロボット２０の環境情報を作業モデルに入力し、これに応じて作業モデルが出力する作業指示情報を得る。作業指示記憶部１１４は、作業指示導出部１１３が導出した作業指示情報を記憶する。
【００２２】
信頼度導出部１１５は、作業指示情報の信頼度を導出する。例えば信頼度導出部１１５は、上記作業対象物としての推奨度が最高である物体（以下、「本命物体」という。）と、他の物体との推奨度の差に基づいて信頼度を導出する。具体的に、信頼度導出部１１５は、本命物体と、他の物体との推奨度の差が大きくなるのに応じて（すなわち本命物体の推奨度が相対的に高くなるのに応じて）信頼度を高くする。
【００２３】
作業指示情報が上記動作指令である場合、信頼度導出部１１５は、動作指令に従ったロボット２０の動作に更に基づいて信頼度を導出してもよい。例えば信頼度導出部１１５は、動作指令に従ったロボット２０の動作のシミュレーションに基づいて信頼度を導出してもよい。例えば信頼度導出部１１５は、動作中のロボット２０と周辺物体とが最接近する時点におけるロボット２０と周辺物体との間隔が小さくなるのに応じて信頼度を低くしてもよい。
【００２４】
作業可否判定部１１６は、環境情報取得部１１２が取得したロボット２０の環境情報と、モデル記憶部１１１が記憶する作業モデルとに基づいて、作業指示情報に基づくロボット２０の作業可否を判定する。例えば作業可否判定部１１６は、信頼度導出部１１５が導出する信頼度が所定の閾値を超えている場合には作業指示情報に基づくロボット２０の作業を可とし（許可し）、信頼度が当該閾値を下回っている場合には作業指示情報に基づくロボット２０の作業を不可とする（禁止する）。
【００２５】
サポート要求部１１７は、作業可否判定部１１６により作業指示情報に基づくロボット２０の作業が不可とされた場合に、コラボレーションコントローラ２００にサポート情報の送信を要求する。サポート要求部１１７は、サポート情報の送信の要求に際して、ロボット２０の環境情報をコラボレーションコントローラ２００に送信する。サポート要求部１１７は、サポート情報の送信の要求に際して、更にサポート情報の提供の難易度をコラボレーションコントローラ２００に送信してもよい。この場合、サポート要求部１１７は、信頼度に基づいて難易度を算出してもよい。例えばサポート要求部１１７は、信頼度が低くなるほど難易度を高くしてもよい。
【００２６】
サポート情報受信部１１８は、サポート要求部１１７からの要求に応じてコラボレーションコントローラ２００が送信したサポート情報を受信する。例えばサポート情報は、作業指示情報と同様に、作業内容の特定に必要な情報を含む。サポート情報が動作指令を含んでいてもよい。
【００２７】
動作指令生成部１２１は、作業指示情報又はサポート情報に基づいて上記動作指令を生成する。例えば動作指令生成部１２１は、作業指示情報又はサポート情報により特定される作業内容を実行させるように、先端部２２の移動指令と、先端部２２の移動に応じたツールの動作指令とを生成する。作業指示情報及びサポート情報が動作指令を含む場合、動作指令生成部１２１は、作業可否判定部１１６による判定結果に基づいて、作業指示情報に基づく動作指令又はサポート情報に基づく動作指令を選択する。動作指令送信部１２２は、動作指令生成部１２１が生成した動作指令をロボットコントローラ３０に送信する。
【００２８】
エッジコントローラ１００は、ロボット２０の環境情報と、ロボット２０の作業結果とを学習用データとして蓄積することと、蓄積した学習用データに基づく機械学習により、モデル記憶部１１１の作業モデルを更新することとを更に実行するように構成されていてもよい。また、エッジコントローラ１００は、いずれかのロボット２０の作業モデルを更新した場合に、当該作業モデルの更新内容を他のロボット２０の作業モデルにも反映させるように構成されていてもよい。例えばエッジコントローラ１００は、機能モジュールとして、実績情報取得部１２３と、学習データ蓄積部１２４と、モデル更新部１２５と、更新内容反映部１２６と、実績情報送信部１２７とを更に有する。
【００２９】
実績情報取得部１２３は、ロボット２０の作業結果に関する作業実績情報を取得する。例えば作業実績情報は、作業指示情報又はサポート情報と、作業指示情報又はサポート情報に応じて動作したロボット２０による作業の成否を示す成否情報とを含む。成否情報の具体例としては、ロボットコントローラ３０におけるアラームの有無を示す情報等が挙げられる。
【００３０】
作業実績情報は、作業指示情報又はサポート情報に応じて動作したロボット２０による作業の効率を示す効率情報を更に含んでもよい。効率情報の具体例としては、ロボットコントローラ３０において計測されたロボット２０の作業時間等が挙げられる。例えば実績情報取得部１２３は、作業指示情報又はサポート情報を動作指令生成部１２１から取得し、成否情報及び効率情報をロボットコントローラ３０から取得する。
【００３１】
学習データ蓄積部１２４は、ロボット２０の環境情報と、当該環境情報に応じたロボット２０の作業実績情報とを学習用データとして蓄積する。例えば学習データ蓄積部１２４は、ロボット２０の環境情報を環境情報取得部１１２から取得し、当該環境情報に応じたロボット２０の作業実績情報を実績情報取得部１２３から取得して蓄積する。学習データ蓄積部１２４は、ロボット２０ごとに学習用データを蓄積してもよい。換言すると、学習データ蓄積部１２４は、複数のロボット２０にそれぞれ対応する複数の学習用データセット（学習用データの集合）を蓄積してもよい。
【００３２】
モデル更新部１２５は、学習データ蓄積部１２４が蓄積した学習用データに基づく機械学習（例えばディープラーニング）により、モデル記憶部１１１の作業モデルを更新する。例えばモデル更新部１２５は、環境情報の入力に応じて作業モデルが出力する作業指示情報の適正度を高めるように、学習用データに基づいて作業モデルのパラメータ（例えば上記活性化関数の重み）を更新する。より具体的に、モデル更新部１２５は、ロボット２０の環境情報と、当該環境情報に応じたロボット２０の作業実績とを作業モデルに繰り返しあてはめることで、作業モデルのパラメータを更新する。
【００３３】
更新内容反映部１２６は、モデル更新部１２５がいずれかのロボット２０の作業モデルを更新した場合に、当該作業モデルの更新内容を他のいずれかのロボット２０の作業モデルにも反映させる。例えば更新内容反映部１２６は、モデル更新部１２５がいずれかのロボット２０の作業モデルを更新した場合に、当該ロボット２０と同種の作業を行う他のロボット２０の作業モデルを、更新された作業モデルで上書きする。実績情報送信部１２７は、実績情報取得部１２３が取得した作業実績情報をコラボレーションコントローラ２００に送信する。実績情報送信部１２７が送信する作業実績情報は、後述するように教示者の評価に用いられる。
【００３４】
（コラボレーションコントローラ）
図３に示すように、コラボレーションコントローラ２００は、機能モジュールとして、教示者記憶部２１１と、サポート要求取得部２１２と、教示要求部２１３と、選択部２１４と、環境情報送信部２１５と、サポート情報受信部２１６と、サポート情報送信部２１７とを有する。
【００３５】
教示者記憶部２１１は、複数の教示者の情報を記憶する。教示者の情報は、例えば教示者の識別情報と、教示者へのアクセス情報とを含む。アクセス情報は、例えば電子メールアドレス等、教示者への情報送信先を示す情報である。教示者の情報は、当該教示者が教示可能な作業種別の情報を含んでもよい。教示者が教示可能な作業種別とは、ロボット２０にいかなる手順で作業を遂行させるべきかを当該教示者が判断し得る作業種別を意味する。教示者が教示可能な作業種別は、教示者の専門知識又は技能等に応じて定まる。例えば切削加工の専門知識又は技能を有するが、溶接の専門知識又は技能を有しない教示者によれば、切削加工の教示が可能であるが、溶接の教示は不可能である。
【００３６】
サポート要求取得部２１２は、エッジコントローラ１００（サポート要求部１１７）からのサポート情報の送信要求を取得する。上述のように、サポート情報の送信要求は、ロボット２０の環境情報を含む。サポート情報の送信要求は、サポート情報の提供の難易度を更に含んでいてもよい。教示要求部２１３は、サポート情報が必要である場合に、教示者記憶部２１１が記憶する複数の教示者にネットワーク回線５０を介してサポート情報の送信を要求する。サポート情報が必要である場合とは、サポート情報がなければロボット２０に作業を継続させられない場合を意味する。サポート情報が必要である場合の具体例としては、エッジコントローラ１００において上記作業指示情報に基づくロボット２０の作業が不可とされる場合が挙げられる。例えば教示要求部２１３は、サポート要求取得部２１２がサポート情報の送信要求を取得した場合に、サポート情報の送信を要求するメッセージを上記複数の教示者の教示端末４０に配信する。
【００３７】
選択部２１４は、モデル記憶部１１１が記憶する複数の教示者のいずれかを、サポート情報の送信者として選択する。選択部２１４は、教示者が教示可能な作業種別の情報と、ロボット２０の作業種別とに基づいて複数の教示者のいずれかを選択してもよい。例えば選択部２１４は、上記複数の教示者から、ロボット２０の作業種別を教示可能な教示者を選択してもよい。選択部２１４は、教示要求部２１３からの要求への応答の速さに基づいて複数の教示者のいずれかを選択してもよい。例えば選択部２１４は、教示要求部２１３からの要求への応答が速い教示者を優先して選択してもよい。また、選択部２１４は、複数の選択基準（例えば上記作業種別に基づく選択基準及び応答の速さに基づく選択基準）の組み合わせにより複数の教示者のいずれかを選択してもよい。
【００３８】
環境情報送信部２１５は選択部２１４が選択した教示者（以下、「被選択教示者」という。）に、ネットワーク回線５０を介してロボット２０の環境情報を送信する。例えば環境情報送信部２１５は、エッジコントローラ１００（サポート要求部１１７）から受信した環境情報を、被選択教示者の教示端末４０に送信する。被選択教示者の教示端末４０は、ロボット２０の環境情報を表示し、当該環境情報に基づいて被選択教示者が入力したサポート情報をコラボレーションコントローラ２００に送信する。
【００３９】
サポート情報受信部２１６は、被選択教示者からネットワーク回線５０を介してサポート情報を受信する。例えばサポート情報受信部２１６は、被選択教示者の教示端末４０が送信したサポート情報を受信する。サポート情報送信部２１７は、サポート情報受信部２１６が受信したサポート情報をエッジコントローラ１００に送信する。サポート情報送信部２１７が送信したサポート情報は、上述したサポート情報受信部１１８により受信される。
【００４０】
コラボレーションコントローラ２００は、サポート情報に基づくロボット２０の作業前に、既存のデータに基づいてサポート情報の適正度を導出することと、当該適正度に基づいて当該サポート情報の採用可否を判定することとを更に実行するように構成されていてもよい。例えばコラボレーションコントローラ２００は、機能モジュールとして、事前評価部２２１とサポート可否判定部２２２とを更に有する。
【００４１】
事前評価部２２１は、サポート情報に基づくロボット２０の作業前に、既存のデータに基づいてサポート情報の適正度（以下、「事前適正度」という。）を導出する。既存のデータの具体例としては、事前適正度の導出対象となるサポート情報自体、及び被選択教示者による過去のサポート情報の送信実績（例えば後述の事後適正度）等が挙げられる。例えば事前評価部２２１は、サポート情報が示す作業対象物が、作業対象として適切な物体であるか否か等に基づいて事前適正度を導出する。例えば空間に固定されていて明らかに搬送不可能な物体が搬送の作業対象物とされている場合、事前評価部２２１は事前適正度を低くする。
【００４２】
サポート可否判定部２２２は、事前評価部２２１が導出したサポート情報の事前適正度に基づいて、当該サポート情報の採用可否を判定する。例えばサポート可否判定部２２２は、サポート情報の事前適正度が所定の採用閾値を超えている場合に、当該サポート情報を採用可とし、サポート情報の事前適正度が当該採用閾値を下回っている場合に、当該サポート情報を採用不可とする。サポート可否判定部２２２が、サポート情報を採用不可とした場合、サポート情報送信部２１７による当該サポート情報の送信は禁止される。
【００４３】
コラボレーションコントローラ２００は、サポート情報に基づくロボット２０の作業後に、当該ロボット２０の作業結果に基づいてサポート情報の適正度を導出することと、当該適正度に基づいてサポート情報の教示者のスコアを導出することとを更に実行し、スコアに基づいて複数の教示者のいずれかを選択するように構成されていてもよい。例えばコラボレーションコントローラ２００は、機能モジュールとして、実績情報受信部２３１と、事後評価部２３２と、スコア導出部２３３とを更に有する。
【００４４】
実績情報受信部２３１は、サポート情報に基づくロボット２０の作業結果を示す作業実績情報を上記実績情報送信部１２７から受信する。事後評価部２３２は、実績情報受信部２３１が受信した作業実績情報に基づいてサポート情報の適正度（以下、「事後適正度」という。）を導出する。例えば事後評価部２３２は、上記成否情報がロボット２０による作業の成功を示している場合に、成否情報がロボット２０による作業の失敗を示している場合に比較して事後適正度を高くする。また、事後評価部２３２は、上記効率情報により示される作業効率が高くなるのに応じて事後適正度を高くする。
【００４５】
スコア導出部２３３は、事後評価部２３２が導出した事後適正度に基づいて、当該サポート情報の教示者のスコアを導出する。例えばスコア導出部２３３は、事後適正度が高くなるのに応じて教示者のスコアを高くする。
【００４６】
選択部２１４は、スコア導出部２３３が導出したスコアに基づいて複数の教示者のいずれかを選択してもよい。例えば選択部２１４は、スコア導出部２３３が導出したスコアの高い教示者を優先して選択してもよい。この場合、選択部２１４は、スコアの高さに基づく選択基準と、他の選択基準（例えば上記作業種別に基づく選択基準及び応答の速さに基づく選択基準）との組み合わせに基づいて複数の教示者のいずれかを選択してもよい。
【００４７】
コラボレーションコントローラ２００は、サポート情報の送信に対する教示者への報酬額の算出基準となる教示実績値と、教示者とを対応付けて記憶することと、サポート情報に基づくロボット２０の作業が実行される度に、当該作業に応じて当該サポート情報の教示者の教示実績値を更新することと、を更に実行するように構成されていてもよい。また、コラボレーションコントローラ２００は、サポート情報の利用に応じた課金額の算出基準となる利用実績値と、ロボット２０とを対応付けて記憶することと、サポート情報に基づくロボット２０の作業が実行される度に、当該作業に応じて当該ロボット２０の利用実績値を更新することと、を更に実行するように構成されていてもよい。例えばコラボレーションコントローラ２００は、機能モジュールとして、教示実績記憶部２４１と、教示実績更新部２４２と、利用実績記憶部２４３と、利用実績更新部２４４とを更に有する。
【００４８】
教示実績記憶部２４１は、上記教示実績値と、教示者とを対応付けて記憶する。例えば教示実績値は、ロボット２０に作業を継続させるために用いられたサポート情報の送信実績を示す値である。教示実績値は、事後評価部２３２による事後適正度の評価結果を含んでいてもよいし、事後適正度の累積値を含んでいてもよい。この場合、例えばスコア導出部２３３は、教示実績記憶部２４１を参照し、教示実績値に基づいて教示者のスコアを導出してもよい。スコア導出部２３３は、教示実績値自体を教示者のスコアとしてもよいし、教示実績値に所定の演算を施して教示者のスコアを算出してもよい。
【００４９】
教示実績更新部２４２は、サポート情報に基づくロボット２０の作業が実行される度に、当該作業に応じて当該サポート情報の教示者の教示実績値を更新する。例えば教示実績更新部２４２は、事後評価部２３２がサポート情報の事後適正度を導出する度に、当該事後適正度に相関する値（以下、「加算値」という。）を当該サポート情報の教示者の教示実績値に加算する。このため、サポート情報に基づくロボット２０の作業が実行される度に当該サポート情報の教示者の教示実績値が増加し、その増加幅は上記事後適正度が高いほど大きくなる。教示実績更新部２４２は、サポート情報の提供の難易度に基づいて、当該サポート情報の教示者の教示実績値に対する加算値を変化させてもよい。例えば教示実績更新部２４２は、サポート情報の提供の難易度が高くなるほど加算値を高くしてもよい。
【００５０】
利用実績記憶部２４３は、上記利用実績値と、ロボット２０とを対応付けて記憶する。利用実績値は、事後評価部２３２による適正度の評価結果を含んでいてもよい。利用実績更新部２４４は、サポート情報に基づくロボット２０の作業が実行される度に、当該作業に応じて当該ロボット２０の利用実績値を更新する。例えば利用実績更新部２４４は、事後評価部２３２がサポート情報の事後適正度を導出する度に、当該サポート情報を利用したロボット２０の利用実績値に、当該事後適正度に相関する値（以下、「加算値」という。）を加算する。このため、サポート情報に基づくロボット２０の作業が実行される度に当該ロボット２０の利用実績値が増加し、その増加幅は上記事後適正度が高いほど大きくなる。利用実績更新部２４４は、サポート情報の提供の難易度に基づいて、当該サポート情報を利用したロボット２０の利用実績値に対する加算値を変化させてもよい。例えば利用実績更新部２４４は、サポート情報の提供の難易度が高くなるほど加算値を高くしてもよい。
【００５１】
（エッジコントローラ及びコラボレーションコントローラのハードウェア構成）
図４は、エッジコントローラ１００及びコラボレーションコントローラ２００のハードウェア構成を例示するブロック図である。エッジコントローラ１００は、回路１９０を備える。回路１９０は、少なくとも一つのプロセッサ１９１と、メモリ１９２と、ストレージ１９３と、通信ポート１９４とを含む。ストレージ１９３は、例えば少なくとも一つのハードディスク又は不揮発性メモリ等の記憶媒体である。例えばストレージ１９３は、ロボット２０の環境情報の入力に応じて、当該環境情報に対応したロボット２０の作業指示情報を出力する作業モデルを記憶することと、ロボット２０の環境情報と作業モデルとに基づいてロボット２０への作業指示情報を導出することと、ロボット２０の環境情報と作業モデルとに基づいて作業指示情報に基づくロボット２０の作業可否を判定することと、作業指示情報に基づくロボット２０の作業が不可であると判定された場合にサポート情報を要求することとをエッジコントローラ１００に実行させるプログラムを記憶している。例えばストレージ１９３は、上述したエッジコントローラ１００の機能モジュールを構成するためのプログラムを記憶している。メモリ１９２は、ストレージ１９３からロードしたプログラム及びプロセッサ１９１による演算結果等を一時的に記憶する。プロセッサ１９１は、メモリ１９２と協働して上記プログラムを実行することで、エッジコントローラ１００の各機能モジュールを構成する。通信ポート１９４は、プロセッサ１９１からの指令に応じ、ロボットコントローラ３０及びコラボレーションコントローラ２００との間でネットワーク通信を行う。
【００５２】
コラボレーションコントローラ２００は、回路２９０を備える。回路２９０は、少なくとも一つのプロセッサ２９１と、メモリ２９２と、ストレージ２９３と、通信ポート２９４とを含む。ストレージ２９３は、例えば少なくとも一つのハードディスク又は不揮発性メモリ等の記憶媒体である。ストレージ２９３は、複数の教示者の情報を記憶することと、エッジコントローラ１００からのサポート情報の要求に応じて複数の教示者のいずれかを選択することと、選択した教示者の教示端末４０にネットワーク回線５０を介してロボット２０の環境情報を送信することと、選択した教示者の教示端末４０からネットワーク回線５０を介して環境情報に基づくサポート情報を受信することと、受信したサポート情報をエッジコントローラ１００に送信することとをコラボレーションコントローラ２００に実行させるプログラムを記憶している。例えばストレージ２９３は、上述したコラボレーションコントローラ２００の機能モジュールを構成するためのプログラムを記憶している。メモリ２９２は、ストレージ２９３からロードしたプログラム及びプロセッサ２９１による演算結果等を一時的に記憶する。プロセッサ２９１は、メモリ２９２と協働して上記プログラムを実行することで、コラボレーションコントローラ２００の各機能モジュールを構成する。通信ポート２９４は、プロセッサ２９１からの指令に応じ、教示端末４０及びエッジコントローラ１００との間でネットワーク通信を行う。ストレージ２９３は、必ずしもコラボレーションコントローラ２００に内蔵されていなくてもよい。例えばストレージ２９３は、ネットワーク回線５０を介して通信ポート２９４に接続された外部のストレージ（例えばクラウド）であってもよい。
【００５３】
〔ロボット制御手順〕
続いて、ロボット制御方法の一例として、ロボット制御システム１が実行する制御手順を説明する。この制御手順は、エッジコントローラ１００が実行する動作指令の出力手順と、エッジコントローラ１００が実行する作業モデルの更新手順と、コラボレーションコントローラ２００が実行するサポート情報の受信手順とを含む。以下、各手順を詳細に例示する。
【００５４】
（動作指令の出力手順）
動作指令の出力手順は、ロボット２０の環境情報と、上記作業モデルとに基づいてロボット２０への作業指示情報を導出することと、ロボット２０の環境情報と、作業モデルとに基づいて作業指示情報に基づくロボット２０の作業可否を判定することと、作業指示情報に基づくロボット２０の作業が可であると判定した場合に、作業指示情報に基づく動作指令を生成してロボットコントローラ３０に出力することと、作業指示情報に基づくロボット２０の作業が不可であると判定した場合に、サポート情報を要求し、サポート情報に基づく動作指令を生成してロボットコントローラ３０に出力することとを含む。
【００５５】
図５は、一つのロボット２０に対してエッジコントローラ１００が実行する動作指令の出力手順を例示するフローチャートである。図５に示すように、エッジコントローラ１００は、まずステップＳ０１，Ｓ０２を実行する。ステップＳ０１では、環境情報取得部１１２が、ロボット２０の環境情報をロボットコントローラ３０から取得する。ステップＳ０２では、作業指示導出部１１３が、環境情報取得部１１２が取得したロボット２０の環境情報と、モデル記憶部１１１が記憶する作業モデルとに基づいてロボット２０への作業指示情報を導出する。例えば作業指示導出部１１３は、ロボット２０の環境情報を作業モデルに入力し、これに応じて作業モデルが出力する作業指示情報を得て作業指示記憶部１１４に書き込む。
【００５６】
次に、エッジコントローラ１００は、ステップＳ０３，Ｓ０４を実行する。ステップＳ０３では、信頼度導出部１１５が作業指示情報の信頼度を導出する。ステップＳ０４では、作業可否判定部１１６が、環境情報取得部１１２が取得したロボット２０の環境情報と、モデル記憶部１１１が記憶する作業モデルとに基づいて、作業指示情報に基づくロボット２０の作業可否を判定する。例えば作業可否判定部１１６は、信頼度導出部１１５が導出する信頼度が所定の閾値を超えている場合には作業指示情報に基づくロボット２０の作業が可であると判定し、信頼度が当該閾値を下回っている場合には作業指示情報に基づくロボット２０の作業が不可であると判定する。
【００５７】
ステップＳ０４において作業指示情報に基づくロボットの作業が可であると判定した場合、エッジコントローラ１００はステップＳ０５を実行する。ステップＳ０５では、動作指令生成部１２１が、作業指示情報に基づいてロボット２０の動作指令を生成する。例えば動作指令生成部１２１は、作業指示情報により特定される作業内容を実行させるように、先端部２２の移動指令と、先端部２２の移動に応じたツールの動作指令とを生成する。
【００５８】
ステップＳ０４において作業指示情報に基づくロボットの作業が不可であると判定した場合、エッジコントローラ１００は、ステップＳ０６，Ｓ０７，Ｓ０８を実行する。ステップＳ０６では、サポート要求部１１７が、コラボレーションコントローラ２００にサポート情報の送信を要求する。また、サポート要求部１１７は、教示者に参照させるためのロボット２０の環境情報をコラボレーションコントローラ２００に送信する。ステップＳ０７では、サポート情報受信部１１８が、サポート要求部１１７からの要求に応じてコラボレーションコントローラ２００が送信したサポート情報を受信する。ステップＳ０８では、動作指令生成部１２１が、サポート情報に基づいてロボット２０の動作指令を生成する。例えば動作指令生成部１２１は、サポート情報により特定される作業内容を実行させるように、先端部２２の移動指令と、先端部２２の移動に応じたツールの動作指令とを生成する。
【００５９】
ステップＳ０５，Ｓ０８の次に、エッジコントローラ１００は、ステップＳ０９を実行する。ステップＳ０９では、動作指令生成部１２１が生成した動作指令を、動作指令送信部１２２がロボットコントローラ３０に出力する。ロボットコントローラ３０は、動作指令送信部１２２から出力された動作指令に従ってロボット２０を制御する。これにより、作業指示情報又はサポート情報に基づく作業がロボット２０により実行される。以上で動作指令の出力手順が完了する。エッジコントローラ１００は、複数のロボット２０のそれぞれに対して、以上の手順を繰り返す。
【００６０】
（作業モデルの更新手順）
作業モデルの更新手順は、ロボット２０の環境情報と、ロボット２０の作業結果とを学習用データとして蓄積することと、蓄積した学習用データに基づく機械学習により、モデル記憶部１１１の作業モデルを更新することと、当該ロボット２０の作業モデルの更新内容を他のロボット２０の作業モデルにも反映させることとを含む。
【００６１】
図６は、一つのロボット２０の作業モデルに対してエッジコントローラ１００が実行する更新手順を例示するフローチャートである。図６に示すように、エッジコントローラ１００は、まずステップＳ１１，Ｓ１２，Ｓ１３を実行する。ステップＳ１１では、実績情報取得部１２３が、動作指令生成部１２１による上記動作指令の生成を待機する。ステップＳ１２では、実績情報取得部１２３が、上記動作指令に従ったロボット２０の作業結果に関する作業実績情報を取得する。例えば実績情報取得部１２３は、作業指示情報又はサポート情報を動作指令生成部１２１から取得し、上記成否情報及び効率情報等をロボットコントローラ３０から取得する。ステップＳ１３では、実績情報送信部１２７が、実績情報取得部１２３が取得した作業実績情報をコラボレーションコントローラ２００に送信する。
【００６２】
次に、エッジコントローラ１００は、ステップＳ１４，Ｓ１５を実行する。ステップＳ１４では、学習データ蓄積部１２４が、ロボット２０の環境情報と、当該環境情報に応じたロボット２０の作業実績情報と上記学習用データとして蓄積する。例えば学習データ蓄積部１２４は、ロボット２０の環境情報を環境情報取得部１１２から取得し、当該環境情報に応じたロボット２０の作業実績情報を実績情報取得部１２３から取得し、これらを学習用データとして蓄積する。ステップＳ１５では、モデル更新部１２５が、学習データ蓄積部１２４が蓄積したデータ数（ロボット２０の環境情報及び作業実績情報の数）が、所定の学習可能数を超えたか否かを確認する。ここでのデータ数は、最新の作業モデル（モデル記憶部１１１が記憶している作業モデル）が得られた時点以降に蓄積されたデータ数である。
【００６３】
ステップＳ１５においてデータ数が所定の学習可能数を超えていないと判定した場合、エッジコントローラ１００は、処理をステップＳ１１に戻す。ステップＳ１５においてデータ数が所定の学習可能数を超えたと判定した場合、エッジコントローラ１００は、ステップＳ１６，Ｓ１７を実行する。ステップＳ１６では、モデル更新部１２５が、学習データ蓄積部１２４が蓄積した学習用データに基づく機械学習により、モデル記憶部１１１の作業モデルを更新する。ステップＳ１７では、更新内容反映部１２６が、ステップＳ１６におけるロボット２０の作業モデルの更新内容を、他のいずれかのロボット２０の作業モデルに反映させる。エッジコントローラ１００は、複数のロボット２０のそれぞれの作業モデルに対して、以上の手順を繰り返す。
【００６４】
（サポート情報の受信手順）
サポート情報の受信手順は、エッジコントローラ１００からのサポート情報の要求に応じて、複数の教示者のいずれかを選択することと、選択した教示者の教示端末４０にネットワーク回線５０を介してロボット２０の環境情報を送信することと、選択した教示者の教示端末４０からネットワーク回線５０を介して環境情報に基づくサポート情報を受信することと、受信したサポート情報をエッジコントローラ１００に送信することとを含む。
【００６５】
例えば図７に示すように、コラボレーションコントローラ２００は、ステップＳ２１，Ｓ２２，Ｓ２３，Ｓ２４を実行する。ステップＳ２１では、サポート要求取得部２１２が、サポート要求部１１７からのサポート情報の送信要求を取得する。ステップＳ２２では、教示要求部２１３が、サポート情報が対象とするロボット２０の作業種別を教示可能な教示者を、教示者記憶部２１１が記憶する複数の教示者から抽出する。以下、教示要求部２１３が抽出した教示者を「候補教示者」という。ステップＳ２３では、教示要求部２１３が、ステップＳ２２において抽出された候補教示者に、ネットワーク回線５０を介してサポート情報の送信を要求する。ステップＳ２４では、スコア導出部２３３が、候補教示者からの応答を待機する。スコア導出部２３３は、複数の候補教示者からの応答を待機してもよい。
【００６６】
次に、コラボレーションコントローラ２００は、ステップＳ２５，Ｓ２６を実行する。ステップＳ２５では、スコア導出部２３３が、教示要求に応答した候補教示者のスコアを、以前に事後評価部２３２が導出した上記事後適正度に基づいて導出する。例えばスコア導出部２３３は、教示実績記憶部２４１を参照し、上記教示実績値に基づいて候補教示者のスコアを導出する。ステップＳ２６では、選択部２１４が、候補教示者のいずれかを、サポート情報の送信者として選択する。例えば選択部２１４は、スコア導出部２３３が導出したスコアに基づいて複数の教示者のいずれかを選択してもよい。
【００６７】
次に、コラボレーションコントローラ２００は、ステップＳ２７，Ｓ２８を実行する。選択部２１４は、スコアの高さに基づく選択基準と、他の選択基準（例えば上記作業種別に基づく選択基準及び応答の速さに基づく選択基準）との組み合わせに基づいて複数の教示者のいずれかを選択してもよい。ステップＳ２７では、環境情報送信部２１５が、被選択教示者（選択部２１４が選択した教示者）に、ネットワーク回線５０を介してロボット２０の環境情報を送信する。ステップＳ２８では、サポート情報受信部２１６が、被選択教示者からネットワーク回線５０を介してサポート情報を受信する。
【００６８】
次に、コラボレーションコントローラ２００は、ステップＳ３１，Ｓ３２を実行する。ステップＳ３１では、事前評価部２２１が、既存のデータに基づいてサポート情報の上記事前適正度を導出する。ステップＳ３２では、サポート可否判定部２２２が、事前評価部２２１が導出した事前適正度に基づいて、当該サポート情報の採用可否を判定する。例えばサポート可否判定部２２２は、事前適正度が所定の採用閾値を超えているか否かを判定する。
【００６９】
ステップＳ３２においてサポート情報が採用不可であると判定した場合、コラボレーションコントローラ２００は、処理をステップＳ２４に戻す。以後、サポート可否判定部２２２によりサポート情報が採用可であると判定されるまで、サポート情報の取得と、事前適正度に基づく採用可否の判定とが繰り返される。
【００７０】
ステップＳ３２においてサポート情報が採用可であると判定した場合、コラボレーションコントローラ２００は、ステップＳ３３，Ｓ３４を実行する。ステップＳ３３では、サポート情報送信部２１７が、採用可と判定されたサポート情報をエッジコントローラ１００に送信する。ステップＳ３４では、実績情報受信部２３１が、サポート情報に基づくロボット２０の作業結果を示す作業実績情報を上記実績情報送信部１２７から受信する。
【００７１】
次に、コラボレーションコントローラ２００は、ステップＳ３５，Ｓ３６を実行する。ステップＳ３５では、事後評価部２３２が、実績情報受信部２３１が受信した作業実績情報に基づいてサポート情報の上記事後適正度を導出する。ステップＳ３６では、教示実績更新部２４２が、サポート情報の事後適正度に相関する値を、当該サポート情報の教示者の教示実績値に加算し、利用実績更新部２４４が、サポート情報の事後適正度に相関する値を、当該サポート情報を利用したロボット２０の利用実績値に加算する。以上でサポート情報の受信手順が完了する。コラボレーションコントローラ２００は以上の手順を繰り返す。
【００７２】
〔本実施形態の効果〕
以上に説明したように、ロボット制御システム１は、複数の教示者の情報を記憶する教示者記憶部２１１と、ロボット２０に作業を継続させるためにサポート情報が必要である場合に、教示者記憶部２１１が記憶する複数の教示者のいずれかを選択する選択部２１４と、選択部２１４が選択した教示者に、ネットワーク回線５０を介してロボット２０の環境情報を送信する環境情報送信部２１５と、選択部２１４が選択した教示者からネットワーク回線５０を介してサポート情報を受信するサポート情報受信部２１６と、を備える。
【００７３】
このロボット制御システム１によれば、複数の教示者から、ネットワーク回線５０を介してサポート情報の提供を受けることが可能である。このため、常時待機している教示者がいなくても、サポート情報を早期に取得してロボット２０の作業を継続させることができる。また、各教示者は、ロボット２０の近くに常時待機する必要がないので、各自の作業を遂行することが可能である。従って、ロボット２０と人との効率的な協働に有効である。
【００７４】
ロボット制御システム１は、サポート情報に基づくロボット２０の作業前に、既存のデータに基づいてサポート情報の適正度を導出する事前評価部２２１と、事前評価部２２１が導出したサポート情報の適正度に基づいて、当該サポート情報の採用可否を判定するサポート可否判定部２２２と、を更に備えていてもよい。この場合、複数の教示者から幅広くサポート情報の提供を受けつつ、適正度の低いサポート情報を採用不可とすることで、サポート情報に基づくロボット２０の作業の信頼性を向上させることができる。
【００７５】
ロボット制御システム１は、サポート情報に基づくロボット２０の作業後に、ロボット２０の作業結果に基づいてサポート情報の適正度を導出する事後評価部２３２と、事後評価部２３２が導出したサポート情報の適正度に基づいて、当該サポート情報の教示者のスコアを導出するスコア導出部２３３と、を更に備え、選択部２１４は、スコア導出部２３３が導出したスコアに基づいて複数の教示者のいずれかを選択してもよい。この場合、複数の教示者から幅広くサポート情報の提供を受けつつ、適正度の高いサポート情報を提供する傾向のある教示者を優先することで、サポート情報に基づくロボット２０の作業の信頼性を向上させることができる。
【００７６】
教示者記憶部２１１が記憶する教示者の情報は、教示可能な作業種別の情報を含み、選択部２１４は、教示可能な作業種別の情報と、ロボット２０の作業種別とに基づいて複数の教示者のいずれかを選択してもよい。この場合、複数の教示者から幅広くサポート情報の提供を受けつつ、サポート情報が対象とする作業種別に適した教示者を優先することで、サポート情報に基づくロボット２０の作業の信頼性を更に向上させることができる。
【００７７】
ロボット制御システム１は、サポート情報が必要である場合に、教示者記憶部２１１が記憶する複数の教示者にネットワーク回線５０を介してサポート情報の送信を要求する教示要求部２１３を更に備え、選択部２１４は、教示要求部２１３からの要求への応答の速さに基づいて複数の教示者のいずれかを選択してもよい。この場合、応答の早い教示者を優先することで、より迅速なサポート情報の提供を教示者に促すことができる。このため、ロボット２０の作業の効率を更に向上させることができる。
【００７８】
ロボット制御システム１は、サポート情報の送信に対する報酬額の算出基準となる教示実績値と、教示者とを対応付けて記憶する教示実績記憶部２４１と、サポート情報に基づくロボット２０の作業が実行される度に、当該作業に応じて当該サポート情報の教示者の教示実績値を更新する教示実績更新部２４２と、を更に備えていてもよい。この場合、教示実績と報酬額とを相関させることで、より積極的なサポート情報の提供を教示者に促すことができる。このため、ロボット２０の作業の効率を更に向上させることができる。
【００７９】
ロボット制御システム１は、サポート情報の利用に応じた課金額の算出基準となる利用実績値と、ロボット２０とを対応付けて記憶する利用実績記憶部２４３と、サポート情報に基づくロボット２０の作業が実行される度に、当該作業に応じて当該ロボット２０の利用実績値を更新する利用実績更新部２４４と、を更に備えていてもよい。この場合、利用実績に応じた合理的な課金によって、サポート情報の有効活用を促すことができる。
【００８０】
ロボット制御システム１は、ロボット２０の環境情報の入力に応じて、当該環境情報に対応したロボット２０の作業指示情報を出力する作業モデルを記憶するモデル記憶部１１１と、ロボット２０の環境情報と、モデル記憶部１１１が記憶する作業モデルとに基づいてロボット２０への作業指示情報を導出する作業指示導出部１１３と、ロボット２０の環境情報と、モデル記憶部１１１が記憶する作業モデルとに基づいて作業指示情報に基づくロボット２０の作業可否を判定する作業可否判定部１１６と、作業可否判定部１１６により作業指示情報に基づくロボット２０の作業が不可であると判定された場合にサポート情報を要求するサポート要求部１１７と、を更に備えていてもよい。この場合、ロボット２０の自律動作を活用し、サポート情報が必要となる状況を削減することで、教示者の負担を更に軽減することができる。
【００８１】
ロボット制御システム１は、ロボット２０の環境情報と、ロボット２０の作業結果とを学習用データとして蓄積する学習データ蓄積部１２４と、学習データ蓄積部１２４が蓄積した学習用データに基づく機械学習により、作業モデルを更新するモデル更新部１２５とを更に備えていてもよい。この場合、機械学習によりロボット２０の自律性を向上させることによって、教示者の負担を徐々に軽減することができる。
【００８２】
ロボット制御システム１は、モデル更新部１２５がいずれかの作業モデルを更新した場合に、当該作業モデルの更新内容を上記ロボット２０の他のロボット２０の作業モデルにも反映させる更新内容反映部１２６を更に備えていてもよい。この場合、最新の作業モデルの共有により、各ロボット２０の自律性を迅速に向上させることができる。
【００８３】
以上、実施形態について説明したが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。
【符号の説明】
【００８４】
１…ロボット制御システム、２０…ロボット、５０…ネットワーク回線、１１１…モデル記憶部、１１３…作業指示導出部、１１６…作業可否判定部、１１７…サポート要求部、１２４…学習データ蓄積部、１２５…モデル更新部、１２６…更新内容反映部、２１１…教示者記憶部、２１３…教示要求部、２１４…選択部、２１５…環境情報送信部、２１６…サポート情報受信部、２２１…事前評価部、２２２…サポート可否判定部、２３２…事後評価部、２３３…スコア導出部、２４１…教示実績記憶部、２４２…教示実績更新部、２４３…利用実績記憶部、２４４…利用実績更新部。
【図１】
2020149414.tif 000003
【図２】
2020149414.tif 000004
【図３】
2020149414.tif 000005
【図４】
2020149414.tif 000006
【図５】
2020149414.tif 000007
【図６】
2020149414.tif 000008
【図７】
2020149414.tif 000009
【国際調査報告】
2020149414.tif 000010
2020149414.tif 000011
2020149414.tif 000012
2020149414.tif 000013