IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

<>
  • 特許-制御装置、制御方法及びプログラム 図1
  • 特許-制御装置、制御方法及びプログラム 図2
  • 特許-制御装置、制御方法及びプログラム 図3
  • 特許-制御装置、制御方法及びプログラム 図4
  • 特許-制御装置、制御方法及びプログラム 図5
  • 特許-制御装置、制御方法及びプログラム 図6
  • 特許-制御装置、制御方法及びプログラム 図7
  • 特許-制御装置、制御方法及びプログラム 図8
  • 特許-制御装置、制御方法及びプログラム 図9
  • 特許-制御装置、制御方法及びプログラム 図10
  • 特許-制御装置、制御方法及びプログラム 図11
  • 特許-制御装置、制御方法及びプログラム 図12
  • 特許-制御装置、制御方法及びプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】制御装置、制御方法及びプログラム
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240312BHJP
   B25J 13/06 20060101ALI20240312BHJP
   B25J 13/08 20060101ALI20240312BHJP
   G05B 19/409 20060101ALI20240312BHJP
【FI】
B25J9/22 A
B25J13/06
B25J13/08 A
G05B19/409 C
【請求項の数】 9
(21)【出願番号】P 2022502359
(86)(22)【出願日】2020-02-25
(86)【国際出願番号】 JP2020007428
(87)【国際公開番号】W WO2021171353
(87)【国際公開日】2021-09-02
【審査請求日】2022-08-12
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【弁理士】
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【弁理士】
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【弁理士】
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】小川 雅嗣
(72)【発明者】
【氏名】若山 永哉
(72)【発明者】
【氏名】伊藤 岳大
(72)【発明者】
【氏名】佐藤 峰斗
(72)【発明者】
【氏名】大山 博之
(72)【発明者】
【氏名】加美 伸治
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2011-108156(JP,A)
【文献】特開2018-190241(JP,A)
【文献】特開2017-047519(JP,A)
【文献】特開2012-022457(JP,A)
【文献】特開2011-020218(JP,A)
【文献】特開2012-066378(JP,A)
【文献】特開2013-031896(JP,A)
【文献】特開2013-184257(JP,A)
【文献】米国特許第08447863(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 3/00-13/08
G05B 19/409-19/4155
G06F 3/048- 7/00
(57)【特許請求の範囲】
【請求項1】
ロボットに実行させるタスクに関する表示情報であって、前記ロボットの作業空間を撮像した作業空間画像を含む表示情報を表示装置に送信する表示制御手段と、
前記ロボットの制御信号を含まず前記タスクの完了状態である、前記タスクの達成に関連する物体の位置ないし物体の目的地の少なくともいずれかを前記作業空間画像上において指定する入力情報であるタスク指定情報を前記表示制御手段が前記表示装置から受信した場合、前記タスク指定情報に基づき、前記ロボットが実行する動作シーケンスを生成する動作シーケンス生成手段と、
を有する制御装置。
【請求項2】
前記動作シーケンス生成手段は、前記タスクに関する物体の認識を支援する入力情報である認識支援情報を前記表示制御手段が前記表示装置から受信した場合、前記認識支援情報に基づき、前記物体を認識することで、前記動作シーケンスを生成する、請求項1に記載の制御装置。
【請求項3】
前記動作シーケンス生成手段は、前記作業空間画像を対象とする入力により生成された前記認識支援情報に基づき、前記物体を認識する、請求項2に記載の制御装置。
【請求項4】
前記表示制御手段は、前記認識支援情報と、前記作業空間画像とを、前記物体に関する推論を行う推論器の学習に用いる学習データとして取得する、請求項3に記載の制御装置。
【請求項5】
前記表示制御手段は、通信品質が保証されていない通信網を介し、前記表示装置と前記表示情報及び前記入力情報の通信を行う、請求項1~4のいずれか一項に記載の制御装置。
【請求項6】
前記表示制御手段は、前記動作シーケンスを生成する対象のロボットを選択する選択画面の表示情報を前記表示装置に送信後、前記選択画面において選択されたロボットのタスクを指定するタスク入力画面の表示情報を、前記表示装置に送信する、請求項1~5のいずれか一項に記載の制御装置。
【請求項7】
前記動作シーケンス生成手段は、
前記タスク指定情報により特定される目的タスクを時相論理に基づく論理式に変換する論理式変換手段と、
前記論理式から、前記目的タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、
前記タイムステップ論理式に基づき、前記ロボットに実行させるサブタスクのシーケンスを、前記動作シーケンスとして生成するサブタスクシーケンス生成手段と、
を有する、請求項1~6のいずれか一項に記載の制御装置。
【請求項8】
コンピュータにより、
ロボットに実行させるタスクに関する表示情報であって、前記ロボットの作業空間を撮像した作業空間画像を含む表示情報を表示装置に送信し、
前記ロボットの制御信号を含まず前記タスクの完了状態である、前記タスクの達成に関連する物体の位置ないし物体の目的地の少なくともいずれかを前記作業空間画像上において指定する入力情報であるタスク指定情報を前記表示制御手段が前記表示装置から受信した場合、前記タスク指定情報に基づき、前記ロボットが実行する動作シーケンスを生成する、
制御方法。
【請求項9】
ロボットに実行させるタスクに関する表示情報であって、前記ロボットの作業空間を撮像した作業空間画像を含む表示情報を表示装置に送信する表示制御手段と、
前記ロボットの制御信号を含まず前記タスクの完了状態である、前記タスクの達成に関連する物体の位置ないし物体の目的地の少なくともいずれかを前記作業空間画像上において指定する入力情報であるタスク指定情報を前記表示制御手段が前記表示装置から受信した場合、前記タスク指定情報に基づき、前記ロボットが実行する動作シーケンスを生成する動作シーケンス生成手段
としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットに作業させるタスクに関する処理を行う制御装置、制御方法及び記録媒体の技術分野に関する。
【背景技術】
【0002】
ロボットに作業させるタスクが与えられた場合に、当該タスクを実行するために必要なロボットの制御を行う制御手法が提案されている。例えば、特許文献1には、ハンドを有するロボットにより複数の物品を把持して容器に収容する場合に、ハンドが物品を把持する順序の組み合わせを決定し、組み合わせ毎に算出した指標に基づき、収容する物品の順序を決定するロボット制御装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-51684号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ロボットにタスクを実行させる制御入力を人為的に定める場合、指示を行う作業者にはロボットに関する深い知識が要求されると共に、ロボットの指示を行う装置とロボットとがリアルタイムにより通信可能な通信環境が必要となる。このような課題を勘案したロボットの制御について、特許文献1には何ら開示されていない。
【0005】
本発明の目的の1つは、上述した課題を鑑み、ロボットにタスクを好適に実行させることが可能な制御装置、制御方法及び記録媒体を提供することである。
【課題を解決するための手段】
【0006】
制御装置の一の態様は、制御装置は、ロボットに実行させるタスクに関する表示情報であって、前記ロボットの作業空間を撮像した作業空間画像を含む表示情報を表示装置に送信する表示制御手段と、前記ロボットの制御信号を含まず前記タスクの完了状態である、前記タスクの達成に関連する物体の位置ないし物体の目的地の少なくともいずれかを前記作業空間画像上において指定する入力情報であるタスク指定情報を前記表示制御手段が前記表示装置から受信した場合、前記タスク指定情報に基づき、前記ロボットが実行する動作シーケンスを生成する動作シーケンス生成手段と、を有する。
【0007】
制御方法の一の態様は、制御方法の一の態様は、コンピュータにより、ロボットに実行させるタスクに関する表示情報であって、前記ロボットの作業空間を撮像した作業空間画像を含む表示情報を表示装置に送信し、前記ロボットの制御信号を含まず前記タスクの完了状態である、前記タスクの達成に関連する物体の位置ないし物体の目的地の少なくともいずれかを前記作業空間画像上において指定する入力情報であるタスク指定情報を前記表示制御手段が前記表示装置から受信した場合、前記タスク指定情報に基づき、前記ロボットが実行する動作シーケンスを生成する、制御方法である。
【0008】
プログラムの一の態様は、ロボットに実行させるタスクに関する表示情報であって、前記ロボットの作業空間を撮像した作業空間画像を含む表示情報を表示装置に送信する表示制御手段と、前記ロボットの制御信号を含まず前記タスクの完了状態である、前記タスクの達成に関連する物体の位置ないし物体の目的地の少なくともいずれかを前記作業空間画像上において指定する入力情報であるタスク指定情報を前記表示制御手段が前記表示装置から受信した場合、前記タスク指定情報に基づき、前記ロボットが実行する動作シーケンスを生成する動作シーケンス生成手段としてコンピュータを機能させるプログラムである。
【発明の効果】
【0009】
本発明によれば、タスクを概略的に指定する入力により、ロボットにタスクを好適に実行させることができる。
【図面の簡単な説明】
【0010】
図1】第1実施形態におけるロボット制御システムの構成を示す。
図2】制御装置のハードウェア構成を示す。
図3】アプリケーション情報のデータ構造の一例を示す。
図4】制御装置の機能ブロックの一例である。
図5】タスク入力画面の第1表示例である。
図6】タスク入力画面の第2表示例である。
図7】タスク入力画面の第3表示例である。
図8】動作シーケンス生成部の機能ブロックの一例である。
図9】ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。
図10】第1実施形態において制御装置が実行するロボット制御処理の概要を示すフローチャートの一例である。
図11】変形例における選択画面の表示例である。
図12】第2実施形態における制御装置のブロック構成の一例である。
図13】第2実施形態において制御装置が実行するロボット制御処理の概要を示すフローチャートの一例である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、制御装置、制御方法及び記録媒体の実施形態について説明する。
【0012】
<第1実施形態>
(1)システム構成
図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、制御装置1と、タスク指示装置2と、記憶装置4と、ロボット5と、計測装置7と、を備える。
【0013】
制御装置1は、ロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)が指定された場合に、ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスに目的タスクを変換し、生成したシーケンスに基づきロボット5を制御する。以後では、ロボット5が受付可能な単位により目的タスクを分解したタスク(コマンド)を、「サブタスク」とも呼び、目的タスクを達成するためにロボット5が実行すべきサブタスクのシーケンスを「サブタスクシーケンス」とも呼ぶ。サブタスクシーケンスは、ロボット5の一連の動作を規定する動作シーケンスに相当する。
【0014】
制御装置1は、タスク指示装置2と通信網3を介してデータ通信を行う。ここで、通信網3は、通信品質が保証されていないインターネットなどの通信網が該当し、制御装置1とタスク指示装置2との間のデータ通信には、通信遅延が生じる可能性があるものとする。通信遅延とは、タスク指示装置2から発したロボット5を制御するための制御信号(トルク、速度、関節角度などのロボット5への直接的な制御入力を指示する信号を指す)ではロボット5が適切に動作しない状態を意味する。制御装置1は、タスク指示装置2から、目的タスクを指定する入力情報「S1」を、通信網3を介して受信する。また、制御装置1は、タスク指示装置2に対し、ロボット5に実行させるタスクに関する表示情報「S2」を、通信網3を介して送信する。
【0015】
また、制御装置1は、記憶装置4、ロボット5、及び計測装置7と、無線若しくは有線によりデータ通信を行う。例えば、制御装置1は、ロボット5の制御に関する制御信号「S3」をロボット5に送信する。また、制御装置1は、計測装置7から出力信号「S4」を受信する。なお、制御装置1と、記憶装置4、ロボット5、及び計測装置7とは、リアルタイム性を確保できるように、有線若しくは無線による直接通信、又は、帯域保証などの通信品質が保証されている通信網を介し、データ通信を行うと仮定する。
【0016】
タスク指示装置2は、目的タスクを指定する作業者による目的タスクに関する入力を受け付ける装置である。タスク指示装置2は、制御装置1から供給される表示情報S2に基づき所定の表示を行ったり、作業者の入力に基づき生成した入力情報S1を制御装置1へ供給したりする。タスク指示装置2は、入力部と表示部とを備えるタブレット端末であってもよく、据置型のパーソナルコンピュータであってもよい。
【0017】
記憶装置4は、アプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、目的タスクからサブタスクシーケンスを生成するために必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は、図3を参照しながら後述する。記憶装置4は、制御装置1に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記録媒体であってもよい。また、記憶装置4は、制御装置1と通信網を介してデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は、複数のサーバ装置から構成されてもよい。
【0018】
ロボット5は、制御装置1から供給される制御信号S3に基づき目的タスクに関する作業を行う。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよい。ロボット5は、ロボット5の状態を示す状態信号を制御装置1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5の制御部が生成したロボット5のサブタスクの進捗状態を示す信号であってもよい。
【0019】
計測装置7は、目的タスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。本実施形態では、計測装置7は、作業空間を撮像する少なくとも1台のカメラを含むものとする。計測装置7は、生成した出力信号S4を制御装置1に供給する。出力信号S4には、作業空間内を撮像した画像が少なくとも含まれる。計測装置7は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、計測装置7は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、計測装置7は、作業空間内の音を検出するセンサを含んでもよい。このように、計測装置7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
【0020】
なお、図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボット5は複数台存在してもよく、ロボットアームなどの夫々が独立して動作する制御対象物を複数有してもよい。これらの場合であっても、制御装置1は、目的タスクに基づき、ロボット5毎又は制御対象物毎に実行すべきサブタスクシーケンスを生成し、当該サブタスクシーケンスに基づく制御信号S3を、対象のロボット5に送信する。また、ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械(「他作業体」とも呼ぶ。)と協働作業を行うものであってもよい。また、計測装置7は、ロボット5の一部であってもよい。また、タスク指示装置2は、制御装置1と同一の装置として構成されてもよい。また、制御装置1は、複数の装置から構成されてもよい。この場合、制御装置1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、ロボット5には、制御装置1の少なくとも一部又は全ての機能が組み込まれていてもよい。
【0021】
(2)ハードウェア構成
図2(A)は、制御装置1のハードウェア構成を示す。制御装置1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
【0022】
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ11は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などのプロセッサである。
【0023】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)などの各種のメモリにより構成される。また、メモリ12には、制御装置1が所定の処理を実行するためのプログラムが記憶される。また、メモリ12は、作業メモリとして使用され、記憶装置4から取得した情報等を一時的に記憶する。なお、メモリ12は、記憶装置4として機能してもよい。同様に、記憶装置4は、制御装置1のメモリ12として機能してもよい。なお、制御装置1が実行するプログラムは、メモリ12以外の記録媒体に記憶されてもよい。
【0024】
インターフェース13は、制御装置1と外部装置とを電気的に接続するためのインターフェースである。例えば、インターフェース13は、制御装置1とタスク指示装置2とを接続するためのインターフェース、及び制御装置1と記憶装置4とを接続するためのインターフェースを含む。また、インターフェース13は、制御装置1とロボット5とを接続するためのインターフェース、及び制御装置1と計測装置7とを接続するためのインターフェースを含む。これらの接続は、有線接続であってもよく、無線接続であってもよい。例えば、制御装置1とこれらの外部装置とを接続するためのインターフェースは、プロセッサ11の制御に基づきこれらの外部装置とデータの送受信を有線又は無線により行うための通信インターフェースであってもよい。他の例では、制御装置1と外部装置とは、ケーブル等により接続されてもよい。この場合、インターフェース13は、外部装置とデータの授受を行うためのUSB(Universal Serial Bus)、SATA(Serial AT Attachment)などに準拠したインターフェースを含む。
【0025】
なお、制御装置1のハードウェア構成は、図2(A)に示す構成に限定されない。例えば、制御装置1は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。また、制御装置1は、タスク指示装置2又は記憶装置4の少なくとも一方を含んで構成されてもよい。
【0026】
図2(B)は、タスク指示装置2のハードウェア構成を示す。タスク指示装置2は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bとを含む。プロセッサ21、メモリ22及びインターフェース23は、データバス29を介して接続されている。また、インターフェース23には、入力部24aと表示部24bとが接続されている。
【0027】
プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、CPU、GPUなどのプロセッサである。プロセッサ21は、インターフェース23を介して入力部24aが生成した信号を受信することで、入力情報S1を生成し、インターフェース23を介して制御装置1に当該入力情報S1を送信する。また、プロセッサ21は、インターフェース23を介して制御装置1から受信した表示情報S2を、表示部24bにインターフェース23を介して供給する。
【0028】
メモリ22は、RAM、ROMなどの各種のメモリにより構成される。また、メモリ22には、タスク指示装置2が所定の処理を実行するためのプログラムが記憶される。また、メモリ22は、作業メモリとして使用される。また、メモリ22は、フラッシュメモリ、ハードディスクなどの不揮発性メモリを含んでもよい。
【0029】
インターフェース23は、タスク指示装置2と他の装置とを電気的に接続するためのインターフェースである。例えば、インターフェース23は、タスク指示装置2が他の装置と有線又は無線によりデータ通信を行うための通信インターフェースを含む。また、インターフェース23は、入力部24a及び表示部24bとプロセッサ21及びメモリ22とのインターフェース動作を行う。入力部24aは、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置などが該当する。表示部24bは、例えば、ディスプレイ、プロジェクタ等であり、プロセッサ21の制御に基づき表示情報S2に基づく情報の表示を行う。
【0030】
なお、タスク指示装置2のハードウェア構成は、図2(B)に示す構成に限定されない。例えば、入力部24a及び表示部24bは、タスク指示装置2と電気的に接続する別体の装置として構成されてもよい。また、タスク指示装置2は、音出力装置、カメラなどの種々の装置と接続してもよく、これらを内蔵してもよい。
【0031】
(3)アプリケーション情報
次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
【0032】
図3は、アプリケーション情報記憶部41に記憶されるアプリケーション情報のデータ構造の一例を示す。図3に示すように、アプリケーション情報記憶部41は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6とを含む。
【0033】
抽象状態指定情報I1は、サブタスクシーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、作業空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、目的タスクの種類毎に、定義する必要がある抽象状態を指定する。
【0034】
制約条件情報I2は、目的タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム)が接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、目的タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
【0035】
動作限界情報I3は、制御装置1により制御が行われるロボット5の動作限界に関する情報を示す。動作限界情報I3は、例えば、ロボット5の速度、加速度、又は角速度の上限を規定する情報である。なお、動作限界情報I3は、ロボット5の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
【0036】
サブタスク情報I4は、ロボット5が受付可能なサブタスクの情報を示す。例えば、目的タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット5のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定する。サブタスク情報I4は、目的タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。
【0037】
抽象モデル情報I5は、作業空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。例えば、抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、対象物をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。抽象モデル情報I5は、目的タスクの種類毎に適した抽象モデルに関する情報を有している。
【0038】
物体モデル情報I6は、計測装置7が生成した出力信号S4から認識すべき作業空間内の各物体の物体モデルに関する情報である。上述の各物体は、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の作業体などが該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、現在実行中の動作などを制御装置1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(Computer Aided Design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
【0039】
なお、アプリケーション情報記憶部41は、上述した情報の他、サブタスクシーケンスの生成処理及び表示情報S2の生成処理に関する種々の情報を記憶してもよい。
【0040】
(4)制御装置の処理概要
図4は、制御装置1の処理の概要を示す機能ブロックの一例である。制御装置1のプロセッサ11は、機能的には、表示制御部15と、動作シーケンス生成部16と、ロボット制御部17とを有する。なお、図4では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロックの図においても同様である。
【0041】
表示制御部15は、目的タスクに関する情報を作業者が指定する入力画面(「タスク入力画面」とも呼ぶ。)の表示情報S2を生成し、当該表示情報S2をタスク指示装置2へインターフェース13を介して送信する。例えば、表示制御部15は、出力信号S4に含まれる作業空間内を撮像した画像(「作業空間画像P」とも呼ぶ。)をタスク入力画面上に表示し、種々の操作に基づく入力を受け付ける。上述の操作の例は、タッチ操作、ドラッグアンドドロップ操作、ボタン操作、キーボード操作、及び音声入力操作等などを含む。
【0042】
そして、表示制御部15は、タスク入力画面での入力操作によりタスク指示装置2が生成した入力情報S1を、タスク指示装置2からインターフェース13を介して受信する。この場合、入力情報S1は、目的タスクを概略的に指定する情報(「タスク指定情報Ia」とも呼ぶ。)を含んでいる。タスク指定情報Iaは、ロボット5への概略命令に相当する情報であり、ロボット5の具体的な動作を規定する情報(例えば後述する制御入力の情報やサブタスクの情報)を含まない。また、表示情報S2は、タスク指定情報Iaに加えて、目的タスクに関する物体(物体内の特定の部位を含む)の認識を支援する情報(「認識支援情報Ib」とも呼ぶ。)をさらに含んでもよい。タスク指定情報Ia及び認識支援情報Ibについては後述する。そして、表示制御部15は、タスク指示装置2から供給される入力情報S1に基づくタスク指定情報Ia(及び認識支援情報Ib)を、動作シーケンス生成部16へ供給する。
【0043】
動作シーケンス生成部16は、表示制御部15から供給されるタスク指定情報Iaと、認識支援情報Ibと、出力信号S4と、記憶装置4が記憶するアプリケーション情報とに基づき、ロボット5に実行させるサブタスクシーケンス「Sr」を生成する。そして、動作シーケンス生成部16は、生成したサブタスクシーケンスSrをロボット制御部17に供給する。ここで、サブタスクシーケンスSrには、各サブタスクの実行順序及び実行タイミングを示す情報が含まれている。
【0044】
ロボット制御部17は、動作シーケンス生成部16から供給されたサブタスクシーケンスSrに基づき、サブタスクシーケンスSrを構成する各サブタスクを夫々定められた実行タイミング(タイムステップ)でロボット5が実行するための制御を行う。具体的には、ロボット制御部17は、制御信号S3をロボット5に送信することで、サブタスクシーケンスSrを実現するためのロボット5の関節の位置制御又はトルク制御などを実行する。また、ロボット制御部17は、サブタスクシーケンスSrに基づくロボット5の制御中に、新たなサブタスクシーケンスSrが動作シーケンス生成部16から供給された場合、新たに供給されたサブタスクシーケンスSrに基づき、ロボット5の動作制御を行う。
【0045】
なお、ロボット制御部17に相当する機能を、制御装置1に代えてロボット5が有してもよい。この場合、ロボット5は、動作シーケンス生成部16からサブタスクシーケンスSrを受信することで、サブタスクシーケンスSrを実現するための関節の位置制御又はトルク制御などを実行する。
【0046】
なお、図4において説明した表示制御部15、動作シーケンス生成部16及びロボット制御部17の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。より具体的には、各構成要素は、メモリ12又は記憶装置4に格納されたプログラムを、プロセッサ11が実行することによって実現され得る。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組み合わせ等により実現してもよい。また、これらの各構成要素は、例えばFPGA(field-programmable gate array)又はマイコン等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。このように、各構成要素は、プロセッサ以外のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。
【0047】
(5)表示制御部の詳細
表示制御部15の処理の詳細について説明する。以後では、表示制御部15の制御に基づきタスク指示装置2が表示するタスク入力画面の表示例(第1表示例~第3表示例)について、図5図7を参照して説明する。
【0048】
図5は、タスク入力画面の第1表示例を示す。表示制御部15は、表示情報S2を生成し、当該表示情報S2をタスク指示装置2に送信することで、タスク指示装置2に図5に示すタスク入力画面を表示するよう制御している。図5に示すタスク入力画面は、主に、タスク種類指定欄25と、作業空間画像表示欄26と、各種ボタン28(28a、28b)とを有する。
【0049】
表示制御部15は、タスク種類指定欄25において、目的タスクの種類を指定する入力を受け付ける。ここでは、一例として、タスク種類指定欄25はプルダウンメニュー形式の入力欄であり、表示制御部15は、受付可能な目的タスクの種類の候補を、タスク種類指定欄25において選択可能に一覧表示する。ここでは、タスク種類指定欄25には、ピックアンドプレイスが目的タスクの種類として指定されている。
【0050】
また、表示制御部15は、作業空間画像表示欄26において、計測装置7が作業空間内を撮像した作業空間画像Pを表示し、タスク種類指定欄25において指定された目的タスクの実行に必要な指定を受け付ける。この場合、表示制御部15は、抽象状態指定情報I1を参照することで、対象の目的タスクにおいて抽象状態を指定する必要がある物体を特定する。そして、表示制御部15は、特定した各物体の位置を指定する入力を受け付ける。
【0051】
図5の例では、表示制御部15は、タスク種類指定欄25で選択されたピックアンドプレイスに対応する抽象状態指定情報I1を参照し、ロボット5により作業対象となる物(「対象物」とも呼ぶ。)と、対象物の目的地とを定める必要があると認識する。よって、表示制御部15は、作業空間画像表示欄26上で対象物と目的地とを夫々指定する入力を受け付ける。ここでは、表示制御部15は、対象物を丸印で囲んだ後に対象物決定ボタン28aを選択すべき旨、及び目的地を丸印で囲んだ後に目的地決定ボタン28bを選択すべき旨の案内文をタスク入力画面上に表示する。そして、表示制御部15は、入力情報S1に基づきユーザが作業空間画像表示欄26上をなぞる操作を検知した場合、なぞられた位置に沿ったマークを作業空間画像表示欄26に重畳表示する。ここでは一例として、表示制御部15は、対象物決定ボタン28aが選択される前の対象物に対するマーク27a~27dを実線により表示し、対象物決定ボタン28aが選択された後の目的地に対するマーク27eを破線により表示している。
【0052】
そして、表示制御部15は、対象物決定ボタン28aが選択されたことを検知した場合、ユーザが描いたマーク27a~27dの位置情報を、対象物の位置を特定する情報として認識する。また、表示制御部15は、さらに目的地決定ボタン28bが選択されたことを検知した場合、対象物決定ボタン28aの選択後にユーザが描いたマーク27eの位置情報を、目的地を特定する情報として認識する。そして、表示制御部15は、これらの対象物及び目的地を特定する情報(ここでは作業空間画像P上での各マークの位置情報)を、タスク指定情報Iaとして動作シーケンス生成部16に供給する。
【0053】
なお、表示制御部15は、対象物及び目的地を丸印で囲む入力を受け付ける代わりに、タッチ操作又はクリック操作により対象物及び目的地を構成する一部の画素を夫々指定する入力を受け付けてもよい。この場合、表示制御部15は、指定された各画素の位置情報を、対象物及び目的地を夫々特定する情報とみなし、タスク指定情報Iaとして動作シーケンス生成部16に供給する。
【0054】
なお、タスク種類指定欄25において指定された目的タスクの種類に応じて、作業空間画像表示欄26において指定すべき内容(即ち抽象状態を指定する必要がある物体)が異なる。よって、表示制御部15は、タスク種類指定欄25において指定された目的タスクの種類に応じてタスク入力画面のレイアウトを決定する。例えば、製品の組立てを目的タスクとする場合には、表示制御部15は、組み立てる部品と工具とを、少なくとも作業空間画像表示欄26上で指定する入力を受け付ける。この場合、表示制御部15は、タスク入力画面上での案内文とボタン28の個数及び表記とを、タスク入力画面上で指定させる内容に応じて決定する。
【0055】
このように、タスク入力画面の第1表示例によれば、表示制御部15は、目的タスクの種類の指定及び目的タスクに関連する物体の指定に関するユーザ入力を好適に受け付け、サブタスクシーケンスSrの生成に必要なタスク指定情報Iaを好適に取得することができる。
【0056】
図6は、タスク入力画面の第2表示例を示す。第2表示例では、対象物及び目的地の個々の位置の指定を受け付ける代わりに、一連のドラッグアンドドロップ操作により対象物及び目的地の位置の指定を受け付ける点において、第1表示例と異なる。
【0057】
第2表示例では、表示制御部15は、作業空間画像表示欄26において、計測装置7が作業空間内を撮像した作業空間画像Pを表示し、タスク種類指定欄25において指定された目的タスクの実行に必要な指定を受け付ける。この場合、表示制御部15は、ピックアンドプレイスがタスク種類指定欄25において選択されたことから、抽象状態指定情報I1を参照し、対象物と、対象物の目的地とを定める必要があると判定する。そして、表示制御部15は、作業空間画像表示欄26上でのドラッグアンドドロップ操作を検知した場合、ドラッグアンドドロップ操作の始点位置に存在する物体を対象物とみなし、当該操作の終点位置を目的地とみなす。
【0058】
図6の例では、ドラッグアンドドロップ操作によるドラッグの軌跡が破線30f~30hにより示され、ドラッグアンドドロップ操作により移動した対象物の位置が破線枠27f~27hにより示されている。なお、表示制御部15は、ドラッグアンドドロップ操作の始点位置を含む物体の領域を、対象物の領域として抽出することで、破線枠27f~27hを作業空間画像表示欄26上に実際に表示してもよい。そして、表示制御部15は、タスク指定完了ボタン28cが選択されたことを検知した場合、作業空間画像P上でのドラッグアンドドロップ操作の始点位置及び終点位置を示す入力情報S1を、対象物及びタスクの位置を示すタスク指定情報Iaとして取得する。
【0059】
このように、タスク入力画面の第2表示例によっても、表示制御部15は、第1表示例と同様、目的タスクの種類の指定及び必要な物体の指定に関するユーザ入力を受け付け、サブタスクシーケンスSrの生成に必要なタスク指定情報Iaを好適に取得することができる。
【0060】
図7は、タスク入力画面の第3表示例を示す。第3表示例では、表示制御部15は、認識支援情報Ibに相当する入力情報S1を取得する点において、第1及び第2表示例と異なる。
【0061】
第3表示例では、表示制御部15は、第1表示例及び第2表示例のタスク種類指定欄25よりも詳細な目的タスクの内容を指定するタスク指定欄25Aを、タスク入力画面上に表示する。具体的には、表示制御部15は、ピックアンドプレイスにおいて、対象物と目的地との組合せをプルダウンメニュー形式により選択可能なタスク指定欄25Aを、タスク入力画面上に設けている。第3表示例では、「○×部品」を対象物とし、「領域G」を目的地とする項目がタスク指定欄25Aにおいて選択されている。「○×部品」及び「領域G」に関する情報は、物体モデル情報I6として予めアプリケーション情報に登録されている。そして、表示制御部15は、タスク指定欄25Aで選択結果に基づき、「○×部品」を対象物とし、「領域G」を目的地とすることを指定するタスク指定情報Iaを、動作シーケンス生成部16に供給する。
【0062】
また、表示制御部15は、コンベア付近に配置されたロボット5が撮像された作業空間画像Pを表示した作業空間画像表示欄26をタスク入力画面上に設けている。ここで、コンベアは稼働中であり、コンベアにより物が所定速度により右方向に搬送されている。そして、表示制御部15は、ロボット5がピックアップすべき対象物「○×部品」に該当するコンベア上の物体を丸印で囲むことを促す案内文を、タスク入力画面上に表示している。
【0063】
そして、表示制御部15は、作業空間画像表示欄26上において丸印であるマーク27kが描かれたことを検知した場合、マーク27kで囲まれた領域が「○×部品」を含む領域であることを認識する。よって、表示制御部15は、作業空間画像P上でのマーク27kの位置情報を、認識支援情報Ibとして動作シーケンス生成部16に供給する。その後、動作シーケンス生成部16は、マーク27kに囲まれた領域内に存在する物体を、対象物である「○×部品」として特定し、後述する抽象状態の設定などを行う。この場合、認識支援情報Ibは、動作シーケンス生成部16の対象物の認識処理を好適に支援する情報となる。なお、動作シーケンス生成部16は、認識支援情報Ibの有無に関わらず、作業空間画像Pでの対象物「○×部品」の検出を行い、「○×部品」と推定される物体を検出した場合、当該物体を「○×部品」とみなして抽象状態の設定などを行う。
【0064】
また、コンベアの稼動により新たな対象物「○×部品」が次々にロボット5の作業範囲内に搬送される。よって、表示制御部15は、作業空間画像表示欄26に計測装置7が生成した最新の作業空間画像Pを表示する。タスク指示装置2のユーザは、作業空間画像表示欄26において被写体となった対象物に対して丸印を順次付す入力を行う。この場合、表示制御部15は、新たに生成された入力情報S1に基づくタスク指定情報Ia及び認識支援情報Ibを動作シーケンス生成部16に供給する。動作シーケンス生成部16は、作業空間画像表示欄26において新たに被写体となった対象物を領域Gにロボット5が運ぶためのサブタスクシーケンスSrの生成を行う。
【0065】
このように、タスク入力画面の第3表示例によれば、表示制御部15は、目的タスクを指定するユーザ入力に加えて、目的タスクに関連する物体の認識を支援するユーザ入力を受け付ける。これにより、動作シーケンス生成部16は、サブタスクシーケンスSrの生成に必要なタスク指定情報Iaを好適に取得すると共に、目的タスクに関連する物体の認識を高精度に行うための認識支援情報Ibを、好適に取得することができる。
【0066】
なお、タスク指示装置2と制御装置1とは、通信品質が保証されていない通信網3を介して情報の授受を行うため、マーク27kが入力された時点と、マーク27kに関する認識支援情報Ibを動作シーケンス生成部16が取得する時点とで時間差が生じる可能性がある。この場合、上記時間差に相当する分だけコンベアにより対象物が移動することにより、マーク27kに関する認識支援情報Ibを動作シーケンス生成部16が取得する時点での対象物「○×部品」の位置とマーク27kの位置とがずれる可能性がある。
【0067】
以上を勘案し、動作シーケンス生成部16は、通信網3による通信遅延を考慮して認識支援情報Ibを補正してもよい。例えば、動作シーケンス生成部16は、時系列で得られる作業空間画像Pに基づきコンベア上の物体の移動方向及び移動速度(所謂オプティカルフロー)を算出し、その算出結果と、想定される通信遅延時間とに基づき、マーク27kの位置を補正する。これにより、動作シーケンス生成部16は、通信遅延が生じる環境下においても、認識支援情報Ibに基づき対象物を的確に認識することができる。
【0068】
なお、第1表示例及び第2表示例において、対象物及び目的地を特定するための情報(例えば、対象物とする物体の種類の情報及び目的地の位置情報)が予め物体モデル情報I6等としてアプリケーション情報に含まれていてもよい。この場合、表示制御部15は、作業空間画像表示欄26上で指定された対象物及び目的地の位置情報を、認識支援情報Ibとして動作シーケンス生成部16に供給する。この場合であっても、動作シーケンス生成部16は、認識支援情報Ibに基づき、対象物及び目的地を検出する範囲を好適に限定し、対象物及び目的地を高精度に認識することができる。
【0069】
また、認識支援情報Ibは、ロボット5が把持すべき対象物の部位を指定する情報であってもよい。この場合、表示制御部15は、タスク入力画面上において、ロボット5が把持すべき対象物の部位を指定するマークの入力を受け付け、当該マークの位置情報を認識支援情報Ibとして動作シーケンス生成部16に供給する。
【0070】
(6)動作シーケンス生成部の詳細
次に、動作シーケンス生成部16の詳細な処理について説明する。
【0071】
(6-1)機能ブロック
図8は、動作シーケンス生成部16の機能的な構成を示す機能ブロックの一例である。動作シーケンス生成部16は、機能的には、抽象状態設定部31と、目標論理式生成部32と、タイムステップ論理式生成部33と、抽象モデル生成部34と、制御入力生成部35と、サブタスクシーケンス生成部36と、を有する。
【0072】
抽象状態設定部31は、計測装置7から供給される出力信号S4と、表示制御部15から供給されるタスク指定情報Iaと、認識支援情報Ibと、抽象状態指定情報I1と、物体モデル情報I6と、に基づき、作業空間内の抽象状態を設定する。この場合、抽象状態設定部31は、目的タスクを実行する際に考慮する必要がある作業空間内の物体を認識し、当該物体に関する認識結果Imを生成する。そして、抽象状態設定部31は、認識結果Imに基づいて、目的タスクを実行する際に考慮する必要がある各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部31は、設定した抽象状態を示す情報(「抽象状態設定情報IS」とも呼ぶ。)を、目標論理式生成部32に供給する。
【0073】
目標論理式生成部32は、抽象状態設定情報ISに基づき、タスク指定情報Iaが示す目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部32は、生成した目標論理式Ltagを、タイムステップ論理式生成部33に供給する。また、目標論理式生成部32は、目的タスクに関する入力を受け付ける画面を表示するための表示情報S2を生成し、当該表示情報S2をタスク指示装置2に供給する。
【0074】
タイムステップ論理式生成部33は、目標論理式生成部32から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部33は、生成したタイムステップ論理式Ltsを、制御入力生成部35に供給する。
【0075】
抽象モデル生成部34は、アプリケーション情報記憶部41が記憶する抽象モデル情報I5と、抽象状態設定部31から供給される認識結果Imとに基づき、作業空間における現実のダイナミクスを抽象化した抽象モデル「Σ」を生成する。この場合、抽象モデル生成部34は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルΣを生成する。抽象モデルΣの生成方法については後述する。抽象モデル生成部34は、生成した抽象モデルΣを、制御入力生成部35へ供給する。
【0076】
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとを満たし、評価関数(たとえば、ロボットによって消費されるエネルギー量を表す関数)を最適化するタイムステップ毎のロボット5への制御入力を決定する。そして、制御入力生成部35は、ロボット5へのタイムステップ毎の制御入力を示す情報(「制御入力情報Ic」とも呼ぶ。)を、サブタスクシーケンス生成部36へ供給する。
【0077】
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスSrを生成し、サブタスクシーケンスSrを動作シーケンス生成部16へ供給する。
【0078】
(6-2)抽象状態設定部
まず、抽象状態設定部31は、物体モデル情報I6を参照し、作業空間の環境を認識する技術(画像処理技術、画像認識技術、音声認識技術、RFID(Radio Frequency Identifier)を用いる技術等)により出力信号S4を解析することで、認識結果Imを生成する。このとき、抽象状態設定部31は、認識支援情報Ibが動作シーケンス生成部16から供給された場合、認識支援情報Ibに基づき認識すべき物体の存在範囲を限定することで、物体を高精度に認識する。認識結果Imには、作業空間内の物体の種類、位置、及び姿勢などの情報が含まれている。また、作業空間内の物体は、例えば、ロボット5、ロボット5が取り扱う工具又は部品などの対象物、障害物及び他作業体などである。
【0079】
次に、抽象状態設定部31は、認識結果Imと、アプリケーション情報記憶部41から取得した抽象状態指定情報I1とに基づき、作業空間内の抽象状態を設定する。この場合、まず、抽象状態設定部31は、抽象状態指定情報I1を参照し、作業空間内において設定すべき抽象状態を認識する。なお、作業空間内において設定すべき抽象状態は、目的タスクの種類によって異なる。よって、目的タスクの種類毎に設定すべき抽象状態が抽象状態指定情報I1に規定されている場合には、抽象状態設定部31は、タスク指定情報Iaが示す目的タスクに対応する抽象状態指定情報I1を参照し、設定すべき抽象状態を認識する。
【0080】
図9は、ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。図9に示す作業空間には、2つのロボットアーム52a、52bと、4つの対象物61(61a~61d)と、障害物62と、他作業体ハンド81(81a、81b)を有する他作業体8と、対象物61の目的地である領域Gとが存在している。
【0081】
この場合、まず、抽象状態設定部31は、対象物61の状態、障害物62の存在範囲、他作業体8の状態、領域Gの存在範囲等を認識する。
【0082】
ここでは、抽象状態設定部31は、対象物61a~61dの各々の中心の位置ベクトル「x」~「x」を、対象物61a~61dの位置として認識する。また、抽象状態設定部31は、対象物を把持するロボットハンド53aの位置ベクトル「xr1」と、ロボットハンド53bの位置ベクトル「xr2」とを、ロボットアーム52aとロボットアーム52bの位置として認識する。
【0083】
また、抽象状態設定部31は、他作業体8の一方の手である他作業体ハンド81aの位置ベクトル「xh1」と、他作業体8の他方の手である他作業体ハンド81bの位置ベクトル「xh2」とを、他作業体8が物を掴む、離す、動かすなどの各種動作が行われる特徴点の位置として認識する。なお、抽象状態設定部31は、他作業体ハンド81a及び他作業体ハンド81bを夫々異なる他作業体とみなしてもよい。この場合、抽象状態設定部31は、他作業体ハンド81a及び他作業体ハンド81bの各位置を、各他作業体の位置として認識する。
【0084】
同様に、抽象状態設定部31は、対象物61a~61dの姿勢(図9の例では対象物が球状のため不要)、障害物62の存在範囲、領域Gの存在範囲等を認識する。なお、抽象状態設定部31は、例えば、障害物62を直方体とみなし、領域Gを矩形とみなす場合には、障害物62及び領域Gの各頂点の位置ベクトルを認識する。
【0085】
また、抽象状態設定部31は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部31は、作業空間内に存在する物体に関する認識結果Im(例えば物体の種類毎の個数)と、抽象状態指定情報I1とに基づき、抽象状態を示す命題を定める。
【0086】
図9の例では、抽象状態設定部31は、認識結果Imにより特定される対象物61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部31は、対象物「i」(i=1~4)が最終的に載置されるべき目標地点である領域G内に存在するという命題「g」を定義する。また、抽象状態設定部31は、障害物62に対して識別ラベル「O」を付し、対象物iが障害物Oに干渉しているという命題「o」を定義する。さらに、抽象状態設定部31は、ロボットアーム52同士が干渉するという命題「h」を定義する。同様に、抽象状態設定部31は、ロボットアーム52と他作業体ハンド81a、81bとが干渉するという命題などを定義する。
【0087】
このように、抽象状態設定部31は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題(上述の例ではg、o、h)を、対象物61の数、ロボットアーム52の数、障害物62の数、他作業体8の数等に応じてそれぞれ定義する。そして、抽象状態設定部31は、抽象状態を表す命題を示す情報を、抽象状態設定情報ISとして目標論理式生成部32に供給する。
【0088】
(6-3)目標論理式生成部
まず、目標論理式生成部32は、入力情報S1により指定された目的タスクを、時相論理を用いた論理式に変換する。入力信号S1は、自然言語を用いて表されていてもよい。なお、自然言語で表されたタスクを論理式に変換する方法は、種々の技術が存在する。例えば、図9の例において、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが与えられたとする。この場合、目標論理式生成部32は、目的タスクを線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部31により定義された命題「g」と用いて、論理式「◇g」を生成する。なお、目標論理式生成部32は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「○」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
【0089】
次に、目標論理式生成部32は、制約条件情報I2が示す制約条件を、目的タスクを示す論理式に付加することで、目標論理式Ltagを生成する。
【0090】
例えば、図9に示すピックアンドプレイスに対応する制約条件として、「ロボットアーム52同士が常に干渉しない」、「対象物iは障害物Oに常に干渉しない」の2つが制約条件情報I2に含まれていた場合、目標論理式生成部32は、これらの制約条件を論理式に変換する。具体的には、目標論理式生成部32は、図9の説明において抽象状態設定部31により定義された命題「o」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
□¬h
□¬o
【0091】
よって、この場合、目標論理式生成部32は、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクに対応する論理式「◇g」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
(◇g)∧(□¬h)∧(∧□¬o
【0092】
なお、実際には、ピックアンドプレイスに対応する制約条件は、上述した2つに限られず、「ロボットアーム52が障害物Oに干渉しない」、「複数のロボットアーム52が同じ対象物を掴まない」、「対象物同士が接触しない」、「ロボットアーム52が他作業体ハンド81a、81bに干渉しない」などの制約条件が存在する。このような制約条件についても同様に、制約条件情報I2に記憶され、目標論理式Ltagに反映される。
【0093】
(6-4)目標論理式生成部
タイムステップ論理式生成部33は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。この組み合わせは、通常複数存在するため、タイムステップ論理式生成部33は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット5に命令する動作のシーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。
【0094】
ここで、図9の説明において例示した「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが設定された場合のタイムステップ論理式生成部33の処理の具体例について説明する。
【0095】
この場合、タイムステップ論理式生成部33は、目標論理式Ltagとして、「(◇g)∧(□¬h)∧(∧□¬o)」が目標論理式生成部32から供給される。この場合、タイムステップ論理式生成部33は、命題「g」をタイムステップの概念を含むように拡張した命題「gi,k」を用いる。ここで、命題「gi,k」は、「タイムステップkで対象物iが領域Gに存在する」という命題である。ここで、目標タイムステップ数を「3」とした場合、目標論理式Ltagは、以下のように書き換えられる。
(◇g2,3)∧(∧k=1,2,3□¬h)∧(∧i,k=1,2,3□¬o
【0096】
また、◇g2,3は、以下の式に示すように書き換えることが可能である。
【0097】
【数1】
【0098】
このとき、上述した目標論理式Ltagは、以下に示す4つの候補「φ」~「φ」の論理和(φ∨φ∨φ∨φ)により表される。
【0099】
【数2】
【0100】
よって、タイムステップ論理式生成部33は、4つの候補φ~φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ~φの少なくともいずれかが真となる場合に真となる。
【0101】
次に、目標タイムステップ数の設定方法について補足説明する。
【0102】
タイムステップ論理式生成部33は、例えば、タスク指示装置2から供給される入力情報S1により指定された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部33は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部33は、目的タスクの種類毎に適した目標タイムステップ数を対応付けた情報を予めメモリ12又は記憶装置4に記憶しておき、当該情報を参照することで、実行すべき目的タスクの種類に応じた目標タイムステップ数を決定する。
【0103】
好適には、タイムステップ論理式生成部33は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部33は、制御入力生成部35が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部33は、設定した目標タイムステップ数により制御入力生成部35が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
【0104】
このとき、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を、ユーザが見込む目的タスクの作業時間に相当するタイムステップ数よりも小さい値に設定するとよい。これにより、タイムステップ論理式生成部33は、不必要に大きな目標タイムステップ数を設定することを好適に抑制する。
【0105】
(6-5)抽象モデル生成部
抽象モデル生成部34は、抽象モデル情報I5と、認識結果Imとに基づき、抽象モデルΣを生成する。ここで、抽象モデル情報I5には、目的タスクの種類毎に、抽象モデルΣの生成に必要な情報が記録されている。例えば、目的タスクがピックアンドプレイスの場合には、対象物の位置や数、対象物を置く領域の位置、ロボット5の台数(又はロボットアーム52の数)等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。そして、抽象モデル生成部34は、抽象モデル情報I5に記録された、ロボット5のダイナミクスを含む汎用的な形式の抽象モデルに対し、認識結果Imを反映することで、抽象モデルΣを生成する。これにより、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスとが抽象的に表されたモデルとなる。作業空間内の物体の状態は、ピックアンドプレイスの場合には、対象物の位置及び数、対象物を置く領域の位置、ロボット5の台数等を示す。なお、他作業体が存在する場合、他作業体の抽象化されたダイナミクスに関する情報が抽象モデル情報I5に含まれてもよい。この場合、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスと、他作業体のダイナミクスとが抽象的に表されたモデルとなる。
【0106】
ここで、ロボット5による目的タスクの作業時においては、作業空間内のダイナミクスが頻繁に切り替わる。例えば、ピックアンドプレイスでは、ロボットアーム52が対象物iを掴んでいる場合には、当該対象物iを動かすことができるが、ロボットアーム52が対象物iを掴んでない場合には、当該対象物iを動かすことができない。
【0107】
以上を勘案し、本実施形態においては、ピックアンドプレイスの場合、対象物iを掴むという動作を論理変数「δ」により抽象表現する。この場合、例えば、抽象モデル生成部34は、図9に示す作業空間に対して設定すべき抽象モデルΣを、以下の式(1)により定めることができる。
【0108】
【数3】
【0109】
ここで、「u」は、ロボットハンドj(「j=1」はロボットハンド53a、「j=2」はロボットハンド53b)を制御するための制御入力を示し、「I」は単位行列を示し、「0」は零行例を示す。「A」は、他作業体8の他作業体ハンド81のダイナミクスを表すドリフト項である。なお、制御入力は、ここでは、一例として速度を想定しているが、加速度であってもよい。また、「δj,i」は、ロボットハンドjが対象物iを掴んでいる場合に「1」であり、その他の場合に「0」である論理変数である。また、「xr1」、「xr2」は、ロボットハンドj(j=1、2)の位置ベクトル、「x」~「x」は、対象物i(i=1~4)の位置ベクトル、「xh1」、「xh2」は、他作業体ハンド81の位置ベクトルを示す。また、「h(x)」は、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合に「h(x)≧0」となる変数であり、論理変数δとの間で以下の関係を満たす。
δ=1 ⇔ h(x)≧0
この式では、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合には、ロボットハンドが対象物を掴んでいるとみなし、論理変数δを1に設定している。
【0110】
また、「A」は、他作業体8の他作業体ハンド81のダイナミクスを表すドリフト項であり、以下の式(2)又は式(3)により定めることができる。
【0111】
【数4】
【0112】
【数5】
【0113】
ここで、式(2)における「Δt」は、タイムステップ幅を示し、「∂xh1/∂t」及び「∂xh2/∂t」は、タイムステップについての他作業体ハンド81の偏微分を示す。また、式(3)における「Δxh1」及び「Δxh1」は、1タイムステップあたりの他作業体ハンド81の位置の変位を示す。
【0114】
ここで、式(1)は、タイムステップkでの物体の状態とタイムステップk+1での物体の状態との関係を示した差分方程式である。そして、上記の式(1)では、把持の状態が離散値である論理変数により表わされ、物体の移動は連続値により表わされているため、式(1)はハイブリッドシステムを示している。
【0115】
式(1)では、ロボット5全体及び他作業体8全体の詳細なダイナミクスではなく、対象物を実際に把持するロボット5の手先であるロボットハンドのダイナミクス及び他作業体ハンド81のダイナミクスのみを考慮している。これにより、制御入力生成部35により最適化処理の計算量を好適に削減することができる。
【0116】
また、抽象モデル情報I5には、ダイナミクスが切り替わる動作(ピックアンドプレイスの場合には対象物iを掴むという動作)に対応する論理変数、及び、認識結果Imから式(1)の差分方程式を導出するための情報が記録されている。よって、抽象モデル生成部34は、対象物の位置や数、対象物を置く領域(図9では領域G)、ロボット5の台数等が変動する場合であっても、抽象モデル情報I5と認識結果Imとに基づき、対象の作業空間の環境に即した抽象モデルΣを決定することができる。
【0117】
なお、抽象モデル生成部34は、式(1)に示されるモデルに代えて、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
【0118】
(6-6)制御入力生成部
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとに基づき、最適となるタイムステップ毎のロボット5に対するタイムステップ毎の制御入力を決定する。この場合、制御入力生成部35は、目的タスクに対する評価関数を定義し、抽象モデルΣ及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。評価関数は、例えば、目的タスクの種類毎に予め定められ、メモリ12又は記憶装置4に記憶されている。
【0119】
例えば、ピックアンドプレイスを目的タスクとした場合、制御入力生成部35は、運ぶ対象となる対象物と当該対象物を運ぶ目標地点との距離「d」と制御入力「u」とが最小となる(即ちロボット5が費やすエネルギーを最小化する)ように評価関数を定める。上述の距離dは、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクの場合には、対象物(i=2)と領域Gとのタイムステップkでの距離に相当する。
【0120】
この場合、制御入力生成部35は、全タイムステップにおける距離dのノルムの2乗と制御入力uのノルムの2乗との和を評価関数として定める。そして、制御入力生成部35は、抽象モデルΣ及びタイムステップ論理式Lts(即ち候補φの論理和)を制約条件とする以下の式(4)に示す制約付き混合整数最適化問題を解く。
【0121】
【数6】
【0122】
ここで、「T」は、最適化の対象となるタイムステップ数であり、目標タイムステップ数であってもよく、後述するように、目標タイムステップ数よりも小さい所定数であってもよい。この場合、好適には、制御入力生成部35は、論理変数を連続値に近似する(連続緩和問題とする)。これにより、制御入力生成部35は、計算量を好適に低減することができる。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。
【0123】
また、制御入力生成部35は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部35は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力uを決定する。
【0124】
好適には、制御入力生成部35は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、使用すべき制御入力uを決定してもよい。この場合、制御入力生成部35は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、作業空間6におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット5が対象物を掴む、ロボット5が運ぶべき複数の対象物のうちの1つの対象物を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、目的タスクの種類毎に予め定められており、目的タスクの種類毎にイベントを特定する情報が記憶装置4に記憶されている。
【0125】
(6-7)サブタスクシーケンス生成部
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスSrを生成する。この場合、サブタスクシーケンス生成部36は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスクを認識し、制御入力情報Icが示すタイムステップ毎の制御入力をサブタスクに変換する。
【0126】
例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット5が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット5の状態、及び当該関数実行前の把持対象の対象物の状態、論理変数δをそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数δが「1」のときに掴む動作を行うこと表し、論理変数δが「0」のときに放す動作を行うこと表す。この場合、サブタスクシーケンス生成部36は、関数「Move」を、制御入力情報Icが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icが示すタイムステップ毎の論理変数δの遷移に基づき決定する。
【0127】
そして、サブタスクシーケンス生成部36は、関数「Move」と関数「Grasp」とにより構成されるサブタスクシーケンスSrを生成し、当該サブタスクシーケンスSrを動作シーケンス生成部16に供給する。例えば、目的タスクが「最終的に対象物(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に載置する。
【0128】
(7)処理フロー
図10は、第1実施形態において制御装置1が実行するロボット制御処理の概要を示すフローチャートの一例である。
【0129】
まず、制御装置1の表示制御部15は、計測装置7から供給される出力信号S4に含まれる作業空間画像Pに基づき、タスク入力画面をタスク指示装置2に表示させる(ステップS11)。この場合、表示制御部15は、インターフェース13を介してタスク指示装置2にタスク入力画面を表示するための表示情報S2を送信し、タスク指示装置2は表示情報S2に基づきタスク入力画面を表示する。
【0130】
次に、表示制御部15は、目的タスクを指定する入力があったか否か判定する(ステップS12)。この場合、表示制御部15は、タスク入力画面を表示中のタスク指示装置2から、目的タスクの指定に関する入力情報S1を受信したか否か判定する。そして、表示制御部15は、目的タスクを指定する入力があったと判定した場合(ステップS12;Yes)、当該入力に関する入力情報S1をタスク指定情報Iaとして取得する(ステップS13)。一方、表示制御部15は、目的タスクを指定する入力がない場合(ステップS12;No)、引き続きステップS11においてタスク入力画面をタスク指示装置2に表示させる。
【0131】
次に、表示制御部15は、作業空間における物体の認識を補助するための入力があったか否か判定する(ステップS14)。この場合、表示制御部15は、タスク入力画面を表示中のタスク指示装置2から、作業空間における物体の認識を補助する入力情報S1を受信したか否か判定する。そして、表示制御部15は、作業空間における物体の認識を補助する入力があったと判定した場合(ステップS14;Yes)、当該入力に関する入力情報S1を認識支援情報Ibとして取得する(ステップS15)。一方、表示制御部15は、作業空間における物体の認識を補助する入力がない場合(ステップS14;No)、ステップS16へ処理を進める。
【0132】
動作シーケンス生成部16は、ステップS13で取得したタスク指定情報Iaが示す目的タスクを実行するためのロボット5の動作シーケンスであるサブタスクシーケンスSrを生成する(ステップS16)。この場合、動作シーケンス生成部16は、出力信号S4に基づき、サブタスクシーケンスSrの生成に必要な、作業空間における物体の認識を行う。また、ステップS15が実行された場合には、動作シーケンス生成部16は、ステップS15で得られた認識支援情報Ibをさらに参照することで、作業空間における物体の認識を行う。サブタスクシーケンスSrの生成後、ロボット制御部17は、生成されたサブタスクシーケンスSrに基づく制御信号S3をロボット5へ供給し、生成されたサブタスクシーケンスSrに従いロボット5が動作するように制御する(ステップS17)。
【0133】
そして、制御装置1は、目的タスクが完了したか否か判定する(ステップS18)。この場合、制御装置1は、例えば、出力信号S4から生成された認識結果Im又はロボット5から供給される目的タスクの完了を通知する信号に基づき、目的タスクの完了の有無を判定する。そして、制御装置1は、目的タスクが完了したと判定した場合(ステップS18;Yes)、フローチャートの処理を終了する。一方、制御装置1は、目的タスクが完了していないと判定した場合(ステップS18;No)、ステップS17へ処理を戻す。
【0134】
(9)効果
第1実施形態によれば、制御装置1は、通信品質が保証されていない通信網3を介してタスク指示装置2と通信を行い、目的タスクを概略的に示す概略命令をタスク指示装置2から受け付けることで、時相論理に基づきサブタスクシーケンスSrを生成する。この場合、タスク指示装置2は、タスク指定情報Iaと認識支援情報Ibに相当する入力情報S1を制御装置1に送信し、ロボット5の動作を直接的に制御するための位置及びトルクに関する制御入力の情報については送信しない。よって、通信網3において通信遅延が生じた場合であっても、制御装置1は、計測装置7が計測する最新の作業空間の環境に基づいてサブタスクシーケンスSrを生成する。これにより、制御装置1は、通信網3での通信遅延に影響を受けることなく好適にロボット5を制御することができる。
【0135】
第1実施形態によれば、ロボット5への指示を制御に関しては直接的なロボット制御入力(トルク、速度、関節角度など)でなくタスクレベルの指示とし、認識に関しては認識支援情報Ibを人が指定するとしたことで、通信品質が保証されない通信網3越しにロボット5を好適に制御でき、また、ロボット5の側に高度な認識システムを搭載する必要もなくなる。一般に、認識アルゴリズムは環境耐性がないため、認識アルゴリズムは環境が変わると誤動作しやすい。以上を勘案し、第1実施形態においては、脆弱な認識アルゴリズムを人間の認識から生まれる認識支援情報Ibでサポートすることで、認識アルゴリズムの脆弱性をカバーすることができる。しかも通信品質が保証されない通信網3越しにロボット5が制御できるので、日本の工場のロボットを世界各国のワーカーが制御できるようになる。
【0136】
また、タスク指示装置2を操作するユーザは、タスク入力画面での指示に従い必要な入力を行えばよいため、ロボット5のダイナミクス等を熟知した当業者である必要はない。また、タスク指示装置2は、通信機能と表示機能と入力機能とを備えた端末(スマートフォンやタブレット端末など)であればよく、タスク指示装置2を操作する場所は、インターネット等の任意の通信網3を介して制御装置1と通信可能な任意の場所であればよい。このように、第1実施形態によれば、遠隔越しで誰でもどこでも簡単にロボット5を動作させることができる。よって、ロボット5の概略命令を行う従事者をインターネット上で募集し、募集された従事者が短期間労働者としてタスク指示装置2のユーザとなり、タスク入力画面への入力作業を行う形態も考えられる。この場合、募集された従事者は、自身が所有する端末をタスク指示装置2として使用し、制御装置1から供給される表示情報S2に基づき端末上に表示されるタスク入力画面での案内に従い、必要な入力作業を行う。
【0137】
(10)変形例
次に、第1実施形態の変形例について説明する。以下の変形例は任意に組み合わせて適用してもよい。
【0138】
(変形例1)
図8に示す動作シーケンス生成部16のブロック構成は一例であり、種々の変更がなされてもよい。
【0139】
例えば、ロボット5に命令する動作のシーケンスの候補φの情報が記憶装置4に予め記憶され、動作シーケンス生成部16は、当該情報に基づき、制御入力生成部35の最適化処理を実行する。これにより、動作シーケンス生成部16は、最適な候補φの選定とロボット5の制御入力の決定を行う。この場合、動作シーケンス生成部16は、抽象状態設定部31、目標論理式生成部32及びタイムステップ論理式生成部33に相当する機能を有しなくともよい。このように、図8に示す動作シーケンス生成部16の一部の機能ブロックの実行結果に関する情報が予めアプリケーション情報記憶部41に記憶されていてもよい。
【0140】
他の例では、アプリケーション情報には、目的タスクに対応するサブタスクシーケンスSrを設計するためのフローチャートなどの設計情報が予め含まれており、動作シーケンス生成部16は、当該設計情報を参照することで、サブタスクシーケンスSrを生成してもよい。なお、予め設計されたタスクシーケンスに基づきタスクを実行する具体例については、特開2017-39170号に開示されている。
【0141】
(変形例2)
制御装置1は、目的タスクに関する入力を行う対象となるロボット5をタスク指示装置2のユーザに選択させてもよい。
【0142】
図11は、タスク指示装置2が表示するロボット5の選択画面の表示例である。制御装置1の表示制御部15は、表示情報S2を生成し、当該表示情報S2をタスク指示装置2に送信することで、タスク指示装置2に図11に示す選択画面を表示させている。
【0143】
表示制御部15は、制御装置1の制御に基づき動作を行う複数のロボット5が夫々配置された作業場の一覧を選択画面上に表示している。ここでは、表示制御部15は、少なくとも4つの作業場(作業場A~作業場D、…)の各々に対して個別表示欄80(80A~80D、…)を設けている。各個別表示欄80(80A~80D、…)には、夫々の作業場を撮像した画像82(82A~82D、…)と、選択ボタン83(83A~83D、…)とが設けられている。また、各個別表示欄80(80A~80D、…)には、各作業場のロボット5が実行するタスクの種類を概略的に示す「タスク種類」と、タスク指示装置2のユーザが入力する必要がある内容を概略的に示す「入力内容」とが夫々記されている。
【0144】
そして、表示制御部15は、いずれかの選択ボタン83が選択されたことを検知した場合、選択された選択ボタン83に対応する作業場のロボット5に対する目的タスクを指定するタスク入力画面(図5図7参照)をタスク指示装置2に表示させる。そして、表示制御部15は、選択された選択ボタン83と同一の個別表示欄80の「入力内容」に記された各種入力をタスク入力画面上において受け付けることで、タスク指定情報Ia(及び認識支援情報Ib)を生成する。
【0145】
本変形例によれば、タスク指示装置2のユーザは、自身が入力作業を行う対象を好適に選択することができる。また、タスク指示装置2のユーザは、複数の作業場において存在する複数のロボット5に対する概略命令を並行して行い、複数の作業場でのロボット5の作業を好適に管理することもできる。
【0146】
(変形例3)
制御装置1は、認識支援情報Ib及び作業空間画像Pの組を、作業空間の特定の物体を検出する推論器を学習するための学習データとして取得してもよい。
【0147】
ここで、認識支援情報Ibは、作業空間画像Pにおける所定の物体の正解位置又は範囲を指し示す正解ラベルに相当する。よって、制御装置1は、認識支援情報Ibと認識支援情報Ibの生成に用いた作業空間画像Pとの組を、学習データとして、同一の目的タスク毎に記憶装置4に記憶する。そして、制御装置1は、目的タスク毎に上述の学習データを用い、作業空間の特定の物体を検出する推論器の学習を行い、学習により得られた推論器のパラメータ等を物体モデル情報I6として記憶装置4に記憶する。これにより、制御装置1は、作業空間の物体を検出するための物体モデル情報I6を好適に更新又は生成することができる。なお、上述の学習は制御装置1以外の外部装置が実行してもよい。この場合、制御装置1は、上述の外部装置に、認識支援情報Ibと認識支援情報Ibの生成に用いた作業空間画像Pとの組となる学習データを送信する。この場合、外部装置は、学習データに基づき上述の推論器を学習し、学習により得られた推論器のパラメータ等により、記憶装置4が記憶する物体モデル情報I6の更新又は生成を行う。
【0148】
<第2実施形態>
図12は、第2実施形態における制御装置1Aの概略構成図である。図12に示すように、制御装置1Aは、主に、表示制御手段15Aと、動作シーケンス生成手段16Aと、を有する。
【0149】
表示制御手段15Aは、ロボットに実行させるタスクに関する表示情報S2を表示装置2Aに送信する。この場合、表示制御手段15Aは、第1実施形態における表示制御部15とし、表示装置2Aは、第1実施形態におけるタスク指示装置2とすることができる。表示情報S2は、例えば、図5図7において例示されるタスク指定画面を表示するための表示情報であってもよく、図11において例示される選択画面を表示するための表示情報であってもよい。なお、制御装置1Aは、ロボットの一部として組み込まれてもよく、ロボットと別体として構成されてもよい。
【0150】
動作シーケンス生成手段16Aは、タスクを概略的に指定する入力情報であるタスク指定情報Iaを表示制御手段15Aが表示装置2Aから受信した場合、タスク指定情報Iaに基づき、ロボットが実行する動作シーケンスを生成する。この動作シーケンスは、第1実施形態におけるサブタスクシーケンスSrとすることができる。また、動作シーケンス生成手段16Aは、第1実施形態の動作シーケンス生成部16とすることができる。
【0151】
図13は、第2実施形態において制御装置1Aが実行するフローチャートの一例である。まず、表示制御手段15Aは、ロボットに実行させるタスクに関する表示情報を表示装置2Aに送信する(ステップS21)。そして、動作シーケンス生成手段16Aは、タスクを概略的に指定する入力情報であるタスク指定情報Iaを表示制御手段15Aが表示装置2Aから受信した場合、タスク指定情報Iaに基づき、ロボットが実行する動作シーケンスを生成する。
【0152】
第2実施形態の構成によれば、制御装置1Aは、タスクを概略的に指定する入力に基づいて、ロボットが実行すべき動作シーケンスを好適に生成することができる。
【0153】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0154】
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0155】
[付記1]
ロボットに実行させるタスクに関する表示情報を表示装置に送信する表示制御手段と、
前記タスクを概略的に指定する入力情報であるタスク指定情報を前記表示制御手段が前記表示装置から受信した場合、前記タスク指定情報に基づき、前記ロボットが実行する動作シーケンスを生成する動作シーケンス生成手段と、
を有する制御装置。
【0156】
[付記2]
前記表示制御手段は、前記ロボットの作業空間を撮像した作業空間画像を含む前記表示情報を前記表示装置に送信し、
前記動作シーケンス生成手段は、前記作業空間画像を対象とする入力により生成された前記タスク指定情報に基づき、前記ロボットに実行させる前記タスクを決定する、付記1に記載の制御装置。
【0157】
[付記3]
前記動作シーケンス生成手段は、前記タスクに関する物体の認識を支援する入力情報である認識支援情報を前記表示制御手段が前記表示装置から受信した場合、前記認識支援情報に基づき、前記物体を認識することで、前記動作シーケンスを生成する、付記1または2に記載の制御装置。
【0158】
[付記4]
前記表示制御手段は、前記ロボットの作業空間を撮像した撮像画像を含む前記表示情報を前記表示装置に送信し、
前記動作シーケンス生成手段は、前記作業空間画像を対象とする入力により生成された前記認識支援情報に基づき、前記物体を認識する、付記3に記載の制御装置。
【0159】
[付記5]
前記表示制御手段は、前記認識支援情報と、前記作業空間画像とを、前記物体に関する推論を行う推論器の学習に用いる学習データとして取得する、付記4に記載の制御装置。
[付記6]
前記表示制御手段は、通信品質が保証されていない通信網を介し、前記表示装置と前記表示情報及び前記入力情報の通信を行う、付記1~5のいずれか一項に記載の制御装置。
【0160】
[付記7]
前記表示制御手段は、前記動作シーケンスを生成する対象のロボットを選択する選択画面の表示情報を前記表示装置に送信後、前記選択画面において選択されたロボットのタスクを指定するタスク入力画面の表示情報を、前記表示装置に送信する、付記1~6のいずれか一項に記載の制御装置。
【0161】
[付記8]
前記動作シーケンス生成手段は、
前記タスク指定情報により特定される目的タスクを時相論理に基づく論理式に変換する論理式変換手段と、
前記論理式から、前記目的タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、
前記タイムステップ論理式に基づき、前記ロボットに実行させるサブタスクのシーケンスを、前記動作シーケンスとして生成するサブタスクシーケンス生成手段と、
を有する、付記1~7のいずれか一項に記載の制御装置。
【0162】
[付記9]
前記動作シーケンス生成手段は、
前記タスクに関する物体の抽象的な状態である抽象状態を、前記論理式において使用する命題として定める抽象状態設定手段をさらに有する、付記8に記載の制御装置。
【0163】
[付記10]
コンピュータにより、
ロボットに実行させるタスクに関する表示情報を表示装置に送信し、
前記タスクを概略的に指定する入力情報であるタスク指定情報を前記表示装置から受信した場合、前記タスク指定情報に基づき、前記ロボットが実行する動作シーケンスを生成する、
制御方法。
【0164】
[付記11]
ロボットに実行させるタスクに関する表示情報を表示装置に送信する表示制御手段と、
前記タスクを概略的に指定する入力情報であるタスク指定情報を前記表示制御手段が前記表示装置から受信した場合、前記タスク指定情報に基づき、前記ロボットが実行する動作シーケンスを生成する動作シーケンス生成手段
としてコンピュータを機能させるプログラムが格納された記録媒体。
【0165】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0166】
1、1A 制御装置
2 タスク指示装置
2A 表示装置
3 通信網
4 記憶装置
5 ロボット
7 計測装置
8(8A、8B) 他作業体
41 アプリケーション情報記憶部
100 ロボット制御システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13