(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-18
(45)【発行日】2024-03-27
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
B25J 9/16 20060101AFI20240319BHJP
G05B 19/4069 20060101ALI20240319BHJP
G05B 19/4093 20060101ALI20240319BHJP
【FI】
B25J9/16
G05B19/4069
G05B19/4093 H
(21)【出願番号】P 2023508219
(86)(22)【出願日】2021-03-23
(86)【国際出願番号】 JP2021012014
(87)【国際公開番号】W WO2022201314
(87)【国際公開日】2022-09-29
【審査請求日】2023-06-30
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】櫻井 隼太郎
(72)【発明者】
【氏名】伊藤 岳大
【審査官】尾形 元
(56)【参考文献】
【文献】特開平11-104984(JP,A)
【文献】特開2004-272837(JP,A)
【文献】特表2015-520040(JP,A)
【文献】特開平7-328968(JP,A)
【文献】特開2006-3263(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B19/18-19/416
G05B19/42-19/46
(57)【特許請求の範囲】
【請求項1】
ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
前記入力受付部を介した前記入力に基づいて、
前記ロボットの動作空間内の物体又は仮想物体に関する属性情報を取得する属性情報取得部と、
を備える情報処理装置。
【請求項2】
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部
を更に備える、請求項1に記載の情報処理装置。
【請求項3】
前記ロボットの動作シーケンスを表示するシーケンス表示部と、
前記表示結果に対して、入力された前記ロボットの動作を行うための信号を受け付ける、前記入力受付部と、
前記入力に基づいて、前記動作シーケンスの制御信号を前記ロボットに送信する制御信号処理部を更に備える、請求項1に記載の情報処理装置。
【請求項4】
前記物体情報と、前記属性情報を結合し、前記物体情報と前記属性情報との組み合わせた属性信号を生成する、属性信号生成部を更に備える、請求項2に記載の情報処理装置。
【請求項5】
前記物体情報取得部は、前記入力受付部を介した前記入力に基づいて、前記物体又は仮想物体の情報を取得する、請求項
2に記載の情報処理装置。
【請求項6】
前記制御信号処理部は、前記ロボットの動作シーケンスの制御信号を、動作シーケンスを表示させるための表示信号に変換し、前記シーケンス表示部に供給する、請求項
3に記載の情報処理装置。
【請求項7】
ロボットに対する動作シーケンスを修正するための入力を受け付け、
前記入力に基づいて、
前記ロボットの動作空間内の物体又は仮想物体に関する属性情報を取得する、情報処理方法。
【請求項8】
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する、請求項7に記載の情報処理方法。
【請求項9】
ロボットに対する動作シーケンスを修正するための入力を受け付ける処理と、
前記入力に基づいて、前記
ロボットの動作空間内の物体又は仮想物体に関する属性情報を取得する処理と、
をコンピュータに実行させるプログラム。
【請求項10】
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する処理をコンピュータに実行させる、
請求項9に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットの動作計画を修正する処理を行うための情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体に関する。
【背景技術】
【0002】
ロボットの最適経路に沿った動作を実機で再現した際、本来人が想定した動作と異なる挙動を示すことがある。例えば、アームの手先が複数の障害物を回避するような最適経路を生成した場合、アームの手先位置以外の部分が衝突する、アームの姿勢変化の大きさによる過負荷がかかってしまうといったことが想定される。また、アームが何かしらの物体を把持したまま動作を行う場合、把持している物体が周囲の人、動物、物体に衝突するといった状況が発生する可能性がある。このようにロボットの最適な動作計画が生成された後、その動作を可視化し、その動作を人が修正できるような機能が必要である。
【0003】
特許文献1には、オフラインプログラミングにより作成したロボット制御プログラムのポジション変数を修正する変数修正方法が開示されている。特許文献2には、パレタイズシステムのように選定入力されたプログラムによりロボットを駆動制御し、このロボットにより所定の製品(以下、ワークという)を取り扱うロボットシステムが開示されている。特許文献3には、ロボットシミュレータを用いて産業用ロボットの動作をシミュレートすることによりプログラミングを行なうロボット動作のシミュレーション方法が開示されている。特許文献4には、ロボットシミュレータを用いて産業用ロボットの動作をシミュレートすることによりプログラミングを行なうロボット動作のシミュレーション方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開昭62-106507号公報
【文献】特開平07-214485号公報
【文献】特開平08-328632号公報
【文献】特開2013-136123号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1~4に係る技術は、ロボットの動作シーケンスを修正する際、ロボットの動作空間内の物体に関する属性を適切に取得することができない。こうした属性は、ロボットの動作の制約条件となり得るが、こうした物体に関する属性の一部は、カメラなどの各種センサによっても正確に判断することが難しい場合がある。
【0006】
本開示は、このような問題点を解決するためになされたものであり、ロボットの動作シーケンスを修正するにあたって、ロボットの動作空間内の物体の属性を取得可能な情報処理装置、修正システム、情報処理方法等を提供することを目的の1つとする。
【課題を解決するための手段】
【0007】
本開示の第1の態様にかかる情報処理装置は、
ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
を備える。
【0008】
本開示の第2の態様にかかる修正システムは、
ロボットの動作シーケンスを表示するシーケンス表示部と、
前記表示結果に対して、ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
前記入力に基づいて、前記動作シーケンスの制御信号を前記ロボットに送信する制御信号処理部と、
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
前記物体情報と、前記属性情報を結合し、前記物体情報と前記属性情報との組み合わせた属性信号を生成する、属性信号生成部と、
前記属性信号生成部によって生成された、物体と属性の組み合わせの情報を有する前記属性信号を受信し、前記属性信号と、保存している記憶情報に基づいて、ロボットの動作空間を示す抽象状態を修正する修正情報を生成する、属性情報処理部を有する。
【0009】
本開示の第3の態様にかかる情報処理方法は、
ロボットに対する動作シーケンスを修正するための入力を受け付け、
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得し、
前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する。
【0010】
本開示の第4の態様にかかるプログラムが格納された非一時的コンピュータ可読媒体は、前記プログラムが
ロボットに対する動作シーケンスを修正するための入力を受け付ける処理と、
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する処理と、
前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する処理と、
をコンピュータに実行させる。
【0011】
本開示の第5の態様にかかる情報処理装置は、ロボットが動作する空間と、前記空間における物体または仮想物体についての複数の属性候補を表示し、
前記複数の属性候補のうち、選択された属性候補を前記物体または仮想物体の属性に設定する。
【発明の効果】
【0012】
本開示により、ロボットの動作空間内の物体の属性を取得可能な情報処理装置、修正システム、及び情報処理方法等を提供することができる。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態にかかる情報処理装置の機能ブロック図を示す。
【
図2】第1実施形態にかかる情報処理方法を示すフローチャートである。
【
図3】第2実施形態にかかる修正装置の機能ブロック図を示す。
【
図4】第2実施形態にかかる修正方法を示すフローチャートである。
【
図6】ロボットコントローラのハードウェア構成を示す。
【
図7】シーケンス処理装置のハードウェア構成を示す。
【
図8】アプリケーション情報のデータ構造の一例を示す。
【
図9】ロボットコントローラの機能ブロック図の一例を示す。
【
図10】シーケンス処理装置の機能ブロック図の一例を示す。
【
図12】第3実施形態におけるシーケンス処理前の計画表示画面の一例を示す。
【
図13】第3実施形態におけるシーケンス処理中の計画表示画面の一例を示す。
【
図14】第3実施形態におけるシーケンス処理後の計画表示画面の一例を示す。
【
図15】第3実施形態におけるシーケンス処理後の計画表示画面の一例を示す。
【
図16】目標論理式生成部のブロックの一例を示す。
【
図17】第3実施形態においてシーケンス処理装置が実行する修正処理の概要を示すフローチャートの一例である。
【
図18】第4実施形態におけるシーケンス処理中の計画表示画面の一例を示す。
【
図19】第5実施形態におけるシーケンス処理中の計画表示画面の一例を示す。
【発明を実施するための形態】
【0014】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【0015】
<第1実施形態>
図1は、第1実施形態にかかる情報処理装置の機能ブロック図を示す。
情報処理装置10は、プロセッサおよびメモリ等を含むコンピュータにより実現される。情報処理装置10は、ユーザがロボットに対する動作シーケンスを修正する際に、属性情報を取得するために使用され得る。
【0016】
情報処理装置10は、入力受付部72、物体情報取得部73および属性情報取得部74を備える。入力受付部72は、ロボットに対する動作シーケンスを修正するためのユーザからの入力を受け付ける。入力受付部72は、マウス、キーボード、タッチパネル、スタイラスペン又はマイクロフォンなど入力装置を介して、ユーザからの入力を受け付けることができる。
【0017】
物体情報取得部73は、ロボットの動作空間内の物体又は仮想物体に関する情報を取得する。本明細書において、物体は、実際の物体(例えば、実際の障害物、ペットボトル、ドア)を指す。仮想物体は、ロボットの動作空間内に、ユーザによって設定された(例えば、描かれた)仮想的な物体(例えば、仮想障害物)を指す。物体情報取得部73は、入力受付部72を介したユーザからの入力に基づいて、ロボットの動作空間内の物体情報を取得してもよいし、カメラなどの各種センサにより、ロボットの動作空間内の物体情報を取得してもよい。例えば、物体情報取得部73は、画像認識技術を利用して、カメラによる撮影画像から、ロボットの動作空間内の物体情報(例えば、位置情報、形状、物体の種類)を取得することができる。他の実施形態では、例えば、物体又は仮想物体に関する物体情報は、ディスプレイに表示された物体又は仮想物体を、ユーザが選択することによって(すなわち、そのユーザ入力を受け付ける入力受付部72を介して)、当該物体又は仮想物体に関する情報を記憶した記憶部から取得され得る。
【0018】
属性情報取得部74は、入力受付部72を介したユーザからの入力に基づいて、物体に関する属性情報を取得する。属性情報は、物体の属性を示す情報であり、より具体的には、物体とロボットとの関係に依存する情報であり得る。いくつかの実施形態では、ロボットが、ユーザによって描かれた仮想物体に接触又は仮想物体を通過することができない場合、仮想物体に「障害物」という属性が付与され、ロボットが、当該仮想物体を経由点として通過することができる場合、当該仮想物体に「経由点」という属性が付与される場合がある。また、他の実施形態では、ロボットが物体の一例であるふたに関連するタスク(例えば、開く)を実行できない場合、ふたに「Closed」という属性が付与され、ロボットがふたに関連するタスク(例えば、開く)を実行できる場合、ふたに「Open」という属性が付与される場合がある。さらに、他の実施形態では、例えば、ロボットが物体を移動させることができない場合、物体には「障害物」という属性情報が付与され、ロボットが物体を移動させることが可能である場合は、物体には、「対象物」という属性情報が付与される場合がある。すなわち、属性情報は、物体に対するロボットの制約条件を規定するものである。こうした属性情報の一部は、カメラなどの各種センサによっても正確に判断できないものを含み得る。
【0019】
物体情報取得部73により取得された物体又は仮想物体に関する情報に関連付けられた選択可能な複数の属性情報がユーザに提示され、ユーザの選択により、1の属性が取得される。
【0020】
情報処理装置10は、様々な物体情報および物体ごとに関連付けられた選択可能な複数の属性情報を記憶する記憶部を備えてもよいし、ネットワークを介してそのような記憶部と接続されていてもよい。
【0021】
図2は、第1実施形態にかかる情報処理方法を示すフローチャートである。
入力受付部72は、ロボットに対する動作シーケンスを修正するためのユーザからの入力を受け付ける(ステップS1a)。物体情報取得部73は、ロボットの動作空間内の物体又は仮想物体の情報を取得する(ステップS2a)。属性情報取得部74は、ユーザからの入力に基づいて、物体又は仮想物体に関する属性情報を取得する(ステップS3a)。
【0022】
以上説明した第1実施形態によれば、ロボットに対する動作シーケンスを修正するにあたり、ロボットの動作空間内の物体に関する属性を適切に取得することができる。
【0023】
<第2実施形態>
図3は、第2実施形態にかかる修正装置3の機能ブロック図を示す。修正装置3は、プロセッサおよびメモリ等を含むコンピュータにより実現される。修正装置3は、ユーザが、表示されたロボットに対する動作シーケンスを修正するために使用され得る。修正装置3は、後述するロボットコントローラと協働して使用され得る。
図3に示すように、修正装置3は、制御信号処理部71、入力受付部72、物体情報取得部73、属性情報取得部74、属性信号生成部75、及びシーケンス表示部76を有する。修正装置3は、第1実施形態に係る情報処理装置10の一例である。
【0024】
制御信号処理部71は、ロボットコントローラから制御信号を受信した際に、サブタスクシーケンスの計画を表示するための信号を生成し、シーケンス表示部76に供給する。また、制御信号処理部71は、ロボットコントローラから制御信号を受信した際に、ユーザからの入力を受け付けるための入力受付信号を生成し、入力受付部に供給する。さらに、制御信号処理部71は、入力受付部72からロボットを動作させるための信号を受信すると、サブタスクシーケンスを示す制御信号をロボットに送信する。
【0025】
シーケンス表示部76は、ロボットコントローラから受け取った制御信号をもとに、サブタスクシーケンスを表示する。
【0026】
入力受付部72は、入力装置を介したユーザからの入力を受け付ける。入力受付部72は、動作空間内における仮想物体の描画や、物体若しくは仮想物体の選択、物体及び描画した仮想物体の属性の変更といったロボット動作シーケンスの変更に必要な操作をユーザ入力として受け付ける。
【0027】
物体情報取得部73は、ユーザが、入力装置を用いて、表示された動作空間内の物体若しくは仮想物体から所望の物体若しくは仮想物体を選択すると、当該物体若しくは仮想物体に関する物体情報を取得する。物体若しくは仮想物体に関する物体情報は、予め、修正装置3の内部又は修正装置3に接続された記憶部に記憶されている。
【0028】
属性情報取得部74は、ユーザが、入力装置を用いて、上記選択された物体についての属性を付与すると、当該物体に関する属性情報を取得する。例えば、前述したように、ユーザが、入力装置を用いて、表示された動作空間内の物体若しくは仮想物体から所望の物体若しくは仮想物体を選択すると、当該所望の物体若しくは仮想物体に関連付けられた複数の属性が表示装置(例えば、ディスプレイ)に選択可能に表示されてもよい。その後、ユーザが、入力装置を用いて、複数の属性から一の属性を選択すると、属性情報取得部74は、当該属性情報を取得する。
【0029】
属性信号生成部75は、前述した物体情報と、属性情報とに基づき、取得した物体の情報と、取得した属性の情報を結合した情報を示す属性信号を生成し、ロボットコントローラに供給する。
【0030】
図4は、第2実施形態にかかる修正方法を示すフローチャートである。
シーケンス表示部76は、ロボットコントローラから受け取った制御信号をもとに、ロボットに対する動作シーケンス(サブタスクシーケンス)を表示する(ステップS1b)。入力受付部72は、表示された動作シーケンスに対して、入力装置を介したユーザからの入力を受け付ける(ステップS2b)。物体情報取得部73は、ユーザが、入力装置を用いて、表示された動作空間内の物体若しくは仮想物体から所望の物体若しくは仮想物体を選択すると、当該物体若しくは仮想物体に関する物体情報を取得する(ステップS3b)。属性情報取得部74は、ユーザが、入力装置を用いて、上記選択された物体についての属性を付与すると、当該物体に関する属性情報を取得する(ステップS4b)。属性信号生成部75は、前述した物体情報と、属性情報とに基づき、取得した物体の情報と、取得した属性の情報を結合する(ステップS5b)。属性信号生成部75は、これらを結合した情報を示す属性信号を生成し、ロボットコントローラに供給する。これにより、ロボットコントローラ側で、動作シーケンスの修正が行われる(ステップS6b)。
【0031】
以上説明した第2実施形態によれば、ユーザによって付与された物体等についての属性情報に基づいて、ロボットに対する動作シーケンスを修正することができる。
【0032】
<第3実施形態>
(1)システム構成
図5は、第3実施形態に係るロボット制御システム100の構成を示す。
ロボット制御システム100は、主に、ロボットコントローラ1と、入力装置2と、シーケンス処理装置3と、記憶装置4と、ロボット5と、計測装置6と、を備える。
【0033】
ロボットコントローラ1は、ロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)が指定された場合に、この目的タスクを、ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスに変換し、当該シーケンスに基づきロボット5を制御する。ロボットコントローラは、本明細書では、情報処理装置とも呼ばれる場合がある。以後では、ロボット5が受付可能な目的タスクを分解した細かいタスク(コマンド)を「サブタスク」とも呼ぶ。
【0034】
ロボットコントローラ1は、入力装置2、シーケンス処理装置3、記憶装置4、ロボット5、及び計測装置6と電気的に接続している。例えば、ロボットコントローラ1は入力装置2から目的タスクを指定するための入力信号「S1」を受信する。また、ロボットコントローラ1は、入力装置2に対し、ロボット5に実行させるタスクに関する表示を行うための表示信号「S2」を送信する。さらにロボットコントローラ1は、ロボット5の制御に関する制御信号「S3」をロボット5に送信する。例えば、ロボットコントローラ1は、制御信号S3として、ロボット毎に実行させるサブタスクのシーケンス(「サブタスクシーケンス」)とも呼ぶ。)を、シーケンス処理装置3に送信する。さらに、ロボットコントローラ1は、計測装置6から出力信号「S6」を受信する。また、ロボットコントローラ1は、シーケンス処理装置3からロボットの動作空間内の特定の物体又は仮想物体に関する属性の情報に関する属性信号「S5」を受信する。
【0035】
入力装置2は、ユーザが指定した目的タスクに関する入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置(例えば、マイクロフォン)、パーソナルコンピュータなどが該当する。入力装置2はユーザの入力に基づいて生成した入力信号S1をロボットコントローラ1へ送信する。
【0036】
シーケンス処理装置3は、ロボットコントローラ1から受け取った制御信号をもとに、サブタスクシーケンスの表示や、動作空間内における仮想物体の描画や、物体及び描画した仮想物体の属性の変更といった、ロボット動作シーケンスの変更に必要な操作をユーザが画面上で行う装置である。シーケンス処理装置3は、修正装置とも呼ばれ、第2実施形態の修正装置の一例である。シーケンス処理装置3は、ロボットコントローラ1から供給される制御信号S3に基づき、サブタスクシーケンスの表示を行い、サブタスクシーケンスの表示後、制御信号S3をロボット5に送信する。また、シーケンス処理装置3は、ロボットの動作空間内における物体の属性を表す属性信号S5をロボットコントローラ1に送信する。入力装置2は、入力部と表示部とを備えるタブレット端末であってもよく、据置型のパーソナルコンピュータであってもよい。
【0037】
記憶装置4はアプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、目的タスクからサブタスクのシーケンスを生成するために必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は後述する。記憶装置4は、ロボットコントローラ1に接続又は内蔵されたハードディスクなどの外部記憶媒体であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶装置4は、ロボットコントローラ1とデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は複数のサーバ装置から構成されてもよい。
【0038】
ロボット5は、ロボットコントローラ1から送信された制御信号S3に基づき、目的タスクに関連した動作を行う。ロボット5は、例えば、製造現場で利用される組み立てロボット、物流現場で荷物のピッキングを行うロボットである。ロボットアームの場合、単腕でも良いし、2つ以上の腕を持っていてもよい。ロボットアーム以外にも移動ロボットや、移動ロボットとロボットアームを組み合わせたロボットでも良い。
【0039】
計測装置6は、目的タスクを達成するために、ロボットの動作空間の状態を計測するカメラ、測域センサ、ソナー、またはこれらの組み合わせであり得る1又は複数のセンサである。本実施形態では、計測装置6は、動作空間を撮像する少なくとも1台のカメラを含むものとする。計測装置6は生成した計測信号S6をロボットコントローラ1に供給する。計測信号S6には動作空間内を撮像した画像データが少なくとも含まれる。計測装置6は停止状態を保つ必要はなく、動作中のロボット5や、自走式の移動ロボット、飛行中のドローンに取り付けるセンサであってもよい。また、計測装置6は動作空間内の音を検出するセンサ(例えば、マイクロフォン)を含めてもよい。また、計測装置6は動作空間を撮像するセンサ(例えば、CCD(charge coupled device)又はCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ)であって、動作空間外を含む任意の場所に取り付けられたセンサを含んでもよい。
【0040】
なお、
図5に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば複数台のロボット5が存在してもよい。また、ロボット5は複数のロボットアームなどの1つのみまたは2つ以上の制御対象物を備えてもよい。これらの場合であっても、ロボットコントローラ1は、目的タスクに基づき、ロボット5もしくはロボット5が備える制御対象物毎に実行すべきサブタスクシーケンスを生成し、当該サブタスクシーケンスを示す制御信号S3を、制御対象を有するロボット5に送信する。また、計測装置6はロボット5の一部であってもよい。また、入力装置2及びシーケンス処理装置3はロボットコントローラ1に内蔵されるなどの様態により、同一の装置として扱ってもよい。また、ロボットコントローラ1は複数の装置から構成されてもよい。この場合、ロボットコントローラ1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これら複数の装置間において行う。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。なお、ロボット制御システムの全部又は一部は、ユーザがロボットの動作シーケンスを修正するために使用され得るので、修正システムとも呼ばれる場合がある。
【0041】
(2)ハードウェア構成
図6は、ロボットコントローラ1のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11とメモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス15を介して接続されている。
【0042】
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は複数のプロセッサから構成されてもよい。
【0043】
メモリ12はRAM(Random Access Memory)、ROM(Read Only Memory)などの各種のメモリにより構成される。また、メモリ12には、ロボットコントローラ1が特定の処理を実行するためのプログラムが記憶される。また、メモリ12は作業メモリとして使用され、記憶装置4から取得した情報等を一時的に記憶する。また、メモリ12が記憶する情報の一部を、ロボットコントローラ1と通信可能な1又は複数の外部記憶媒体に記憶させても良い。また、ロボットコントローラ1に対して着脱可能な記憶媒体により記憶させても良い。
【0044】
インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線通信により行うためのワイヤレスインターフェースであってもよく、他の装置とケーブル等を用いて有線接続を行うためのハードウェアインターフェースであっても良い。
【0045】
なお、ロボットコントローラ1のハードウェア構成は、
図6に示す構成に限定されない。例えば、ロボットコントローラ1は、入力装置2、シーケンス処理装置3、記憶装置4、及びスピーカーやイヤホン等の音出力装置と接続又は内蔵しても良い。これらの場合、ロボットコントローラ1は、入出力機能と記憶機能を備えたタブレット端末等であってもよい。
【0046】
図7はシーケンス処理装置3のハードウェア構成を示す。シーケンス処理装置3は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bと、出力部24cとを含む。プロセッサ21、メモリ22及びインターフェース23は、データバス25を介して接続されている。また、インターフェース23には、入力部24aと表示部24bと出力部24cとが接続されている。
【0047】
プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、例えば、CPU、GPU、TPUなどのプロセッサである。プロセッサ21は、インターフェース23を介して入力部24aが生成した信号を受信することで、取得した属性情報を属性信号S5に変換する処理を行い、インターフェース23を介してロボットコントローラ1に当該属性信号S5を送信する。また、プロセッサ21は、インターフェース23を介してロボットコントローラ1から受信した制御信号S3に基づき、表示部24bまたは出力部24cを、インターフェース23を介して制御することで属性情報を取得することができる。
【0048】
メモリ22はRAM、ROMなどの各種のメモリにより構成される。また、メモリ22には、シーケンス処理装置が実行する処理を実行するためのプログラムが記憶される。また、メモリ22はロボットコントローラ1から受信した制御信号S3を一時的に記憶する。
【0049】
インターフェース23は、シーケンス処理装置3と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線通信により行うためのワイヤレスインターフェースであってもよく、他の装置とケーブル等を用いて有線接続を行うためのハードウェアインターフェースであっても良い。また、インターフェース23は、入力部24a、表示部24b及び出力部24cのインターフェース動作を行う。入力部24aは、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音入力装置(例えば、マイクロフォン)などが該当する。表示部24bは、例えば、ディスプレイ、プロジェクタ等であり、プロセッサ21の制御に基づき表示を行う。また、出力部24cは、例えばスピーカであり、プロセッサ21の制御に基づき音出力を行う。
【0050】
なお、シーケンス処理装置3のハードウェア構成は、
図7に示す構成に限定されない。例えば、入力部24a、表示部24b又は出力部24cの少なくともいずれかは、シーケンス処理装置3と電気的に接続する別体の装置として構成されてもよい。また、シーケンス処理装置3は、カメラなどの計測装置と接続してもよく、これらを内蔵してもよい。
【0051】
(3)アプリケーション情報
次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
【0052】
図8は、アプリケーション情報記憶部41に記憶されるアプリケーション情報のデータ構造の一例を示す。
図8に示すように、アプリケーション情報記憶部41は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6と、属性情報I7と、を含む。
【0053】
抽象状態指定情報I1は、サブタスクシーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、動作空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、目的タスクの種類毎に、定義する必要がある抽象状態を指定する。なお、目的タスクは、例えば、ピックアンドプレイス、対象物の持ち直し、対象物の回転などの種々の種類のタスクであってもよい。
【0054】
制約条件情報I2は、目的タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、ロボット5(ロボットアーム)が障害物に接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、目的タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
【0055】
動作限界情報I3は、ロボットコントローラ1により制御が行われるロボット5の動作限界に関する情報を示す。動作限界情報I3は、例えば、
図5に示すロボット5の速度、加速度、角速度などの上限値又は下限値を規定する情報である。
【0056】
サブタスク情報I4は、ロボット5が受付可能なサブタスクの情報を示す。例えば、目的タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット5のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定することができる。サブタスク情報I4は、目的タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。
【0057】
抽象モデル情報I5は、動作空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、ロボット5により対象物をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。抽象モデル情報I5は、目的タスクの種類毎に適した抽象モデルに関する情報を有している。
【0058】
物体モデル情報I6は、計測装置6が生成した計測信号S6から認識すべき動作空間内の各物体の物体モデルに関する情報である。上述の各物体には、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の移動体等が該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、実行中の動作などをロボットコントローラ1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(computer-aided design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
【0059】
属性情報I7は、物体又は仮想物体の属性(例えば、移動不可な障害物又は移動可能な対象物など)を示す情報であり、ロボットコントローラ1における内部処理を追加するための情報である。具体的には、属性情報I7は、物体又は仮想物体とロボットとの関係に依存するものであり、物体又は仮想物体に対するロボットの制約条件である。ロボットコントローラ1は、シーケンス処理装置3が生成した属性信号S5を受信すると、取得した属性に応じて、内部処理を行うことができる。例えば、仮想的な障害物を新たに生成する場合、シーケンス処理装置3において、ユーザが描画した障害物の位置ベクトルの値や、描画後の障害物の数の情報の更新を行う処理を実行することで、動作空間内に新たに障害物が配置された新たな動作空間におけるロボット制御を行うことができる。ロボットの動作空間内の物体を障害物から対象物に変更する別の例では、物体モデル情報I6における識別ラベルを移動不可な障害物から移動可能な対象物に変更する処理を行うことで、これまで障害物だったものを対象物とみなし、対象物とみなされた物体のピックアンドプレイスなどの動作を行うことが可能となる。
【0060】
上記属性情報(障害物又は対象物)は、ロボットが、物体を移動させることができるか否かを示す情報である。すなわち、この属性情報は、ロボットと物体との関係に基づくものである。他の実施形態では、後述するように、様々な属性を用いることができる。
【0061】
このように、様々な属性情報I7が、予め設定され、アプリケーション情報記憶部41に記憶されている。
【0062】
なお、アプリケーション情報記憶部41は、上述した情報の他、サブタスクシーケンスの生成処理、制御信号S3に関する種々の情報を記憶してもよい。
【0063】
(4)機能ブロック図
(4-1)ロボットコントローラの機能ブロック図
図9はロボットコントローラ1の機能ブロック図の一例を示す。ロボットコントローラ1のプロセッサ11は、機能的には、抽象状態設定部31と、目標論理式生成部32と、タイムステップ論理式生成部33と、抽象モデル生成部34と、制御入力生成部35と、サブタスクシーケンス生成部36と、属性情報処理部37と、を有する。なお、
図8では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロック図についても同様である。
【0064】
抽象状態設定部31は、計測装置6から供給される出力信号S6に基づき、動作空間内における計測結果を示す情報(「計測情報Im」とも呼ぶ)を生成する。具体的には抽象状態設定部31は出力信号S6を受信した場合に物体モデル情報I6等を参照し、目的タスクの実行に関連する動作空間内の各物体の種類(ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の移動体等)及び位置を認識し、この認識結果を計測情報Imとして生成する。また、抽象状態設定部31は、属性情報処理部37から供給される信号を受信した場合、前述の計測情報Imを更新し、属性を考慮した動作空間内の計測結果を示す情報を新たに生成する。抽象状態設定部31は、生成した計測情報Imを、抽象モデル生成部34に供給する。
【0065】
また、抽象状態設定部31は、上述の計測情報Im及びアプリケーション情報記憶部41から取得した抽象状態指定情報I1等に基づき、目的タスクを実行時の動作空間内の抽象状態を設定する。この場合、抽象状態設定部31は、各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部31は、設定した抽象状態を示す情報(「抽象状態設定情報Is」とも呼ぶ。)を目標論理式生成部32に供給する。
【0066】
目標論理式生成部32は、目的タスクに関する入力信号S1を入力装置2から受信した際に、抽象状態設定情報Isに基づき、入力信号S1が示す目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部32は、生成した目標論理式Ltagを、タイムステップ論理式生成部33に供給する。また、目標論理式生成部32は目的タスク実行に必要な入力を受け付けるタスク入力画面を表示するための表示信号S2を生成し、当該表示信号S2を入力装置2に供給する。
【0067】
タイムステップ論理式生成部33は、目標論理式生成部32から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部33は、生成したタイムステップ論理式Ltsを、制御入力生成部35に供給する。
【0068】
抽象モデル生成部34は、計測情報Imと、アプリケーション情報記憶部41が記憶する抽象モデル情報I5とに基づき、動作空間における現実のダイナミクス抽象化したモデルを生成する。
【0069】
【0070】
この場合、抽象モデル生成部34は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルを生成する。抽象モデルの生成方法については後述する。抽象モデル生成部34は、生成した抽象モデルを、制御入力生成部35へ供給する。
【0071】
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルとを満たし、評価関数を最適化するタイムステップ毎のロボット5への制御入力を決定する。そして、制御入力生成部35は、ロボット5へのタイムステップ毎の制御入力を示す情報(「制御入力情報Ic」とも呼ぶ。)を、サブタスクシーケンス生成部36へ供給する。
【0072】
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスを生成し、サブタスクシーケンスを示す制御信号S3を、シーケンス処理部3へ供給する。
【0073】
属性情報処理部37は、シーケンス処理装置3から供給される属性信号S5と、アプリケーション情報記憶部41が記憶する属性情報I7と、に基づき、特定の物体又は仮想物体の情報と、特定の属性の組み合わせに応じて、前述の抽象状態を修正するための修正情報Irを生成する。属性情報処理部37は、修正情報Irを、抽象状態設定部31に供給する。
【0074】
(4-2)シーケンス処理装置の機能ブロック図
図10はシーケンス処理装置3の機能ブロック図の一例である。シーケンス処理装置3のプロセッサ11は、機能的には、制御信号処理部71と、入力受付部72と、物体情報取得部73と、属性情報取得部74と、属性信号生成部75と、シーケンス表示部76と、を有する。なお、
図10は、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロック図についても同様である。
【0075】
制御信号処理部71は、ロボットコントローラ1から制御信号S3を受信した際に、サブタスクシーケンスの計画を表示するための信号Ssを生成し、シーケンス表示部76に供給する。また、制御信号処理部71は、ロボットコントローラ1から制御信号を受信した際に、ユーザからの入力を受け付けるための入力受付信号Siを生成し、入力受付部72に供給する。さらに、制御信号処理部71は、入力受付部72からロボット5を動作させるための信号Saを受信すると、サブタスクシーケンスを示す制御信号S3をロボット5に送信する。
【0076】
入力受付部72は、制御信号処理部71から入力受付信号Siが供給されると、ユーザによる画面上での操作が可能となる。そして、入力受付部72は、ユーザによって入力された内容を画面上にリアルタイムに表示するための入力表示信号Srを生成し、シーケンス表示部76に送信する。さらに入力受付部72は、ユーザによって、画面上で物体又は仮想物体を選択するという操作が行われた際に、画面上で物体又は仮想物体が選択されたことを示す物体選択信号Soを生成し、物体情報取得部73に供給する。また、入力受付部72は、ユーザによって、画面上で属性を選択するという操作が行われた際に、画面上で属性が選択されたことを示す属性選択信号Spを生成し、属性情報取得部74に供給する。さらに入力受付部72は、ロボット5を動作させるための信号Saを生成し、制御信号処理部71に供給する。
【0077】
物体情報取得部73は、入力受付部72から物体選択信号Soが供給されると、物体選択信号Soに対応する物体の情報(例えば、位置ベクトル、物体の種類)を表す物体選択情報Ioを取得し、属性信号生成部75に供給される。例えば、物体の情報のうち、位置ベクトルは、計測装置6により計測され得る。例えば、物体の情報のうち、物体の種類は、計測装置6による撮影画像を画像認識技術により認識することで取得され得る。ユーザによって描かれた仮想物体の情報は、描画情報を記憶した記憶部から取得することができる。
【0078】
属性情報取得部74は、入力受付部72から物体選択信号Soが供給されると、物体選択信号Soに対応する属性選択情報Ipを取得し、属性信号生成部75に供給される。属性選択情報は、後述するが、様々な物体に対応して、複数の選択可能な属性情報として、記憶部に記憶されている。
【0079】
属性信号生成部75は、物体選択情報Ioと、属性選択情報Ipとに基づき、取得した物体の情報と、取得した属性の情報を結合した情報を示す属性信号S5を生成する。属性信号S5は、ロボットコントローラ1の属性情報処理部37に供給されることで、「ユーザによって選択された特定の物体又は仮想物体が、特定の属性を付与された」ことを示す情報をロボットコントローラ1に知らせることができる。
【0080】
(5)ロボットコントローラのブロック毎の処理詳細
次に、
図9に示すロボットコントローラ1の機能ブロックごとの処理の詳細について、具体例を用いて説明する。
【0081】
(5-1)抽象状態設定部
抽象状態設定部31は、物体モデル情報I6を参照し、動作空間を認識する技術に基づき、計測装置6から供給される出力信号S6を解析し、動作空間内の各物体の計測結果(種類、位置等)を示す計測情報Imを生成する。さらに抽象状態設定部31は、計測情報Imを生成すると共に、動作空間内の抽象状態を設定する。この場合、抽象状態設定部31は、抽象状態指定情報I1を参照し、動作空間内において設定すべき抽象状態を認識する。なお、動作空間内において設定すべき抽象状態は、目的タスクの種類によって異なる。よって、目的タスクの種類毎に設定すべき抽象状態が抽象状態指定情報I1に規定されている場合には、抽象状態設定部31は、入力信号S1により指定された目的タスクに対応する抽象状態指定情報I1を参照し、設定すべき抽象状態を認識する。
【0082】
図11はピックアンドプレイスを目的タスクとした場合の動作空間の俯瞰図の一例を示す。
図11に示す動作空間には、2つのロボットアーム52a、52bと、4つの物体61a~61dと、障害物62aとが存在している。
【0083】
この場合、ロボットコントローラ1の抽象状態設定部31は、まず、計測装置6から受信した出力信号S6を、物体モデル情報I6等を用いて解析することで、物体61の状態、障害物62aの存在範囲、ゴール地点として設定される領域Gの存在範囲等を認識する。ここでは、抽象状態設定部31は、物体61a~61dの各々の中心の位置ベクトル「x1」~「x4」を、物体61a~61dの位置として認識する。また、抽象状態設定部31は、物体61を把持するロボットハンド53aの位置ベクトル「xr1」と、ロボットハンド53bの位置ベクトル「xr2」とを、ロボットアーム52aとロボットアーム52bの位置として認識する。同様に、抽象状態設定部31は、物体61a~61dの姿勢(
図11の例では物体が球状のため不要)等、障害物62aの存在範囲、領域Gの存在範囲等を認識する。なお、抽象状態設定部31は、例えば、障害物62aを直方体とみなし、領域Gを矩形とみなす場合には、障害物62a及び領域Gの各頂点の位置ベクトルを認識する。そして、抽象状態設定部31は、出力信号S6に基づくこれらの認識結果を、計測情報Imとして生成する。
【0084】
また、抽象状態設定部31は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部31は、計測情報Imに基づき、動作空間内に存在する物体及び領域を認識し、当該物体及び領域に関する認識結果(例えば物体及び領域の種類毎の個数)と制約条件情報I2とに基づき、抽象状態を示す命題を定める。
【0085】
図11の例では、抽象状態設定部31は、計測情報Imにより特定される物体61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部31は、物体「i」(i=1~4)が最終的に載置されるべき目標地点である領域G(破線枠63参照)内に存在するという命題「g
i」を定義する。また、抽象状態設定部31は、計測情報Imにより特定される障害物62に対して識別ラベル「O」を付し、物体iが障害物Oに干渉しているという命題「o
i」を定義する。さらに、抽象状態設定部31は、ロボットアーム52同士が干渉するという命題「h」を定義する。
【0086】
図14は、シーケンス処理装置3によって修正された後の動作空間の俯瞰図を示す。図
14に示す動作空間には、2つのロボットアーム52a、52bと、4つの物体61a~61dと、障害物62a、仮想障害物62bとが存在している。
図11との違いは仮想障害物62bの存在の有無であり、
図14に示すこの仮想障害物62bは、ロボットコントローラ1内の属性情報処理部37で抽象状態を修正するための修正情報Irを生成した際に、ユーザによって描かれた、仮想的な障害物である。この場合、抽象状態設定部31は、修正情報Irが供給されると、仮想障害物62bの実体が実際に動作空間に存在するものとみなし、動作空間内に新たに仮想障害物62bが配置されたかのように、再認識する。
【0087】
この場合、抽象状態設定部31は、修正前の動作空間内の認識に加え、属性情報処理部で生成された、仮想障害物62bの属性を反映した修正情報Irが供給されることで、仮想障害物62bの存在範囲を認識する。そして、抽象状態設定部31は、出力信号S6と、修正情報Irに基づくこれらの認識結果を、計測情報Imとして生成する。
【0088】
図14の例では、抽象状態設定部31は、計測情報Imにより特定される物体61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部31は、対象物「i」(i=1~4)が最終的に載置されるべき目標地点である領域G(破線枠63参照)内に存在するという命題「g
i」を定義する。また、抽象状態設定部31は、計測情報Imにより特定される障害物62aに対して識別ラベル「O」を付し、物体iが障害物Oに干渉しているという命題「o
i」を定義する。また、抽象状態設定部31は、修正情報Irにより特定される仮想障害物62bに対して識別ラベル「Ov」を付し、物体iが仮想障害物Ovに干渉しているという命題「ov
i」を定義する。さらに、抽象状態設定部31は、ロボットアーム52同士が干渉するという命題「h」を定義する。
【0089】
このように、抽象状態設定部31は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題(上述の例ではgi、oi、ovi、h)を、物体61の数、ロボットアーム52の数、障害物62の数等に応じてそれぞれ定義する。そして、抽象状態設定部31は、抽象状態を表す命題を示す情報を、抽象状態設定情報Isとして目標論理式生成部32に供給する。
【0090】
(5-2)目標論理式生成部
図16は、目標論理式生成部32の機能的なブロック構成図である。
図16に示すように、目標論理式生成部32は、機能的には、入力受付部321と、論理式変換部322と、制約条件情報取得部323と、制約条件付加部324とを有する。
【0091】
入力受付部321は、目的タスクの種類と、前記ロボットの作業対象となる対象物の最終状態と、を指定する入力信号S1の入力を受け付ける。また、入力受付部321は、これらの入力を受け付けるタスク入力画面の表示信号S2を、ロボットコントローラ1の目標論理式生成部32に送信する。
【0092】
論理式変換部322は、入力信号S1により指定された目的タスクを、時相論理を用いた論理式に変換する。なお、自然言語で表されたタスクを論理式に変換する方法は、種々の技術が存在する。例えば、
図11の例において、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが与えられたとする。この場合、目標論理式生成部32は、目的タスクを線形論理式(LTL:Linear Temporary Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部31により定義された命題「g
i」と用いて、論理式「◇g
2」を生成する。また、目標論理式生成部32は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「〇」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現しても良い。
【0093】
制約条件情報取得部323は、アプリケーション情報記憶部41から制約条件情報I2を取得する。なおタスクの種類毎に制約条件情報I2がアプリケーション情報記憶部41に記憶されている場合には、制約条件情報取得部323は、入力信号S1により指定された目的タスクの種類に対応する制約条件情報I2を、アプリケーション情報記憶部41から取得する。
【0094】
制約条件付加部324は、制約条件情報取得部323が取得した制約条件情報I2が示す制約条件を、論理式変換部322が生成した論理式に付加することで、目標論理式Ltagを生成する。
【0095】
例えば、ピックアンドプレイスに対応する制約条件として「ロボットアーム52同士が干渉しない」、「物体iは障害物Oに干渉しない」の2つが制約条件情報I2に含まれていた場合、制約条件付加部324は、これらの制約条件を論理式に変換する。具体的には、制約条件付加部324は、前述の説明において抽象状態設定部31により定義された命題「oi」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
□¬h
∧i□¬oi
【0096】
よって、この場合、制約条件付加部324は、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクに対応する論理式「◇g2」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
(◇g2)∧(□¬h)∧(∧i□¬oi)
【0097】
なお、実際には、ピックアンドプレイスに対応する制約条件は、上述した2つに限られず、「ロボットアーム52が同じ対象物を掴まない」、「対象物同士が接触しない」などの制約条件が存在する。また、
図14のような修正後の動作空間における制約条件には「物体iは仮想障害物Ovに干渉しない」といった制約条件が含まれる。このような制約条件についても同様に、制約条件情報I2に記憶され、目標論理式Ltagに反映される。
【0098】
(5-3)タイムステップ論理式生成部
タイムステップ論理式生成部33は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。通常、複数の組み合わせが、存在するため、タイムステップ論理式生成部33は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット5に命令する動作シーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。
【0099】
ここで
図11の説明において例示した「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが設定された場合のタイムステップ論理式生成部33(
図9)の処理の具体例について説明する。
【0100】
この場合、タイムステップ論理式生成部33は、目標論理式Ltagとして、「(◇g2)∧(□¬h)∧(∧i□¬oi)」が目標論理式生成部32から供給される。この場合、タイムステップ論理式生成部33は、命題「gi」をタイムステップの概念を含むように拡張した命題「gi,k」を用いる。ここで命題「gi,k」は「タイムステップkで物体iが領域Gに存在する」という命題である。ここで、目標タイムステップ数を「3」とした場合、目標論理式Ltagは、以下のように書き換えられる。
(◇g2,3)∧(∧k=1,2,3□¬hk)∧(∧i,k=1,2,3□¬oi)
【0101】
また、◇g2,3は以下の式に示すように書き換えることが可能である。
【0102】
【0103】
このとき、上述した目標論理式Ltagは、以下に示す4つの候補「φ1」~「φ4」の論理和(φ1∨φ2∨φ3∨φ4)により表される。
【0104】
【0105】
よって、タイムステップ論理式生成部33は、4つの候補φ1~φ4の論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ1~φ4の少なくともいずれかが真となる場合に真となる。
【0106】
好適には、タイムステップ論理式生成部33は、生成された候補に対し、動作限界情報I3を参照することで、実現可能性を判定し、実現不可と判定した候補を除外するとよい。例えば、タイムステップ論理式生成部33は、動作限界情報I3に基づき、ロボットハンドが1タイムステップ当たりに移動可能な距離を認識する。また、タイムステップ論理式生成部33は、計測情報Imが示す各対象物及びロボットハンドの位置ベクトルに基づき、移動対象となる対象物(i=2)とロボットハンドとの距離を認識する。
【0107】
例えば、タイムステップ論理式生成部33は、ロボットハンド53a及びロボットハンド53bがいずれも、対象物(i=2)との距離が1タイムステップ当たりの移動可能距離よりも長いと判定した場合、上述の候補φ3及び候補φ4は実現不可と判定する。この場合、タイムステップ論理式生成部33は、候補φ3及び候補φ4をタイムステップ論理式Ltsから除外する。この場合、タイムステップ論理式Ltsは、候補φ1と候補φ2との論理和(φ1∨φ2)となる。
【0108】
このように、タイムステップ論理式生成部33は、動作限界情報I3を参照して実現不可能な候補をタイムステップ論理式Ltsから除外することで、後段の処理部の処理負荷を好適に低減させることができる。
【0109】
次に、目標タイムステップ数の設定方法について補足説明する。
【0110】
タイムステップ論理式生成部33は、例えば、ユーザ入力により指定された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部33は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部33は、目的タスクの種類毎に適した目標タイムステップ数を対応付けた情報を予めメモリ12又は記憶装置4に記憶しておき、当該情報を参照することで、実行すべき目的タスクの種類に応じた目標タイムステップ数を決定する。
【0111】
好適には、タイムステップ論理式生成部33は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部33は、制御入力生成部35が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部33は、設定した目標タイムステップ数により制御入力生成部35が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
【0112】
このとき、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を、ユーザが見込む目的タスクの作業時間に相当するタイムステップ数よりも小さい値に設定するとよい。これにより、タイムステップ論理式生成部33は、不必要に大きな目標タイムステップ数を設定することを好適に抑制する。
【0113】
上述の目標タイムステップ数の設定方法による効果について補足説明する。一般に、目標タイムステップ数が大きいほど、制御入力生成部35による最適化処理において最適解が存在する可能性が高くなる一方で、最低化処理等の処理負荷や目的タスク達成に要するロボット5の所要時間が長くなる。以上を勘案し、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を小さい値とし、制御入力生成部35の最適化処理における解が存在するまで徐々に目標タイムステップ数を大きくする。これにより、タイムステップ論理式生成部33は、制御入力生成部35の最適化処理における解が存在する範囲において可能な限り少ない目標タイムステップ数を設定することができる。従って、この場合、最適化処理における処理負荷の低減、及び、目的タスク達成に要するロボット5の所要時間の短縮を実現することができる。
【0114】
(5-4)抽象モデル生成部
抽象モデル生成部34は、計測情報Imと、抽象モデル情報I5とに基づき、抽象モデルを生成する。ここで、抽象モデル情報I5には、目的タスクの種類毎に、抽象モデルの生成に必要な情報が記録されている。例えば、目的タスクがピックアンドプレイスの場合には、対象物の位置や数、対象物を置く領域の位置、ロボット5の台数(又はロボットアーム52の数)等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。そして、抽象モデル生成部34は、抽象モデル情報I5に記録された汎用的な形式の抽象モデルに対し、計測情報Imが示す対象物の位置や数、対象物を置く領域の位置、ロボット5の台数等を反映することで、抽象モデルΣを生成する。
【0115】
ここで、ロボット5による目的タスクの作業時においては、動作空間内のダイナミクスが頻繁に切り替わる。例えば、ピックアンドプレイスでは、ロボットアーム52が物体iを掴んでいる場合には、当該物体iは動くが、ロボットアーム52が物体iを掴んでない場合には、当該物体iは動かない。
【0116】
以上を勘案し、本実施形態においては、ピックアンドプレイスの場合、物体iを掴むという動作を論理変数「δ
i」により抽象表現する。この場合、例えば、抽象モデル生成部34は、
図1に示す動作空間に対して設定すべき抽象モデルを、以下の式(1)により定めることができる。
【0117】
【0118】
ここで、「uj」は、ロボットハンドj(「j=1」はロボットハンド53a、「j=2」はロボットハンド53b)を制御するための制御入力を示し、「I」は単位行列を示す。なお、制御入力は、ここでは、一例として速度を想定しているが、加速度であってもよい。また、「δj,i」は、ロボットハンドjが物体iを掴んだ場合に「1」となり、その他の場合に「0」となる論理変数である。また、「xr1」、「xr2」は、ロボットハンドjの位置ベクトル、「x1」~「x4」は、物体iの位置ベクトルを示す。また、「h(x)」は、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合に「h(x)≧0」となる変数であり、論理変数δとの間で以下の関係を満たす。
δ=1 ⇔ h(x)≧0
【0119】
ここで、式(1)は、タイムステップkでの物体の状態とタイムステップk+1での物体の状態との関係を示した差分方程式である。そして、上記の式(1)では、把持の状態が離散値である論理変数により表わされ、物体の移動は連続値により表わされているため、式(1)はハイブリッドシステムを示している。
【0120】
式(1)では、ロボット5全体の詳細なダイナミクスではなく、対象物を実際に把持するロボット5の手先であるロボットハンドのダイナミクスのみを考慮している。これにより、制御入力生成部35により最適化処理の計算量を好適に削減することができる。
【0121】
また、抽象モデル情報I5には、ダイナミクスが切り替わる動作(ピックアンドプレイスの場合には物体iを掴むという動作)に対応する論理変数及び計測情報Imから式(1)の差分方程式を導出するための情報が記録されている。よって、抽象モデル生成部34は、対象物の位置や数、対象物を置く領域(
図11では領域G)、ロボット5の台数等が変動する場合であっても、抽象モデル情報I5と計測情報Imとを組み合わせることで、対象の動作空間の環境に即した抽象モデルを決定することができる。
【0122】
なお、抽象モデル生成部34は、式(1)に示されるモデルに代えて、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
【0123】
(5-5)制御入力生成部
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルとに基づき、最適となるタイムステップ毎のロボット5に対するタイムステップ毎の制御入力を決定する。この場合、制御入力生成部35は、目的タスクに対する評価関数を定義し、抽象モデル及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。評価関数は、例えば、目的タスクの種類毎に予め定められ、メモリ12又は記憶装置4に記憶されている。
【0124】
例えば、ピックアンドプレイスを目的タスクとした場合、制御入力生成部35は、運ぶ対象となる対象物と当該対象物を運ぶ目標地点との距離「dk」と制御入力「uk」とが最小となる(即ちロボット5が費やすエネルギーを最小化する)ように評価関数を定める。上述の距離dkは、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクの場合には、対象物(i=2)と領域Gとの距離に相当する。
【0125】
例えば、制御入力生成部35は、全タイムステップにおける距離dkの2乗と制御入力ukの2乗との和を評価関数として定め、抽象モデル及びタイムステップ論理式Lts(即ち候補φiの論理和)を制約条件とする以下の式(2)に示す制約付き混合整数最適化問題を解く。
【0126】
【0127】
ここで、「T」は、最適化の対象となるタイムステップ数であり、目標タイムステップ数であってもよく、後述するように、目標タイムステップ数よりも小さい所定数であってもよい。この場合、好適には、制御入力生成部35は、論理変数を連続値に近似する(連続緩和問題とする)。これにより、制御入力生成部35は、計算量を好適に低減することができる。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。
【0128】
また、制御入力生成部35は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部35は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力ukを決定する。
【0129】
好適には、制御入力生成部35は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、使用すべき制御入力ukを決定してもよい。この場合、制御入力生成部35は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、動作空間におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット5が対象物を掴む、ロボット5が運ぶべき複数の対象物のうちの1つの対象物を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、目的タスクの種類毎に予め定められており、目的タスクの種類毎にイベントを特定する情報が記憶装置4に記憶されている。
【0130】
(5-6)サブタスクシーケンス生成部
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスSrを生成する。この場合、サブタスクシーケンス生成部36は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスクを認識し、制御入力情報Icが示すタイムステップ毎の制御入力をサブタスクに変換する。
【0131】
例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット5が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット5の状態、及び当該関数実行前の把持対象の対象物の状態, 論理変数δをそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数δが「1」のときに掴む動作を行うこと表し、論理変数δが「0」のときに放す動作を行うことを表す。この場合、サブタスクシーケンス生成部36は、関数「Move」を、制御入力情報Icが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icが示すタイムステップ毎の論理変数δの遷移に基づき決定する。
【0132】
そして、サブタスクシーケンス生成部36は、関数「Move」と関数「Grasp」とにより構成されるサブタスクシーケンスを示す制御信号S3を生成する。例えば、目的タスクが「最終的に対象物(i=2)が領域Gに存在する」の場合、サブタスクシーケンス生成部36は、対象物(i=2)に最も近いロボットハンドに対し、関数「Move」、関数「Grasp」、関数「Move」、関数「Grasp」のサブタスクシーケンスを生成する。この場合、対象物(i=2)に最も近いロボットハンドは、1回目の関数「Move」により対象物(i=2)の位置まで移動し、1回目の関数「Grasp」により対象物(i=2)を把持し、2回目の関数「Move」により領域Gまで移動し、2回目の関数「Grasp」により対象物(i=2)を領域Gに載置する。
【0133】
また、サブタスクシーケンス生成部36は制御信号S3をシーケンス処理装置3のシーケンス表示部76に送信する。これは制御信号S3をロボット5に送信して実際に動かす前に、シーケンス処理装置3のシーケンス表示部76に送信後、事前に設定したロボット5と同種のロボットモデルによるサブタスクシーケンスを人の目で確認するためである。制御信号S3がシーケンス処理装置3のシーケンス表示部76に供給されると、シーケンス処理装置3のシーケンス表示部76に映っているロボット5と同種のロボットモデルが、生成したサブタスクシーケンスに則り動作する。この動作は繰り返し確認することが可能である。また、動作中に3次元方向に視点を回転及び平行移動させることが可能で、動作空間内のロボットのサブタスクシーケンスによる動作を、所望の視点で確認することが可能である。
【0134】
(5-7)属性情報処理部
属性情報処理部37は、シーケンス処理装置3の、属性信号生成部75で生成される属性信号S5と、アプリケーション情報記憶部41が記憶する属性情報I7とに基づき、修正情報Irを生成する。この場合、属性情報処理部37は、属性情報I7を参照することで、シーケンス処理装置3において、ユーザによって選択された物体と、ユーザによって選択された属性の組み合わせを認識し、物体と属性の組み合わせに応じて、抽象状態を修正するための修正情報Irを生成する。
【0135】
例えば、
図14の例では、対象物61dを領域Gに移動させるタスクにおいて、仮想障害物62bを新たに生成することで、仮想障害物62bを回避して、領域Gに移動する計画を新たに生成することが可能となる。
【0136】
図14に示す例において、属性情報処理部37は、シーケンス処理装置3の、属性信号生成部75より「ユーザによって描画された物体Ovに、障害物という属性が付与された」という情報を持つ属性信号S5が供給される。さらに、属性情報I7を参照することで、属性信号S5の情報をもとに、「動作空間内の特定の位置に新たに仮想障害物62bを生成する」という修正情報Irを生成する。修正情報Irが、抽象状態設定部31に供給されることで、「初めから動作空間内に仮想障害物62bが配置されている」という抽象状態を新たに設定することが可能となる。
【0137】
また、
図15の例では、対象物61dを領域Gに移動させるタスクにおいて、経由点62cを新たに生成することで、経由点62cを経由して、領域Gに移動する計画を新たに生成することが可能となる。
【0138】
さらに、
図15に示す例において、属性情報処理部37は、シーケンス処理装置3の、属性信号生成部75より「ユーザによって描画された物体Ovに、経由点という属性が付与された」という情報を持つ属性信号S5が供給される。さらに、属性情報I7を参照することで、属性信号S5の情報をもとに、「動作空間内の特定の位置に新たに経由点62cを生成する」という修正情報Irを生成する。修正情報Irが、抽象状態設定部31に供給されることで、「初めから動作空間内に経由点62cが設定されている」という抽象状態を新たに設定することが可能となる。
【0139】
(6)シーケンス処理装置のブロック毎の処理詳細
次に、
図10に示すシーケンス処理装置3の機能ブロックごとの処理の詳細について、具体例を用いて説明する。
【0140】
(6-1)制御信号処理部
制御信号処理部71は、ロボットコントローラ1からサブタスクシーケンスを示す制御信号S3を受信した際に、サブタスクシーケンスの計画を表示するための計画表示信号Ssを生成し、シーケンス表示部76に供給する。また、制御信号処理部71は、ロボットコントローラ1から制御信号を受信した際に、ユーザからの入力を受け付けるための入力受付信号Siを生成し、入力受付部72に供給する。入力受付信号Siには、動作空間内のロボット、障害物、対象物、その他動作空間を構築する物体の位置ベクトルや、形状などの情報も含まれる。また、制御信号処理部71は、受信した制御信号S3を返還せずに保存することが可能である。さらに、制御信号処理部71は、入力受付部72からロボット5を動作させるための信号Saを受信すると、保存していた制御信号S3をそのままロボット5に送信することで、サブタスクシーケンスに沿ったロボット動作を行うことが可能となる。
【0141】
(6-2)入力受付部
入力受付部72は、制御信号処理部71から入力受付信号Siが供給されると、ユーザによる画面上での操作が可能となる。具体的には、入力受付信号Siには、動作空間内のロボット、障害物、対象物、その他動作空間を構築する物体の位置ベクトルや、形状などの情報も含まれており、入力受付部で変換処理を行うことで、これらの情報を反映させた操作が可能となる。
【0142】
例えば、
図13は第3実施形態におけるシーケンス処理時の画面である。このときユーザは、マウスなどの入力装置を用いて、画面上で、他の物体が干渉しない位置に、仮想物体Ovを描画することができる。その後、仮想物体Ovの近くに、属性選択ができるアイコン(
図13では逆三角形のアイコン)が表示され、アイコンを画面上で選択すると、「障害物」又は「経由点」という2つの属性を選択することができる。このとき「障害物」を選択すると、仮想物体Ovは新しく生成された障害物とみなされる。一方で、「経由点」を選択すると、仮想物体Ovは新しく生成された経由点とみなされる。仮想物体Ovが経由点であるとみなされた場合、ロボットは、仮想物体Ovの領域内を経由することが制約条件として課せられる。
【0143】
そして、入力受付部72は、ユーザによって入力された内容を画面上にリアルタイムに表示するための入力表示信号Srを生成し、シーケンス表示部76に送信する。これにより、画面上での仮想物体の描画、物体若しくは仮想物体の選択や属性の選択といった操作がリアルタイムで表示される。
【0144】
さらに入力受付部72は、ユーザによって、画面上で物体を描画したり、物体を選択したりする操作が行われた際に、画面上で物体が選択されたことを示す物体選択信号Soを生成し、物体情報取得部73に供給する。
【0145】
また、入力受付部72は、ユーザによって、画面上で属性を選択するという操作が行われた際に、画面上で属性が選択されたことを示す属性選択信号Spを生成し、属性情報取得部74に供給する。
【0146】
さらに入力受付部72は、ユーザの指示にしたがって、ロボット5を動作させるための動作信号Saを生成し、制御信号処理部71に供給する。具体的には、画面上に、サブタスクシーケンスに沿ってロボットを動作するか否かを判断するための選択肢が表示され、ユーザによって選択されることでロボット動作を行うかどうかが決定される。入力受付部72が、ユーザによって、ロボット動作を行うという入力を受け付けた場合、動作信号Saを生成し、制御信号処理部71に供給することでロボット動作が行われる。一方、ロボット動作を行わないという入力を受け付けた場合、入力受付部72は、シーケンス処理に関する入力を受け付けるようになり、動作空間内の仮想物体の描画、物体の選択や、物体毎に設定された属性の選択といった操作が可能となる。
【0147】
(6-3)物体情報取得部
物体情報取得部73は、入力受付部72から物体選択信号Soが供給されると、ユーザによって画面上で選択された物体の情報を表す、アプリケーション情報記憶部41から、選択された物体に対応する物体モデル情報I6である物体選択情報Ioを取得し、属性信号生成部75に供給される。この物体選択情報Ioには、選択した物体の位置ベクトル(例えば、x,y座標)、物体の形状(例えば、矩形、円形、円柱、球体)、物体の種類(物体の種別、又は実際の物体、若しくは仮想物体)といった物体に関する情報が含まれる。例えば、
図13の例では、仮想物体Ovを選択した場合、Ovの「頂点の位置ベクトルの値」、「矩形」、「描画した物体」といった情報が取得される。また、いくつかの実施形態では、物体情報取得部73は、カメラによる撮影画像に対して、画像認識技法を行うことで、物体を認識することで、その物体情報を取得してもよい。
【0148】
(6-4)属性情報取得部
属性情報取得部74は、入力受付部72から属性選択信号Spが供給されると、アプリケーション情報記憶部41から、ユーザによって画面上で選択された属性の情報を表す属性選択情報Ipを取得する。取得された属性選択情報Ipは、属性信号生成部75に供給される。例えば、
図13の例では、「障害物」、又は「経由点」のいずれかが選択された属性が取得される。
【0149】
(6-5)属性信号生成部
属性信号生成部75は、物体選択情報Ioと、属性選択情報Ipとに基づき、取得した物体の情報と、取得した属性の情報を結合した情報を示す属性信号S5を生成する。属性信号S5は、属性情報処理部37に供給されることで、「ユーザによって選択された特定の物体が、特定の属性を付与された」という情報をロボットコントローラ1に知らせることができる。例えば、
図13の例では、属性信号生成部75は「描画された位置に存在する仮想物体Ovが、障害物という属性を付与された」ということを示す属性信号S5を生成する。
【0150】
(7)表示画面の詳細
シーケンス処理装置3のシーケンス表示部76に出力される情報について説明する。
【0151】
図12は、第3実施形態における、シーケンス処理前の計画の表示例である。この表示例は、シーケンス表示部76に、制御信号処理部71から表示信号Ssが供給されることで表示される最初の表示である。
図12は、
図11の作業俯瞰図に、サブタスクシーケンスの計画である計画64dが表示される。ユーザによって、計画64dが画面上で確認された後に、入力受付部72において、ロボットの動作を行うための動作信号Saを、制御信号処理部71に供給するかどうかを決定するための入力が画面上で行われる。
【0152】
図13は、第3実施形態における、シーケンス処理中の計画の表示例である。この表示例は、入力受付部72において、ロボットの動作を行わないという入力を受け付けた後、ユーザによって物体62bが描画されたときの表示例である。このとき、描画した物体62bが選択されると、物体62bの近くに属性選択ができるアイコン66が表示され、アイコン66が選択されると、属性を示すウィンドウ67が表示される。第1実施形態においては、ウィンドウ67に、「障害物」及び「経由点」という複数の属性が表示され、どちらかの属性が画面上で選択されると、属性情報取得部74で、選択された属性の情報が取得される。
【0153】
(
8)処理フロー
図17は、第3実施形態においてシーケンス処理装置3と、ロボットコントローラ1が実行するサブタスクシーケンスの処理の概要を示すフローチャートの一例である。
【0154】
まず、ロボットコントローラ1の抽象状態設定部31は、計測装置6から供給される出力信号S6に基づき、動作空間内の物体の計測結果を示す計測情報Imの生成及び抽象状態の設定を行う(ステップS11)。次に、ロボットコントローラ1の目標論理式生成部32、タイムステップ論理式33、抽象モデル生成部34、制御入力生成部35、サブタスクシーケンス生成部36の処理によって、サブタスクシーケンスの制御入力S3を生成する(ステップS12)。
【0155】
次に、シーケンス処理装置3の制御信号処理部71によって、サブタスクシーケンスを表示するための信号Ssが生成され、シーケンス表示部によって、サブタスクシーケンスの計画が画面上に表示される(ステップS13)。そして、サブタスクシーケンスの計画が、ユーザにとって所望の計画であった場合、ユーザが入力装置を用いて指示を与えると、ロボット動作を行う信号Saが入力受付部72で生成され、制御信号処理部71に供給される。その後、制御信号S3がロボット5に供給され、ロボット動作が行われる(ステップS14;Yes)。
【0156】
一方で、ユーザがサブタスクシーケンスの修正処理操作を必要と判断した場合、ユーザが入力装置を用いて指示を与えると、入力受付部72で、ステップS14;Noの場合に、ユーザによるシーケンス修正処理操作を受け付ける(ステップS15)。
【0157】
次に、物体情報取得部73は、ユーザによって画面上で特定の物体が選択された場合、物体選択信号Soを受信し、選択された物体の位置ベクトル、形状、物体の種類といった物体の情報を表す、物体選択信号Soに対応した物体選択情報Ioを取得する(ステップS16)。さらに、属性情報取得部74は、ユーザによって画面上で属性が選択された場合、属性選択信号Spを受信し、選択された属性の情報を表す、属性選択信号Spに対応する属性情報Ipを取得する(ステップS17)。そして、属性信号生成部75は、物体選択情報Ioと、属性選択情報Ipとに基づき、取得した物体の情報と、取得した属性の情報を結合した情報を示す属性信号S5を生成する(ステップS18)。生成した属性信号S5は、ロボットコントローラ1に供給される。
【0158】
そして、ロボットコントローラ1の属性情報処理部37は、シーケンス処理装置3の、属性信号生成部75で生成される属性信号S5と、アプリケーション情報記憶部41が記憶する属性情報I7とに基づき、抽象状態を新たに設定し、修正後の動作空間の状態を認識させるために必要な、修正情報Irを生成する(ステップS19)。その後、フローチャートの処理は、ステップS11に戻る。
【0159】
抽象状態設定部31は、属性情報処理部37より供給される修正情報Irと、計測装置6から供給される出力信号S6に基づき、動作空間内の物体の計測結果を示す計測情報Imの生成及び抽象状態の設定を更新する(ステップS11)。その後、前述したように、ステップS12,S13、S14の各処理が実行される。
【0160】
図17のフローチャートは、実行の具体的な順番を示しているが、実行の順番は描かれている形態と異なっていてもよい。例えば、2つ以上のステップの実行の順番は、示された順番に対して入れ替えられてもよい。また、
図17の中で連続して示された2つ以上のステップは、同時に、または部分的に同時に実行されてもよい。さらに、いくつかの実施形態では、
図17に示された1つまたは複数のステップがスキップまたは省略されてもよい。
【0161】
上記の通り、シーケンス処理装置(修正装置)3とロボットコントローラ1は、協働してロボット1の動作を制御する。したがって、上記したロボットコントローラの機能ブロックと、シーケンス処理装置の機能ブロックは、単なる例示に過ぎない。他の実施形態では、シーケンス処理装置(修正装置)3の機能ブロックの一部又は全部が、ロボットコントローラ1の機能として含まれていてもよいし、あるいは、その逆であってもよい。
【0162】
<第4実施形態>
図18は、第4実施形態における、シーケンス処理装置3によるシーケンス修正中の画面の一例である。
図18に表示しているタスクは、ロボットアーム80で「ペットボトル81を領域Gに運ぶ」というピックアンドプレイスのタスクであり、この例では、対象物体の状態に関する属性を付与することで、所望のタスクを実現することを目的としている。具体的には、ふたがついているペットボトル81に、「Open」、「Closed」という属性を付与することで、選択した属性に応じた状態に変化させた後に、ピックアンドプレイスのタスクを実行させる。計測装置6によっても、ペットボトルのふたが開いているか、閉まっているかは判断することができない。そのため、ユーザによって、「Open」、「Closed」という属性を付与することで、ロボットの動作シーケンスに適切な修正を行い、ロボットによる所望のタスクを実現することができる。「Open」という属性は、ペットボトルにふたが付いているが、ユーザ等によって一度ふたが開けられているため、ふたが完全には密閉されていない情報を示す。つまり、ロボットは、ふたに関連するタスク(例えば、開く)を実行できることを示す。一方、「Closed」という属性は、ペットボトルに、完全に密閉された状態でふたが付いているので、ロボットは、ふたに関連するタスク(例えば、開く)を実行できないことを示す。本実施形態にかかる属性情報も、ロボットと対象物との関係
に依存し得る。
【0163】
例えば、シーケンス処理装置3の入力受付部72は、ユーザによって、画面上でペットボトル81が選択されると、入力を受け付ける。その後、ペットボトル81の近くに、属性選択ができるアイコン82と、ペットボトル81の状態が視覚的にわかるウィンドウ84が表示される。さらに、ユーザがアイコンを画面上で選択すると、「Open」「Closed」という2つの属性を選択することができる。このとき、「Open」を選択すると、ロボットに対する「ペットボトル81のふたを開ける」という新たなタスクを生成することができる。すなわち、「ペットボトル81のふたを開ける」というタスクの後に、「ペットボトル81を領域Gに運ぶ」というタスクを段階的に行う計画を生成することができる。一方で、「Closed」を選択すると、ペットボトル81のふたがついている場合、ふたに関連するタスクは行わず、「ペットボトル81を領域Gに運ぶ」というタスクのみを実施する。
【0164】
例えば、
図18の例において、ペットボトルの初期状態が「ふたが開いている状態」だった場合、「Closed」を選択すると、「ペットボトル81のふたを閉じる」というタスクの後に、「ペットボトル81を領域Gに運ぶ」というタスクを実施する。一方で、「Open」を選択すると、ふたに関連するタスクは行わず、「ペットボトル81を領域Gに運ぶ」というタスクのみを実施する。
【0165】
第4実施形態では、対象物の状態に関する属性を付与することで、所望のタスクを実現するための例として、ペットボトルのふたの開け閉めを行うタスクを取り上げた。その他の例として、ドアの場合、「開いている」又は「閉まっている」、といったように、対象物の状態を視覚的に決定することができる場合であれば、この実施形態にも含まれるものとする。
【0166】
<第5実施形態>
図19は、第5実施形態における、シーケンス処理装置3によるシーケンス修正中の画面の一例である。
図19に表示しているタスクは、ロボットアーム90で「対象物92を領域Gに運ぶ」というピックアンドプレイスのタスクである。この例では、動作空間内の物体の種類に関する属性を付与することで、所望のタスクを実現することを目的としている。
図19の例の状況は、対象物92のピックアンドプレイスのタスクを実施する際に、すぐ近くに配置されている大きな障害物91に接触してしまう可能性があるため、対象物92の位置まで、ロボットアーム90の手先を移動させることができない。そこで、「障害物91を移動させる」タスクを行った後に、「対象物92を領域Gに運ぶ」というタスクを実施するために、障害物91に属性を付与する。具体的には、障害物91に、「障害物」、又は「対象物」という属性を付与することで、選択した属性に応じた種類に変化させた後に、ピックアンドプレイスのタスクを実行させる。「障害物」という属性は、物体が移動できないことを示し、「対象物」という属性は、物体が移動可能であることを示す。本実施形態にかかる属性情報も、ロボットと対象物との関係を依存し得る。
【0167】
例えば、シーケンス処理装置3の入力受付部72は、ユーザによって、画面上で障害物91が選択され、入力を受け付ける。その後、障害物91の近くに、属性選択ができるアイコン94と、障害物91の属性を示すウィンドウ95が表示され、アイコンを画面上で選択すると、「障害物」又は「対象物」という2つの属性を選択することができる。このとき、「対象物」を選択すると、障害物91を対象物91とみなすことができる。これにより「対象物91を移動させる」という新たなタスクを生成することができる。すなわち、「対象物91を移動させる」というタスクの後に、「対象物92を領域Gに運ぶ」というタスクを段階的に行う計画を生成することができる。一方で、「障害物」を選択すると、障害物91という物体の種類は「障害物」のまま変わらず、「対象物92を領域Gに運ぶ」というタスクの実施が不可能であるという結果に終わる。
【0168】
以上説明した様々な実施形態において、ユーザが物体に関する属性情報を付与することで、計測装置等によっても特定できない属性を物体に付与することができる。そのため、ロボットが目的タスクを達成するために、より柔軟な計画を生成することができる。
【0169】
いくつかの実施の形態では、情報処理装置又は情報処理方法は、ロボットが動作する空間と、前記空間における物体または仮想物体についての複数の属性候補を表示し、前記複数の属性候補のうち、選択された属性候補を前記物体または仮想物体の属性に設定する。
【0170】
<その他の実施形態>
尚、上述の実施形態では、ハードウェアの構成として説明したが、これに限定されるものではない。本開示は、任意の処理を、CPUにコンピュータプログラムを実行させることにより実現することも可能である。
【0171】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、DVD(Digital Versatile Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0172】
なお、本開示は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施形態を適宜組み合わせて実施されてもよい。
【0173】
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0174】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
を備える情報処理装置。
(付記2)
前記ロボットの動作シーケンスを表示するシーケンス表示部と、
前記表示結果に対して、入力された前記ロボットの動作を行うための信号を受け付ける、前記入力受付部と、
前記入力に基づいて、前記動作シーケンスの制御信号を前記ロボットに送信する制御信号処理部を更に備える、付記1に記載の情報処理装置。
(付記3)
前記物体情報と、前記属性情報を結合し、前記物体情報と前記属性情報との組み合わせた属性信号を生成する、属性信号生成部を更に備える、付記1又は2に記載の情報処理装置。
(付記4)
前記物体情報取得部は、前記入力受付部を介した前記入力に基づいて、前記物体又は仮想物体の情報を取得する、付記1~3のいずれか一項に記載の情報処理装置。
(付記5)
前記制御信号処理部は、前記ロボットの動作シーケンスの制御信号を、動作シーケンスを表示させるための表示信号に変換し、前記シーケンス表示部に供給する、付記2に記載の情報処理装置。
(付記6)
前記入力受付部は、前記入力を受け付け、前記物体又は仮想物体に対する操作、又は、前記物体又は仮想物体の属性をリアルタイムで表示させるための信号を生成し、シーケンス表示部に供給する、付記1~5のいずれか一項に記載の情報処理装置。
(付記7)
前記シーケンス表示部は、前記入力受付部が、前記物体又は仮想物体の選択に関する前記入力を受け付けると、前記物体又は仮想物体の複数の属性を選択可能に表示する、付記6に記載の情報処理装置。
(付記8)
前記属性情報は、前記ロボットと前記物体又は仮想物体との関係に基づくものである、付記1~7のいずれか一項に記載の情報処理装置。
(付記9)
前記属性情報は、前記ロボットが前記仮想物体を通過可能なことを示す情報、および前記ロボットが前記仮想物体を通過不可能なことを示す情報を含む、付記8に記載の情報処理装置。
(付記10)
前記属性情報は、前記ロボットが前記物体に関連するタスクを実行可能なことを示す情報、および前記ロボットが前記物体に関連するタスクを実行不可能なことを示す情報を含む、付記8に記載の情報処理装置。
(付記11)
前記属性情報は、前記物体が前記ロボットにより移動可能なことを示す情報、および前記物体が前記ロボットにより移動不可能なことを示す情報を含む、付記8に記載の情報処理装置。
(付記12)
ロボットの動作シーケンスを表示するシーケンス表示部と、
前記表示結果に対して、ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
前記入力に基づいて、前記動作シーケンスの制御信号を前記ロボットに送信する制御信号処理部と、
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
前記物体情報と、前記属性情報を結合し、前記物体情報と前記属性情報との組み合わせた属性信号を生成する、属性信号生成部と、
前記属性信号生成部によって生成された、物体と属性の組み合わせの情報を有する前記属性信号を受信し、前記属性信号と、保存している記憶情報に基づいて、ロボットの動作空間を示す抽象状態を修正する修正情報を生成する、属性情報処理部を有する、修正システム。
(付記13)
動作空間を計測する計測装置を更に備え、
前記属性情報処理部で生成した修正情報と、前記計測装置により計測された、ロボットの動作空間の計測結果を示す計測情報に基づいて、属性を考慮した抽象状態を設定する抽象状態設定部を有する、付記12に記載の修正システム。
(付記14)
ロボットに対する動作シーケンスを修正するための入力を受け付け、
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得し、
前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する、情報処理方法。
(付記15)
ロボットに対する動作シーケンスを修正するための入力を受け付ける処理と、
前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する処理と、
前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する処理と、
をコンピュータに実行させるプログラムを格納した非一時的なコンピュータ可読媒体。
(付記16)
ロボットが動作する空間と、前記空間における物体または仮想物体についての複数の属性候補を表示し、
前記複数の属性候補のうち、選択された属性候補を前記物体または仮想物体の属性に設定する、情報処理装置。
【符号の説明】
【0175】
1 ロボットコントローラ
2 入力装置
3 シーケンス処理装置(修正装置)
4 記憶装置
5 ロボット
6 計測装置
10 情報処理装置
41 アプリケーション情報記憶部
71 制御信号処理部
72 入力受付部
73 物体情報取得部
74 属性情報取得部
75 属性信号生成部
76 シーケンス表示部
100 ロボット制御システム(修正システム)