(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023018893
(43)【公開日】2023-02-09
(54)【発明の名称】学習装置及びロボット制御システム
(51)【国際特許分類】
B25J 13/00 20060101AFI20230202BHJP
G06N 20/00 20190101ALI20230202BHJP
【FI】
B25J13/00 Z
G06N20/00
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021123255
(22)【出願日】2021-07-28
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】伊藤 洋
(72)【発明者】
【氏名】一藁 秀行
(72)【発明者】
【氏名】山本 健次郎
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS04
3C707AS21
3C707HS27
3C707KS03
3C707KS07
3C707KS21
3C707KS35
3C707KS37
3C707KT01
3C707KT04
3C707LW12
3C707LW15
3C707MT01
(57)【要約】
【課題】ロボットに対して新たに入力された動作指示が明確でなくてもロボットに何らかの動作を行わせることが可能な学習装置を提供する。
【解決手段】学習装置40は、目的動作に合わせてモデル定義部41から読み出したモデルを用いて、計測情報と、撮影画像と、指示情報とを学習する学習部42と、学習部42が学習したモデルへの重みを保存する重み保存部43と、ロボット10への指示情報30が新たに入力されると、モデル定義部41から読み出したモデルに重み保存部43から読み出した重みをかけ、新たに計測された計測情報と、新たに撮影された撮影画像と、新たに入力されたロボット10へ指示情報30とをモデルに適用して指示情報の意図を予測し、かつロボット10の目的動作、及び目的動作の対象となる物体を推論し、予測した指示情報の意図に合わせた目的動作をロボット10に行わせるための駆動指令を予測する推論部44を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ロボットの目的動作に合わせたモデルが定義されるモデル定義部と、
前記ロボットの目的動作に合わせて前記モデル定義部から読み出した前記モデルを用いて、前記ロボットの動作が計測された計測情報と、前記ロボットによる動作対象である物体が撮影された撮影画像と、前記ロボットへの動作指示が言語化された指示語を含む指示情報とを学習する学習部と、
前記学習部が学習した前記モデルへの重みを保存する重み保存部と、
前記ロボットへの指示情報が新たに入力されると、前記モデル定義部から読み出した前記モデルに前記重み保存部から読み出した前記重みをかけ、新たに計測された計測情報と、新たに撮影された撮影画像と、新たに入力された前記ロボットへの指示情報とを前記モデルに適用して前記指示情報の意図を予測し、かつ前記ロボットの目的動作、及び前記目的動作の対象となる物体を推論し、予測した前記指示情報の意図に合わせた前記目的動作を前記ロボットに行わせるための駆動指令を予測する推論部と、を備える
学習装置。
【請求項2】
前記学習部は、
前記計測情報、前記撮影画像及び前記指示情報を学習データとして蓄積する学習データ蓄積部から読み出した前記学習データに基づいて、前記目的動作が教示される前記ロボットの動作を学習する動作学習部と、
前記学習データ蓄積部から読み出した前記指示情報と、前記目的動作が教示される前記ロボットの動作が計測された前記計測情報との対応を学習した学習結果に基づいて、前記指示情報の意図を予測する指示学習部と、
前記指示学習部による前記指示情報の学習結果を前記動作学習部で共有する共有部と、を備える
請求項1に記載の学習装置。
【請求項3】
前記動作学習部は、
前記学習データ蓄積部から読み出した前記学習データに含まれる前記撮影画像から前記動作対象である前記物体の形状及び位置を認識する物体認識部と、
前記共有部から取得する前記指示情報の学習結果と、前記物体認識部から時系列で入力される前記物体の形状及び位置に基づいて、前記物体認識部が前記物体の形状及び位置を認識してから所定時間後の前記物体の位置を学習して予測し、前記指示情報の学習結果に基づいて前記ロボットへの指令を学習して予測する時系列学習部と、
前記時系列学習部により予測された所定時間後の前記物体の位置に基づいて、前記指示情報で動作指示が行われた物体を推定する指示対象推定部と、を備える
請求項2に記載の学習装置。
【請求項4】
前記時系列学習部は、所定時間後の前記物体の位置の重要度を学習して予測し、
前記指示対象推定部は、予測された所定時間後の前記物体の位置、及び前記重要度に基づいて前記撮影画像に含まれる前記物体のヒートマップを作成し、前記ヒートマップに前記モデルを適用して、所定時間後に撮影されると予測した予測画像を出力する
請求項3に記載の学習装置。
【請求項5】
前記時系列学習部は、前記共有部から取得した前記指示情報の学習結果に基づいて、所定時間後の前記物体の位置、及び重要度、並びに前記ロボットの目的動作を変更する
請求項4に記載の学習装置。
【請求項6】
前記推論部は、前記時系列学習部により予測された前記重要度が、他に予測された前記重要度よりも大きい前記物体に注目して、前記物体を前記目的動作の対象とするように前記駆動指令を出力する
請求項4に記載の学習装置。
【請求項7】
前記ヒートマップ、及び前記予測画像、及び予測された前記ロボットへの指令のうち、少なくとも一つが表示装置に表示可能に出力される
請求項4に記載の学習装置。
【請求項8】
前記学習部は、
前記計測情報、前記撮影画像及び前記指示情報を学習データとして蓄積する学習データ蓄積部から読み出した前記学習データに基づいて、前記目的動作が教示される前記ロボットの動作を学習する動作学習部と、
入力される前記指示情報を圧縮して、圧縮した前記指示情報に基づいて、前記指示情報の意図を予測する指示学習部と、を備え、
前記指示学習部は、前記指示情報の意図と、前記目的動作が教示される前記ロボットの動作により計測される前記計測情報との対応を学習した学習結果を前記動作学習部と共有する共有部を有する
請求項1に記載の学習装置。
【請求項9】
目的動作に従って動作するロボットと、
前記ロボットの動作が計測された計測情報と、前記ロボットによる動作対象である物体が撮影された撮影画像と、前記ロボットへの動作指示が言語化された指示語を含む指示情報と、を蓄積する記憶装置と、
前記記憶装置から読み出した情報に基づいて、前記ロボットに前記目的動作を行わせるための駆動指令を出力する学習装置と、を備えるロボット制御システムであって、
前記学習装置は、
前記目的動作に合わせたモデルが定義されるモデル定義部と、
前記目的動作に合わせて前記モデル定義部から読み出した前記モデルを用いて、前記計測情報と、前記撮影画像と、前記指示情報とを学習する学習部と、
前記学習部が学習した前記モデルへの重みを保存する重み保存部と、
前記ロボットへの指示情報が新たに入力されると、前記モデル定義部から読み出した前記モデルに前記重み保存部から読み出した前記重みをかけ、新たに計測された計測情報と、新たに撮影された撮影画像と、新たに入力された前記ロボットへの指示情報とを前記モデルに適用して前記指示情報の意図を予測し、かつ前記ロボットの目的動作、及び前記目的動作の対象となる物体を推論し、予測した前記指示情報の意図に合わせた前記目的動作を前記ロボットに行わせるための駆動指令を予測する推論部と、を備える
ロボット制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置及びロボット制御システムに関する。
【背景技術】
【0002】
例えば、製造・建設現場などにおいて、人とロボットが協調して作業するためには、ロボットが人の作業指示や作業手順書などを適切に理解し、動作できるようにする技術が必要である。しかし、ロボットを操作する人がロボットに対する全ての指令をプログラミングするには、膨大な開発工数や高度な専門知識が必要である。そこで、従来から人の指示をロボットが解釈できるようにするための技術が検討されていた。
【0003】
特許文献1には、「脚式移動ロボットは、比較的長い教示動作やその他の行動を分節化するとともに、分節化された各動作を、音声認識などにより認識された入力シンボルと連想して記憶する。したがって、動作再生時においては、比較的長い動作パターンを容易に指示することができる。また、直接的には同一のものを学習していない行動であっても、音声指示により入力されたシンボルから連想していくことにより、指示により近い行動を発現することができる。」と記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、人とロボットが協調して作業するためには、ロボットが周囲の状況を正確に認識する技術に加え、人が発声する言語による指示や作業手順書に書かれた指示などをロボットが適切に理解し、指示対象物を推定する技術が必要である。近年の画像認識技術の向上により、ロボットが周囲の状況や多様な物体を高精度に認識することが可能になった。
【0006】
しかし、画像認識技術を用いた手法では、ロボットが既に学習したラベルが付された物体しか認識できず、未学習ラベルの物体を認識することはできない。また、日常に存在する全ての物体に付するラベルを事前に学習することは現実的ではない。
【0007】
また、従来のロボット操作では、人による指示と、ロボットの動作とが1対1に対応していたため、ロボットは指示された物体を把持する動作を行っていた。しかし、人が一般的に用いる指示語には、未学習の単語や、抽象化された指示が含まれることが多い。例えば、「あれ取って」、「右の物取って」、「赤いの取って」のように、こそあど言葉(指示語)を用いて指示することが多い。このため、ロボットには、現在の状況や過去の経験に基づいて、指示された対象物を判断する能力が求められる。さらに、人が「あれ」や「右の物」と指示する指示対象物をロボットが認識するためには基準点が必要である。しかし、ロボットが画像中の物体を網羅的に認識する一般的な画像認識の手法で基準点を推定することは困難であった。
【0008】
ここで、工場などの環境でロボットが自律的に繰り返し作業するような状況を検討する。この工場では、ばら積みされた物体をロボットがアームで把持するランダムピッキングの作業が行われるものとする。この作業では、ロボットが物体を認識した順、又はロボットが掴み易い順に物体を把持する動作が行われることが多い。
【0009】
そして、赤色をした同一形状や類似形状の物体が複数置かれた状態で「赤いのを取って」のような曖昧な指示がされることを想定する。指示されたのが人であれば、その人は、複数の物体から指示の内容に合いそうな物体を1つ選んで掴むことができる。しかし、指示されたのがロボットであれば、指示の内容に合う物体を選ぶことができず、ロボットはどの物体を取ればよいか分からない。このようにロボットは、自律的に把持すべき物体を選べないので、ロボットが物体を把持するためのアームの軌道を計画すること、すなわちロボットの動作を確定することもできない。
【0010】
本発明はこのような状況に鑑みて成されたものであり、入力されたロボットへの指示が明確でなく、ロボットの動作対象とする物体が不明確な状況であっても、ロボットに何らかの動作を行わせることを目的とする。
【課題を解決するための手段】
【0011】
本発明に係る学習装置は、ロボットの目的動作に合わせたモデルが定義されるモデル定義部と、ロボットの目的動作に合わせてモデル定義部から読み出したモデルを用いて、ロボットの動作が計測された計測情報と、ロボットによる動作対象である物体が撮影された撮影画像と、ロボットへの動作指示が言語化された指示語を含む指示情報とを学習する学習部と、学習部が学習したモデルへの重みを保存する重み保存部と、ロボットへの指示情報が新たに入力されると、モデル定義部から読み出したモデルに重み保存部から読み出した重みをかけ、新たに計測された計測情報と、新たに撮影された撮影画像と、新たに入力されたロボットへの指示情報とをモデルに適用して指示情報の意図を予測し、かつロボットの目的動作、及び目的動作の対象となる物体を推論し、予測した指示情報の意図に合わせた目的動作をロボットに行わせるための駆動指令を予測する推論部と、を備える。
【発明の効果】
【0012】
本発明によれば、入力されたロボットへの指示が明確でなく、ロボットの動作対象とする物体が不明確な状況であっても、その指示の意図を予測して推論した何らかの目的動作をロボットに行わせることが可能となる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0013】
【
図1】ボトムアップ型とトップダウン型の2種類の注意機構を説明するための図である。
【
図2】本発明の第1の実施形態に係る学習装置を備えるロボットシステムの構成例を示すブロック図である。
【
図3】本発明の第1の実施形態に係るモデルの例を示すブロック図である。
【
図4】本発明の第1の実施形態に係るヒートマップの具体的な表示例を示す図である。
【
図5】本発明の第1の実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【
図6】本発明の第1の実施形態に係るロボットシステムで行われる動作教示処理の一例を示すフローチャートである。
【
図7】本発明の第1の実施形態に係るロボットシステムで行われる動作学習処理の一例を示すフローチャートである。
【
図8】本発明の第1の実施形態に係るロボットシステムで行われる動作生成処理の一例を示すフローチャートである。
【
図9】本発明の第2の実施形態に係るモデルの例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、本発明を実施するための形態について、添付図面を参照して説明する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
【0015】
[用語の定義]
まず、本明細書に記載されている用語の定義を説明する。
「センサデータ」とは、ロボットの各駆動部(アクチュエータ)の状態を計測するセンサ(関節角度、電流値、トルク値、触覚値、撮影画像等)の計測値や、ロボット外部に取り付けられ、周囲の状況を計測するセンサ(カメラやモーションキャプチャなど)の計測値である。
「学習データ」とは、ロボットに目的動作を教示した際の学習で用いられる一連のセンサデータであり、時系列に保存される。この学習データは、複数の時刻で計測されたセンサデータと、ロボットに対して行われた言語指示の指示情報とが対応付けられたデータである。
「目的動作」とは、ロボットに行わせる動作である。人の音声指示、又はテキスト入力等による指示情報30(後述する
図2を参照)によってロボットに目的動作が指示される。
【0016】
[本発明者による知見]
上述したように、機械学習は、これまで難しかった複雑な認識や識別を高精度に実現する方法として注目されている。そこで、本発明者は、機械学習を用いて、曖昧な指示からロボットの目的動作を予測し、予測した目的動作をロボットに行わせることが可能な学習装置を検討した。この学習装置の一例は、後述する
図2に学習装置40として示される。
【0017】
学習装置は、ロボットに教示された目的動作を学習することで、ロボットの周囲の環境が変化しても、ロボットに行わせる動作を自律的に生成することが可能である。従来のロボットシステムは、人の指示を理解する言語処理部と、ロボットの動作生成部とを、それぞれ個別に開発したものを統合した技術が多かった。この手法は、言語処理部で認識した単語と動作を一対一に対応させ、この対応関係をデータベースに記録することで、指示に基づいた動作を実現していた。ただし、この手法は、データベースに記録されていない指示が学習装置に入力された場合、学習装置がロボットの適切な動作を生成できないことに課題があった。
【0018】
上述した特許文献1に開示された技術では、動作生成部が、言語処理部により抽出された特徴量を基にロボットの動作を推定するものであった。しかし、例えば、赤色をした「同一形状」や「類似形状」の物体が複数置かれた状態で「赤いのを取って」と指示されると、ロボットはどれを取ればよいか分からず、動作を停止せざるをえなかった。
【0019】
ここで、脳神経科学によると、人の視覚情報処理にはボトムアップ型とトップダウン型の2種類の注意機構が存在することが判明した。これら2種類の注意機構について、
図1を参照して説明する。
【0020】
図1は、ボトムアップ型とトップダウン型の2種類の注意機構を説明するための図である。
図1Aは、ボトムアップ型の注意機構を説明するための図である。また、
図1Bは、トップダウン型の注意機構を説明するための図である。
【0021】
ボトムアップ型の注意機構は、視覚情報から瞬時に判断される注意に関する機構であり、周囲と異なる状況に対して、人の注意を受動的に惹きつける。例えば、人が目標対象物(正立したL字対象物)を探すとき、
図1Aに示すように多数の青色物体がある中で橙色の目標対象物が一つだけ存在するような状況であれば、目標対象物が目立つ。このため、人は容易に目標対象物を見つけることができる。
【0022】
一方でトップダウン型の注意機構では、事前に得た知識や予測などに基づいて特定の空間位置や特徴に能動的にバイアスをかけることで人の注意を向けることができる。例えば、
図1Bに示すように、様々な形・色の物体が混在している状況で、目標対象物が目立たない状況を想定する。この状況であっても、人は、目標の位置や特徴に注意を向けることによって見つけることができる。参考までに、
図1Aと
図1Bに示した目標対象物(正立した橙色のL字対象物)はどちらも同じ場所にあるものとする。
【0023】
本明細書に開示される技術は、人又は機械の指示に基づいて動作するロボットのマニピュレーション作業を対象にする。このマニピュレーション作業の例として物体把持について説明する。
【0024】
一般的な物体認識技術は、視覚情報に基づいて多種多様な物体を瞬時に認識することからボトムアップ型と言える。そのため、ロボットが物体を把持する技術に物体認識技術を適用する場合、複数の認識結果からある指標、例えば、ロボットによる物体の把持のし易さや、物体の前後位置関係といった指標に基づいて、ロボットが把持対象物を自律的に決定する必要がある。
【0025】
従来の学習装置は、人の指示情報が明確であれば、ロボットの視覚画像中の把持対象物と、ロボットの状態とに基づいて、ロボットの把持動作を逐次生成することが可能であった。例えば、色や形が異なる複数の物体が置かれた状況であっても、ロボットが人の指示に合わせて適切な対象物を選択し、選択した対象物を把持することが可能であった。しかし曖昧な状況、例えば同一形状又は類似形状の物体が複数置かれた状況では、把持対象物を一意に特定することは困難であった。ロボットが人の指示を適切に判断するためには、学習経験や周囲の状況、前後の文脈などに基づいて、人の指示の意図を理解し、対象物を判断する能力が求められていた。
【0026】
そこで、本発明者は、人の指示と、物体との関係と、物体の重要度とを学習し、ロボットの目的動作を生成することが可能な学習装置を発明した。この手法では、複数の物体を識別して得る複数の情報に基づいて、学習装置が把持対象物を一意に特定することが可能となる。このため、同一形状又は類似形状の物体が複数置かれた状況であっても、学習装置が把持対象物を一意に特定し、ロボットの把持動作を生成することが可能である。さらに、学習装置が把持対象物に着目しながら物体把持動作を生成することから、周囲の環境変化や環境ノイズに対してロバストな動作生成が可能になる。以下に、本発明の実施形態に係る学習装置の詳細な構成例及び動作例について説明する。
【0027】
[第1の実施形態]
ここでは、本発明者が発明した学習装置の第1の実施形態について、添付図面を参照して詳細に説明する。なお、以下に説明する実施形態は、本開示の実現手段としての一例であり、本開示が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本開示は以下の実施形態に限定されるものではない。
【0028】
始めに、本発明の第1の実施形態に係るロボットシステムについて説明する。
図2は、学習装置40を備えるロボットシステム1000の構成例を示すブロック図である。
【0029】
ロボットシステム1000は、ロボット10、記憶装置20、学習装置40、表示装置50を備える。ロボット10は、学習装置40が指示情報30を解釈して生成する予測指令に基づき、対象物を把持する等の動作を行う。
【0030】
本実施形態に係るロボットシステム1000では、始めに人等がロボット10(ロボット装置の一例)に所望の目的動作を教示する。所望の目的動作として、例えば、特定の位置にある物体をロボット10が把持し、別の位置に物体を移動させる動作がある。このように、ロボット10が実際に対象物を把持する1回の把持動作を、「動作教示」と呼ぶ。
【0031】
動作教示では、人が遠隔操作装置を用いてロボット10を遠隔操作する手法や、人がロボットを直接操作するダイレクトティーチングなどの手法を用いて、ロボット10に対し、所望のマニピュレーション動作(以下、「動作」と略記する)を教示する。ロボット10は、不図示のアームを対象物に向けて伸ばしたり、関節を所定の角度で曲げたり、把持部の開くタイミングといった様々な動作が教示される。
【0032】
ロボット10が動作教示されている間、不図示のセンサがロボット10の各部の機器を計測してロボットセンサデータとして記憶装置20に出力する。ロボットセンサデータ蓄積部21には、動作教示に伴う時系列のロボットセンサデータが蓄積される。ロボットセンサデータには、例えば、実際に対象物体のマニピュレーションを行うときに計測部11が計測したセンサ情報(アームの関節角やトルク値、モータ電流の電流値など)が含まれる。また、ロボットセンサデータには、ロボット10の周囲、又はロボット10自体に取り付けられたカメラが撮影した撮影画像(デプス画像など)も含まれる。このため、計測部11は、カメラを含む。
【0033】
記憶装置20は、ロボット10から取得したロボットセンサデータ、ロボットシステム1000に入力された指示情報30を記憶し、蓄積する。この記憶装置20は、ロボットセンサデータ蓄積部21、指示データ蓄積部22及び学習データ蓄積部23を備える。
【0034】
ロボットセンサデータ蓄積部21は、上述したようにロボット10から入力したセンサ情報や撮影画像をロボットセンサデータとして蓄積する。
【0035】
指示データ蓄積部22は、ロボットシステム1000の外部から入力した指示情報30を指示データとして蓄積する。この指示情報30は、ロボットに教示した動作に1対1で対応する言語指示を含む情報である。例えば、赤色の対象物を掴む動作をロボット10に教示した場合、それに対応した指示情報として「Pickup red object」という文章を記録する。このように言語指示には、「赤いのを取って」のような対象物の色だけを指定した文章情報、「ペットボトルを取って」のような対象物の種類だけを指定した情報が含まれる。指示情報30は、文章以外にも作業手順書や、人の音声などであってもよい。
【0036】
学習データ蓄積部23は、ロボットセンサデータ蓄積部21から取得するロボットセンサデータ(センサ情報)及び撮影画像と、指示データ蓄積部22から取得する指示データ(指示情報30)とを一対一に対応させた情報を学習データとして蓄積する。本明細書では、ロボットセンサデータ、撮影画像、及び指示データをまとめたものを「学習データ」と呼ぶ。
【0037】
ロボット10に目的動作が教示される間、学習装置40は、ロボットセンサデータと指示データを用いて、ロボット10が目的動作を遂行するために必要な情報を学習する。動作教示の後、再び指示情報30が入力されると、学習装置40は、ロボット10に行わせる動作を自律的に生成することが可能となる。ここで、入力される指示情報30は、ロボット10に目的動作が教示された時に入力された指示情報30と全く同じでなくても構わない。指示情報30として入力される言語指示の一部が欠けたり、異なる表現であったりしてもよい。そして、入力された指示情報30に基づいて学習装置40が生成した予測指令により、ロボット10が目的動作を実行することが可能となる。
【0038】
学習装置40は、モデル定義部41に人が予め定義したモデル(ネットワーク構成)と、学習データ蓄積部23に蓄積された学習データを用いて、目的関数に従って、学習部42にてモデルの最適パラメータを学習する。この学習装置40は、ロボットシステム1000に構成される情報処理装置の一例として用いられる。学習装置40は、モデル定義部41、学習部42、重み保存部43、及び推論部44を備える。
【0039】
(学習処理)
この学習装置40は、記憶装置20により生成された学習データを用いてモデルを機械学習する。そして、学習装置40は、学習したモデルを用いて指示情報30が指示する対象物体を認識して所望のマニピュレーション動作を生成する。本実施形態に係る学習装置40の学習部42は、例えば、ディープラーニングの一種であるCNN(Convolutional Neural Network)とRNN(Recurrent Neural Network)を使ってモデルを学習する。
【0040】
モデル定義部41は、人が予め定義した任意の機械学習モデル(例えば、ニューラルネットワークのネットワーク構成など)を格納する。以下の説明では、機械学習モデルを「モデル」と略記する。モデル定義部41には、ロボット10の目的動作に合わせたモデルが定義されており、このモデルには、学習部42が学習する時のパラメータが構成されている。後述する
図3には、複数のブロック(パラメータ)とデータの流れ(矢印)で表されたモデルの例が示される。また、モデル定義部41には、ロボット10が実行するタスク(目的動作)に応じて異なるモデルが用意されている。例えば、ロボット10が物体を把持するタスクに対応するモデル、ロボット10がネジを締めるタスクに対応するモデル等がある。本実施形態では、ロボット10が物体を把持するタスクに対応するモデルが選択されるものとする。
【0041】
学習部42は、記憶装置20の学習データ蓄積部23から学習データを読み出す。上述したように学習データは、計測情報、撮影画像及び指示情報30をまとめたデータである。この学習部42は、ロボット10の目的動作に合わせてモデル定義部41から読み出したモデルを用いて、ロボット10の動作が計測された計測情報(ロボットセンサデータ)と、ロボット10による動作対象である物体が撮影された撮影画像と、ロボット10への動作指示が言語化された指示語を含む指示情報30とを学習する。学習部42は、ロボット10で実行されるタスクによって、モデル定義部41から読み出し、学習に用いるモデルを切り替え可能である。
【0042】
重み保存部43は、学習部42が学習したモデルに対する重みやバイアスを保存する。重みとは、例えば、学習部42が学習データを用いて学習してモデルを最適化した時のパラメータ(最適パラメータ)に付加される値である。学習部42の目的関数とは、人が指定するものである。後述する
図3には、本実施形態に係るモデル定義部41で定義されるモデル、及び、このモデルを用いて指示情報30に対するロボット10の動作を学習する学習部42の一例が示される。
【0043】
(推論処理)
学習装置40は、記憶装置20から取得した指示情報30から意図を予測し、指示情報30と学習データに基づいて、指示情報30で指示される目的動作及び対象物を推論し、推論結果をロボット10に出力する。ロボット10は、推論結果に基づいて、特定の対象物を把持する動作が可能となる。
【0044】
そこで、推論部44は、ロボット10への指示情報30が新たに入力されると、モデル定義部41から読み出したモデルに重み保存部43から読み出した重みをかけて推論する処理にモデルを用いる。そして、推論部44は、重みをかけたモデルを用いて、新たに撮影された物体の撮影画像からロボット10による動作対象である物体を識別し、新たに計測された計測情報に基づいて、駆動指令を予測する。
【0045】
そして、推論部44は、新たに計測された計測情報(ロボットセンサデータ)と、新たに撮影された撮影画像と、新たに入力されたロボット10への指示情報30とをモデルに適用して指示情報30の意図を予測し、かつロボット10の目的動作、及び目的動作の対象となる物体を推論する。そして、推論部44は、読み出した指示情報30から予測指示情報4121(後述する
図3を参照)を推論する。また、推論部44は、予測した指示情報30の意図に合わせた目的動作をロボット10に行わせるための駆動指令を予測して、予測した駆動指令(後述する
図3に示す予測指令41123)を駆動部12に出力する。
【0046】
推論部44は、学習モデルとロボットセンサデータとを用いた推論処理を行うことで、マニピュレータの動作指令値を予測した予測指令41123(後述する
図3を参照)を生成する。この予測指令41123は、ロボット10に対する指令データとして、ロボット10の駆動部12に入力され、駆動部12は、指令データに基づいて駆動する。
【0047】
推論処理の間、計測部11は、駆動部12の駆動と合わせて、センサ情報を計測し、ロボットセンサデータを出力する。このセンサ情報は、ロボットセンサデータ蓄積部21に蓄積されると共に、推論部44に取り込まれる。このため、推論部44は、リアルタイムで入力されるセンサデータに基づいて、予測指令41123を生成し、ロボット10の駆動部12を駆動させる。この推論処理は、ロボット10の目的動作が終了するまで繰り返し行われる。
【0048】
次に、モデル定義部41に定義されるモデルのうち、ロボット10の動作を学習する構成と、指示情報30を学習する構成について、
図3を参照して説明する。
図3は、モデルの例を示すブロック図である。
図3の破線で囲った箇所は、モデル定義部41に格納されるモデルを表す。また、
図3の一点鎖線で囲った箇所は、学習部42がモデルを用いて学習する機能部を表す。上述したように、このモデルは、学習部42が学習して最適化した後、推論部44で推論処理に用いられる。
【0049】
始めに、学習部42の構成例について説明する。
学習部42は、動作学習部411、指示学習部412及び知識共有部413を備える。
【0050】
動作学習部411は、学習データ蓄積部23から読み出した学習データに基づいて、目的動作が教示されるロボット10の動作と、学習データとの対応関係を学習する。物体認識部4111の機能は、一般的に広く用いられている物体認識技術を用いて実現可能である。例えば、物体認識に特化した機械学習手法(yoloやSSDなど)や、QR・ARマーカーなどによって認識した位置情報、さらに物体の色重心により認識した位置情報などを利用する物体認識部4111が構成可能である。
【0051】
この動作学習部411は、物体認識部4111、時系列学習部4112、及び指示対象推定部4113を有する。物体認識部4111、時系列学習部4112、及び指示対象推定部4113に含まれる多数のブロック(フィルタ)を結合したものが、モデル定義部41で定義されるモデルを表す。そして、動作学習部411には、学習データ蓄積部23から読み出された撮影画像及びセンサ情報が入力される。
【0052】
物体認識部4111は、学習データ蓄積部23から読み出した学習データに含まれる撮影画像からロボット10の目的動作の対象である物体の形状及び位置を認識する。例えば、物体認識部4111は、ある時刻tでカメラが撮影した撮影画像に基づいて、その時刻tでの物体の位置及び形状を認識する処理を行う。そこで、物体認識部4111は、画像特徴量抽出をするCNNと物体の空間的な位置情報を抽出するSpatialSoftmaxを用いて、物体の位置を表す物体位置情報41111を抽出する。SpatialSoftmaxは、機械学習で用いられるSoftmax関数やtanh、sigmoid関数などの関数の一種であり、soft argmaxとも称される。SpatialSoftmaxで抽出される物体位置情報41111の数は、直前のCNNのフィルタ数に基づいて決定される。
【0053】
物体認識部4111には、機械学習のパラメータ(重み)の数がブロック4111aで表される。各ブロック4111aは、物体認識部4111で実行される学習処理の層を表す。そして、ブロック4111aの奥行き方向の長さが長くなるほど、行列で表されるモデルの層にパラメータが多く含まれることを意味している。例えば、物体認識部4111の左側のブロック4111aより、右側のブロック4111aの方が多くのパラメータが含まれる。そして、各ブロック4111aにおけるパラメータの結合が、複数のブロック4111a間の矢印で表されている。
【0054】
そして、物体認識部4111に入力された撮影画像は、初めに左側のブロック4111aを通過することで、注目度が高い点を「1」とし、注目度が低い点「0」とするような処理が行われる。後続の複数あるブロック4111aにおいても、同様の処理が行われる。物体認識部4111は、複数のブロック4111aに撮影画像を通過させることで、撮影画像内の物体を徐々に認識し、パラメータを最適化する。最適化されたモデルのパラメータ(重み)は、
図2に示した重み保存部43に保存される。
【0055】
また、平板4111bは、例えば、上述したSpatialSoftmaxを表している。右側のブロック4111aから出力された撮影画像が平板4111bに入力すると、SpatialSoftmaxで物体の位置を表す物体位置情報41111の数が抽出される。抽出された物体位置情報41111の数は、時系列学習部4112に出力される。
【0056】
時系列学習部4112は、知識共有部413から取得する指示情報30の学習結果と、物体認識部4111から時系列で入力される物体の形状及び位置に基づいて、物体認識部4111が物体の形状及び位置を認識してから所定時間後の物体の位置を学習して予測する。また、時系列学習部4112は、所定時間後の物体の位置の重要度を学習して予測する。そして、時系列学習部4112は、指示情報30の学習結果に基づいてロボット10への指令を学習して予測する。時系列学習部4112が、物体認識部4111のSpatialSoftmaxで抽出された物体位置情報41111から物体の位置を判断する処理は、視覚情報から瞬時に判断されるため、上述したボトムアップ注意機構に相当する。
【0057】
例えば、時系列学習部4112には、動作学習部411が抽出した時刻tにおける複数の物体位置情報41111と、時刻tで計測されたロボット10のセンサ情報41112とが入力される。時系列学習部4112内には、モデルで規定されるネットワーク41120が設けられる。
【0058】
時系列学習部4112に構成されるネットワーク41120には、物体認識部4111から時刻tにおける複数の物体位置情報41111と、時刻tにおけるロボット10のセンサ情報41112とが入力される。また、ネットワーク41120には、知識共有部413から学習結果として、指示情報30に対応する変数が入力される。
【0059】
そして、時系列学習部4112は、知識共有部413から入力した変数に合わせてネットワーク41120を用いて、時刻t+1で予測した物体の位置、この予測位置の重要度、ロボット10に動作を指令するための予測指令を生成する。例えば、時系列学習部4112は、時刻t+1の物体の位置を表す予測位置情報41121と、予測位置情報41121の予測重要度41122と、予測指令41123とを予測する。この予測指令41113は、ロボット10のアームの関節部分の関節角度等の情報を含む。なお、時系列学習部4112は、知識共有部413から取得した指示情報30の学習結果に基づいて、所定時間後の物体の位置(予測位置情報41121)、及び重要度(予測重要度41122)、並びにロボット10の目的動作を変更することができる。
【0060】
予測位置情報41121と予測重要度41122は、指示対象推定部4113に出力される。また、予測指令41123は、
図2に示した駆動部12に出力され、駆動部12が予測指令41123に基づいてロボット10の各機器を駆動する。
【0061】
指示対象推定部4113は、時系列学習部4112により予測された所定時間後の物体の位置に基づいて、指示情報30で動作指示が行われた物体を推定する。この際、指示対象推定部4113は、予測された所定時間後の物体の位置(予測位置情報41121)、及び重要度(予測重要度41122)に基づいて撮影画像に含まれる物体のヒートマップ41131を作成し、ヒートマップ41131にモデルを適用して、所定時間後に撮影されると予測した予測画像を出力する。この予測画像とは、例えば、ロボット10が把持する物体がペットボトルである場合に、ペットボトルの形状を表す画像である。
【0062】
ここで、ヒートマップ41131の構成例について説明する。
ヒートマップ41131は、例えば、カメラの向きを固定した時の、カメラの撮影画角内に含まれる物体の位置を色の濃淡で表したものであり、撮影画像に含まれる物体に合わせて生成される。例えば、撮影画角内に3つの物体が存在していれば、3つのヒートマップ41131が生成される。
【0063】
ヒートマップ41131では、濃く表示された箇所が、ロボット10が把持する対象物として予測された物体を表す点候補である。複数の重要な点候補が存在する場合、動作学習部411に追加指示を入力することで、指示対象推定部4113がより正確に物体を予測することが可能となる。動作学習部411による学習初期には、撮像領域内のランダムな箇所にヒートマップ41131が表示される。動作学習部411の学習が進んでモデルが最適化されると、ヒートマップ41131では、濃く強調された強調部の中心位置が実際の対象物の位置に近づく。
【0064】
指示対象推定部4113は、予測位置情報41121をヒートマップ41131の中心位置とし、予測重要度41122をヒートマップ41131で濃く強調される強調部の半径に対応付ける。強調部の半径は、予測重要度41122によって異なる。このため、予測重要度41122が高いほど、強調部が大きくなり、把持対象として選択されるべき物体であることが示される。このようにヒートマップ41131に含まれる強調部が濃いほど重要な点と捉えることができる。このことは、指示対象推定部4113が、時刻t+1で物体が存在する位置を正確に予測できるようになったことを意味する。
【0065】
図4は、ヒートマップ41131の具体的な表示例を示す図である。ヒートマップ41131の横軸はX座標、縦軸はY座標を表す。
【0066】
図4には、ヒートマップ41131の一例として、ヒートマップ11A~11Cが示される。例えば、右側に立方体の物体が表示されたヒートマップ11A、真ん中に立方体が表示されたヒートマップ11B、左側に円柱の物体が表示されたヒートマップ11Cが表示されている。なお、カメラの撮影方向から見て、円柱の物体と、2つの立方体の物体とが奥行き方向に重なっていたとしても、深度情報を含むデプス画像を用いることで、指示対象推定部4113が手前にある物体と奥にある物体とを識別可能である。
【0067】
ここで、ロボット10に対する指示が、立方体の物体を把持することであったとする。この指示では、円柱の物体は対象外であるので、ヒートマップ11Cには強調部が全く含まれない。すなわち、ヒートマップ11Cに示される円柱の物体は、ロボット10の把持対象として予測されていないことが分かる。
【0068】
一方、ヒートマップ11A,11Bには、物体の中心から同程度の半径で色が濃く表示されている。ただし、強調部34B、34Aの順で色が濃くなっているとする。そして、色が濃いほど、ロボット10に把持させる指示に近いと予測される物体であることが示される。このため、ロボット10は、ヒートマップ11Aに示される物体を把持する動作を行う。この時、人は、表示装置50に表示されたヒートマップ41131を見て、不適切な物体が把持対象として選択されたことを確認すると、適切な物体に選択し直すといった修正が可能である。
【0069】
再び
図3に戻って、モデルの内容を説明する。
動作学習部411による学習終期には、物体が実際に存在する箇所にヒートマップ41131が表示される。例えば、ロボット10が把持する物体がペットボトルである場合に、ペットボトルが存在する箇所が濃く強調されたヒートマップ41131が生成される。
【0070】
また、指示対象推定部4113は、1つの撮像領域内に1つ以上のヒートマップ41131を生成し、複数の物体の位置を示すことができる。すなわち、指示対象推定部4113は、所望の数のヒートマップ41131を生成することが可能である。
【0071】
そして、ヒートマップ41131、及び予測画像、及び予測されたロボット10への指令のうち、少なくとも一つが表示装置50(
図1を参照)に表示可能に出力される。このため、人は、表示装置50に表示されたヒートマップ41131に基づいて、物体の実際の位置と、強調部の位置とが合っているかを確認することが可能である。
【0072】
指示対象推定部4113においても、物体認識部4111と同様に、複数のブロック4113aが設けられる。ヒートマップ41131は、奥行きが長い(パラメータが多い)ブロック4113aに結合される。そして、指示対象推定部4113のブロック4113aは、各層で結合を繰り返し、右端のブロック4113aから予測画像を出力する。
【0073】
このように学習装置40は、ロボット10に指示される目的動作の対象となる物体を表す少なくとも1つの物体の位置と、少なくとも1つの物体の重要度とを予測する。
学習処理時には、物体認識部4111は、入力された撮影画像から物体の位置情報や、物体に付加されるラベルを抽出する。また、指示学習部412は、入力された指示情報30から指示の意図を抽出する。そして、時系列学習部4112は、物体認識結果と、抽象指示の認識結果とに基づいて、注意点とその重要度を学習する。
【0074】
推論処理時には、推論部44は、ロボット10に新たな指示が行われ、学習データを取得すると、モデルを用いて少なくとも1つの物体の位置を予測する。そして、推論部44は、時系列学習部4112により予測された重要度(予測重要度41122)が、他に予測された重要度よりも大きい物体に注目して、物体を目的動作の対象とするように、ロボット10に目的動作を行わせるための駆動指令(予測指令41123)を出力することができる。このため、ロボット10は、入力された新たな指示に合わせて、目的動作を実行することが可能となる。なお、撮影画像内に一つの物体しかない場合、推論部44は、その物体に対する予測重要度41122が最も大きいものとする。
【0075】
図3の下側に示す指示学習部412は、学習データ蓄積部23から読み出した指示情報30と、目的動作が教示されるロボット10の動作が計測された計測情報との対応を学習した学習結果に基づいて、指示情報30の意図を予測する。このため、指示学習部412は、時系列で入力されるロボットセンサデータに対応した指示情報30の時系列学習を行う。例えば、一つの指示情報30によりロボット10が動作開始してから目的動作を終了するまでに5秒間かかる場合、一つの指示情報30と、5秒間で計測されたロボットセンサデータとが対応付けられる。
【0076】
指示学習部412には、モデル定義部41から読み出されたモデルで規定されるネットワーク4120が設けられる。指示学習部412は、ネットワーク4120を用いて、入力された指示情報30から予測指示情報4121を出力する。
【0077】
知識共有部413は、指示学習部412による指示情報30の学習結果(知識)を動作学習部411で共有する。このため、知識共有部413は、動作学習部411と指示学習部412の結びつけを行っている。知識共有部413は、動作学習部411のネットワーク41120と、指示学習部412のネットワーク4120とにアクセスする。そして、知識共有部413は、1つのロボット10の動作とその指示情報に対し、1つの変数を学習する。このように知識共有部413は、指示学習部412に入力された指示情報30から、指示の意図を示す変数を抽出することができる。知識共有部413は、動作と指示の関係を学習した多次元の変数で表される。知識共有部413の変数は、重み保存部43に保存される。
【0078】
知識共有部413が抽出した変数が入力される時系列学習部4112は、指示に対応した予測指令41123を生成することができる。また、知識共有部413の変数が入力された指示学習部412は、ロボット10の動作に対応した指示(予測指示情報4121)を生成することができる。
【0079】
例えば、指示学習部412は、入力された指示情報30に「赤いの取って」という言語指示が含まれていることを予測した場合に、「赤いの取って」という言語指示を予測指示情報4121として出力することができる。また、指示学習部412は、入力された指示情報30に含まれる言語指示が「赤いものが欲しい」、「赤いのをください」のように揺らいでも、「赤い物体を選んで把持して移動する」のように言語指示を解釈して同じ内容とすることができる。そして、「赤い物体を選んで把持して移動する」という内容を予測指示情報4121として出力することが可能となる。そして、「赤い物体を選んで把持して移動する」という内容に合わせた変数が知識共有部413に抽出される。このため、時系列学習部4112は、知識共有部413からこの変数が入力されると、この変数に合わせた予測指令41123を出力することができる。
【0080】
本明細書では、知識共有部413が学習した言語指示に基づいて、ロボット10の動作が生成されることを「変数を介する」と表現する。知識共有部413の変数を介すことで、入力された指示情報30と、ロボット10の目的動作とを連携することができる。本実施形態に係る動作学習部411と指示学習部412は知識共有部413のみで繋がっている。例えば、知識共有部413は、学習により「掴む」という言語指示と、この言語指示に対応したロボット10の動作とを1つの変数として記憶する。すなわち、「掴む」という言語を学習した変数を動作学習部411に入力することで、その変数に対応した動作が生成される。
【0081】
上述したように知識共有部413が抽出する変数は多次元で構成されており、「赤いものを取る」という情報や「赤いものを押す」といった情報に対応付けた変数が、所定の数値で表される。このため、「掴む」という言語指示以外にも、例えば、「押す」などの言語指示に対応した変数が知識共有部413から時系列学習部4112に入力される場合がある。この時、「押す」などの言語指示に対応した変数が知識共有部413によって抽出される。このような変数は、言語指示ごとに異なる値であり、例えば、インデックスとして用いられる。例えば、「赤いものを取る」という情報には変数として「1」が割り当てられ、「赤いものを押す」といった情報には変数として「2」が割り当てられる。
【0082】
そして、「掴む」という言語指示の時と同様に、推論部44で用いられるモデルの時系列学習部4112は、知識共有部413により抽出された変数(「押す」に対応する値)を介してロボット10の動作を生成し、駆動部12を駆動するための指示を予測指令41123として出力する。このようにロボット10の動作の切り替えは、知識共有部413で抽出された変数に基づいて行われる。
【0083】
また、知識共有部413の変数は、時系列学習部4112が生成する予測指令41123の他に、予測位置情報41121と予測重要度41122にも影響を与える。すなわち、知識共有部413の変数に基づいてヒートマップ41131の位置や強調部の半径を制御することが可能であり、指示情報に基づいて着目すべき対象物を切り替えることができる。このような制御は、知識や学習経験に基づいて判断されることから、トップダウン注意機構と考えることができる。
【0084】
以上より、知識共有部413を介して指示情報が入力された時系列学習部4112は、物体認識部4111が認識した複数の物体位置情報41111から、ロボット10の動作に重要な対象物の予測位置情報41121と予測重要度41122を予測する。そして、時系列学習部4112は、指示に関係した動作指令を予測した予測指令41123を出力することが可能となる。そこで、モデル定義部41は、時刻tにおける各種センサや指示情報から、時刻t+1のロボット10の動作指令値を推定するように、学習装置40を構成するモデルのパラメータの最適化を行う。
【0085】
深層学習では、ネットワークのパラメータを少しずつ調整することを学習と呼ぶ。そして、時刻tのセンサ情報などを入力し、予測した時刻t+1の値と真値の誤差が最小になるまで、もしくは指定した学習回数に達するまで、学習が繰り返される。予測画像はヒートマップ41131を基に生成される。このため、注意点と重要度が把持対象物に適切に向いていれば、入出力の誤差が必然的に小さくなる。
【0086】
<情報処理装置のハードウェア構成>
図5は、本実施形態における情報処理装置100のハードウェア構成の一例を示す図である。情報処理装置100は、
図2に示した学習装置40に構成される各機能部の機能を実現するための装置であり、例えば、コンピューター装置等が用いられる。
【0087】
情報処理装置100は、CPU110と、ROM120と、RAM130と、外部メモリ140と、表示部150と、入力部160と、通信I/F170と、システムバスと180を備える。
【0088】
CPU110は、情報処理装置100における動作を統括的に制御するものであり、システムバス180を介して、ロボットシステム1000を制御する。
ROM120は、CPU110が処理を実行するために必要な制御プログラム等を記憶する不揮発性メモリである。なお、当該プログラムは、外部メモリや着脱可能な記憶媒体に記憶されてもよい。これらROM120、外部メモリ、着脱可能な記憶媒体は、情報処理装置100によって実行されるプログラムを格納したコンピューター読取可能な非一過性の記憶媒体の一例として用いられる。
【0089】
RAM130は、CPU110の主メモリであり、ワークエリア等として機能する。つまり、CPU110は、処理の実行に際し、ROM120から読み出した必要なプログラム等をRAM130にロードし、当該プログラム等を実行することで、各種の機能動作を実行する。CPU110、ROM120及びRAM130が連携して、学習装置40における各部の処理が実現される。
【0090】
外部メモリ140は、CPU110がプログラムを用いた処理を行う際に必要な各種データ(情報)を記憶することができる。また、外部メモリ140は、CPU110がプログラムを用いた処理を行うことにより得られる各種データや各種情報等を記憶することができる。外部メモリ140に、
図2に示した記憶装置20が構成されるため、記憶装置20内の各データは外部メモリ140に保存される。
【0091】
表示部150は、液晶ディスプレイ(LCD:Liquid Crystal Display)等のモニタにより構成される。表示部150は、ロボット10の視覚情報である撮影画像や学習装置40が予測したヒートマップ41131や予測画像を表示することで、学習装置40が撮影画像から抽出した物体の位置情報、及び予測した物体の位置情報を表示する。
【0092】
入力部160は、キーボードやマウス等のポインティングデバイスにより構成され、人が情報処理装置100に対し指示を与えることができるように構成される。
【0093】
通信I/F170は、外部装置(本実施形態では、ロボット10、記憶装置20)と通信するためのインタフェースである。通信I/F170は、例えばLANインタフェースとすることができる。システムバス180は、CPU110、ROM120、RAM130、外部メモリ140、表示部150、入力部160、及び通信I/F170を通信可能に接続する。
【0094】
図5に示す情報処理装置100の各部の機能は、CPU110がプログラムを実行することで実現することができる。ただし、
図5に示す情報処理装置100の各部のうち少なくとも一部の機能が専用ハードウェアで動作するように構成されてもよい。この場合、専用のハードウェアは、CPU110の制御に基づいて動作する。
【0095】
<ロボットシステムの処理例>
次に、ロボットシステム1000で行われる処理の一例について、
図6~
図8を参照して説明する。
【0096】
(動作教示処理)
図6は、ロボットシステム1000で行われる動作教示処理の一例を示すフローチャートである。動作教示処理は、人が目的動作をロボット10に教示し、ロボット10の動作を計測部11が計測した結果を、ロボットセンサデータとしてロボットセンサデータ蓄積部21に蓄積する処理である。以降、アルファベットのSはフローチャートにおけるステップを意味するものとする。
【0097】
始めに、人は、ロボット10に目的動作を教示する(S11)。ロボット10への教示方法は、不図示の遠隔操作装置を用いた遠隔操縦による動作教示、人がロボットを直接持って教示するダイレクトティーチング、さらに人が目的動作を事前にプログラミングして再生する方法など、任意の方法を用いて教示する。
【0098】
次に、ロボット10の計測部11は、各駆動部12のセンサ値を時系列的に計測し、ロボットセンサデータとして記憶装置20に出力する。記憶装置20のロボットセンサデータ蓄積部21は、ロボット10から入力したロボットセンサデータを保存し、蓄積する(S12)。
【0099】
次に、学習データ蓄積部23は、ロボットセンサデータ蓄積部21に蓄積された少なくとも1つのロボットセンサデータを読み出す。そして、学習データ蓄積部23は、ロボットセンサデータに対応した指示情報30を指示データ蓄積部22から参照して、ロボットセンサデータと指示情報30を学習データとして統合する(S13)。ここでは、例えば、「赤いものをとって」という言語指示を含む指示情報30と、ロボット10が赤い物体を把持して所定の位置に移動させる動作で計測された一連のロボットセンサデータとが統合される。
【0100】
そして、学習データ蓄積部23は、学習データを保存し、蓄積して(S14)、本処理を終了する。
【0101】
(動作学習処理)
図7は、ロボットシステム1000で行われる動作学習処理の一例を示すフローチャートである。動作学習処理は、学習データ蓄積部23で蓄積された学習データを用いて、学習装置40のモデル定義部41が定義したモデルを学習し、モデルを構成する各種パラメータ情報(重み)を重み保存部43に保存する処理である。
【0102】
始めに、学習部42は、学習データ蓄積部23で蓄積された学習データを読み込む(S21)。上述したように学習データには、ロボットセンサデータと指示情報30が含まれる。
【0103】
次に、学習部42は、モデル定義部41からモデルを読み込む(S22)。学習部42は、上述したようにロボット10が物体を把持する場合、物体を押す場合とで異なるモデルを読み込む。
【0104】
次に、学習部42は、学習データ蓄積部23から読み出した学習データと、モデル定義部41から読み出したモデルとを用いて学習する(S23)。この学習は、人が指定する目的関数に従うよう、学習部42がモデルの最適化を行うことである。学習を終えたモデルを学習済みモデルと呼ぶ。
【0105】
そして、学習部42は、学習済みモデルを保存する(S24)。学習済みモデルの保存は、学習部42が、学習済みモデルとして構成される各種パラメータ(重み)を重み保存部43に保存する処理である。
【0106】
(動作生成処理)
図8は、ロボットシステム1000で行われる動作生成処理の一例を示すフローチャートである。動作生成処理は、学習装置40が、計測部11で計測されたセンサ情報に基づいて、ロボット10が目的動作を達成するための逐次動作の指令を生成する処理である。この動作生成処理では、推論部44がモデル定義部41から読み出したモデルを使ってロボット10の動作指令を予測し、駆動部12へ予測指令41123を出力する。
【0107】
始めに、推論部44は、モデル定義部41から人が定義するモデルを読み込む(S31)。ここでも、ロボット10の目的動作に合わせたモデルが読み込まれる。
【0108】
次に、推論部44は、
図7に示した動作学習処理にて求められた、モデルを構成する各種パラメータ(重み)を重み保存部43から読み込む(S32)。そして、推論部44は、ステップS33以降の処理において、重みをモデルに適用して、指示情報30における指示の意図を予測し、ロボット10に目的動作を行わせるための予測指令41123を生成する。この推論処理では、推論部44が、
図7に示した動作学習処理で最適化されたモデル(学習済みモデル)を用いて、指示情報30に対応する目的動作のための予測指令を生成する。
【0109】
このため、推論部44は、ロボット10の動作に伴い、計測部11が計測した各種のセンサデータを学習データ蓄積部23から取得する(S33)。
次に、推論部44は、ロボット10の動作指令値を推定する(S34)。推定された動作指令値は、予測指令41123としてロボット10の駆動部12に出力される。そして、ロボット10の駆動部12は、予測指令41123に基づいてロボット10の各機器を駆動する。
【0110】
ロボット10の駆動状況は、計測部11によりリアルタイムで計測され、ロボットセンサデータとして推論部44に入力される。そこで、推論部44は、ロボットセンサデータに基づいて、ステップS34で推論した動作指令値で示されるロボット10の目的動作を完了したか否かを判断する(S35)。
【0111】
目的動作を完了していない(S35のNO)、すなわち推論部44は、ロボット10が目的動作の遂行途中であると判断した場合、ステップS33に戻って、目的動作の生成が完了するまで、ステップS33以降の処理を繰り返す。例えば、ロボット10がアームを伸ばしている途中であれば、目的動作が完了していないと判断される。この場合、物体がある位置までアームをもう少し伸ばすといった予測指令41123により、駆動部12がアームを伸ばす動作が行われる。
【0112】
一方、目的動作を完了した(S35のYES)、すなわち推論部44は、ロボット10が目的動作の遂行を達成したと判断した場合、本処理を終了する。例えば、ロボット10がアームを所定位置まで伸ばし、指示された物体をエンドエフェクタで掴む動作が完了していれば、目的動作が完了したと判断される。
【0113】
以上のステップを繰り返すことで、推論部44は、計測部11で計測されたセンサ情報に基づいて、ロボット10が目的動作を達成するまで逐次、予測指令41123を生成し、ロボット10に予測指令41123を出力することが可能となる。
【0114】
以上説明した第1の実施形態に係る学習装置40では、抽象的な指示と、指示された対象物に対するロボット10の動作との関係を学習する。このため、学習装置40は、入力されたロボットへの指示情報30が明確でなく、ロボットの動作対象とする物体が不明確な状況であっても、指示の意図を予測して、ロボット10に何らかの動作をさせることが可能となる。このように学習装置40は、画像認識だけでは認識困難な曖昧な指示であっても、複数の物体の中から確からしい1つの物体を予測して、この物体に対する軌道計画を可能とすることで、ロボット10のマニピュレーション動作を実現することが可能となる。
【0115】
ここで、学習装置40の学習部42は、ロボットセンサデータと指示情報30とを対応付けた学習データを用い、モデル定義部41から読み出したモデルの学習を行い、重み保存部43にパラメータ(重み)を保存する。この際、学習部42は、時刻tでの撮影画像とロボットセンサデータに基づいて、時刻t+1における物体の予測位置を求める。この際、知識共有部413の変数を介すことで、知識共有部413が学習した言語指示に基づいてロボット10の動作を生成できる。このため、動作学習部411は、「こそあど言葉」のような曖昧な指示語で指示された物体を予測し、ロボット10を駆動するための予測指令41123を生成することができる。また、指示学習部412は、「こそあど言葉」のような曖昧な指示や、主語と目的語が前後するような指示のように、言語指示が揺らいだとしても、予測指示情報を出力することができる。
【0116】
また、「赤いの取って」という言語指示と、「青いの押して」という言語指示とが指示情報30に含まれ、学習済であることを想定する。この場合、「赤いの押して」という未学習の言語指示を含む指示情報30が入力されたとしても、学習装置40は、既に学習した「赤いの取って」という言語指示と、「青いの押して」という言語指示とを組み合わせて、「赤いの押して」という言語指示を予測することができる。そして、学習装置40は、予測した言語指示に基づいて、ロボット10に新たな言語指示による動作を行わせることが可能となる。
【0117】
[第2の実施形態]
次に、本発明の第2の実施形態に係る学習装置の構成例について、
図9を参照して説明する。第2の実施形態に係る学習装置では、知識共有部に指示情報が直接入力される形態としている。
図9は、第2の実施形態に係るモデルの例を示すブロック図である。
【0118】
指示学習部412Aは、第1の実施形態に係る指示学習部412と大きく2点で異なる。第1点は、入力した指示情報30から指示された動作を予測しない点である。第2点は、指示学習部412Aが知識共有部414を取り込む構成とし、指示情報30の言語指示を圧縮した情報を知識共有部414が時系列学習部4112と共有可能とした点である。ここで、同じ意図とした指示であっても様々な形態で入力される指示情報30を一つの情報にまとめることを圧縮と呼ぶ。指示学習部412Aが指示情報30の言語指示を圧縮することで、例えば、異なる言語による言語指示であっても、同一の情報にまとめることができる。
【0119】
例えば、指示学習部412Aの知識共有部414は、言語指示の予測を行っておらず、言語指示を予測する代わりに指示情報30を圧縮する。このため、初めての指示情報30であっても対応することが可能となる。例えば、指示情報30が日本語以外の外国語(英語、フランス語等)であっても、翻訳部として設けられるネットワーク4122が指示情報30を日本語に翻訳することで、ある程度同じ表現となる。
【0120】
そこで、指示学習部412Aには、モデル定義部41から読み出されたモデルで規定されるネットワーク4122が設けられる。ネットワーク4122として、例えば、ある言語を別の言語に翻訳する翻訳処理を実行可能なネットワーク又はプログラムが用いられてもよい。このため、学習データに含まれる指示情報30は、ネットワーク4122を通過することで、時系列学習部4112が解釈可能な言語指示として知識共有部414に入力される。
【0121】
ネットワーク4122が指示情報30を変換した言語指示は、圧縮された情報とみなせる。さらに知識共有部414は、変換された言語指示の特徴を抽出し、言語指示の特徴に変数を割り当てる。このような処理により、動作学習部411は、異なる言語で行われた指示であっても、ロボット10が動作可能な予測画像及び予測指令を生成し、ロボット10を動作させることが可能となる。なお、同一の言語であっても、揺らぎのある言語指示を含む指示情報30がネットワーク4122を通過することで、ある程度同じ表現の指示に圧縮することも可能である。
【0122】
このように学習部42は、ロボット10の動作学習処理において、学習データ蓄積部23から指示情報30を読み出すのでなく、指示情報30を直接取得する。そして、学習部42は、指示情報30に基づいて言語指示を圧縮する。
【0123】
指示学習部412Aは、入力される指示情報30を圧縮して、圧縮した指示情報30に基づいて、指示情報30の意図を予測する。そして、指示学習部412Aは、指示情報30の意図と、目的動作が教示されるロボット10の動作により計測される計測情報との対応を学習した学習結果を動作学習部411と共有する知識共有部414を有する。
【0124】
知識共有部414は、1つのロボット10の動作と、ネットワーク4122を通過した言語指示に対し、1つの変数を学習する。知識共有部414が学習した変数は、時系列学習部4112に出力される。
【0125】
時系列学習部4112は、物体認識部4111が撮影画像から求めた物体位置情報41111と、センサ情報41112と、知識共有部414から入力される変数とに基づいて学習した、時系列の予測位置情報41121と予測重要度41122を出力する。ここで、時系列学習部4112は、視線計測装置などのセンサを用いて人の視線を計測して得た視線情報に基づいて、時系列の予測位置情報41121と予測重要度41122を学習してもよい。
【0126】
第2の実施形態に係る学習装置40の動作の具体例について説明する。ここでは、赤い物体が複数存在する状況で、言語指示が「赤いのを取って」であることを想定する。この場合、学習装置40が複数の赤い物体から一つの赤い物体を予測することで、予測された赤い物体をロボット10が認識し、把持する動作を行える。また、言語指示が「一番右の赤いのを取って」であれば、推論部44は、カメラの撮影画角内で「一番右」にある「赤い物体」をロボット10に掴ませるための予測指令41123を出力する。このため、ロボット10は、カメラの撮影画角内で「一番右」にある「赤い物体」に着目して掴むことができる。
【0127】
以上説明した第2の実施形態に係る学習装置40では、同じ内容の言語指示が複数の異なる言語で行われたとしても、この言語指示を翻訳した結果に基づいて、指示情報30を圧縮した情報を知識共有部414に持たせることができる。指示情報30を圧縮した情報には、特定の変数が割り当てられるので、時系列学習部4112は、知識共有部414から取得した変数に基づいて、この変数に対応する予測指令41113を出力する。そして、駆動部12は、予測指令41113に基づいて、ロボット10を動作させることができる。このように第2の実施形態に係る学習装置40においても、明確でない言語指示による指示情報30からロボット10に何らかの動作を行わせることができる。
【0128】
[変形例]
(指示情報のデータ形式)
なお、指示学習部412に入力される指示情報30は、多様なデータ形式で構成されてよい。指示データ蓄積部22は、例えば、文章情報の場合、文章全体をあるベクトルに変換、又は単語単位に切り分けた後にベクトルに変換して入力しても良い。また、指示情報30が音声情報である場合、音声波形を時系列データとして入力、もしくは音声波形を1つのベクトルとして入力されてもよい。さらに音声波形を文章などに変換した指示情報30が入力されてもよい。他にも、物体の組立途中の様子を示した組立図や人が組立を行っている様子の画像や動画などが指示情報30として入力されてもよい。
【0129】
また、「それを取って」のような「こそあど言葉」が言語指示として初めて使われることがある。この場合、学習装置40が予測する物体が、指示者が意図した物体と異なったことは、表示装置50に表示されるヒートマップ41131、又は実際にロボット10が把持した物体により判明する。このように指示者が意図した物体と異なっていれば、指示者は学習装置40に意図した物体が異なっていることを入力する。そして、学習装置40は、改めて物体の位置を予測し、ロボット10が把持する対象物を予測し直す。
【0130】
なお、本発明は上述した各実施形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した各実施形態は本発明を分かりやすく説明するために装置及びシステムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されない。また、ここで説明した実施形態の構成の一部を他の実施形態の構成に置き換えることは可能であり、さらにはある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0131】
10…ロボット、11…計測部、12…駆動部、20…記憶装置、21…ロボットセンサデータ蓄積部、22…指示データ蓄積部、23…学習データ蓄積部、30…指示情報、40…学習装置、41…モデル定義部、42…学習部、43…重み保存部、44…推論部、50…表示装置、100…情報処理装置