以下、図面を参照しながら、制御装置、制御方法及び記録媒体の実施形態について説明する。
<第1実施形態>
(1)システム構成
図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、制御装置1と、入力装置2と、表示装置3と、記憶装置4と、ロボット5と、計測装置7と、周辺装置8と、を備える。
制御装置1は、ロボット5と周辺装置8に実行させるタスク(「目的タスク」とも呼ぶ。)が指定された場合に、タイムステップ(時間刻み)毎にロボット5及び周辺装置8が実行すべき動作シーケンスを生成し、動作シーケンスをロボット5及び周辺装置8に供給する。後述するように、動作シーケンスは、ロボット5及び周辺装置8が受付可能な単位に目的タスクを分解したタスク又はコマンド(「サブタスク」とも呼ぶ。)から構成されており、以後では「サブタスクシーケンス」とも呼ぶ。
制御装置1は、入力装置2、表示装置3及び記憶装置4と電気的に接続している。例えば、制御装置1は、入力装置2から、目的タスクを指定するための入力信号「S1」を受信する。また、制御装置1は、表示装置3に対し、ロボット5に実行させるタスクに関する表示を行うための表示信号「S2」を送信する。また、制御装置1は、ロボット5の制御に関する制御信号「S4」をロボット5に送信し、周辺装置8の制御に関する制御信号「S5」を周辺装置8に送信する。さらに、制御装置1は、計測装置7から出力信号「S3」を受信する。
入力装置2は、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置などが該当する。入力装置2は、ユーザの入力に基づき生成した入力信号S1を、制御装置1へ供給する。
表示装置3は、例えば、ディスプレイ、プロジェクタ等であり、制御装置1から供給される表示信号S2に基づき、所定の表示を行う。後述するように、例えば、表示装置3は、表示信号S2に基づき、目的タスクに関する情報を指定する入力画面(「タスク入力画面」とも呼ぶ。)を表示する。
記憶装置4は、アプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、目的タスクからサブタスクのシーケンスを生成するために必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は、図3を参照しながら後述する。記憶装置4は、制御装置1に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記録媒体であってもよい。また、記憶装置4は、制御装置1とデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は、複数のサーバ装置から構成されてもよい。
ロボット5は、制御装置1から送信された制御信号S4に基づき動作を行う。図1に示すロボット5は、一例として、ロボット制御部51と、物を把持可能なロボットアーム52と、を有する。ロボットアーム52は、ロボット制御部51の制御に基づき、周辺装置8により搬送される対象物61を、対象物61以外の物体である障害物62に干渉することなく目的地領域63へ移動させるピックアンドプレイス(摘み上げて移動させる処理)を行う。ロボット制御部51は、制御信号S4が示すサブタスクシーケンスに基づき、ロボットアーム52の動作制御を行う。ロボット5は、垂直多関節型ロボットであってもよく、水平多関節型などの任意の種類のロボットであってもよい。
計測装置7は、ロボット5及び周辺装置8が作業を行う作業空間6内を計測対象範囲として計測を行うカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数の外界センサである。計測装置7は、生成した出力信号S3を制御装置1に供給する。出力信号S3は、作業空間6内を撮影した画像データであってもよく、作業空間6内の物体の位置を示す点群データであってもよい。
周辺装置8は、制御装置1から送信された制御信号S5に基づき動作を行う。図1に示す周辺装置8は、一例として、周辺装置制御部81と、物を搬送可能な搬送機器82と、を有する。搬送機器82は、周辺装置制御部81の制御に基づき、対象物61及び障害物62などの搬送を行う。周辺装置制御部81は、制御信号S5が示すサブタスクシーケンスに基づき、搬送機器82の動作制御を行う。周辺装置8は、AGV(Automated Guided Vehicle)又はスライダーであってもよく、所定方向又は複数方向に搬送可能なコンベアであってもよい。また、周辺装置8は、対象物61を収容する容器又は棚を移動させる機器であってもよい。
なお、図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボット5は複数台存在してもよい。また、ロボット5は、ロボットアーム52を2つ以上備えてもよい。これらの場合であっても、制御装置1は、目的タスクに基づき、ロボットアーム52毎に実行すべきサブタスクシーケンスを生成し、当該サブタスクシーケンスを示す制御信号S4を、対象のロボットアーム52を有するロボット5に送信する。同様に、周辺装置8又は搬送機器82は複数台存在してもよい。また、計測装置7は、ロボット5の一部であってもよい。また、ロボット制御部51は、ロボット5とは別体に構成されてもよい。この場合、ロボット制御部51は、制御装置1に組み込まれてもよい。また、入力装置2及び表示装置3は、夫々、制御装置1に内蔵されるなどの態様により、制御装置1と同一の装置(例えばタブレット型端末)として構成されてもよい。また、制御装置1は、複数の装置から構成されてもよい。この場合、制御装置1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、制御装置の少なくとも一部の機能を、ロボット5又は周辺装置8が有してもよい。
(2)制御装置のハードウェア構成
図2は、制御装置1のハードウェア構成を示す。制御装置1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス19を介して接続されている。
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ11は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などのプロセッサである。
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)などの各種のメモリにより構成される。また、メモリ12には、制御装置1が所定の処理を実行するためのプログラムが記憶される。また、メモリ12は、作業メモリとして使用され、記憶装置4から取得した情報等を一時的に記憶する。なお、メモリ12は、記憶装置4として機能してもよい。同様に、記憶装置4は、制御装置1のメモリ12として機能してもよい。なお、制御装置1が実行するプログラムは、メモリ12以外の記録媒体に記憶されてもよい。
インターフェース13は、制御装置1と他の装置とを電気的に接続するためのインターフェースである。例えば、インターフェース13は、制御装置1と入力装置2とを接続するためのインターフェース、制御装置1と表示装置3とを接続するためのインターフェース、及び制御装置1と記憶装置4とを接続するためのインターフェースを含む。また、インターフェース13は、制御装置1とロボット5とを接続するためのインターフェース、制御装置1と周辺装置8とを接続するためのインターフェース、及び制御装置1と計測装置7とを接続するためのインターフェースを含む。これらの接続は、有線接続であってもよく、無線接続であってもよい。例えば、制御装置1と記憶装置4とを接続するためのインターフェースは、プロセッサ11の制御に基づき記憶装置4とデータの送受信を有線又は無線により行うための通信インターフェースであってもよい。他の例では、制御装置1と記憶装置4とは、ケーブル等により接続されてもよい。この場合、インターフェース13は、記憶装置4とデータの授受を行うためのUSB(Universal Serial Bus)、SATA(Serial AT Attachment)などに準拠したインターフェースを含む。
なお、制御装置1のハードウェア構成は、図2に示す構成に限定されない。例えば、制御装置1は、入力装置2、表示装置3及び記憶装置4の少なくとも一方を含んでもよい。また、制御装置1は、スピーカなどの音出力装置と接続又は内蔵してもよい。これらの場合、制御装置1は、入力機能及び出力機能が本体と一体となったタブレット型端末等であってもよい。
(3)アプリケーション情報
次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
図3は、アプリケーション情報記憶部41に記憶されるアプリケーション情報のデータ構造の一例を示す。図3に示すように、アプリケーション情報記憶部41は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6とを含む。
抽象状態指定情報I1は、サブタスクシーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、作業空間6内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、目的タスクの種類毎に、定義する必要がある抽象状態を指定する。なお、目的タスクは、例えば、ピックアンドプレイス、製品の組み立て、弁当箱などの容器への具材の配置などの種々の種類のタスクであってもよい。
制約条件情報I2は、目的タスクを実行する際のロボット5及び周辺装置8に関する制約条件を示す情報である。制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム52)が接触してはいけないという制約条件、ロボット5と周辺装置8とが接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、目的タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
動作限界情報I3は、制御装置1により制御が行われるロボット5及び周辺装置8の動作限界に関する情報を示す。動作限界情報I3は、ロボット5の場合には、ロボットアーム52のリーチング等の各動作の速度及び加速度の最大値、及び、可動角度などの動作制約の情報を含む。また、動作限界情報I3は、周辺装置8の場合には、搬送機器82の搬送の速度及び加速度の最大値、及び、可能な搬送方向などの動作制約の情報を含む。
サブタスク情報I4は、ロボット5が受付可能なサブタスクの情報と、周辺装置8が受付可能なサブタスクの情報とを含む。例えば、目的タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボットアーム52の移動であるリーチングと、ロボットアーム52による把持であるグラスピングとを、ロボット5のサブタスクとして規定する。また、この場合、サブタスク情報I4は、搬送機器82による物体の搬送に関する動作を、周辺装置8のサブタスクとして規定する。サブタスク情報I4は、目的タスクの種類がユーザにより選択可能な場合、目的タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。
抽象モデル情報I5は、作業空間6におけるロボット5及び周辺装置8を含む物体のダイナミクスを抽象化したモデル(「抽象モデル」とも呼ぶ。)に関する情報である。抽象モデル情報I5は、目的タスクの種類がユーザにより選択可能な場合、目的タスクの種類毎に適した抽象モデルに関する情報を有している。抽象モデルは、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件(「ダイナミクス切替条件」とも呼ぶ。)を示す情報を含む。ダイナミクス切替条件は、ロボット5又は周辺装置8の少なくとも一方に関わるダイナミクスの切り替わりの条件である。図1の例では、以下のようなダイナミクス切替条件(a)、(b)が与えられる。
(a)「対象物61又は障害物62は、搬送機器82に載ると、搬送機器82の動作速度に基づき一定方向に動く」
(b)「ロボットアーム52が対象物61を掴むと、対象物61は、搬送機器82に載っているか否かに関わらず、ロボットアーム52の動作に基づき動く」
物体モデル情報I6は、計測装置7が生成した出力信号S3から認識すべき各物体(図1の例では、ロボットアーム52、対象物61、障害物62、目的地領域63、搬送機器82など)の物体モデルに関する情報である。物体モデル情報I6は、例えば、上述した各物体の種類、位置、又は/及び姿勢を制御装置1が認識するために必要な情報と、各物体の3次元形状を認識するためのCADデータなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
このように、アプリケーション情報は、ロボット5の動作限界、サブタスク、及び抽象モデルなどの動き特性を示すロボット動作情報と、周辺装置8の動作限界、サブタスク及び抽象モデルなどの動き特性を示す周辺装置動作情報と、を夫々含んでいる。なお、アプリケーション情報記憶部41は、上述した情報の他、サブタスクシーケンスの生成処理に関する種々の情報を記憶してもよい。
(4)機能ブロック
図4は、制御装置1の機能ブロックの一例である。制御装置1のプロセッサ11は、機能的には、状態計測部30と、抽象状態設定部31と、目標論理式生成部32と、タイムステップ論理式生成部33と、抽象モデル生成部34と、制御入力生成部35と、サブタスクシーケンス生成部36とを有する。なお、図4では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。
状態計測部30は、計測装置7から供給される出力信号S3に基づき、作業空間6内における物体の状態を示す情報(「状態情報Im」とも呼ぶ。)を生成する。具体的には、状態計測部30は、出力信号S3を受信した場合に、物体モデル情報I6等を参照し、作業空間6内の環境を認識する技術(画像処理技術、画像認識技術、音声認識技術、RFID(Radio Frequency Identifier)を用いる技術等)により出力信号S3を解析する。これにより、状態計測部30は、目的タスクの実行に関連する作業空間6内の各物体の種類毎の数、位置及び姿勢等を計測し、この計測結果を、状態情報Imとして生成する。例えば、状態情報Imは、図1の場合、ロボットアーム52、対象物61、障害物62、搬送機器82の各々の数、位置、及び姿勢などの情報を含む。状態計測部30は、生成した状態情報Imを、抽象状態設定部31及び抽象モデル生成部34に供給する。なお、状態情報Imには、3次元形状の物体の計測結果に加えて、図1の目的地領域63などの目的タスクに関連する平面的な物体(領域)に対する位置及び範囲などの計測結果が含まれてもよい。
抽象状態設定部31は、上述の状態情報Im及びアプリケーション情報記憶部41から取得した抽象状態指定情報I1等に基づき、目的タスクを実行する際に考慮する必要がある作業空間6内の抽象状態を設定する。この場合、抽象状態設定部31は、各抽象状態に対し、抽象状態を論理式で表すための命題を定義する。抽象状態設定部31は、設定した抽象状態を示す情報(「抽象状態設定情報IS」とも呼ぶ。)を目標論理式生成部32に供給する。
目標論理式生成部32は、目的タスクに関する入力信号S1を入力装置2から受信した場合に、抽象状態設定情報ISに基づき、入力信号S1が示す目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部32は、生成した目標論理式Ltagを、タイムステップ論理式生成部33に供給する。また、目標論理式生成部32は、目的タスクに関する入力を受け付けるタスク入力画面を表示するための表示信号S2を生成し、当該表示信号S2を表示装置3に供給する。
タイムステップ論理式生成部33は、目標論理式生成部32から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部33は、生成したタイムステップ論理式Ltsを、制御入力生成部35に供給する。
抽象モデル生成部34は、状態情報Imと、アプリケーション情報記憶部41が記憶する抽象モデル情報I5とに基づき、作業空間6における現実のダイナミクスを抽象化した抽象モデル「Σ」を生成する。この場合、抽象モデル生成部34は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルΣを生成する。抽象モデルΣの生成方法については後述する。抽象モデル生成部34は、生成した抽象モデルΣを、制御入力生成部35へ供給する。
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとを満たし、評価関数を最適化するタイムステップ毎のロボット5及び周辺装置8への制御入力を決定する。そして、制御入力生成部35は、ロボット5及び周辺装置8へのタイムステップ毎の制御入力を示す情報(「制御入力情報Ic」とも呼ぶ。)を、サブタスクシーケンス生成部36へ供給する。
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、ロボット5及び周辺装置8に動作させるサブタスクシーケンスを夫々生成する。そして、サブタスクシーケンス生成部36は、ロボット5に実行させるサブタスクシーケンスを示す制御信号S4を、インターフェース13を介してロボット5へ供給し、周辺装置8に実行させるサブタスクシーケンスを示す制御信号S5を、インターフェース13を介して周辺装置8へ供給する。なお、制御信号S4、S5には、夫々、サブタスクシーケンスを構成するサブタスクの実行順序及び実行タイミングを示す情報が含まれている。
なお、図4において説明した状態計測部30、抽象状態設定部31、目標論理式生成部32、タイムステップ論理式生成部33、抽象モデル生成部34、制御入力生成部35及びサブタスクシーケンス生成部36の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。より具体的には、各構成要素は、メモリ12又は記憶装置4に格納されたプログラムを、プロセッサ11が実行することによって実現され得る。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組み合わせ等により実現してもよい。また、これらの各構成要素は、例えばFPGA(field-programmable gate array)又はマイコン等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。このように、各構成要素は、プロセッサ以外のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。
(5)ブロック毎の処理詳細
次に、図4に示す機能ブロックごとの処理の詳細について、具体例を用いて説明する。
(5-1)状態計測部及び抽象状態設定部
状態計測部30は、計測装置7から供給される出力信号S3に基づき、作業空間6内の物体の状態(種類、位置等)を示す状態情報Imを生成する。抽象状態設定部31は、状態情報Imに基づき、作業空間6内の抽象状態を設定する。この場合、抽象状態設定部31は、抽象状態指定情報I1を参照し、作業空間6内において設定すべき抽象状態を認識する。なお、作業空間6内において設定すべき抽象状態は、目的タスクの種類によって異なる。よって、目的タスクの種類毎に設定すべき抽象状態が抽象状態指定情報I1に規定されている場合には、抽象状態設定部31は、入力信号S1により指定された目的タスクに対応する抽象状態指定情報I1を参照し、設定すべき抽象状態を認識する。
図5は、作業空間6の俯瞰図を示す。図5に示す作業空間6には、ロボットアーム52と、矢印59の方向に物を搬送する搬送機器82と、搬送機器82上に置かれた対象物61及び障害物62と、目的地領域63と、が存在している。
この場合、状態計測部30は、計測装置7から受信した出力信号S3を、物体モデル情報I6等を用いて解析することで、ロボットアーム52、搬送機器82、対象物61、障害物62の位置及び姿勢などの状態、及び、対象物61の目的地となる目的地領域63の位置及び範囲等を認識する。この場合、抽象化のため、状態計測部30は、ロボットアーム52の手先(ロボットハンド)をロボットアーム52の位置として設定してもよい。そして、抽象状態設定部31は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部31は、状態計測部30の認識結果を示す状態情報Imと、抽象状態指定情報I1とに基づき、抽象状態を示す命題を定める。図5の例では、抽象状態設定部31は、状態情報Imにより特定される対象物61、障害物62、ロボットアーム52、搬送機器82、目的地領域63に夫々識別ラベルを付す。また、抽象状態設定部31は、抽象状態指定情報I1に基づき、対象物61又は障害物62が搬送機器82に載っているという命題、対象物61が最終的に載置されるべき目的地点である領域G(破線枠63参照)内に存在するという命題、ロボットアーム52が障害物62に干渉しているという命題などの目標論理式に用いられる各命題を定義する。
このように、抽象状態設定部31は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題を、対象物61の数、ロボットアーム52の数、障害物62の数等に応じてそれぞれ定義する。そして、抽象状態設定部31は、抽象状態を表す命題を示す情報を、抽象状態設定情報ISとして目標論理式生成部32に供給する。
(5-2)目標論理式生成部
目標論理式生成部32は、目的タスクの種類と、前記ロボットの作業対象となる対象物の最終状態と、を指定する入力信号S1の入力を受け付ける。また、目標論理式生成部32は、これらの入力を受け付けるタスク入力画面の表示信号S2を、表示装置3に送信する。
目標論理式生成部32は、入力信号S1により指定された目的タスクを、時相論理を用いた論理式に変換する。入力信号S1は、自然言語を用いて表されていてもよい。なお、自然言語で表されたタスクを論理式に変換する方法は、種々の技術が存在する。例えば、目標論理式生成部32は、図5の例において、「最終的に対象物61が領域Gに存在する」という命題「g」を示す目的タスクが与えられたとする。この場合、目標論理式生成部32は、目的タスクを線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部31により定義された命題「g」と用いて、論理式「◇g」を生成する。なお、目標論理式生成部32は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「○」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
また、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を取得する。なお、タスクの種類毎に制約条件情報I2がアプリケーション情報記憶部41に記憶されている場合には、目標論理式生成部32は、入力信号S1により指定された目的タスクの種類に対応する制約条件情報I2を、アプリケーション情報記憶部41から取得する。
そして、目標論理式生成部32は、取得した制約条件情報I2が示す制約条件を、目的タスクを示す論理式に付加することで、目標論理式Ltagを生成する。例えば、ピックアンドプレイスに対応する制約条件として、「ロボットアーム52が障害物62に常に干渉しない」、「ロボットアーム52は、搬送機器82に常に干渉しない」などの制約条件情報I2に含まれていた場合、目標論理式生成部32は、これらの制約条件を論理式に変換する。そして、目的タスクに対応する論理式に、変換したこれらの制約条件の論理式を付加することで、目標論理式Ltagを生成する。
次に、タスク入力画面での目的タスクに関する入力例について説明する。
図6は、タスク入力画面の表示例を示す。目標論理式生成部32は、表示信号S2を生成し、当該表示信号S2を表示装置3に送信することで、表示装置3に図6に示すタスク入力画面を表示させている。図6に示すタスク入力画面は、主に、タスク種類指定欄15と、画像表示欄16と、同種対象物指定ボタン17と、決定ボタン20とを有し、タスクの種類の指定及び対象物61とみなす物体の指定を受け付ける。
目標論理式生成部32は、タスク種類指定欄15において、目的タスクの種類を指定する入力を受け付ける。ここでは、一例として、タスク種類指定欄15はプルダウンメニュー形式の入力欄である。目標論理式生成部32は、たとえば、受付可能な目的タスクの種類の候補を、タスク種類指定欄15において選択可能に一覧表示する。ここでは、タスク種類指定欄15には、ピックアンドプレイスが目的タスクの種類として指定されている。
また、目標論理式生成部32は、画像表示欄16において、計測装置7が作業空間6内を撮像した画像を表示する。そして、目標論理式生成部32は、画像表示欄16上でのタッチパネル操作又はマウス操作等に基づき、対象物61とみなす物体を指定する入力を受け付ける。
この場合、第1の例では、目標論理式生成部32は、タスク入力画面の表示時点において、公知の画像認識処理に基づき、画像表示欄16での対象物61の候補となる物体の領域(ここでは領域18b、18c)を認識する。そして、目標論理式生成部32は、当該領域のうちいずれかがタッチ操作又はクリック操作により選択された場合に、選択された領域(ここでは領域18b)の物体を対象物61とみなす。第2の例では、目標論理式生成部32は、タッチ操作又はクリック操作により対象物61を構成する一部の画素が指定された場合、指定された画素を含む物体の領域を、対象物61の領域とみなす。第3の例では、目標論理式生成部32は、対象物61とする物体の画像領域を丸で囲む操作を検知した場合、丸で囲まれた画像領域内の物体を対象物61とみなす。
また、目標論理式生成部32は、画像認識処理により、領域18aが目的地領域63を示す領域であると自動認識する。この場合、目的地領域63には、目的地領域63を目標論理式生成部32が認識することを容易にするためのマーカなどが付されてもよく、目的地領域63の形状及び大きさ等の情報がアプリケーション情報として記憶装置4に記憶されていてもよい。なお、目標論理式生成部32が目的地領域63を自動認識する代わりに、対象物61と同様に、目的地領域63を指定する入力を受け付けることで、目的地領域63を認識してもよい。また、この場合、目標論理式生成部32は、ドラッグアンドドロップ操作による対象物61の最終目的地の入力を受け付けることで、目的地領域63を認識してもよい。
また、目標論理式生成部32は、同種対象物指定ボタン17が選択されている場合、画像表示欄16上で指定された物体に加えて、当該物体と同種の物体についても対象物61とみなす。この場合、対象物61とみなす物体は、タスク入力画面の表示時点において計測装置7の計測範囲外に存在する物体であってもよい。これにより、目標論理式生成部32は、効率的に対象物61をユーザに指定させることができる。なお、対象物61とする物体の種類が予め定められている場合には、制御装置1は、対象物61を指定する入力を受け付けることなく、対象物61を認識してもよい。この場合、物体モデル情報I6等に対象物61を識別するための情報が含まれており、状態計測部30は、物体モデル情報I6等を参照することで、対象物61の識別及び状態(位置、姿勢等)の認識を行う。
そして、目標論理式生成部32は、決定ボタン20が選択されたことを検知した場合、タスク入力画面での入力内容を示す入力信号S1に基づき認識した目的タスク、対象物61又は/及び目的地領域63の情報を用いて、目標論理式Ltagを生成する。なお、目標論理式生成部32は、入力信号S1に基づき認識した目的タスク、対象物61又は/及び目的地領域63の情報を抽象状態設定部31に供給してもよい。この場合、抽象状態設定部31は、供給された情報に基づき、目的タスク、対象物61又は/及び目的地領域63に関する命題の設定を行う。
(5-3)タイムステップ論理式生成部
タイムステップ論理式生成部33は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。この組み合わせは、通常複数存在するため、タイムステップ論理式生成部33は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット5に命令する動作のシーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。よって、タイムステップ論理式生成部33は、生成した各候補φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、生成した候補φの少なくともいずれかが真となる場合に真となる。
好適には、タイムステップ論理式生成部33は、生成された候補に対し、動作限界情報I3を参照することで、実現可能性を判定し、実現不可と判定した候補φを除外するとよい。例えば、タイムステップ論理式生成部33は、動作限界情報I3に基づき、ロボットアーム52の手先(ロボットハンド)が1タイムステップ当たりに移動可能な距離及び搬送機器82が1タイムステップ当たりに対象物61を移動させることが可能な距離を認識する。また、タイムステップ論理式生成部33は、状態情報Imが示す対象物61及びロボットハンドの位置ベクトルに基づき、移動対象となる対象物61とロボットハンドとの距離を認識する。そして、タイムステップ論理式生成部33は、これらの距離に基づき、実現可能性を判定する。
このように、タイムステップ論理式生成部33は、動作限界情報I3を参照して実現不可能な候補をタイムステップ論理式Ltsから除外することで、後段の処理部の処理負荷を好適に低減させることができる。
次に、目標タイムステップ数の設定方法について補足説明する。
タイムステップ論理式生成部33は、例えば、ユーザ入力により指定された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部33は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部33は、目的タスクの種類毎に適した目標タイムステップ数を対応付けた情報を予めメモリ12又は記憶装置4に記憶しておき、当該情報を参照することで、実行すべき目的タスクの種類に応じた目標タイムステップ数を決定する。
好適には、タイムステップ論理式生成部33は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部33は、制御入力生成部35が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部33は、設定した目標タイムステップ数により制御入力生成部35が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
このとき、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を、ユーザが見込む目的タスクの作業時間に相当するタイムステップ数よりも小さい値に設定するとよい。これにより、タイムステップ論理式生成部33は、不必要に大きな目標タイムステップ数を設定することを好適に抑制する。
(5-4)抽象モデル生成部
抽象モデル生成部34は、状態情報Imと、抽象モデル情報I5とに基づき、抽象モデルΣを生成する。ここで、抽象モデル情報I5には、抽象モデルΣの生成に必要な情報が記録されている。例えば、目的タスクがピックアンドプレイスの場合には、対象物の位置や数、対象物を置く目的地領域の位置、ロボットアーム52の数、搬送機器82の位置及び搬送速度(及び搬送方向)等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。この抽象モデルは、タイムステップ「k」での作業空間6内の物体の状態とタイムステップ「k+1」での作業空間6内の物体の状態との関係を示した差分方程式により表されてもよい。このとき、差分方程式には、例えば、対象物の位置を示す位置ベクトル、ロボットアーム52の手先の位置を示す位置ベクトルなどが変数として与えられる。
そして、抽象モデル生成部34は、抽象モデル情報I5に記録された汎用的な形式の抽象モデルに対し、状態情報Imが示す対象物の位置や数、対象物を置く領域の位置、ロボット5の台数等を反映することで、抽象モデルΣを生成する。
ここで、ロボット5による目的タスクの作業時においては、作業空間6内のダイナミクスが頻繁に切り替わる。よって、抽象モデル情報I5に記憶された抽象モデルは、このダイナミクスの切り替わりを、論理変数を用いて抽象表現したモデルとなっている。よって、抽象モデル生成部34は、ダイナミクスが切り替わるイベント(動作)を、論理変数を用いて抽象モデルにおいて抽象表現することで、ダイナミクスの切り替わりを好適に抽象モデルにより表現することができる。
例えば、図1及び図5に示す作業空間6では、以下のダイナミクス切替条件が存在する。
(a)「対象物61又は障害物62は、搬送機器82に載ると、搬送機器82の動作速度に基づき一定方向に動く」
(b)「ロボットアーム52が対象物61を掴むと、対象物61は、搬送機器82に載っているか否かに関わらず、ロボットアーム52の動作に基づき動く」
よって、この場合、抽象モデル生成部34は、対象物61又は障害物62が搬送機器82に載るという動作を、論理変数を用いて抽象モデル内で抽象表現すると共に、ロボットアーム52が対象物61を掴むという動作を、論理変数を用いて抽象モデル内で抽象表現する。
このように、抽象モデル生成部34は、抽象モデル情報I5を参照し、ダイナミクスの切り替わりが離散値である論理変数により表され、物体の移動が連続値により表されたハイブリッドシステムにより作業空間6内のダイナミクスを抽象化したモデルである抽象モデルΣを設定する。ここで、抽象モデルΣがタイムステップ「k」及び「k+1」での作業空間6内の物体の状態の関係を示した差分方程式により表される場合、当該差分方程式は、物体の状態を表す位置ベクトル等と、ロボット5への制御入力及び周辺装置8への制御入力を表す変数(パラメータ)と、ダイナミクスの切り替わりを示す論理変数とを含んでいる。
また、抽象モデルΣは、ロボット5全体及び周辺装置8全体の詳細なダイナミクスではなく、抽象化されたダイナミクスを表す。例えば、抽象モデルΣでは、ロボット5について、対象物を実際に把持するロボット5の手先であるロボットハンドのダイナミクスのみが表されてもよい。他の例では、抽象モデルΣでは、周辺装置8の制御入力に応じて搬送機器82に載置された物の位置が変動することが周辺装置8のダイナミクスとして表されてもよい。これにより、制御入力生成部35による最適化処理の計算量を好適に削減することができる。
なお、抽象モデル生成部34は、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
(5-5)制御入力生成部
制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとに基づき、最適となるタイムステップ毎のロボット5及び周辺装置8に対するタイムステップ毎の制御入力を決定する。この場合、制御入力生成部35は、目的タスクに対する評価関数を定義し、抽象モデルΣ及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。
評価関数は、例えば、目的タスクの種類毎に予め定められ、メモリ12又は記憶装置4に記憶されている。評価関数は、ロボット5が費やすエネルギーを最小化するように設計されてもよく、ロボット5及び周辺装置8が費やすエネルギーを最小化するように設計されてもよい。図1及び図5に示す例において、例えば、制御入力生成部35は、対象物61と目的地領域63との距離「dk」と、ロボット5に対する制御入力「ukr」と、搬送機器82に対する制御入力「ukp」とが最小となるように評価関数を定める。具体的には、制御入力生成部35は、たとえば、全タイムステップにおける距離dkのノルムの2乗と、制御入力ukrのノルムの2乗と、制御入力ukpのノルムの2乗との和を評価関数として定める。この場合、制御入力生成部35は、距離dkの項と、制御入力ukrの項と、制御入力ukpの項との夫々に対し、所定の重み付け係数を乗じてもよい。なお、制御入力ukr及び制御入力ukpは、速度であってもよく加速度であってもよい。
そして、制御入力生成部35は、設定した評価関数に対し、抽象モデルΣ及びタイムステップ論理式Lts(即ち候補φiの論理和)を制約条件とする制約付き混合整数最適化問題を解く。ここで、制御入力生成部35は、論理変数を連続値に近似して連続緩和問題とすることで、計算量を削減してもよい。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。これにより、制御入力生成部35は、ロボット5に対する制御入力ukrと、搬送機器82に対する制御入力ukpとを夫々算出する。
また、制御入力生成部35は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部35は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力ukrと制御入力ukpとを決定する。
好適には、制御入力生成部35は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、使用すべき制御入力ukrと制御入力ukpとを決定してもよい。この場合、制御入力生成部35は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、作業空間6におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット5が対象物を掴む、ロボット5が運ぶべき複数の対象物のうちの1つの対象物を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、目的タスクの種類毎に予め定められており、目的タスクの種類毎にイベントを特定する情報が記憶装置4に記憶されている。
この態様によっても、最適化に用いるタイムステップ数を小さくして最適化問題の計算量等を好適に低減することができる。
(5-6)サブタスクシーケンス生成部
サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスを生成する。この場合、サブタスクシーケンス生成部36は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスク及び周辺装置8が受付可能なサブタスクを夫々認識する。そして、サブタスクシーケンス生成部36は、制御入力情報Icが示すタイムステップ毎のロボット5への制御入力を、ロボット5のサブタスクに変換し、制御入力情報Icが示すタイムステップ毎の周辺装置8への制御入力を、周辺装置8のサブタスクに変換する。
例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット5が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット5の状態、当該関数実行前の把持対象の対象物の状態、及びダイナミクスの切り替わりを示す論理変数をそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数が「1」のときに物を掴む動作を行うこと表し、論理変数が「0」のときに物を放す動作を行うこと表す。この場合、サブタスクシーケンス生成部36は、関数「Move」を、制御入力情報Icが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icが示すタイムステップ毎の論理変数の遷移に基づき決定する。
そして、サブタスクシーケンス生成部36は、関数「Move」と関数「Grasp」とにより構成されるロボット5のサブタスクシーケンスを生成し、当該サブタスクシーケンスを示す制御信号S4をロボット5に供給する。例えば、目的タスクが「最終的に対象物61が領域Gに存在する」の場合、サブタスクシーケンス生成部36は、ロボットアーム52に対し、関数「Move」、関数「Grasp」、関数「Move」、関数「Grasp」のサブタスクシーケンスを生成する。この場合、ロボットアーム52は、1回目の関数「Move」により搬送機器82上の対象物61の位置まで移動し、1回目の関数「Grasp」により対象物61を把持し、2回目の関数「Move」により目的地領域63まで移動し、2回目の関数「Grasp」により対象物61を目的地領域63に載置する。
同様に、サブタスクシーケンス生成部36は、サブタスク情報I4が示す周辺装置8が実行可能なサブタスクと、制御入力情報Icが示す周辺装置8の時系列の制御入力とに基づき、周辺装置8に実行させるサブタスクシーケンスを生成する。この場合、周辺装置8のサブタスクは、搬送機器82上の物体を移動させる関数(「移動関数」とも呼ぶ。)を少なくとも有する。移動関数は、移動速度又は加速度の少なくとも一方をパラメータとして有し、サブタスクシーケンス生成部36は、制御入力情報Icが示す周辺装置8の時系列の制御入力に基づき、上述のパラメータが指定された移動関数を含むサブタスクシーケンスを生成する。なお、周辺装置8のサブタスクとして、移動関数のみに限らず、移動方向の変換を指示する関数、一時停止を指示する関数などの種々の関数がサブタスク情報I4に登録されていてもよい。
(6)処理フロー
図7は、第1実施形態において制御装置1が実行する制御処理を示すフローチャートの一例である。
まず、制御装置1の状態計測部30は、計測装置7から供給される出力信号S3に基づき、作業空間6内の物体の計測結果を示す状態情報Imを生成する。抽象状態設定部31は、当該状態情報Imに基づき、作業空間6における抽象状態の設定を行う(ステップS11)。次に、目標論理式生成部32は、入力信号S1等により指定された目的タスクから、目標論理式Ltagを決定する(ステップS12)。この場合、目標論理式生成部32は、制約条件情報I2を参照することで、目的タスクの実行における制約条件を、目標論理式Ltagに付加する。なお、ステップS12の処理は、ステップS11よりも前に実行されてもよい。
そして、タイムステップ論理式生成部33は、目標論理式Ltagを、各タイムステップでの状態を表すタイムステップ論理式Ltsに変換する(ステップS13)。この場合、タイムステップ論理式生成部33は、目標タイムステップ数を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す候補φの論理和を、タイムステップ論理式Ltsとして生成する。この場合、好適には、タイムステップ論理式生成部33は、動作限界情報I3を参照することで、各候補φの実行可能性を判定し、実行不可能と判定される候補φを、タイムステップ論理式Ltsから除外する。
次に、抽象モデル生成部34は、ステップS11で生成した状態情報Imと、抽象モデル情報I5とに基づき、目的タスクに適した抽象モデルΣを決定する(ステップS14)。この抽象モデルΣは、ロボット5又は周辺装置8に関するダイナミクス切替条件の成否によるダイナミクスの切り替えを離散値により表したハイブリッドシステムとなる。そして、制御入力生成部35は、抽象モデルΣ及びタイムステップ論理式Ltsを満たし、評価関数を最適化するロボット5の制御入力及び周辺装置8の制御入力を決定する(ステップS15)。そして、サブタスクシーケンス生成部36は、制御入力生成部35が決定した制御入力からロボット5及び周辺装置8に夫々実行させるサブタスクシーケンスを決定し、ロボット5及び周辺装置8に夫々出力する(ステップS16)。この場合、サブタスクシーケンス生成部36は、ロボット5のサブタスクシーケンスを示す制御信号S4を、インターフェース13を介してロボット5へ送信し、周辺装置8のサブタスクシーケンスを示す制御信号S5を、インターフェース13を介して周辺装置8へ送信する。
(7)変形例
図4に示すプロセッサ11の機能ブロックの構成は一例であり、種々の変更がなされてもよい。例えば、プロセッサ11が状態計測部30を有する代わりに、計測装置7が状態計測部30に相当する機能を有し、状態情報Imの生成及び状態情報Imの制御装置1への供給を行ってもよい。他の例では、ロボット5及び周辺装置8に命令する動作のシーケンスの候補φの情報が記憶装置4に予め記憶され、制御装置1は、当該情報に基づき、制御入力生成部35の最適化処理を実行する。これにより、制御装置1は、最適な候補φの選定とロボット5及び周辺装置8の制御入力の決定を行う。この場合、制御装置1は、抽象状態設定部31、目標論理式生成部32及びタイムステップ論理式生成部33に相当する機能を有しなくともよい。また、図4に示すプロセッサ11の一部の機能ブロックの実行結果に関する情報が予めアプリケーション情報記憶部41に記憶されていてもよい。
<第2実施形態>
図8は、第2実施形態における制御装置1Aの概略構成図である。第2実施形態における制御装置1Aは、サブタスクシーケンスに従い動作中のロボット5及び周辺装置8の状態を監視し、ロボット5及び周辺装置8が夫々与えられたサブタスクシーケンスを実行するために必要な調整を行う点で、第1実施形態と異なる。以後では、第1実施形態と同一の構成要素については第1実施形態と同一の符号を付し、その説明を省略する。
制御装置1Aは、第1実施形態において説明した図2に示すハードウェア構成を有する。そして、図8に示すように、制御装置1Aのプロセッサ11は、機能的には、状態計測部30と、動作シーケンス生成部37と、統合制御部38とを有する。
状態計測部30は、出力信号S3と物体モデル情報I6とに基づき、第1実施形態の状態計測部30と同一処理を行うことで状態情報Imを生成し、状態情報Imを動作シーケンス生成部37と統合制御部38とに夫々供給する。なお、状態計測部30に相当する処理を、計測装置7が実行してもよい。
動作シーケンス生成部37は、アプリケーション情報記憶部41に記憶された各種情報と、状態情報Imとに基づき、ロボット5に実行させるサブタスクシーケンス(「ロボット動作シーケンスSr」とも呼ぶ。)と、周辺装置8に実行させるサブタスクシーケンス(「周辺装置動作シーケンスSp」とも呼ぶ。)とを夫々生成する。ここで、動作シーケンス生成部37は、第1実施形態における図4に示す抽象状態設定部31、目標論理式生成部32、タイムステップ論理式生成部33、抽象モデル生成部34、制御入力生成部35及びサブタスクシーケンス生成部36に相当する機能を有する。
統合制御部38は、ロボット動作シーケンスSrと、周辺装置動作シーケンスSpと、状態情報Imと、ロボット5から送信される状態信号「S6」と、周辺装置8から送信される状態信号「S7」とに基づき、ロボット5及び周辺装置8の制御を行う。ここで、状態信号S6は、ロボット5の状態を検出するセンサの出力信号又はロボット制御部51が生成したロボット5の状態を示す信号である。状態信号S7は、周辺装置8の状態を検出するセンサの出力信号又は周辺装置制御部81が生成した周辺装置8の状態を示す信号である。これらの状態信号は、ロボット5及び周辺装置8のサブタスクの進捗度合を直接的又は間接的に示す情報である。
統合制御部38は、ロボット5及び周辺装置8による動作シーケンスの実行中に計測されたロボット5及び周辺装置8の状態(「計測状態」とも呼ぶ。)と、動作シーケンスの通りに動作した場合に予測されるロボット5及び周辺装置8の状態(「予測状態」とも呼ぶ。)とを比較する。なお、統合制御部38は、計測状態を、状態信号S6及び状態信号S7、又は、状態情報Imの少なくともいずれかに基づいて推定する。そして、統合制御部38は、上述の計測状態が予測状態と整合しない場合には、上述の計測状態と予測状態とを近付けるようにロボット5及び周辺装置8の少なくとも一方の制御を行う。
図9は、第2実施形態において制御装置1Aが実行するロボット5及び周辺装置8の制御処理を示すフローチャートの一例である。なお、図9のフローチャートでは、状態計測部30は、計測装置7から供給される出力信号S3に基づき、状態情報Imを常時生成しているものとする。
まず、動作シーケンス生成部37は、状態情報Imと、アプリケーション情報とに基づき、ロボット動作シーケンスSr及び周辺装置動作シーケンスSpを夫々生成する。統合制御部38は、ロボット動作シーケンスSrを示す制御信号S4をロボット5に送信し、周辺装置動作シーケンスSpを示す制御信号S5を周辺装置8に送信する(ステップS21)。
その後、統合制御部38は、ロボット5及び周辺装置8の各状態を計測する(ステップS22)。この場合、統合制御部38は、状態信号S6又は状態情報Imの少なくとも一方によりロボット5の計測状態を認識し、状態信号S7又は状態情報Imの少なくとも一方により周辺装置8の計測状態を認識する。
次に、統合制御部38は、ロボット5及び周辺装置8の計測状態が動作シーケンスに基づき予測される予測状態と整合するか否か判定する(ステップS23)。この場合、第1の例では、統合制御部38は、上述の計測状態及び予測状態として、ロボット5及び周辺装置8の位置の計測及び予測を行う。そして、統合制御部38は、これらの位置の差(即ち距離)が所定差以内の場合に、計測状態が予測状態と整合すると判定する。この場合、ロボット5及び周辺装置8の位置に加えて、姿勢を勘案して計測状態が予測状態と整合するか否か判定してもよい。第2の例では、統合制御部38は、計測状態として、状態信号S6、S7に基づき、動作シーケンスの実際の進捗度合(例えばサブタスクが完了した数又は割合)を認識し、予測状態として、動作シーケンスの現在に相当するタイムステップでの予想される進捗度合を認識する。そして、統合制御部38は、これらの進捗度合が一致する場合に、計測状態が予測状態と整合すると判定する。
そして、統合制御部38は、ロボット5及び周辺装置8の計測状態が動作シーケンスに基づく予測状態と整合しない場合(ステップS23;No)、制御信号S4又は制御信号S5の少なくともいずれかの生成及び出力を行う(ステップS25)。これにより、統合制御部38は、ロボット5及び周辺装置8の状態が動作シーケンスに基づく予測状態と整合するように、ロボット5又は周辺装置8の少なくともいずれかを制御する。ステップS25の具体的な態様については後述する。
一方、ロボット5及び周辺装置8の計測状態が動作シーケンスに基づく予測状態と整合する場合(ステップS23;Yes)、又はステップS25の実行後、制御装置1Aは、目的タスクが完了したか否か判定する(ステップS24)。制御装置1Aは、例えば、計測装置7から供給される出力信号S3に基づき対象物等の状態を認識することで、目的タスクの完了の有無を判定する。他の例では、制御装置1Aは、ロボット5からロボット動作シーケンスSrの正常終了を示す状態信号S6を受信した場合に、目的タスクが完了したと判定する。なお、制御装置1Aは、ロボット動作シーケンスSrの正常終了を示す状態信号S6及び周辺装置動作シーケンスSpの正常終了を示す状態信号S7の両方を受信した場合に、目的タスクが完了したと判定してもよい。
ここで、ステップS25の処理について補足説明する。
第1の例では、統合制御部38は、ロボット5及び周辺装置8の少なくともいずれかの状態が動作シーケンスに基づき予測される状態よりも遅延している場合に、当該遅延分だけ全体の動作シーケンスの完了タイミングをずらすための制御信号S4又は制御信号S5の少なくともいずれかを生成する。これにより、統合制御部38は、ロボット5又は周辺装置8のいずれかの動作遅延が生じていることに起因してロボット5と周辺装置8のタイミングの同期が必要な作業が実行できなくなるのを好適に抑制する。この場合、例えば、統合制御部38は、上述の遅延分を考慮した新たな各サブタスクの実行タイミングを示す情報を制御信号S4又は制御信号S5に含める。この場合、統合制御部38は、ロボット5又は周辺装置8のうち他方よりも動作が進んでいる方に対し、ロボット5及び周辺装置8の動作遅延時間分だけ動作タイミングを遅延させることを指示してもよい。さらに別の例では、統合制御部38は、新たな各サブタスクの実行タイミングを反映した動作シーケンスを、制御信号S4又は制御信号S5によりロボット5及び周辺装置8に通知してもよい。なお、統合制御部38は、ロボット5と周辺装置8の動作タイミングの調整では目的タスクが完了できないと判定した場合には、動作シーケンス生成部37に対して動作シーケンスの再生成の指示を行ってもよい。
第2の例では、統合制御部38は、ロボット5又は周辺装置8のいずれかが停止したことを計測した場合、ロボット5及び周辺装置8の計測状態が動作シーケンスに基づく予測状態と整合しないと直ちに判定する。この場合、例えば、統合制御部38は、停止していない方に対して制御信号を送信し、動作の停止を指示する。他の例では、統合制御部38は、動作シーケンス生成部37に対して動作シーケンスの再生成の指示を行ってもよく、異常が発生した旨を管理者に対して通知するための警告を出力してもよい。
以上のように、第2実施形態によれば、制御装置1Aは、サブタスクシーケンスの生成後にロボット5及び周辺装置8が夫々与えられたサブタスクシーケンスに従い動作しているか否か監視し、サブタスクシーケンスに従い動作するようにロボット5及び周辺装置8を制御することができる。
<第3実施形態>
図10は、第3実施形態における制御装置1Bの概略構成図である。第3実施形態における制御装置1Bは、サブタスクシーケンスの計算中も搬送機器82により対象物61及び障害物62が移動することを勘案し、サブタスクシーケンスの計算時間を考慮してサブタスクシーケンスの生成を行う点において、第1実施形態と異なる。以後では、第1実施形態と同一の構成要素については第1実施形態と同一の符号を付し、その説明を省略する。
制御装置1Bは、第1実施形態において説明した図2に示すハードウェア構成を有する。そして、図10に示すように、制御装置1Bのプロセッサ11は、機能的には、状態計測部30と、動作シーケンス生成部37と、状態予測部39とを有する。
状態計測部30は、出力信号S3と物体モデル情報I6とに基づき、第1実施形態の状態計測部30と同一処理を行うことで状態情報Imを生成し、状態情報Imを状態予測部39に供給する。なお、状態計測部30に相当する処理を、計測装置7が実行してもよい。
状態予測部39は、状態情報Imに基づき、所定時間(「計算考慮時間」とも呼ぶ。)経過後の作業空間6の物体の状態を示す情報(「予測状態情報Imp」とも呼ぶ。)を生成する。上述の計算考慮時間は、動作シーケンス生成部37によるサブタスクシーケンスの算出に要すると予測される計算時間であり、予めメモリ12又は記憶装置4に記憶されている。
この場合、状態予測部39は、状態情報Imが示す各物体の状態のうち、少なくとも搬送機器82に載っている物体(図1では対象物61及び障害物62であり、「載置物」とも呼ぶ。)の所定時間経過後の状態を予測する。そして、状態予測部39は、予測した載置物の状態に基づき状態情報Imを更新した予測状態情報Impを生成する。例えば、状態予測部39は、周辺装置8から供給される搬送速度に関する状態信号S7に基づき、サブタスクシーケンスの算出中での周辺装置8の搬送速度を予測し、予測した搬送速度と計算考慮時間とに基づき、載置物の計算考慮時間経過後の状態を予測する。
なお、状態予測部39は、上述の予測に用いる周辺装置8の搬送速度を、アプリケーション情報記憶部41に記憶された周辺装置8の搬送速度の限界値若しくは過去の平均値等に基づき決定してもよい。また、状態予測部39は、周辺装置8が動作中の状態情報Imに基づき周辺装置8の搬送速度を推定してもよい。また、状態予測部39は、搬送速度と同様に、搬送方向を、状態信号S7、状態情報Im、又はアプリケーション情報の少なくともいずれかに基づき認識する。また、状態予測部39は、載置物以外の物体(例えばロボット5)が移動中である場合には、当該物体についても所定時間後の状態を予測し、その予測結果を予測状態情報Impに反映してもよい。この場合、状態予測部39は、予測状態情報Impの生成前の所定時間内に計測装置7が取得した時系列の画像を用いて、画像の差分によるオプティカルフローなどに基づく動物体の検出及び移動速度の算出を行ってもよい。
動作シーケンス生成部37は、アプリケーション情報記憶部41に記憶された各種情報と、予測状態情報Impとに基づき、ロボット5に実行させるロボット動作シーケンスSrと、周辺装置8に実行させる周辺装置動作シーケンスSpとを夫々生成する。そして、動作シーケンス生成部37は、ロボット動作シーケンスSrを示す制御信号S4をロボット5に送信し、周辺装置動作シーケンスSpを示す制御信号S5を周辺装置8に送信する。動作シーケンス生成部37は、第1実施形態における図4に示す抽象状態設定部31、目標論理式生成部32、タイムステップ論理式生成部33、抽象モデル生成部34、制御入力生成部35及びサブタスクシーケンス生成部36に相当する機能を有する。
図11は、第3実施形態において制御装置1Bが実行するロボット5及び周辺装置8の制御処理を示すフローチャートの一例である。
まず、状態計測部30は、計測装置7から供給される出力信号S3に基づき、作業空間6内の物体の計測結果を示す状態情報Imを生成する(ステップS31)。そして、状態予測部39は、状態情報Imに基づき、計算考慮時間経過後の作業空間6の各物体の状態を示す予測状態情報Impを生成する(ステップS32)。そして、動作シーケンス生成部37は、予測状態情報Imp及びアプリケーション情報に基づき、ロボット動作シーケンスSr及び周辺装置動作シーケンスSpを生成し、これらの動作シーケンスをロボット5及び周辺装置8に出力する(ステップS33)。この場合、動作シーケンス生成部37は、動作シーケンスの算出時間を考慮したロボット動作シーケンスSrを示す制御信号S4をロボット5に供給し、動作シーケンスの算出時間を考慮した周辺装置動作シーケンスSpを示す制御信号S5を周辺装置8に供給する。
なお、第3実施形態は第2実施形態と組み合わせてもよい。この場合、図10に示すプロセッサ11は、統合制御部38としてさらに機能し、ロボット5及び周辺装置8の状態がサブタスクシーケンスに基づく予測状態と整合するためのロボット5及び周辺装置8の制御を行う。
<第4実施形態>
図12は、第4実施形態における制御装置1Cの概略構成図である。図12に示すように、制御装置1Cは、動作シーケンス生成手段37Cを有する。
動作シーケンス生成手段37Cは、タスクを実行するロボットの動き特性を示すロボット動作情報「Ir」と、タスクに関する物の受け渡しをロボットと行う周辺装置の動き特性を示す周辺装置情報「Ip」とに基づき、ロボット及び周辺装置の夫々が実行すべき動作を示す動作シーケンス「Sra」、「Spa」を生成する。
この場合、「ロボット」は、物を用いてタスクを実行する任意の種類のロボットである。また、「周辺装置」は、タスクに関する物の受け渡しをロボットと行う装置であり、物を搬送するコンベアなどの搬送装置又はAGVであってもよく、組立工場等においてロボットと工具又は部品の受け渡しを行う産業用装置であってもよい。「対象物」は、ロボットと周辺装置とで受け渡しが行われる物を指し、工具、部品(部材)、又はこれらを収容するケースなどが該当する。
ロボット動作情報Irは、第1~第3実施形態におけるアプリケーション情報のうちロボット5の動き特性に関する情報(例えば、制約条件情報I2、動作限界情報I3、サブタスク情報I4、抽象モデル情報I5)である。また、周辺装置情報Ipは、第1~第3実施形態におけるアプリケーション情報のうち周辺装置8の動き特性に関する情報(例えば、制約条件情報I2、動作限界情報I3、サブタスク情報I4、抽象モデル情報I5)である。動作シーケンス生成手段37Cは、例えば、第1実施形態における抽象状態設定部31、目標論理式生成部32、タイムステップ論理式生成部33、抽象モデル生成部34、制御入力生成部35及びサブタスクシーケンス生成部36により構成される。また、動作シーケンス生成手段37Cは、第2実施形態または第3実施形態における動作シーケンス生成部37であってもよい。動作シーケンスSra、Spaは、第1実施形態においてサブタスクシーケンス生成部36が生成するサブタスクシーケンス、又は、第2実施形態又は第3実施形態において動作シーケンス生成部37が生成するロボット動作シーケンスSr、周辺装置動作シーケンスSpとすることができる。
図13は、第4実施形態において制御装置1Cが実行するフローチャートの一例である。動作シーケンス生成手段37Cは、ロボット動作情報Irと、周辺装置情報Ipとに基づき、ロボット及び周辺装置の夫々が実行すべき動作を示す動作シーケンスSra、Spaを生成する(ステップS31)。
第4実施形態の構成によれば、制御装置1Cは、タスクを実行するために必要なロボット及び周辺装置の動作シーケンスを好適に生成することができる。
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
[付記1]
タスクを実行するロボットの動き特性を示すロボット動作情報と、前記タスクに関する対象物の受け渡しを前記ロボットと行う周辺装置の動き特性を示す周辺装置動作情報と、に基づき、前記ロボット及び前記周辺装置の夫々が実行すべき動作を示す動作シーケンスを生成する動作シーケンス生成手段
を有する制御装置。
[付記2]
前記動作シーケンスの実行中に計測される前記ロボット及び前記周辺装置の状態と、前記動作シーケンスとに基づき、前記ロボットと前記周辺装置との動作を制御する統合制御手段をさらに有する、付記1に記載の制御装置。
[付記3]
前記統合制御手段は、前記動作シーケンスの実行中に計測される前記ロボット及び前記周辺装置の状態が、前記動作シーケンスの通りに動作した場合の前記ロボット及び前記周辺装置の予測される状態と整合しない場合、前記ロボット及び前記周辺装置の少なくとも一方の動作タイミングを調整する、付記2に記載の制御装置。
[付記4]
前記ロボットの作業空間における所定時間後の状態を予測する状態予測手段をさらに有し、
前記動作シーケンス生成手段は、前記状態予測手段が予測した前記状態と、前記ロボット動作情報と、前記周辺装置動作情報とに基づき、前記動作シーケンスを生成する、付記1~3のいずれか一項に記載の制御装置。
[付記5]
前記所定時間は、前記動作シーケンス生成手段が前記動作シーケンスの算出に要すると予測される計算時間に設定される、付記4に記載の制御装置。
[付記6]
前記ロボット動作情報は、前記ロボットの動作限界に関する動作限界情報と、前記ロボットが実行可能なサブタスクを示すサブタスク情報と、前記ロボットに関わるダイナミクスを抽象化したモデルに関する抽象モデル情報と、の少なくともいずれかを含み、
前記周辺装置動作情報は、前記周辺装置の動作限界に関する動作限界情報と、前記周辺装置が実行可能なサブタスクを示すサブタスク情報と、前記周辺装置に関わるダイナミクスを抽象化したモデルに関する抽象モデル情報と、の少なくともいずれかを含む、請求項1~5のいずれか一項に記載の制御装置。
[付記7]
前記ロボット動作情報に含まれる前記抽象モデル情報は、前記ロボットに関わるダイナミクスの切り替わりの条件を示す情報を含み、
前記周辺装置動作情報に含まれる前記抽象モデル情報は、前記周辺装置に関わるダイナミクスの切り替わりの条件を示す情報を含む、付記6に記載の制御装置。
[付記8]
前記周辺装置は、前記対象物を搬送する搬送装置であり、
前記ロボットは、前記対象物をピックアップする動作を少なくとも行うロボットである、付記1~7のいずれか一項に記載の制御装置。
[付記9]
前記動作シーケンス生成手段は、前記ロボットの作業空間を撮像した画像を表示装置に表示させることで、前記対象物又は当該対象物の種類を指定する入力を受け付け、当該入力に基づき前記動作シーケンスを生成する、付記1~8のいずれか一項に記載の制御装置。
[付記10]
前記動作シーケンス生成手段は、
前記タスクを時相論理に基づく論理式に変換する論理式変換手段と、
前記論理式から、前記タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、
前記タイムステップ論理式に基づき、前記ロボット及び前記周辺装置の夫々が実行すべきサブタスクのシーケンスを、前記動作シーケンスとして生成するサブタスクシーケンス生成手段と、を有する、付記1~9のいずれか一項に記載の制御装置。
[付記11]
コンピュータにより、
タスクを実行するロボットの動き特性を示すロボット動作情報と、前記タスクに関する対象物の受け渡しを前記ロボットと行う周辺装置の動き特性を示す周辺装置動作情報と、に基づき、前記ロボット及び前記周辺装置の夫々が実行すべき動作を示す動作シーケンスを生成する、制御方法。
[付記12]
タスクを実行するロボットの動き特性を示すロボット動作情報と、前記タスクに関する対象物の受け渡しを前記ロボットと行う周辺装置の動き特性を示す周辺装置動作情報と、に基づき、前記ロボット及び前記周辺装置の夫々が実行すべき動作を示す動作シーケンスを生成する動作シーケンス生成手段
としてコンピュータを機能させるプログラムが格納された記録媒体。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。