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

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

7473005情報処理システム、情報処理装置、情報処理方法、及び、プログラム
<>
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図1
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図2
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図3
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図4
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図5
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図6
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図7
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図8
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図9
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図10
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図11
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図12
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図13
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図14
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図15
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図16
  • -情報処理システム、情報処理装置、情報処理方法、及び、プログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-15
(45)【発行日】2024-04-23
(54)【発明の名称】情報処理システム、情報処理装置、情報処理方法、及び、プログラム
(51)【国際特許分類】
   G06F 11/07 20060101AFI20240416BHJP
   G06N 20/00 20190101ALI20240416BHJP
   B25J 19/06 20060101ALI20240416BHJP
   B25J 13/00 20060101ALI20240416BHJP
【FI】
G06F11/07 151
G06N20/00
B25J19/06
B25J13/00 Z
【請求項の数】 9
(21)【出願番号】P 2022558769
(86)(22)【出願日】2020-10-30
(86)【国際出願番号】 JP2020040897
(87)【国際公開番号】W WO2022091366
(87)【国際公開日】2022-05-05
【審査請求日】2023-04-10
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】佐藤 峰斗
【審査官】▲はま▼中 信行
(56)【参考文献】
【文献】特許第6754883(JP,B1)
【文献】特開2002-287816(JP,A)
【文献】特開2018-092511(JP,A)
【文献】特開2017-094406(JP,A)
【文献】国際公開第2018/180143(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06F 11/07
B25J 13/00
B25J 19/06
(57)【特許請求の範囲】
【請求項1】
評価対象の対象装置が存在する実環境をカメラにより観測した画像情報である実観測情報を取得し、前記実環境を模擬した仮想環境、前記実環境を観測した前記カメラと同種のカメラのモデルにより観測した画像情報である仮想観測情報を生成する情報生成手段と、
生成した前記仮想観測情報と、前記実環境を観測した実観測情報と、の差異に応じて異常状態を判定する異常判定手段と、を備える
情報処理装置。
【請求項2】
前記情報生成手段は、前記実観測情報と、前記実観測情報に基づいて推定した、前記実環境における未知状態と、に基づいて、前記実環境を模擬する仮想環境を設定する
請求項1に記載の情報処理装置。
【請求項3】
前記情報生成手段は、前記実環境における未知または不確実な状態であって、前記実観測情報から直接または間接的に推定可能である状態を、前記未知状態として推定する
請求項2に記載の情報処理装置。
【請求項4】
前記異常判定手段は、前記未知状態、または、前記対象装置を動作させる制御計画の少なくとも一方を、前記異常状態の判定結果に基づいて更新する請求項3に記載の情報処理装置。
【請求項5】
前記異常判定手段は、前記異常状態の判定結果が所定の基準を満たすまで、前記未知状態、または、前記対象装置を動作させる制御計画の少なくとも一方の更新を繰り返す請求項4に記載の情報処理装置。
【請求項6】
前記差異に応じた報酬を設定し、前記報酬に基づき前記対象装置の動作についての方策を作成し、作成した前記方策に従い前記対象装置の動作を決定し、決定した前記動作を実行するよう前記対象装置を制御する強化学習手段
をさらに備える請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記評価対象の前記対象装置と、
請求項1乃至6のいずれか1項に記載の前記情報処理装置と、を備える
情報処理システム。
【請求項8】
コンピュータが、
評価対象の対象装置が存在する実環境をカメラにより観測した画像情報である実観測情報を取得し、前記実環境を模擬した仮想環境、前記実環境を観測した前記カメラと同種のカメラのモデルにより観測した画像情報である仮想観測情報を生成し、
生成した前記仮想観測情報と、前記実環境を観測した実観測情報と、の差異に応じて異常状態を判定する
情報処理方法。
【請求項9】
コンピュータに、
評価対象の対象装置が存在する実環境をカメラにより観測した画像情報である実観測情報を取得し、前記実環境を模擬した仮想環境、前記実環境を観測した前記カメラと同種のカメラのモデルにより観測した画像情報である仮想観測情報を生成し、
生成した前記仮想観測情報と、前記実環境を観測した実観測情報と、の差異に応じて異常状態を判定する
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、対象装置の制御についての情報処理システム、情報処理装置、情報処理方法、及び、記録媒体の技術分野に関する。
【背景技術】
【0002】
近年、労働人口の不足や人件費高騰を背景に、ロボット導入など、被制御装置の動作を自動化が期待されている。被制御装置に目的の作業(タスク)を自動実行させるためには、システム全体を適切に設計して動作を設定する、いわゆるシステムインテグレーション(SI)という作業が必要である。このSI作業には、例えば、目的のタスクを実行するために必要なロボットアームの動作を設定すること、いわゆるティーチングと呼ばれる作業や、撮像装置の座標系とロボットアームの座標系とを関連付ける、いわゆるキャリブレーションと呼ばれる作業などがある。このようなSI作業は、高度な専門性と実際の作業現場での精緻なチューニングと、が必要不可欠である。そのため、このようなSI作業では、人的な工数の増加が課題となっている。
【0003】
そこで、SI作業では、人的な工数の増加を低減させる技術が望まれている。例えば、SI作業には、規定の環境下、すなわち仕様に基づく正常な状態(以下、正常系とも記載)における作業、及び、規定以外の環境下、いわゆる異常な状態(以下、異常系とも記載)を考慮した作業がある。正常系では、仕様に基づいているため、異常の発生が低く、そのため、様々な効率化や自動化の検討がなされている。
【0004】
それに対して、異常系では、想定される環境条件や異常状態を全て、予め想定することは困難である。したがって、SI作業は、異常系への対処により多くの工数がかかる。そのため、対象装置の状態や制御結果を評価し、異常状態を自動的(自律的)に検出することで、SI工数の想定以上の増加を防ぐ技術が提案されている。
【0005】
このような技術として、例えば、特許文献1には、ロボットの動作の失敗を未然に防ぐことができるようにする制御装置、及び、方法が開示されている。特許文献1に開示された制御装置は、タスクに対して、予め失敗に至るまでの途中の状態遷移を定義しておくことで、ロボットの動作データに基づき、その都度、失敗に至るか否かを判定する。
【0006】
また、特許文献2には、キッティングトレイへの部品配膳装置(配膳ルールの学習)が開示されている。特許文献2に開示された部品配膳装置は、ロボットアームを用いて、サイズの異なる複数種の部品を、複数の収容部に適切に配置(配膳)する際、把持された部品を下面側から撮像する部品認識カメラの撮像データに基づいて、対象部品が把持されているか否かを判定する。
【0007】
また、関連技術として、特許文献3には、機械学習を用いた画像認識により、同じ種類の物体を2つ以上並べた物体群を撮像した入力画像から少なくとも該物体の1つ分を示す領域を特定する情報処理装置が記載されている。
【0008】
また、他の関連技術として、特許文献4には、実環境と、実環境のシミュレーションとの比較結果から、摩擦モデルを生成し、当該摩擦モデルの出力に基づいて、摩擦補償値を決定する制御装置が記載されている。
【先行技術文献】
【特許文献】
【0009】
【文献】国際公開第2020/031718号
【文献】国際公開第2019/239565号
【文献】特開2020-087155号公報
【文献】特開2006-146572号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
特許文献1及び2では、ロボットの動作の成否をデータに基づいて判定するため、予め、環境やタスクの状況ごとに、成否を判断するための基準値を適切に設定する必要がある。このような基準値とは、例えば、計画されたロボットの動作が達成された場合のロボットまたは対象物の位置、規定時間以内におけるロボットの動作による移動距離(タイムアウト時間の基準)、または、動作状態を反映するセンサの値、例えば、部品認識カメラの撮像データや吸着ハンドによる把持動作における真空到達度、力覚または触覚センサの時系列データなどに関する基準値である。
【0011】
しかしながら、特許文献1及び2に開示された装置は、事前に設定された基準値や条件(ルール)に基づいて、ロボットの動作やタスクの成否を判定するため、基準値や条件を設定するための工数を削減できない。また、特許文献1及び2に開示された装置は、当然に、基準値や条件の設定前に、基準値や条件を自動的に判定したり、動的に更新したりできない。さらに、特許文献1及び2に開示された装置は、基準値や条件が設定されていない状況に対応できない。
【0012】
本開示の目的の1つは、上述した課題を鑑み、対象装置に関する異常状態を効率良く判定できる、情報処理システム、情報処理装置、情報処理方法、及び、記録媒体を提供することとする。
【課題を解決するための手段】
【0013】
本開示の一態様における情報処理装置は、評価対象の対象装置が存在する実環境を模擬した結果を観測した仮想観測情報を生成する情報生成手段と、生成した前記仮想観測情報と、前記実環境を観測した実観測情報と、の差異に応じて異常状態を判定する異常判定手段と、を備える。
【0014】
本開示の一態様における情報処理システムは、評価対象の対象装置と、本開示の一態様における情報処理装置と、を備える。
【0015】
本開示の一態様における情報処理方法は、評価対象の対象装置が存在する実環境を模擬した結果を観測した仮想観測情報を生成し、生成した前記仮想観測情報と、前記実環境を観測した実観測情報と、の差異に応じて異常状態を判定する。
【0016】
本開示の一態様における記録媒体は、コンピュータに、評価対象の対象装置が存在する実環境を模擬した結果を観測した仮想観測情報を生成し、生成した前記仮想観測情報と、前記実環境を観測した実観測情報と、の差異に応じて異常状態を判定する、処理を実行させるプログラムを記録する。
【発明の効果】
【0017】
本開示によれば、対象装置に関する異常状態を効率良く判定できる。
【図面の簡単な説明】
【0018】
図1】第1の実施形態における、対象評価システム10の構成の一例を示すブロック図である。
図2】第1の実施形態における、実環境と仮想環境との関係を示すブロック図である。
図3】第1の実施形態における、情報処理装置12の構成の一例を示すブロック図である。
図4】第1の実施形態における、対象評価システム10の観測情報評価処理を示すフローチャートである。
図5】第2の実施の形態における、情報処理装置22の構成の一例を示すブロック図である。
図6】第2の実施の形態における、情報処理装置22の観測情報評価処理を示すフローチャートである。
図7】第3の実施形態における、ピッキングシステム110の構成の一例を示す図である。
図8】第3の実施形態における、ピッキングシステム110の動作を説明する図である。
図9】第3の実施形態における、比較部18の動作を説明する図である。
図10】第4の実施形態における、キャリブレーションシステム120の構成の一例を示す図である。
図11】第4の実施形態における、キャリブレーションシステム120の動作を説明する図である。
図12】第4の実施形態における、比較部18の動作を説明する図である。
図13】第4の実施形態における、位置姿勢パラメータθの推定処理を示すフローチャートである。
図14】第4の実施形態の変形例における、キャリブレーションの方法を説明する図である。
図15】第5の実施形態における、強化学習システム130の構成を示す図である。
図16】第6の実施形態における、情報処理装置1の構成を示すブロック図である。
図17】コンピュータ500のハードウェア構成の例を示すブロック図である。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら、情報処理システム、情報処理装置、情報処理方法、及び、記録媒体の実施形態について説明する。ただし、以下に述べる実施形態には、本開示を実施するために技術的に好ましい限定がされているが、開示の範囲を以下に限定するものではない。なお、各図面、及び、明細書記載の各実施形態において、同様の構成要素には同一の符号を付与し、説明を適宜省略する。
【0020】
(第1の実施形態)
まず、第1の実施形態に係る対象評価システムについて図面を参照しながら説明する。
(システム構成)
図1は、第1の実施形態における、対象評価システム10の構成の一例を示すブロック図である。図1に示すように、対象評価システム10は、対象装置11と、情報処理装置12と、を備える。
【0021】
対象装置11は、評価の対象となる装置である。対象装置11は、例えば、目的の作業(タスク)を実行する多関節(多軸)ロボットアーム、または、周辺環境を認識するためのカメラ等の撮像装置などである。対象装置11がロボットアームの場合、ロボットアームは、タスクを実行するために必要な機能を有する装置、例えば、ロボットハンドなどを含んでいてもよい。対象装置11が観測装置の場合、観測装置は、観測対象である被制御装置の作業空間内に固定され、位置や姿勢を変化させる機構や、作業空間内で移動する機構を備えてもよい。ここで、被制御装置とは、対象装置11が観測装置の場合における、所望のタスクを実行するロボットアーム等の装置である。
【0022】
図2は、第1の実施形態における、実環境と仮想環境との関係を示すブロック図である。図2に示すように、情報処理装置12は、実環境を模擬した仮想環境に、対象装置11を模擬した仮想対象装置13を構築する。対象装置11がロボットアームの場合、情報処理装置12は、ロボットアームを模擬した仮想対象装置13を構築する。また、対象装置11が観測装置の場合、情報処理装置12は、対象装置11の観測装置を模擬した仮想対象装置13を構築する。この場合、情報処理装置12は、観測対象の被制御装置であるロボットアーム等についても、仮想環境に構築する。
【0023】
情報処理装置12は、実環境の対象装置11に関する情報と、仮想対象装置13に関する情報と、を比較して、対象装置11に関する異常状態を判定する。
【0024】
ここで、実環境とは、実際の対象装置11、及び、その周辺環境を意味する。また、仮想環境とは、例えば、ロボットアームなどの対象装置11や、当該ロボットアームのピッキング対象物をシミュレーション(シミュレータ、または数理モデル)で再現した環境、いわゆるデジタルツインなどを意味する。なお、これら装置の具体的な構成は、本実施形態では制限されない。
(装置構成)
続いて、図3を用いて、第1の実施形態における、情報処理装置12の構成をより具体的に説明する。図3は、第1の実施形態における、情報処理装置12の構成の一例を示すブロック図である。
【0025】
以下、本実施形態では、対象装置11がロボットアームの場合について説明し、後述する第4の実施形態において、対象装置11が観測装置の場合について説明する。
【0026】
図3に示すように、情報処理装置12は、実環境観測部14、実環境推定部15、仮想環境設定部16、仮想環境観測部17、及び、比較部18を含む。
【0027】
実環境観測部14は、実環境において、対象装置11に関する観測結果(以下、実観測情報とも記載)を取得する。実環境観測部14は、例えば、図示しない、一般的な2Dカメラ(RGBカメラ)や3Dカメラ(デプスカメラ)などを用いて、観測結果である、例えば、ロボットアームの動作画像を、実観測情報として取得する。観測結果は、例えば、可視光、赤外線、X線、またはレーザー等により得られる画像情報である。
【0028】
また、実環境観測部14は、ロボットアームのアクチュエータに設けられたセンサから、ロボットアームの動作を動作情報として取得する。ここで、動作情報は、ある時点における、例えば、ロボットアームのセンサが示す値を、時系列にまとめて、ロボットアームの動作を表すようにした情報である。
【0029】
実環境推定部15は、実環境観測部14により取得された実観測情報に基づいて、実環境における未知状態を推定し、推定結果を得る。本実施形態において、未知状態は、実環境のタスクを仮想環境で実行するために既知であるべきものの、未知、または、不確実性が高い特定の状態であって、観測結果、例えば、画像等から直接または間接的に推定できる状態を表すとする。
【0030】
例えば、対象装置11がロボットアームで、実行するタスクがピッキング(対象物を摘まみ上げる処理)の場合、未知または不確実性が高い状態は、そのピッキング対象物の位置、姿勢、形状、重量、及び、表面特性(摩擦係数等)などである。そして、未知状態は、これらの中で、直接または間接的に観測結果(画像情報)から推定できる状態、すなわち、位置、姿勢、及び、形状である。実環境推定部15は、上述した未知状態を推定した推定結果を、仮想環境設定部16に出力する。
【0031】
なお、仮想環境は、実環境における必要部分を模擬できていることが前提である。ただし、実環境における必要部分を全て模擬する必要はない。実環境推定部15は、評価対象となる装置や目的の作業(タスク)に基づいて、模擬する所定の範囲、つまり必要部分を定めることができる。上述したように、この模擬する所定の範囲には、未知または不確実性が高い状態が存在するため、実環境推定部15は、所定の範囲の実環境を模擬するために、未知状態を推定する必要がある。具体的な推定結果や推定方法は、後述する。
【0032】
仮想環境設定部16は、実環境推定部15により推定される推定結果を、仮想環境の状態が実環境に近づくように、仮想環境に設定する。また、仮想環境設定部16は、実環境観測部14により取得される動作情報に基づいて、仮想対象装置13を動作させる。ここで、図2に示した仮想環境における仮想対象装置13は、予め周知技術により、対象装置11を模擬して構築されたモデルであり、実環境観測部14による動作情報に基づいて、対象装置11と同じ動作をさせることができる。
【0033】
仮想環境設定部16は、既知の状態、及び、計画された状態を、仮想環境の設定に用いてもよい。計画された状態とは、例えば、ロボットアーム等の対象装置11を制御する制御計画や、タスクの計画などである。このようにして、仮想環境設定部16は、所定の範囲の実環境を模擬した仮想環境を構築する。
【0034】
ここで、本実施形態の仮想環境では、実環境の時間経過に合わせて(実環境を時間発展することにより)、仮想環境設定部16が、仮想対象装置13に関するシミュレーションを行う。仮想環境設定部16で設定された状態が適切である場合、仮想環境では、実環境と比較して理想的な将来(未来)の状態が得られる。なぜなら、仮想環境では、予期しない、すなわち設定されていない状態(異常状態)が発生しないためである。
【0035】
それに対して、実環境では、仮想環境設定部16で設定困難な状況、すなわち、例えば、環境変化や外乱、不確実性(装置の個体差や、位置情報の誤差等)、及び、ロボットアーム等の対象装置11などハードウェアの不具合やエラー等により、異常状態が発生する可能性がある。
【0036】
仮想環境観測部17は、実環境の観測装置を模擬した仮想環境内の観測手段から、仮想対象装置13に関する観測情報(以下、仮想観測情報とも記載)を取得する。仮想環境観測部17は、観測装置をモデル化した手段であればよく、本開示では制限されない。
【0037】
また、仮想環境観測部17は、実環境を観測した観測結果である画像情報(実観測情報)と同種の画像情報(仮想観測情報)を、仮想環境で取得する。ここで、同種の画像情報とは、例えば、画像情報が2D(RGB)カメラで撮像された情報である場合、同様の2D(RGB)カメラのモデルを仮想環境、具体的には、シミュレータ内に配置して、当該シミュレータのカメラモデルで撮像された画像情報である。これは、他の実観測情報、例えば、3D(デプス)カメラで撮像された画像情報などであっても同様である。また、カメラ等の撮像装置により撮像された情報の仕様、例えば、画像の解像度や画像サイズなどは、評価対象やタスクに応じて所定の範囲で共通性があればよく、完全に一致させる必要はない。具体的な仮想環境や実観測情報、仮想観測情報、異常については、後述の実施形態で説明する。
【0038】
比較部18には、実観測情報、及び、仮想観測情報が入力される。比較部18は、入力された実観測情報と、仮想観測情報と、を比較して比較結果を出力する。ここで、実観測情報、及び、仮想観測情報は、時系列(時間発展)において、実環境で異常状態が発生していない場合、所定の範囲と条件の下、つまり仮想環境で模擬した範囲において、互いに差異が無い。しかしながら、実観測情報、及び、仮想観測情報は、実環境で異常状態が発生した場合、実環境の状態が仮想環境に反映した設定と異なっていることにより、互いに差異を生じる。したがって、比較部18は、実環境の異常状態の有無を、比較結果である、実観測情報、及び、仮想観測情報の差異として出力する。
【0039】
比較部18における比較方法を例示して説明する。実観測情報、及び、仮想観測情報が、前述したように、所定の範囲で共通性のあるデータであることが前提となる。例えば、観測装置が2D(RGB)カメラデータ(2次元画像データ)の場合、比較部18は、ある共通の解像度に平均化、または、ダウンサンプリングされた2次元画像のピクセル値同士を比較することができる。より簡易には、比較部18は、そのピクセルが、対象の物体の画像を構成しているか否か、つまり占有されているか否かに応じて、当該ピクセルを2値で表した占有率マップに変換することで、容易かつ高速に比較することができる。なお、比較部18は、観測情報が3D(2D画像+デプス(深度))や点群(Point Cloud)の場合でも、3次元占有率格子などの表現を用いることで同様に比較が可能である。比較方法はこれらに限らないが、具体例は、図12等を参照しながら後述の実施形態で説明する。
(動作)
次に、第1の実施形態の動作について説明する。
【0040】
図4は、第1の実施形態における、対象評価システム10の観測情報評価処理を示すフローチャートである。
(観測情報評価処理)
まず、対象評価システム10において、情報処理装置12の実環境観測部14は、対象装置11に関する実観測情報を取得する(ステップS11)。
【0041】
実環境推定部15は、実環境に未知状態がある場合(ステップS12のYES)、その未知状態を推定する(ステップS13)。実環境推定部15は、仮想対象装置13に関する仮想観測情報を取得するために、未知状態の有無を判定する。例えば、ピッキング動作(対象物を摘まみ上げる動作)の場合、実環境推定部15は、ロボットアーム等の各関節の位置姿勢については、既知の状態として、動作情報、または、制御計画に基づいて判断できる。しかしながら、ピッキング対象物の位置姿勢については、観測装置から得られる実観測情報に基づいて判断する必要があり、正確に特定できないため、未知状態であると判定できる。実環境推定部15は、ピッキング対象物の位置姿勢を未知状態であると判定した後、実観測情報に基づいて、当該位置姿勢を推定する。
【0042】
本開示における未知状態は、上述したように、画像から直接または間接的に判断できる。未知状態の推定には、対象装置11(観測装置)や対象物について観測された実観測情報(画像情報)を用いた、特徴量ベース、または深層学習ベースの画像認識(コンピュータビジョン)の手法を適用することができる。
【0043】
ピッキング動作(対象物を摘まみ上げる動作)の場合、例えば、未知状態の推定は、実観測情報(画像情報)として2D(RGB)データや3D(RGB+デプス、または点群)データと、ピッキング対象物を表すCAD(Computer Aided Design)などで作成されたモデルデータと、をマッチングさせることにより実現できる。また、深層学習(ディープラーニング)、特に畳み込みニューラルネットワーク(CNN)やディープニューラルネットワーク(DNN)を使った画像を分類(セグメンテーション)する技術を、実観測情報(画像情報)に適用して、ピッキング対象物の領域を他の領域と分離したり、ピッキング対象物の位置姿勢を推定したりすることができる。また、ピッキング対象物に何らかの標識、例えば、ARマーカーなどを貼り付けて、その標識の位置姿勢を検出することで、ピッキング対象物の位置姿勢が推定できる。未知状態の推定方法は、本開示では限定されない。
【0044】
実環境に未知状態がない場合(ステップS12のNO)、実環境推定部15は、比較処理のステップS15へと進む。実環境に未知状態がない場合とは、例えば、上述のピッキング動作の場合、ピッキング対象物の位置姿勢が確定され、既知の状態となったような場合である。
【0045】
仮想環境設定部16は、未知状態の推定結果を、仮想環境に設定する(ステップS14)。仮想環境設定部16は、例えば、上述のピッキング動作の場合、ピッキング対象物の位置姿勢の推定結果を、仮想環境におけるピッキング対象物の位置姿勢として設定する。
【0046】
情報処理装置12では、ステップS11からステップS14までの処理により、仮想環境を実環境に近づけるように設定することにより、実観測情報と、仮想観測情報と、を比較できる環境が構築される。つまり、ステップS11からステップS14までの処理は、仮想環境の初期設定を行っている。
【0047】
対象装置11、及び、仮想環境設定部16は、タスクを実行する(ステップS15)。実環境におけるタスクは、例えば、後述するような、ピッキング動作や、観測装置のキャリブレーションである。実環境におけるタスクは、例えば、図示しないメモリに予め記憶された制御計画を入力して実行されてもよい。また、仮想環境におけるタスクの実行は、例えば、ピッキング動作の場合、対象装置11であるロボットアーム等から得られる動作情報を、仮想環境設定部16が仮想対象装置13に設定することで、実行される。タスクの実行中は、制御計画により対象装置11にタスクを実行させ、その対象装置11の動作情報を取得して、仮想対象装置13に設定することを繰り返す。ここで、タスクは、例えば、ピッキング動作の場合、ロボットアーム等が、ピッキング対象物付近にアプローチした後、ピッキング対象物を把持して、持ち上げ、その後、所定の位置に移動するまでの一連の動作である。
【0048】
情報処理装置12は、タスクが終了したか否かを判定する(ステップS16)。タスクが終了した場合(ステップS16のYES)、情報処理装置12は、観測情報評価処理を終了する。タスクの終了について、情報処理装置12は、例えば、ピッキング動作の制御計画の最後の制御命令が実行されていれば、タスクが終了したと判定してもよい。
【0049】
タスクが終了していない場合(ステップS16のNO)、実環境観測部14は、対象装置11に関する実観測情報を取得し、仮想環境観測部17は、仮想対象装置13に関する仮想観測情報を取得する(ステップS17)。
【0050】
比較部18は、実観測情報と仮想観測情報と、を比較する(ステップS18)。比較部18は、実観測情報と仮想観測情報とを、例えば、上述したような、互いのピクセルを占有率マップに変換して、比較する。占有率マップへの変換の詳細については、後述の実施形態において説明する。
【0051】
ステップS18における比較結果に差異がある場合(ステップS19のYES)、比較部18は、対象装置11に関する異常状態が発生していると判定する(ステップS20)。比較部18は、異常状態と判定すると、観測情報評価処理を終了する。
【0052】
また、ステップS18における比較結果に差異がない場合(ステップS19のNO)、比較部18は、ステップS15のタスクの実行の処理に戻り、その後の処理を続ける。
【0053】
以上により、第1の実施形態の動作が完了する。
【0054】
なお、上述したように、観測情報評価処理では、ステップS19で差異が生じて、異常状態と判定される、または、ステップS16でタスクが終了することにより、当該処理が終了する。ステップS16でタスクが終了する場合、タスクの実行途中で、実観測情報と仮想観測情報との間に差異が生じることがなかった、つまり、対象装置11は、異常状態を発生することなく、タスクを実行したことを意味する。
【0055】
この観測情報評価処理における一連の動作(ステップS15からステップS20の処理)は、ある時刻(タイミング)にて実施されてもよく、または、規定の時間周期で繰り返されてもよい。例えば、上述したようなピッキング動作の場合、アプローチ、把持、持ち上げ、及び、移動の動作ごとに実施されてもよい。その結果、本動作が実施された時点、すなわち、アプローチ、把持、移動といった各タイミングにおいて、情報処理装置12は、対象装置11の動作の成否、つまり異常状態を判定できる。これにより、情報処理装置12は、異常状態が発生した以降の無駄な動作を、削減することができる。
【0056】
ここで、本開示の技術と、AI(Artificial intelligence)等を含む一般的なシミュレーション技術との違いについて述べる。一般的なシミュレーション技術では、仮想的な環境、すなわち数理的に算出された環境の情報(データ)と、実環境の情報との比較を、様々な技術によって実施することが可能である。
【0057】
しかしながら、これらの技術は、実環境の情報と、仮想環境の情報とを、直接比較することができないため、例えば、実環境から仮想環境への情報の変換処理を必ず含む。この情報の変換処理には、事前に専門的な知識や解釈による仮定に基づく、環境やタスクに応じた条件や基準値を設定することが必要となる。つまり、上述した関連技術は、実環境の情報と、仮想環境の情報とを、客観的に、一意に比較することができない。
【0058】
例えば、シミュレーション結果の場合、出力されるデータは、一般的に、本実施形態の実観測情報のような画像情報と異なる。そのため、一般的なシミュレーション技術では、実環境の観測情報と、出力データとを比較するために、シミュレーションを評価する範囲を指定したり、出力データを観測情報に変換したりする必要がある。
【0059】
また、機械学習、いわゆるAIを用いた予測の場合、予測自体に不確実性がある。同様に、AIによる画像認識の技術を使った場合も、画像認識自体に不確実性がある。さらに、例えば、実環境の観測装置による画像から判定するためには、事前に専門的な知識や解釈による仮定に基づく、環境やタスクに応じた条件や基準値を設定する必要がある。
【0060】
したがって、AI等を含む一般的なシミュレーション技術は、前提条件や不確実性を完全に排除できないため、人為的な設定や判断などを必要とすることにより、SI工数削減を妨げる。また、このような技術は、予測や評価に多くの計算リソースを必要とするため、そのコストや計算時間が課題となる。
【0061】
これに対して、本開示の技術は、実環境と仮想環境とにおいて、同種の情報(データ)を使うことで、事前に専門的な知識や解釈による仮定に基づく、環境やタスクに応じた条件や基準値を設定するような人為的介入を行うことなく、データそのもの(生データ、RAWデータ)を直接比較することが可能である。これにより、本開示では、不確実性、及び、計算リソースを低減することができる。
【0062】
(第1の実施形態の効果)
第1の実施形態によれば、対象装置に関する異常状態を効率良く判定できる。その理由は、評価対象の対象装置11が存在する実環境を模擬した結果を観測した仮想観測情報を生成し、生成した仮想観測情報と、実環境を観測した実観測情報と、の差異に応じて、異常状態を判定するためである。
【0063】
つまり、仮想環境設定部16で設定された仮想環境では、異常状態が発生しない理想的な現在、または、将来(未来)の状態である、理想的な仮想観測情報が得られる一方で、実環境では、環境変化や外乱、誤差等の不確実性、及び、ハードウェアの不具合やエラーなど、様々な異常状態が含まれる実観測情報が得られる。そのため、対象装置11を含む実環境の状態と、仮想対象装置を含む仮想環境の状態と、の差異に着目することで、本実施形態の効果が得られる。
【0064】
(第2の実施形態)
次に、第2の実施形態に係る対象評価システムについて、図面を参照しながら説明する。第2の実施形態の対象評価システム100は、第1の実施形態の情報処理装置12の代わりに、情報処理装置12の構成に、制御部19、評価部20、及び、更新部21を追加した情報処理装置22を含む点で、第1の実施形態と異なる。図5を用いて、情報処理装置22の構成をより具体的に説明する。図5は、第2の実施の形態における、情報処理装置22の構成の一例を示すブロック図である。
【0065】
(装置構成)
図5に示すように、情報処理装置22は、第1の実施形態における情報処理装置12の構成に加えて、新たに、制御部19、評価部20、及び、更新部21を含む。同じ符号の構成要素については、第1の実施形態と同じ機能であるので、以下、説明を省略する。
【0066】
制御部19は、対象装置11を制御するための制御計画や、実際に制御するための制御入力を、対象装置11に出力する。これらの出力は、ある時刻(タイミング)での値であっても、時系列データであってもよい。制御部19は、対象装置11が、ロボットアーム等の場合、被制御対象である対象装置11に、制御計画または制御入力を出力する。なお、制御計画や制御入力の算出は、典型的な方法、例えば、RRT(Rapidly-exploring Random Tree)など、いわゆるモーションプランニングを用いることができる。本実施形態では、制御計画や制御入力の算出方法は、制限されない。
【0067】
評価部20は、比較部18から出力された比較結果を入力として、評価値を出力する。評価部20は、比較結果である実観測情報、及び、仮想観測情報の差異に基づいて、評価値を算出する。評価値には、比較結果である差異をそのまま用いてもよく、差異に基づいて算出した異常の度合い(以下、異常度とも記載)を用いてもよい。例えば、対象装置11がロボットアーム等の場合、評価値は、実観測情報と仮想観測情報との間の、ピッキング対象物の位置姿勢のズレの程度を表す。また、対象装置11の動作を強化学習するシステムの場合、評価値に基づき、動作に対する報酬を決定してもよい。報酬は、たとえば、対象装置11についての所望の状態からどの程度遠いのかを表す指標である。上述した例の場合に、たとえば、ズレの程度が多いほど報酬を低く設定し、ズレの程度が少ないほど報酬を高く設定する。評価値は、これらに限定されない。
【0068】
更新部21は、評価部20から出力される評価値を意図する方向に変化させるように、実環境推定部15で推定された推定結果、または、制御部19で計画された制御計画の、少なくともいずれかを更新するための情報を出力する。意図する方向とは、評価値(差異や異常度)を下げる方向である。
【0069】
意図する方向への更新情報の算出は、典型的な方法、例えば、未知状態を表すパラメータ、または、制御計画を決定するパラメータに対する評価値の勾配(または、偏微分)を用いて、勾配法などで算出してもよい。更新情報の算出方法は、限定されない。ここで、未知状態のパラメータとは、例えば、未知状態がピッキング対象物の位置姿勢の場合、位置、姿勢、及び、大きさ等を表すものである。また、制御計画のパラメータとは、例えば、ロボットアームによるピッキングの場合、ロボットアームの位置姿勢(各関節のアクチュエータの制御パラメータ)や把持する位置や角度、動作速度等を表すものである。
【0070】
更新部21は、例えば、勾配法を用いて、未知状態または制御計画を、意図する方向への、評価値(差異や異常度)の変化の勾配が大きいパラメータ(以下、感度の高いパラメータとも記載)を選択し、選択したパラメータに応じて、実環境推定部15、または、制御部19に、変更するパラメータを指示してもよい。また、更新パラメータの選択は、感度の高いと思われる複数のパラメータを予め決めておき、それらのパラメータに対して値を変化させ、そのときの評価値(差異や異常度)の変化の勾配を計算し、感度が最も高いパラメータを優先的に更新してもよい。
【0071】
また、更新部21は、実環境推定部15、または、制御部19に変更するパラメータを指示する代わりに、更新パラメータを選択し、選択したパラメータを更新する処理を繰り返してもよい。
【0072】
(動作)
図6は、第2の実施の形態における、情報処理装置22の観測情報評価処理を示すフローチャートである。
【0073】
図6に記載のフローチャートにおいて、実環境観測部14による実観測情報の取得処理(ステップS21)から比較部18による比較処理(ステップS28)までは、第1の実施形態の対象評価システム10による観測情報評価処理のステップS11からステップS18までの動作と同じであるので説明を省略する。ただし、仮想環境設定処理のステップS24において、第1の実施形態の実環境推定部15による推定結果(ステップS14)に加えて、制御部19による制御計画を、仮想環境に設定している。
【0074】
評価部20は、比較結果に基づいて、評価値を算出する(ステップS29)。評価部20は、評価値が、所定の評価基準(以下、単に、所定の基準とも記載する)を満たすか否かを評価する(ステップS30)。評価基準は、対象装置11に関する異常状態が「異常ではない」と判断するための、比較結果である差異や、差異に基づき算出された異常度の値の基準である。評価基準は、上述の、特許文献1や特許文献2における、環境やタスクに応じた基準値や条件とは異なる。評価基準は、例えば、異常状態が「異常ではない」と判断される、差異や異常度の値の範囲に係る、閾値により示される。例えば、評価基準が上限の閾値で与えられる場合、評価部20は、評価値が閾値以下の場合、評価基準を満たすと評価する。評価基準は、評価対象とする対象装置11とタスクと、に基づいて、予め設定されてもよい。また、評価基準は、対象評価システム100を動作させる過程で設定されたり、変更されたりしてもよい。この場合、例えば、比較結果の差異に応じて、評価基準を設定するようにしてもよい。さらに、評価基準は、過去の実績データや傾向などから設定されてもよく、特に制限されない。
【0075】
評価値が評価基準を満たさない場合(ステップS30のNO)、更新部21は、評価値に基づいて、未知状態、または、制御計画の、少なくとも一方を更新する(ステップS31)。以降、ステップS25からの処理が繰り返される。これにより、実観測情報と、仮想観測情報との差異を小さくして、評価値が評価基準を満たすようにすることにより、対象装置11に関する異常状態が解消される。
【0076】
(第2の実施形態の効果)
第2の実施形態によれば、対象装置に関する異常状態を効率良く判定できることに加えて、異常な状態から正常な状態に自動的(自律的)に回復(リカバリー)することが可能となるため、さらにSI工数を削減することができる。その理由は、評価部20が、評価値が評価基準を満たすか否かを評価し、基準値が満たされない場合、更新部21が、推定結果、または、制御計画の少なくとも一方を、評価値に基づいて更新することにより、評価値が評価基準を満たすまで、観測情報評価処理が繰り返されるためである。
【0077】
(第3の実施形態)
次に、第3の実施形態として、第2実施形態に基づく具体例について説明する。
【0078】
第3の実施形態は、製造業や物流などで実行されるタスクの1つである、ピッキング動作(対象物を摘まみ上げる動作)において、ピッキングを実行するロボットアームを対象装置11として評価する例である。図7は、第3の実施形態における、ピッキングシステム110の構成の一例を示す図である。
【0079】
(装置構成)
図7に示すように、ピッキングシステム110は、対象装置11であるロボットアーム、情報処理装置22、対象装置11に関する実観測情報を得る観測装置31、及び、ピッキング対象物32を含む。ここで、情報処理装置22は、仮想環境内に、対象装置11のロボットアームのモデルである仮想対象装置33と、観測装置31のモデルである仮想観測装置34と、ピッキング対象物32のモデルである仮想対象物35が構築されている。
【0080】
観測装置31は、第1及び第2の実施形態における実環境観測部14にて取得される対象装置11に関する実観測情報を提供する手段である。例えば、観測装置31は、カメラ等であって、一連のピッキング動作について、ある時刻、または時系列の観測データを取得する。ここで、一連のピッキング動作とは、ロボットアームがピッキング対象物32に適切にアプローチし、ピッキング対象物32をピッキング、そして、ピッキング対象物32を所定の位置に移動、または、置くことである。
【0081】
なお、ピッキングシステム110における未知状態は、ピッキング対象物32の位置姿勢である。また、本実施形態の評価値は、上記の一連のピッキング動作が成功できているか否か、すなわち正常状態か異常状態かという二値情報、もしくは、動作の精度、複数回の動作における成功の割合などであるとする。この様な場合の動作について、以下、具体的に説明する。
【0082】
図8は、第3の実施形態における、ピッキングシステム110の動作を説明する図である。以下、ピッキングシステム110の動作を、図6に示したフローチャートを参照して説明する。図8の上段には、ピッキング動作前の実環境を表した図(上段左)と、仮想環境を表した図(上段右)が示されている。ここで、対象装置11であるロボットアームは、ピッキング対象物32を把持するのに適したロボットハンド、またはバキュームグリッパが含まれているとする。
【0083】
上述のステップS21において、情報処理装置22の実環境観測部14は、観測装置31により観測された、対象装置11であるロボットアーム、及び、ピッキング対象物32に関する実観測情報を取得する。次いで、上述のステップS22において、未知状態の有無を判定するが、ここでは、未知状態があるとして、説明をする。
【0084】
上述のステップS23において、実環境推定部15は、取得した実観測情報に基づいて、未知状態であるピッキング対象物32の位置姿勢を推定する。なお、ピッキング対象物32の位置姿勢の推定は、第1の実施形態において説明したように、特徴量ベース、または、深層学習ベースの画像認識(コンピュータビジョン)の手法等を用いてもよい。
【0085】
次いで、上述のステップS24において、仮想環境設定部16は、実環境推定部15による未知状態の推定結果を、仮想対象装置33に設定する。これにより、実環境の初期状態が、情報処理装置22の仮想環境に設定される。つまり、実環境における対象装置11のタスクを、仮想環境において、仮想対象装置33も実行できるように、仮想環境が設定される。
【0086】
仮想環境の設定後、上述のステップS25において、ロボットアーム(対象装置11)は、例えば、制御計画に基づいて、タスクを開始する。タスクの実行中に、実環境観測部14は、図示しないロボットアームのコントローラを経由して、各関節の位置姿勢が動作情報として取得する。仮想環境設定部16は、取得した動作情報を、仮想対象装置33であるロボットアームのモデルに設定する。これにより、ロボットアーム(対象装置11)及びピッキング対象物32と、仮想環境のロボットアーム(仮想対象装置33)及び仮想対象物35とが、連動(同期)して動くことができる。なお、実環境観測部14は、この動作情報を、ロボットアームの動きとともに、所定の周期で取得し、仮想環境設定部16は、同じ周期で、仮想対象装置33に動作情報を設定してもよい。
【0087】
上述のステップS26において、情報処理装置22は、タスクが終了したか否かを判定する。タスクが終了していなければ、上述のステップS27において、カメラ(観測装置31)は、ピッキング対象物32を含むロボットアームの状態を観測し、実観測情報を実環境観測部14に出力する。また、仮想観測装置34は、シミュレーションによるロボットアーム(仮想対象装置33)及び仮想対象物35の状態を観測し、仮想観測情報を仮想環境観測部17に出力する。
【0088】
上述のステップS28において、比較部18は、実観測情報(図8下段の左の吹き出し)と仮想観測情報と(図8下段の右の吹き出し)を比較し、比較結果を得る。この動作について、図8下段、及び、図9を参照して説明する。図9は、第3の実施形態における、比較部18の動作を説明する図である。
【0089】
図8の下段には、ピッキング動作後の実環境を表した図(下段左)と、仮想環境を表した図(下段右)が示されている。ただし、観測装置31の吹き出しに、観測情報の例である撮像データ(画像データ)が、実環境及び仮想環境のそれぞれに模式的に表されている。図8の下段左は、ピッキング対象物32のうち、四角の物体にアプローチしてピッキング(把持)を実行したところ、実環境では失敗して落とした状態を示している。失敗の原因としては、例えば、ロボットアーム(対象装置11)と観測装置31との間の座標系の関係、すなわちキャリブレーションの精度が悪かった、または画像認識等に基づいて推定された対象物の位置や姿勢の精度が悪かったために、アプローチの位置がズレてしまった場合や、ピッキング対象物32の摩擦係数等の想定が異なっていた場合などが考えられる。前者は、未知状態の推定結果の精度が悪い場合である。また、後者は、未知状態はない(なくなった)が、その他のパラメータに問題がある場合である。ここでは後者の場合を例とする。ここで、その他のパラメータとは、未知状態を表すパラメータ以外のパラメータで、直接または間接的に画像データから推定できないパラメータのことである。本実施形態では、ピッキング対象物32の摩擦係数が想定と異なっている場合として説明する。
【0090】
未知状態を含め、摩擦係数等のピッキング対象物32に関するパラメータを、全て正確に把握してモデル化し、仮想環境(シミュレータ)で再現することは、一般に容易ではない。したがって、仮想環境では、最初に想定されたピッキング対象物32に関するパラメータと、制御部19で計画され、ロボットアームに実際に入力された制御入力に基づいて出力される動作情報と、に基づいてピッキング動作のシミュレーションが行われる。その結果、上記の様なピッキング対象物32に関するパラメータの差異が反映されていない、つまり、摩擦係数等のパラメータが、考慮されていないため、仮想環境では、ピッキングが成功する。図8下段右は、仮想環境において、ピッキングが成功したことを示す図である。この様に、本事実施形態のピッキングでは、図8下段に示すピッキング動作後、実観測情報(図8下段左)と仮想観測情報(図8下段右)とが異なる状態となる。
【0091】
この様な状態は、実環境で目的とするピッキング動作が実現できていないので、エラー(失敗、または異常)と言える。しかしながら、このような異常状態を人に発見させるのではなく、機械(ロボット、AI)が自動的(自律的)に検出することは、一般に容易ではない。図8の下段左に示すような、観測装置31で取得された撮像データ(画像データ)には、ピッキング対象物32が映っていないため、人は、容易にタスクが失敗と判定できる。それに対して、機械(ロボット、AI)は、この様な画像情報から自動的にタスクの成否を判定するためには、一般に、画像認識の手法を使う必要がある。
【0092】
この画像認識は、図8上段に示すピッキング前に、ピッキング対象物32の位置姿勢を求める手法の1つとして利用した。しかしながら、ピッキング後の画像認識では、ロボットハンドによって把持された物体、すなわち物体の一部が遮蔽された条件で認識する必要がある。その点で、ピッキング前の画像認識は、ピッキング後の画像認識と異なる。一般に、画像認識は、この様な遮蔽などが発生すると、対象の認識に失敗することがある。このことは、前述したように、関連する異常検知手法が、元の画像情報(RAWデータ)から直接判定できず、認識アルゴリズムなどを介して、画像内の対象を認識することで行われる処理であるからである。また、画像認識では、対象の物体が無いことが認識できたとしても、認識に時間を要すると、ロボットアームが動作し続けるため、失敗したまま動作を続ける場合がある。すなわち、関連技術の手法では、異常状態の検知精度と、検知までの時間の短縮とを両立し、各動作で確実に異常状態を検知することは困難である。
【0093】
図9に示すように、この動作例では、比較部18は、実観測情報及び仮想観測情報が、2D(二次元)の画像データである。比較部18は、実観測情報及び仮想観測情報を、各ピクセルの物体の有無に応じて、占有されているか否かの2値で表した占有率(占有格子地図:Occupancy Grid Map)に変換して比較する。ただし、これは、例示であって、例えば3D(3次元)データの場合にも、実観測情報及び仮想観測情報を占有率に変換可能で、ボクセル(Voxel)や八分木(Octree)などの表現方法を用いることができ、ここでは占有率への変換方法は、限定されない。
【0094】
図9では、左側が実環境におけるロボットハンドの周辺画像を、右側が仮想環境におけるロボットハンドの周辺画像を示している。画像内は、格子状(グリッド状)に区切って表現されている。なお、格子サイズは、評価対象である対象装置11や、ピッキング対象物32の大きさ、タスクに応じて任意に設定してもよい。また、第4の実施形態で示すように、格子サイズ(グリッドサイズ)を変更しながら、比較を複数回繰り返す、いわゆる反復(イタレーション)処理をしてもよい。この場合、特に格子サイズを徐々に小さくしながら反復して、占有率の差異を算出することで、占有率の精度が向上する。占有率の精度は、格子サイズを小さくして、画像データにおけるピクセルの解像度を上げることで、対象の物体が占めるピクセルをより正確に算出することができるためである。
【0095】
図8では、占有されていないグリッド、すなわち画像に物体が映っていないグリッドを点線枠の白地で、占有されているグリッド、すなわち画像に何らかの物体が映っているグリッドを太線枠の斜線塗で表した。この例の場合、実環境では、ピッキング対象物32を把持していないため、例として、ロボットハンド先端部分の占有が示されている。一方、仮想環境では、把持したピッキング対象物32が映っているため、そのグリッドも占有されていることが示されている。そのため、実観測情報と仮想観測情報とは、この占有率の差異のみで比較することができる。これは、互いの環境における占有率の高さや、差異等の定量的な評価をせずとも、またタスクや対象装置11、ピッキング対象物32にも依存せず、実観測情報と仮想観測情報とに差異が生じた場合、占有率の差異として現れることを意味する。したがって、仮想観測情報に前提条件などを付ける必要がなく、かつアルゴリズムを用いて仮想観測情報を変換せず、一意的に定められる占有率の差異によって、対象装置11に関する異常状態の有無を判定することができる。
【0096】
比較部18は、例えば、この事例では、占有率に差異がなければ正常状態、差異があれば異常状態と判定できる。なお、この様な占有率の差異の有無は、高速に算出することができる。3次元の場合は演算量が増えるが、ボクセル(Voxel)や八分木(Octree)などの表現は、演算量が減るように工夫されており、また占有率の差異を高速に検出するアルゴリズムも存在する。このようなアルゴリズムは、例えば、点群の変化検出:Change Detectionなどがある。ただし、本実施形態において、占有率の差異の計算方法は限定されない。
【0097】
上述したステップS29において、本実施形態では、評価部20は、占有率の差異を評価値として算出する。上述したステップS30において、評価部20は、占有率の差異が、評価基準を満たしているか否かを評価する。上述したステップS31において、本実施形態では、この評価値が評価基準を満たすまで、更新部21は、タスクの動作を進めながら(時間発展)、未知状態、または、制御計画の更新の指示を繰り返す。または、更新部21は、未知状態、または、制御計画の更新を繰り返してもよい。
【0098】
本実施形態では、上述したように、ピッキング対象物32の大きさや摩擦係数の想定が異なっていた場合を考えるので、例えば、更新部21は、ピッキング対象物32の摩擦係数などの影響を受ける、ロボットハンドを閉じる強さや、持ち上げる速度などの制御パラメータを更新して制御計画を再算出する、またはピッキング対象物32の把持する場所や角度に関するパラメータを更新してもよいし、このような指示を制御部19にしてもよい。
【0099】
(第3の実施形態の効果)
第3の実施形態によれば、対象装置に関する異常状態を効率良く判定できることに加えて、異常状態から正常状態に自動的(自律的)に回復(リカバリー)することができ、これによりSI工数を削減することができる。その理由は、評価部20が、評価値が評価基準を満たすか否かを評価し、評価基準が満たされない場合、更新部21が、推定結果、または、制御計画の少なくとも一方を、評価値に基づいて更新することにより、評価値が評価基準を満たすまで、観測情報評価処理が繰り返されるためである。
【0100】
(第4の実施形態)
次に、第4の実施形態として、第2の実施形態に基づく他の具体例について説明する。
【0101】
(システム構成)
第4の実施形態は、観測装置の座標系とロボットアームの座標系とを関連付けるキャリブレーションにおいて、観測装置を対象装置11として評価する例である。キャリブレーションの結果、ロボットアームを、観測装置の画像データを参照して、自律的に動作させることができる。本実施形態では、観測装置が対象装置11となり、ロボットアームが被制御装置となる。図10は、第4の実施形態における、キャリブレーションシステム120の構成の一例を示す図である。
【0102】
図10に示すように、キャリブレーションシステム120は、対象装置11である観測装置、観測装置により観測される観測対象であって、タスクを実行する被制御装置41であるロボットアーム、及び、情報処理装置22を含む。ここで、情報処理装置22は、仮想環境内に、対象装置11の観測装置のモデルである仮想対象装置33と、被制御装置41のモデルである仮想被制御装置42と、が構築されている。
【0103】
対象装置11は、評価や未知状態を推定される対象であると同時に、実環境観測部14に実観測情報を出力する観測手段でもある。被制御装置41であるロボットアームは、制御部19の制御計画に基づいて動作する。以下、対象装置11である観測装置をカメラとし、当該カメラの位置姿勢、いわゆるカメラの外部パラメータを未知状態として推定する例として説明する。
(動作)
図11は、第4の実施形態における、キャリブレーションシステム120の動作を説明する図である。以下、キャリブレーションシステム120の動作を、図6に示したフローチャートを参照して説明する。図11に示すように、左側が実環境、右側が仮想環境である。カメラ(対象装置11)の位置姿勢は、カメラの位置を表す3次元座標と、姿勢を表すロール、ピッチ、ヨーの、少なくとも6次元のパラメータで表される。本実施形態では、カメラの位置姿勢を6次元のパラメータとする。また、本実施形態の未知状態は、カメラの位置姿勢である。なお、姿勢の表し方はこの限りではなく、四元数(クォータニオン )による4次元パラメータ、または9次元の回転行列などで表しても良いが、上記のようにオイラー角(ロール、ピッチ、ヨー)で表現すると最小の3次元となる。
【0104】
上述したステップS21において、情報処理装置22の実環境観測部14は、カメラにより観測された、ロボットアーム(被制御装置41)に関する実観測情報(画像データ)を取得する。ここでは、未知状態があるとして(上述したステップS22のYES)、動作の説明を進める。
【0105】
次いで、上述したステップS23において、実環境推定部15は、取得した実観測情報に基づいて、未知状態であるカメラの位置姿勢を推定する。キャリブレーションの場合の未知状態の推定方法の具体例は、後述する。
【0106】
また、図11に示すように、本実施形態では、実環境及び仮想環境のどちらの環境においても、ロボットアームがカメラの視野内に入っているとする。実観測情報及び仮想観測情報は、図11に示すように、2D(2次元)である例とする。
【0107】
上述したステップS24において、仮想環境設定部16は、未知状態の推定結果を仮想環境に設定する。本実施形態では、仮想環境設定部16は、誤って推定された位置姿勢を、仮想環境内のカメラモデル(仮想対象装置33)に設定する。一般的に、カメラの座標系とロボットアームの座標系とを精度良く関連付けられるように、最初から、カメラの位置姿勢を正確に測ることは、非常に困難である。そのため、図11に示すように、仮想環境のカメラ(仮想対象装置33)の位置姿勢は、実環境において、未知状態である実際のカメラの位置姿勢に対して、誤って推定されたカメラの位置姿勢とする。
【0108】
これにより、動作前の実環境、すなわち実環境の初期状態が、情報処理装置22の仮想環境に設定される。つまり、実環境における対象装置11と被制御装置41とのキャリブレーションを、仮想環境において、仮想対象装置33と仮想被制御装置42との間でも同様に実行できるように、仮想環境が設定される。
【0109】
仮想環境の設定後、上述したステップS25において、ロボットアーム(被制御装置41)は、キャリブレーションのための制御計画に従って動作し、カメラ(対象装置11)は、ロボットアームの動作を観測して、タスクであるキャリブレーションを実行する。その際、実環境観測部14は、ロボットアーム(被制御装置41)から、当該ロボットアームの動作情報を取得する。仮想環境設定部16は、実環境観測部14により取得した動作情報を、仮想被制御装置42に設定する。これにより、仮想環境において、仮想被制御装置42は、シミュレーションにより、実環境のロボットアームと、同じ動作を行う。なお、仮想環境設定部16は、仮想被制御装置42に制御計画を設定することにより、実環境のロボットアームと、同じ動作を行うようにしてもよい。なお、仮想被制御装置42に制御計画を設定する場合は、仮想環境におけるロボットアーム(仮想被制御装置42)についての制御モデルに依存する。すなわち、実環境のロボットアーム(被制御装置41)を完全にモデル化できていない場合は、その誤差が含まれることになる。したがって、実環境のロボットアームから取得した各関節、アクチュエータの値などの動作情報に基づいて、仮想環境のロボットアームを動かす(同期させる、シンクロナイゼーションさせる)ことで、このような誤差を無くすことができる。
【0110】
上述したステップS27において、実環境観測部14は、カメラから実観測情報を取得する。また、仮想対象装置33は、仮想被制御装置42の状態を観測し、仮想被制御装置42に関する仮想観測情報を、仮想環境観測部17に出力する。
【0111】
ここで、上述したように、カメラ(対象装置11)の位置姿勢は未知状態であるが、そのカメラで得られた実観測情報(画像データ)は、実際のカメラの位置姿勢で取得されたものである。それに対して、仮想観測情報は、誤った推定結果が設定された仮想対象装置33の位置姿勢で取得されているので、実観測情報と異なっている。図11には、2D(2次元)の実観測情報と仮想観測情報とが異なっている場合の例を示している。
【0112】
説明のために、被制御装置41上の特徴点と、当該特徴点に対応する仮想被制御装置42上の特徴点と、を、被制御装置41及び仮想被制御装置42のそれぞれの座標系、すなわちロボットアームの座標系で表したXとする。ここで、特徴点は、画像で判別し易い箇所であれば任意であり、例えば、関節等が挙げられる。また、実観測情報の特徴点は、カメラ座標系で表したuaとする。仮想観測情報の特徴点は、カメラ座標系で表したusとする。ロボットアームの座標系と、カメラ座標系との変換を表す行列、いわゆるカメラ行列を、実環境と仮想環境とでそれぞれZa、Zsとすると、ua、usは、次式で表される。なお、カメラ行列は、内部行列と、外部行列とを含む。内部行列は、カメラの焦点やレンズひずみ等の内部パラメータを表したものである。外部行列は、カメラの並進移動と回転、いわゆるカメラの位置姿勢、外部パラメータを表したものである。
【0113】
【数1】
【0114】
ここで、特徴点Xは、実環境と仮想環境とで同一の点であるのに対し、キャリブレーション前では、実環境のカメラ(対象装置11)のカメラ行列Zaと、仮想環境のカメラ(仮想対象装置33)のカメラ行列Zsとが異なる。したがって、式1で表された画像データ上の特徴点u、uは、異なり、その二乗誤差は、次式で表される。
【0115】
【数2】
【0116】
よって、この式2で表される誤差の関係を、評価値の算出に応用できる。つまり、この評価値、すなわちカメラ行列を介して変換された互いの環境における特徴点Xの位置の誤差(|u-u|)が小さくなるように、未知状態であるカメラの位置姿勢、すなわちカメラ行列の外部行列を推定すればよい。ここで、本実施形態では、内部行列は、既知の状態であるとする。
【0117】
上述したステップS28において、比較部18は、実観測情報、及び、仮想観測情報を、比較して、占有率の差異を算出する。そして、上述したステップS29において、評価部20は、占有率の差異を、評価値として算出し、上述したステップS30において、占有率の差異が、評価基準を満たすか否かを判定する。
【0118】
以下、図11に示すような、実観測情報、及び、仮想観測情報を、比較部18に入力し、評価部20が、評価値を算出する例について説明する。
【0119】
図12は、第4の実施形態における、比較部18の動作を説明する図である。図12には、第3の実施形態と同様に、実観測情報及び仮想観測情報が2D(二次元)の画像データである場合に、これらを占有率に変換して比較する場合の例を示す。ただし、この場合も、実観測情報及び仮想観測情報として3D(3次元)データを用いてもよい。なお、図12において、占有率の表現、占有または非占有の図示は、第3の実施形態の図9と同様である。ただし、本実施形態では、占有率に変換する際の解像度、すなわち格子サイズを変化させる。具体的には、最初は格子サイズが大きい場合の評価値、すなわち占有率の差異に基づいて、未知状態の更新を粗く行い、評価値が小さくなってきたら、すなわち実観測情報と仮想観測情報との画像データの差異が少なくきたら、格子サイズを小さくして、未知状態の更新を継続する反復(イタレーション)を行う。なお、格子サイズの変更方法は特に制限されず、例えば、前の反復における評価値と現在の評価値との比に基づいて設定したり、後述するサンプルの受容(アクセプト)される割合に基づいて設定したりすることができる。
【0120】
このようなイタレーション処理は、図6に示した観測情報評価処理フローにおける、ステップS28の比較処理からステップS30の評価処理と合わせて行われる。つまり、ステップS28の比較処理において設定した格子サイズで、ステップS30の評価処理において占有率の差異が評価基準を満たせば、格子サイズを小さくして、ステップS28の比較処理からステップS30の評価処理を行う。このとき、ステップS30において、評価値が評価基準を満たさなければ、ステップS31からの処理を繰り返す。そして、格子サイズを小さくしても、評価値が連続で評価基準を満たせば、処理を終了する。この連続で評価基準を満たす回数は、未知状態であるカメラの位置姿勢の精度に応じて決めてよく、限定しない。
【0121】
ここで、イタレーションにより、格子サイズを徐々に小さくして比較する理由を説明する。本実施形態の目的は、未知状態、すなわち対象装置11であるカメラの位置姿勢を求めることである。その位置姿勢が正しい状態では、図12に示した、実観測情報と仮想観測情報とが一致する。言い換えると、式2で示される互いの環境における画像データ上の特徴点X間の変換座標の誤差(|u-u|)が0(ゼロ)に近づくほど、求める位置姿勢が正しい状態となる。したがって、第3の実施形態と同様に、占有率の差異に基づいて、未知状態であるカメラ(対象装置11)の位置姿勢を更新すればよい。ただし、本実施形態のキャリブレーションの場合、評価値である占有率の差異は、1次元の定量値であるのに対して、カメラの位置姿勢は、少なくとも6次元の値、つまり少なくとも6つのパラメータがある。そのため、カメラの位置姿勢の推定では、正しい位置姿勢のパラメータに近づくように更新できる、適切かつ効率的な各パラメータの変更の幅を決定することが困難である。ここで占有率の差異は、占有されている格子のうちで、一致していない数(割合)、すなわち異なる占有格子の数を指す。
【0122】
例えば、図12に示すように、3×3の格子サイズ大(上段)では、カメラ(仮想対象装置33)の位置姿勢(推定結果)がカメラ(対象装置11)とズレている、すなわち、式1で示されるカメラ行列ZaとZsとが異なるため、実観測情報と仮想観測情報とに差異が生じている。この例では、実観測情報における占有された格子と、仮想観測情報における占有された格子とを比較して、占有された格子が空間的に一致していない個数は5個(差異の割合5/9)である。そのため、格子サイズ大において、占有率の差異がある基準を満たすまで、更新部21は、未知状態を更新、または、更新の指示をして、ステップS25~ステップS31を繰り返す。なお、ここで基準は、後述する許容範囲であり、詳細は後述する。
【0123】
次いで、格子サイズ大において、占有率の差異が基準を満たすと、更新部21は、格子サイズを小さくする。ここでは、格子サイズを4×4の中とする。そして、格子サイズ大と同様に、格子サイズ中において、占有率の差異が評価基準を満たすまで、更新部21は、未知状態を更新、または、更新の指示をして、比較処理、及び、評価処理を繰り返す。この時点で、図12の格子サイズ中(中段)に示すように、カメラ(仮想対象装置33)の位置姿勢(推定結果)とカメラ(対象装置11)とのズレが、格子サイズ大(上段)に示すズレよりも小さくなっている。その結果、実観測情報における占有された格子と、仮想観測情報における占有された格子と、のうちで空間的に一致していない個数は4個(差異の割合4/16)である。すなわち、差異の割合は小さくなっている。
【0124】
さらにカメラの位置姿勢の推定結果のズレを小さくするために、更新部21は、格子サイズを6×6の小とする。このときの実観測情報における占有された格子と、仮想観測情報における占有された格子のうちで一致していない個数は3個(差異の割合3/36)である。格子サイズ小において、占有率の差異が基準を満たすまで、更新部21は、未知状態を更新、または、更新の指示をして、ステップS25~ステップS31を繰り返す。なお、評価基準は、各格子サイズにおいて、それぞれ異なる値である。
【0125】
ここで、未知状態、すなわちカメラの位置姿勢の更新は、例えば、上述した勾配法により、カメラの位置姿勢のパラメータのうち感度の高いパラメータを更新するようにしてもよい。
【0126】
このように、格子サイズを変化させながらイタレーションを行うことより、推定結果が大きく外れた解や局所解に陥ることを防ぐことができる。なお、最終的に求まる位置姿勢の精度は、最終的な格子サイズに依存する。そのため、必要な位置姿勢の精度に応じて、格子サイズは設定されてもよい。なお、この解像度、または、格子サイズを変化させる方法は、例示であって、限定されない。
【0127】
次に、上述したカメラの位置姿勢を推定する方法の他の例として、カメラの位置姿勢を表すパラメータを確率的に表現して推定する方法について説明する。この方法は、評価値が上述したような占有率の差異のように、低次元である場合に、高次元のパラメータを推定する手法として適した手法である。
【0128】
カメラの位置姿勢を表すパラメータをθ(位置姿勢パラメータθ)、格子サイズを表すパラメータをφ(格子サイズφ)、占有率の差異をρ、その差異が満たすべき許容範囲(トレランス)をε(許容範囲ε)とすると、占有率の差異ρが許容範囲εを満たすときの位置姿勢パラメータθの分布は、次式の条件付き確率で表すことができる。
【0129】
【数3】
【0130】
この手法は、ABC(Approximate Bayesian Computation:近似ベイズ計算)と呼ばれる手法をベースとしており、一般的なベイズ統計の手法で尤度の値が計算できない場合の近似的手法として使われる。すなわち、この手法は、本実施形態のような場合に適している。なお、上記した手法は、推定方法の例であって、これに限らない。
(位置姿勢パラメータθの推定処理)
式3に基づく位置姿勢パラメータθの具体的な推定方法について、図13に処理フローの例を示して説明する。図13は、第4の実施形態における、位置姿勢パラメータθの推定処理を示すフローチャートである。以下では、許容範囲εを徐々に小さくしながら目標の分布に近づける方法として、逐次モンテカルロ(SMC: Sequential Monte Carol)法、または、粒子フィルタ(Particle filter)と呼ばれる手法を組み合わせた方法について述べる。ただし、これは方法の一例であって、これに限らない。以下では、パラメータθの確率分布からサンプリングされた、あるパラメータθをサンプル(粒子)と表現する。占有率の差異ρは、式3に示すように、位置姿勢パラメータθと、格子サイズφとで決まる。ただし、θは被推定値(推定結果)で、φは所与とする。
【0131】
まず、実環境推定部15は、位置姿勢パラメータθの初期分布、サンプルの重み、格子サイズφ、及び、許容範囲εの初期値を設定する(ステップS41)。なお、サンプルの重みは、全サンプルの総和で1となるように規格化されているとする。また、位置姿勢パラメータθの初期分布は、例えば、ある想定される範囲の一様分布としてもよい。初期のサンプルの重みは、全て等しい、すなわちサンプル数(粒子数)の逆数としてもよい。格子サイズφと許容範囲εとは、対象装置11、すなわちカメラの解像度等や被制御装置41の大きさ等に基づき、適宜設定してもよい。
【0132】
次に、実環境推定部15は、所与のサンプルの重みと、格子サイズφとの下で、確率分布、つまり位置姿勢パラメータθの提案分布を生成する(ステップS42)。提案分布は、例えば、分布を正規分布(ガウス分布)と仮定し、その分布の平均値をサンプルの平均値、分散共分散行列をサンプルの分散から、定めることができる。
【0133】
そして、実環境観測部14は、提案分布に従って、複数のサンプルを取得し、サンプルごとに対象装置11から実観測情報を取得する(ステップS43)。具体的には、実環境観測部14は、サンプルごとに、位置姿勢パラメータθに基づいて、対象装置11から実観測情報を取得し、当該実観測情報を式1に基づいて座標変換を行う。つまり、実環境観測部14は、サンプルごとに、カメラ座標の実観測情報から、ロボットアームの実観測情報に変換する。
【0134】
次に、仮想環境設定部16は、実環境観測部14により取得されたサンプルごとに、位置姿勢パラメータθに基づいて、仮想対象装置33の位置姿勢を設定する(ステップS44)。仮想環境観測部17は、サンプルごとに仮想対象装置33から仮想観測情報を取得する(ステップS45)。具体的には、仮想環境観測部17は、サンプルごとの位置姿勢パラメータθが設定された仮想対象装置33から、仮想観測情報を取得し、当該仮想観測情報を式1に基づいて座標変換を行う。つまり、仮想環境観測部17は、サンプルごとに、カメラ座標の仮想観測情報から、ロボットアームの仮想観測情報に変換する。
【0135】
そして、比較部18は、実観測情報と仮想観測情報とを、それぞれ所与の格子サイズφの下で占有率に変換し、占有率の差異ρを算出する(ステップS46)。ここで、評価部20は、占有率の差異ρが許容範囲εに入っているか否かを判定する(ステップS47)。
【0136】
許容範囲εに入っている場合(ステップS47、YES)、評価部20は、そのサンプルを受容(アクセプト)して、ステップS48の処理に進む。許容範囲εに入っていない場合(ステップS47、NO)、評価部20は、受容(アクセプト)されなかった、サンプルを棄却(リジェクト)し、提案分布から、棄却したサンプルに応じて、再サンプリングする(ステップS48)。つまり、評価部20は、サンプルが棄却された場合、実環境推定部15に再サンプリングを行うように依頼する。そして、評価部20は、この操作を全サンプルの占有率の差異ρが許容範囲εに入るまで繰り返す。ただし、この繰り返し処理では、ステップS48の再サンプリングした後、ステップS43では、サンプルの取得は行われない。なお、実用上、全てのサンプルが許容範囲に入るまで繰り返すと時間的な問題を生じる場合は、規定のサンプリング回数で打ち切る(タイムアウト)する処理を行う、または規定のサンプリング回数以上で格子サイズの値を大きくしたり、許容範囲の値を大きくしたりする、といった受容されやすくするような対処を加えても良い。
【0137】
更新部21は、占有率の差異ρに基づいてサンプルの重みを更新し、位置姿勢パラメータθも更新する(ステップS49)。サンプル重みの更新は、占有率の差異ρが小さい、すなわち確からしいサンプルの重みを大きくするために、例えば、占有率の差異ρの逆数に基づいて設定してもよい。ここでも、サンプルの重みは、全サンプルの総和で1となるように規格化する。
【0138】
ここで、許容範囲εが評価基準を満たさなければ(閾値以下でなければ)(ステップS50)、更新部21は、格子サイズφと許容範囲εとを所定の割合で小さくする(ステップS51)。ここの場合、評価基準(閾値)は、許容範囲εを徐々に小さくしていった先の最小値を規定する。式3の許容範囲εが十分に小さければ、推定されるパラメータθの精度も高くなるが、アクセプトされる割合が低くなるため、推定が非効率となることがある。そこで、許容範囲εの値を大きい値から所定の割合で小さくしながら、上記の推定を繰り返し行う方法(イタレーション)を適用することができる。すなわち、式3の許容範囲εは、イタレーションの回数をi(i=1、2、・・・、N:Nは自然数)とすると、ε_1>ε_2>・・・>ε_Nというような大小関係となり、最後のイタレーションの許容範囲ε_Nを、ここでの評価基準(閾値)とし、この値に達したときに処理を終了する。
【0139】
格子サイズφと許容範囲εとを小さくする割合は、対象装置11、すなわちカメラの解像度や被制御装置41の大きさ、及び、サンプルの受容される割合など、上記のフローの結果に基づいて、適宜設定してもよい。
【0140】
以上より、最終的に許容範囲εが評価基準を満たす(閾値以下となった)ときの更新された位置姿勢パラメータθが、望ましいカメラの位置姿勢となる。ただし、上記の設定や推定方法はあくまでも例示であって、この限りではない。
【0141】
上記の図13に示した、位置姿勢パラメータθの推定処理フローによれば、効率の良い計算、すなわち少ない計算リソース、または、計算時間で、対象装置11の評価を高精度に行うことができる。言い換えると、本実施形態は、キャリブレーションを高精度に行うシステムを提供することができる。その理由は、一般に、式3に基づくABCの手法では、許容範囲εが大きいと、サンプルが受容され易いため計算効率は上がるが、推定精度が低下する。逆に、許容範囲εが小さいと、ABCの手法では、サンプルが受容され難いため計算効率は下がるが、推定精度が向上する。ABCの手法は、このように、計算効率と推定精度とにトレードオフの関係がある。
【0142】
そこで、本実施形態の推定処理では、図13に示すように、許容範囲εを大きい値から開始して徐々に小さくすると同時に、占有率の差異ρに寄与する格子サイズφも、同様に大きい値から開始して徐々に小さくし、かつサンプルの重みを占有率の差異ρに基づいて設定する、という処理フローを用いた。
【0143】
その結果、本実施形態の推定処理は、推定の初期に、大きい許容範囲εと格子サイズφの下で、サンプルの受容率を高めて、推定結果である推定値を粗く絞り込み、最終的に、許容範囲εと格子サイズφとを小さくすることで、推定値を高い精度で算出することができる。これにより、上記トレードオフが解消する。
【0144】
また、本実施形態のキャリブレーションは、公知の手法で必須となるARマーカーなどの標識を用いる必要がない。これは、本開示の実環境と仮想環境とに基づく評価方法を応用しているからである。具体的には、公知の手法では、被制御装置の基準点と、その基準点を撮像装置で撮影した基準点と、を関係付ける必要がある。そのため、公知の手法では、その関係付けに、何らかの標識、または、特徴点が必要となる。そのような標識を予め設置したり、特徴点を導出したりすることは、事前の設定SI工数を増やすことになると同時に、設置方法や特徴点の選び方に依存して、精度の低下を招く可能性がある。
(第4の実施形態の効果)
第4の実施形態によれば、対象装置に関する異常状態を効率良く判定できることに加えて、自律的に未知状態である対象装置11の位置姿勢を精度良く算出することができる。その理由は、評価部20が、評価値が評価基準を満たすか否かを評価し、評価基準が満たされない場合、更新部21が、推定結果、または、制御計画の少なくとも一方を、評価値に基づいて更新することにより、評価値が評価基準を満たすまで、観測情報評価処理が繰り返されるためである。
【0145】
つまり、実観測情報と仮想観測情報との比較において、占有率の差異に着目することで、対象装置であるカメラの未知状態、すなわち位置姿勢の確からしさを評価し、かつ、位置姿勢を確からしい方向に更新することで、精度良く位置姿勢を算出することができる。
【0146】
また、第4の実施形態によれば、上述のように、基準点(特徴点)を被制御装置上に設定することで、任意の制御計画に基づいて、被制御装置を動作させながら、実環境、及び、仮想環境における基準点を互いに関連付けることができる。これにより、本実施形態のキャリブレーションは、被制御装置の動作空間の任意の場所で、互いの環境における基準点を関連付けできることから、推定結果の空間的な偏りや誤差を抑制した、基準点の関連付けができる。したがって、評価対象の対象装置や被制御装置について、標識設置等のハードウェア的な設定や、異常状態を検知するためのソフトウェア的な条件を設定することなく、自動的に観測装置の座標系と、ロボットアームの座標系と、を関連付けることが可能な、キャリブレーションシステムを提供することができる。
(変形例)
ここまでは、キャリブレーションの対象となる被制御装置41、すなわちロボットアームを静止させている場合、またはタスクなど任意の動作をさせている際の、受動的(パッシブ)なキャリブレーションについて説明した。以下では、第4の実施形態の変形例として、評価値などに基づいて、能動的(アクティブ)にロボットアームの位置姿勢を変化させる方法の例を示す。
【0147】
図14に、評価基準を満たす割合に基づいて、ロボットアームの位置姿勢を変化させて本実施形態のキャリブレーションを行う例を示す。図14は、第4の実施形態の変形例における、キャリブレーションの方法を説明する図である。
【0148】
図14に示すように、横軸は、反復(イタレーション)の回数を表し、縦軸は、推定する位置姿勢パラメータ(未知状態)を1次元で模式的に表す。各位置姿勢パラメータは、サンプル(粒子)で表され、それぞれの粒子が6次元の位置姿勢パラメータの情報を有している。また、各サンプルは、規定のサンプル個数ごとにグループに分けられ、それぞれのグループは、左に示すロボットアームの状態に対応付いている。図14の例では、あるグループAに属するサンプルは、ロボットアームの状態Aにてサンプリングされ、あるグループBに属するサンプルは、ロボットアームの状態Bにてサンプリングされる。
【0149】
前述したとおり、理想的には、全てのサンプルが、受容(アクセプト)されて、許容範囲を満たすことである。しかしながら、実用上、特定の回数でサンプリングを打ち切った場合には、許容範囲を満たさないサンプル、すなわち適切ではない位置姿勢パラメータのサンプルが残ってしまう。このようなサンプルは、次のイタレーションでは破棄するように重みを小さく設定し、代わりに許容範囲を満たしたサンプルを複製することができる。なお、粒子フィルタではこのような操作をリサンプリングと呼ぶ。
【0150】
ここで、ロボットアームの状態に対応したグループごとに、許容範囲を満たす割合、または満たさない割合について考える。例えば、あるグループBの状態Bで許容範囲を満たさないサンプルが多かったとすると、その状態Bに対して確からしい位置姿勢パラメータの値が十分に得られないこととなる。そこで、次のイタレーションにて、例えば、許容範囲を満たしたサンプルが多かったグループAのサンプルを、グループBのサンプルとして割当を変更し、状態Bに対して評価を行ってもよい。図14に示すように、イタレーションするにつれて、許容範囲を満たしているサンプルの割合が増えていき、許容範囲を満たしていないサンプルの割合が減っていく。この場合、次のイタレーションでは、許容範囲を満たす割合が多いグループから、より多くのサンプルを割り当ててサンプリングの回数を増やすことで、確からしい位置姿勢パラメータを得られ易くなる。
【0151】
このような処理を導入することで、イタレーションが進むと、図14の右端に示すように、それぞれのグループで許容範囲を満たしたサンプルが、特定の値に近づいていくことが期待できる。これは、グループ、すなわちロボットアームの位置姿勢に依存しない許容範囲を満たすサンプルが得られることを意味する。したがって、ロボットアームの位置姿勢に依存しない、つまり空間的な依存性のない、大域的な推定値が得られる、という効果がある。逆に、このような処理が無い場合は、特定のロボットアームの位置姿勢が適切であっても、ロボットアームの位置姿勢が変わると適切ではない、すなわちキャリブレーションがズレているような局所的な推定となる場合がある。
【0152】
(第5の実施形態)
(システム構成)
次に、第5の実施形態として、第2の実施形態に基づく他の具体例について説明する。
【0153】
第5の実施形態は、対象装置を強化学習するシステムの例である。この場合、第3の実施形態と同様に、評価対象となる対象装置11がロボットアームであり、観測装置31がカメラである。図15は、第5の実施形態における、強化学習システム130の構成を示す図である。
【0154】
図15に示す強化学習システム130では、第3の実施形態と同様の、対象装置11であるロボットアーム、対象装置11に関する実観測情報を得る観測装置31、ピッキング対象物32、及び、情報処理装置12に加えて、強化学習装置51を備える。以下、対象装置11の評価値に基づいて、タスクの一例であるピッキングの強化学習を行う場合を例として説明する。ただし、本実施形態では、タスクについて制限されない。
(動作)
強化学習システム130では、強化学習装置51を除いて、第3の実施形態と同様の構成によって、タスク、すなわち、ピッキングという動作の後、実観測情報と仮想観測情報とが、異なる状態か否かを評価値として得ることができる。強化学習システム130は、この評価値を強化学習の枠組みにおける報酬値とする。
【0155】
具体的には、強化学習システム130は、実環境と仮想環境との差異が無い状態、すなわち、実環境において、制御計画に基づいた仮想環境における理想的な動作と同じように動作することができた場合、高い報酬を設定する(または、低いペナルティを設定する)とする。一方、強化学習システム130は、第3の実施形態で示したように、実環境でピッキングに失敗する、といった実環境と仮想環境とに差異が生じた場合、低い報酬を設定する(または、高いペナルティを設定する)とする。ただし、この報酬の設定は例示であって、強化学習システム130は、例えば、実環境と仮想環境との差異の定量情報に基づいて、報酬またはペナルティの値を連続値として表現してもよい。また、強化学習システム130は、タスクの前後における評価ではなく、経時的な対象装置11、すなわちロボットアームの動作状態に応じて評価を行い、時系列の報酬またはペナルティの値を設定してもよい。報酬またはペナルティの設定は、上記に制限されない。
【0156】
以下、強化学習のフレームワークの一例として、あるパラメータθでパラメタライズされた確率的な動作指針(方策、またはポリシー)π_θを学習する場合の例について説明する。なお、このパラメータθは、上述したような位置姿勢パラメータθと無関係である。また、以下の処理は、追加された強化学習装置51、または更新部24で行われてもよい。ここでは、方策(ポリシー)π_θによって決まる動作の評価値Jを、上記のように設定された報酬値Rに基づいて算出する。すなわち
【0157】
【数4】
【0158】
と表されるとする。この評価値Jの勾配と、ある係数(学習率)αによって、方策(ポリシー)π_θを次式で表すように更新することができる。
【0159】
【数5】
【0160】
したがって、評価値Jが高くなる方向、すなわち報酬が高くなる方向に、方策(ポリシー)π_θを更新することができる。なお、他の代表的な強化学習の手法として、価値反復に基づく手法や、深層学習(ディープラーニング)を使った手法(DQN:Deep Q-Network)なども適用することができ、本開示では制限されない。
【0161】
まとめると、強化学習装置51は、実環境と仮想環境との差異に応じて報酬(または、ペナルティ)を設定し、設定した報酬が高くなるよう対象装置11の動作についての方策を作成する。強化学習装置51は、作成した方策に従い、対象装置11の動作を決定し、対象装置11が該動作を実行するよう制御する。
(第5の実施形態の効果)
強化学習装置51を備えていない第3の実施形態のピッキングシステム110は、現在の状態を観測して異常状態を検知し、未知状態、または、制御計画の少なくともいずれかを更新して、その異常状態を解消できる。しかしながら、ピッキングシステム110は、異常状態の解消が、異常状態が検知された後、つまり事後対応となるため、異常状態が一度も、または、少数の試行も許されない場合に、採用することができない。
【0162】
それに対して、本実施形態によれば、確率的な方策(ポリシー)関数π_θ(a|s)は、状態s(ロボットアームや、カメラ等を含む環境の状態)が与えられたときの、アクション(動作)aの事後分布を表し、その決定に関わるパラメータθを報酬が高くなるように、すなわち適切な動作となるように更新する。なお、状態sには、実環境推定部15で推定される未知状態を含めることもできる。したがって、観測される状態の変化も考慮したパラメータθが学習される。すなわち、異なる環境の状態であっても、学習されたパラメータθを用いることで、最初から報酬の高い、言い換えると、異常状態が発生しない動作を実行できる。つまり、例えば、第3の実施形態のピッキング動作の場合、実観測情報、または、推定結果と、ピッキングを失敗しないようなアプローチ位置や角度の関係とを、一度学習すれば、以降は初回から失敗せずにピッキングを行うことができる。
【0163】
一般に強化学習においては、上述したように、動作に対する評価、すなわち報酬の値を適切に得ることが重要であって、特に、実環境で報酬の値を適切に得ることは容易ではない。例えば、単純に観測装置31で観測された実観測情報(撮像データ)だけに基づくと、第3の実施形態と同様に、撮像データから何らかの処理によって、所望の動作の成否、すなわちタスクの成否を判定し、報酬の値を算出しなければならない。
【0164】
しかしながら、撮像データに基づく動作の成否の判定は、アルゴリズムに依存し、さらに判定時に誤りが入る可能性がある。それに対して、本実施形態の対象装置に関する評価方法によれば、実環境と仮想環境との差異に基づいて、報酬の値を一意に求めることができる。また、評価方法は、動作を判定する基準やルールを事前に設定する必要がない。したがって、膨大な試行による報酬値獲得を必要とする強化学習では、その獲得した報酬値の、確からしさ(精度)、及び、信頼性が高く、また、事前設定が無い点で、大きな効果となる。よって、本実施形態によれば、評価対象の対象装置について、評価のため基準やルールを事前に設定していない場合でも、精度及び信頼性の高い対象装置についての評価値を得ることで、効率的な強化学習が可能な、強化学習システムを提供することができる。
(第6の実施形態)
次に、第6の実施形態について説明する。
【0165】
図16は、第6の実施形態における、情報処理装置1の構成を示すブロック図である。情報処理装置1は、情報生成部2、及び、異常判定部3を含む。情報生成部2、及び、異常判定部3は、それぞれ、本開示の情報生成手段、及び、異常判定手段の一実施形態である。また、情報生成部2は、第1の実施形態の、実環境観測部14、実環境推定部15、仮想環境設定部16、及び、仮想環境観測部17に相当し、異常判定部3は、第1の実施形態の、比較部18に相当する。また、情報生成部2は、第2の実施形態の、実環境観測部14、実環境推定部15、仮想環境設定部16、仮想環境観測部17、及び、制御部19に相当し、異常判定部3は、第2の実施形態の、比較部18、評価部20、及び、更新部21に相当する。
【0166】
情報生成部2は、評価対象の対象装置が存在する実環境を模擬した結果を観測した仮想観測情報を生成する。異常判定部3は、生成した仮想観測情報と、実環境を観測した実観測情報と、の差異に応じて異常状態を判定する。
【0167】
(第6の実施形態の効果)
第6の実施形態によれば、対象装置に関する異常状態を効率良く判定できる。その理由は、情報生成部2が、評価対象の対象装置が存在する実環境を模擬した結果を観測した仮想観測情報を生成し、異常判定部3が、生成した仮想観測情報と、実環境を観測した実観測情報と、の差異に応じて異常状態を判定するためである。
(ハードウェア構成)
上述した各実施形態において、情報処理装置12や対象装置11の各構成要素は、機能単位のブロックを示している。各装置の各構成要素の一部又は全部は、コンピュータ500とプログラムとの任意の組み合わせにより実現されてもよい。このプログラムは、不揮発性記録媒体に記録されていてもよい。不揮発性記録媒体は、例えば、CD-ROM(Compact Disc Read Only Memory)やDVD(Digital Versatile Disc)、SSD(Solid State Drive)、等である。
【0168】
図17は、コンピュータ500のハードウェア構成の例を示すブロック図である。図16を参照すると、コンピュータ500は、例えば、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503、プログラム504、記憶装置505、ドライブ装置507、通信インタフェース508、入力装置509、出力装置510、入出力インタフェース511、及び、バス512を含む。
【0169】
プログラム504は、各装置の各機能を実現するための命令(instruction)を含む。プログラム504は、予め、ROM502やRAM503、記憶装置505に格納される。CPU501は、プログラム504に含まれる命令を実行することにより、各装置の各機能を実現する。例えば、情報処理装置12のCPU501がプログラム504に含まれる命令を実行することにより、実環境観測部14、実環境推定部15、仮想環境設定部16、仮想環境観測部17、比較部18、制御部19、評価部20、及び、更新部21の機能を実現する。また、例えば、情報処理装置12のRAM503が、実観測情報、及び、仮想観測情報のデータを記憶してもよい。また、例えば、情報処理装置12の記憶装置505が、仮想環境、及び、仮想対象装置13のデータを記憶してもよい。
【0170】
ドライブ装置507は、記録媒体506の読み書きを行う。通信インタフェース508は、通信ネットワークとのインタフェースを提供する。入力装置509は、例えば、マウスやキーボード等であり、オペレータ等からの情報の入力を受け付ける。出力装置510は、例えば、ディスプレイであり、オペレータ等へ情報を出力(表示)する。入出力インタフェース511は、周辺機器とのインタフェースを提供する。バス512は、これらハードウェアの各構成要素を接続する。なお、プログラム504は、通信ネットワークを介してCPU501に供給されてもよいし、予め、記録媒体506に格納され、ドライブ装置507により読み出され、CPU501に供給されてもよい。
【0171】
なお、図17に示されているハードウェア構成は例示であり、これら以外の構成要素が追加されていてもよく、一部の構成要素を含まなくてもよい。
【0172】
情報処理装置12や対象装置11の実現方法には、様々な変形例がある。例えば、情報処理装置12は、構成要素毎にそれぞれ異なるコンピュータとプログラムとの任意の組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つのコンピュータとプログラムとの任意の組み合わせにより実現されてもよい。
【0173】
また、各装置の各構成要素の一部または全部は、プロセッサ等を含む汎用または専用の回路(circuitry)や、これらの組み合わせによって実現されてもよい。これらの回路は、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【0174】
また、各装置の各構成要素の一部又は全部が複数のコンピュータや回路等により実現される場合、複数のコンピュータや回路等は、集中配置されてもよいし、分散配置されてもよい。
【0175】
以上、実施形態を参照して本開示を説明したが、本開示は上記実施形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。また、各実施形態における構成は、本開示のスコープを逸脱しない限りにおいて、互いに組み合わせることが可能である。
【符号の説明】
【0176】
10、 対象評価システム
11 対象装置
12、22 情報処理装置
13、33 仮想対象装置
14 実環境観測部
15 実環境推定部
16 仮想環境設定部
17 仮想環境観測部
18 比較部
19 制御部
20 評価部
21 更新部
31 観測装置
32 ピッキング対象物
34 仮想観測装置
35 仮想対象物
41 被制御装置
42 仮想被制御装置
50 強化学習システム
51 強化学習装置
110 ピッキングシステム
120 キャリブレーションシステム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17