(57)【要約】【課題】物品の特性や現場の状況に応じた適切な物品の積み付けが可能な物品積み付け装置及び機械学習装置を提供すること。【解決手段】本発明の物品積み付け装置１が備える機械学習装置１００は、配置場所の配置状態を示す配置状態データ、及び積み付け対象の物品の情報を示す物品情報データを、環境の現在状態を表す状態変数として観測する状態観測部１０６と、配置場所における物品の配置を示す物品配置データを、ラベルデータとして取得するラベルデータ取得部１０８と、状態変数と判定データとを用いて、配置状態データ及び物品情報データと、物品配置データとを関連付けて学習する学習部１１０とを備える。【選択図】図２
2019038054.tif 000002
【特許請求の範囲】
【請求項１】
設置場所に設置された複数の物品を配置場所へと積み付けるようにロボットを制御する物品積み付け装置であって、
前記配置場所の配置状態及び積み付け対象の物品の情報に対する前記配置場所における該物品の配置の推定を学習する機械学習装置を備え、
前記機械学習装置は、
前記配置場所の配置状態を示す配置状態データ、及び積み付け対象の物品の情報を示す物品情報データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記配置場所における前記物品の配置を示す物品配置データを、ラベルデータとして取得するラベルデータ取得部と、
前記状態変数と前記ラベルデータとを用いて、前記配置状態データ及び前記物品情報データと、前記物品配置データとを関連付けて学習する学習部と、
を備える物品積み付け装置。
【請求項２】
前記物品情報データは、少なくとも複数の物品の情報を含む、
請求項１に記載の物品積み付け装置。
【請求項３】
前記物品配置データは、更に前記物品の仮置きに係る情報を含む、
請求項１又は２に記載の物品積み付け装置。
【請求項４】
前記学習部は、
前記状態変数及び前記ラベルデータとを用いて、前記配置状態データ及び前記物品情報データから前記物品配置データを導く相関性モデルと予め用意された教師データから識別される相関性特徴との誤差を計算する誤差計算部と、
前記誤差を縮小するように前記相関性モデルを更新するモデル更新部とを備える、
請求項１〜３のいずれか１つに記載の物品積み付け装置。
【請求項５】
前記学習部は、前記状態変数と前記ラベルデータとを多層構造で演算する、
請求項１〜４のいずれか１つに記載の物品積み付け装置。
【請求項６】
前記学習部による学習結果に基づいて、前記配置場所における前記物品の配置の推定結果を出力する推定結果出力部を更に備える、
請求項１〜５のいずれか１つに記載の物品積み付け装置。
【請求項７】
前記機械学習装置は、クラウドサーバに存在する、
請求項１〜６のいずれか１つに記載の物品積み付け装置。
【請求項８】
前記機械学習装置は、複数の物品積み付け装置で取得した前記状態変数と前記ラベルデータとを用いて、学習を行うことを特徴とする、
請求項１〜７のいずれか１つに記載の物品積み付け装置。
【請求項９】
設置場所に設置された複数の物品を配置場所へと積み付ける作業における、前記配置場所の配置状態及び積み付け対象の物品の情報に対する前記配置場所における該物品の配置の推定を学習する機械学習装置であって、
前記配置場所の配置状態を示す配置状態データ、及び積み付け対象の物品の情報を示す物品情報データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記配置場所における前記物品の配置を示す物品配置データを、ラベルデータとして取得するラベルデータ取得部と、
前記状態変数と前記ラベルデータとを用いて、前記配置状態データ及び前記物品情報データと、前記物品配置データとを関連付けて学習する学習部と、
を備える機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物品積み付け装置及び機械学習装置に関し、特にロボットを用いて物品を積み付ける装置及び機械学習装置に関する。
【背景技術】
【０００２】
ロボットを用いて物品を把持搬送し、平置きや段積みをするシステムがよく利用されている。このようなシステムでは、搬送する物品を配置する場所を予めパターン化し、そのパターンに従いロボットが物品を配置することが行われる。物品の積み付けに係る従来技術として、例えば特許文献１には、搬送するワークを配置する場所を予めパターン化しておき、搬送中のワークの外形から適したパターンを選択し、ワークに応じたワークの積載を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０６−１１４７７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、物品の特性（大きさ、形状、重さ等）によって積み付ける場所を変える必要がある場合、例えば、大きいものや重いものを下の方の段に積み付けたい場合や、安定性の悪い形状のものは上の段に積みつけたいという場合などには、単純にパターンに従ってワークを積み付けることができない。
【０００５】
また、予めシステムに組み込まれていないパターンで積み付けを行った方が、積載効率が良い等の利点がある場合においても、単純なパターン化は困難である。例えば、物品が一定の大きさの直方体の場合には積み付けパターンを予め定義することが簡単であるが、物品の大きさが異なっていたり、その形状が直方体でなかったりする場合には、パターンは予め定義しておくことが難しい。
【０００６】
更に、積み付ける必要のある全ての物品の情報が予め手に入れられない場合には、未来の可能性を予測して動作する必要がある。それは、ある物品をすぐに配置できるとしても、その物品をそこに配置することが、望ましくないこともあるためである。例えば、比較的小さいサイズの物品が来たときに、先にその物品を積み付けてしまうと、その上に大きなサイズの物品を載せることができなくなってしまう。このような場合には、最終的な積み付け箇所に積みつける前に仮置きをするなどして対応しなければならない。
【０００７】
そこで本発明の目的は、物品の特性や現場の状況に応じた適切な物品の積み付けが可能な物品積み付け装置及び機械学習装置を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の物品積み付け装置では、積み付けの対象となる物品の特性等を含む物品の情報に合わせた最適な積み付け方を学習する機械学習装置を用意し、該機械学習装置に既に当該物品を積み付けている現場で取得した学習データを用いて学習を行わせることで、物品の特性や現場の状況によって変わり得る物品の積み付け方を学習させる。そして、本発明の物品積み付け装置は、機械学習装置が出力した物品の積み付け方に従って物品の搬送・積み付けを行なう。
【０００９】
そして、本発明の一態様は、設置場所に設置された複数の物品を配置場所へと積み付けるようにロボットを制御する物品積み付け装置であって、前記配置場所の配置状態及び積み付け対象の物品の情報に対する前記配置場所における該物品の配置の推定を学習する機械学習装置を備え、前記機械学習装置は、前記配置場所の配置状態を示す配置状態データ、及び積み付け対象の物品の情報を示す物品情報データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記配置場所における前記物品の配置を示す物品配置データを、ラベルデータとして取得するラベルデータ取得部と、前記状態変数と前記判定データとを用いて、前記配置状態データ及び前記物品情報データと、前記物品配置データとを関連付けて学習する学習部と、を備える物品積み付け装置である。
【００１０】
本発明の他の態様は、設置場所に設置された複数の物品を配置場所へと積み付ける作業における、前記配置場所の配置状態及び積み付け対象の物品の情報に対する前記配置場所における該物品の配置の推定を学習する機械学習装置であって、前記配置場所の配置状態を示す配置状態データ、及び積み付け対象の物品の情報を示す物品情報データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記配置場所における前記物品の配置を示す物品配置データを、ラベルデータとして取得するラベルデータ取得部と、前記状態変数と前記判定データとを用いて、前記配置状態データ及び前記物品情報データと、前記物品配置データとを関連付けて学習する学習部と、を備える機械学習装置である。
【発明の効果】
【００１１】
本発明により、物品の特性や現場の状況に応じて、積み付け対象の物品の配置場所内における適切な配置を決定できるようになる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態による物品積み付け装置の概略的なハードウェア構成図である。
【図２】一実施形態による物品積み付け装置の概略的な機能ブロック図である。
【図３】物品に係る情報の例を示す図である。
【図４】一実施形態による物品積み付け装置の学習時の動作について説明する図である。
【図５】一実施形態による物品積み付け装置のロボット制御時の動作について説明する図である。
【図６】物品積み付け装置の一形態を示す概略的な機能ブロック図である。
【図７Ａ】ニューロンを説明する図である。
【図７Ｂ】ニューラルネットワークを説明する図である。
【図８】配置場所に配置された物品を統合した形状で学習する例を示す図である。
【図９】物品積み付け装置を組み込んだシステムの一形態を示す概略的な機能ブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を図面と共に説明する。
図１は第１の実施形態による物品積み付け装置の要部を示す概略的なハードウェア構成図である。物品積み付け装置１は、例えばロボット７０を制御するロボットコントローラとして実装することができる。本実施形態による物品積み付け装置１が備えるＣＰＵ１１は、物品積み付け装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って物品積み付け装置１全体を制御する。ＲＡＭ１３には一時的な計算データ、図示しない入力部を介してオペレータが入力した各種データ等が一時的に格納される。
【００１４】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、物品積み付け装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、図示しない入力部を介してオペレータが入力した各種データ（例えば、積み付け対象となる物品に係るデータや、ロボットによる物品の積み付け動作の制御に用いられる設定値など）や、図示しないインタフェースを介して入力された制御用のプログラムなどが記憶されている。不揮発性メモリ１４に記憶されたプログラムや各種データは、実行時／利用時にはＲＡＭ１３に展開されても良い。また、ＲＯＭ１２には、積み付け対象となる物品や、配置場所への物品の配置状態を視覚センサ６０が検出した検出値（撮像データ）に基づいて解析する公知の解析プログラムや後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムなどを含むシステム・プログラムがあらかじめ書き込まれている。
【００１５】
視覚センサ６０は、例えば機械学習機の学習段階においては、配置場所に配置された物品の状態を検出するために、また、物品積み付け装置１による物品積み付けを行なう段階においては、積み付ける対象となる物品を検出するために用いられる。視覚センサ６０は、例えば作業場に固定的に取り付けられた撮像装置であっても良いし、ロボット７０のロボットアームに取り付けられた撮像装置であっても良い。視覚センサ６０は、インタフェース１８を介して検出した検出値（撮像データ）をＣＰＵ１１に渡す。
【００１６】
制御回路１９はＣＰＵ１１からの指令を受けてロボット７０の積み付け動作を制御する。制御回路１９は、例えばロボットハンドによる物品の把持動作を制御したり、ロボット７０の各関節を駆動するモータを制御して把持した物品を配置場所内の指令した配置へと移動させる制御を行う。ロボット７０による物品の積み付け動作に係る制御技術の詳細はすでに公知となっているので、本明細書による説明は省略する。
【００１７】
インタフェース２１は、物品積み付け装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、機械学習装置１００全体を統御するプロセッサ１０１と、システム・プログラム等を記憶したＲＯＭ１０２、機械学習に係る各処理における一時的な記憶を行うためのＲＡＭ１０３、及び学習モデル等の記憶に用いられる不揮発性メモリ１０４を備える。機械学習装置１００は、インタフェース２１を介して物品積み付け装置１で取得可能な各情報（視覚センサ６０により検出された物品の情報、配置場所への物品の配置状態など）を観測することができる。また、物品積み付け装置１は、機械学習装置１００から出力される物品の配置の指示を受けて、ロボット７０による物品の積み付け動作を制御する。
【００１８】
図２は、第１の実施形態による物品積み付け装置１と機械学習装置１００の概略的な機能ブロック図である。図２に示した各機能ブロックは、図１に示した物品積み付け装置１が備えるＣＰＵ１１、及び機械学習装置１００のプロセッサ１０１が、それぞれのシステム・プログラムを実行し、物品積み付け装置１及び機械学習装置１００の各部の動作を制御することにより実現される。
【００１９】
本実施形態の物品積み付け装置１は、ロボット７０を制御する制御部３４を備える。
制御部３４は、機械学習装置１００から出力された積み付け対象の物品の配置の指示に基づいて、ロボット７０を制御して積み付け対象の荷物を把持して配置場所の指示された配置に該物品を設置する。
【００２０】
本実施形態の機械学習装置１００は、配置場所の配置状態と積み付け対象の物品の情報とに対する、積み付け対象の物品の配置を、いわゆる機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ１０１等）を含む。物品積み付け装置１が備える機械学習装置１００が学習するものは、配置場所の配置状態と積み付け対象の物品の情報と、積み付け対象の物品の配置との、相関性を表すモデル構造に相当する。
【００２１】
図２に機能ブロックで示すように、物品積み付け装置１が備える機械学習装置１００は、配置場所の配置状態を示す配置状態データＳ１と、積み付け対象の物品の情報を示す物品情報データＳ２を含む環境の現在状態を表す状態変数Ｓとして観測する状態観測部１０６と、積み付け対象の物品の配置を示す物品配置データＬ１を含むラベルデータＬを取得するラベルデータ取得部１０８と、状態変数ＳとラベルデータＬとを用いて、配置場所の配置状態及び積み付け対象の物品の情報に、積み付け対象の物品の配置を関連付けて学習する学習部１１０と、更に、配置場所の配置状態及び積み付け対象の物品の情報に基づいて現在の学習済みモデルを用いて判定結果を出力する推定結果出力部１２２とを備える。
【００２２】
状態観測部１０６は、例えばプロセッサ１０１の一機能として構成できる。或いは状態観測部１０６は、例えばプロセッサ１０１を機能させるためのＲＯＭ１０２に記憶されたソフトウェアとして構成できる。状態観測部１０６が観測する状態変数Ｓのうち、配置状態データＳ１は、例えば配置場所の各物品の配置のセットとして取得することができる。
【００２３】
配置状態データＳ１は、学習部１１０の学習時においては、物品の積み付けの現場において作業者により配置場所に既に配置された各物品のある時点での配置を視覚センサ６０により検出することにより得られる。例えば、配置状態データＳ１として、ある時点で配置場所に既に配置された全ての物品の形状、重さ、位置、姿勢等をテーブルで記憶しても良い。または、配置場所に既に配置された全ての物品を統合した形状（図８）として記憶しても良い。また、配置状態データＳ１は、学習部１１０が学習した結果に基づく積み付け対象の物品の配置の推定時（即ち、ロボット７０により物品の積みつけが行なわれている時）には、それまでにロボット７０が設置場所に物品を配置した履歴から取得することができ、このような場合においては、機械学習装置１００はロボット７０が配置場所に物品を配置した履歴をＲＡＭ１０３に一時的に記憶しておき、状態観測部１０６は、ＲＡＭ１０３に記憶された配置場所の物品の配置履歴に基づいて、配置場所の配置状態を示す情報を構成し、これを配置状態データＳ１として取得するようにすれば良い。
【００２４】
状態変数Ｓのうち、物品情報データＳ２は、例えば、以下のようにして得ることができる。物品が設置場所に搬送されてくると、視覚センサ６０により該物品の表面等に貼付乃至印刷された該物品の識別ＩＤを読み取る。各物品の特性を含む各種データは予め計測されており、図３のような形式で、各物品を一意に識別するＩＤ情報と、物品の形状、物品の重さ、物品を利用する工程などの情報を関連付けて物品積み付け装置１の不揮発性メモリ１４などに予め記憶してある。読み取った識別ＩＤを用いて不揮発性メモリ１４に予め記憶されている該物品に係るデータを取得し、取得した積み付け対象の物品に係るデータを、状態観測部１０６が物品情報データＳ２に追加する。物品情報データＳ２には、物品の直接的な情報ではなく識別ＩＤを追加するようにしても良い。その場合でも識別ＩＤを用いて、図３のテーブルから、物品に係るデータを取得することができる。物品情報データＳ２には、その時点で分かっている、これから配置する予定の物品の情報が記憶されていることになる。また、物品が設置場所に搬送されてきたときに、視覚センサ６０により物品の形状などを取得するようにしても良い。物品に係るデータとしては、図３に例示されるもの以外にも、例えば、物品の材質や破損し易さ、物品に対する作業履歴等の情報を採用しても良い。
【００２５】
ラベルデータ取得部１０８は、例えばプロセッサ１０１の一機能として構成できる。或いはラベルデータ取得部１０８は、例えばプロセッサ１０１を機能させるためのＲＯＭ１０２に記憶されたソフトウェアとして構成できる。ラベルデータ取得部１０８は、学習部１１０の学習時において、ラベルデータＬとして、積み付け対象の物品の配置を示す物品配置データＬ１を取得する。物品配置データＬ１は、配置状態データＳ１に含まれるものと同じにすれば良い。配置状態データＳ１はある時点で配置済みの全ての物品の情報が含まれるのに対して、物品配置データＬ１は一度に配置する１つ以上の物品の数の分だけ情報が含まれる。一つ以上の物品を配置した場合には、それを一つずつ配置したものとして学習しても良いし、複数の物品を配置したものとして学習しても良い。物品配置データＬ１は、物品の積み付けの現場において作業者により配置場所に配置された積み付け対象となる物品の配置を視覚センサ６０により検出することにより得られる。ラベルデータ取得部１０８は、学習部１１０による学習時において利用され、学習部１１０による学習が完了した後は機械学習装置１００の必須の構成とする必要は無い。
【００２６】
学習部１１０は、例えばプロセッサ１０１の一機能として構成できる。或いは学習部１１０は、例えばプロセッサ１０１を機能させるためのＲＯＭ１０２に記憶されたソフトウェアとして構成できる。学習部１１０は、機械学習と総称される任意の学習アルゴリズムに従い、状態変数Ｓ（配置場所の配置状態を示す配置状態データＳ１及び積み付け対象の物品の情報を示す物品情報データＳ２）に対するラベルデータＬ（積み付け対象の物品の配置を示す物品配置データＬ１）を学習する。学習部１１０は、例えば状態変数Ｓに含まれる配置状態データＳ１及び積み付け対象の物品の情報を示す物品情報データＳ２と、ラベルデータＬに含まれる物品配置データＬ１との相関性を学習することができる。学習部１１０は、状態変数ＳとラベルデータＬとを含むデータ集合に基づく学習を反復実行することができる。
【００２７】
本発明の学習部１１０による学習では、例えば以下の方法を用いて積み付け方を学習するための学習データを取得し、望ましい積み付け方を学習する。
図４は、学習時における物品の積み込み作業の現場を示す図である。なお、図４では物品積み付け装置１は省略されている。学習時には、作業者が手作業で物品を配置場所へと配置する。配置前の物品は設置場所に設置されている。設置場所への荷物の移動は作業者等の人間が手動で行っても良いし、コンベヤなどの搬送手段で行ってもよい。物品の積み付け作業は、設置場所に設置されている物品を作業者が把持して配置場所に配置する作業として定義できる。
【００２８】
配置場所の上方には視覚センサ６０が設置されており、物品の位置情報を計測することができる。物品の高さが決まっていないのであれば、視覚センサは３次元情報を取得できるものが望ましい。
【００２９】
また、ある時点において設置場所に設置されている物品の情報は何らかの手段で得られるものとする。例えば、前記したように物品積み付け装置１の不揮発性メモリ１４に、予め設置場所に搬送されてくる物品の情報を記憶しておき、その情報を取得できるようにしてもよいし、また、設置場所に別途視覚センサなどのセンサを配置して、そのセンサから情報を取得できるようにしてもよい。物品の情報とは、物品の物理量（大きさ、形状、重さ、材質）でも良いし、物品に対する作業履歴や物品に対して一意に振られたＩＤでも良い。物品の大きさや重さについては、絶対値ではなくても何等かの式に従って変換した値を用いても良い。例えば、ある現場では重さが１０ｋｇから１００ｋｇまでの物を扱うが、ある現場では重さが１００ｇから１ｋｇまでのものを扱う可能性があるような場合には、正規化した重さを用いて学習することで、様々な現場に対して汎用的な学習を行うことができる。
【００３０】
以下に、学習データを取得する方法の一例について説明する。初期状態では配置場所には、物品を配置するためのパレットや籠等がおかれている。ここではパレットが置かれているものとする。パレットの上に物品は配置されていない。設置場所には、配置場所に積み付ける対象となる物品が設置されている。この時点で積み付ける全ての物品が設置場所に設置されていてもよいし、一部の物品のみが設置されていてもよい。一部の物品のみが設置されている場合には、作業者が物品を配置するたびに、新たな物品が設置場所まで搬送されてくるようにすればよい。また、物品が搬送されるたびに物品情報が更新されるようにしても良い。初期状態での配置場所には何も置かれていないが、何も置かれていないときの情報を配置状態として記録しておく。
【００３１】
作業者が設置場所から対象物を一つ取り出し、配置場所まで搬送する。作業者は配置場所の状態を確認し、適切な場所に物品を配置する。配置場所の上方に設置されている視覚センサ６０では、適切なタイミングで配置された物品の位置姿勢などの情報を配置情報として取得する。配置情報を取得するタイミングは作業者が図示しない物品積み付け装置１に接続された機械操作盤のボタンを押したタイミングでも良いし、視覚センサ６０で配置場所を監視して状態が変化して一定時間たったタイミングとしてもよい。配置場所に配置された物品が、設置場所に設置されていたどの物品なのかは、視覚センサ６０から得た情報を使って不揮発性メモリ１４に記憶されている物品に係る情報内の類似した物品を探索することで判別したり、物品の表面等に貼付乃至印刷された該物品の識別ＩＤから判別することができる。作業者が物品を設置場所から配置場所まで移動する一回のステップで、配置場所の配置状態、物品に係る情報、及び該物品の配置の組を一つ記憶することができる。作業者が一度に複数の物品を配置した場合には、それを一組としても良いし、複数の組として記憶しても良い。設置場所から取り出された物品については、不揮発性メモリ１４に記憶されている物品に係る情報から削除したり、配置済みであることを示すフラグを付与するようにしても良い。前回の配置場所の配置状態に、今回の物品の配置を追加することにより、次の段階で使用する配置場所の配置状態の情報を作ることができる。
【００３２】
作業者による物品の積み付け作業は、設置場所から物品が無くなるか、配置場所がいっぱいになるまで行なわれる。これにより、配置場所の配置状態、物品に係る情報、及び該物品の配置の組が作業の繰返し回数の分だけ得られる。
【００３３】
このようにして得られた配置場所の配置状態、物品に係る情報、及び該物品の配置の組を学習用のデータとして利用する。学習は、ステップ毎に、配置場所の配置状態、物品に係る情報を状態変数とし、物品の配置をラベルデータとして行なわれる。学習は、作業者による作業中に得られたデータを用いて逐次行なっても良いし、ある程度の数の配置場所の配置状態、物品に係る情報、及び該物品の配置の組が得られるまではひたすらデータを蓄積し、後に蓄積したデータを用いてオフライン学習するようにしても良い。
【００３４】
このような学習サイクルを繰り返すことにより、学習部１１０は、配置場所の配置状態（配置状態データＳ１）及び積み付け対象の物品の情報（物品情報データＳ２）と積み付け対象の物品の配置（物品配置データＬ１）との相関性を暗示する特徴を自動的に識別することができる。学習アルゴリズムの開始時には、配置状態データＳ１及び物品情報データＳ２と物品配置データＬ１との相関性は実質的に未知であるが、学習部１１０は、学習を進めるに従い徐々に特徴を識別して相関性を解釈する。配置状態データＳ１及び物品情報データＳ２と物品配置データＬ１との相関性が、ある程度信頼できる水準まで解釈されると、学習部１１０が反復出力する学習結果は、現在状態に対して、積み付け対象となる物品をどこに配置するべきかという判定を行うために使用できるものとなる。つまり学習部１１０は、学習アルゴリズムの進行に伴い、配置場所の配置状態及び積み付け対象の物品の情報と、積み付け対象となる物品の配置との相関性を最適解に徐々に近づけることができる。
【００３５】
推定結果出力部１２２は、学習部１１０が学習した結果に基づいて、配置場所の配置状態及び積み付け対象の物品の情報に対する積み付け対象となる物品の配置の推定を行い、該推定結果を制御部３４へと出力する。推定結果出力部１２２は、学習部１１０による学習が完了した状態において、機械学習装置１００に配置場所の配置状態及び積み付け対象の物品の情報が入力されると、積み付け対象となる物品の適切な配置を出力する。
【００３６】
図５は、学習部１１０による学習が完了した後に、推定結果出力部１２２から出力される積み付け対象となる物品の配置の推定に基づいてロボット７０を制御して物品の積み込み作業を行なう状況を示す図である。ロボット７０の先端にはロボットハンドが取り付けられており、該ロボットハンドを制御することで物品を把持することができる。配置前の物品は設置場所に設置されている。設置場所への荷物の搬送は、作業者等の人間が手動で行っても良いし、コンベヤ等の搬送手段で行ってもよい。設置場所に設置されている物品をロボット７０がロボットハンドで把持し、配置場所まで搬送し、配置を行う。
【００３７】
設置場所の上方には視覚センサ６０が設置されており、物品の位置情報を計測することができる。物品の高さが決まっていないのであれば、視覚センサは３次元情報を取得できるものが望ましい。設置場所におかれている物品の位置情報及び物品ＩＤが別の手段（システム的に位置が取得できるなど）で取得できるのであれば視覚センサ６０は無くてもよいが、物品の位置情報及び物品ＩＤを特定するための何らかの他の手段が必要となる。
【００３８】
以下で、ロボットが学習済みの学習部１１０を用いて積み付けを行う方法について説明する。まず、状態観測部１０６は、設置場所に置かれているこれから積み付けを行う一個以上の物品を特定し、特定した物品に係る情報を取得する。次に、状態観測部１０６は、配置場所の配置状態を取得する。配置場所の配置状態は、例えば配置場所の情報に視覚センサを設置し、該視覚センサを用いて取得するようにしても良いが、配置場所の上方に視覚センサが設置されていなくとも、それまでに配置場所にロボット７０が物品を配置した履歴から配置情報を作成することが可能である。この時、配置情報は、初期状態（何も配置されていない）から順に物品が一つずつ配置された時の配置情報の時系列データとして作成することができる。
【００３９】
状態観測部１０６が配置場所の配置情報及び物品に係る情報を観測すると、推定結果出力部１２２は学習部１１０の学習結果を用いて積み付け対象の物品の配置を推定して出力する。物品の配置には、どの物品をどの位置に置くべきかという情報が含まれる。そして、推定結果出力部１２２から出力された積み付け対象となる物品の配置を受けて、制御部３４は、配置するべき物品の設置場所における位置から物品を取り出し、当該物品を配置場所の指示された位置へと配置するようにロボット７０を制御する。この作業は、設置場所から物品がなくなるか、または、配置場所がいっぱいになるまで行われる。
【００４０】
物品積み付け装置１が備える機械学習装置１００の一変形例として、積み付け対象となる物品の配置として仮置き場への仮置きを行なうことができるようにしても良い。この場合、物品配置データＬ１として通常の物品の配置に加えて仮置きしたことを示す情報を用意しておき、仮置き場に対して作業者が荷物をおいた場合に物品配置データＬ１として仮置きしたことを示す情報を用いるようにする。また、仮置きされた物品は設置場所に残されているものとして扱い、その設置位置を仮置き場に仮置きした位置へと変更しておく。
【００４１】
上記変形例によれば、機械学習装置１００は、配置場所の配置状態（配置状態データＳ１）及び積み付け対象の物品の情報（物品情報データＳ２）の入力に対して、通常の配置場所への物品の配置以外に、必要に応じて仮置き場への仮置きすることを推定できるようになり、より柔軟性の高い積み付け作業をロボット７０に行わせることができるようになる。
【００４２】
上記構成を有する機械学習装置１００では、学習部１１０が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図６は、図２に示す物品積み付け装置１の他の形態であって、学習アルゴリズムの他の例として教師あり学習を実行する学習部１１０を備えた構成を示す。教師あり学習は、入力とそれに対応する出力との既知のデータセット（教師データと称する）が与えられ、それら教師データから入力と出力との相関性を暗示する特徴を識別することで、新たな入力に対する所要の出力を推定するための相関性モデルを学習する手法である。
【００４３】
図６に示す物品積み付け装置１が備える機械学習装置１００において、学習部１１０は、状態変数Ｓに含まれる配置場所の配置情報及び物品に係る情報から積み付け対象の物品の配置を推定する相関性モデルＭと作業者による物品の積み付け作業から得られた教師データＴから識別される相関性特徴との誤差Ｅを計算する誤差計算部１１２と、誤差Ｅを縮小するように相関性モデルＭを更新するモデル更新部１１４とを備える。学習部１１０は、モデル更新部１１４が相関性モデルＭの更新を繰り返すことによって配置場所の配置情報及び物品に係る情報に対する積み付け対象となる物品の配置の推定を学習する。
【００４４】
相関性モデルＭの初期値は、例えば、状態変数Ｓと積み付け対象となる物品の配置との相関性を単純化して（例えば一次関数で）表現したものであり、教師あり学習の開始前に学習部１１０に与えられる。教師データＴは、本発明では作業者による積み付け作業から得られた経験値によって構成でき、物品積み付け装置１の序盤の運用時に随時学習部１１０に与えられる。誤差計算部１１２は、学習部１１０に随時与えられた教師データＴから配置場所の配置情報及び物品に係る情報と積み付け対象となる物品の配置との相関性を暗示する相関性特徴を識別し、この相関性特徴と、現在状態における状態変数Ｓ及びラベルデータＬに対応する相関性モデルＭとの誤差Ｅを求める。モデル更新部１１４は、例えば予め定めた更新ルールに従い、誤差Ｅが小さくなる方向へ相関性モデルＭを更新する。
【００４５】
次の学習サイクルでは、誤差計算部１１２は、更新後の相関性モデルＭに従って状態変数Ｓを用いて仕分け対象物の仕分けの判定が行われ、該判定の結果と実際に取得されたラベルデータＬの誤差Ｅを求め、モデル更新部１１４が再び相関性モデルＭを更新する。このようにして、未知であった環境の現在状態とそれに対する推定との相関性が徐々に明らかになる。
【００４６】
前述した教師あり学習を進める際に、ニューラルネットワークを用いることができる。図７Ａは、ニューロンのモデルを模式的に示す。図７Ｂは、図７Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００４７】
図７Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する結果ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数１式により表現される出力ｙを出力する。なお、数２式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００４８】
【数１】
2019038054.tif 000003
【００４９】
図７Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してｗ１で表す)が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００５０】
図７Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してｗ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みｗ１と重みｗ２との間の特徴を表す。
【００５１】
図７Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してｗ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みｗ２と重みｗ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００５２】
物品積み付け装置１が備える機械学習装置１００においては、状態変数Ｓを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、配置場所の配置情報及び物品に係る情報に対する積み付け対象となる物品の配置（結果ｙ）を出力することができる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００５３】
上記した機械学習装置１００の構成は、プロセッサ１０１が各々実行する機械学習方法（或いはソフトウェア）として記述できる。この機械学習方法は、配置場所の配置情報及び物品に係る情報に対する積み付け対象となる物品の配置の推定を学習する機械学習方法であって、プロセッサ１０１が、配置場所の配置状態（配置状態データＳ１）及び積み付け対象の物品の情報（物品情報データＳ２）を現在状態を表す状態変数Ｓとして観測するステップと、積み付け対象の物品の配置（物品配置データＬ１）をラベルデータＬとして取得するステップと、状態変数ＳとラベルデータＬとを用いて、配置状態データＳ１及び物品情報データＳ２と、積み付け対象の物品の配置とを関連付けて学習するステップとを有する。
【００５４】
機械学習装置１００の学習部１１０により学習されて得られた学習済みモデルは機械学習に係るソフトウェアの一部であるプログラムモジュールとしての利用することが可能である。本発明の学習済みモデルは、ＣＰＵやＧＰＧＰＵ等のプロセッサとメモリを備えるコンピュータにて用いることができる。より具体的には、コンピュータのプロセッサが、メモリに記憶された学習済みモデルからの指令に従って、配置場所の配置情報及び物品に係る情報を入力として演算を行い、演算結果に基づいて配置場所の配置情報及び物品に係る情報に対する積み付け対象の物品の配置を出力するように動作する。本発明の学習済みモデルは、外部記憶媒体やネットワーク等を介して他のコンピュータに対して複製して利用することが可能である。
【００５５】
また、本発明の学習済みモデルを他のコンピュータに対して複製して新しい環境で利用する際に、当該環境で得られた新たな状態変数や判定データに基づいて当該学習済みモデルに対して更なる学習を行わせることもできる。このようにした場合、当該環境による学習済みモデルから派生した学習済みモデル（以下、派生モデルとする）を得ることが可能である。本発明の派生モデルは、所定の配置場所の配置情報及び所定の物品に係る情報に対する積み付け対象の物品の配置の推定の結果を出力するという点では元の学習済みモデルと同じだが、元の学習済みモデルよりも新しい環境（新しい配置場所及び物品）に適合した結果を出力するという点で異なる。この派生モデルもまた、外部記憶媒体やネットワーク等を介して他のコンピュータに対して複製して利用することが可能である。
【００５６】
更に、本発明の学習済みモデルを組み込んだ機械学習装置に対する入力に対して得られる出力を用いて、他の機械学習装置において１から学習を行うことで得られる学習済みモデル（以下、蒸留モデルとする）を作成し、これを利用することも可能である（このような学習工程を蒸留と言う）。蒸留において、元の学習済みモデルを教師モデル、新たに作成する蒸留モデルを生徒モデルとも言う。一般に、蒸留モデルは元の学習済みモデルよりもサイズが小さく、それでいてと元の学習済みモデルと同等の正確度を出せるため、外部記憶媒体やネットワーク等を介した他のコンピュータに対する配布により適している。
【００５７】
図９は、物品積み付け装置１’を備えた一実施形態によるシステム１７０を示す。システム１７０は、機械学習装置１００及び少なくとも同一の作業を行う複数の（機械学習装置１００を備えない）物品積み付け装置１’と、それら物品積み付け装置１’を互いに接続する有線／無線のネットワーク１７２とを備える。
【００５８】
上記構成を有するシステム１７０では、機械学習装置１００が、複数の物品積み付け装置１’のそれぞれで行なわれる作業者による積み付け動作から、配置場所の配置状態（配置状態データＳ１）及び積み付け対象の物品の情報（物品情報データＳ２）と積み付け対象の物品の配置（物品配置データＬ１）との相関性を暗示する特徴を学習することができる。したがってシステム１７０によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、物品の積み付け動作の学習の速度や信頼性を向上させることができる。また、システム１７０では、複数の物品積み付け装置１’の間で機械学習装置１００による学習結果を共有するように構成できる。
【００５９】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００６０】
例えば、機械学習装置１００が実行する学習アルゴリズム、機械学習装置１００が実行する演算アルゴリズム、物品積み付け装置１が実行する制御アルゴリズム等は、前記したものに限定されず、様々なアルゴリズムを採用できる。
【００６１】
また、上記した実施形態では物品積み付け装置１と機械学習装置１００が異なるＣＰＵ（プロセッサ）を有する装置として説明しているが、機械学習装置１００は物品積み付け装置１が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現するようにしても良い。
【００６２】
更に、上記した実施形態では機械学習装置１００が物品積み付け装置１の上にある例を示しているが、機械学習装置１００はネットワークに用意されたクラウドサーバ等に存在する構成とすることも可能である。
【符号の説明】
【００６３】
１  物品積み付け装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１８，２１  インタフェース
１９  制御回路
２０  バス
３４  制御部
６０  視覚センサ
７０  ロボット
１００  機械学習装置
１０１  プロセッサ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１０６  状態観測部
１０８  ラベルデータ取得部
１１０  学習部
１１２  誤差計算部
１１４  モデル更新部
１２２  推定結果出力部
１７０  システム
１７２  ネットワーク
【図１】
2019038054.tif 000004
【図２】
2019038054.tif 000005
【図３】
2019038054.tif 000006
【図４】
2019038054.tif 000007
【図５】
2019038054.tif 000008
【図６】
2019038054.tif 000009
【図７Ａ】
2019038054.tif 000010
【図７Ｂ】
2019038054.tif 000011
【図８】
2019038054.tif 000012
【図９】
2019038054.tif 000013