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

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

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

<>
  • 特許-制御装置、制御方法及び、プログラム 図1
  • 特許-制御装置、制御方法及び、プログラム 図2
  • 特許-制御装置、制御方法及び、プログラム 図3
  • 特許-制御装置、制御方法及び、プログラム 図4
  • 特許-制御装置、制御方法及び、プログラム 図5
  • 特許-制御装置、制御方法及び、プログラム 図6
  • 特許-制御装置、制御方法及び、プログラム 図7
  • 特許-制御装置、制御方法及び、プログラム 図8
  • 特許-制御装置、制御方法及び、プログラム 図9
  • 特許-制御装置、制御方法及び、プログラム 図10
  • 特許-制御装置、制御方法及び、プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-23
(45)【発行日】2025-01-07
(54)【発明の名称】制御装置、制御方法及び、プログラム
(51)【国際特許分類】
   G05D 1/43 20240101AFI20241224BHJP
【FI】
G05D1/43
【請求項の数】 10
(21)【出願番号】P 2022555227
(86)(22)【出願日】2020-10-09
(86)【国際出願番号】 JP2020038296
(87)【国際公開番号】W WO2022074823
(87)【国際公開日】2022-04-14
【審査請求日】2023-04-05
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【弁理士】
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【弁理士】
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【弁理士】
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】大山 博之
(72)【発明者】
【氏名】高野 凜
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特開平8-16240(JP,A)
【文献】特開2005-32196(JP,A)
【文献】国際公開第2020/161880(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/87
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定する抽象状態設定手段と、
前記作業空間内の情報の確度を表すマップである環境マップを生成する環境マップ生成手段と、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成する抽象モデル生成手段と、
前記抽象モデルに基づき、前記ロボットに対する制御入力を生成する制御入力生成手段と、
前記制御入力による前記ロボットの動作中において、前記抽象状態の変化に基づき、前記抽象モデルの再生成の要否を判定する抽象状態比較手段と、
を備える制御装置。
【請求項2】
前記抽象状態比較手段は、前記制御入力による前記ロボットの動作中において、前記物体の個数又は位置の少なくとも一方の変化に基づき、前記抽象モデルの再生成の要否を判定する、請求項に記載の制御装置。
【請求項3】
前記ロボットには、計測装置が備えられており、
前記ロボットの動作に応じて前記計測装置の計測範囲が変化し、
前記抽象状態設定手段は、前記ロボットの動作中において、前記計測装置が生成する計測信号に基づき、前記抽象状態の変化を特定する、請求項またはに記載の制御装置。
【請求項4】
前記抽象状態比較手段は、前記計測信号に基づき設定された現在の前記抽象状態と、前記制御入力に基づき予測される現在の前記抽象状態との差に基づき、前記抽象モデルの再生成の要否を判定する、請求項に記載の制御装置。
【請求項5】
前記制御入力生成手段は、前記抽象モデルと、前記環境マップが表す確度を評価する環境評価値とに基づき、前記制御入力を生成する、請求項1~のいずれか一項に記載の制御装置。
【請求項6】
前記制御入力生成手段は、前記制御入力及び前記環境評価値を含む評価関数と、前記ロボットに作業させるタスクである目的タスクの実行において満たすべき制約条件とを設定し、前記評価関数と前記制約条件とに基づく最適化により前記制御入力を生成する、請求項に記載の制御装置。
【請求項7】
最終目標を表す時相論理の論理式である目標論理式を生成する目標論理式生成手段と、
前記論理式から、前記ロボットに作業させるタスクである目的タスクを実行するためのタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、をさらに有し、
前記制御入力生成手段は、前記抽象モデルと前記タイムステップ論理式とに基づき、前記制御入力を生成する、請求項1~のいずれか一項に記載の制御装置。
【請求項8】
コンピュータが、
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定し、
前記作業空間内の情報の確度を表すマップである環境マップを生成し、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成し、
前記抽象モデルに基づき、前記ロボットに対する制御入力を生成
前記制御入力による前記ロボットの動作中において、前記抽象状態の変化に基づき、前記抽象モデルの再生成の要否を判定する
制御方法。
【請求項9】
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定し、
前記作業空間内の情報の確度を表すマップである環境マップを生成し、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成し、
前記抽象モデルに基づき、前記ロボットに対する制御入力を生成
前記制御入力による前記ロボットの動作中において、前記抽象状態の変化に基づき、前記抽象モデルの再生成の要否を判定する処理をコンピュータに実行させるプログラム。
【請求項10】
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定する抽象状態設定手段と、
前記作業空間内の情報の確度を表すマップである環境マップを生成する環境マップ生成手段と、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成する抽象モデル生成手段と、
前記抽象モデルと、前記環境マップが表す確度を評価する環境評価値とに基づき、前記ロボットに対する制御入力を生成する制御入力生成手段と、
を備える制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットの動作を制御する制御装置、制御方法及び記憶媒体の技術分野に関する。
【背景技術】
【0002】
ロボットに作業させるタスクが与えられた場合に、当該タスクを実行するために必要なロボットの制御を行う制御手法が提案されている。例えば、特許文献1には、行動と環境の状態の変化を学習し、これを基に、所定の行動に対する環境の状態の変化を予測し、この予測結果に基づいて現在の状態から目標状態に達するまでの自律エージェントの行動シーケンスを計画するコントローラが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2007-018490号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
与えられたタスクをロボットに実行させるための動作計画を行う場合に、タスクを完了するために認識する必要がある物体等が初期状態において計測できないことがある。この場合においても、動作計画を適切に行いロボットの動作を開始する必要がある。
【0005】
本開示の目的の1つは、上述した課題を鑑み、ロボットを好適に制御することが可能な制御装置、制御方法及び記憶媒体を提供することである。
【課題を解決するための手段】
【0006】
制御装置の一の態様は、
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定する抽象状態設定手段と、
前記作業空間内の情報の確度を表すマップである環境マップを生成する環境マップ生成手段と、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成する抽象モデル生成手段と、
前記抽象モデルに基づき、前記ロボットに対する制御入力を生成する制御入力生成手段と、
前記制御入力による前記ロボットの動作中において、前記抽象状態の変化に基づき、前記抽象モデルの再生成の要否を判定する抽象状態比較手段と、
を備える制御装置である。
【0007】
制御方法の一の態様は、
コンピュータが、
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定し、
前記作業空間内の情報の確度を表すマップである環境マップを生成し、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成し、
前記抽象モデルに基づき、前記ロボットに対する制御入力を生成
前記制御入力による前記ロボットの動作中において、前記抽象状態の変化に基づき、前記抽象モデルの再生成の要否を判定する
制御方法である。
【0008】
プログラムの一の態様は、
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定し、
前記作業空間内の情報の確度を表すマップである環境マップを生成し、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成し、
前記抽象モデルに基づき、前記ロボットに対する制御入力を生成
前記制御入力による前記ロボットの動作中において、前記抽象状態の変化に基づき、前記抽象モデルの再生成の要否を判定する処理をコンピュータに実行させる。
【発明の効果】
【0009】
ロボットを動作させるための制御入力を好適に生成することができる。
【図面の簡単な説明】
【0010】
図1】第1実施形態におけるロボット制御システムの構成を示す。
図2】ロボットコントローラのハードウェア構成を示す。
図3】アプリケーション情報のデータ構造の一例を示す。
図4】ロボットコントローラの機能ブロックの一例である。
図5】ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。
図6】ロボットが移動体である場合のロボットの作業空間の俯瞰図を示す。
図7】初期状態における未計測空間と、計測済空間との関係を概略的に表した作業空間の俯瞰図である。
図8】ロボットが移動した後の未計測空間と、計測済空間との関係を概略的に表した作業空間の俯瞰図である。
図9】第1実施形態においてロボットコントローラが実行するロボット制御処理の概要を示すフローチャートの一例である。
図10】第2実施形態における制御装置の概略構成図を示す。
図11】第2実施形態において制御装置が実行するフローチャートの一例である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、制御装置、制御方法及び記憶媒体の実施形態について説明する。
【0012】
<第1実施形態>
(1)システム構成
図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、ロボットコントローラ1と、指示装置2と、記憶装置4と、ロボット5と、計測装置7と、を備える。
【0013】
ロボットコントローラ1は、ロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)が指定された場合に、ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスに目的タスクを変換し、生成したシーケンスに基づきロボット5を制御する。
【0014】
また、ロボットコントローラ1は、指示装置2、記憶装置4、ロボット5、及び計測装置7と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。例えば、ロボットコントローラ1は、指示装置2から、目的タスクの指定、アプリケーション情報の生成又は更新等に関する入力信号を受信する。また、ロボットコントローラ1は、指示装置2に対し、所定の出力制御信号を送信することで、指示装置2に所定の表示又は音出力を実行させる。さらに、ロボットコントローラ1は、ロボット5の制御に関する制御信号「S1」をロボット5に送信する。また、ロボットコントローラ1は、計測装置7から計測信号「S2」を受信する。
【0015】
指示装置2は、作業者によるロボット5に対する指示を受け付ける装置である。指示装置2は、ロボットコントローラ1から供給される出力制御信号に基づき所定の表示又は音出力を行ったり、作業者の入力に基づき生成した入力信号をロボットコントローラ1へ供給したりする。指示装置2は、入力部と表示部とを備えるタブレット端末であってもよく、据置型のパーソナルコンピュータであってもよい。
【0016】
記憶装置4は、アプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、ロボット5が実行すべきシーケンスである動作シーケンスを目的タスクから生成するために必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は、図3を参照しながら後述する。記憶装置4は、ロボットコントローラ1に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶装置4は、ロボットコントローラ1と通信網を介してデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は、複数のサーバ装置から構成されてもよい。
【0017】
ロボット5は、ロボットコントローラ1から供給される制御信号S1に基づき目的タスクに関する作業を行う。ロボット5は、例えば、組み立て工場、食品工場などの各種工場、又は、物流の現場などで動作を行うロボットである。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよい。ロボット5は、ロボット5の状態を示す状態信号をロボットコントローラ1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサ(内界センサ)の出力信号であってもよく、制御信号S1が表すロボット5の動作計画のシーケンスの進捗状態を示す信号であってもよい。
【0018】
計測装置7は、目的タスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサ(外界センサ)である。計測装置7は、ロボット5に備えられたセンサを含んでもよく、作業空間内に設けられたセンサを含んでもよい。図1では、計測装置7は、ロボット5に設けられたカメラなどの外界センサを含んでおり、ロボット5の動作に応じて計測範囲が変化する。他の例では、計測装置7は、ロボット5の作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)を含んでもよい。また、計測装置7は、作業空間内の音又は物体の触覚を検出するセンサを含んでもよい。このように、計測装置7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
【0019】
なお、図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボット5は、複数台存在してもよく、ロボットアームなどの夫々が独立して動作する制御対象物を複数有してもよい。これらの場合であっても、ロボットコントローラ1は、目的タスクに基づき、ロボット5毎又は制御対象物毎の動作を規定するシーケンスを表す制御信号S1を、対象のロボット5に送信する。また、ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械と協働作業を行うものであってもよい。また、計測装置7は、ロボット5の一部であってもよい。また、指示装置2は、ロボットコントローラ1と同一の装置として構成されてもよい。また、ロボットコントローラ1は、複数の装置から構成されてもよい。この場合、ロボットコントローラ1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。
【0020】
(2)ハードウェア構成
図2(A)は、ロボットコントローラ1のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
【0021】
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。プロセッサ11は、コンピュータの一例である。
【0022】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。なお、メモリ12が記憶する情報の一部は、ロボットコントローラ1と通信可能な1又は複数の外部記憶装置(例えば記憶装置4)により記憶されてもよく、ロボットコントローラ1に対して着脱自在な記憶媒体により記憶されてもよい。
【0023】
インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
【0024】
なお、ロボットコントローラ1のハードウェア構成は、図2(A)に示す構成に限定されない。例えば、ロボットコントローラ1は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。また、ロボットコントローラ1は、指示装置2又は記憶装置4の少なくとも一方を含んで構成されてもよい。
【0025】
図2(B)は、指示装置2のハードウェア構成を示す。指示装置2は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bと、音出力部24cと、を含む。プロセッサ21、メモリ22及びインターフェース23は、データバス20を介して接続されている。また、インターフェース23には、入力部24aと表示部24bと音出力部24cとが接続されている。
【0026】
プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、CPU、GPUなどのプロセッサである。プロセッサ21は、インターフェース23を介して入力部24aが生成した信号を受信することで、入力信号を生成し、インターフェース23を介してロボットコントローラ1に当該入力信号を送信する。また、プロセッサ21は、インターフェース23を介してロボットコントローラ1から受信した出力制御信号に基づき、表示部24b又は音出力部24cの少なくとも一方を、インターフェース23を介して制御する。
【0027】
メモリ22は、RAM、ROM、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ22には、指示装置2が実行する処理を実行するためのプログラムが記憶される。
【0028】
インターフェース23は、指示装置2と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。また、インターフェース23は、入力部24a、表示部24b及び音出力部24cのインターフェース動作を行う。入力部24aは、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置などが該当する。表示部24bは、例えば、ディスプレイ、プロジェクタ等であり、プロセッサ21の制御に基づき表示を行う。また、音出力部24cは、例えば、スピーカであり、プロセッサ21の制御に基づき音出力を行う。
【0029】
なお、指示装置2のハードウェア構成は、図2(B)に示す構成に限定されない。例えば、入力部24a、表示部24b又は音出力部24cの少なくともいずれかは、指示装置2と電気的に接続する別体の装置として構成されてもよい。また、指示装置2は、カメラなどの種々の装置と接続してもよく、これらを内蔵してもよい。
【0030】
(3)アプリケーション情報
次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
【0031】
図3は、アプリケーション情報のデータ構造の一例を示す。図3に示すように、アプリケーション情報は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、ダイナミクスモデル情報I5と、物体モデル情報I6と、マップ更新モデル情報I7と、マップ・物体事前情報I8とを含む。
【0032】
抽象状態指定情報I1は、動作シーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、作業空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、目的タスクの種類毎に、定義する必要がある抽象状態を指定する。
【0033】
制約条件情報I2は、目的タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム)が接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、目的タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
【0034】
動作限界情報I3は、ロボットコントローラ1により制御が行われるロボット5の動作限界に関する情報を示す。動作限界情報I3は、例えば、ロボット5の速度、加速度、又は角速度の上限を規定する情報である。なお、動作限界情報I3は、ロボット5の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
【0035】
サブタスク情報I4は、動作シーケンスの構成要素となるサブタスクの情報を示す。「サブタスク」は、ロボット5が受付可能な単位により目的タスクを分解したタスクであって、細分化されたロボット5の動作を指す。例えば、目的タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット5のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定する。サブタスク情報I4は、目的タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。
【0036】
ダイナミクスモデル情報I5は、作業空間におけるダイナミクスを抽象化したダイナミクスモデルに関する情報である。例えば、ダイナミクスモデルは、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルであってもよい。この場合、ダイナミクスモデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、ロボット5により作業対象となる物(「対象物」とも呼ぶ。)をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。ダイナミクスモデル情報I5は、目的タスクの種類毎に適したダイナミクスモデルに関する情報を有している。
【0037】
物体モデル情報I6は、計測装置7が生成した計測信号S2から認識すべき作業空間内の各物体の物体モデルに関する情報である。上述の各物体は、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の作業体などが該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、現在実行中の動作などをロボットコントローラ1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(Computer Aided Design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。また、対象物などの主要な物体に画像認識用のARマーカが付されている場合には、ARマーカにより物体を認識するために必要な情報が物体モデル情報I6として記憶されてもよい。
【0038】
マップ更新モデル情報I7は、ロボット5の作業空間(環境)において収集された情報の確度を表したマップ(「環境マップb」とも呼ぶ。)を更新するモデル(「マップ更新モデルb」とも呼ぶ。)に関する情報である。
【0039】
環境マップbは、ロボットコントローラ1により生成される。環境マップbは、例えば、対象空間(2次元又は3次元空間)を格子状に分割した場合のグリッドごとに情報の確度を離散的に表す情報であってもよく、対象空間における情報の確度を連続的に表す情報であってもよい。また、環境マップbは、物理的な2次元空間又は3次元空間の軸に時間等の概念を表す軸を加えた空間において表される確度の情報であってもよい。また、環境マップbは、確度の時間的な減衰が生じるものであってもよい。例えば、計測装置7が迷路等を探索する移動式ロボットである場合などでは、計測した場所でも時間の経過とともに状況は変化する可能性があり、計測後からの時間経過と共に情報の確度が低くなる。以上を勘案し、ロボットコントローラ1は、環境マップbが表す確度を、計測後からの時間経過に応じて減衰させるように環境マップbを更新してもよい。
【0040】
マップ更新モデルbは、環境マップbの時間変化を予測するモデルであり、例えば、予測されるロボット5への入力と、設定された抽象状態と、現在の環境マップbとを引数とする関数により表される。マップ更新モデルbは、例えば、ロボット5に設置された計測装置7の設置位置、設置向き(角度)、計測装置7の視野角、計測可能距離などを勘案して予め生成される。環境マップb及びマップ更新モデルbについては、後述の図7及び図8を参照して具体的に説明する。
【0041】
マップ・物体事前情報I8は、環境マップb及び抽象状態を設定すべき物体に関する事前情報を表す。マップ・物体事前情報I8は、ロボットコントローラ1がロボット5の動作計画を行う時点よりも前に生成された情報であって、例えば、任意の物体の初期状態を表す情報を含んでもよく、環境マップbの初期状態を表す情報を含んでもよい。マップ更新モデル情報I7及びマップ・物体事前情報I8は、指示装置2を用いたユーザによる外部入力に基づき生成された情報であってもよい。
【0042】
なお、アプリケーション情報記憶部41は、上述した情報の他、ロボットコントローラ1が制御信号S1を生成するために必要な種々の情報を記憶してもよい。例えば、アプリケーション情報記憶部41は、ロボット5の作業空間を特定する情報を記憶してもよい。
【0043】
(4)処理概要
次に、ロボットコントローラ1の処理概要について説明する。概略的には、ロボットコントローラ1は、環境マップbと、マップ更新モデルbとを用い、環境の不確実性を考慮したロボット5の動作計画を行う。そして、ロボットコントローラ1は、制御信号S1に基づくロボット5の動作中において、計測信号S2に基づき環境マップbを更新し、かつ、抽象状態の変化に応じて抽象モデルの再設定及び制御信号S1の再生成を行う。これにより、ロボットコントローラ1は、不確実性のある環境においても、目的タスクを完了するように好適にロボット5の制御を行う。
【0044】
図4は、ロボットコントローラ1の処理の概要を示す機能ブロックの一例である。ロボットコントローラ1のプロセッサ11は、機能的には、抽象状態設定部31と、目標論理式生成部32と、タイムステップ論理式生成部33と、環境マップ更新部34と、抽象モデル生成部35と、制御入力生成部36と、ロボット制御部37と、抽象状態比較部38とを有する。なお、図4では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロックの図においても同様である。
【0045】
抽象状態設定部31は、計測装置7から供給される計測信号S2と、抽象状態指定情報I1と、物体モデル情報I6と、に基づき、作業空間内の抽象状態を設定する。この場合、抽象状態設定部31は、計測信号S2を受信した場合に、物体モデル情報I6等を参照し、目的タスクを実行する際に考慮する必要がある作業空間内の各物体の種類等の属性と位置及び姿勢などの状態とを認識する。状態の認識結果は、例えば、状態ベクトルとして表される。そして、抽象状態設定部31は、各物体に対する認識結果に基づいて、目的タスクを実行する際に考慮する必要がある各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部31は、設定した抽象状態を示す情報(「抽象状態設定情報IS」とも呼ぶ。)を、目標論理式生成部32に供給する。
【0046】
また、抽象状態設定部31は、ロボット5が制御信号S1に基づき動作している期間(「ロボット動作期間Tw」とも呼ぶ。)において、所定時間間隔毎(例えば所定タイムステップ毎)に、最新の計測信号S2に基づいて作業空間内の物体の最新の抽象状態を認識する。そして、抽象状態設定部31は、最新の計測信号S2に基づいて認識した抽象状態(「計測抽象状態Stm」とも呼ぶ。)を表す情報を、抽象状態比較部38に供給する。
【0047】
目標論理式生成部32は、抽象状態設定情報ISに基づき、指定された目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部32は、生成した目標論理式Ltagを、タイムステップ論理式生成部33に供給する。
【0048】
タイムステップ論理式生成部33は、目標論理式生成部32から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部33は、生成したタイムステップ論理式Ltsを、制御入力生成部36に供給する。
【0049】
環境マップ更新部34は、ロボット5が作動する前の動作計画時において、マップ・物体事前情報I8と、計測信号S2とに基づき、初期状態となる環境マップbを生成する。また、環境マップ更新部34は、ロボット動作期間Twにおいて、所定の時間間隔により(例えば所定タイムステップ毎に)、計測信号S2に基づき環境マップbの更新を行う。環境マップ更新部34は、生成又は更新した環境マップbを、抽象モデル生成部35及び制御入力生成部36へ供給する。なお、マップ・物体事前情報I8は存在しなくともよい。この場合、環境マップ更新部34は、計測信号S2に基づき、作業空間の初期状態での情報の確度を表す環境マップbを生成する。また、環境マップ更新部34は、環境マップbが表す確度を、計測後からの時間経過に応じて減衰させるように環境マップbを更新してもよい。言い換えると、環境マップ更新部34は、計測装置7による計測が行われた空間の当該計測後からの時間経過に基づき当該空間における確度を減衰させるように環境マップbを更新してもよい。
【0050】
抽象モデル生成部35は、ダイナミクスモデル情報I5と、マップ更新モデル情報I7と、抽象状態設定情報ISとに基づき、作業空間における現実のダイナミクスを抽象化したダイナミクスモデルと、マップ更新モデルbとを含む抽象モデル「Σ」を生成する。抽象モデルΣの生成方法については後述する。抽象モデル生成部35は、生成した抽象モデルΣを、制御入力生成部36へ供給する。
【0051】
制御入力生成部36は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部35から供給される抽象モデルΣとを満たし、評価関数を最適化するタイムステップ毎のロボット5への制御入力を決定する。そして、制御入力生成部36は、ロボット5へのタイムステップ毎の制御入力に関する情報(「制御入力情報Icn」とも呼ぶ。)を、ロボット制御部37及び抽象状態比較部38へ供給する。
【0052】
ロボット制御部37は、制御入力生成部36から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、ロボット5が解釈可能なサブタスクのシーケンスを表す制御信号S1を生成する。そして、ロボット制御部37は、インターフェース13を介して制御信号S1をロボット5へ供給する。なお、ロボット制御部37に相当する機能を、ロボットコントローラ1に代えてロボット5が有してもよい。この場合、ロボット5は、ロボットコントローラ1から供給される制御入力情報Icnに基づき、計画されたタイムステップ毎の動作を実行する。
【0053】
抽象状態比較部38は、ロボット動作期間Tw中に、抽象状態の変化に基づき、抽象モデルΣの再生成の要否を判定する。この場合、抽象状態比較部38は、抽象状態設定部31から供給される計測抽象状態Stm(即ち、計測された現在の抽象状態)と、制御入力情報Icnに基づき予測される現在の抽象状態(「予測抽象状態Stp」とも呼ぶ。)とを比較する。そして、抽象状態比較部38は、計測抽象状態Stmと予測抽象状態Stpとに実質的な差異があると判定した場合、抽象モデルΣを再生成する必要があると判定し、計測抽象状態Stmを、抽象モデル生成部35へ供給する。
【0054】
ここで、抽象状態設定部31、目標論理式生成部32、タイムステップ論理式生成部33、環境マップ更新部34、抽象モデル生成部35、制御入力生成部36、ロボット制御部37及び抽象状態比較部38の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
【0055】
(5)各処理部の詳細
次に、図4において説明した各処理部が実行する処理の詳細について順に説明する。
【0056】
(5-1)抽象状態設定部
まず、抽象状態設定部31は、物体モデル情報I6を参照し、作業空間の環境を認識する技術(画像処理技術、画像認識技術、音声認識技術、RFID(Radio Frequency Identifier)を用いる技術等)により計測信号S2を解析することで、作業空間に存在する物体の状態及び属性(種類等)を認識する。上述の画像認識技術には、深層学習に基づくセマンティックセグメンテーション、モデルマッチング、又はARマーカ等を用いた認識などが含まれる。上記の認識結果には、作業空間内の物体の種類、位置、及び姿勢などの情報が含まれている。また、作業空間内の物体は、例えば、ロボット5、ロボット5が取り扱う工具又は部品などの対象物、障害物及び他作業体(ロボット5以外に作業を行う人又はその他の物体)などである。
【0057】
次に、抽象状態設定部31は、計測信号S2等による物体の認識結果と、アプリケーション情報記憶部41から取得した抽象状態指定情報I1とに基づき、作業空間内の抽象状態を設定する。この場合、まず、抽象状態設定部31は、抽象状態指定情報I1を参照し、作業空間内において設定すべき抽象状態を認識する。なお、作業空間内において設定すべき抽象状態は、目的タスクの種類によって異なる。よって、目的タスクの種類毎に設定すべき抽象状態が抽象状態指定情報I1に規定されている場合には、抽象状態設定部31は、指定された目的タスクに対応する抽象状態指定情報I1を参照し、設定すべき抽象状態を認識する。
【0058】
図5は、ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。図5に示す作業空間には、2つのロボットアーム52a、52bと、4つの対象物61(61a~61d)と、障害物62と、対象物61の目的地である領域Gとが存在している。
【0059】
この場合、まず、抽象状態設定部31は、作業空間内の各物体の状態を認識する。具体的には、抽象状態設定部31は、対象物61の状態、障害物62の状態(ここでは存在範囲等)、ロボット5の状態、領域Gの状態(ここでは存在範囲等)などを夫々認識する。
【0060】
ここでは、抽象状態設定部31は、対象物61a~61dの各々の中心の位置ベクトル「x」~「x」を、対象物61a~61dの位置として認識する。また、抽象状態設定部31は、対象物を把持するロボットハンド53aの位置ベクトル「xr1」と、ロボットハンド53bの位置ベクトル「xr2」とを、ロボットアーム52aとロボットアーム52bの位置として認識する。なお、これらの位置ベクトルx~x,xr1,xr2は、対応する物体の姿勢(角度)に関する要素、速度に関する要素などの、状態に関する種々の要素を含んだ状態ベクトルとして定義されてもよい。
【0061】
同様に、抽象状態設定部31は、障害物62の存在範囲、領域Gの存在範囲等を認識する。なお、抽象状態設定部31は、例えば、障害物62を直方体とみなし、領域Gを矩形とみなす場合には、障害物62及び領域Gの各頂点の位置ベクトルを認識する。
【0062】
また、抽象状態設定部31は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部31は、作業空間内に存在する物体に関する認識結果(例えば物体の種類毎の個数)と、抽象状態指定情報I1とに基づき、抽象状態を示す命題を定める。
【0063】
図5の例では、抽象状態設定部31は、計測信号S2等に基づき認識した対象物61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部31は、対象物「i」(i=1~4)が最終的に載置されるべき目標地点である領域G内に存在するという命題「g」を定義する。また、抽象状態設定部31は、障害物62に対して識別ラベル「O」を付し、対象物iが障害物Oに干渉しているという命題「o」を定義する。さらに、抽象状態設定部31は、ロボットアーム52同士が干渉するという命題「h」を定義する。
【0064】
このように、抽象状態設定部31は、定義すべき抽象状態を認識し、当該抽象状態を表す命題(上述の例ではg、o、h等)を、対象物61の数、ロボットアーム52の数、障害物62の数、ロボット5の数等に応じてそれぞれ定義する。そして、抽象状態設定部31は、設定した抽象状態(抽象状態を表す命題及び状態ベクトルを含む)を表す情報を、抽象状態設定情報ISとして目標論理式生成部32に供給する。
【0065】
図6は、ロボット5が移動体である場合のロボット5の作業空間(動作範囲)の俯瞰図を示す。図6に示す作業空間には、2体のロボット5A、5Bと、障害物72と、ロボット5A、5Bの目的地である領域Gとが存在している。
【0066】
この場合、まず、抽象状態設定部31は、作業空間内の各物体の状態を認識する。具体的には、抽象状態設定部31は、ロボット5A、5Bの位置、姿勢及び移動速度、障害物72及び領域Gの存在範囲等を認識する。そして、抽象状態設定部31は、ロボット5Aの位置、姿勢(及び移動速度)を表す状態ベクトル「x1」と、ロボット5Bの位置、姿勢(及び移動速度)を表す状態ベクトル「x2」とを夫々設定する。また、抽象状態設定部31は、ロボット5A、5Bをロボット「i」(i=1~2)により表し、ロボットiが最終的に載置されるべき目標地点である領域G内に存在するという命題「g」を定義する。また、抽象状態設定部31は、障害物72に対して識別ラベル「O」を付し、ロボットiが障害物Oに干渉しているという命題「o」を定義する。さらに、抽象状態設定部31は、ロボットi同士が干渉するという命題「h」を定義する。
【0067】
このように、抽象状態設定部31は、ロボット5が移動体である場合においても、定義すべき抽象状態を認識し、かつ、当該抽象状態を表す命題(上述の例ではg、o、h等)を好適に設定することができる。そして、抽象状態設定部31は、抽象状態を表す命題を示す情報を、抽象状態設定情報ISとして目標論理式生成部32に供給する。
【0068】
なお、設定されるタスクは、ロボット5が移動を行い、かつ、ピックアンドプレイスを行うもの(即ち図5及び図6の例の組み合わせに相当するもの)であってもよい。この場合においても、抽象状態設定部31は、図5及び図6の例の両方を包括する抽象状態及び抽象状態を表す命題を表す抽象状態設定情報ISを生成する。
【0069】
ここで、抽象状態を設定すべき物体(領域Gなどの領域を含む)のうち、計測装置7により計測できなかったこと等に起因して抽象状態を設定できない物体(「未設定物体」とも呼ぶ。)が存在する場合について説明する。抽象状態を設定すべき物体は、例えば、抽象状態指定情報I1において抽象状態を設定すべき物体として指定されている物体である。未設定物体は、ロボット5が作業する対象となる対象物であってもよく、対象物又はロボット5のゴール地点(図5又は図6における領域G)であってもよい。
【0070】
この場合、抽象状態設定部31は、未設定物体の位置等を表す状態ベクトルを未定のまま当該未設定物体に関する命題を定義する。例えば、図6の例において、領域Gが障害物72によって計測装置7の死角に存在することにより計測信号S2により計測できなかった場合には、抽象状態設定部31は、領域Gの抽象状態を未設定(即ち、状態を表す状態ベクトルの値を未決定)としたまま領域Gに関する命題(例えばg等)を設定する。
【0071】
なお、未設定物体は、障害物によって形成された死角に存在する物体の他、計測装置7の計測可能距離よりも遠くに存在する物体であってもよく、筐体などによって収容されている物体などであってもよい。例えば、箱から対象物を取り出す動作を必要とする目的タスクが設定された場合、箱の蓋を開けるまでは対象物は計測装置7により計測できない。この場合、箱の蓋をロボット5が開けて計測信号S2に基づきロボットコントローラ1が対象物を認識するまでは、対象物は未設定物体として扱われる。
【0072】
なお、マップ・物体事前情報I8において物体の位置等が事前に指定されている場合、抽象状態設定部31は、マップ・物体事前情報I8に基づき、計測装置7により計測できない物体の抽象状態(状態ベクトル)を設定するとよい。
【0073】
このように、初期状態(即ち動作計画の段階)において目的タスクの遂行に必要な物体を計測できない場合であっても、抽象状態設定部31は、ロボット5の動作計画の策定に必要な命題を好適に定めることができる。
【0074】
(5-2)目標論理式生成部
以後では、まず、環境マップbを考慮しない場合の目標論理式Ltagについて説明する。
【0075】
例えば、図5に示すピックアンドプレイスの例において、「最終的に全ての対象物が領域Gに存在する」という目的タスクが与えられたとする。この場合、目標論理式生成部32は、線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」と、「always」に相当する演算子「□」、抽象状態設定部31により定義された命題「g」と用いて、目的タスクのゴール状態を表す以下の論理式を生成する。
◇□g
【0076】
なお、目標論理式生成部32は、演算子「◇」、「□」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、next「○」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて目的タスクに対応する論理式を表現してもよい。
【0077】
次に、目標論理式生成部32は、制約条件情報I2が示す制約条件を、目的タスクを表す論理式に付加することで、目標論理式Ltagを生成する。
【0078】
例えば、図5に示すピックアンドプレイスに対応する制約条件として、「ロボットアーム52同士が常に干渉しない」、「対象物iは障害物Oに常に干渉しない」の2つが制約条件情報I2に含まれていた場合、目標論理式生成部32は、これらの制約条件を論理式に変換する。具体的には、目標論理式生成部32は、抽象状態設定部31により定義された命題「o」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
□¬h
□¬o
【0079】
よって、この場合、目標論理式生成部32は、「最終的に全ての対象物が領域Gに存在する」という目的タスクに対応する論理式「∧◇□g」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
(∧◇□g)∧(□¬h)∧(∧□¬o
【0080】
なお、実際には、ピックアンドプレイスに対応する制約条件は、上述した2つに限られず、「ロボットアーム52が障害物Oに干渉しない」、「複数のロボットアーム52が同じ対象物を掴まない」、「対象物同士が接触しない」などの制約条件が存在する。このような制約条件についても同様に、制約条件情報I2に記憶され、目標論理式Ltagに反映される。
【0081】
次に、ロボット5が移動体である図6に示す例について説明する。この場合、目標論理式生成部32は、目的タスクを表す論理式として、「最終的に全てのロボットが領域Gに存在する」を表す以下の論理命題を設定する。
◇□g
【0082】
また、目標論理式生成部32は、制約条件として、「ロボット同士が干渉しない」、「ロボットiは障害物Oに常に干渉しない」の2つが制約条件情報I2に含まれていた場合、これらの制約条件を論理式に変換する。具体的には、目標論理式生成部32は、抽象状態設定部31により定義された命題「o」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
□¬h
□¬o
【0083】
よって、この場合、目標論理式生成部32は、「最終的に全てのロボットが領域Gに存在する」という目的タスクに対応する論理式「∧◇□g」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
(∧◇□g)∧(□¬h)∧(∧□¬o
【0084】
このように、目標論理式生成部32は、ロボット5が移動体である場合においても、抽象状態設定部31の処理結果に基づき、目標論理式Ltagを好適に生成することができる。
【0085】
次に、環境マップbを考慮した目標論理式Ltagについて、「最終的に全てのロボットが領域Gに存在する」という目的タスクが設定された場合を例として引き続き説明する。
【0086】
この場合、例えば、環境マップbに基づく命題を「ρ」とすると、目標論理式生成部32は、以下のような目標論理式Ltagを設定する。
(∧◇□g∨ρ)∧(□¬h)∧(∧□¬o
ここで、命題ρは、環境マップbが表す確度を評価する値(「環境評価値y」とも呼ぶ。)がある閾値以上となった場合に真となる命題である。この閾値は、例えば予め決定された適合値であり、メモリ12又は記憶装置4に記憶されている。
【0087】
また、環境評価値yは、例えば、環境マップbを引数とする関数「g」を用いて、以下のように表される。
y=g(b)
ここで、関数gは、例えば、環境マップbが表すグリッド毎の確度を「p」(i=1~n、「n」はグリッド数)とすると、全てのグリッドに対する確度pの和(即ちg(b)=Σp)、又は、当該和と正の相関を有する関数である。なお、「p」は、連続的に確度が規定された環境マップbをグリッド毎の離散値に変換した値であってもよい。
【0088】
上記の目標論理式Ltagは、「∧◇□g」を満たすか、「ρ」を満たす(即ち環境評価値yが閾値以上となる)場合に真となる。なお、ロボットコントローラ1は、目的タスクに関連する物体の抽象状態が設定されていない(即ち未設定物体が存在する)場合、目的タスクに対応する論理式「∧◇□g」を偽とみなす。例えば、図6の例において、初期状態において領域Gが計測装置7により計測できず、かつ、マップ・物体事前情報I8にも領域Gの情報が記憶されていない場合、領域Gに関する状態ベクトルは未設定となる。よって、この場合、ロボットコントローラ1は、目的タスクに対応する論理式「∧◇□g」を、偽とみなす。
【0089】
そして、「∧◇□g」が偽とみなされた場合、「ρ」が真となる(即ち環境評価値yが閾値以上となる)ように、制御入力生成部36においてロボット5の動作に関する最適化が行われる。よって、この場合、環境マップbにおいて確度が低い領域を計測するようにロボット5の動作計画が行われ、結果として未設定物体の計測が優先して行われる。例えば、図6の例において、障害物72によって形成された計測装置7の死角に領域Gが存在する場合、環境マップbにおいて確度が低い計測装置7の死角部分の領域を計測するようなロボットiの動作計画が策定されることになる。
【0090】
(5-3)タイムステップ論理式生成部
タイムステップ論理式生成部33は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。この組み合わせは、通常複数存在するため、タイムステップ論理式生成部33は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット5に命令する動作のシーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。
【0091】
ここで、図5に示すピックアンドプレイスの説明におけるタイムステップ論理式生成部33の処理の具体例について説明する。
【0092】
ここでは、説明の簡略化のため、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが設定されたものとし、この目的タスクに対応する以下の目標論理式Ltagが目標論理式生成部32からタイムステップ論理式生成部33へ供給されたものとする。なお、ここでは、未設定物体が存在しないものとし、命題ρに関する記載を説明便宜上省略する。
(◇□g)∧(□¬h)∧(∧□¬o
この場合、タイムステップ論理式生成部33は、命題「g」をタイムステップの概念を含むように拡張した命題「gi,k」を用いる。命題「gi,k」は、「タイムステップkで対象物iが領域Gに存在する」という命題である。
【0093】
ここで、目標タイムステップ数を「3」とした場合、目標論理式Ltagは、以下のように書き換えられる。
(◇□g2,3)∧(∧k=1,2,3□¬h)∧(∧i,k=1,2,3□¬oi,k
また、◇□g2,3は、以下の式(1)に示すように書き換えることが可能である。
【0094】
【数1】
【0095】
このとき、上述した目標論理式Ltagは、以下の式(2)~式(5)に示される4つの候補「φ」~「φ」の論理和(φ∨φ∨φ∨φ)により表される。
【0096】
【数2】
【0097】
よって、タイムステップ論理式生成部33は、4つの候補φ~φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ~φの少なくともいずれかが真となる場合に真となる。なお、各候補φ~φの制約条件に相当する部分「(∧k=1,2,3□¬h)∧(∧i,k=1,2,3□¬oi,k)」については、候補φ~φに組み込む代わりに、制御入力生成部36による最適化処理において候補φ~φと論理積により結合させてもよい。
【0098】
次に、図6に示すロボット5が移動体である例の場合について説明する。ここでは、説明の簡略化のため、「最終的にロボット(i=2)が領域Gに存在する」という目的タスクが設定されたものとし、この目的タスクに対応する以下の目標論理式Ltagが目標論理式生成部32からタイムステップ論理式生成部33へ供給されたものとする。この場合、以下の目標論理式Ltagが目標論理式生成部32からタイムステップ論理式生成部33へ供給される。なお、ここでは、未設定物体が存在しないものとし、命題ρに関する記載を説明便宜上省略する。
□g)∧(□¬h)∧(∧□¬o
【0099】
この場合、タイムステップ論理式生成部33は、命題「g」をタイムステップの概念を含むように拡張した命題「gi,k」を用いる。ここで、命題「gi,k」は、「タイムステップkでロボットiが領域Gに存在する」という命題である。ここで、目標タイムステップ数を「3」とした場合、目標論理式Ltagは、以下のように書き換えられる。
(◇□g2,3)∧(∧k=1,2,3□¬h)∧(∧i,k=1,2,3□¬oi,k
【0100】
また、◇□g2,3は、ピックアンドプレイスの例と同様、式(1)に書き換えることが可能である。そして、目標論理式Ltagは、ピックアンドプレイスの例と同様、式(2)~式(5)に示される4つの候補「φ」~「φ」の論理和(φ∨φ∨φ∨φ)により表される。よって、タイムステップ論理式生成部33は、4つの候補φ~φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ~φの少なくともいずれかが真となる場合に真となる。
【0101】
なお、未設定物体が存在する場合には、タイムステップ論理式生成部33は、命題ρを満たす1又は複数の候補φを決定し、候補φの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。
【0102】
次に、目標タイムステップ数の設定方法について補足説明する。
【0103】
タイムステップ論理式生成部33は、例えば、指示装置2から供給される入力信号により指定された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部33は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部33は、目的タスクの種類毎に適した目標タイムステップ数を対応付けた情報を予めメモリ12又は記憶装置4に記憶しておき、当該情報を参照することで、実行すべき目的タスクの種類に応じた目標タイムステップ数を決定する。
【0104】
好適には、タイムステップ論理式生成部33は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部33は、制御入力生成部36が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部33は、設定した目標タイムステップ数により制御入力生成部36が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
【0105】
このとき、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を、ユーザが見込む目的タスクの作業時間に相当するタイムステップ数よりも小さい値に設定するとよい。これにより、タイムステップ論理式生成部33は、不必要に大きな目標タイムステップ数を設定することを好適に抑制する。
【0106】
(5-4)環境マップ更新部
まず、ロボット動作期間Tw前の動作計画時点では、環境マップ更新部34は、制御信号S1の生成に用いる環境マップbを生成する。この場合、環境マップ更新部34は、例えば、対象の空間又は領域において確率的なマップを生成することが可能なOccupancy Grid Mapsなどの技術を用い、計測信号S2に基づき環境マップbを生成する。この場合、計測装置7により計測された空間(「計測済空間」とも呼ぶ。)の確度は、計測装置7により計測されていない空間(「未計測空間」とも呼ぶ。)の確度よりも高い値に設定される。また、環境マップ更新部34は、マップ・物体事前情報I8に環境マップbの初期状態を指定する情報が含まれている場合には、マップ・物体事前情報I8と計測信号S2との両方に基づき、環境マップbを生成する。
【0107】
図7は、初期状態における未計測空間50と、計測済空間51との関係を概略的に表したロボット5の作業空間の俯瞰図である。図7の例では、一例として、計測装置7は、移動型のロボット5に対して固定され、ロボット5の前方を正面方向とする半円を計測範囲とする。
【0108】
この場合、環境マップ更新部34は、計測信号S2に基づき計測済空間51を認識し、かつ、計測済空間51以外の作業空間を未計測空間50として認識する。なお、環境マップ更新部34は、ロボット5の位置及び姿勢、計測装置7のロボット5に対する設置位置及び設置角度、及び計測装置7の視野角及び計測可能距離等に基づき計測済空間51を特定してもよい。
【0109】
そして、環境マップ更新部34は、計測済空間51に対応する環境マップbの空間(2次元空間、即ち、領域を含む、以下同じ)の確度を、未計測空間50に対応する環境マップbの空間の確度よりも高い値に設定する。なお、簡易的な例では、環境マップ更新部34は、計測済空間51に対応する環境マップbの空間の確度を最大値「1」とし、未計測空間50に対応する環境マップbの空間の確度を最小値「0」としてもよい。なお、この例の他、環境マップ更新部34は、上述したOccupancy Grid Mapsなどの技術に基づき、環境マップbの空間の確度を0から1までの任意の実数値に設定してもよい。また、環境マップbは、離散値のマップとして2次元又は3次元のグリッド毎に確度の情報を有してもよい。
【0110】
また、環境マップ更新部34は、ロボット5が動作するロボット動作期間Twでは、計測装置7が出力する最新の計測信号S2に基づき、所定時間間隔ごとに環境マップbを更新する。
【0111】
図8は、ロボット5が移動軌跡54に従い移動した後の未計測空間50と、計測済空間51との関係を概略的に表したロボット5の作業空間の俯瞰図である。図8の例では、ロボット5は、図7に示す初期位置から所定距離だけ直進している。この場合、環境マップ更新部34は、制御信号S1に基づき、計測済空間51を認識する。図8では、初期状態での計測済空間51を既存計測空間510とし、ロボット5の移動により新たに計測された計測済空間51を新規計測空間520として表示している。この場合、環境マップ更新部34は、計測済空間51に対応する環境マップbの確度が、未計測空間50に対応する環境マップbの確度よりも高い値になるように環境マップbを更新する。
【0112】
ここで、マップ更新モデルbについて補足説明する。マップ更新モデルbは、動作計画時点での環境マップb、状態ベクトル及び予測されるロボット5への入力ベクトルから環境マップbの時間変化を予測するモデルとなる。例えば、マップ更新モデルbは、図7に示す初期状態に対応する状態ベクトル及び環境マップbと、移動軌跡54に沿ってロボット5を移動させる入力ベクトルとが入力された場合、図8に示す新規計測空間520に相当する領域の確度を高くした環境マップbを出力する。マップ更新モデルbについては、「(5-5)抽象モデル生成部」のセクションにてさらに説明する。
【0113】
(5-5)抽象モデル生成部
抽象モデル生成部35は、ダイナミクスモデル情報I5と、抽象状態設定情報ISと、環境マップbと、マップ更新モデルbとに基づき、抽象モデルΣを生成する。ここで、抽象モデルΣは、ダイナミクスモデルとマップ更新モデルbとを表したモデルとなる。以後では、まず、抽象モデルΣのダイナミクスモデルについて説明する。
【0114】
例えば、目的タスクがピックアンドプレイスの場合のダイナミクスモデルについて説明する。この場合、対象物の位置や数、対象物を置く領域の位置、ロボット5の台数(又はロボットアーム52の数)等を特定しない汎用的な形式の抽象モデルがダイナミクスモデル情報I5に記録されている。そして、抽象モデル生成部35は、ダイナミクスモデル情報I5に記録された、ロボット5のダイナミクスを含む汎用的な形式のモデルに対し、抽象状態設定部31による物体の認識結果を反映することで、ダイナミクスモデルを生成する。これにより、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスとが抽象的に表されたモデルとなる。作業空間内の物体の状態は、ピックアンドプレイスの場合には、対象物の位置及び数、対象物を置く領域の位置、ロボット5の台数等を示す。
【0115】
ここで、ピックアンドプレイスを伴う目的タスクの作業時においては、作業空間内のダイナミクスが頻繁に切り替わる。例えば、図5に示されるピックアンドプレイスの例では、ロボットアーム52が対象物iを掴んでいる場合には、当該対象物iを動かすことができるが、ロボットアーム52が対象物iを掴んでない場合には、当該対象物iを動かすことができない。
【0116】
以上を勘案し、本実施形態においては、ピックアンドプレイスの場合、対象物iを掴むという動作を論理変数「δ」により抽象表現する。この場合、例えば、抽象モデル生成部35は、図5のピックアンドプレイスの例における作業空間に対して設定すべき抽象モデルΣのダイナミクスモデルを、以下の式(6)により定めることができる。
【0117】
【数3】
【0118】
ここで、「u」は、ロボットハンドj(「j=1」はロボットハンド53a、「j=2」はロボットハンド53b)を制御するための制御入力を示し、「I」は単位行列を示し、「0」は零行例を示す。なお、制御入力は、ここでは、一例として速度を想定しているが、加速度であってもよい。また、「δj,i」は、ロボットハンドjが対象物iを掴んでいる場合に「1」であり、その他の場合に「0」である論理変数である。また、「xr1」、「xr2」は、ロボットハンドj(j=1、2)の位置ベクトル、「x」~「x」は、対象物i(i=1~4)の位置ベクトルを示す。また、「h(x)」は、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合に「h(x)≧0」となる変数であり、論理変数δとの間で以下の関係を満たす。
δ=1 ⇔ h(x)≧0
この式では、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合には、ロボットハンドが対象物を掴んでいるとみなし、論理変数δを1に設定している。
【0119】
ここで、式(6)は、タイムステップkでの物体の状態とタイムステップk+1での物体の状態との関係を示した差分方程式である。そして、上記の式(6)では、把持の状態が離散値である論理変数により表わされ、物体の移動は連続値により表わされているため、式(6)はハイブリッドシステムを示している。
【0120】
また、式(6)では、ロボット5全体の詳細なダイナミクスではなく、対象物を実際に把持するロボット5の手先であるロボットハンドのダイナミクスのみを考慮している。これにより、制御入力生成部36による最適化処理の計算量を好適に削減することができる。
【0121】
また、ダイナミクスモデル情報I5には、ダイナミクスが切り替わる動作(ピックアンドプレイスの場合には対象物iを掴むという動作)に対応する論理変数、及び、計測信号S2等に基づく物体の認識結果から式(6)の差分方程式を導出するための情報が記録されている。よって、抽象モデル生成部35は、対象物の位置や数、対象物を置く領域(図5では領域G)、ロボット5の台数等が変動する場合であっても、ダイナミクスモデル情報I5と物体の認識結果とに基づき、対象の作業空間の環境に即した抽象モデルΣのダイナミクスモデルを決定することができる。
【0122】
なお、他作業体が存在する場合、他作業体の抽象化されたダイナミクスに関する情報がダイナミクスモデル情報I5に含まれてもよい。この場合、抽象モデルΣのダイナミクスモデルは、作業空間内の物体の状態と、ロボット5のダイナミクスと、他作業体のダイナミクスとが抽象的に表されたモデルとなる。また、抽象モデル生成部35は、式(6)に示されるモデルに代えて、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
【0123】
次に、図6に示すロボット5が移動体である場合の抽象モデルΣのダイナミクスモデルについて説明する。この場合、抽象モデル生成部35は、例えば、図6に示される作業空間に対して設定すべき抽象モデルΣのダイナミクスモデルを、ロボット(i=1)に対する状態ベクトルx1及びロボット(i=2)に対する状態ベクトルx2を用いて、以下の式(7)により定める。
【0124】
【数4】
【0125】
ここで、「u」は、ロボット(i=1)に対する入力ベクトルを表し、「u」は、ロボット(i=2)に対する入力ベクトルを表す。また、「A」、「A」、「B」、「B」は行列であり、ダイナミクスモデル情報I5に基づき定められる。
【0126】
他の例では、抽象モデル生成部35は、ロボットiの動作モードが複数存在する場合には、図6に示される作業空間に対して設定すべき抽象モデルΣのダイナミクスモデルを、ロボットiの動作モードに応じてダイナミクスが切り替わるハイブリッドシステムにより表してもよい。この場合、抽象モデル生成部35は、ロボットiの動作モードを「mi」とすると、図6に示される作業空間に対して設定すべき抽象モデルΣのダイナミクスモデルを、以下の式(8)により定める。
【0127】
【数5】
【0128】
このように、抽象モデル生成部35は、ロボット5が移動体である場合においても、抽象モデルΣのダイナミクスモデルを好適に定めることができる。なお、抽象モデル生成部35は、式(7)又は式(8)に示されるモデルに代えて、MLDシステムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
【0129】
なお、式(6)~式(8)等に示される抽象モデルΣにおける対象物やロボット5の状態を表すベクトルx及び入力uは、離散値であってもよい。ベクトルx及び入力uを離散的に表した場合であっても、抽象モデル生成部35は、現実のダイナミクスを好適に抽象化した抽象モデルΣを設定することができる。また、ロボット5が移動を行い、かつ、ピックアンドプレイスを行う目的タスクが設定されていた場合には、抽象モデル生成部35は、例えば、式(8)に示されるような動作モードの切り替えを想定したダイナミクスモデルを設定する。
【0130】
次に、抽象モデルΣに含めるマップ更新モデルbについて説明する。
【0131】
マップ更新モデルbは、ある時点での環境マップbと、状態ベクトルxと、ロボット5への入力ベクトルuとに基づき、次の時点での環境マップbを予測する関数となる。よって、環境マップbは、状態ベクトルx、ロボット5への入力ベクトルu、マップ更新モデルbに相当する関数「f」、タイムステップk、及び、誤差ベクトル「nv」を用いた以下の差分方程式により表される。
k+1=f(b,x,u)+nv
【0132】
関数f及び誤差ベクトルnvに関する情報は、例えば、マップ更新モデル情報I7に記憶されている。また、状態ベクトルx、入力ベクトルu及び環境マップbは、以下のように表される。ここでは、ロボット5の数を「M」とし、環境マップbをグリッド数「n」の離散マップと仮定している。
x=[x ,x …,x
u=[u ,u …,u
b=[p,p…,p
各要素x,x…,x、u,u…,uはロボット毎の状態又は入力を表すベクトルであり、p∈[0,1](i=1~n)は各グリッドの確度を表す。また、xとuは、例えば式(7)に示すダイナミクスモデルの場合、以下のように表される。
k+1=Ax+Bu
【0133】
なお、環境マップbに関する上述の差分方程式では、誤差ベクトルnvを用いて確率的に環境マップbに定めているが、これに代えて、誤差ベクトルnvを用いずに環境マップbを確定的に定めてもよい。
【0134】
(5-6)制御入力生成部
制御入力生成部36は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部35から供給される抽象モデルΣとに基づき、最適となるタイムステップ毎のロボット5に対する制御入力を決定する。この場合、制御入力生成部36は、目的タスクに対する評価関数を定義し、抽象モデルΣ及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。評価関数は、例えば、目的タスクの種類毎に予め定められ、メモリ12又は記憶装置4に記憶されている。
【0135】
例えば、制御入力生成部36は、制御入力「u」と環境評価値yとに基づき、評価関数を設定する。この場合、制御入力生成部36は、制御入力uが小さい(即ちロボット5が費やすエネルギーが小さい)ほど小さくなり、かつ、未設定物体が存在する場合には環境評価値yが大きい(即ち作業空間全体での情報の確度が高い)ほど小さくような評価関数の最小化を行う。具体的には、制御入力生成部36は、抽象モデルΣと、タイムステップ論理式Lts(即ち候補φの論理和)に基づく論理式とを制約条件とする以下の式(9)に示す制約付き混合整数最適化問題を解く。
【0136】
【数6】
「α」は0以上の定数を表し、「T」は、最適化の対象となるタイムステップ数であり、目標タイムステップ数であってもよく、目標タイムステップ数よりも小さい所定数であってもよい。
【0137】
ここで、評価関数の項「-αy」及び論理式の「ρ∧(□¬h)∧(∧□¬o)」は、未設定物体が存在する場合を考慮して設けられている。これらを設けることで、「h」及び「o」により規定される一般的な制約条件を満たしつつ、環境マップbの確度を上げるように制御入力uを決定することが可能となる。
【0138】
好適には、未設定物体が存在する場合、制御入力生成部36は、タイムステップ論理式Ltsに相当する候補φの論理和「∨φ」については、自動的に偽であると判定するとよい。一方、未設定物体が存在しない場合、制御入力生成部36は、好適には、評価関数の項「-αy」及び論理式の「ρ∧(□¬h)∧(∧□¬o)」を削除して制御入力uの最適化を行うとよい。
【0139】
このように、制御入力生成部36は、環境マップb及びマップ更新モデルbに基づく環境評価値y及び命題ρを含む最適化問題を解くことで最適な制御入力uを決定する。これにより、制御入力生成部36は、未設定物体が存在する場合には作業空間内の情報の確度を上げて設定物体を計測できるように制御入力uを決定し、未設定物体が存在しない場合には目的タスクを達成するように制御入力uを決定することができる。
【0140】
また、好適には、制御入力生成部36は、論理変数を連続値に近似する(連続緩和問題とする)とよい。これにより、制御入力生成部36は、計算量を好適に低減することができる。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。また、環境マップb及びマップ更新モデルbは、上述した方法の他、任意の強化学習の方法に基づき最適化問題に組み込まれてもよい。
【0141】
また、制御入力生成部36は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部36は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力uを決定する。この場合、制御入力生成部36は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、制御入力uを決定してもよい。この場合、制御入力生成部36は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、作業空間におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット5が対象物を掴む、ロボット5が運ぶべき複数の対象物のうちの1つの対象物を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、目的タスクの種類毎に予め定められており、目的タスクの種類毎にイベントを特定する情報が記憶装置4に記憶されている。
【0142】
(5-7)ロボット制御部
ロボット制御部37は、制御入力生成部36から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクのシーケンスを生成する。この場合、ロボット制御部37は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスクを認識し、制御入力情報Icnが示すタイムステップ毎の制御入力をサブタスクに変換する。
【0143】
例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット5が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット5の状態、及び当該関数実行前の把持対象の対象物の状態、論理変数δをそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数δが「1」のときに掴む動作を行うこと表し、論理変数δが「0」のときに放す動作を行うこと表す。この場合、ロボット制御部37は、関数「Move」を、制御入力情報Icnが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icnが示すタイムステップ毎の論理変数δの遷移に基づき決定する。
【0144】
そして、ロボット制御部37は、関数「Move」と関数「Grasp」とにより構成されるシーケンスを生成し、当該シーケンスを表す制御信号S1をロボット5に供給する。例えば、目的タスクが「最終的に対象物(i=2)が領域Gに存在する」の場合、ロボット制御部37は、対象物(i=2)に最も近いロボットハンドに対し、関数「Move」、関数「Grasp」、関数「Move」、関数「Grasp」のシーケンスを生成する。この場合、対象物(i=2)に最も近いロボットハンドは、1回目の関数「Move」により対象物(i=2)の位置まで移動し、1回目の関数「Grasp」により対象物(i=2)を把持し、2回目の関数「Move」により領域Gまで移動し、2回目の関数「Grasp」により対象物(i=2)を領域Gに載置する。
【0145】
(5-8)抽象状態比較部
抽象状態比較部38は、ロボット動作期間Twにおいて、抽象状態設定部31から供給される計測抽象状態Stmと、制御入力情報Icnに基づく予測抽象状態Stpとを比較し、抽象モデルΣの再生成の要否判定を行う。ここで、予測抽象状態Stpの取得方法について補足説明する。抽象状態比較部38は、例えば、制御入力生成部36が実行した最適化処理の処理結果を表す制御入力情報Icnに基づき、タイムステップ毎に予測される各物体の状態の軌跡を認識する。そして、抽象状態比較部38は、現時点に対応するタイムステップでの予測される状態を、予測抽象状態Stpとして決定する。
【0146】
ここで、抽象状態比較部38は、計測抽象状態Stmと予測抽象状態Stpとに実質的な差異があると判定した場合、抽象モデルΣを再生成する必要があると判定する。「計測抽象状態Stmと予測抽象状態Stpとに実質的な差異がある」場合とは、例えば、抽象状態を規定する物体の個数が異なる場合、同一物体の位置が所定距離以上異なる場合、又は、その他所定の条件を満たす場合を指す。この場合、抽象状態比較部38は、計測装置7により未設定物体を検出した場合、又は、マップ・物体事前情報I8に基づき設定した物体の抽象状態と当該物体の計測結果とに差異があることを検出した場合等に、抽象モデルΣの再生成が必要であると好適に判定する。なお、抽象状態比較部38は、上記の場合の他、予測外の障害物が発生した場合、予測外の動きを行う物体が存在する場合などにおいても、抽象モデルの再生成が必要であると判定する。
【0147】
そして、抽象状態比較部38は、抽象モデルΣを再生成する必要があると判定した場合、計測抽象状態Stmを抽象モデル生成部35に供給する。なお、計測抽象状態Stmは、作業空間内の各物体(検出された未設定物体を含む)の位置・姿勢等の抽象的な状態を表す最新の情報となる。そして、抽象モデル生成部35は、計測抽象状態Stmと、環境マップ更新部34が生成する最新の環境マップbとに基づき、現在の抽象状態を反映した抽象モデルΣを生成する。そして、制御入力生成部36は、生成された抽象モデルΣを制約条件として式(9)に示される最適化問題を構築し、構築した最適化問題を解く。これにより、制御入力生成部36は、最新の抽象状態を勘案した最適なロボット5の動作計画を表す制御入力を好適に生成することができる。これにより、ロボット5の動作が再計画され、最新の計測結果に基づきロボット5の動作のシーケンスが好適に決定される。
【0148】
(6)処理フロー
図9は、第1実施形態においてロボットコントローラ1が実行するロボット制御処理の概要を示すフローチャートの一例である。
【0149】
まず、ロボットコントローラ1の抽象状態設定部31は、作業空間に存在する物体の抽象状態を設定する(ステップS11)。ここで、抽象状態設定部31は、例えば、所定の目的タスクの実行を指示する外部入力を指示装置2等から受信した場合に、ステップS11を実行する。ステップS11では、抽象状態設定部31は、例えば、抽象状態指定情報I1、物体モデル情報I6、マップ・物体事前情報I8及び計測信号S2に基づき、目的タスクに関連する物体に関する命題及び位置・姿勢等の状態ベクトルを設定する。なお、抽象状態設定部31は、計測信号S2と抽象状態指定情報I1に基づき、未設定物体が存在すると判定した場合には、未設定物体に対する位置等の状態ベクトルを未定のまま当該未設定物体に関する命題を設定する。
【0150】
次に、目標論理式生成部32は、ステップS11の処理結果を表す抽象状態設定情報ISに基づき、目標論理式Ltagを決定する(ステップS12)。この場合、目標論理式生成部32は、制約条件情報I2を参照することで、目的タスクの実行における制約条件を、目標論理式Ltagに付加する。
【0151】
そして、タイムステップ論理式生成部33は、目標論理式Ltagを、各タイムステップでの状態を表すタイムステップ論理式Ltsに変換する(ステップS13)。この場合、タイムステップ論理式生成部33は、目標タイムステップ数を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す候補φの論理和を、タイムステップ論理式Ltsとして生成する。この場合、好適には、タイムステップ論理式生成部33は、動作限界情報I3を参照することで、各候補φの実行可能性を判定し、実行不可能と判定される候補φを、タイムステップ論理式Ltsから除外するとよい。
【0152】
次に、環境マップ更新部34は、環境マップbを生成する(ステップS14)。この場合、環境マップ更新部34は、例えば、計測信号S2と、マップ・物体事前情報I8とに基づき、環境マップbを生成する。そして、抽象モデル生成部35は、抽象モデルΣを生成する(ステップS15)。この場合、抽象モデル生成部35は、環境マップb、抽象状態設定情報IS、ダイナミクスモデル情報I5、マップ更新モデル情報I7等に基づき、ダイナミクスモデルとマップ更新モデルbとを表した抽象モデルΣを生成する。
【0153】
そして、制御入力生成部36は、ステップS11~ステップS15の処理結果に基づき最適化問題を構築し、構築した最適化問題を解くことで制御入力を決定する(ステップS16)。この場合、例えば、制御入力生成部36は、式(9)に示されるような最適化問題を構築し、制御入力及び環境評価値yに基づき設定された評価関数を最小化するような制御入力を決定する。
【0154】
そして、ロボット制御部37は、ステップS16で決定された制御入力に基づき、ロボット5の制御を行う(ステップS17)。この場合、例えば、ロボット制御部37は、ステップS16で決定された制御入力を、サブタスク情報I4を参照してロボット5が解釈可能なサブタスクのシーケンスに変換し、当該シーケンスを表す制御信号S1をロボット5に供給する。
【0155】
そして、ロボットコントローラ1は、目的タスクが完了したか否か判定する(ステップS18)。ロボットコントローラ1は、例えば、ロボット5から正常完了を表す信号を受信した場合、又は、作業空間内の物体が目的タスクを達成したゴール状態になったことを計測信号S2に基づき検知した場合、目的タスクが完了したと判定する。そして、ロボットコントローラ1は、目的タスクが完了したと判定した場合(ステップS18;Yes)、フローチャートの処理を終了する。一方、目的タスクが完了していない場合(ステップS18;No)、環境マップ更新部34は、最新の計測信号S2に基づき環境マップbを更新する(ステップS19)。
【0156】
そして、抽象状態比較部38は、抽象状態の変化を監視する(ステップS20)。具体的には、抽象状態比較部38は、制御入力生成部36が実行する最適化処理の処理結果を表す制御入力情報Icnに基づき、比較時点での予測される抽象状態を表す予測抽象状態Stpを認識する。そして、抽象状態比較部38は、最新の計測信号S2に基づき抽象状態設定部31が設定した抽象状態を表す計測抽象状態Stmと予測抽象状態Stpとを比較する。
【0157】
そして、抽象状態比較部38は、抽象状態の実質的な変化があったか否か判定する(ステップS21)。そして、抽象状態比較部38は、抽象状態の実質的な変化があったと判定した場合(ステップS21;Yes)、ステップS15へ処理を進める。その後、抽象モデルΣの生成及び制御入力の生成等が行われ、最新の抽象状態に基づいたロボット5の動作計画の再決定が行われる。一方、抽象状態比較部38は、抽象状態の実質的な変化がないと判定した場合(ステップS21;No)、引き続きステップS18へ処理を戻す。この場合、当初の動作計画に基づき引き続きロボット5の制御が継続される。
【0158】
(7)変形例
図4に示すプロセッサ11の機能ブロック構成は一例であり、種々の変更がなされてもよい。
【0159】
例えば、ロボット5に命令する動作のシーケンスの候補φの情報が記憶装置4に予め記憶され、プロセッサ11は、当該情報に基づき、制御入力生成部36の最適化処理を実行する。これにより、プロセッサ11は、最適な候補φの選定とロボット5の制御入力の決定を行う。この場合、プロセッサ11は、制御信号S1の生成において、目標論理式生成部32及びタイムステップ論理式生成部33に相当する機能を有しなくともよい。このように、図4に示すプロセッサ11の一部の機能ブロックの実行結果に関する情報が予めアプリケーション情報記憶部41に記憶されていてもよい。
【0160】
他の例では、アプリケーション情報には、目的タスクに対応する制御入力又はサブタスクシーケンスを設計するためのフローチャートなどの設計情報が予め含まれており、ロボットコントローラ1は、当該設計情報を参照することで、制御入力又はサブタスクシーケンスを生成してもよい。この場合、ロボットコントローラ1は、例えば、未設定物体の有無又は/及び環境評価値yに対する閾値処理などに基づき分岐された処理フローを実行する。なお、予め設計されたタスクシーケンスに基づきタスクを実行する具体例については、例えば特開2017-39170号に開示されている。
【0161】
<第2実施形態>
図10は、第2実施形態における制御装置1Xの概略構成図を示す。制御装置1Xは、主に、抽象状態設定手段31Xと、環境マップ生成手段34Xと、抽象モデル生成手段35Xと、制御入力生成手段36Xとを有する。なお、制御装置1Xは、複数の装置から構成されてもよい。制御装置1Xは、例えば、第1実施形態におけるロボットコントローラ1とすることができる。
【0162】
抽象状態設定手段31Xは、ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定する。抽象状態設定手段31Xは、作業空間内を計測するセンサの計測結果に基づき抽象状態を設定してもよく、予め生成された事前情報に基づき抽象状態を設定してもよい。例えば、第1実施形態における抽象状態設定部31とすることができる。
【0163】
環境マップ生成手段34Xは、作業空間内の情報の確度を表すマップである環境マップを生成する。環境マップ生成手段34Xは、作業空間内を計測するセンサの計測結果に基づき環境マップを生成してもよく、予め生成された事前情報に基づき環境マップを設定してもよい。環境マップ生成手段34Xは、例えば、第1実施形態における環境マップ更新部34とすることができる。
【0164】
抽象モデル生成手段35Xは、抽象状態のダイナミクスと環境マップの時間変化とを表す抽象モデルを生成する。抽象モデル生成手段35Xは、例えば、第1実施形態における抽象モデル生成部35とすることができる。
【0165】
制御入力生成手段36Xは、抽象モデルに基づき、ロボットに対する制御入力を生成する。制御入力生成手段36Xは、例えば、第1実施形態における制御入力生成部36とすることができる。
【0166】
図11は、第2実施形態において制御装置1Xが実行するフローチャートの一例である。まず、抽象状態設定手段31Xは、ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定する(ステップS31)。環境マップ生成手段34Xは、作業空間内の環境マップを生成する(ステップS32)。なお、ステップS31とステップS32とは順不同であり、同時に実行されてもよく、逆の順番により実行されてもよい。抽象モデル生成手段35Xは、抽象状態のダイナミクスと環境マップの時間変化とを表す抽象モデルを生成する(ステップS33)。制御入力生成手段36Xは、抽象モデルに基づき、ロボットに対する制御入力を生成する(ステップS34)。
【0167】
第2実施形態によれば、制御装置1Xは、作業空間における情報の不確実性を考慮してロボットを好適に動作させるための制御入力を好適に生成することができる。
【0168】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0169】
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0170】
[付記1]
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定する抽象状態設定手段と、
前記作業空間内の情報の確度を表すマップである環境マップを生成する環境マップ生成手段と、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成する抽象モデル生成手段と、
前記抽象モデルに基づき、前記ロボットに対する制御入力を生成する制御入力生成手段と、
を備える制御装置。
[付記2]
前記制御入力による前記ロボットの動作中において、前記抽象状態の変化に基づき、前記抽象モデルの再生成の要否を判定する抽象状態比較手段をさらに有する、付記1に記載の制御装置。
[付記3]
前記抽象状態比較手段は、前記制御入力による前記ロボットの動作中において、前記物体の個数又は位置の少なくとも一方の変化に基づき、前記抽象モデルの再生成の要否を判定する、付記2に記載の制御装置。
[付記4]
前記ロボットには、計測装置が備えられており、
前記ロボットの動作に応じて前記計測装置の計測範囲が変化し、
前記抽象状態設定手段は、前記ロボットの動作中において、前記計測装置が生成する計測信号に基づき、前記抽象状態の変化を特定する、付記2または3に記載の制御装置。
[付記5]
前記抽象状態比較手段は、前記計測信号に基づき設定された現在の前記抽象状態と、前記制御入力に基づき予測される現在の前記抽象状態との差に基づき、前記抽象モデルの再生成の要否を判定する、付記4に記載の制御装置。
[付記6]
前記制御入力生成手段は、前記抽象モデルと、前記環境マップが表す確度を評価する環境評価値とに基づき、前記制御入力を生成する、付記1~5のいずれか一項に記載の制御装置。
[付記7]
前記制御入力生成手段は、前記制御入力及び前記環境評価値を含む評価関数と、前記ロボットに作業させるタスクである目的タスクの実行において満たすべき制約条件とを設定し、前記評価関数と前記制約条件とに基づく最適化により前記制御入力を生成する、付記6に記載の制御装置。
[付記8]
最終目標を表す時相論理の論理式である目標論理式を生成する目標論理式生成手段と、
前記論理式から、前記ロボットに作業させるタスクである目的タスクを実行するためのタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、
をさらに有し、
前記制御入力生成手段は、前記抽象モデルと前記タイムステップ論理式とに基づき、前記制御入力を生成する、付記1~7のいずれか一項に記載の制御装置。
[付記9]
前記目標論理式生成手段は、前記目的タスクに対応する論理式と、前記環境マップが表す確度を評価する環境評価値に基づく命題との論理和を含む前記目標論理式を生成する、付記8に記載の制御装置。
[付記10]
前記制御入力を、前記ロボットが実行可能なサブタスクのシーケンスに変換したサブタスクシーケンスを前記ロボットに供給するロボット制御手段をさらに有する、付記1~9のいずれか一項に記載の制御装置。
[付記11]
前記環境マップ生成手段は、計測が行われた空間の当該計測後からの時間経過に基づき当該空間における前記確度を減衰させるように前記環境マップを更新する、付記1~10のいずれか一項に記載の制御装置。
[付記12]
コンピュータが、
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定し、
前記作業空間内の情報の確度を表すマップである環境マップを生成し、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成し、
前記抽象モデルに基づき、前記ロボットに対する制御入力を生成する、
制御方法。
[付記13]
ロボットが作業を行う作業空間における物体の抽象的な状態である抽象状態を設定し、
前記作業空間内の情報の確度を表すマップである環境マップを生成し、
前記抽象状態のダイナミクスと前記環境マップの時間変化とを表す抽象モデルを生成し、
前記抽象モデルに基づき、前記ロボットに対する制御入力を生成する処理をコンピュータに実行させるプログラムが格納された記憶媒体。
【0171】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0172】
1 ロボットコントローラ
1X 制御装置
2 指示装置
4 記憶装置
5 ロボット
7 計測装置
41 アプリケーション情報記憶部
100 ロボット制御システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11