(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】判定装置、判定方法及びプログラム
(51)【国際特許分類】
B25J 9/18 20060101AFI20240509BHJP
B25J 13/00 20060101ALI20240509BHJP
【FI】
B25J9/18
B25J13/00 Z
(21)【出願番号】P 2022546844
(86)(22)【出願日】2020-09-07
(86)【国際出願番号】 JP2020033735
(87)【国際公開番号】W WO2022049756
(87)【国際公開日】2022-03-10
【審査請求日】2023-03-03
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】小川 雅嗣
(72)【発明者】
【氏名】加美 伸治
(72)【発明者】
【氏名】若山 永哉
(72)【発明者】
【氏名】大山 博之
(72)【発明者】
【氏名】一圓 真澄
【審査官】仁木 学
(56)【参考文献】
【文献】特開2019-126895(JP,A)
【文献】特開2019-200792(JP,A)
【文献】特開2018-167361(JP,A)
【文献】特開2019-084664(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ー 21/02
(57)【特許請求の範囲】
【請求項1】
目的タスクに関するロボットの動作シーケンスが完了した場合、又は、前記
目的タスクの開始から所定時間長が経過した場合、
センサにより検出される、
作業空間内で認識した物体に関する認識結果に基づく、前記
目的タスクの現在の状態を
抽象的に表す第1命題と、前記
目的タスクの完了状態を
抽象的に表す第2命題とに基づき、前記
目的タスクの完了判定を行う命題判定手段
を有する判定装置。
【請求項2】
前記命題判定手段は、前記第1命題と、前記第2命題とが異なる場合、前記
目的タスクが完了していないと判定する、請求項1に記載の判定装置。
【請求項3】
前記完了判定において、前記
目的タスクが完了していないと判定された場合、前記
目的タスクが完了していないことを示すアラート情報を出力する出力制御手段をさらに有する、請求項1または2に記載の判定装置。
【請求項4】
前記出力制御手段は、前記アラート情報を、前記ロボットの管理を行う管理装置へ送信する、請求項3に記載の判定装置。
【請求項5】
前記出力制御手段は、前記アラート情報の出力として、前記
目的タスクが完了していないことを示す表示又は音出力を行う、請求項3に記載の判定装置。
【請求項6】
前記出力制御手段は、前記
目的タスクが完了したと前記完了判定において判定された場合、前記
目的タスクの正常終了を示す情報を出力する、請求項3~5のいずれか一項に記載の判定装置。
【請求項7】
前記
目的タスクに基づき、前記動作シーケンスを生成する動作シーケンス生成手段をさらに有する、請求項1~6のいずれか一項に記載の判定装置。
【請求項8】
前記動作シーケンス生成手段は、前記
目的タスクの開始から前記
目的タスクの完了までに必要な前記動作シーケンスを一括して生成し、
前記命題判定手段は、当該動作シーケンスが完了した場合、前記第1命題と、前記第2命題とに基づき、前記
目的タスクの完了判定を行う、請求項7に記載の判定装置。
【請求項9】
前記動作シーケンスに基づき、前記ロボットを制御するロボット制御手段をさらに有し、
前記命題判定手段は、前記ロボット制御手段から前記ロボットへの制御信号の出力が完了した場合に、前記動作シーケンスが完了したと判定する、請求項8に記載の判定装置。
【請求項10】
前記動作シーケンス生成手段は、前記目的タスクの完了までの1または複数の中間状態に基づき、前記目的タスクの開始から前記目的タスクの完了までに必要な複数の動作シーケンスを逐次的に生成し、
前記命題判定手段は、前記目的タスクの開始から所定時間長が経過した場合、前記第1命題と、前記第2命題とに基づき、前記目的タスクの完了判定を行う、請求項7に記載の判定装置。
【請求項11】
前記動作シーケンス生成手段は、
前記目的タスクを時相論理に基づく論理式に変換する論理式変換手段と、
前記論理式から、前記目的タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、
前記タイムステップ論理式に基づき、前記ロボットに実行させるサブ目的タスクのシーケンスを、前記動作シーケンスとして生成するサブタスクシーケンス生成手段と、
を有する、請求項7~10のいずれか一項に記載の判定装置。
【請求項12】
前記動作シーケンス生成手段は、
前記目的タスクに関する物体の抽象的な状態である抽象状態を、前記論理式において使用する命題として定める抽象状態設定手段をさらに有する、請求項11に記載の判定装置。
【請求項13】
前記所定時間長は、前記目的タスクの所要時間長以上の時間長に設定される、請求項1~12のいずれか一項に記載の判定装置。
【請求項14】
コンピュータにより、
目的タスクに関するロボットの動作シーケンスが完了した場合、又は、前記
目的タスクの開始から所定時間長が経過した場合、
センサにより検出される、
作業空間内で認識した物体に関する認識結果に基づく、前記
目的タスクの現在の状態を
抽象的に表す第1命題と、前記
目的タスクの完了状態を
抽象的に表す第2命題とに基づき、前記
目的タスクの完了判定を行う
判定方法。
【請求項15】
目的タスクに関するロボットの動作シーケンスが完了した場合、又は、前記
目的タスクの開始から所定時間長が経過した場合、
センサにより検出される、
作業空間内で認識した物体に関する認識結果に基づく、前記
目的タスクの現在の状態を
抽象的に表す第1命題と、前記
目的タスクの完了状態を
抽象的に表す第2命題とに基づき、前記
目的タスクの完了判定を行う処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットに作業させるタスクに関する処理を行う判定装置、判定方法及び記憶媒体の技術分野に関する。
【背景技術】
【0002】
ロボットに作業させるタスクが与えられた場合に、当該タスクを実行するために必要なロボットの制御を行う制御手法が提案されている。例えば、特許文献1には、ハンドを有するロボットにより複数の物品を把持して容器に収容する場合に、ハンドが物品を把持する順序の組み合わせを決定し、組み合わせ毎に算出した指標に基づき、収容する物品の順序を決定するロボット判定装置が開示されている。また、特許文献2には、ロボットハンドにより対象物(ワーク)を移動させる場合に、処理の終了をユーザに通知するロボットシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-051684号公報
【文献】特開2016-198861号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ロボットがタスクを正常に完了したか否かの完了判定を行う場合、完了判定を正確に行うためには、完了判定用のセンサの出力に基づいて複雑な処理を行う必要があり、かつ、完了判定用のスキームをタスク毎に用意する必要があった。
【0005】
本開示の目的の1つは、上述した課題を鑑み、ロボットに実行させるタスクの完了判定を好適に実行することが可能な判定装置、判定方法及び記憶媒体を提供することである。
【課題を解決するための手段】
【0006】
判定装置の一の態様は、
目的タスクに関するロボットの動作シーケンスが完了した場合、又は、前記目的タスクの開始から所定時間長が経過した場合、
センサにより検出される、作業空間内で認識した物体に関する認識結果に基づく、前記目的タスクの現在の状態を抽象的に表す第1命題と、前記目的タスクの完了状態を抽象的に表す第2命題とに基づき、前記目的タスクの完了判定を行う命題判定手段
を有する判定装置である。
【0007】
判定方法の一の態様は、
コンピュータにより、
目的タスクに関するロボットの動作シーケンスが完了した場合、又は、前記目的タスクの開始から所定時間長が経過した場合、
センサにより検出される、作業空間内で認識した物体に関する認識結果に基づく、前記目的タスクの現在の状態を抽象的に表す第1命題と、前記目的タスクの完了状態を抽象的に表す第2命題とに基づき、前記目的タスクの完了判定を行う
判定方法である。
【0008】
目的タスクに関するロボットの動作シーケンスが完了した場合、又は、前記目的タスクの開始から所定時間長が経過した場合、
センサにより検出される、作業空間内で認識した物体に関する認識結果に基づく、前記目的タスクの現在の状態を抽象的に表す第1命題と、前記目的タスクの完了状態を抽象的に表す第2命題とに基づき、前記目的タスクの完了判定を行う処理をコンピュータに実行させるプログラム。
【発明の効果】
【0009】
ロボットに実行させるタスクの完了判定を好適に実行することができる。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態におけるロボット制御システムの構成を示す。
【
図2】ロボットコントローラのハードウェア構成を示す。
【
図3】アプリケーション情報のデータ構造の一例を示す。
【
図4】ロボットコントローラの機能ブロックの一例である。
【
図5】動作シーケンス生成部の機能ブロックの一例である。
【
図6】ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。
【
図7】目的タスクを指定するタスク画面の表示例を示す。
【
図8】目的タスクが正常終了した場合のタスク画面の表示例を示す。
【
図9】目的タスクが正常終了しなかった場合のタスク画面の表示例を示す。
【
図10】第1実施形態においてロボットコントローラが実行するロボット制御処理の概要を示すフローチャートの一例である。
【
図11】第2実施形態におけるロボットコントローラの機能ブロック図である。
【
図12】第2実施形態においてロボットコントローラが実行するロボット制御処理の概要を示すフローチャートの一例である。
【
図13】第3実施形態におけるロボット制御システムの概略構成図を示す。
【
図14】第4実施形態における判定装置の概略構成図を示す。
【
図15】第4実施形態において、判定装置が実行する処理手順を示すフローチャートの一例である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、判定装置、判定方法及び記憶媒体の実施形態について説明する。
【0012】
<第1実施形態>
(1)
システム構成
図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、ロボットコントローラ1と、タスク指示装置2と、記憶装置4と、ロボット5と、計測装置7と、を備える。
【0013】
ロボットコントローラ1は、ロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)が指定された場合に、ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスに目的タスクを変換し、生成したシーケンスに基づきロボット5を制御する。以後では、ロボット5が受付可能な単位により目的タスクを分解したタスク(コマンド)を、「サブタスク」とも呼び、目的タスクを達成するためにロボット5が実行すべきサブタスクのシーケンスを「サブタスクシーケンス」とも呼ぶ。サブタスクシーケンスは、ロボット5の一連の動作を規定する動作シーケンスに相当する。
【0014】
また、ロボットコントローラ1は、タスク指示装置2、記憶装置4、ロボット5、及び計測装置7と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。例えば、ロボットコントローラ1は、タスク指示装置2から、目的タスクを指定する入力信号「S1」を受信する。また、ロボットコントローラ1は、タスク指示装置2に対し、ロボット5に実行させるタスクに関する情報を出力させるための出力制御信号「S2」を送信する。さらに、ロボットコントローラ1は、ロボット5の制御に関する制御信号「S3」をロボット5に送信する。また、ロボットコントローラ1は、計測装置7から計測信号「S4」を受信する。
【0015】
タスク指示装置2は、目的タスクを指定する作業者による目的タスクに関する入力を受け付ける装置である。タスク指示装置2は、ロボットコントローラ1から供給される出力制御信号S2に基づき所定の表示を行ったり、作業者の入力に基づき生成した入力信号S1をロボットコントローラ1へ供給したりする。タスク指示装置2は、入力部と表示部とを備えるタブレット端末であってもよく、据置型のパーソナルコンピュータであってもよい。
【0016】
記憶装置4は、アプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、目的タスクからサブタスクシーケンスを生成するために必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は、
図3を参照しながら後述する。記憶装置4は、ロボットコントローラ1に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶装置4は、ロボットコントローラ1と通信網を介してデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は、複数のサーバ装置から構成されてもよい。
【0017】
ロボット5は、ロボットコントローラ1から供給される制御信号S3に基づき目的タスクに関する作業を行う。ロボット5は、例えば、組み立て工場、食品工場などの各種工場、又は、物流の現場などで動作を行うロボットである。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよい。ロボット5は、ロボット5の状態を示す状態信号をロボットコントローラ1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5の制御部が生成したロボット5のサブタスクの進捗状態を示す信号であってもよい。
【0018】
計測装置7は、目的タスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。本実施形態では、計測装置7は、作業空間を撮像する少なくとも1台のカメラを含むものとする。計測装置7は、生成した計測信号S4をロボットコントローラ1に供給する。計測信号S4には、作業空間内を撮像した画像が少なくとも含まれる。計測装置7は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、計測装置7は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、計測装置7は、作業空間内の音を検出するセンサを含んでもよい。このように、計測装置7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
【0019】
なお、
図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボット5は、複数台存在してもよく、ロボットアームなどの夫々が独立して動作する制御対象物を複数有してもよい。これらの場合であっても、ロボットコントローラ1は、目的タスクに基づき、ロボット5毎又は制御対象物毎に実行すべきサブタスクシーケンスを生成し、当該サブタスクシーケンスに基づく制御信号S3を、対象のロボット5に送信する。また、ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械と協働作業を行うものであってもよい。また、計測装置7は、ロボット5の一部であってもよい。また、タスク指示装置2は、ロボットコントローラ1と同一の装置として構成されてもよい。また、ロボットコントローラ1は、複数の装置から構成されてもよい。この場合、ロボットコントローラ1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。
【0020】
(2)
ハードウェア構成
図2(A)は、ロボットコントローラ1のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
【0021】
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。プロセッサ11は、コンピュータの一例である。
【0022】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。なお、メモリ12が記憶する情報の一部は、ロボットコントローラ1と通信可能な1又は複数の外部記憶装置により記憶されてもよく、ロボットコントローラ1に対して着脱自在な記憶媒体により記憶されてもよい。
【0023】
インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
【0024】
なお、ロボットコントローラ1のハードウェア構成は、
図2(A)に示す構成に限定されない。例えば、ロボットコントローラ1は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。また、ロボットコントローラ1は、タスク指示装置2又は記憶装置4の少なくとも一方を含んで構成されてもよい。
【0025】
図2(B)は、タスク指示装置2のハードウェア構成を示す。タスク指示装置2は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bと、音出力部24cとを含む。プロセッサ21、メモリ22及びインターフェース23は、データバス20を介して接続されている。また、インターフェース23には、入力部24aと表示部24bと音出力部24cとが接続されている。
【0026】
プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、CPU、GPUなどのプロセッサである。プロセッサ21は、インターフェース23を介して入力部24aが生成した信号を受信することで、入力信号S1を生成し、インターフェース23を介してロボットコントローラ1に当該入力信号S1を送信する。また、プロセッサ21は、インターフェース23を介してロボットコントローラ1から受信した出力制御信号S2に基づき、表示部24b又は音出力部24cの少なくとも一方を、インターフェース23を介して制御する。
【0027】
メモリ22は、RAM、ROM、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ22には、タスク指示装置2が実行する処理を実行するためのプログラムが記憶される。
【0028】
インターフェース23は、タスク指示装置2と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。また、インターフェース23は、入力部24a、表示部24b及び音出力部24cのインターフェース動作を行う。入力部24aは、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置などが該当する。表示部24bは、例えば、ディスプレイ、プロジェクタ等であり、プロセッサ21の制御に基づき表示を行う。また、音出力部24cは、例えば、スピーカであり、プロセッサ21の制御に基づき音出力を行う。
【0029】
なお、タスク指示装置2のハードウェア構成は、
図2(B)に示す構成に限定されない。例えば、入力部24a、表示部24b又は音出力部24cの少なくともいずれかは、タスク指示装置2と電気的に接続する別体の装置として構成されてもよい。また、タスク指示装置2は、カメラなどの種々の装置と接続してもよく、これらを内蔵してもよい。
【0030】
(3)アプリケーション情報
次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
【0031】
図3は、アプリケーション情報記憶部41に記憶されるアプリケーション情報のデータ構造の一例を示す。
図3に示すように、アプリケーション情報は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6とを含む。
【0032】
抽象状態指定情報I1は、サブタスクシーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、作業空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、目的タスクの種類毎に、定義する必要がある抽象状態を指定する。
【0033】
制約条件情報I2は、目的タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム)が接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、目的タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
【0034】
動作限界情報I3は、ロボットコントローラ1により制御が行われるロボット5の動作限界に関する情報を示す。動作限界情報I3は、例えば、ロボット5の速度、加速度、又は角速度の上限を規定する情報である。なお、動作限界情報I3は、ロボット5の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
【0035】
サブタスク情報I4は、ロボット5が受付可能なサブタスクの情報を示す。例えば、目的タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット5のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定する。サブタスク情報I4は、目的タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。
【0036】
抽象モデル情報I5は、作業空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。例えば、抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、ロボット5により作業対象となる物(「対象物」とも呼ぶ。)をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。抽象モデル情報I5は、目的タスクの種類毎に適した抽象モデルに関する情報を有している。
【0037】
物体モデル情報I6は、計測装置7が生成した計測信号S4から認識すべき作業空間内の各物体の物体モデルに関する情報である。上述の各物体は、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の作業体などが該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、現在実行中の動作などをロボットコントローラ1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(Computer Aided Design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
【0038】
なお、アプリケーション情報記憶部41は、上述した情報の他、サブタスクシーケンスの生成処理及び出力制御信号S2の生成処理に関する種々の情報を記憶してもよい。
【0039】
(4)処理概要
次に、ロボットコントローラ1の処理概要について説明する。概略的には、ロボットコントローラ1は、ロボット5によるサブタスクシーケンスの実行が完了した場合、計測した目的タスクの現在の状態を抽象的に表した命題と、指定された目的タスクの完了状態(ゴール)を抽象的に表した命題との比較に基づき、目的タスクの完了判定を行う。そして、ロボットコントローラ1は、サブタスクシーケンスの実行完了後も目的タスクが完了状態に至っていない場合にアラート(警告)を出力する。
【0040】
図4は、ロボットコントローラ1の処理の概要を示す機能ブロックの一例である。ロボットコントローラ1のプロセッサ11は、機能的には、出力制御部15と、動作シーケンス生成部16と、ロボット制御部17と、命題判定部18とを有する。なお、
図4では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロックの図においても同様である。
【0041】
出力制御部15は、目的タスクに関する情報を作業者が指定する入力画面(「タスク画面」とも呼ぶ。)を表示するための出力制御信号S2を生成し、当該出力制御信号S2をタスク指示装置2へインターフェース13を介して送信する。例えば、出力制御部15は、計測信号S4に含まれる作業空間内を撮像した画像(「作業空間画像」とも呼ぶ。)をタスク画面上に表示し、種々の操作に基づく入力を受け付ける。そして、出力制御部15は、タスク画面での入力操作によりタスク指示装置2が生成した入力信号S1を、タスク指示装置2からインターフェース13を介して受信する。この場合、入力信号S1は、目的タスクを概略的に指定する情報(「タスク指定情報Ia」とも呼ぶ。)を含んでいる。タスク指定情報Iaは、例えば、ロボット5への概略命令に相当する情報であり、ロボット5の具体的な動作を規定する情報(例えば後述する制御入力の情報やサブタスクの情報)を含まない。そして、出力制御部15は、タスク指示装置2から供給される入力信号S1に基づくタスク指定情報Iaを、動作シーケンス生成部16へ供給する。
【0042】
また、出力制御部15は、目的タスクの完了判定結果に関する情報(「判定結果情報Ie」とも呼ぶ。)を、命題判定部18から受信する。この場合、出力制御部15は、判定結果情報Ieに基づき、目的タスクの完了を通知する情報、又は、目的タスクが何らかの異常発生により完了しなかったことを通知する情報(アラート情報)に相当する出力制御信号S2を生成する。そして、出力制御部15は、インターフェース13を介し、出力制御信号S2をタスク指示装置2に供給する。これにより、タスク指示装置2は、目的タスクの正常完了を通知する表示若しくは音出力、又は、目的タスクが正常に完了しなかったことを通知する表示若しくは音出力を行う。
【0043】
動作シーケンス生成部16は、出力制御部15から供給されるタスク指定情報Iaと、計測信号S4と、記憶装置4が記憶するアプリケーション情報とに基づき、ロボット5に実行させるサブタスクシーケンス「Sr」を生成する。なお、第1実施形態では、動作シーケンス生成部16は、目的タスクの開始から完了までに必要なサブタスクシーケンスSrを一括して生成するものとする。そして、動作シーケンス生成部16は、生成したサブタスクシーケンスSrをロボット制御部17に供給する。ここで、サブタスクシーケンスSrには、各サブタスクの実行順序及び実行タイミングを示す情報が含まれている。
【0044】
また、動作シーケンス生成部16は、目的タスクに関する命題の生成を要求する情報(「命題要求情報Ic」とも呼ぶ。)を、命題判定部18から受信する。この場合、動作シーケンス生成部16は、現在の目的タスクの状態を表す命題(「第1命題」とも呼ぶ。)と、タスク指定情報Iaにより指定された目的タスクの完了状態を表す命題(「第2命題」とも呼ぶ。)とを生成する。そして、動作シーケンス生成部16は、生成した第1命題と第2命題とを示す情報(「命題情報Id」とも呼ぶ。)を命題判定部18へ供給する。第1命題及び第2命題の生成方法については、「(5-8)命題生成部」のセクションにおいて詳しく説明する。
【0045】
ロボット制御部17は、動作シーケンス生成部16から供給されたサブタスクシーケンスSrに基づき、サブタスクシーケンスSrを構成する各サブタスクを夫々定められた実行タイミング(タイムステップ)でロボット5が実行するための制御を行う。具体的には、ロボット制御部17は、制御信号S3をロボット5に送信することで、サブタスクシーケンスSrを実現するためのロボット5の関節の位置制御又はトルク制御などを実行する。そして、ロボット制御部17は、サブタスクシーケンスSrに基づくロボット5への制御信号S3の出力が完了した(出力が無くなった)場合、サブタスクシーケンスSrの実行完了を通知する情報(「完了通知情報Ib」とも呼ぶ。)を命題判定部18に供給する。
【0046】
なお、ロボット制御部17に相当する機能を、ロボットコントローラ1に代えてロボット5が有してもよい。この場合、ロボット5は、動作シーケンス生成部16からサブタスクシーケンスSrを受信することで、サブタスクシーケンスSrを実現するための関節の位置制御又はトルク制御などを実行する。また、ロボット5は、サブタスクシーケンスSrの実行が完了した場合、完了通知情報Ibをロボットコントローラ1の命題判定部18に供給する。
【0047】
命題判定部18は、サブタスクシーケンスSrが完了した場合に、目的タスクが正常に完了したか否かの判定(「目的タスク完了判定」とも呼ぶ。)を、命題同士の比較に基づき実行する。具体的には、命題判定部18は、ロボット制御部17から完了通知情報Ibを受信した場合、命題要求情報Icを動作シーケンス生成部16へ供給し、その応答として命題情報Idを動作シーケンス生成部16から受信する。そして、命題判定部18は、命題情報Idが示す第1命題と第2命題とを比較し、これらが相違している場合には、目的タスクが正常に完了しなかったことを示す判定結果情報Ieを生成する。一方、命題判定部18は、命題情報Idが示す第1命題と第2命題とを比較し、これらが一致している場合には、目的タスクが正常に完了したことを示す判定結果情報Ieを生成する。そして、命題判定部18は、生成した判定結果情報Ieを、出力制御部15へ供給する。
【0048】
ここで、出力制御部15、動作シーケンス生成部16、ロボット制御部17及び命題判定部18の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
【0049】
(5)動作シーケンス生成部の詳細
次に、動作シーケンス生成部16の詳細な処理について説明する。
【0050】
(5-1)
機能ブロック
図5は、動作シーケンス生成部16の機能的な構成を示す機能ブロックの一例である。動作シーケンス生成部16は、機能的には、抽象状態設定部31と、目標論理式生成部32と、タイムステップ論理式生成部33と、抽象モデル生成部34と、制御入力生成部35と、サブタスクシーケンス生成部36と、命題生成部37と、を有する。
【0051】
抽象状態設定部31は、計測装置7から供給される計測信号S4と、出力制御部15から供給されるタスク指定情報Iaと、抽象状態指定情報I1と、物体モデル情報I6と、に基づき、作業空間内の抽象状態を設定する。この場合、抽象状態設定部31は、目的タスクを実行する際に考慮する必要がある作業空間内の物体を認識し、当該物体に関する認識結果Imを生成する。そして、抽象状態設定部31は、認識結果Imに基づいて、目的タスクを実行する際に考慮する必要がある各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部31は、タスク指定情報Iaが供給された場合、設定した抽象状態を示す情報(「抽象状態設定情報IS」とも呼ぶ。)を、目標論理式生成部32に供給する。また、抽象状態設定部31は、命題生成部37からの要求に基づき、当該要求があった時点での状態を示す抽象状態設定情報ISを命題生成部37に供給する。
【0052】
目標論理式生成部32は、抽象状態設定情報ISに基づき、タスク指定情報Iaが示す目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部32は、生成した目標論理式Ltagを、タイムステップ論理式生成部33及び命題生成部37に供給する。
【0053】
タイムステップ論理式生成部33は、目標論理式生成部32から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部33は、生成したタイムステップ論理式Ltsを、制御入力生成部35に供給する。
【0054】
抽象モデル生成部34は、アプリケーション情報記憶部41が記憶する抽象モデル情報I5と、抽象状態設定部31から供給される認識結果Imとに基づき、作業空間における現実のダイナミクスを抽象化した抽象モデル「Σ」を生成する。この場合、抽象モデル生成部34は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルΣを生成する。抽象モデルΣの生成方法については後述する。抽象モデル生成部34は、生成した抽象モデルΣを、制御入力生成部35へ供給する。
【0055】
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとを満たし、評価関数(たとえば、ロボットによって消費されるエネルギー量を表す関数)を最適化するタイムステップ毎のロボット5への制御入力を決定する。そして、制御入力生成部35は、ロボット5へのタイムステップ毎の制御入力を示す情報(「制御入力情報Icn」とも呼ぶ。)を、サブタスクシーケンス生成部36へ供給する。
【0056】
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスSrを生成し、サブタスクシーケンスSrをロボット制御部17へ供給する。
【0057】
命題生成部37は、命題判定部18から命題要求情報Icが供給された場合に、抽象状態設定部31から供給される抽象状態設定情報ISと、目標論理式生成部32から供給される目標論理式Ltagとに基づき、第1命題及び第2命題を夫々示す命題情報Idを生成する。そして、命題生成部37は、生成した命題情報Idを、命題判定部18に供給する。
【0058】
(5-2)抽象状態設定部
まず、抽象状態設定部31は、物体モデル情報I6を参照し、作業空間の環境を認識する技術(画像処理技術、画像認識技術、音声認識技術、RFID(Radio Frequency Identifier)を用いる技術等)により計測信号S4を解析することで、認識結果Imを生成する。認識結果Imには、作業空間内の物体の種類、位置、及び姿勢などの情報が含まれている。また、作業空間内の物体は、例えば、ロボット5、ロボット5が取り扱う工具又は部品などの対象物、障害物及び他作業体(ロボット5以外に作業を行う人又はその他の物体)などである。
【0059】
次に、抽象状態設定部31は、認識結果Imと、アプリケーション情報記憶部41から取得した抽象状態指定情報I1とに基づき、作業空間内の抽象状態を設定する。この場合、まず、抽象状態設定部31は、抽象状態指定情報I1を参照し、作業空間内において設定すべき抽象状態を認識する。なお、作業空間内において設定すべき抽象状態は、目的タスクの種類によって異なる。よって、目的タスクの種類毎に設定すべき抽象状態が抽象状態指定情報I1に規定されている場合には、抽象状態設定部31は、タスク指定情報Iaが示す目的タスクに対応する抽象状態指定情報I1を参照し、設定すべき抽象状態を認識する。
【0060】
図6は、ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。
図6に示す作業空間には、2つのロボットアーム52a、52bと、4つの対象物61(61a~61d)と、障害物62と、対象物61の目的地である領域Gとが存在している。
【0061】
この場合、まず、抽象状態設定部31は、対象物61の状態、障害物62の存在範囲、ロボット5の状態、領域Gの存在範囲等を認識する。
【0062】
ここでは、抽象状態設定部31は、対象物61a~61dの各々の中心の位置ベクトル「x1」~「x4」を、対象物61a~61dの位置として認識する。また、抽象状態設定部31は、対象物を把持するロボットハンド53aの位置ベクトル「xr1」と、ロボットハンド53bの位置ベクトル「xr2」とを、ロボットアーム52aとロボットアーム52bの位置として認識する。
【0063】
同様に、抽象状態設定部31は、対象物61a~61dの姿勢(
図6の例では対象物が球状のため不要)、障害物62の存在範囲、領域Gの存在範囲等を認識する。なお、抽象状態設定部31は、例えば、障害物62を直方体とみなし、領域Gを矩形とみなす場合には、障害物62及び領域Gの各頂点の位置ベクトルを認識する。
【0064】
また、抽象状態設定部31は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部31は、作業空間内に存在する物体に関する認識結果Im(例えば物体の種類毎の個数)と、抽象状態指定情報I1とに基づき、抽象状態を示す命題を定める。
【0065】
図6の例では、抽象状態設定部31は、認識結果Imにより特定される対象物61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部31は、対象物「i」(i=1~4)が最終的に載置されるべき目標地点である領域G内に存在するという命題「g
i」を定義する。また、抽象状態設定部31は、障害物62に対して識別ラベル「O」を付し、対象物iが障害物Oに干渉しているという命題「o
i」を定義する。さらに、抽象状態設定部31は、ロボットアーム52同士が干渉するという命題「h」を定義する。なお、抽象状態設定部31は、対象物「i」が作業テーブル(初期状態で対象物及び障害物が存在するテーブル)内に存在するという命題「v
i」、作業テーブル及び領域G以外の作業外領域に対象物が存在するという命題「w
i」などをさらに定めてもよい。作業外領域は、例えば、対象物が作業テーブルから落下した場合に対象物が存在する領域(床面等)である。
【0066】
このように、抽象状態設定部31は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題(上述の例ではgi、oi、h等)を、対象物61の数、ロボットアーム52の数、障害物62の数、ロボット5の数等に応じてそれぞれ定義する。そして、抽象状態設定部31は、抽象状態を表す命題を示す情報を、抽象状態設定情報ISとして目標論理式生成部32に供給する。
【0067】
(5-3)目標論理式生成部
まず、目標論理式生成部32は、タスク指定情報Iaが示す目的タスクを、時相論理を用いた論理式に変換する。
【0068】
例えば、
図6の例において、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが与えられたとする。この場合、目標論理式生成部32は、目的タスクを線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部31により定義された命題「g
i」と用いて、論理式「◇g
2」を生成する。また、目標論理式生成部32は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「○」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
【0069】
なお、タスク指定情報Iaは、自然言語により目的タスクを指定する情報であってもよい。自然言語で表されたタスクを論理式に変換する方法は、種々の技術が存在する。
【0070】
次に、目標論理式生成部32は、制約条件情報I2が示す制約条件を、目的タスクを示す論理式に付加することで、目標論理式Ltagを生成する。
【0071】
例えば、
図6に示すピックアンドプレイスに対応する制約条件として、「ロボットアーム52同士が常に干渉しない」、「対象物iは障害物Oに常に干渉しない」の2つが制約条件情報I2に含まれていた場合、目標論理式生成部32は、これらの制約条件を論理式に変換する。具体的には、目標論理式生成部32は、
図6の説明において抽象状態設定部31により定義された命題「o
i」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
□¬h
∧
i□¬o
i
【0072】
よって、この場合、目標論理式生成部32は、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクに対応する論理式「◇g2」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
(◇g2)∧(□¬h)∧(∧i□¬oi)
【0073】
なお、実際には、ピックアンドプレイスに対応する制約条件は、上述した2つに限られず、「ロボットアーム52が障害物Oに干渉しない」、「複数のロボットアーム52が同じ対象物を掴まない」、「対象物同士が接触しない」などの制約条件が存在する。このような制約条件についても同様に、制約条件情報I2に記憶され、目標論理式Ltagに反映される。
【0074】
(5-4)タイムステップ論理式生成部
タイムステップ論理式生成部33は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。この組み合わせは、通常複数存在するため、タイムステップ論理式生成部33は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット5に命令する動作のシーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。
【0075】
ここで、
図6の説明において例示した「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが設定された場合のタイムステップ論理式生成部33の処理の具体例について説明する。
【0076】
この場合、以下の目標論理式Ltagが目標論理式生成部32からタイムステップ論理式生成部33へ供給される。
(◇g2)∧(□¬h)∧(∧i□¬oi)
この場合、タイムステップ論理式生成部33は、命題「gi」をタイムステップの概念を含むように拡張した命題「gi,k」を用いる。ここで、命題「gi,k」は、「タイムステップkで対象物iが領域Gに存在する」という命題である。ここで、目標タイムステップ数を「3」とした場合、目標論理式Ltagは、以下のように書き換えられる。
(◇g2,3)∧(∧k=1,2,3□¬hk)∧(∧i,k=1,2,3□¬oi)
【0077】
また、◇g2,3は、以下の式に示すように書き換えることが可能である。
【0078】
【0079】
このとき、上述した目標論理式Ltagは、以下に示す4つの候補「φ1」~「φ4」の論理和(φ1∨φ2∨φ3∨φ4)により表される。
【0080】
【0081】
よって、タイムステップ論理式生成部33は、4つの候補φ1~φ4の論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ1~φ4の少なくともいずれかが真となる場合に真となる。
【0082】
次に、目標タイムステップ数の設定方法について補足説明する。
【0083】
タイムステップ論理式生成部33は、例えば、タスク指示装置2から供給される入力信号S1により指定された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部33は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部33は、目的タスクの種類毎に適した目標タイムステップ数を対応付けた情報を予めメモリ12又は記憶装置4に記憶しておき、当該情報を参照することで、実行すべき目的タスクの種類に応じた目標タイムステップ数を決定する。
【0084】
好適には、タイムステップ論理式生成部33は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部33は、制御入力生成部35が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部33は、設定した目標タイムステップ数により制御入力生成部35が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
【0085】
このとき、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を、ユーザが見込む目的タスクの作業時間に相当するタイムステップ数よりも小さい値に設定するとよい。これにより、タイムステップ論理式生成部33は、不必要に大きな目標タイムステップ数を設定することを好適に抑制する。
【0086】
(5-5)抽象モデル生成部
抽象モデル生成部34は、抽象モデル情報I5と、認識結果Imとに基づき、抽象モデルΣを生成する。ここで、抽象モデル情報I5には、目的タスクの種類毎に、抽象モデルΣの生成に必要な情報が記録されている。例えば、目的タスクがピックアンドプレイスの場合には、対象物の位置や数、対象物を置く領域の位置、ロボット5の台数(又はロボットアーム52の数)等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。そして、抽象モデル生成部34は、抽象モデル情報I5に記録された、ロボット5のダイナミクスを含む汎用的な形式の抽象モデルに対し、認識結果Imを反映することで、抽象モデルΣを生成する。これにより、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスとが抽象的に表されたモデルとなる。作業空間内の物体の状態は、ピックアンドプレイスの場合には、対象物の位置及び数、対象物を置く領域の位置、ロボット5の台数等を示す。
【0087】
なお、他作業体が存在する場合、他作業体の抽象化されたダイナミクスに関する情報が抽象モデル情報I5に含まれてもよい。この場合、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスと、他作業体のダイナミクスとが抽象的に表されたモデルとなる。
【0088】
ここで、ロボット5による目的タスクの作業時においては、作業空間内のダイナミクスが頻繁に切り替わる。例えば、ピックアンドプレイスでは、ロボットアーム52が対象物iを掴んでいる場合には、当該対象物iを動かすことができるが、ロボットアーム52が対象物iを掴んでない場合には、当該対象物iを動かすことができない。
【0089】
以上を勘案し、本実施形態においては、ピックアンドプレイスの場合、対象物iを掴むという動作を論理変数「δ
i」により抽象表現する。この場合、例えば、抽象モデル生成部34は、
図6に示す作業空間に対して設定すべき抽象モデルΣを、以下の式(1)により定めることができる。
【0090】
【0091】
ここで、「uj」は、ロボットハンドj(「j=1」はロボットハンド53a、「j=2」はロボットハンド53b)を制御するための制御入力を示し、「I」は単位行列を示し、「0」は零行例を示す。なお、制御入力は、ここでは、一例として速度を想定しているが、加速度であってもよい。また、「δj,i」は、ロボットハンドjが対象物iを掴んでいる場合に「1」であり、その他の場合に「0」である論理変数である。また、「xr1」、「xr2」は、ロボットハンドj(j=1、2)の位置ベクトル、「x1」~「x4」は、対象物i(i=1~4)の位置ベクトルを示す。また、「h(x)」は、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合に「h(x)≧0」となる変数であり、論理変数δとの間で以下の関係を満たす。
δ=1 ⇔ h(x)≧0
この式では、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合には、ロボットハンドが対象物を掴んでいるとみなし、論理変数δを1に設定している。
【0092】
ここで、式(1)は、タイムステップkでの物体の状態とタイムステップk+1での物体の状態との関係を示した差分方程式である。そして、上記の式(1)では、把持の状態が離散値である論理変数により表わされ、物体の移動は連続値により表わされているため、式(1)はハイブリッドシステムを示している。
【0093】
式(1)では、ロボット5全体の詳細なダイナミクスではなく、対象物を実際に把持するロボット5の手先であるロボットハンドのダイナミクスのみを考慮している。これにより、制御入力生成部35による最適化処理の計算量を好適に削減することができる。
【0094】
また、抽象モデル情報I5には、ダイナミクスが切り替わる動作(ピックアンドプレイスの場合には対象物iを掴むという動作)に対応する論理変数、及び、認識結果Imから式(1)の差分方程式を導出するための情報が記録されている。よって、抽象モデル生成部34は、対象物の位置や数、対象物を置く領域(
図6では領域G)、ロボット5の台数等が変動する場合であっても、抽象モデル情報I5と認識結果Imとに基づき、対象の作業空間の環境に即した抽象モデルΣを決定することができる。
【0095】
なお、抽象モデル生成部34は、式(1)に示されるモデルに代えて、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
【0096】
(5-6)制御入力生成部
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとに基づき、最適となるタイムステップ毎のロボット5に対する制御入力を決定する。この場合、制御入力生成部35は、目的タスクに対する評価関数を定義し、抽象モデルΣ及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。評価関数は、例えば、目的タスクの種類毎に予め定められ、メモリ12又は記憶装置4に記憶されている。
【0097】
例えば、ピックアンドプレイスを目的タスクとした場合、制御入力生成部35は、運ぶ対象となる対象物と当該対象物を運ぶ目標地点との距離「dk」と制御入力「uk」とが最小となる(即ちロボット5が費やすエネルギーを最小化する)ように評価関数を定める。上述の距離dkは、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクの場合には、対象物(i=2)と領域Gとのタイムステップkでの距離に相当する。
【0098】
この場合、制御入力生成部35は、全タイムステップにおける距離dkのノルムの2乗と制御入力ukのノルムの2乗との和を評価関数として定める。そして、制御入力生成部35は、抽象モデルΣ及びタイムステップ論理式Lts(即ち候補φiの論理和)を制約条件とする以下の式(2)に示す制約付き混合整数最適化問題を解く。
【0099】
【0100】
ここで、「T」は、最適化の対象となるタイムステップ数であり、目標タイムステップ数であってもよく、後述するように、目標タイムステップ数よりも小さい所定数であってもよい。この場合、好適には、制御入力生成部35は、論理変数を連続値に近似する(連続緩和問題とする)。これにより、制御入力生成部35は、計算量を好適に低減することができる。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。
【0101】
また、制御入力生成部35は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部35は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力ukを決定する。
【0102】
好適には、制御入力生成部35は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、使用すべき制御入力ukを決定してもよい。この場合、制御入力生成部35は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、作業空間におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット5が対象物を掴む、ロボット5が運ぶべき複数の対象物のうちの1つの対象物を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、目的タスクの種類毎に予め定められており、目的タスクの種類毎にイベントを特定する情報が記憶装置4に記憶されている。
【0103】
(5-7)サブタスクシーケンス生成部
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスSrを生成する。この場合、サブタスクシーケンス生成部36は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスクを認識し、制御入力情報Icnが示すタイムステップ毎の制御入力をサブタスクに変換する。
【0104】
例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット5が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット5の状態、及び当該関数実行前の把持対象の対象物の状態、論理変数δをそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数δが「1」のときに掴む動作を行うこと表し、論理変数δが「0」のときに放す動作を行うこと表す。この場合、サブタスクシーケンス生成部36は、関数「Move」を、制御入力情報Icnが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icnが示すタイムステップ毎の論理変数δの遷移に基づき決定する。
【0105】
そして、サブタスクシーケンス生成部36は、関数「Move」と関数「Grasp」とにより構成されるサブタスクシーケンスSrを生成し、当該サブタスクシーケンスSrをロボット制御部17に供給する。例えば、目的タスクが「最終的に対象物(i=2)が領域Gに存在する」の場合、サブタスクシーケンス生成部36は、対象物(i=2)に最も近いロボットハンドに対し、関数「Move」、関数「Grasp」、関数「Move」、関数「Grasp」のサブタスクシーケンスSrを生成する。この場合、対象物(i=2)に最も近いロボットハンドは、1回目の関数「Move」により対象物(i=2)の位置まで移動し、1回目の関数「Grasp」により対象物(i=2)を把持し、2回目の関数「Move」により領域Gまで移動し、2回目の関数「Grasp」により対象物(i=2)を領域Gに載置する。
【0106】
(5-8)命題生成部
命題生成部37は、命題判定部18から命題要求情報Icが供給された場合に、抽象状態設定部31から供給される抽象状態設定情報ISと、目標論理式生成部32から供給される目標論理式Ltagとに基づき、第1命題及び第2命題を夫々示す命題情報Idを生成する。ここで、第1命題及び第2命題の生成について夫々説明する。
【0107】
まず、第1命題の生成について説明する。命題生成部37は、命題判定部18から命題要求情報Icが供給された時点(即ちサブタスクシーケンスSrの実行完了時点)において抽象状態設定部31が生成した抽象状態設定情報ISに基づき、目的タスクに関する現在の状態を抽象的に表した第1命題を生成する。この場合、命題生成部37は、抽象状態設定情報ISが示す命題のうち、目的タスクの完了判定に必要な物体の状態を表す部分を抽出した第1命題を生成する。ここで、「目的タスクの完了判定に必要な物体」は、例えば作業対象物(ワーク)であり、
図6の例では、対象物61a~61dに相当する。
【0108】
なお、「目的タスクの完了判定に必要な物体」は、目的タスクの種類毎に定められてもよい。この場合、例えば、記憶装置4又はメモリ12等には、「目的タスクの完了判定に必要な物体」を目的タスクの種類ごとに規定した情報が記憶されており、命題生成部37は、当該情報を参照することで、「目的タスクの完了判定に必要な物体」を決定する。例えば、
図6に示される目的タスクの場合、命題生成部37は、対象物「i」(i=1~4)の状態を表す第1命題を生成する。
【0109】
ここで、
図6の例において、ロボット5がサブタスクシーケンスSrを実行することにより目的タスクが正常に完了した場合について考察する。この場合、全ての対象物は、領域Gに存在する。よって、この場合、命題生成部37は、対象物「i」(i=1~4)が領域G内に存在するという命題「g
i」を用い、例えば以下の式(3)に示される第1命題を生成する。
g
1∧g
2∧g
3∧g
4 (3)
【0110】
次に、ロボット5がサブタスクシーケンスSrの実行途中で対象物(i=2)を落下してしまい、作業外領域に当該対象物が移動することにより、目的タスクが正常完了しなかった場合について考察する。この場合、例えば、命題生成部37は、対象物が作業テーブル及び領域G以外の作業外領域に存在するという命題「wi」をさらに用い、以下の式(4)に示される第1命題を生成する。
g1∧w2∧g3∧g4 (4)
【0111】
このように、命題生成部37は、ロボット5によるサブタスクシーケンスSrの実行完了時点での計測信号S4に基づき生成された抽象状態設定情報ISを参照し、目的タスクに関する現在の状態を抽象的に表した第1命題を好適に生成する。なお、命題生成部37は、抽象状態設定部31から抽象状態設定情報ISを受信する代わりに、計測信号S4に基づき生成された認識結果Imを受信してもよい。この場合、命題生成部37は、認識結果Imに基づき、目的タスクに関する現在の状態(
図6では対象物の状態)を抽象的に表した第1命題を生成する。
【0112】
次に、第2命題の生成について説明する。命題生成部37は、目標論理式生成部32から供給される目標論理式Ltagに基づき、目的タスクの完了状態を抽象的に表した第2命題を生成する。この場合、命題生成部37は、目標論理式Ltagに含まれる制約条件の論理式を除外し、目的タスクに対応する論理式のみを用いて第2命題を生成する。例えば、
図6の例では、命題生成部37は、目標論理式Ltagから、障害物に干渉しない等の種々の制約条件を除外した以下の式(5)に示される第2命題を生成する。
◇g
1∧◇g
2∧◇g
3∧◇g
4 (5)
【0113】
好適には、命題生成部37は、目標論理式Ltagから、「eventually」に相当する演算子「◇」などの、目的タスクの完了判定に影響が生じない所定の演算子をさらに削除した第2命題を生成するとよい。この場合、削除すべき演算子の情報は、例えば、記憶装置4又はメモリ12等に予め記憶される。この場合、命題生成部37は、以下の式(6)に示される第2命題を生成する。
g1∧g2∧g3∧g4 (6)
【0114】
このように、命題生成部37は、タスク指定情報Ia等により指定された目的タスクに基づき生成された目標論理式Ltagを用いることで、目的タスクの完了状態を抽象的に表した第2命題を好適に生成する。なお、命題生成部37は、目標論理式Ltagの代わりに、目標論理式Ltagから制約条件等が除外された論理式を目標論理式生成部32から受信してもよい。
【0115】
(6)命題判定部の詳細
次に、動作シーケンス生成部16の命題生成部37が生成した第1命題と第2命題とを用いて命題判定部18が実行する処理の具体例について説明する。
【0116】
命題判定部18は、動作シーケンス生成部16から受信した命題情報Idが示す第1命題と第2命題とが一致した場合に、目的タスクが正常に完了したと判定する。例えば、命題判定部18は、式(3)に示される第1命題と、式(6)に示される第2命題とを示す命題情報Idを受信した場合、式(3)と式(6)は同一であることから、第1命題と第2命題とは一致し、目的タスクが正常に完了したと判定する。
【0117】
一方、命題判定部18は、動作シーケンス生成部16から受信した命題情報Idが示す第1命題と第2命題とが一致しない場合に、目的タスクが正常に完了しなかったと判定する。例えば、命題判定部18は、式(4)に示される第1命題と、式(6)に示される第2命題とを示す命題情報Idを受信した場合、対象物(i=2)の状態を表す論理式が第1命題では「w2」、第2命題では「g2」となり、式(4)と式(6)とは相違すると判定する。よって、この場合、命題判定部18は、第1命題と第2命題とが一致しないことから、目的タスクが正常に完了しなかったと判定する。
【0118】
なお、命題判定部18は、「eventually」に相当する演算子「◇」などの、目的タスクの完了判定に影響が生じない所定の演算子が第2命題に付されていた場合には、当該演算子の有無については相違点とはみなさず、上記の第1命題と第2命題との一致の有無を判定する。よって、命題判定部18は、式(3)に示される第1命題と、式(5)に示される第2命題とを示す命題情報Idを受信した場合、式(3)と式(5)は演算子「◇」を除き同一であることから、第1命題と第2命題とは一致し、目的タスクが正常に完了したと判定する。
【0119】
以上のように、命題判定部18は、命題生成部37が生成した第1命題と第2命題とに基づき、目的タスク完了判定を的確に行うことができる。
【0120】
(7)
出力制御部の詳細
出力制御部15の処理の詳細について説明する。以後では、出力制御部15の制御に基づきタスク指示装置2が表示するタスク画面の表示例について、
図7~
図9を参照して説明する。
【0121】
図7は、目的タスクを指定するタスク画面の表示例を示す。出力制御部15は、出力制御信号S2を生成し、当該出力制御信号S2をタスク指示装置2に送信することで、タスク指示装置2に
図7に示すタスク画面を表示するよう制御している。
図7に示すタスク画面は、主に、タスク種類指定欄25と、作業空間画像表示欄26と、各種ボタン28(28a、28b)とを有する。
【0122】
出力制御部15は、タスク種類指定欄25において、目的タスクの種類を指定する入力を受け付ける。ここでは、一例として、タスク種類指定欄25はプルダウンメニュー形式の入力欄であり、出力制御部15は、受付可能な目的タスクの種類の候補を、タスク種類指定欄25において選択可能に一覧表示する。ここでは、タスク種類指定欄25には、ピックアンドプレイスが目的タスクの種類として指定されている。
【0123】
また、出力制御部15は、作業空間画像表示欄26において、計測装置7が作業空間内を撮像した作業空間画像を表示し、タスク種類指定欄25において指定された目的タスクの実行に必要な指定を受け付ける。
図7の例では、出力制御部15は、タスク種類指定欄25で選択されたピックアンドプレイスに対応する抽象状態指定情報I1を参照し、ロボット5により作業対象となる対象物と、対象物の目的地とを定める必要があると認識する。よって、出力制御部15は、作業空間画像表示欄26上で対象物と目的地とを夫々指定する入力を受け付ける。ここでは、一例として、出力制御部15は、対象物を指定したマーク27a~27dを実線により表示し、目的地を指定したマーク27eを破線により表示している。そして、出力制御部15は、対象物決定ボタン28aが選択されたことを検知した場合、ユーザが描いたマーク27a~27dの位置情報を、対象物の位置を特定する情報として認識する。また、出力制御部15は、さらに目的地決定ボタン28bが選択されたことを検知した場合、対象物決定ボタン28aの選択後にユーザが描いたマーク27eの位置情報を、目的地を特定する情報として認識する。そして、出力制御部15は、これらの対象物及び目的地を特定する情報(ここでは作業空間画像上での各マークの位置情報)を、タスク指定情報Iaとして動作シーケンス生成部16に供給する。
【0124】
このように、
図7に示されるタスク画面によれば、出力制御部15は、目的タスクの種類の指定及び目的タスクに関連する物体の指定に関するユーザ入力を好適に受け付け、タスク指定情報Iaを好適に取得することができる。
【0125】
なお、出力制御部15は、対象物及び目的地を丸印で囲む入力を受け付ける代わりに、タッチ操作又はクリック操作により対象物及び目的地を構成する一部の画素を夫々指定する入力を受け付けてもよい。この場合、出力制御部15は、指定された各画素の位置情報を、対象物及び目的地を夫々特定する情報とみなし、タスク指定情報Iaとして動作シーケンス生成部16に供給する。他の例では、出力制御部15は、対象物及び目的地に関する認識結果Imに基づき、作業空間画像表示欄26上でのユーザ入力によらずにタスク指定情報Iaを生成してもよい。
【0126】
図8は、
図7において指定された目的タスクが正常終了した場合のタスク画面の表示例を示す。出力制御部15は、命題判定部18から受信した判定結果情報Ieに基づき出力制御信号S2を生成し、当該出力制御信号S2をタスク指示装置2に送信することで、タスク指示装置2に
図8に示すタスク画面を表示するよう制御している。
図8に示すタスク画面は、主に、通知領域29と、作業空間画像表示欄26Aとを有する。
【0127】
ここで、
図8の例では、
図7において目的地として指定された矩形領域上に、
図7において対象物として指定された4つの球状物体が全て載置されている。この場合、現在の目的タスクの状態を表す第1命題と、目的タスクの完了状態を表す第2命題とは一致し、目的タスクが正常終了したことを示す判定結果情報Ieが命題判定部18により生成される。
【0128】
この場合、出力制御部15は、命題判定部18から受信した判定結果情報Ieが目的タスクの正常終了を示していることから、通知領域29において、目的タスクが完了した旨のテキストメッセージを表示している。また、出力制御部15は、最新の計測信号S4に基づく作業空間画像を、作業空間画像表示欄26Aに表示している。
【0129】
図8に示されるタスク画面の表示例によれば、出力制御部15は、指定した目的タスクが完了したことを、タスク画面によりユーザに好適に通知することができる。
【0130】
図9は、
図7において指定された目的タスクが正常終了しなかった場合のタスク画面の表示例を示す。出力制御部15は、命題判定部18から受信した判定結果情報Ieに基づき出力制御信号S2を生成し、当該出力制御信号S2をタスク指示装置2に送信することで、タスク指示装置2に
図9に示すタスク画面を表示するよう制御している。
図9に示すタスク画面は、
図8のタスク画面と同様に、通知領域29と、作業空間画像表示欄26Aとを有する。
【0131】
図9の例では、
図7において目的地として指定された台上に、対象物として指定された4つの球状物体のうち3個が載置されている。一方、対象物として指定された残りの1個の球状物体が何らかのアクシデントにより作業外領域に落下している。この場合、現在の目的タスクの状態を表す第1命題と、目的タスクの完了状態を表す第2命題とは異なることから、目的タスクが正常に終了しなかったことを示す判定結果情報Ieが命題判定部18により生成される。
【0132】
この場合、出力制御部15は、命題判定部18から受信した判定結果情報Ieに基づき、通知領域29において、目的タスクが正常に終了なかった旨のテキストメッセージを表示している。また、出力制御部15は、最新の計測信号S4に基づく作業空間画像を、作業空間画像表示欄26Aに表示している。
【0133】
図9に示されるタスク画面の表示例によれば、出力制御部15は、指定した目的タスクが正常に完了しなかったことに対するアラートを、タスク画面によりユーザに好適に通知することができる。
【0134】
(8)
処理フロー
図10は、第1実施形態においてロボットコントローラ1が実行するロボット制御処理の概要を示すフローチャートの一例である。
【0135】
まず、ロボットコントローラ1の出力制御部15は、タスク指定情報Iaを取得する(ステップS11)。この場合、例えば、出力制御部15は、インターフェース13を介してタスク指示装置2にタスク画面を表示するための出力制御信号S2を送信し、タスク指示装置2は出力制御信号S2に基づきタスク画面を表示する。そして、出力制御部15は、タスク画面を表示中のタスク指示装置2から、目的タスクの指定に関する入力信号S1を受信した場合、当該入力信号S1をタスク指定情報Iaとして取得する。
【0136】
動作シーケンス生成部16は、ステップS11で取得したタスク指定情報Iaと、計測信号S4とに基づき、ロボット5の動作シーケンスであるサブタスクシーケンスSrを生成する(ステップS12)。この場合、動作シーケンス生成部16は、サブタスクシーケンスSrの生成に必要な、作業空間における物体の認識を行い、タスク指定情報Iaが示す目的タスクの完了に必要なサブタスクシーケンスSrを生成する。
【0137】
次に、ロボット制御部17は、生成されたサブタスクシーケンスSrに基づく制御信号S3をロボット5へ順次供給し、生成されたサブタスクシーケンスSrに従いロボット5が動作するように制御する(ステップS13)。
【0138】
次に、ロボット制御部17は、サブタスクシーケンスSrが完了したか否か判定する(ステップS14)。この場合、ロボット制御部17は、例えば、サブタスクシーケンスSrに基づきロボット5に出力すべき制御信号が無くなった(即ち制御信号の出力が完了した)場合に、サブタスクシーケンスSrが完了したと判定する。なお、ロボット制御部17は、サブタスクシーケンスSrに基づく制御信号のロボット5への供給開始後、サブタスクシーケンスSrが有するタイムステップ数に応じた時間長が経過した場合に、サブタスクシーケンスSrが完了したと判定してもよい。
【0139】
そして、ロボット制御部17は、サブタスクシーケンスSrが完了したと判定した場合(ステップS14;Yes)、ステップS15へ処理を進める。一方、サブタスクシーケンスSrが完了していないと判定した場合(ステップS14;No)、引き続きステップS13においてロボット5の制御を継続する。
【0140】
サブタスクシーケンスSrの完了後、動作シーケンス生成部16は、目的タスクの現在の状態を表す第1命題と、目的タスクの完了状態を表す第2命題とを夫々生成する(ステップS15)。この場合、命題判定部18は、ロボット制御部17から完了通知情報Ibを受信したタイミングにおいて命題要求情報Icを動作シーケンス生成部16に供給し、動作シーケンス生成部16は、命題要求情報Icを命題判定部18から受信した場合に、第1命題と第2命題とを生成する。
【0141】
そして、命題判定部18は、動作シーケンス生成部16が生成した第1命題と第2命題とが一致するか否か判定する(ステップS16)。この場合、命題判定部18は、第1命題と第2命題とを示す命題情報Idを動作シーケンス生成部16から受信し、受信した命題情報Idが示す第1命題と第2命題との比較に基づき、判定結果情報Ieを生成する。
【0142】
そして、命題判定部18は、第1命題と第2命題とが一致すると判定した場合(ステップS16;Yes)、目的タスクが正常に完了したと判定する。この場合、出力制御部15は、タスク完了の通知を行う(ステップS17)。この場合、出力制御部15は、例えば、判定結果情報Ieに基づき生成した出力制御信号S2をタスク指示装置2に供給することで、目的タスクの正常完了を明示したタスク画面(
図8参照)をタスク指示装置2に表示させる制御を行う。これにより、ロボットコントローラ1は、目的タスクの完了をユーザに好適に知らせることができる。
【0143】
一方、命題判定部18は、第1命題と第2命題とが一致しないと判定した場合(ステップS16;No)、目的タスクが正常に完了しなかったと判定する。この場合、出力制御部15は、タスクが正常に完了しなかった旨のアラート情報を出力する(ステップS18)。この場合、出力制御部15は、例えば、判定結果情報Ieに基づき生成した出力制御信号S2をタスク指示装置2に供給することで、目的タスクが正常完了しなかったことに対するアラートを示すタスク画面(
図9参照)を、タスク指示装置2に表示させる制御を行う。これにより、ロボットコントローラ1は、目的タスクが正常に完了しなかったことに対するアラートを、ユーザに好適に通知することができる。
【0144】
(9)変形例
次に、第1実施形態の変形例について説明する。以下の変形例は任意に組み合わせて適用してもよい。なお、これらの変形例は、後述する第2実施形態及び第3実施形態においても好適に適用される。
【0145】
(第1変形例)
ロボットコントローラ1は、タスク画面においてユーザ入力に基づき指定された目的タスクをロボット5に実行させる代わりに、予め指定された目的タスクをロボット5に実行させてもよい。
【0146】
この場合、例えば、記憶装置4には、目的タスクを指定したタスク指定情報Iaが予め記憶されており、動作シーケンス生成部16は、出力制御部15からタスク指定情報Iaを取得する代わりに、記憶装置4を参照することで、タスク指定情報Iaを取得する。このように、ロボットコントローラ1は、予め定められた目的タスクを実行する場合であっても、目的タスクに応じたサブタスクシーケンスSrの実行完了後に、第1命題と第2命題とを比較することで、目的タスク完了判定を好適に実行することができる。
【0147】
(第2変形例)
ロボットコントローラ1は、目的タスク完了判定の結果を、タスク画面上に表示する制御を行う代わりに、又は、これに加えて、目的タスク完了判定の結果を、音により出力する制御を行ってもよい。
【0148】
この場合、ロボットコントローラ1の出力制御部15は、判定結果情報Ieに基づき生成した音出力信号を含む出力制御信号S2をタスク指示装置2に供給することで、目的タスク完了判定の結果を通知する音出力をタスク指示装置2に実行させる。なお、この場合、出力制御部15は、目的タスクが正常完了しなかったことを示す判定結果情報Ieを取得した場合に限り、タスク指示装置2に上述の音出力を実行させてもよい。この場合、音出力は、目的タスクが正常完了しなかったことを通知する音声案内であってもよく、アラート音であってもよい。
【0149】
このように、第2変形例によっても、ロボットコントローラ1は、目的タスク完了判定の結果をタスク指示装置2のユーザに好適に通知することができる。
【0150】
(第3変形例)
ロボットコントローラ1は、目的タスク完了判定の結果をタスク指示装置2に出力する代わりに、又は、これに加えて、工場内のロボット又はその他の機械を統括して管理する管理端末に目的タスク完了判定の結果を出力してもよい。
【0151】
この場合、ロボットコントローラ1の出力制御部15は、命題判定部18から判定結果情報Ieを受信後、判定結果情報Ie又は判定結果情報Ieに基づく情報を、インターフェース13を介して管理端末に送信する。そして、管理端末は、ロボットコントローラ1から受信した情報を、タスクの履歴情報として記憶してもよく、受信した情報に基づく表示又は音出力を実行してもよい。なお、ロボットコントローラ1は、目的タスクが正常完了しなかったと判定した場合に限り、当該判定に基づくアラート情報を管理端末に送信してもよい。
【0152】
(第4変形例)
図5に示す動作シーケンス生成部16のブロック構成は一例であり、種々の変更がなされてもよい。
【0153】
例えば、ロボット5に命令する動作のシーケンスの候補φの情報が記憶装置4に予め記憶され、動作シーケンス生成部16は、当該情報に基づき、制御入力生成部35の最適化処理を実行する。これにより、動作シーケンス生成部16は、最適な候補φの選定とロボット5の制御入力の決定を行う。この場合、動作シーケンス生成部16は、サブタスクシーケンスSrの生成において、抽象状態設定部31、目標論理式生成部32及びタイムステップ論理式生成部33に相当する機能を有しなくともよい。このように、
図5に示す動作シーケンス生成部16の一部の機能ブロックの実行結果に関する情報が予めアプリケーション情報記憶部41に記憶されていてもよい。
【0154】
他の例では、アプリケーション情報には、目的タスクに対応するサブタスクシーケンスSrを設計するためのフローチャートなどの設計情報が予め含まれており、動作シーケンス生成部16は、当該設計情報を参照することで、サブタスクシーケンスSrを生成してもよい。なお、予め設計されたタスクシーケンスに基づきタスクを実行する具体例については、例えば特開2017-39170号に開示されている。
【0155】
<第2実施形態>
第2実施形態のロボットコントローラ1は、目的タスクの開始から所定時間長が経過した場合に、目的タスク完了判定を行う点において、第1実施形態のロボットコントローラ1と異なる。以後では、第1実施形態と同一構成要素については、適宜同一符号を付し、その説明を省略する。
【0156】
図11は、第2実施形態におけるロボットコントローラ1Aの機能ブロック図である。ロボットコントローラ1Aは、例えば
図2(A)に示されるハードウェア構成を有し、ロボットコントローラ1Aのプロセッサ11は、機能的には、出力制御部15と、動作シーケンス生成部16Aと、ロボット制御部17Aと、命題判定部18Aとを有する。
【0157】
動作シーケンス生成部16Aは、出力制御部15から供給されるタスク指定情報Iaと、計測信号S4と、記憶装置4が記憶するアプリケーション情報とに基づき、ロボット5に実行させるサブタスクシーケンスSrを生成する。この場合、動作シーケンス生成部16Aは、目的タスクの完了状態(ゴール)に至るまでの1又は複数の中間状態(「サブゴール」とも呼ぶ。)を設定する。そして、動作シーケンス生成部16Aは、サブゴールに基づき、目的タスクの開始から完了までに必要な複数のサブタスクシーケンスSrを逐次的に生成する。具体的には、動作シーケンス生成部16Aは、初期状態からサブゴール、サブゴールから次のサブゴール、最後のサブゴールから完了状態(ゴール)へ夫々移行するためのサブタスクシーケンスSrを、逐次的に生成する。また、動作シーケンス生成部16Aは、命題判定部18Aから命題要求情報Icを受信した場合に、第1実施形態の動作シーケンス生成部16と同様に第1命題及び第2命題を示す命題情報Idを生成し、当該命題情報Idを命題判定部18Aに供給する。
【0158】
ここで、サブゴールの設定方法について補足説明する。例えば、目的タスクごとにサブゴールの設定に必要な情報が予め記憶装置4に記憶されており、動作シーケンス生成部16Aは、この情報を参照することで、サブゴールの設定を行う。上述の情報は、例えば、ピックアンドプレイスの場合には、1つのサブタスクシーケンスSrにおいて対象物を移動させる最大個数の情報である。
【0159】
ロボット制御部17Aは、動作シーケンス生成部16Aから供給されたサブタスクシーケンスSrに基づき、ロボット5の制御を行う。そして、ロボット制御部17Aは、供給されたサブタスクシーケンスSrが完了した場合、サブタスクシーケンスSrの完了通知を動作シーケンス生成部16Aに供給する。
【0160】
命題判定部18Aは、目的タスクの開始(即ち、最初のサブタスクシーケンスSrがロボット制御部17Aに供給された時点)から所定時間長が経過した場合に、目的タスク完了判定を、第1命題と第2命題との比較により行う。そして、命題判定部18Aは、第1実施形態と同様に、命題の比較結果に基づき判定結果情報Ieを生成し、当該判定結果情報Ieを出力制御部15へ供給する。
【0161】
上述の所定時間長は、例えば、目的タスクの開始前において予想される目的タスクの所要時間長以上の時間長(例えば、発生し得るタイムラグの上限時間長を所要時間長に加算した時間長)に設定される。この場合、例えば、設定され得る目的タスク毎に上記の所定時間長又は所定時間長を算出するために必要な情報が記憶装置4等に記憶されており、命題判定部18Aは、当該情報に基づき、上述の所定時間長を決定する。「所定時間長を算出するために必要な情報」は、例えば、タスクの所要時間長が対象物の数などに依存する場合の依存する物体の単位当たりの時間長であり、
図6の例では、対象物61の1体当たりの作業に要する所要時間長である。
【0162】
このように、命題判定部18Aは、目的タスクの開始から所定時間長が経過した場合に、目的タスク完了判定を行い、第1命題と第2命題とが異なる場合に、目的タスクが正常に完了しなかったとみなす。これにより、命題判定部18Aは、目的タスクが正常に完了したか否かを的確に判定することができる。
【0163】
ここで、目的タスクの開始から所定時間長が経過した場合に、目的タスク完了判定を行うことの効果について具体例を用いて補足説明する。
【0164】
例えば、4つの対象物61(61a~61d)を領域Gへピックアンドプレイスする
図6の例において、1つのサブタスクシーケンスSrにおいて最大2つの対象物を移動させるものとする。この場合、動作シーケンス生成部16Aは、まず、最初の2つの対象物61a、61bを領域Gへピックアンドプレイスすることをサブゴールとして設定する。そして、動作シーケンス生成部16Aは、まず、サブゴールまでのサブタスクシーケンスSrを計算し、計算したサブタスクシーケンスSrをロボット制御部17に供給する。そして、動作シーケンス生成部16Aは、ロボット制御部17からサブタスクシーケンスSrの完了通知を受信した後、計測信号S4に基づき現在の抽象状態を設定し、残りの対象物61c、61dが作業テーブル上に存在することを認識する。そして、動作シーケンス生成部16Aは、残りの対象物61c、61dをピックアンドプレイスするためのサブタスクシーケンスSrを生成し、当該サブタスクシーケンスSrをロボット制御部17に供給する。
【0165】
ここで、上記の例において、何らかのアクシデントによって、1つの対象物61が障害物62に近接する、又は、作業外領域に落下するなどにより、ロボットアーム52a、52bがいずれも把持できなくなったものとする。この場合、動作シーケンス生成部16Aは、目的タスクが完了するように、サブタスクシーケンスSrを繰り返し生成することになる。この場合、目的タスクの実行開始前において予想される目的タスクの所要時間長が経過しても、ロボット5にロボット制御部17Aが制御信号S3を出力し続けることになる。従って、この場合、ロボット5への制御信号S3の出力がなくなったタイミングでロボット制御部17Aが完了通知情報Ibを命題判定部18に供給する第1実施形態の枠組みでは、命題判定部18による目的タスク完了判定が開始されない。
【0166】
以上を勘案し、第2実施形態では、ロボットコントローラ1Aは、目的タスクの開始から所定時間長経過したことを契機として目的タスク完了判定を行う。これにより、ロボットコントローラ1Aは、目的タスクが正常に完了したか否かを的確に判定することができる。
【0167】
図12は、第2実施形態においてロボットコントローラ1Aが実行するロボット制御処理の概要を示すフローチャートの一例である。
【0168】
まず、ロボットコントローラ1の出力制御部15は、タスク指定情報Iaを取得する(ステップS21)。次に、動作シーケンス生成部16Aは、ステップS21で取得したタスク指定情報Iaと、計測信号S4とに基づき、ロボット5の動作シーケンスであるサブタスクシーケンスSrを生成する(ステップS22)。この場合、動作シーケンス生成部16は、1又は複数のサブゴールを設定し、初期状態からサブゴール、サブゴールから次のサブゴール、最後のサブゴールから完了状態(ゴール)へ夫々移行するためのサブタスクシーケンスSrを、逐次的に生成する。また、ロボット制御部17Aは、動作シーケンス生成部16Aが生成するサブタスクシーケンスSrに基づき、ロボット5の制御を行う。
【0169】
次に、命題判定部18Aは、目的タスクの開始から所定時間長が経過したか否か判定する(ステップS24)。そして、命題判定部18Aは、目的タスクの開始から所定時間長が経過していない場合(ステップS24;No)、動作シーケンス生成部16A及びロボット制御部17Aは、引き続きステップS23に関する処理を行う。
【0170】
一方、命題判定部18Aは、目的タスクの開始から所定時間長が経過したと判定した場合(ステップS24;Yes)、動作シーケンス生成部16Aは、目的タスクの現在の状態を表す第1命題と、目的タスクの完了状態を表す第2命題とを夫々生成する(ステップS25)。この場合、命題判定部18は、命題要求情報Icを動作シーケンス生成部16に供給し、動作シーケンス生成部16Aは、命題要求情報Icを命題判定部18から受信した場合に、第1命題と第2命題とを生成する。
【0171】
そして、命題判定部18Aは、動作シーケンス生成部16Aが生成した第1命題と第2命題とが一致するか否か判定する(ステップS26)。そして、命題判定部18Aは、第1命題と第2命題とが一致すると判定した場合(ステップS26;Yes)、目的タスクが正常に完了したと判定する。この場合、出力制御部15は、タスク完了の通知を行う(ステップS27)。一方、命題判定部18Aは、第1命題と第2命題とが一致しないと判定した場合(ステップS26;No)、目的タスクが正常に完了しなかったと判定する。この場合、出力制御部15は、タスクが正常に完了しなかった旨のアラート情報を出力する(ステップS28)。
【0172】
<第3実施形態>
第3実施形態は、判定結果情報Ieを、ロボット5の状態を管理する外部装置に送信する点において、第1実施形態及び第2実施形態と異なる。以後では、第1実施形態及び第2実施形態と同一構成要素については、適宜同一符号を付し、その説明を省略する。
【0173】
図13は、第3実施形態におけるロボット制御システム100Bの概略構成図を示す。ロボット制御システム100Bは、主に、ロボットコントローラ1Bと、タスク指示装置2と、記憶装置4と、ロボット5と、管理装置6と、計測装置7と、端末8とを有する。
【0174】
ロボットコントローラ1Bは、通信網3を介してクラウドサーバである管理装置6とデータ通信を行う。ロボットコントローラ1Bは、例えば、
図2に示すハードウェア構成、及び、
図4又は
図11に示される機能ブロック構成を有する。そして、ロボットコントローラ1Bは、第1実施形態のロボットコントローラ1又は第2実施形態のロボットコントローラ1Aと同一処理を行い、かつ、通信網3を介し、目的タスクが正常に完了しなかったことを示すアラート情報「Ig」を管理装置6に供給する。アラート情報Igは、判定結果情報Ieを受信した出力制御部15により生成される情報であり、目的タスクが正常に完了しなかったことを示す情報の他、ロボット5の識別情報、及び目的タスクが実行された日時を示す日時情報などを含んでいる。
【0175】
管理装置6は、アラート情報Igを収集するアラート収集センターとして機能する。管理装置6は、複数のサーバから構成されており、通信網3を介してロボットコントローラ1Bから供給されるアラート情報Igを記憶する。また、管理装置6は、ロボット5の状態を管理する管理者(例えば、コールセンターの従業員)が使用する端末8と有線若しくは無線により又は通信網を介してデータ通信が可能となっている。端末8は、管理装置6に記憶されたアラート情報Igを取得し、アラート情報Igに基づき、目的タスクが正常に完了しなかったことを管理者(コールセンターの従業員)に通知する。この場合、端末8は、目的タスクが正常に完了しなかったことを管理者に知らせるための音出力又は表示の少なくとも一方を行う。その後、管理者は、例えば、ロボット5が存在する現場の関係者に連絡を取り、目的タスクが正常に完了しなかった原因を取り除くように指示などを行う。
【0176】
第3実施形態によれば、ロボット制御システム100Bは、目的タスクが正常に完了しなかったことを、外部のコールセンターなどに好適に通知することができる。
【0177】
<第4実施形態>
図14は、第4実施形態における判定装置1Xの概略構成図を示す。判定装置1Xは、主に、命題判定手段18Xを有する。
【0178】
判定装置1Xは、第1実施形態におけるロボットコントローラ1、第2実施形態におけるロボットコントローラ1A、又は第3実施形態におけるロボットコントローラ1Bとすることができる。また、判定装置1Xは、第1実施形態におけるロボットコントローラ1を複数の装置により実現した場合の、命題判定部18に相当する処理を行う装置であってもよい。同様に、判定装置1Xは、第2実施形態におけるロボットコントローラ1A、又は第3実施形態におけるロボットコントローラ1Bを複数の装置により実現した場合の、命題判定部18又は命題判定部18Aに相当する処理を行う装置であってもよい。また、判定装置1Xは、複数の装置から構成されてもよい。
【0179】
命題判定手段18Xは、タスクに関するロボットの動作シーケンスが完了した場合、又は、タスクの開始から所定時間長が経過した場合、センサにより検出される、タスクの現在の状態を表す第1命題と、タスクの完了状態を表す第2命題とに基づき、タスクの完了判定を行う。
【0180】
ここで、「現在の状態」とは、判定装置1Xによる処理(判定処理)の時点での、センサにより検出されるタスクの状態を指す。ここで、命題判定手段18Xは、「タスクに関するロボットの動作シーケンスが完了した場合」においてタスクの完了判定を行う場合、第1実施形態(変形例を含む、以下同じ。)又は第3実施形態における命題判定部18とすることができる。また、「タスクの開始から所定時間長が経過した場合」においてタスクの完了判定を行う場合、第2実施形態又は第3実施形態における命題判定部18Aとすることができる。
【0181】
図15は、第4実施形態において、判定装置1Xが実行する処理手順を示すフローチャートの一例である。命題判定手段18Xは、タスクに関するロボットの動作シーケンスが完了した場合、又は、タスクの開始から所定時間長が経過した場合のいずれかに該当するか否か判定する(ステップS31)。そして、タスクに関するロボットの動作シーケンスが完了した場合、又は、タスクの開始から所定時間長が経過した場合(ステップS31;Yes)、命題判定手段18Xは、センサにより検出される、タスクの現在の状態を表す第1命題と、タスクの完了状態を表す第2命題とに基づき、タスクの完了判定を行う(ステップS32)。一方、タスクに関するロボットの動作シーケンスが完了していない場合、かつ、タスクの開始から所定時間長が経過していない場合(ステップS31;No)、命題判定手段18Xは、ステップS32の処理を実行しない。
【0182】
第4実施形態によれば、判定装置1Xは、タスクの状態を表す命題の比較により、タスクが完了したか否かの完了判定を的確に実行することができる。
【0183】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0184】
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0185】
[付記1]
タスクに関するロボットの動作シーケンスが完了した場合、又は、前記タスクの開始から所定時間長が経過した場合、
センサにより検出される、前記タスクの現在の状態を表す第1命題と、前記タスクの完了状態を表す第2命題とに基づき、前記タスクの完了判定を行う命題判定手段
を有する判定装置。
[付記2]
前記命題判定手段は、前記第1命題と、前記第2命題とが異なる場合、前記タスクが完了していないと判定する、付記1に記載の判定装置。
[付記3]
前記完了判定において、前記タスクが完了していないと判定された場合、前記タスクが完了していないことを示すアラート情報を出力する出力制御手段をさらに有する、付記1または2に記載の判定装置。
[付記4]
前記出力制御手段は、前記アラート情報を、前記ロボットの管理を行う管理装置へ送信する、付記3に記載の判定装置。
[付記5]
前記出力制御手段は、前記アラート情報の出力として、前記タスクが完了していないことを示す表示又は音出力を行う、付記3に記載の判定装置。
なお、「表示又は音出力を行う」とは、出力制御手段が自ら表示又は音出力を行う場合に限られず、他の装置に信号を送信することで表示又は音出力を実行させる場合も含む。
[付記6]
前記出力制御手段は、前記タスクが完了したと前記完了判定において判定された場合、前記タスクの正常終了を示す情報を出力する、付記3~5のいずれか一項に記載の判定装置。
[付記7]
前記タスクに基づき、前記動作シーケンスを生成する動作シーケンス生成手段をさらに有する、付記1~6のいずれか一項に記載の判定装置。
[付記8]
前記動作シーケンス生成手段は、前記タスクの開始から前記タスクの完了までに必要な前記動作シーケンスを一括して生成し、
前記命題判定手段は、当該動作シーケンスが完了した場合、前記第1命題と、前記第2命題とに基づき、前記タスクの完了判定を行う、付記7に記載の判定装置。
[付記9]
前記動作シーケンスに基づき、前記ロボットを制御するロボット制御手段をさらに有し、
前記命題判定手段は、前記ロボット制御手段から前記ロボットへの制御信号の出力がなくなった場合に、前記動作シーケンスが完了したと判定する、付記8に記載の判定装置。
[付記10]
前記動作シーケンス生成手段は、前記タスクが完了に至るまでの1または複数の中間状態に基づき、前記タスクの開始から前記タスクの完了までに必要な複数の動作シーケンスを逐次的に生成し、
前記命題判定手段は、前記タスクの開始から所定時間長が経過した場合、前記第1命題と、前記第2命題とに基づき、前記タスクの完了判定を行う、付記7に記載の判定装置。
[付記11]
前記動作シーケンス生成手段は、
前記タスクを時相論理に基づく論理式に変換する論理式変換手段と、
前記論理式から、前記タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、
前記タイムステップ論理式に基づき、前記ロボットに実行させるサブタスクのシーケンスを、前記動作シーケンスとして生成するサブタスクシーケンス生成手段と、
を有する、付記7~10のいずれか一項に記載の判定装置。
[付記12]
前記動作シーケンス生成手段は、
前記タスクに関する物体の抽象的な状態である抽象状態を、前記論理式において使用する命題として定める抽象状態設定手段をさらに有する、付記11に記載の判定装置。
[付記13]
前記所定時間長は、前記タスクの所要時間長以上の時間長に設定される、付記1~12のいずれか一項に記載の判定装置。
[付記14]
コンピュータにより、
タスクに関するロボットの動作シーケンスが完了した場合、又は、前記タスクの開始から所定時間長が経過した場合、
センサにより検出される、前記タスクの現在の状態を表す第1命題と、前記タスクの完了状態を表す第2命題とに基づき、前記タスクの完了判定を行う
判定方法。
[付記15]
タスクに関するロボットの動作シーケンスが完了した場合、又は、前記タスクの開始から所定時間長が経過した場合、
センサにより検出される、前記タスクの現在の状態を表す第1命題と、前記タスクの完了状態を表す第2命題とに基づき、前記タスクの完了判定を行う処理をコンピュータに実行させるプログラムが格納された記憶媒体。
【0186】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0187】
1、1A、1B ロボットコントローラ
1X 判定装置
2 タスク指示装置
3 通信網
4 記憶装置
5 ロボット
6 管理装置
7 計測装置
41 アプリケーション情報記憶部
100、100B ロボット制御システム