(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】ロボット管理装置、制御方法及び、プログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20241126BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2023512634
(86)(22)【出願日】2021-04-09
(86)【国際出願番号】 JP2021015053
(87)【国際公開番号】W WO2022215262
(87)【国際公開日】2022-10-13
【審査請求日】2023-10-04
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】若山 永哉
(72)【発明者】
【氏名】小川 雅嗣
(72)【発明者】
【氏名】一圓 真澄
(72)【発明者】
【氏名】伊藤 岳大
【審査官】杉山 悟史
(56)【参考文献】
【文献】国際公開第2008/140011(WO,A1)
【文献】特開2016-068161(JP,A)
【文献】特開2012-230506(JP,A)
【文献】特表2020-507164(JP,A)
【文献】特開2007-190659(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
タスクを実行するロボットの外部入力に基づく制御の要否を判定する外部入力要否判定手段と、
前記外部入力に基づく制御が必要な場合、前記外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定する操作端末決定手段と、を有
し、
前記外部入力要否判定手段は、前記タスクに関する情報を含む支援要求情報を、前記ロボット又は前記ロボットを制御するロボットコントローラから受信した場合に、前記外部入力に基づく制御が必要と判定し、
前記操作端末決定手段は、前記操作端末を決定できない場合、支援が未実行の前記支援要求情報を蓄積し、支援の緊急度に基づき各支援要求情報の優先度を決定し、前記支援が実行可能となったときに、前記優先度が高い順に前記支援要求情報を処理するロボット管理装置。
【請求項2】
前記操作端末決定手段が決定した前記操作端末と、前記ロボット又は前記ロボットを制御するロボットコントローラとの通信接続を確立する制御を行う接続制御手段をさらに有する、請求項1に記載のロボット管理装置。
【請求項3】
前記タスクに関する情報は、前記タスクにおいて生じたエラーに関する
情報である、エラーの種類を示す情報、もしくはエラー発生時の状況を表す情報のいずれか一以上からなるエラー情報を含み、エラー情報を含み、
前記操作端末決定手段は、前記操作端末情報と、前記エラー情報とに基づき、前記外部入力を生成する前記操作端末を決定する、請求項1または2に記載のロボット管理装置。
【請求項4】
前記タスクに関する情報は、前記ロボットの種類情報を含み、
前記操作端末決定手段は、前記操作端末情報と、前記ロボットの種類情報とに基づき、前記外部入力を生成する前記操作端末を決定する、請求項1~3のいずれか一項に記載のロボット管理装置。
【請求項5】
前記操作端末決定手段は、前記操作端末の操作者に関する情報である操作者情報と、前記操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定する、請求項1~4のいずれか一項に記載のロボット管理装置。
【請求項6】
前記操作者情報は、前記操作者のスキル又は操作実績に関する情報を含み、
前記操作端末決定手段は、前記タスクに関する情報に基づき定まる必要なスキル又は操作実績を満たす操作者が使用する前記操作端末を、前記外部入力を生成する前記操作端末として決定する、請求項5に記載のロボット管理装置。
【請求項7】
前記操作者情報は、前記操作者の状態管理に関する情報である状態管理情報を含み、
前記操作端末決定手段は、前記状態管理情報に基づき、前記外部入力に関する操作を実行可能な状態である操作者が使用する前記操作端末を、前記外部入力を生成する前記操作端末として決定する、請求項5または6に記載のロボット管理装置。
【請求項8】
コンピュータが、
タスクを実行するロボットの外部入力に基づく制御の要
否判定
を行い、前記タスクに関する情報を含む支援要求情報を、前記ロボット又は前記ロボットを制御するロボットコントローラから受信した場合に、前記外部入力に基づく制御が必要と判定し、
前記外部入力に基づく制御が必要な場合、前記外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定
し、前記操作端末を決定できない場合、支援が未実行の前記支援要求情報を蓄積し、支援の緊急度に基づき各支援要求情報の優先度を決定し、前記支援が実行可能となったときに、前記優先度が高い順に前記支援要求情報を処理する、
制御方法。
【請求項9】
タスクを実行するロボットの外部入力に基づく制御の要
否判定
を行い、前記タスクに関する情報を含む支援要求情報を、前記ロボット又は前記ロボットを制御するロボットコントローラから受信した場合に、前記外部入力に基づく制御が必要と判定し、
前記外部入力に基づく制御が必要な場合、前記外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定
し、前記操作端末を決定できない場合、支援が未実行の前記支援要求情報を蓄積し、支援の緊急度に基づき各支援要求情報の優先度を決定し、前記支援が実行可能となったときに、前記優先度が高い順に前記支援要求情報を処理する処理を、
コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットの動作を制御する技術分野に関する。
【背景技術】
【0002】
ロボットがタスクを実行する場合に、タスクの一部を人による外部入力に基づき実行するロボットシステムが提案されている。例えば、特許文献1には、自律制御だけでは困難となった場合に、操作者が操作する操作端末に対して遠隔操作を依頼するロボットシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
外部入力に基づきロボットを操作する場合には、作業内容において必要な操作が異なる。一方、特許文献1に記載のロボットシステムは、対話型ロボットであり、操作端末を選択する場合において、操作方法の多様性については考慮されていない。
【0005】
本開示の目的の1つは、上述した課題を鑑み、外部入力を生成する操作端末を好適に決定することが可能なロボット管理装置、制御方法及び記憶媒体を提供することである。
【課題を解決するための手段】
【0006】
ロボット管理装置の一の態様は、
タスクを実行するロボットの外部入力に基づく制御の要否を判定する外部入力要否判定手段と、
前記外部入力に基づく制御が必要な場合、前記外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定する操作端末決定手段と、を有し、
前記外部入力要否判定手段は、前記タスクに関する情報を含む支援要求情報を、前記ロボット又は前記ロボットを制御するロボットコントローラから受信した場合に、前記外部入力に基づく制御が必要と判定し、
前記操作端末決定手段は、前記操作端末を決定できない場合、支援が未実行の前記支援要求情報を蓄積し、支援の緊急度に基づき各支援要求情報の優先度を決定し、前記支援が実行可能となったときに、前記優先度が高い順に前記支援要求情報を処理するロボット管理装置である。
【0007】
制御方法の一の態様は、
コンピュータが、
タスクを実行するロボットの外部入力に基づく制御の要否判定を行い、前記タスクに関する情報を含む支援要求情報を、前記ロボット又は前記ロボットを制御するロボットコントローラから受信した場合に、前記外部入力に基づく制御が必要と判定し、
前記外部入力に基づく制御が必要な場合、前記外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定し、前記操作端末を決定できない場合、支援が未実行の前記支援要求情報を蓄積し、支援の緊急度に基づき各支援要求情報の優先度を決定し、前記支援が実行可能となったときに、前記優先度が高い順に前記支援要求情報を処理する、
制御方法である。
【0008】
プログラムの一の態様は、
タスクを実行するロボットの外部入力に基づく制御の要否判定を行い、前記タスクに関する情報を含む支援要求情報を、前記ロボット又は前記ロボットを制御するロボットコントローラから受信した場合に、前記外部入力に基づく制御が必要と判定し、
前記外部入力に基づく制御が必要な場合、前記外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定し、前記操作端末を決定できない場合、支援が未実行の前記支援要求情報を蓄積し、支援の緊急度に基づき各支援要求情報の優先度を決定し、前記支援が実行可能となったときに、前記優先度が高い順に前記支援要求情報を処理する処理を
コンピュータに実行させるプログラムである。
【発明の効果】
【0009】
外部入力を生成する操作端末を好適に決定することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態におけるロボット制御システムの構成を示す。
【
図2】(A)ロボットコントローラのハードウェア構成を示す。(B)操作端末のハードウェア構成を示す。(C)ロボット管理装置のハードウェア構成を示す。
【
図3】アプリケーション情報のデータ構造の一例を示す。
【
図4】(A)操作端末情報のデータ構造の一例である。(B)操作者情報のデータ構造の一例である。
【
図5】ロボット制御システムの処理の概要を示す機能ブロックの一例である。
【
図6】動作シーケンス生成部の機能的な構成を示す機能ブロックの一例である。
【
図9】第1実施形態においてロボット管理装置が実行するフローチャートの一例である。
【
図10】第2実施形態におけるロボット管理装置の概略構成図を示す。
【
図11】第2実施形態におけるロボット管理装置の処理を示すフローチャートの一例である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、本開示における実施形態について説明する。
【0012】
<第1実施形態>
(1)
システム構成
図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、操作端末2(2A、2B、…)と、ロボット管理装置3と、複数のタスク実行システム50(50A、50B、…)とを有する。操作端末2とロボット管理装置3とタスク実行システム50とは、通信網6を介してデータ通信を行う。
【0013】
操作端末2は、タスク実行システム50におけるロボット5がタスクを実行するために必要な支援操作を受け付ける端末であり、操作者(操作者a~c、…)により使用される。具体的には、支援を要求するタスク実行システム50が存在する場合に、操作端末2は、ロボット管理装置3による接続制御に基づき、タスク実行システム50と通信接続を確立し、操作者の操作(手動操作)により生成した外部入力信号「Se」を、要求元のタスク実行システム50に送信する。ここで、外部入力信号Seは、支援が必要なロボット5の動作を直接的又は間接的に規定する指令を表す操作者の入力信号である。
【0014】
本実施形態において、操作端末2は、操作方法が異なる複数種類の端末を含んでいる。例えば、操作端末2は、タブレット端末、据置型のパーソナルコンピュータ、ゲームコントローラー、仮想現実(VR:Virtual Reality)端末などを含む。そして、後述するように、支援を要求するタスク実行システム50が存在する場合に、支援するタスクの内容等に応じ、適切な種類の操作端末2が支援を行う操作端末2として選択される。
【0015】
なお、操作端末2と操作者とは、1対1の関係であるとは限らず、1つの操作端末2を複数の操作者が使用する態様、複数の操作端末2を1人の操作者が使用する態様などが存在してもよい。また、操作端末2は、タスク実行システム50において実行させるタスクを指定する操作者の入力をさらに受け付けてもよい。この場合、操作端末2は、当該入力により生成されたタスクの指定情報を、対象のタスク実行システム50に送信する。
【0016】
ロボット管理装置3は、操作端末2による支援が必要なタスク実行システム50と、支援を行う操作端末2との接続を管理する。ロボット管理装置3は、いずれかのタスク実行システム50から支援要求情報「Sr」を受信した場合に、要求元のタスク実行システム50を支援するのに適した操作端末2(及び操作者)を選択し、選択された操作端末2(「対象操作端末2」とも呼ぶ。)と要求元のタスク実行システム50とが通信接続を確立するための接続制御を実行する。
【0017】
なお、タスク実行システム50と対象操作端末2との通信態様は、VPN(Virtual Private Network)等を構築して直接的にデータ通信を行う態様であってもよく、ロボット管理装置3がこれらのデータ通信の転送処理を行うことで間接的にデータ通信を行う態様であってもよい。前者の態様では、ロボット管理装置3は、接続制御として、例えば、タスク実行システム50(詳しくはロボットコントローラ1)又は対象操作端末2の少なくとも一方に対し、これらが直接的に通信できるように、他方の通信アドレスを送信する処理を行う。後者の態様では、ロボット管理装置3は、接続制御として、例えば、タスク実行システム50及び対象操作端末2の夫々と、転送専用の通信接続を確立する処理を行う。
【0018】
タスク実行システム50は、指定されたタスクを実行するロボットシステムであり、夫々異なる環境に設けられる。タスク実行システム50は、工場でのピッキング作業(例えば、棚からの部品の取り出し、及び、取り出した部品のトレイへの配置等)をタスクとして行うシステムであってもよく、工場以外の任意のロボットシステムであってもよい。このようなロボットシステムの例は、リテールにおける棚入れ作業(例えば、コンテナに入った商品を店舗の棚に並べる作業)を行うロボットシステム、商品チェック(例えば、賞味期限切れの商品を棚から取り出し又は値引きシールの貼り付け)を行うロボットシステムなどを含む。
【0019】
各タスク実行システム50は、ロボットコントローラ1(1A、1B、…)と、ロボット5(5A、5B、…)と、センサ7(7A、7B、…)と、を備える。
【0020】
ロボットコントローラ1は、同一のタスク実行システム50内に属するロボット5に実行させるタスクが指定された場合に、当該ロボット5の動作計画を策定し、当該動作計画に基づきロボット5を制御する。例えば、ロボットコントローラ1は、時相論理により表したタスクを、ロボット5が受付可能な単位となるタスクのタイムステップ(時間刻み)毎のシーケンスに変換し、生成したシーケンスに基づきロボット5を制御する。以後では、ロボット5が受付可能な単位によりタスクを分解したタスク(コマンド)を、「サブタスク」とも呼び、タスクを達成するためにロボット5が実行すべきサブタスクのシーケンスを「サブタスクシーケンス」又は「動作シーケンス」と呼ぶ。後述するように、サブタスクには、操作端末2による支援(即ち手動制御)が必要なタスクが含まれている。
【0021】
また、ロボットコントローラ1は、ロボット5の動作シーケンスをタスクから生成するために必要なアプリケーション情報を記憶するアプリケーション情報記憶部41(41A、41B、…)を有する。アプリケーション情報の詳細は、
図3を参照しながら後述する。
【0022】
また、ロボットコントローラ1は、同一のタスク実行システム50に属するロボット5及びセンサ7と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。例えば、ロボットコントローラ1は、ロボット5の制御に関する制御信号をロボット5に送信する。他の例では、ロボットコントローラ1は、センサ7が生成したセンサ信号を受信する。さらに、ロボットコントローラ1は、操作端末2と、通信網6を介してデータ通信を行う。
【0023】
ロボット5は、タスク実行システム50毎に1台又は複数台存在し、同一のタスク実行システム50に属するロボットコントローラ1から供給される制御信号に基づきタスクに関する作業を行う。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよく、ロボットアームなどの夫々が独立して動作する制御対象物(マニピュレータ、エンドエフェクタ)を複数有してもよい。また、ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械と協働作業を行うものであってもよい。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。
【0024】
また、ロボット5は、ロボット5の状態を示す状態信号を、同一のタスク実行システム50に属するロボットコントローラ1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5に供給された動作シーケンスの進捗状態を示す信号であってもよい。
【0025】
センサ7は、各タスク実行システム50においてタスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。センサ7は、生成した信号(「センサ信号」とも呼ぶ。)を、同一のタスク実行システム50に属するロボットコントローラ1に供給する。センサ7は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、センサ7は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、センサ7は、作業空間内の音を検出するセンサを含んでもよい。このように、センサ7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
【0026】
なお、
図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボットコントローラ1が有するロボット制御機能がロボット管理装置3に集約されていてもよい。この場合、ロボット管理装置3は、各タスク実行システム50に存在するロボット5に対する動作シーケンスの生成及び動作シーケンスをロボット5が実行するために必要な制御を行う。他の例では、ロボット管理装置3は、複数の装置から構成されてもよい。この場合、ロボット管理装置3を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。さらに別の例では、アプリケーション情報記憶部41は、ロボットコントローラ1とデータ通信を行う1または複数の外部記憶装置から構成されてもよい。この場合、外部記憶装置は、各タスク実行システム50で共通して参照されるアプリケーション情報記憶部41を記憶する1又は複数のサーバ装置であってもよい。
【0027】
(2)
ハードウェア構成
図2(A)は、ロボットコントローラ1(1A、1B、…)のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
【0028】
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。
【0029】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。また、メモリ12は、アプリケーション情報記憶部41として機能する。なお、メモリ12が記憶する情報の一部は、ロボットコントローラ1と通信可能な1又は複数の外部記憶装置により記憶されてもよく、ロボットコントローラ1に対して着脱自在な記憶媒体により記憶されてもよい。
【0030】
インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
【0031】
なお、ロボットコントローラ1のハードウェア構成は、
図2(A)に示す構成に限定されない。例えば、ロボットコントローラ1は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。
【0032】
図2(B)は、操作端末2のハードウェア構成を示す。操作端末2は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bと、音出力部24cと、を含む。プロセッサ21、メモリ22及びインターフェース23は、データバス20を介して接続されている。また、インターフェース23には、入力部24aと表示部24bと音出力部24cとが接続されている。
【0033】
プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、CPU、GPU、TPUなどのプロセッサである。また、プロセッサ21は、インターフェース23を介してタスク実行システム50から受信する情報に基づき、表示部24b又は音出力部24cの少なくとも一方を、インターフェース23を介して制御する。これにより、プロセッサ21は、操作者が実行すべき操作を支援する情報を、操作者に提示する。また、プロセッサ21は、入力部24aが生成した信号を、インターフェース23を介し、支援要求情報Srの送信元のタスク実行システム50に対し、外部入力信号Seとして送信する。プロセッサ21は、複数のプロセッサから構成されてもよい。プロセッサ21は、コンピュータの一例である。
【0034】
メモリ22は、RAM、ROM、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ22には、操作端末2が実行する処理を実行するためのプログラムが記憶される。
【0035】
インターフェース23は、操作端末2と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。また、インターフェース23は、入力部24a、表示部24b及び音出力部24cのインターフェース動作を行う。
【0036】
入力部24aは、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置などが該当する。また、入力部24aは、操作端末2の種類によっては、ロボット5への動作を直接的に規定する指令を表すユーザの入力を受け付ける操作部を含んでいる。この操作部は、例えば、外部入力に基づくロボット5の制御においてユーザが操作するロボット用コントローラ(操作盤)であってもよく、ユーザの動きに即したロボット5への動作指令を生成するロボット用入力システムであってもよく、ゲームコントローラーであってもよい。上述のロボット用コントローラは、例えば、動かすロボット5の部位等の指定や動きの指定などを行うための各種ボタン、及び、移動方向を指定するための操作バーなどを含む。上述のロボット用入力システムは、例えば、モーションキャプチャなどにおいて使用される各種センサ(例えば、カメラ、装着用センサ等を含む)を含む。
【0037】
表示部24bは、例えば、ディスプレイ、プロジェクタ等であり、プロセッサ21の制御に基づき表示を行う。また、表示部24bは、仮想現実を実現するためのコンバイナ(反射性及び透過性を有する板状部材)及び表示光を出射する光源の組み合わせであってもよい。また、音出力部24cは、例えば、スピーカであり、プロセッサ21の制御に基づき音出力を行う。
【0038】
なお、操作端末2のハードウェア構成は、
図2(B)に示す構成に限定されない。例えば、入力部24a、表示部24b、又は音出力部24cの少なくともいずれかは、操作端末2と電気的に接続する別体の装置として構成されてもよい。また、操作端末2は、カメラなどの種々の装置と接続してもよく、これらを内蔵してもよい。
【0039】
図2(C)は、ロボット管理装置3のハードウェア構成を示す。ロボット管理装置3は、ハードウェアとして、プロセッサ31と、メモリ32と、インターフェース33とを含む。プロセッサ31、メモリ32及びインターフェース33は、データバス30を介して接続されている。
【0040】
プロセッサ31は、メモリ32に記憶されているプログラムを実行することにより、ロボット管理装置3の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ31は、例えば、CPU、GPU、TPUなどのプロセッサである。プロセッサ31は、複数のプロセッサから構成されてもよい。プロセッサ31は、コンピュータの一例である。
【0041】
メモリ32は、RAM、ROM、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ32には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。また、メモリ32は、タスク実行システム50に対する支援を受け付け可能な操作端末2に関する情報である操作端末情報38と、当該操作端末2を操作する操作者に関する情報である操作者情報39とを記憶する。操作端末情報38及び操作者情報39の詳細については後述する。操作端末情報38及び操作者情報39は、インターフェース33を介して接続する図示しない入力部による管理者の入力に基づき生成されてメモリ32に記憶された情報であってもよく、インターフェース33を介して操作端末2等から受信した情報であってもよい。
【0042】
インターフェース33は、ロボット管理装置3と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
【0043】
なお、ロボット管理装置3のハードウェア構成は、
図2(C)に示す構成に限定されない。例えば、ロボット管理装置3は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。
【0044】
(3)データ構造
まず、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
【0045】
図3は、アプリケーション情報のデータ構造の一例を示す。
図3に示すように、アプリケーション情報は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6とを含む。
【0046】
抽象状態指定情報I1は、動作シーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、作業空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、タスクの種類毎に、定義する必要がある抽象状態を指定する。
【0047】
制約条件情報I2は、タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム)が接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
【0048】
動作限界情報I3は、ロボットコントローラ1により制御が行われるロボット5の動作限界に関する情報を示す。動作限界情報I3は、例えば、ロボット5の速度、加速度、又は角速度の上限を規定する情報である。なお、動作限界情報I3は、ロボット5の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
【0049】
サブタスク情報I4は、動作シーケンスの構成要素となるサブタスクの情報を示す。「サブタスク」は、ロボット5が受付可能な単位によりタスクを分解したタスクであって、細分化されたロボット5の動作を指す。例えば、タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット5のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定する。サブタスク情報I4は、タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。
【0050】
また、サブタスク情報I4には、外部入力による動作指令が必要なサブタスク(「外部入力型サブタスク」とも呼ぶ。)に関する情報が含まれている。この場合、外部入力型サブタスクに関するサブタスク情報I4には、例えば、サブタスクの識別情報と、外部入力型サブタスクであることを識別するフラグ情報と、当該外部入力型サブタスクでのロボット5の動作内容に関する情報とが含まれる。また、外部入力型サブタスクに関するサブタスク情報I4には、操作端末2に外部入力を要求するためのテキスト情報、想定される作業時間長に関する情報などがさらに含まれてもよい。
【0051】
抽象モデル情報I5は、作業空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。例えば、抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、ロボット5により作業対象となる物(「対象物」とも呼ぶ。)をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。抽象モデル情報I5は、タスクの種類毎に適した抽象モデルに関する情報を有している。
【0052】
物体モデル情報I6は、センサ7が生成した信号から認識すべき作業空間内の各物体の物体モデルに関する情報である。上述の各物体は、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の作業体などが該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、現在実行中の動作などをロボットコントローラ1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(Computer Aided Design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
【0053】
なお、アプリケーション情報記憶部41は、上述した情報の他、動作シーケンスの生成処理及び外部入力信号Seを生成する操作を受け付けるために必要な表示処理に関する種々の情報を記憶してもよい。
【0054】
図4(A)は、操作端末情報38のデータ構造の一例である。
図4(A)に示すように、操作端末情報38は、操作端末2ごとに存在し、主に、端末ID381と、端末種類情報382と、アドレス情報383と、対応操作者ID384と、を含んでいる。
【0055】
端末ID381は、対応する操作端末2の端末IDである。なお、端末ID381は、操作端末2を識別可能な任意の識別情報であってもよい。端末種類情報382は、対応する操作端末2の端末の種類を表す情報である。操作端末2の種類は、例えば、受け付ける操作態様の違いに基づき分類されている。
【0056】
アドレス情報383は、対応する操作端末2と通信を行うために必要な通信情報であり、例えば、所定の通信プロトコルに従い通信する際に必要な通信アドレス(IPアドレス等を含む)に関する情報である。アドレス情報383は、例えば、対象操作端末2とタスク実行システム50との通信接続を確立するための接続制御において用いられる。対応操作者ID384は、対応する操作端末2を操作する操作者の識別情報(操作者ID)である。対応操作者ID384は、複数の操作者の操作者IDを示すものであってもよい。
【0057】
図4(B)は、操作者情報39のデータ構造の一例である。
図4(B)に示すように、操作者情報39は、タスク実行システム50への支援を行う者として登録された操作者ごとに存在し、主に、操作者ID391と、スキル情報392と、操作実績情報393と、状態管理情報394と、操作可能端末ID395とを含んでいる。
【0058】
操作者ID391は、対応する操作者の操作者IDである。スキル情報392は、対応する操作者の操作端末2を用いた操作のスキル(熟練度)を表す情報である。スキル情報392は、操作する操作端末2の種類ごとに操作者の操作のスキルレベルを示すものであってもよい。操作実績情報393は、タスク実行システム50からの支援要求に応じた操作に関する操作者の実績情報である。操作実績情報393は、操作する操作端末2の種類ごとに操作者の操作実績を示すものであってもよい。
【0059】
操作実績情報393は、例えば、タスク実行システム50からの支援要求に応じた操作の回数、操作者としての登録期間(経験年数)、操作による成功と失敗の各回数若しくは割合などを含んでいる。ここで、「成功と失敗」は、例えば、エラー発生に基づくタスク実行システム50からの支援要求であった場合に、操作端末2からの外部入力信号Seの供給により要求元のタスク実行システム50のエラーが解消したか否かに基づき判定される。なお、エラー発生以外の場合、「成功と失敗」は、例えば、操作端末2からの外部入力信号Seの供給後に、タスクが正常終了したか否かに基づき判定されてもよい。
【0060】
なお、操作実績情報393は、タスク実行システム50からの支援要求に応じた操作ごとに生成される操作履歴を含んでもよい。この場合、タスク実行システム50からの支援要求があったタスクに関する情報、支援要求元のタスク実行システム50に関する情報、操作が行われた日時情報、操作時間長などの種々の情報が操作履歴として操作実績情報393に記録される。プロセッサ31は、例えば、タスク実行システム50からの支援要求及び要求に応じた支援が行われるたびに、要求元のタスク実行システム50から受信する情報等に基づき操作実績情報393を更新する。
【0061】
状態管理情報394は、対応する操作者の状態管理に関する情報であり、例えば、操作者が操作可能な日時又は時間帯を示すスケジュール情報であってもよく、操作者が現在対応可能な状態(例えば在席状態)であるか否かを示す情報であってもよい。プロセッサ31は、例えば、各操作者のスケジュールを管理する他のシステムから操作者のスケジュール情報及び在席/離席の情報等を受信する、又は、操作者の状態に関する手動入力を受け付けること等により、状態管理情報394を所定のタイミングにおいて更新してもよい。このように、操作端末情報38及び操作者情報39の各情報は、必要なタイミングにおいて更新される。
【0062】
操作可能端末ID395は、対応する操作者が操作可能な端末ID(
図4(A)の端末ID381)である。なお、操作可能端末ID395は、1つの操作端末2の端末IDであってもよく、複数の操作端末2の端末IDであってもよい。
【0063】
なお、操作端末情報38及び操作者情報39のデータ構造は、
図4(A)及び
図4(B)に示すデータ構造に限られない。例えば、操作端末情報38は、操作者情報39が有する状態管理情報394に相当する、操作端末2の状態を管理する情報をさらに有してもよい。また、操作端末2と操作者とが1対1に対応している場合には、操作端末情報38と操作者情報39はいずれか一方に統合されてもよい。
【0064】
(4)
機能ブロック
図5は、ロボット制御システム100の処理の概要を示す機能ブロックの一例である。ロボットコントローラ1のプロセッサ11は、機能的には、出力制御部15と、動作シーケンス生成部16と、ロボット制御部17と、切替判定部18とを有する。また、操作端末2のプロセッサ21は、機能的には、情報提示部25と、外部制御部26とを有する。また、ロボット管理装置3のプロセッサ31は、機能的には、外部入力要否判定部35と、操作端末決定部36と、接続制御部37とを有する。なお、
図5に示す機能ブロックでは、データの授受が行われるブロック同士を実線により結んでいるが、データの授受が行われるブロックの組合せ及び授受が行われるデータは
図5に限定されない。後述する他の機能ブロックの図においても同様である。また、
図5では、操作端末2による操作者の操作態様の例を、吹き出し60内において例示している。
【0065】
まず、ロボットコントローラ1の機能について説明する。ロボットコントローラ1は、生成した動作シーケンスに基づきロボット5の制御を実行し、操作端末2による支援が必要であると判定した場合に、支援要求情報Srをロボット管理装置3に送信する。これにより、ロボットコントローラ1は、自動制御のみでは対応できない場合においても、ロボット5の制御モードを外部入力信号Seに基づく制御(「外部入力制御」とも呼ぶ。)へ円滑に切り替えてタスクを遂行する。以下、ロボットコントローラ1の機能的な構成要素について説明する。
【0066】
出力制御部15は、インターフェース13を介した支援要求情報Srの送信及び外部入力信号Seの受信に関する処理を行う。この場合、出力制御部15は、外部入力制御への切替指令「Sw」が切替判定部18から供給された場合に、必要な外部入力を要求する支援要求情報Srを、操作端末2に送信する。
【0067】
ここで、支援要求情報Srには、支援が必要なタスク(サブタスク)に関する情報が含まれている。具体的には、支援要求情報Srには、例えば、要求が必要となった日時を示す日時情報、支援の対象となるロボット5の種類情報、タスクの識別情報、支援の対象となるサブタスクの識別情報、当該サブタスクの想定される作業時間長、ロボット5の必要な動作内容、エラーが発生した場合の当該エラーに関するエラー情報などが含まれている。エラー情報は、エラーの種類を示すエラーコード等である。なお、エラー情報は、エラー発生時の状況を表す情報(例えば映像情報)などを含んでもよい。また、ロボット管理装置3による接続制御に基づき操作端末2とロボットコントローラ1との通信接続が確立された場合には、出力制御部15は、操作端末2の操作者の操作画面の表示に必要な情報(「操作画面情報」とも呼ぶ。)を、操作端末2に送信する。また、出力制御部15は、操作端末2から外部入力信号Seを受信した場合には、当該外部入力信号Seをロボット制御部17に供給する。
【0068】
動作シーケンス生成部16は、センサ7が出力する信号と、アプリケーション情報とに基づき、指定されたタスクを完了するために必要なロボット5の動作シーケンス「Sv」を生成する。動作シーケンスSvは、タスクを達成するためにロボット5が実行すべきサブタスクのシーケンス(サブタスクシーケンス)に相当し、ロボット5の一連の動作を規定する。そして、動作シーケンス生成部16は、生成した動作シーケンスSvをロボット制御部17及び切替判定部18に供給する。ここで、動作シーケンスSvには、各サブタスクの実行順序及び実行タイミングを示す情報が含まれている。
【0069】
ロボット制御部17は、インターフェース13を介して制御信号をロボット5に供給することで、ロボット5の動作を制御する。ロボット制御部17は、動作シーケンスSvを動作シーケンス生成部16から受信した後、ロボット5の制御を行う。この場合、ロボット制御部17は、制御信号をロボット5に送信することで、動作シーケンスSvを実現するためのロボット5の関節の位置制御又はトルク制御などを実行する。そして、ロボット制御部17は、切替判定部18から供給される切替指令Swに基づき、ロボット5の制御モードを外部入力制御に切り替える。
【0070】
外部入力制御では、ロボット制御部17は、操作端末2により生成された外部入力信号Seを、インターフェース13を介して受信する。この外部入力信号Seは、例えば、ロボット5の具体的な動作を規定する情報(例えば、ロボット5の動作を直接的に定めた制御入力に相当する情報)を含んでいる。そして、ロボット制御部17は、受信した外部入力信号Seに基づき制御信号を生成し、生成した制御信号をロボット5に送信することで、ロボット5を制御する。外部入力制御においてロボット制御部17が生成する制御信号は、例えば、外部入力信号Seをロボット5が受け付け可能なデータ形式に変換した信号である。なお、このような変換処理がロボット5において行われる場合には、ロボット制御部17は、外部入力信号Seをそのまま制御信号としてロボット5に供給してもよい。
【0071】
また、外部入力信号Seは、ロボット5の具体的な動作を規定する情報である代わりに、タスク実行システム50による作業状態の認識を支援する情報であってもよい。例えば、タスク実行システム50において、ピックアンドプレイスの対象となる対象物が認識できなくなった場合、外部入力信号Seは、対象物の位置を示す情報であってもよい。この場合、操作端末2は、タスク実行システム50との通信接続の確立後、作業環境を撮影した画像を操作端末2から受信し、当該画像から対象物を指定する操作者の操作を受け付けることで、対象物の領域を指定する外部入力信号Seを生成する。そして、ロボット制御部17は、当該外部入力信号Seに基づき対象物を認識し、中断した動作シーケンスに基づくロボット制御を再開する。
【0072】
なお、ロボット制御部17に相当する機能を、ロボットコントローラ1に代えてロボット5が有してもよい。この場合、ロボット5は、動作シーケンス生成部16が生成する動作シーケンスSvと、切替判定部18が生成する切替指令Swと、外部入力信号Seとに基づき動作を行う。
【0073】
切替判定部18は、動作シーケンスSv等に基づいて、外部入力制御への制御モードの切替の要否判定を行う。例えば、切替判定部18は、動作シーケンスSvに組み込まれた外部入力型サブタスクの実行タイミングになった場合に、外部入力制御への制御モードの切替が必要であると判定する。他の例では、切替判定部18は、生成された動作シーケンスSvが計画通りに実行されない場合に、何らかの異常が発生したとみなし、外部入力制御へのロボット5の制御の切替が必要であると判定する。この場合、例えば、切替判定部18は、動作シーケンスSvに基づく計画との時間的又は/空間的なずれが発生していることを検知した場合に、何らかの異常が発生したと判定する。なお、切替判定部18は、ロボット5からエラー信号等を受信することにより、又は、センサ7が出力するセンサ信号(作業空間を撮影した画像等)を解析することにより、異常発生を検知してもよい。そして、切替判定部18は、外部入力制御への制御モードの切替が必要と判定した場合、外部入力制御への制御モードの切替を指示する切替指令Swを、出力制御部15及びロボット制御部17に供給する。
【0074】
次に、操作端末2の機能ブロックについて説明する。
【0075】
情報提示部25は、ロボット管理装置3による接続制御に基づき支援要求元のタスク実行システム50と操作端末2との通信接続が確立された場合に、タスク実行システム50から供給される操作画面情報などに基づき、表示部24bに操作画面を表示する。操作画面では、例えば、外部入力により指定すべきロボット5の動作内容に関する情報が表示される。これにより、情報提示部25は、操作に必要な情報を操作者に提示する。この場合、情報提示部25は、音出力部24cを制御することで、操作に必要な音声案内を出力してもよい。
【0076】
外部制御部26は、操作画面を参照した操作者による操作に応じて入力部24aが出力する信号を外部入力信号Seとして取得し、取得した外部入力信号Seを、支援要求元のタスク実行システム50へインターフェース23を介して送信する。この場合、外部制御部27は、例えば、操作者の操作に応じたリアルタイムでの外部入力信号Seの取得及び当該外部入力信号Seの送信を行う。
【0077】
次に、ロボット管理装置3の機能ブロックについて説明する。
【0078】
外部入力要否判定部35は、外部入力による支援の要否を判定する。本実施形態では、外部入力要否判定部35は、タスク実行システム50からインターフェース33を介して支援要求情報Srを受信した場合に、外部入力による支援が必要であると判定する。そして、外部入力要否判定部35は、支援要求情報Srを操作端末決定部36に供給する。
【0079】
操作端末決定部36は、支援要求情報Srと、操作端末情報38(及び操作者情報39)とに基づき、支援要求情報Srの送信元であるタスク実行システム50を支援する操作端末2及び操作者を決定する。この決定方法の具体例については後述する。
【0080】
接続制御部37は、操作端末決定部36が決定した対象操作端末2と支援要求元のタスク実行システム50との間の通信接続を確立させる接続制御を行う。この場合、接続制御部37は、例えば、対象操作端末2とタスク実行システム50とが直接的に通信接続を確立できるように、対象操作端末2又はタスク実行システム50の少なくとも一方に対し、他方の通信アドレスを送信する。他の例では、接続制御部37は、外部入力制御中において対象操作端末2とタスク実行システム50間でやりとりするデータの転送処理に必要な対象操作端末2及びタスク実行システム50との通信接続を確立する。この場合、接続制御部37は、外部入力制御中では、操作端末2が生成する外部入力信号Se等を受信し、受信した外部入力信号Se等をタスク実行システム50(詳しくはロボットコントローラ1)へ転送する処理、及び、タスク実行システム50が生成する操作画面情報等を受信し、受信した操作画面情報等を操作端末2へ転送する処理などを行う。
【0081】
ここで、外部入力要否判定部35、操作端末決定部36、及び接続制御部37の各構成要素は、例えば、プロセッサ31がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
図5に示すロボットコントローラ1及び操作端末2の構成要素についても同様である。
【0082】
(4)操作端末決定部の処理の詳細
次に、操作端末決定部36による対象操作端末2の決定方法について説明する。概略的には、操作端末決定部36は、支援要求情報Srに含まれるタスクに関する情報と、少なくとも操作端末情報38の端末種類情報382とを参照し、対象操作端末2を決定する。以下では、この具体例について説明する。
【0083】
第1の例では、操作端末決定部36は、要求元のタスク実行システム50のロボット5の種類と、操作端末情報38の端末種類情報382とに基づき、支援操作を行う操作端末2を決定する。一般に、ロボットの種類によって操作しやすいユーザインタフェースは異なる。従って、第1の例に係る操作端末決定部36は、要求元のタスク実行システム50のロボット5の支援操作に適したユーザインタフェースを有する操作端末2を選択する。例えば、操作端末決定部36は、対象のロボット5がロボットアームの場合には、ゲームコントローラーをユーザインタフェースとして有する操作端末2を選択する。他の例では、操作端末決定部36は、対象のロボット5が人型ロボットの場合には、VRによる操作が可能な操作端末2を選択する。
【0084】
ここで、第1の例の具体的処理について補足説明する。例えば、メモリ32には、ロボット5の種類ごとに、支援操作に適した操作端末2の種類を対応付けた情報(「ロボット・操作端末対応情報」とも呼ぶ。)が記憶されている。そして、操作端末決定部36は、ロボット・操作端末対応情報を参照し、支援要求情報Srが示すロボット5の種類から、支援操作に適した操作端末2の種類を認識する。そして、操作端末決定部36は、当該種類に該当する操作端末2を、操作端末情報38に含まれる端末種類情報382に基づき特定し、特定した操作端末2を対象操作端末2として決定する。
【0085】
ここで、第1の例に基づき選定した操作端末2が複数存在する場合には、操作端末決定部36は、後述する第2の例~第4の例の少なくともいずれかに基づき、対象操作端末2を決定してもよく、無作為抽出により対象操作端末2を決定してもよい。
【0086】
第2の例では、第1の例に代えて、又は、第1の例に加えて、操作端末決定部36は、支援要求情報Srに含まれるエラー情報と、操作端末情報38の端末種類情報382とに基づき、対象操作端末2を決定する。これにより、操作端末決定部36は、発生したエラーへの対処が容易な操作端末2を対象操作端末2として好適に決定する。例えば、操作端末決定部36は、エラー情報がピックアンドプレイスにおいて把持に失敗したことを示す場合には、ゲームコントローラーをユーザインタフェースとして有する操作端末2を選択する。他の例では、操作端末決定部36は、エラー情報が商品情報の取得に失敗したことを示す場合には、パーソナルコンピュータである操作端末2を選択する。
【0087】
ここで、第2の例の具体的処理について補足説明する。例えば、メモリ32には、発生し得るエラーの種類ごとに、支援操作に適した操作端末2の種類を対応付けた情報(「エラー・操作端末対応情報」とも呼ぶ。)が記憶されている。そして、操作端末決定部36は、エラー・操作端末対応情報を参照し、支援要求情報Srが示すエラーの種類から、支援操作に適した操作端末2の種類を認識する。そして、操作端末決定部36は、当該種類に該当する操作端末2を、操作端末情報38に含まれる端末種類情報382に基づき特定し、特定した操作端末2を対象操作端末2として決定する。
【0088】
ここで、第2の例に基づき選定した操作端末2が複数存在する場合には、操作端末決定部36は、第1の例、後述する第3の例~第4の例の少なくともいずれかに基づき、対象操作端末2を決定してもよく、無作為抽出により対象操作端末2を決定してもよい。
【0089】
また、操作端末決定部36は、端末種類情報382に加えて、端末種類情報382以外の操作端末情報38又は操作者情報39に含まれる情報をさらに用いて、対象操作端末2を決定する処理を行ってもよい。この具体例について、第3の例及び第4の例として説明する。以下の第3の例及び第4の例は、例えば、上述した第1の例又は第2の例と組み合わせて実行される。
【0090】
第3の例では、操作端末決定部36は、支援要求情報Srが示すエラーの種類に基づき、操作者を決定する。この場合、例えば、メモリ32には、エラーの種類ごとに、支援操作に必要な操作者の実績又は/及びスキルの条件を定めた情報(「エラー・操作者対応情報」とも呼ぶ。)が記憶されている。そして、操作端末決定部36は、エラー・操作者対応情報を参照し、支援要求情報Srが示すエラーの種類から、支援操作に必要な操作者の実績又は/及びスキルの条件を認識する。そして、操作端末決定部36は、当該実績又は/及びスキルの条件を満たす操作者を、操作者情報39に含まれるスキル情報392又は/及び操作実績情報393を参照して特定し、特定した操作者が使用する操作端末2を、対象操作端末2として決定する。
【0091】
第4の例では、操作端末決定部36は、状態管理情報394に基づき、支援操作を実行可能な状態である操作者が使用する操作端末2を、対象操作端末2として決定する。この場合、操作端末決定部36は、状態管理情報394を参照し、現時点において対応可能な操作者を特定し、特定した操作者が使用する操作端末2を対象操作端末2として決定する。これにより、例えば、海外滞在者を操作者に含み、かつ、タスク実行システム50が常時稼働するような場合に、操作端末決定部36は、対応可能な操作者(即ち業務時間中となる地域に存在する操作者)を適切に選び、当該操作者が使用する操作端末2を対象操作端末2して決定することができる。
【0092】
次に、対象操作端末2を決定できず、外部入力制御が開始できない場合について補足説明する。このようなケースとして、例えば、上述した第1の例~第4の例の少なくともいずれかに基づき対象操作端末2を選定しようとした場合に、該当する操作端末2が存在しない場合などが該当する。
【0093】
この場合、操作端末決定部36は、例えば、支援要求元のタスク実行システム50に対し、自律でのリカバリ等の外部入力制御を伴わないロボット制御を促す情報を送信する。他の例では、操作端末決定部36は、支援が未実行の支援要求情報Srを蓄積し、支援が実行可能となるまで、支援要求元のタスク実行システム50を待機状態とする。この場合、操作端末決定部36は、FIFO(First In, First Out)方式に従い順に支援要求情報Srを処理してもよく、蓄積した各支援要求情報Srの優先度を決定し、優先度が高い順に支援要求情報Srを処理してもよい。この場合、操作端末決定部36は、例えば、支援要求情報Srに含まれるタスクの種類又はタスクの優先度等に関する情報に基づくタスクの優先度、又は/及び、支援要求元のタスク実行システム50での作業進捗状況から特定される支援の緊急度等に基づき、各支援要求情報Srの優先度を決定する。
【0094】
(5)
動作シーケンス生成部の詳細
図6は、動作シーケンス生成部16の機能的な構成を示す機能ブロックの一例である。動作シーケンス生成部16は、機能的には、抽象状態設定部161と、目標論理式生成部162と、タイムステップ論理式生成部163と、抽象モデル生成部164と、制御入力生成部165と、サブタスクシーケンス生成部166と、を有する。
【0095】
抽象状態設定部161は、センサ7から供給されるセンサ信号と、抽象状態指定情報I1と、物体モデル情報I6と、に基づき、作業空間内の抽象状態を設定する。この場合、抽象状態設定部161は、タスクを実行する際に考慮する必要がある作業空間内の物体を認識し、当該物体に関する認識結果「Im」を生成する。そして、抽象状態設定部161は、認識結果Imに基づいて、タスクを実行する際に考慮する必要がある各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部161は、設定した抽象状態を示す情報(「抽象状態設定情報IS」とも呼ぶ。)を、目標論理式生成部162に供給する。
【0096】
目標論理式生成部162は、抽象状態設定情報ISに基づき、タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部162は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部162は、生成した目標論理式Ltagを、タイムステップ論理式生成部163に供給する。
【0097】
タイムステップ論理式生成部163は、目標論理式生成部162から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部163は、生成したタイムステップ論理式Ltsを、制御入力生成部165に供給する。
【0098】
抽象モデル生成部164は、アプリケーション情報記憶部41が記憶する抽象モデル情報I5と、抽象状態設定部161から供給される認識結果Imとに基づき、作業空間における現実のダイナミクスを抽象化した抽象モデル「Σ」を生成する。この場合、抽象モデルΣは、例えば、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムであってもよい。抽象モデル生成部164は、生成した抽象モデルΣを、制御入力生成部165へ供給する。
【0099】
制御入力生成部165は、タイムステップ論理式生成部163から供給されるタイムステップ論理式Ltsと、抽象モデル生成部164から供給される抽象モデルΣとを満たし、評価関数(たとえば、ロボットによって消費されるエネルギー量を表す関数)を最適化するタイムステップ毎のロボット5への制御入力を決定する。そして、制御入力生成部165は、ロボット5へのタイムステップ毎の制御入力を示す情報(「制御入力情報Icn」とも呼ぶ。)を、サブタスクシーケンス生成部166へ供給する。
【0100】
サブタスクシーケンス生成部166は、制御入力生成部165から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクのシーケンスである動作シーケンスSvを生成し、動作シーケンスSvをロボット制御部17及び切替判定部18へ供給する。
【0101】
(6)
操作画面
図7は、操作端末2が表示する操作画面の第1表示例である。操作端末2の情報提示部25は、支援要求情報Srの送信元のタスク実行システム50のロボットコントローラ1から操作画面情報を受信することで、
図7に示す操作画面を表示するよう制御している。ここでは、ロボットコントローラ1は、外部入力型サブタスクの実行タイミング(即ち、外部入力が必要な作業工程)となったことから、当該外部入力型サブタスクの実行に必要な外部入力信号Seを受信するために支援要求情報Srをロボット管理装置3に送信し、その後にロボット管理装置3による接続制御に基づき、操作端末2と通信接続を確立している。
図7に示す操作画面は、主に、作業空間表示欄70と、動作内容表示領域73とを有している。
【0102】
ここで、作業空間表示欄70には、現在の作業空間を撮影した画像又は現在の作業空間を模式的に表すCAD画像である作業空間画像が表示されており、動作内容表示領域73には、外部入力によりロボット5を動作させる必要がある内容が表示されている。なお、ここでは、一例として、対象となるサブタスクは、障害物に隣接してロボット5が直接把持することができない対象物を把持可能な位置まで移動させて掴むサブタスクであるものとする。
【0103】
図7の例では、操作端末2は、ロボット5に実行させる動作内容(ここでは、対象物を所定位置まで移動させて第1アームにより掴むこと)を指示するガイド文章を動作内容表示領域73上に表示している。また、操作端末2は、作業空間表示欄70に表示される作業空間画像上において、作業対象となる対象物を囲む太丸枠71と、対象物の移動先を示す破線丸枠72と、ロボット5の各アームの名称(第1アーム、第2アーム)とを表示している。作業空間表示欄70においてこのような表示を追加することで、操作端末2は、動作内容表示領域73のテキスト文を参照する操作者に対し、作業に必要なロボットアーム、及び、作業対象となる対象物とその移動先を好適に認識させることができる。
【0104】
ここでは、動作内容表示領域73において示されるロボット5の動作内容は、対象のサブタスクの次のサブタスクに遷移するための条件(「シーケンス遷移条件」とも呼ぶ。)を満たすものとなっている。シーケンス遷移条件は、生成された動作シーケンスSvにおいて想定されている対象のサブタスクの終了状態(あるいは次のサブタスクの開始状態)を示す条件に相当する。
図7の例におけるシーケンス遷移条件は、第1アームが所定位置において対象物を掴んだ状態であることを示す。このように、操作端末2は、シーケンス遷移条件を満たすために必要な動作を指示したガイド文章を動作内容表示領域73において表示することで、次のサブタスクへ円滑に遷移するために必要な外部入力を好適に支援することができる。
【0105】
以上のように、
図7に示す操作画面によれば、外部入力制御が必要な外部入力型サブタスクの実行時において、操作者による適切な操作を受け付けることができる。
【0106】
図8は、操作画面の第2表示例を示す。操作端末2の情報提示部25は、支援要求情報Srの送信元のタスク実行システム50のロボットコントローラ1から操作画面情報を受信することで、
図8に示す操作画面を表示するよう制御している。
図8に示す操作画面は、主に、作業空間表示欄70と、動作内容表示領域73とを有している。
【0107】
第2表示例では、何らかのアクシデントによって、1つの対象物が障害物の裏に転がってしまい、当該対象物がロボットアームにより直接把持ができない状態となっている。この場合、ロボットコントローラ1は、動作シーケンスSvに基づく計画との時間的又は/空間的なずれが発生していること等を検知したことから、自律でのロボット制御の継続が不適であると判定し、支援要求情報Srをロボット管理装置3に送信し、その後に通信接続を確立した操作端末2に操作画面情報を送信する。
【0108】
そして、情報提示部25は、
図8に示すように、対象物のピックアンドプレイスに関して異常が発生した旨、及び、当該対象物をゴール地点に移動させる外部入力が必要である旨を、動作内容表示領域73上に表示する。また、出力制御部15は、作業空間表示欄70に表示される画像上において、作業対象となる対象物を囲む太丸枠71と、ロボット5の各アームの名称(第1アーム、第2アーム)とを表示している。
【0109】
このように、
図8に示す操作画面によれば、異常の発生により外部入力制御が必要となった場合に、操作者による適切な操作を受け付けることができる。なお、操作端末2は、
図7及び
図8の操作画面の表示と共に、必要な外部入力信号Seを生成するための操作を指示するガイダンス音声を出力してもよい。
【0110】
(7)
処理フロー
図9は、第1実施形態においてロボット管理装置3が実行する処理の概要を示すフローチャートの一例である。
【0111】
まず、ロボット管理装置3の外部入力要否判定部35は、支援要求情報Srを受信したか否か判定する(ステップS11)。そして、外部入力要否判定部35は、支援要求情報Srを受信したと判定した場合(ステップS11;Yes)、ステップS12に処理を進める。そして、ロボット管理装置3の操作端末決定部36は、支援要求情報Sr及び操作端末情報38等に基づき、対象操作端末2を決定する(ステップS12)。なお、この場合、操作端末決定部36は、操作端末情報38に加えて操作者情報39をさらに参照し、支援操作に適した操作者を決定する処理を行ってもよい。
【0112】
そして、ロボット管理装置3の接続制御部37は、対象操作端末2と、要求元のタスク実行システム50との通信接続を確立させる接続制御を行う(ステップS13)。これにより、接続制御部37は、決定した対象操作端末2と要求元のタスク実行システム50との通信接続を確立させる。その後、決定した対象操作端末2と要求元のタスク実行システム50とは、操作画面情報、外部入力信号Se等の授受を行う。
【0113】
ステップS13の実行後、又は、ステップS11において支援要求情報Srを受信していない場合(ステップS11;No)、ロボット管理装置3は、フローチャートの処理を終了すべきか否か判定する(ステップS14)。例えば、ロボット管理装置3は、ロボット制御システム100の稼働時間外となった場合、又は、その他の所定の終了条件が満たされた場合、フローチャートの処理を終了すべきと判定する。そして、ロボット管理装置3は、フローチャートの処理を終了すべき場合(ステップS14;Yes)、フローチャートの処理を終了する。一方、ロボット管理装置3は、フローチャートの処理を終了すべきでない場合(ステップS14;No)、ステップS11へ処理を戻す。
【0114】
(8)
変形例
図6に示す動作シーケンス生成部16のブロック構成は一例であり、種々の変更がなされてもよい。
【0115】
例えば、ロボット5に命令する動作のシーケンスの候補の情報が記憶装置4に予め記憶され、動作シーケンス生成部16は、当該情報に基づき、制御入力生成部165の最適化処理を実行してもよい。これにより、動作シーケンス生成部16は、最適な候補の選定とロボット5の制御入力の決定を行う。この場合、動作シーケンス生成部16は、動作シーケンスSvの生成において、抽象状態設定部161、目標論理式生成部162及びタイムステップ論理式生成部163に相当する機能を有しなくともよい。このように、
図6に示す動作シーケンス生成部16の一部の機能ブロックの実行結果に関する情報が予めアプリケーション情報記憶部41に記憶されていてもよい。
【0116】
他の例では、アプリケーション情報には、タスクに対応する動作シーケンスSvを設計するためのフローチャートなどの設計情報が予め含まれており、動作シーケンス生成部16は、当該設計情報を参照することで、動作シーケンスSvを生成してもよい。なお、予め設計されたタスクシーケンスに基づきタスクを実行する具体例については、例えば特開2017-39170号に開示されている。
【0117】
<第2実施形態>
図10は、第2実施形態におけるロボット管理装置3Xの概略構成図を示す。ロボット管理装置3Xは、主に、外部入力要否判定手段35Xと、操作端末決定手段36Xとを有する。なお、ロボット管理装置3Xは、複数の装置から構成されてもよい。ロボット管理装置3Xは、例えば、第1実施形態のロボット管理装置3(ロボットコントローラ1の一部の機能が組み込まれている場合も含む)とすることができる。
【0118】
外部入力要否判定手段35Xは、タスクを実行するロボットの外部入力に基づく制御(外部入力制御)の要否を判定する。外部入力要否判定手段35Xは、例えば、第1実施形態における外部入力要否判定部35とすることができる。
【0119】
操作端末決定手段36Xは、外部入力に基づく制御が必要な場合、外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、タスクに関する情報とに基づき、外部入力を生成する操作端末を決定する。「タスクに関する情報」は、タスクの種類に関する情報、タスクを実行するロボットに関する情報、タスクにおいて生じたエラーに関する情報など、第1実施形態における支援要求情報Srに含まれる種々の情報を含む。操作端末決定手段36Xは、例えば、第1実施形態における操作端末決定部36とすることができる。
【0120】
図11は、第2実施形態におけるフローチャートの一例である。外部入力要否判定手段35Xは、タスクを実行するロボットの外部入力に基づく制御の要否を判定する(ステップS21)。操作端末決定手段36Xは、外部入力に基づく制御が必要な場合(ステップS22;Yes)、外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、タスクに関する情報とに基づき、外部入力を生成する操作端末を決定する(ステップS23)。一方、操作端末決定手段36Xは、外部入力に基づく制御が必要でない場合(ステップS22;No)、ステップS23の処理を行わず、フローチャートの処理を終了する。
【0121】
第2実施形態によれば、ロボット管理装置3Xは、外部入力に基づく制御が必要なロボットが存在する場合に、外部入力を生成する操作端末を好適に決定することができる。
【0122】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-Transitory Computer Readable Medium)を用いて格納され、コンピュータであるプロセッサ等に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(Tangible Storage Medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory Computer Readable Medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0123】
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0124】
[付記1]
タスクを実行するロボットの外部入力に基づく制御の要否を判定する外部入力要否判定手段と、
前記外部入力に基づく制御が必要な場合、前記外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定する操作端末決定手段と、
を有するロボット管理装置。
[付記2]
前記操作端末決定手段が決定した前記操作端末と、前記ロボット又は前記ロボットを制御するロボットコントローラとの通信接続を確立する制御を行う接続制御手段をさらに有する、付記1に記載のロボット管理装置。
[付記3]
前記タスクに関する情報は、前記タスクにおいて生じたエラーに関するエラー情報を含み、
前記操作端末決定手段は、前記操作端末情報と、前記エラー情報とに基づき、前記外部入力を生成する前記操作端末を決定する、付記1または2に記載のロボット管理装置。
[付記4]
前記タスクに関する情報は、前記ロボットの種類情報を含み、
前記操作端末決定手段は、前記操作端末情報と、前記ロボットの種類情報とに基づき、前記外部入力を生成する前記操作端末を決定する、付記1~3のいずれか一項に記載のロボット管理装置。
[付記5]
前記操作端末決定手段は、前記操作端末の操作者に関する情報である操作者情報と、前記操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定する、付記1~4のいずれか一項に記載のロボット管理装置。
[付記6]
前記操作者情報は、前記操作者のスキル又は操作実績に関する情報を含み、
前記操作端末決定手段は、前記タスクに関する情報に基づき定まる必要なスキル又は操作実績を満たす操作者が使用する前記操作端末を、前記外部入力を生成する前記操作端末として決定する、付記5に記載のロボット管理装置。
[付記7]
前記操作者情報は、前記操作者の状態管理に関する情報である状態管理情報を含み、
前記操作端末決定手段は、前記状態管理情報に基づき、前記外部入力に関する操作を実行可能な状態である操作者が使用する前記操作端末を、前記外部入力を生成する前記操作端末として決定する、付記5または6に記載のロボット管理装置。
[付記8]
前記外部入力要否判定手段は、前記タスクに関する情報を含む支援要求情報を、前記ロボット又は前記ロボットを制御するロボットコントローラから受信した場合に、前記外部入力に基づく制御が必要と判定する、付記1~7のいずれか一項に記載のロボット管理装置。
[付記9]
前記外部入力要否判定手段は、前記ロボットによる前記タスクの実行においてエラーが発生した場合、又は、前記外部入力が必要な作業工程となった場合、前記外部入力に基づく制御が必要であると判定する、付記1~8のいずれか一項に記載のロボット管理装置。
[付記10]
コンピュータが、
タスクを実行するロボットの外部入力に基づく制御の要否を判定し、
前記外部入力に基づく制御が必要な場合、前記外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定する、
制御方法。
[付記11]
タスクを実行するロボットの外部入力に基づく制御の要否を判定し、
前記外部入力に基づく制御が必要な場合、前記外部入力を生成する候補となる複数の操作端末の種類に関する情報を含む操作端末情報と、前記タスクに関する情報とに基づき、前記外部入力を生成する前記操作端末を決定する処理を
コンピュータに実行させるプログラムが格納された記憶媒体。
【0125】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0126】
1、1A、1B ロボットコントローラ
2、2A、2B 操作端末
3、3X ロボット管理装置
5 ロボット
7 センサ
41 アプリケーション情報記憶部
100 ロボット制御システム