(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】時相論理式生成装置、時相論理式生成方法及びプログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20240214BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2022555228
(86)(22)【出願日】2020-10-09
(86)【国際出願番号】 JP2020038297
(87)【国際公開番号】W WO2022074824
(87)【国際公開日】2022-04-14
【審査請求日】2023-04-03
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】高野 凜
(72)【発明者】
【氏名】大山 博之
【審査官】仁木 学
(56)【参考文献】
【文献】特開2010-152528(JP,A)
【文献】国際公開第2008/123021(WO,A2)
【文献】特開平7-72787(JP,A)
【文献】特開平5-241838(JP,A)
【文献】特開2019-200792(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成する目標関係論理式生成手段と、
前記目標関係論理式を統合した時相論理式を生成する目標関係論理式統合手段と、
を有する時相論理式生成装置。
【請求項2】
前記物体間関係情報は、前記目標状態における物体間の接触、接合、又はこれらの解除に関する関係を表し、
前記目標関係論理式生成手段は、前記目標状態における接触、接合、又はこれらの解除に関する前記関係を表す時相論理式を、前記目標関係論理式として生成する、請求項1に記載の時相論理式生成装置。
【請求項3】
前記目標関係論理式生成手段は、前記組を構成する物体間の拘束の有無を表す論理式を含む前記目標関係論理式を生成する、請求項1または2に記載の時相論理式生成装置。
【請求項4】
前記物体間関係情報は、前記目標状態における物体間の相対位置関係に関する情報を含み、
前記目標関係論理式生成手段は、前記相対位置関係を満たす拘束式を表す論理式を含む前記目標関係論理式を生成する、請求項1~3のいずれか一項に記載の時相論理式生成装置。
【請求項5】
作業空間に存在する物体の抽象状態を設定する抽象状態設定手段をさらに有し、
前記目標関係論理式生成手段は、前記抽象状態における拘束式を表す論理式を含む前記目標関係論理式を生成する、請求項1~4のいずれか一項に記載の時相論理式生成装置。
【請求項6】
前記ロボットの作業に関する制約条件及び評価関数を用いた最適化により前記ロボットの動作計画を決定する最適化処理手段をさらに有し、
前記目標関係論理式を統合した時相論理式は、前記制約条件又は前記評価関数の生成に用いられる、請求項1~5のいずれか一項に記載の時相論理式生成装置。
【請求項7】
前記動作計画として前記最適化処理手段が生成した前記ロボットの目標軌道に基づき、前記ロボットに対する制御指令を生成する制御指令生成手段をさらに有する、請求項6に記載の時相論理式生成装置。
【請求項8】
コンピュータが、
ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成し、
前記目標関係論理式を統合した時相論理式を生成する、
時相論理式生成方法。
【請求項9】
ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成し、
前記目標関係論理式を統合した時相論理式を生成する処理をコンピュータに実行させるプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットの動作計画に関する時相論理式を生成する時相論理式生成装置、時相論理式生成方法及び記憶媒体の技術分野に関する。
【背景技術】
【0002】
ロボットに作業させるタスクが与えられた場合に、当該タスクを実行するために必要なロボットの制御を行う制御手法が提案されている。例えば、特許文献1には、ハンドを有するロボットにより複数の物品を把持して容器に収容する場合に、ハンドが物品を把持する順序の組み合わせを決定し、組み合わせ毎に算出した指標に基づき、収容する物品の順序を決定するロボット制御装置が開示されている。また、特許文献2には、シーケンスを示す順序情報に基づいて、システムの性質を表す時相論理式を生成するコンピュータプログラムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-51684号公報
【文献】国際公開WO2008/123021
【発明の概要】
【発明が解決しようとする課題】
【0004】
部品の組み立て等の複数物体の接合、接触を伴うような複雑なタスクに対し、時相論理を用いたロボットの動作計画を行う場合、必要な動作を反映した時相論理式を的確に生成する必要がある。このような時相論理式の生成については、特許文献1及び特許文献2に何ら開示されていない。
【0005】
本開示の目的の1つは、上述した課題を鑑み、ロボットの動作計画に必要な時相論理式を好適に生成することが可能な時相論理式生成装置、時相論理式生成方法及び記憶媒体を提供することである。
【課題を解決するための手段】
【0006】
時相論理式生成装置の一の態様は、
ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成する目標関係論理式生成手段と、
前記目標関係論理式を統合した時相論理式を生成する目標関係論理式統合手段と、
を有する時相論理式生成装置である。
【0007】
時相論理式生成方法の一の態様は、
コンピュータにより、
ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成し、
前記目標関係論理式を統合した時相論理式を生成する、
時相論理式生成方法。
【0008】
プログラムの一の態様は、
ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成し、
前記目標関係論理式を統合した時相論理式を生成する処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0009】
ロボットの動作計画に用いる時相論理式を好適に生成することができる。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態におけるロボット制御システムの構成を示す。
【
図2】ロボットコントローラのハードウェア構成を示す。
【
図3】アプリケーション情報のデータ構造の一例を示す。
【
図4】ロボットコントローラの機能ブロックの一例である。
【
図5】目標状態におけるテーブルと、パーツとの状態を示す。
【
図6】目標関係統合論理式の生成に関する目標論理式生成部の機能的なブロック図である。
【
図7】スキル利用設定部の機能的なブロック図を示す。
【
図8】スキル利用設定部が実行するフローチャートの一例である。
【
図9】制御指令生成部の機能的な構成を表す機能ブロック図の一例である。
【
図10】制御指令生成部が実行するフローチャートの一例である。
【
図11】タイムステップと、第1スキルのスキル入力列と、第2スキルのスキル入力列と、サブ状態列の識別に用いるインデックスとの時系列での関係を示す。
【
図12】動作計画に関する処理手順を示すフローチャートの一例である。
【
図13】第2実施形態における時相論理式生成装置の概略構成を示す。
【
図14】第2実施形態において時相論理式生成装置が実行するフローチャートの一例である。
【
図15】第3実施形態における動作指令生成装置の概略構成を示す。
【
図16】第3実施形態において動作指令生成装置が実行するフローチャートの一例である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、制御装置、制御方法及び記憶媒体の実施形態について説明する。
【0012】
<第1実施形態>
(1)
システム構成
図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、ロボットコントローラ1と、記憶装置4と、ロボット5と、計測装置7と、を備える。ロボット制御システム100は、物体間の接合(接触を含む、以下同じ)又は接合解除の少なくともいずれかを伴うタスクを、ロボット5により好適に実行する。
【0013】
ロボットコントローラ1は、ロボット5の動作計画を策定し、計画した動作をロボット5に実行させるための制御指令「S1」を生成し、ロボット5に当該制御指令S1を供給する。この場合、ロボットコントローラ1は、ロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)を、ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスに変換する。そして、ロボットコントローラ1は、生成したシーケンスの実行指令に相当する制御指令S1に基づき、ロボット5を制御する。本実施形態では、目的タスクは、物体間の接合又は接合解除の少なくともいずれか(単に「接合・解除」と呼ぶ。)を伴うタスクに設定される。なお、接合には、例えば、物体同士をねじ止めする、物体同士を嵌め合わせる、又は物体同士を積み重ねるなどの動作などが含まれる。
【0014】
また、ロボットコントローラ1は、記憶装置4、ロボット5、及び計測装置7と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。例えば、ロボットコントローラ1は、制御指令S1の生成に必要な情報を記憶装置4から受信する。また、ロボットコントローラ1は、計測装置7から計測信号「S2」を受信する。
【0015】
記憶装置4は、アプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、ロボット5の動作計画の策定(即ち、ロボット5が実行すべきシーケンスを生成)に必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は、
図3を参照しながら後述する。記憶装置4は、ロボットコントローラ1に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶装置4は、ロボットコントローラ1と通信網を介してデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は、複数のサーバ装置から構成されてもよい。
【0016】
ロボット5は、ロボットコントローラ1から供給される制御指令S1に基づき目的タスクに関する作業を行う。ロボット5は、例えば、組み立て工場、食品工場などの各種工場、又は、物流の現場などで動作を行うロボットである。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよい。ロボット5は、ロボット5の状態を示す状態信号をロボットコントローラ1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5の動作の進捗状態を示す信号であってもよい。
【0017】
計測装置7は、目的タスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。計測装置7は、生成した計測信号S2をロボットコントローラ1に供給する。計測装置7は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、計測装置7は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、計測装置7は、作業空間内の音を検出するセンサを含んでもよい。このように、計測装置7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
【0018】
なお、
図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボット5は、複数台存在してもよく、ロボットアームなどの夫々が独立して動作する制御対象物を複数有してもよい。これらの場合であっても、ロボットコントローラ1は、ロボット5毎又は制御対象物毎に目的タスクを実行するための制御指令S1を、対象のロボット5に送信する。また、ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械と協働作業を行うものであってもよい。また、計測装置7は、ロボット5の一部であってもよい。また、ロボットコントローラ1は、複数の装置から構成されてもよい。この場合、ロボットコントローラ1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。
【0019】
(2)
ハードウェア構成
図2は、ロボットコントローラ1のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
【0020】
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。プロセッサ11は、コンピュータの一例である。
【0021】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。なお、メモリ12が記憶する情報の一部は、ロボットコントローラ1と通信可能な1又は複数の外部記憶装置(例えば記憶装置4)により記憶されてもよく、ロボットコントローラ1に対して着脱自在な記憶媒体により記憶されてもよい。
【0022】
インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。例えば、インターフェース13は、例えば、タッチパネル、ボタン、キーボード、音声入力装置などのユーザの入力(外部入力)を受け付ける入力装置、ディスプレイ、プロジェクタ等の表示装置、スピーカなどの音出力装置等とのインターフェース動作を行ってもよい。
【0023】
なお、ロボットコントローラ1のハードウェア構成は、
図2に示す構成に限定されない。例えば、ロボットコントローラ1は、表示装置、入力装置又は音出力装置の少なくともいずれかを内蔵してもよい。また、ロボットコントローラ1は、記憶装置4を含んで構成されてもよい。
【0024】
(3)アプリケーション情報
次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
【0025】
図3は、目的タスクを実行するためのロボット5の動作計画に必要なアプリケーション情報のデータ構造の一例を示す。
図3に示すように、アプリケーション情報は、環境物体情報I1と、一般制約条件情報I2と、操作対象物情報I3と、スキルデータベースI4とを含む。
【0026】
環境物体情報I1は、作業空間内における環境として存在する物体(「環境物体」とも呼ぶ。)に関する情報である。具体的には、環境物体は、ロボット5により操作対象となる物体(「操作対象物」とも呼ぶ。)、ロボット5、及びロボットコントローラ1が扱う基準座標系として定義される基準物体(例えば作業台)のいずれにも該当しない物体(例えば障害物等)である。環境物体情報I1は、例えば、環境物体の種類、環境物体の位置姿勢などの環境物体の属性及び状態を示す種々の情報を含んでもよい。また、環境物体情報I1は、ユーザの入力(外部入力)に基づき予め生成された情報であってもよく、計測信号S2等に基づき認識された環境物体の最新の状態を表す情報であってもよい。なお、後者の場合の環境物体情報I1の生成又は更新は、ロボットコントローラ1により行われてもよく、他の装置により行われてもよい。
【0027】
一般制約条件情報I2は、目的タスクを実行する際の一般的な制約条件を示す情報である。一般制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム)が接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。
【0028】
操作対象物情報I3は、目的タスクにおいてロボット5による操作対象となる操作対象物に関する情報である。操作対象物情報I3は、例えば、操作対象物に関する属性及び状態を示す情報と、操作対象物を含む物体間の物理的な関係(「物体間関係」とも呼ぶ。)に関する情報と、を含んでいる。操作対象物に関する属性及び状態を示す情報は、ユーザによる入力(外部入力)に基づき予め生成された情報であってもよく、計測信号S2等に基づき認識された操作対象物の最新の状態を表す情報であってもよい。なお、後者の場合の操作対象物情報I3の生成又は更新は、ロボットコントローラ1により行われてもよく、他の装置により行われてもよい。また、物体間関係に関する情報は、例えば、ユーザによる入力(外部入力)に基づき予め生成され、記憶装置4に記憶されている。
【0029】
スキルデータベースI4は、ロボット5の特定の動作を動作毎にモジュール化したスキルに関するデータベースである。スキルデータベースI4に登録されたスキル毎の情報を「スキル情報」とも呼ぶ。スキル情報は、物体間の接合・解除の各種動作を抽象化して表現しており、スキルを実行するために必要な種々の情報を含んでいる。スキル情報は、主に、スキルを識別するラベル(「スキル識別ラベル」とも呼ぶ。)と、スキルの実行に関する情報(「スキル実行情報」とも呼ぶ。)と、スキルを実行するための制御指令を生成に関する情報(「スキル制御指令情報」とも呼ぶ。)と、を含んでいる。これの各情報については、「(8-1)スキル情報のデータ構造」のセクションにおいて詳しく説明する。なお、スキルデータベースI4には、スキル情報として、物体間の接合・解除を実行する各種動作に対応するスキルに加えて、物体の接合・解除以外のロボット5の基本動作(例えば、物体を掴む、物体を離す)に対応するスキルが登録されていてもよい。
【0030】
なお、アプリケーション情報は、上述した情報の他、ロボット5の動作計画に必要な種々の情報を含んでもよい。
【0031】
例えば、アプリケーション情報は、計測装置7が生成した計測信号S2から認識すべき各物体(例えば、ロボット5、操作対象物、環境物体、基準物体)の物体モデルに関する物体モデル情報を有してもよい。この場合、物体モデル情報は、上述した各物体の種類、位置、姿勢、現在実行中の動作などをロボットコントローラ1が認識するために必要な情報を含んでもよい。この場合、物体モデル情報は、例えば、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
【0032】
他の例では、アプリケーション情報は、ロボットコントローラ1が扱う基準座標系として定義されている作業台などの基準物体に関する情報(例えば、位置、範囲、傾き等に関する情報)を有してもよい。さらに別の例では、アプリケーション情報は、作業空間における物体の抽象的な状態を定めるために必要な情報を含んでもよい。さらに別の例では、アプリケーション情報は、ロボットコントローラ1により制御が行われるロボット5の動作限界(例えば、ロボット5の速度、加速度、又は角速度の上限)に関する情報を含んでもよい。動作限界に関する情報は、ロボット5の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
【0033】
(4)処理概要
次に、ロボットコントローラ1の処理概要について説明する。概略的には、ロボットコントローラ1は、接合・解除を伴う目的タスクにおいて、予め定義された物体間関係及びスキル情報等に基づき、目的タスクにおいて満たすべき制約条件及び評価関数を設定し、最適化処理を行うことで、制御指令S1を生成する。これにより、ロボットコントローラ1は、接合・解除を伴う目的タスクに対するロボット5の動作計画を好適に策定し、目的タスクを実行するようにロボット5を好適に制御する。
【0034】
図4は、ロボットコントローラ1の処理の概要を示す機能ブロックの一例である。ロボットコントローラ1のプロセッサ11は、機能的には、抽象状態設定部31と、ダイナミクス・拘束力設定部32と、目標論理式生成部33と、スキル利用設定部34と、最適化処理部35と、制御指令生成部36とを有する。なお、
図4では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロックの図においても同様である。
【0035】
抽象状態設定部31は、環境物体情報I1及び操作対象物情報I3に基づき、作業空間内の物体の状態を抽象的に表した状態(「抽象状態」とも呼ぶ。)を設定する。また、抽象状態設定部31は、操作対象物情報I3から、目的タスクが完了した状態を示す目標(ゴール)状態における物体間関係を表す情報(「物体間関係情報Ir」とも呼ぶ。)を取得する。なお、抽象状態設定部31は、計測信号S2に基づき作業空間内の環境物体及び操作対象物の状態を認識し、その認識結果に基づいて、環境物体情報I1及び操作対象物情報I3を更新してもよい。
【0036】
ダイナミクス・拘束力設定部32は、抽象状態設定部31が設定した抽象状態と、物体間関係情報Irとに基づき、接合・解除の対象となる物体間の拘束に関する定義を行い、動作計画において抽象的なシステムダイナミクスのモデル(「システムモデルMb」とも呼ぶ。)を設定する。
【0037】
目標論理式生成部33は、システムモデルMbにおける目標状態を表す時相論理の論理式(「目標論理式」とも呼ぶ。)を生成する。この場合、目標論理式生成部33は、物体間の接合・解除に関する目標論理式(「目標関係統合論理式φ1」とも呼ぶ。)と、物体間の接合・解除以外の動作に関する目標論理式(「一般目標論理式φ2」とも呼ぶ。)とを夫々表す時相論理の論理式を生成する。目標関係統合論理式φ1及び一般目標論理式φ2は、最適化処理部35において設定される最適化問題における制約条件の一部または評価関数の一部として用いられる。
【0038】
スキル利用設定部34は、スキルを用いた時相論理によるロボット5の動作指令(「スキル利用動作指令φ3」とも呼ぶ。)及びスキルの利用を考慮した評価関数(「スキル利用評価関数Fs」とも呼ぶ。)を夫々設定する。この場合、スキル利用設定部34は、物体間関係情報Irに基づき、スキルデータベースI4から動作指令の生成等に必要なスキル情報「Isn」を抽出する。スキル利用動作指令φ3は、最適化処理部35において設定される最適化問題における制約条件又は評価関数(目的関数)のいずれかに反映され、スキル利用評価関数Fsは、上記の最適化問題における評価関数に反映される。
【0039】
最適化処理部35は、目標関係統合論理式φ1、一般目標論理式φ2、スキル利用動作指令φ3及びスキル利用評価関数Fs等に基づき、ロボット5の軌道計画問題を最適化問題の形で構成する。そして、最適化処理部35は、構成した最適化問題を解くことによって、時系列の目標軌道を示す変数列「Z」を生成する。
【0040】
制御指令生成部36は、目標軌道を示す変数列Zと、スキル情報Isnとに基づき、ロボット5の動作計画に相当する制御指令S1を生成する。そして、制御指令生成部36は、生成した制御指令S1を、インターフェース13を介してロボット5に供給する。
【0041】
ここで、抽象状態設定部31、ダイナミクス・拘束力設定部32、目標論理式生成部33、スキル利用設定部34、最適化処理部35及び制御指令生成部36の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
【0042】
(5)抽象状態設定部の詳細
まず、抽象状態設定部31により取得される物体間関係情報Irについて具体的に説明する。
【0043】
例えば、物体「pi」と物体「pj」に対する物体間関係「Eij」は、以下の形式により表される。
Eij=(pi,pj,RPAij,way)
【0044】
ここで、「RPAij」は、物体「pi」と物体「pj」との相対位置姿勢を表す。また、「way」は、接合・解除の方法を表しており、後述するスキルを識別するためのラベル情報としても機能する。従って、この場合、上記のEijは、
「物体piに対して物体pjは、相対位置姿勢RPAijにおいて方法wayにより接合・解除されている」
ことを示す。なお、解除の場合には、相対位置姿勢RPAijはEijにおいて指定されなくともよい。
【0045】
なお、相対位置姿勢RPAijは、物体pjの座標系「Σj」にて表されている位置及び姿勢を、物体piの座標系「Σi」にて表すものであり、以下のように相対位置ベクトル「rpij」及び相対姿勢ベクトル「rRij」の組により表される。
RPAij=(rpij,rRij)
ただし、座標系ΣiおよびΣjはそれぞれ物体pi,pjのどこか一点に取り付けられた座標系であり、物体pi,pjと共に移動するものである。なお、相対姿勢ベクトルはオイラー角やクォータニオンを利用した形で表現されてもよいし、姿勢を表す回転行列の列ベクトルを連結したベクトルとして表現されてもよい。
【0046】
また、方法wayは、スキルデータベースI4に登録されたスキル情報に含まれるスキル識別ラベルに相当し、物体間関係情報Irと対応するスキル情報とを紐付ける。従って、方法wayを実現するためのスキルのスキル情報には、方法wayと同一のスキル識別ラベルが設定されている。また、記憶装置4等には、方法wayごとに、対応する物体間の拘束式に関する情報が記憶されている。このように、方法wayには、対応する物体間の拘束式が紐付けられており、抽象状態設定部31は、上記の拘束式に関する情報を含む物体間関係情報Irを取得する。
【0047】
図5は、目標状態におけるテーブル「T」と、パーツ「p
A」と、パーツ「p
B」との状態を示す。ここでは、一例として、テーブルTの上にパーツp
Aが載置され、さらにパーツp
Aの上にパーツp
Bが載置される状態が目標状態であるものとする。この場合、抽象状態設定部31は、操作対象物であるパーツp
A及びパーツp
Bの夫々に対応する操作対象物情報I3を参照することで、テーブルT及びパーツp
Aの物体間関係「E
TA」と、パーツp
A及びパーツp
Bの物体間関係「E
AB」とを以下のように定義する。
【0048】
ETA=(T,pA,(rpTA,rRTA),put_on)
EAB=(pA,pB,(rpAB,rRAB),put_on)
【0049】
ここで、「(rpTA,rRTA)」は、テーブルTの座標系からみたパーツpAの座標系の位置及び姿勢を示し、「(rpAB,rRAB)」は、パーツpAの座標系からみたパーツpBの座標系の位置及び姿勢を示す。また、「put_on」は、「上に置く」という接合方法を指し示す方法wayの値である。
【0050】
そして、抽象状態設定部31は、上述したような物体間関係を表す物体間関係情報Irを操作対象物情報I3から取得し、ダイナミクス・拘束力設定部32、目標論理式生成部33、スキル利用設定部34などの各処理ブロックに供給する。
【0051】
次に、動作計画において抽象的に作業空間内の物体の状態を表した抽象状態を表す抽象状態ベクトルの生成について説明する。抽象状態設定部31は、環境物体情報I1と、操作対象物情報I3とに基づき、抽象状態ベクトル「X」(単に状態Xとも呼ぶ。)を以下のように生成する。
X=[Xo
T,Xh
T,Xe
T]T
【0052】
ここで、「Xo」は、操作対象物の状態(例えば、位置、姿勢、速度等)を表すベクトル、「Xh」は、操作可能なロボット5のエンドエフェクタの状態を表すベクトル、「Xe」は、環境物体の状態を表すベクトルを表す。これらの状態ベクトルは、操作対象物の個数を「No」、エンドエフェクタの個数を「Nh」、環境物体の個数を「Ne」とすると、以下のように表される。
【0053】
Xo=[Xo,1
T,…,Xo,No
T]T
Xh=[Xh,1
T,…,Xh,Nh
T]T
Xe=[Xe,1
T,…,Xe,Ne
T]T
【0054】
なお、これらの状態ベクトルにおいて各物体に対応する要素「Xo,1」~「Xo,No」、「Xh,1」~「Xh,Nh」、「Xe,1」~「Xe,Ne」は、各物体の状態(例えば、位置、姿勢、速度等)を表すベクトルを表す。このように、抽象空間では、ロボット5の状態は、エンドエフェクタの状態により抽象的(簡略的)に表されている。また、操作対象物または環境物体に該当する各物体の状態についても、例えば、基準座標系において抽象的に表されている。
【0055】
ここで、操作対象物及び環境物体は、動作計画前においてユーザによる外部入力に基づき定義された物体であってもよい。例えば、動作計画時において組み立てに必要なパーツが蓋つきの箱の中に入っている場合、蓋つきの箱の中に入っているパーツに対応する状態ベクトルXoが外部入力等に基づき定義され、蓋つきの箱に対応する状態ベクトルXeが外部入力等により定義されてもよい。このように定義された情報は、例えば、環境物体情報I1又は操作対象物情報I3として記憶装置4に予め記憶される。
【0056】
また、抽象状態設定部31は、例えば、計測信号S2を解析することで認識した作業空間内の各物体の位置及び姿勢等の状態認識結果に基づき、作業前の抽象空間の状態を表す抽象状態ベクトルXの初期値を定める。なお、環境物体情報I1及び操作対象物情報I3に予め各物体の位置及び姿勢等の作業前の初期状態を表す情報が含まれている場合には、抽象状態設定部31は、環境物体情報I1及び操作対象物情報I3等を参照することで、抽象状態ベクトルXの初期値を定めてもよい。
【0057】
(6)ダイナミクス・拘束力設定部の詳細
次に、ダイナミクス・拘束力設定部32が実行する処理の詳細について説明する。ダイナミクス・拘束力設定部32は、抽象状態ベクトルXを定義した抽象空間において生じる拘束の定義を行い、接合・解除に関する抽象空間のダイナミクスを設定する。
【0058】
ここでは、前提として、ロボット5のエンドエフェクタは、全ての物体(操作対象物及び環境物体)を把持可能とする。この場合、ダイナミクス・拘束力設定部32は、物体間関係情報Irを参照し、各エンドエフェクタhiと各操作対象物ojとの間の拘束力ベクトル「λhi,oj」、拘束式「Chi,ojX-Ghi,oj(X)=0」、及び拘束の有無を表すスカラー量である拘束スイッチ変数「ηhi,oj」(各変数において、i=1,…,Nhかつj=1,…,No)を夫々定義する。なお、「Chi,oj」は拘束力 λhi,ojと同じ要素数の行要素を持つ拘束式係数行列、「Ghi,oj」はあらかじめ定められた関数を示す。この拘束式はエンドエフェクタと各操作対象物の相対運動に対して拘束を与えるものである。一例として、この拘束式は、エンドエフェクタhiと操作対象物ojの相対位置が時間の経過とともに指数的に0となるような拘束を示す。
【0059】
エンドエフェクタhiの位置及び並進速度を「px,hi」、「py,hi」、「pz,hi」、「p・
x,hi」、「p・
y,hi」、「p・
z,hi」とし,操作対象物ojの位置および並進速度を「px,oj」、「py,oj」、「pz,oj」、「p・
x,oj」、「p・
y,oj」、「p・
z,oj」とすると,この拘束は次のような式として与えられる。
【0060】
p・
x,hi-p・
x,oj=-(px,hi-px,oj)
p・
y,hi-p・
y,oj=-(py,hi-py,oj)
p・
z,hi-p・
z,oj=-(pz,hi-pz,oj)
【0061】
この場合にはこれらの左辺が前述の拘束式「Chi,ojX-Ghi,oj(X)=0」における「Chi,ojX」に対応し,右辺が「Ghi,oj(X)」に対応する形となっている.
【0062】
また、ダイナミクス・拘束力設定部32は、物体間関係情報Irを参照し、各エンドエフェクタhiと各環境物体ekとの間の拘束力ベクトル「λhi,ek」、拘束式「Chi,ekX-Ghi,ek(X)=0」、及び拘束の有無を表すスカラー量である拘束スイッチ変数「ηhi,ek」(各変数において、i=1,…,Nhかつk=1,…,Ne)を夫々定義する。なお、「Chi,ek」は拘束式係数行列を示す。また、「Ghi,ek(X)」はあらかじめ定められた関数である。
【0063】
また、ダイナミクス・拘束力設定部32は、物体間関係情報Irを参照し、物体間関係情報Irにおいて関係が示されている物体間の拘束を定義する。ここで、物体間関係情報Irにおいて関係が示されている物体を「om」及び「on」とすると、ダイナミクス・拘束力設定部32は、これらの物体間の拘束力「λom,on」、拘束式「Com,onX-Gom,on(X)=0」、及び拘束の有無を表す拘束スイッチ変数「ηom,on」を夫々定義する。なお、「Com,on」は拘束式係数行列を示す。また、「Gom,on(X)」はあらかじめ定められた関数である。
【0064】
さらに、ダイナミクス・拘束力設定部32は、基準座標系として定義される作業台などの基準物体と各物体(操作対象物及び環境物体)の間の拘束を定義する。なお、これらの拘束については、例えば、物体間関係情報Ir又はこれに相当する情報として記憶装置4に予め記憶されている。ダイナミクス・拘束力設定部32は、この場合、基準物体と各操作対象物との間の拘束力「λoi,w」、拘束式「Coi,wX-Goi,w(X)=0」、及び拘束の有無を表す拘束スイッチ変数「ηoi,w」(各変数において、i=1,…,No)を夫々定義する。また、ダイナミクス・拘束力設定部32は、基準物体と各環境物体との間の拘束力「λek,w」、拘束式「Cek,wX-Gek,w(X)=0」、及び拘束の有無を表す拘束スイッチ変数「ηek,w」(各変数において、i=1,…,Nhかつk=1,…,Ne)を夫々定義する。なお、「Coi,w」、「Cek,w」は拘束式係数行列を示し、「Goi,w(X)」、「Gek,w(X)」はあらかじめ定められた関数である。
【0065】
そして、ダイナミクス・拘束力設定部32は、これらの抽象空間に関連する全ての拘束力、拘束式の、拘束スイッチ変数を合成した拘束力ベクトル「Λ」、拘束式係数行列「Call」、拘束スイッチ行列「H」,そして拘束式内の関数をまとめた「Gall」を定義する。ただし、「Λ」は各拘束力ベクトルを縦に連結したベクトルであり、「Call」は各拘束式係数行列を縦に連結した行列、「Gall」は各拘束式内の関数を縦に連結したベクトルを表す。
Λ=[λT
h1,o1,…,λT
eNe,w]T
Call=[CT
h1,o1,…,CT
eNe,w]T
Gall=[GT
h1,o1,…,GT
eNe,w]T
ここで上付きの「T」は行列の転置を表すとする。また、「H」は対角要素に各拘束スイッチ変数をもつ以下の対角行列を表す。
H=blkdiag(ηh1,o1 Inh1,o1,…,ηeNe,w IneNe,w)
ただし、「blkdiag」はブロック対角行列を生成する関数であり、「In」は「n」行「n」列の単位行列を表す。また、「nhi,oj」は各拘束力ベクトル「λhi,oj」の要素数を表すとする。そして、ダイナミクス・拘束力設定部32は、定義したこれらの要素を用いて、接合・解除に関する抽象空間のダイナミクスを表すモデルであるシステムモデルMbを設定する。システムモデルMbは、例えば、以下に示される、ダイナミクスを表す差分方程式と、拘束式とにより表される。
【0066】
X[k+1]=F(X[k],U[k])+Call
TH[k]TΛ[k]
H[k](CallX[k+1]-Gall(X[k]))=0
【0067】
ここで、1番目の式は、タイムステップ「k」での抽象状態とタイムステップ「k+1」での抽象状態との関係を表した差分方程式である。また、「U」は、抽象空間における入力(例えば、ロボット5への入力)を示し、「F」は、予め定義された関数を示す。制御入力は、速度であってもよく、加速度であってもよい。なお、関数Fは、予め記憶装置4等に記憶されている。これらの式は、ロボット5全体の詳細なダイナミクスではなく、ロボット5のエンドエフェクタのダイナミクスのみを考慮している。これにより、最適化処理の計算量を好適に削減することができる。
【0068】
(7)目標論理式生成部の詳細
まず、目標関係統合論理式φ1の生成方法について説明する。目標論理式生成部33は、物体間関係情報Irと、ダイナミクス・拘束力設定部32が設定したシステムモデルMbとに基づき、物体同士の接合・解除に関する目標関係統合論理式φ1を生成する。
【0069】
図6は、目標関係統合論理式φ1の生成に関する目標論理式生成部33の機能的なブロック図である。目標論理式生成部33は、機能的には、目標関係論理式生成部331と、目標関係論理式統合部332とを有する。
【0070】
目標関係論理式生成部331は、物体間関係情報Irにより関係が定義された任意の物体の組(ペア)の関係を個々に表した論理式(「目標関係論理式φe」とも呼ぶ。)を生成する。例えば、目標関係論理式生成部331は、物体間関係情報Irにおいて関係が示されている物体「oi」と物体「oj」との接合関係を表す目標関係論理式φeを、以下の式に定める。
【0071】
φeoi,oj=◇□((ηoi,oj=1)∧(goi,oj(X,RPAoi,oj)=0))
【0072】
上記の式では、線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」、論理積「∧」、論理和「∨」、always「□」を用いている。なお、目標論理式生成部33は、これらの演算子の他、否定「¬」、論理包含「⇒」、next「○」、until「U」などを用いて論理式を表してもよい。例えば、上記の式は、記憶装置4等に予め記憶されている。
【0073】
そして、上記の式は、「物体oiと物体oiの間に拘束が存在し、2つの物体の相対的な最終状態はRPAoi,ojである」ことを表している。なお、解除を表す場合には、拘束スイッチ変数ηoi,ojを0に設定する。ここで、「goi,oj(X,RPAoi,oj)=0」は、システムモデルMbに基づき定まる拘束式であって、状態Xにおいて相対位置姿勢RPAoi,ojを満たす拘束式を表す。
【0074】
上記の式を用いることで、目標関係論理式生成部331は、任意の2つの物体間の関係を個別に表した目標関係論理式φeを好適に生成することができる。
【0075】
なお、目標関係論理式生成部331は、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
【0076】
例えば、STLを用いる場合には、拘束スイッチ変数ηsとして、0または1の離散変数に代えて、連続変数を利用することも可能である。この場合、ある定数「ε」を用いて拘束のON及びOFFを次のように表すことができる。
ON :ηs≧ε
OFF:ηs<ε
この表現を用いた場合、物体間関係情報Irにおいて関係が示されている物体oiと物体ojとの接合関係を表す目標関係論理式φeは以下のように表すことができる。
【0077】
φeoi,oj=◇□((ηoi,oj≧ε)∧(goi,oj(X,RPAoi,oj)=0))
【0078】
目標関係論理式統合部332は、目標関係論理式生成部331が生成した目標関係論理式φeを統合することで、目標関係統合論理式φ1を生成する。この場合、目標関係論理式生成部331が2つの物体間において個別に生成した全ての目標関係論理式φeを、論理積により結合した目標関係統合論理式φ1を生成する。
【0079】
図6(B)は、目標論理式生成部33が実行する目標関係統合論理式φ1の生成処理の手順を示すフローチャートの一例である。
【0080】
目標関係論理式生成部331は、物体間関係情報Irにより関係が定義された任意の2つの物体間の関係を個別に表した目標関係論理式φeを生成する(ステップS01)。そして、目標関係論理式統合部332は、目標関係論理式生成部331が生成した目標関係論理式φeを統合した目標関係統合論理式φ1を生成する(ステップS02)。
【0081】
次に、一般目標論理式φ2の生成方法について説明する。目標論理式生成部33は、一般制約条件情報I2に基づき、接合・解除以外の制約を含む一般目標論理式φ2を生成する。なお、一般制約条件情報I2は、目的タスクにおいて一般的に満たすべき制約に関する情報の他、ユーザが指定した任意の制約に関する情報を含んでもよい。
【0082】
一般制約条件情報I2に基づく制約の一例として、障害物回避のための制約がある。ここで、作業空間内に障害物が存在し、抽象空間として考慮している物体及びエンドエフェクタが障害物の領域内に入らないという制約が「Ao(X)≧0」として表現されるとする。この場合、目標論理式生成部33は、一般目標論理式φ2を、以下のように設定する。
φ2=□(Ao(X)≧0) 又は φ2=□¬(Ao(X)<0)
【0083】
(8)スキル利用設定部の詳細
(8-1)スキル情報のデータ構造
まず、スキル利用設定部34が参照するスキルデータベースI4に含まれるスキル情報のデータ構造について説明する。
【0084】
スキル情報は、スキル識別ラベルと、スキル実行情報と、スキル制御指令情報とを含んでおり、詳細には以下の8個の要素を有する。
(way,χs
-,χs
+,ts,Js,ψs,fs,Γs)
【0085】
ここで、スキル情報の各要素を表す各記号は以下のように定義される。
way:スキル識別ラベル
χs
-:スキルの実行可能状態集合
χs
+:スキル実行後の状態集合
ts:スキルの所要時間長
Js:スキルに設定するコスト
ψs:スキルの実行に伴う抽象空間での動作指令
fs:軌道生成関数
Γs:軌道生成関数に基づく軌道を実現するための制御器
【0086】
スキルの実行可能状態集合χs
-、スキル実行後の状態集合χs
+、スキルの所要時間長ts、コストJs、動作指令ψsはスキル実行情報に相当し、軌道生成関数fs及び制御器Γsはスキル制御指令情報に相当する。ここで、スキルの実行可能状態集合χs
-及びスキル実行後の状態集合χs
+は、作業空間における物体の実際のダイナミクスにおける状態「x」だけではなく、作業空間における物体の実際のダイナミクスにおける拘束力λやロボット5に対する入力u等を含めた集合としてもよい。即ち、スキルの実行可能状態集合χs
-及びスキル実行後の状態集合χs
+は、スキルの実行可能条件と、スキルを実行した場合の事後条件とを示す情報に相当する。
【0087】
動作指令ψsは、スキルの実行可能状態集合χs
-からスキル実行後の状態集合χs
+へ遷移する動作を記述した時相論理式であり、任意の形式の時相論理命題により表されてもよい。例えば、動作指令ψsは、状態空間と時間をグリッド分割し,それらのグリッドを利用してシステムのおおまかな動き方(軌道等)を指定する時相論理命題であるGrid TLI(Grid-Based Temporal Logic Interface)により表されてもよい。
【0088】
軌道生成関数fs及び制御器Γsは、スキル制御指令情報に相当し、任意のスキル学習により事前に学習される。軌道生成関数fsと制御器Γsは夫々、以下のように表される。
x(t)=fs(t,x0), t∈[0,ts]
u=Γs(t,x)
【0089】
ここで、「x0」は状態xの初期状態を表し、「u」はシステム(主にロボット5)への実際の入力を表す。なお,軌道生成関数fs及び制御器Γsはfs(t,x0,α1)、Γs(t,x,α2)のようにパラメータα1,α2によってパラメトライズされる形でもよい.
【0090】
なお、このような軌道生成関数及び制御器の学習として、例えば、運動学習プリミティブ(DMP:Dynamic Movement Primitive)などの手法が用いられる。DMPによれば、与えられたロボットの運動軌道の時系列データから、その運動を再現するような軌道生成関数及び軌道生成関数に基づく軌道を実現するための制御器を学習することが可能となる。
【0091】
ここで、コストJsについて補足説明する。あるスキルを実行する際、抽象空間で表現される動作と実際のロボットにおいて実現される動作は異なる。例えば物体のねじ止めという動作は抽象空間では、単純にねじ止めする物体同士の相対距離を小さくして拘束スイッチ変数をONの状態にする、という形でモデル化される。しかしながら、これを実際のロボットで行おうとすると物体の位置を操作した後にドライバーでねじを回転させる等の複雑な動作が必要となる。以上を勘案し、本実施形態では、実際のロボットにおいてそのスキルを実行するためにはどれぐらいの入力が必要であるかという情報を表すコストJsが定義されている。これにより、抽象空間における動作計画であっても実際のロボットを動かす際に必要なエネルギー等を好適に考慮できるようになる。
【0092】
(8-2)スキル情報を利用した処理概要
次に、スキル情報を用いたスキル利用設定部34の処理の詳細について説明する。
図7は、スキル利用設定部34の機能的なブロック図を示す。
図7に示すように、スキル利用設定部34は、機能的には、スキル情報取得部341と、スキルタプル生成部342と、スキル利用動作指令生成部343と、スキル利用評価関数生成部344とを有する。また、
図8は、スキル利用設定部34が実行するフローチャートの一例である。ここで、スキル情報取得部341は、ステップS11の処理を行い、スキルタプル生成部342は、ステップS12の処理を行い、スキル利用動作指令生成部343は、ステップS13の処理を行い、スキル利用評価関数生成部344は、ステップS14の処理を行う。
【0093】
まず、スキル情報取得部341は、物体間関係情報Irにおいて定義されている拘束に関する情報を参照し、スキルデータベースI4から必要なスキル情報Isnを取得する(ステップS11)。具体的には、スキル情報取得部341は、物体間関係情報Irに含まれる「way」と同一のスキル識別ラベルとするスキル情報を、スキルデータベースI4からスキル情報Isnとして抽出する。
【0094】
次に、スキルタプル生成部342は、スキル情報取得部341が取得したスキル情報IsnとシステムモデルMbとに基づき、スキルタプルを生成する(ステップS12)。ここで、スキルタプルは、スキル情報Isnと関連するシステムモデルMbの変数をまとめた組であり、具体的には、対応するスキルのON(有効)又はOFF(無効)を表すスキル入力「us」と拘束のON又はOFFを表す拘束スイッチ変数「ηs」の組を表す。従って、スキルタプル生成部342は、スキル情報Isn毎に、スキル入力us及び拘束スイッチ変数ηsの組を表すスキルタプルを生成する。なお、スキルタプルは、スキル入力us及び拘束スイッチ変数ηsに加えて、拘束力「λs」を含んでもよい。このように、スキルタプル生成部342は、スキル情報Isnを、システムモデルMbに対応するように再定義する。
【0095】
次に、スキル利用動作指令生成部343は、ステップS12において生成されたスキルタプルの各々に対応する接合・解除動作を時相論理により表したスキル利用動作指令φ3を生成する(ステップS13)。また、スキル利用評価関数生成部344は、ステップS12において生成されたスキルタプルに対応する接合・解除動作を考慮したスキル利用評価関数Fsを生成する(ステップS14)。なお、ステップS13とステップS14は順不同であり、同時に行われてもよく、ステップS14が先に実行されてもよい。
【0096】
(8-3)スキル利用動作指令の詳細
次に、ステップS13において生成するスキル利用動作指令φ3について具体的に説明する。
【0097】
例えば、スキル利用動作指令生成部343は、抽象空間におけるスキル実行による接合動作に関し、スキル利用動作指令φ3として、以下の(A)~(C)の動作を実現する時相論理指令を生成する。
【0098】
(A)スキル実行可能集合χs
-において、スキル入力をOFFからONの値に変更
(B)スキルに定義された動作指令ψs及び所要時間長tsに沿って、抽象空間における状態をスキル実行後の状態集合χs
+へ移動
(C)状態がスキル実行後の状態集合χs
+に到達した場合、実行したスキルに対応する拘束スイッチ変数ηsをOFFからONの値へ変更.かつ,スキル入力usはスキル入力をONにした時刻ステップの次の時刻ステップにおいてONからOFFの値へ変更する。
【0099】
また、スキル利用動作指令生成部343は、抽象空間におけるスキル実行による接合解除動作に関し、スキル利用動作指令φ3として、例えば以下の(D)~(F)の動作を実現する時相論理指令を生成する。
【0100】
(D)スキル実行可能集合χs
-内でスキル入力usをOFFからONの値へ変更
(E)スキルに定義された動作指令ψs及び所要時間長tsに沿って状態をスキル実行後の状態集合χs
+へ移動
(F)状態がスキル実行後状態集合χs
+に到達した場合、実行したスキルに対応する拘束スイッチ変数ηsをONからOFFの値へ変更、かつ,スキル入力usはスキル入力をONにした時刻ステップの次の時刻ステップにおいてONからOFFの値へ変更する。
【0101】
ここで、スキル利用動作指令φ3の論理命題の具体例である第1論理命題例と第2論理命題例について順に説明する。以後では、代表例として、LTLを利用する場合における(A)~(C)の接合動作について夫々説明する。
【0102】
まず、第1論理命題例について説明する。第1論理命題例では、動作(A)に相当する動作指令「φ31」は、ONを「1」、OFFを「0」により表すスキル入力「us,on」を用いて、以下の式(1)により表される。
【0103】
【0104】
また、動作(B)に関する動作指令「φ32」は、以下の式(2)により表される。
【0105】
【0106】
式(2)において、動作指令φsは、スキルの実行可能状態集合χs
-からスキル実行後の状態集合χs
+へ遷移する動作を記述した時相論理式であり、例えば、Grid TLIなどにより、ステップ「k」からステップ「k+ns」までの動き方を指定する論理式である。ただし、「ns」は、スキルに定義された所要時間長tsを離散化した場合に対応するステップ数を表す。
【0107】
また、動作(C)に関する動作指令「φ33」は、以下の式(3)により表される。
【0108】
【0109】
なお、式(3)では、スキル入力us,onと拘束スイッチ変数ηsの時間的な関係を論理命題として表している。なお、動作指令φ33を等式制約として与える例については、第2論理命題例として後述する。
【0110】
そして、第1論理命題例では、スキル利用動作指令生成部343は、動作(A)~(C)に対応する動作指令φ31~φ33を論理積により統合したスキル利用動作指令φ3を設定する。この場合、スキル利用動作指令φ3は、以下のように表される。
φ3=φ31∧φ32∧φ33
【0111】
なお、接合解除における動作(D)~(F)についても、式(1)~(3)と同等の論理式により表すことができる。
【0112】
次に、第2論理命題例について説明する。第2論理命題例は、接合および解除動作における動作(C)に関し、スキル入力usと拘束スイッチ変数ηsの時間的な関係を、等式制約を用いて表す。例えば、スキル利用動作指令生成部343は、以下の式(4)に示される等式制約を設定する。
【0113】
【0114】
ここで、スキル入力「us,off」は、OFFの場合に「0」、ONの場合に「1」となる。式(4)は、スキル入力の値によって拘束スイッチ変数がどのように変化するかを表す離散時間ダイナミクスを表している。
【0115】
式(4)に示される等式制約を用いることで、動作(C)の論理式(第1論理命題例では式(3))は等式制約に置き換えることができる。よって、スキル利用動作指令生成部343は、第2論理命題例では、スキル利用動作指令φ3として、動作(A)に相当する式(1)及び動作(B)に相当する式(2)を統合した時相論理指令を生成する。この場合、スキル利用動作指令φ3は、以下のように設定される。
φ3=φ31∧φ32
【0116】
そして、この場合、式(4)に相当する等式制約は、最適化処理部35が解く最適化問題における制約条件として考慮される。
【0117】
(8-4)スキル利用評価関数の詳細
次に、スキル利用評価関数生成部344によるスキル利用評価関数Fsの生成について具体的に説明する。スキル利用評価関数生成部344は、生成したスキルタプルに対応するスキル情報Isnに含まれるコストJsを反映したスキル利用評価関数Fsを設定する。ここで、スキル利用評価関数Fsは、例えば、生成されたスキルタプルに対応するコストJsとスキル入力usを引数とする関数である。スキル利用評価関数Fsの具体的な形状については、目的タスクに応じて予め設定される。
【0118】
スキル利用評価関数Fsを用いて、動作計画内において利用する評価関数「J」は、例えば、以下の式(5)により表される。
【0119】
【0120】
ここで、「k」はタイムステップ(時刻)を表し、「N」は、目的タスク全体の所要時間長に相当するタイムステップ数を表す。また、「L(X[k],U[k])」は、抽象空間の状態X及び入力Uを引数とし、接合・解除動作以外を評価する評価関数である。評価関数Lは、任意の動作計画において用いられる評価関数であってもよい。例えば、評価関数Lは、ロボット5の制御入力を最小化(即ちロボット5が費やすエネルギーを最小化)又は/及び実行時間長を最小化する評価関数である。
【0121】
ロボットコントローラ1は、このようなスキル利用評価関数Fsを含む評価関数Jを用いることにより、スキルの実行回数を減らし、かつ、効率の良い動作を計画することが可能となる。また、評価関数Jは、スキル利用評価関数Fsに加えて接合・解除動作以外を評価する評価関数Lも含むことから、ロボットコントローラ1は、抽象空間における入力の最小化等を考慮した目的タスクの全体の最適化を行うこともできる。
【0122】
(9)最適化処理部の詳細
最適化処理部35は、システムモデルMb、目標関係統合論理式φ1及び一般目標論理式φ2、スキル利用評価関数Fs及びスキル利用動作指令φ3を用いて、評価関数Jを最小化する軌道計画問題である最適化問題を構成する。そして、最適化処理部35は、構成した最適化問題を解くことによって最適な目標軌道を表す変数列Zを算出する。この場合、最適化処理部35は、以下の式(6)に示す最適化問題を構成する。
【0123】
【0124】
式(6)において、変数列Zは、抽象空間の状態列X[k]・スキル入力列Us[k]、拘束スイッチ変数列η[k]等の最適化に必要な変数を全てまとめたベクトルを表す。ここで、「G(Z)」は、目標関係統合論理式φ1、一般目標論理式φ2、スキル利用動作指令φ3、システムモデルMbを制約条件としてまとめたベクトルを表す。
【0125】
ここで、線形論理式又はSTLを用いて目標関係統合論理式φ1、一般目標論理式φ2、スキル利用動作指令φ3などの時相論理式を表した場合、最適化処理部35は、これらの時相論理式を制約条件に変換して利用することができる。具体的には、最適化処理部35は、この場合、任意の等式・不等式制約条件への変換アルゴリズムを用いてこれらの時相論理式を等式・不等式制約条件に変換し、変換した等式・不等式制約条件をG(Z)の要素として取り扱う。
【0126】
一方、目標関係統合論理式φ1、一般目標論理式φ2、スキル利用動作指令φ3などの時相論理式をMTLやSTLにより表した場合、最適化処理部35は、これらの時相論理式を、評価関数J(Z)に組み込むことも可能である。なお、どの種類の時相論理を用いるか(及びG(Z)の要素とするか評価関数J(Z)に組み込むか)については、例えば、設定された目的タスクに応じて決定される。
【0127】
そして、最適化処理部35は、式(6)に示される最適化問題を解くことで、目標軌道における変数列Zを算出する。
【0128】
(10)制御指令生成部の詳細
制御指令生成部36は、最適化処理部35が算出した変数列Zから、抽象空間の状態軌道を表す状態列X[k]及び時系列のスキル入力を表すスキル入力列Us[k]を抽出する。そして、制御指令生成部36は、状態列X[k]と、スキル入力列Us[k]と、スキル情報Isnとに基づき、実際のロボットシステムにおいてスケジューリングされた制御器に相当する制御指令S1を生成する。
【0129】
図9は、制御指令生成部36の機能的な構成を表す機能ブロック図の一例である。
図9に示すように、制御指令生成部36は、機能的には、状態列分解部361と、制御器構成部362と、制御指令統合部363とを有する。また、
図10は、制御指令生成部36が実行するフローチャートの一例である。ここで、状態列分解部361は、ステップS21の処理を行い、制御器構成部362は、ステップS22の処理を行い、制御指令統合部363は、ステップS23の処理を行う。
【0130】
まず、状態列分解部361は、スキル入力列Us[k]に基づき、状態列X[k]を分解する(ステップS21)。この場合、状態列分解部361は、スキル入力列Us[k]から各時刻(タイムステップ)でどのスキルを利用しているかを判断し、状態列X[k]を、実行される各スキルに対応する状態列(「状態部分列」とも呼ぶ。)に分解する。
【0131】
次に、制御器構成部362は、対応するスキル毎に状態列X[k]を分解した状態部分列の各々に対して制御器を構成する(ステップS22)。この場合、制御器構成部362は、スキル情報Isnに含まれる制御器Γsを用い、サブ状態列の各々に対する制御器を構成する。そして、制御指令統合部363は、ステップS22で構成した制御器を統合し、目的タスクに対してスケジューリングされた全体の制御指令S1を生成する(ステップS23)。
【0132】
まず、状態列分解部361の処理の具体例について説明する。ここでは、一例として、各スキル入力列Us[k]のON及びOFFに基づくインデックス列を利用する方法について説明する。
【0133】
図11は、実行するスキルが2個(第1スキル、第2スキル)である場合のタイムステップ「k」と、第1スキルのスキル入力列「U
s1[k]」と、第2スキルのスキル入力列「U
s2[k]」と、サブ状態列の識別に用いるインデックス「Idx」との時系列の関係を示す。ただし、ここではそれぞれのスキルの所要時間ステップ数n
sは3ステップであると仮定する。
【0134】
この場合、まず、状態列分解部361は、スキル入力列Us1[k]、Us2[k]およびスキルの所要時間ステップ数nsの情報を用いてインデックス列Idx[k]を生成する。インデックス列Idx[k]は、k(ここでは0~9)ステップ目にどのスキルを利用しているかを示すインデックス列となる。ここでは、状態列分解部361は、スキル入力列Us1[k]がONとなり、以後スキルを実行しているタイムステップ(k=1~3)に対応するインデックス列Idx[k]を「1」とし、スキル入力列Us2[k]がONとなり,以後スキルを実行しているタイムステップ(k=7~9)に対応するインデックス列Idx[k]を「2」とする。また、状態列分解部361は、スキル実行に関連しないタイムステップでのインデックス列Idx[k]を「0」としている。
【0135】
そして、状態列分解部361は、得られたインデックス列Idx[k]から状態列X[k]を分解する。具体的には、状態列分解部361は、インデックス列Idx[k]の変化に基づいて状態列X[k]の各まとまりを特定する。この場合、状態列分解部361は、目的タスクの開始時刻又は直前に特定したまとまりの終了時刻から次にインデックスが変化する時刻までを1つのまとまりとしてまとまりを順次特定する。そして、状態列分解部361は、特定した各まとまりを状態部分列として抽出する。また、状態列分解部361は、各状態部分列には、インデックス変化の情報を付加する。
【0136】
例えば、
図9の例では、インデックス列Idx[k]の変化に基づいて、4つの状態部分列(第1部分列~第4部分列)を生成する。
第1部分列(Idx=0→1):{X[0],X[1]}
第2部分列(Idx=1→0):{X[1],X[2],X[3],X[4]}
第3部分列(Idx=0→2):{X[4],X[5],X[6],X[7]}
第4部分列(Idx=2):{X[7],X[8],X[9]}
【0137】
このように、状態列分解部361は、スキル入力列Us[k]に基づき、スキルの実行タイミングに応じて状態列X[k]を分解することができる。
【0138】
次に、制御器構成部362の処理の詳細について引き続き説明する。制御器構成部362は、状態列分解部361が生成した状態部分列の各々に対して制御器を構成する。
【0139】
ここで、制御器構成部362は、インデックスIdxが0から変化する(即ちスキルを利用していない状態に対応する)状態部分列については、状態部分列の情報に基づき、実際のシステムのための滑らかな目標軌道を生成し、生成された目標軌道に追従するための制御器を構成する。この場合の目標軌道の生成及び制御器の構成は、任意のロボット制御において用いられている方法に基づき行われてもよい。なお、
図11に示す具体例では、制御器構成部362は、第1部分列と第3部分列に対して上述した目標軌道の生成及び制御器の構成を行う。
【0140】
一方、制御器構成部362は、インデックスIdxが0以外から変化(即ちスキルの利用状態に対応)する状態部分列については、対応するスキル情報から抽出した制御器Γ
s(「(8-1)スキル情報のデータ構造」のセクションを参照)を用いる。そして、制御器構成部362は、この制御器Γ
sに対して設定する初期値・終端値のパラメータを、対象の状態部分列の最初の状態と最後の状態を用いて設定する。
図11に示す具体例では、制御器構成部362は、第2部分列と第4部分列に対してスキル情報を利用した制御器の構成を行う。
【0141】
このように、制御器構成部362は、任意の状態部分列に対する制御器を好適に構成することができる。
【0142】
次に、制御指令統合部363の処理の詳細について説明する。制御指令統合部363は、制御器構成部362が状態部分列毎に生成した制御器から、スケジューリングされた全体の制御指令S1を生成する。
図9の例では、制御指令統合部363は、第1部分列~第4部分列に夫々対応する以下の第1制御ステップ~第4制御ステップを含む制御指令S1を生成する。
【0143】
第1制御ステップは、生成された目標軌道(即ちX[0]からX[1]に至る軌道)に対する追従制御器を利用する制御ステップである。この場合、第1制御ステップは、目標状態X[1]を設定し、当該目標状態に到達することを第2制御ステップへの遷移条件(即ち第1制御ステップの終了条件)とする。そして、計測信号S2による状態認識結果等に基づき第2制御ステップへの遷移条件が満たされたと判定された場合、第1制御ステップから第2制御ステップへ遷移する。
【0144】
第2制御ステップは、第1スキルに対応するスキル情報に含まれる制御器を利用する制御ステップである。第2制御ステップは、目標状態X[4]を設定し、当該目標状態に到達することを第3制御ステップへの遷移条件(即ち第2制御ステップの終了条件)とする。そして、第3制御ステップへの遷移条件が満たされた場合、第2制御ステップから第3制御ステップへ遷移する。
【0145】
第3制御ステップは、生成された目標軌道(即ちX[4]からX[7]に至る軌道)に対する追従制御器を利用する制御ステップである。この場合、第3制御ステップは、目標状態X[7]を設定し、当該目標状態に到達することを第4制御ステップへの遷移条件(即ち第3制御ステップの終了条件)とする。そして、第4制御ステップへの遷移条件が満たされた場合、第3制御ステップから第4制御ステップへ遷移する。
【0146】
第4制御ステップは、第2スキルに対応するスキル情報に含まれる制御器を利用する制御ステップである。第4制御ステップは、目標状態X[9]を設定し、当該目標状態に到達することを第4制御ステップの終了条件とする。そして、計測信号S2等に基づき第2制御ステップへの遷移条件が満たされた場合、第4制御ステップが終了する。
【0147】
このように、制御指令生成部36は、最適化処理部35が変数列Zから抽出した抽象空間の状態軌道を表す状態列X[k]及び時系列のスキル入力を表すスキル入力列Us[k]及びスキル情報Isnから、制御指令S1を好適に生成することができる。
【0148】
(11)
全体処理フロー
図12は、ロボットコントローラ1が実行するロボット5の動作計画に関する処理手順を示すフローチャートの一例である。
【0149】
まず、ロボットコントローラ1の抽象状態設定部31は、記憶装置4に記憶された操作対象物情報I3から物体間関係情報Irを抽出する(ステップS31)。そして、抽象状態設定部31は、ロボット5のエンドエフェクタ、操作対象物、環境物体を含む作業空間内の各物体の抽象状態を設定する(ステップS32)。
【0150】
そして、ダイナミクス・拘束力設定部32は、ステップS31で抽出された物体間関係情報Irに基づき、物体間の拘束を考慮した抽象システムダイナミクスであるシステムモデルMbを設定する(ステップS33)。そして、目標論理式生成部33は、物体間関係情報Irに基づき、
図6(B)に示すフローチャートを実行することで、接合・解除に関する最終状態を表す目標関係統合論理式φ1を生成する(ステップS34)。また、目標論理式生成部33は、一般制約条件情報I2に基づき、接合・解除以外に満たすべき状態(例えば障害物回避等の制約条件)を表す一般目標論理式φ2を生成する(ステップS35)。
【0151】
次に、スキル利用設定部34は、スキルデータベースI4からスキル情報Isnを抽出し、スキル利用動作指令φ3を生成する(ステップS36)。また、スキル利用設定部34は、スキル情報Isnに基づき、スキル利用評価関数F
sを生成する(ステップS37)。具体的には、スキル利用設定部34は、ステップS36及びステップS37において、
図8に示すフローチャートを実行することで、スキル利用動作指令φ3及びスキル利用評価関数F
sを生成する。
【0152】
次に、最適化処理部35は、ステップS33~ステップS37の処理結果に基づき最適化問題を構成し、これを解くことによって抽象空間における目標軌道を算出する(ステップS38)。この場合、最適化処理部35は、式(6)に示される最適化問題を構成する。そして、最適化処理部35は、算出した目標軌道を示す変数列Zから、状態列X[k]及びスキル入力列Us[k]を抽出する。
【0153】
次に、制御指令生成部36は、ステップS38で算出された目標軌道に基づき、制御指令S1を生成する(ステップS39)。この場合、例えば、
図10に示すフローチャートに従い、制御指令生成部36は、状態列X[k]と、時系列のスキル入力を表すスキル入力列U
s[k]と、スキル情報Isnとに基づき、実際のロボットシステムにおける制御指令S1を生成する。
【0154】
(12)技術的効果
次に、第1実施形態におけるロボット制御システム100に基づく技術的効果について補足説明する。
【0155】
部品の組み立て等の複数物体の接合(接触を含む)を伴うような複雑なタスクにロボットを導入する場合、タスク分解し作業工程を作成する工程設計と、作業工程から実際の動作計画を生成する動作設計のシステムインテグレーションがボトルネックとなっている。例えば、物体同士の接合を伴うロボットの動作計画を行う際に必要となる物体の弾性や嵌め合いを考慮したモデリングは困難である。また、そのような接合等を考慮した物体のモデルが得られたとしても,そうしたモデルはしばしば複雑な性質(非線形性・ハイブリッド性)を有するため,動作計画に利用しにくい。また、与えられたタスクが複数のサブタスクによって構成されており、それらの実行順序が陽に与えられていない場合,各サブタスクを実行するための動作計画とサブタスクの順序自体の両方を計算しなければならない。特に,上記のような接合等を考慮した複雑なモデルを利用してロボットの動作計画を策定する場合には,実用的な時間長により動作計画を策定することができない可能性がある。このように、動作計画に用いるモデル・アルゴリズムの構造を如何に簡便なものにできるかが実用化における重要な課題となる。
【0156】
以上を勘案し、第1実施形態に係るロボットコントローラ1は、物体同士の接合等を考慮した計算コストの低い動作計画手法を実行する。このとき、ロボットコントローラ1は、抽象空間において時相論理とスキルを利用することで、抽象的な物体の接合表現を行い、接合等を伴う動作を含むマルチステージタスクにおいても計算コストを抑えた計画を行う。そして、ロボットコントローラ1は、抽象空間での動作計画結果およびスキル情報を用い、実際のシステムにおける制御指令S1を好適に算出する。
【0157】
例えば、物体のピック&プレイスでは、一般に、マニピュレータのエンドエフェクタ形状と把持対象パーツの幾何形状から動作計画にはマニピュレータの把持位置・姿勢および把持対象物体の物体特性を考慮した厳密な計算が必要となる。これに対し、第1実施形態によれば、抽象空間において「把持可能領域におけるスキル実行」によって把持対象物体の把持を実現できるとし、この表現を用いて動作計画を策定する。このように、第1実施形態では、物体の接合等に関する動作をモジュール化したスキルを抽象空間において表現することで、動作計画問題を簡易化することができる。
【0158】
<第2実施形態>
図13は、第2実施形態における時相論理式生成装置1Xの概略構成図を示す。時相論理式生成装置1Xは、主に、目標関係論理式生成手段331Xと、目標関係論理式統合手段332Xとを有する。なお、時相論理式生成装置1Xは、複数の装置から構成されてもよい。時相論理式生成装置1Xは、例えば、第1実施形態におけるロボットコントローラ1とすることができる。
【0159】
目標関係論理式生成手段331Xは、ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、関係が規定された物体の組の各々について目標状態における関係を表す時相論理式である目標関係論理式を生成する。目標関係論理式生成手段331Xは、例えば、第1実施形態における目標関係論理式生成部331とすることができる。
【0160】
目標関係論理式統合手段332Xは、目標関係論理式を統合した時相論理式を生成する。目標関係論理式統合手段332Xは、例えば、第1実施形態における目標関係論理式統合部332とすることができる。
【0161】
目標関係論理式統合手段332Xの処理後、例えば、時相論理式生成装置1X又は統合された目標関係論理式が時相論理式生成装置1Xから供給された他の装置は、統合された目標関係論理式を、最適化処理に用いる制約条件又は評価関数に反映する。そして、制約条件と評価関数を用いた最適化によりロボットに関する目標軌道を算出し、さらに、当該目標軌道に基づき、ロボットに対する制御指令を生成する。この場合、例えば、第1実施形態のようにスキルデータベースI4から抽出したスキル情報Isnによりスキルを抽象空間において表現することで、物体間の接合・解除動作を実現してもよい。他の例では、スキルを用いることなく、拘束スイッチ変数ηのON及びOFFの切り替えにより、物体間の接合・解除動作を表現してもよい。また、時相論理式生成装置1Xが生成する時相論理式は、ロボットの作業のみを規定するものに限られず、人手の作業に関する内容を含んでいてもよい。
【0162】
図14は、第2実施形態におけるフローチャートの一例である。目標関係論理式生成手段331Xは、ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、関係が規定された物体の組の各々について目標状態における関係を表す時相論理式である目標関係論理式を生成する(ステップS41)。目標関係論理式統合手段332Xは、目標関係論理式を統合した時相論理式を生成する(ステップS42)。
【0163】
第2実施形態によれば、時相論理式生成装置1Xは、ロボットの作業に関する目標状態における物体間の関係を表す時相論理式を好適に生成することができる。そして、時相論理式生成装置1Xが生成した時相論理式は、ロボットの動作計画に好適に用いられる。
【0164】
<第3実施形態>
図15は、第3実施形態における動作指令生成装置1Yの概略構成図を示す。動作指令生成装置1Yは、主に、スキル情報取得手段341Yと、スキルタプル生成手段342Yと、スキル利用動作指令生成手段343Yとを有する。なお、動作指令生成装置1Yは、複数の装置から構成されてもよい。動作指令生成装置1Yは、例えば、第1実施形態におけるロボットコントローラ1とすることができる。
【0165】
スキル情報取得手段341Yは、ロボットの動作計画に用いるスキルに関するスキル情報を取得する。スキル情報取得手段341Yは、例えば、第1実施形態におけるスキル情報取得部341とすることができる。
【0166】
スキルタプル生成手段342Yは、スキル情報に基づき、動作計画において設定したシステムモデルにおいてスキルと関連する変数の組であるスキルタプルを生成する。上記のシステムモデルは、例えば、第1実施形態におけるシステムモデルMbとすることができる。また、スキルタプル生成手段342Yは、例えば、第1実施形態におけるスキルタプル生成部342とすることができる。
【0167】
スキル利用動作指令生成手段343Yは、スキルタプルに対応する動作を表す時相論理指令であるスキル利用動作指令を生成する。スキル利用動作指令生成手段343Yは、例えば、第1実施形態におけるスキル利用動作指令生成部343とすることができる。
【0168】
図16は、第3実施形態におけるフローチャートの一例である。スキル情報取得手段341Yは、ロボットの動作計画に用いるスキルに関するスキル情報を取得する(ステップS51)。スキルタプル生成手段342Yは、スキル情報に基づき、動作計画において設定したシステムモデルにおいてスキルと関連する変数の組であるスキルタプルを生成する(ステップS52)。スキル利用動作指令生成手段343Yは、スキルタプルに対応する動作を表す時相論理指令であるスキル利用動作指令を生成する(ステップS53)。
【0169】
第3実施形態によれば、動作指令生成装置1Yは、物体間の接合等の複雑な動作を要するタスクにおいても、スキル表現を用いた動作計画のための動作指令を好適に生成することができる。
【0170】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0171】
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0172】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0173】
1 ロボットコントローラ
1X 時相論理式生成装置
1Y 動作指令生成装置
4 記憶装置
5 ロボット
7 計測装置
41 アプリケーション情報記憶部
100 ロボット制御システム