(57)【特許請求の範囲】
【請求項１】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク（１２）からハンド部（１３）によって前記ワーク（１２）を取り出すロボット（１４）の動作を学習する機械学習装置であって、
バラ積みされた複数のワーク（１２）を計測し、当該複数のワーク（１２）の表面の三次元位置情報を出力する三次元計測器（１５）の出力データおよび前記ワーク(１２)の前記ハンド部（１３）による取り出し動作を前記ハンド部（１３）の位置，姿勢および取り出し方向をそれぞれ設定する状態量を観測する状態量観測部（２１，３１）と、
前記ハンド部（１３）によって前記ワーク（１２）を取り出す前記ロボット（１４）の取り出し動作の結果を取得する動作結果取得部（２６，３６）と、
前記状態量観測部（２１，３１）により観測された前記状態量および前記動作結果取得部（２６，３６）により取得された前記ロボット（１４）の取り出し動作の成否の判定結果を受け取って、前記ワーク（１２）の前記取り出し動作を学習する学習部（２２，３２）と、を備え、
前記学習部（２２）は、
前記動作結果取得部（２６）からの前記ワークの取り出しの成否の判定結果に基づいて報酬を計算する報酬計算部（２３）と、
前記ワーク（１２）の前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する価値関数更新部（２４）と、を備え、前記学習部（２２）により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数を前記価値関数に基づいて更新する学習を実施し、更新された前記状態変数に基づいて前記ハンド部（１３）および前記ロボット（１４）の各駆動軸を動作させる、
ことを特徴とする機械学習装置。
【請求項２】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク（１２）からハンド部（１３）によって前記ワーク（１２）を取り出すロボット（１４）の動作を学習する機械学習装置であって、
バラ積みされた複数のワーク（１２）を計測し、当該複数のワーク（１２）の表面の三次元位置情報を出力する三次元計測器（１５）の出力データおよび前記ワーク(１２)の前記ハンド部（１３）による取り出し動作を前記ハンド部（１３）の位置，姿勢および取り出し方向をそれぞれ設定する状態量を観測する状態量観測部（２１，３１）と、
前記ハンド部（１３）によって前記ワーク（１２）を取り出す前記ロボット（１４）の取り出し動作の結果を取得する動作結果取得部（２６，３６）と、
前記状態量観測部（２１，３１）により観測された前記状態量および前記動作結果取得部（２６，３６）により取得された前記ロボット（１４）の取り出し動作の成否の判定結果を受け取って、前記ワーク（１２）の前記取り出し動作を学習する学習部（２２，３２）と、を備え、
前記学習部（３２）は、前記ワーク（１２）の前記取り出し動作を学習する学習モデルを実装し、
前記動作結果取得部（３６）から出力されるラベルと、前記学習部（３２）に実装された前記学習モデルの出力に基づいて誤差を計算する誤差計算部（３３）と、
前記誤差に応じて前記学習モデルを更新する学習モデル更新部（３４）と、を備え、前記学習部（３２）により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数に基づいて、前記ハンド部（１３）および前記ロボット（１４）の各駆動軸を動作させる、
ことを特徴とする機械学習装置。
【請求項３】
さらに、
前記学習部（２２，３２）により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する前記状態変数に基づいて、前記ワーク(１２)の取り出し動作を前記ロボット（１４）に指令する指令データを決定する意思決定部（２５，３５）を備える、
ことを特徴とする請求項１または請求項２に記載の機械学習装置。
【請求項４】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク（１２）からハンド部（１３）によって前記ワーク（１２）を取り出すロボット（１４）の動作を学習する機械学習装置であって、
バラ積みされた複数のワーク（１２）を計測し、当該複数のワーク（１２）の表面の三次元位置情報を出力する三次元計測器（１５）の出力データ、前記ワーク(１２)の前記ハンド部（１３）による取り出し動作を前記ハンド部（１３）の位置，姿勢および取り出し方向をそれぞれ設定する、並びに、前記三次元計測器（１５）の計測パラメータを含む、状態量を観測する状態量観測部（２１，３１）と、
前記ハンド部（１３）によって前記ワーク（１２）を取り出す前記ロボット（１４）の取り出し動作の結果を取得する動作結果取得部（２６，３６）と、
前記状態量観測部（２１，３１）により観測された前記状態量および前記動作結果取得部（２６，３６）により取得された前記ロボット（１４）の取り出し動作の成否の判定結果を受け取って、前記ワーク（１２）の前記取り出し動作を学習する学習部（２２，３２）と、を備え、
前記学習部（２２）は、
前記動作結果取得部（２６）からの前記ワークの取り出しの成否の判定結果に基づいて報酬を計算する報酬計算部（２３）と、
前記ワーク（１２）の前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する価値関数更新部（２４）と、を備え、前記学習部（２２）により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数を前記価値関数に基づいて更新する学習を実施し、更新された前記状態変数に基づいて前記ハンド部（１３）および前記ロボット（１４）の各駆動軸を動作させる、
ことを特徴とする機械学習装置。
【請求項５】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク（１２）からハンド部（１３）によって前記ワーク（１２）を取り出すロボット（１４）の動作を学習する機械学習装置であって、
バラ積みされた複数のワーク（１２）を計測し、当該複数のワーク（１２）の表面の三次元位置情報を出力する三次元計測器（１５）の出力データ、前記ワーク(１２)の前記ハンド部（１３）による取り出し動作を前記ハンド部（１３）の位置，姿勢および取り出し方向をそれぞれ設定する、並びに、前記三次元計測器（１５）の計測パラメータを含む、状態量を観測する状態量観測部（２１，３１）と、
前記ハンド部（１３）によって前記ワーク（１２）を取り出す前記ロボット（１４）の取り出し動作の結果を取得する動作結果取得部（２６，３６）と、
前記状態量観測部（２１，３１）により観測された前記状態量および前記動作結果取得部（２６，３６）により取得された前記ロボット（１４）の取り出し動作の成否の判定結果を受け取って、前記ワーク（１２）の前記取り出し動作を学習する学習部（２２，３２）と、を備え、
前記学習部（３２）は、前記ワーク（１２）の前記取り出し動作を学習する学習モデルを実装し、
前記動作結果取得部（３６）から出力されるラベルと、前記学習部（３２）に実装された前記学習モデルの出力に基づいて誤差を計算する誤差計算部（３３）と、
前記誤差に応じて前記学習モデルを更新する学習モデル更新部（３４）と、を備え、前記学習部（３２）により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数に基づいて、前記ハンド部（１３）および前記ロボット（１４）の各駆動軸を動作させる、
ことを特徴とする機械学習装置。
【請求項６】
さらに、
前記学習部（２２，３２）により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する前記状態変数に基づいて、前記ワーク(１２)の取り出し動作を前記ロボット（１４）に指令する指令データ並びに前記三次元計測器（１５）の前記計測パラメータを決定する意思決定部（２５，３５）を備える、
ことを特徴とする請求項４または請求項５に記載の機械学習装置。
【請求項７】
前記状態量観測部（２１，３１）は、さらに、前記三次元計測器（１５）の出力する前記ワーク（１２）の表面の三次元位置情報に基づいて座標計算部（１９）により計算された前記ワーク（１２）毎の三次元位置情報も受け取る、
ことを特徴とする請求項１〜請求項６のいずれか１項に記載の機械学習装置。
【請求項８】
前記座標計算部（１９）は、さらに、
前記ワーク（１２）毎の姿勢データを計算し、計算された前記ワーク（１２）毎の三次元位置データおよび姿勢データを出力する、
ことを特徴とする請求項７に記載の機械学習装置。
【請求項９】
前記動作結果取得部（２６，３６）は、前記三次元計測器（１５）の出力データを利用して前記ロボット（１４）の取り出し動作の結果を取得する、
ことを特徴とする請求項１〜請求項８のいずれか１項に記載の機械学習装置。
【請求項１０】
さらに、
前記三次元計測器（１５）の出力データを、前記状態量観測部（２１，３１）への入力前に、前記状態量観測部（２１，３１）が処理しやすくなるように処理する前処理部（５０）を備え、
前記状態量観測部（２１，３１）は、前処理部（５０）の出力データを受け取る、
ことを特徴とする請求項１〜請求項９のいずれか１項に記載の機械学習装置。
【請求項１１】
前記前処理部（５０）は、前記三次元計測器（１５）の出力データに含まれる三次元位置データ（ｘ，ｙ，ｚ）および姿勢データ（ｗ，ｐ，ｒ）に対して回転および位置合わせを行って前記ワーク（１２）毎の中心の高さを一定に揃える、
ことを特徴とする請求項１０に記載の機械学習装置。
【請求項１２】
前記動作結果取得部（２６，３６）は、
前記ワーク（１２）の取り出しの成否に加え、前記ワーク（１２）の破損状態、並びに、前記ハンド部（１３）により前記ワーク（１２）を把持して運搬するのに要した時間およびエネルギー、或いは、前記時間および前記エネルギーを評価したもののうちの少なくとも１つを取得する、
ことを特徴とする請求項１〜請求項１１のいずれか１項に記載の機械学習装置。
【請求項１３】
前記機械学習装置は、
ニューラルネットワークを有する、請求項１〜請求項１２のいずれか１項に記載の機械学習装置。
【請求項１４】
請求項１〜請求項１３のいずれか１項に記載の機械学習装置（２０，３０）を備えたロボットシステム（１０，１０’）であって、
前記ロボット（１４）と、
前記三次元計測器（１５）と、
前記ロボット（１４）および前記三次元計測器（１５）をそれぞれ制御する制御装置（１６）と、を備える、
ことを特徴とするロボットシステム。
【請求項１５】
前記ロボットシステム（１０，１０’）は、複数の前記ロボット（１４）を備え、
前記機械学習装置（２０，３０）は、前記ロボット（１４）毎にそれぞれ設けられ、
複数の前記ロボット（１４）に設けられた複数の前記機械学習装置（２０）は、通信媒体を介して相互にデータを共有または交換するようになっている、
ことを特徴とする請求項１４に記載のロボットシステム。
【請求項１６】
前記機械学習装置（２０，３０）は、クラウドサーバ上に存在する、
ことを特徴とする請求項１５に記載のロボットシステム。
【請求項１７】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク（１２）からハンド部（１３）によって前記ワーク（１２）を取り出すロボット（１４）の動作を学習する機械学習装置による機械学習方法であって、
バラ積みされた複数のワーク（１２）を計測し、当該複数のワーク（１２）の表面の三次元位置情報を出力する三次元計測器（１５）の出力データおよび前記ワーク(１２)の前記ハンド部（１３）による取り出し動作を前記ハンド部（１３）の位置，姿勢および取り出し方向をそれぞれ設定する状態量を観測し、
前記ハンド部（１３）によって前記ワーク（１２）を取り出す前記ロボット（１４）の取り出し動作の結果を取得し、
観測された前記状態量および取得された前記ロボット（１４）の取り出し動作の成否の判定結果を受け取って、前記ワーク（１２）の前記取り出し動作を学習し、
前記取り出し動作の学習は、
取得された前記ワークの取り出しの成否の判定結果に基づいて報酬を計算し、
前記ワーク（１２）の前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新し、
前記取り出し動作の学習により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数を前記価値関数に基づいて更新する学習を実施し、更新された前記状態変数に基づいて前記ハンド部（１３）および前記ロボット（１４）の各駆動軸を動作させる、
ことを特徴とする機械学習方法。
【請求項１８】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク（１２）からハンド部（１３）によって前記ワーク（１２）を取り出すロボット（１４）の動作を学習する機械学習装置による機械学習方法であって、
バラ積みされた複数のワーク（１２）を計測し、当該複数のワーク（１２）の表面の三次元位置情報を出力する三次元計測器（１５）の出力データおよび前記ワーク(１２)の前記ハンド部（１３）による取り出し動作を前記ハンド部（１３）の位置，姿勢および取り出し方向をそれぞれ設定する状態量を観測し、
前記ハンド部（１３）によって前記ワーク（１２）を取り出す前記ロボット（１４）の取り出し動作の結果を取得し、
観測された前記状態量および取得された前記ロボット（１４）の取り出し動作の成否の判定結果を受け取って、前記ワーク（１２）の前記取り出し動作を学習し、
前記取り出し動作の学習は、前記ワーク（１２）の前記取り出し動作を学習する学習モデルを実装し、
与えられたラベルと、実装された前記学習モデルの出力に基づいて誤差を計算し、
前記誤差に応じて前記学習モデルを更新し、
前記取り出し動作の学習により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数に基づいて、前記ハンド部（１３）および前記ロボット（１４）の各駆動軸を動作させる、
ことを特徴とする機械学習方法。
【請求項１９】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク（１２）からハンド部（１３）によって前記ワーク（１２）を取り出すロボット（１４）の動作を学習する機械学習装置による機械学習方法であって、
バラ積みされた複数のワーク（１２）を計測し、当該複数のワーク（１２）の表面の三次元位置情報を出力する三次元計測器（１５）の出力データ、前記ワーク(１２)の前記ハンド部（１３）による取り出し動作を前記ハンド部（１３）の位置，姿勢および取り出し方向をそれぞれ設定する、並びに、前記三次元計測器（１５）の計測パラメータを含む、状態量を観測し、
前記ハンド部（１３）によって前記ワーク（１２）を取り出す前記ロボット（１４）の取り出し動作の結果を取得し、
観測された前記状態量および取得された前記ロボット（１４）の取り出し動作の成否の判定結果を受け取って、前記ワーク（１２）の前記取り出し動作を学習し、
前記取り出し動作の学習は、
取得された前記ワークの取り出しの成否の判定結果に基づいて報酬を計算し、
前記ワーク（１２）の前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新し、
前記取り出し動作の学習により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数を前記価値関数に基づいて更新する学習を実施し、更新された前記状態変数に基づいて前記ハンド部（１３）および前記ロボット（１４）の各駆動軸を動作させる、
ことを特徴とする機械学習方法。
【請求項２０】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク（１２）からハンド部（１３）によって前記ワーク（１２）を取り出すロボット（１４）の動作を学習する機械学習装置による機械学習方法であって、
バラ積みされた複数のワーク（１２）を計測し、当該複数のワーク（１２）の表面の三次元位置情報を出力する三次元計測器（１５）の出力データ、前記ワーク(１２)の前記ハンド部（１３）による取り出し動作を前記ハンド部（１３）の位置，姿勢および取り出し方向をそれぞれ設定する、並びに、前記三次元計測器（１５）の計測パラメータを含む、状態量を観測し、
前記ハンド部（１３）によって前記ワーク（１２）を取り出す前記ロボット（１４）の取り出し動作の結果を取得し、
観測された前記状態量および取得された前記ロボット（１４）の取り出し動作の成否の判定結果を受け取って、前記ワーク（１２）の前記取り出し動作を学習し、
前記取り出し動作の学習は、前記ワーク（１２）の前記取り出し動作を学習する学習モデルを実装し、
与えられたラベルと、実装された前記学習モデルの出力に基づいて誤差を計算し、
前記誤差に応じて前記学習モデルを更新し、
前記取り出し動作の学習により得られた前記ハンド部（１３）の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数に基づいて、前記ハンド部（１３）および前記ロボット（１４）の各駆動軸を動作させる、
ことを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バラ積みされた状態を含む、乱雑に置かれたワークの取り出し動作を学習する機械学習装置、ロボットシステムおよび機械学習方法に関する。
【背景技術】
【０００２】
従前より、例えば、かご状の箱にバラ積みされたワークを、ロボットのハンド部により把持して運搬するロボットシステムが知られている（例えば、特許文献１、２参照）。このようなロボットシステムにおいては、例えば、かご状の箱の上方に設置された三次元計測器を用いて複数のワークの位置情報を取得し、その位置情報に基づいてワークを１つずつロボットのハンド部によって取り出している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５６４２７３８号公報
【特許文献２】特許第５６７０３９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来のロボットシステムにおいては、例えば、三次元計測器により計測された複数のワークの距離画像から、取り出すワークをどのように抽出するのか、並びに、どの位置のワークを取り出すのかを事前に設定しておく必要がある。また、ワークを取り出すとき、ロボットのハンド部をどのように動作させるのかといったことも事前にプログラミングしておく必要がある。具体的に、例えば、人間がティーチングペンダントを用いて、ロボットにワークの取り出し動作を教示するといったことが必要になる。
【０００５】
そのため、複数のワークの距離画像から、取り出すワークを抽出する設定が適切でなかったり、ロボットの動作プログラムが適切に作成されないと、ロボットがワークを取り出して運搬する際の成功率が低下する。また、その成功率を高めるには、人間が試行錯誤を重ねてロボットの最適な動作を模索しながら、ワークの検出設定とロボットの動作プログラムとを改良していく必要がある。
【０００６】
そこで、本発明の目的は、上述したような実情に鑑み、バラ積みされた状態を含む、乱雑に置かれたワークを取り出すときのロボットの最適な動作を人間の介在無しに学習できる機械学習装置、ロボットシステムおよび機械学習方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る第１実施形態の第一構成例によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、バラ積みされた複数のワークを計測し、当該複数のワークの表面の三次元位置情報を出力する三次元計測器の出力データおよび前記ワークの前記ハンド部による取り出し動作を前記ハンド部の位置，姿勢および取り出し方向をそれぞれ設定する状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部により観測された前記状態量および前記動作結果取得部により取得された前記ロボットの取り出し動作の成否の判定結果を受け取って、前記ワークの前記取り出し動作を学習する学習部と、を備え、前記学習部は、前記動作結果取得部からの前記ワークの取り出しの成否の判定結果に基づいて報酬を計算する報酬計算部と、前記ワークの前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する価値関数更新部と、を備え、前記学習部により得られた前記ハンド部の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数を前記価値関数に基づいて更新する学習を実施し、更新された前記状態変数に基づいて前記ハンド部および前記ロボットの各駆動軸を動作させる機械学習装置が提供される。本発明に係る第１実施形態の第二構成例によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、バラ積みされた複数のワークを計測し、当該複数のワークの表面の三次元位置情報を出力する三次元計測器の出力データおよび前記ワークの前記ハンド部による取り出し動作を前記ハンド部の位置，姿勢および取り出し方向をそれぞれ設定する状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部により観測された前記状態量および前記動作結果取得部により取得された前記ロボットの取り出し動作の成否の判定結果を受け取って、前記ワークの前記取り出し動作を学習する学習部と、を備え、前記学習部は、前記ワークの前記取り出し動作を学習する学習モデルを実装し、前記動作結果取得部から出力されるラベルと、前記学習部に実装された前記学習モデルの出力に基づいて誤差を計算する誤差計算部と、前記誤差に応じて前記学習モデルを更新する学習モデル更新部と、を備え、前記学習部により得られた前記ハンド部の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数に基づいて、前記ハンド部および前記ロボットの各駆動軸を動作させる機械学習装置が提供される。前記機械学習装置は、さらに、前記学習部により得られた前記ハンド部の最適な位置，姿勢および取り出し方向をそれぞれ設定する前記状態変数に基づいて、前記ワークの取り出し動作を前記ロボットに指令する指令データを決定する意思決定部を備えるのが好ましい。
【０００８】
本発明に係る第２実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、前記ワーク毎の三次元マップを計測する三次元計測器の出力データを含む前記ロボットの状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記三次元計測器の計測パラメータを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する学習部と、を備える機械学習装置が提供される。前記機械学習装置は、さらに、前記学習部が学習した前記操作量を参照して、前記三次元計測器の前記計測パラメータを決定する意思決定部を備えるのが好ましい。
【０００９】
前記状態量観測部は、さらに、前記三次元計測器の出力に基づいて、前記ワーク毎の三次元位置を計算する座標計算部の出力データを含む前記ロボットの状態量も観測することもできる。前記座標計算部は、さらに、前記ワーク毎の姿勢を計算し、計算された前記ワーク毎の三次元位置および姿勢のデータを出力してもよい。前記動作結果取得部は、前記三次元計測器の出力データを利用することができる。前記機械学習装置は、さらに、前記三次元計測器の出力データを、前記状態量観測部への入力前に処理する前処理部を備え、前記状態量観測部は、前処理部の出力データを前記ロボットの状態量として受け取るのが好ましい。前記前処理部は、前記三次元計測器の出力データにおける前記ワーク毎の方向および高さを一定に揃えることができる。前記動作結果取得部は、前記ワークの取り出しの成否、前記ワークの破損状態、および、取り出した前記ワークを後工程に渡すときの達成度のうちの少なくとも１つを取得することができる。
【００１０】
前記学習部は、前記動作結果取得部の出力に基づいて報酬を計算する報酬計算部と、前記ワークの前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する価値関数更新部と、を備えることができる。前記学習部は、前記ワークの前記取り出し動作を学習する学習モデルを有し、前記動作結果取得部の出力、および、前記学習モデルの出力に基づいて誤差を計算する誤差計算部と、前記誤差に応じて前記学習モデルを更新する学習モデル更新部と、を備えることもできる。前記機械学習装置は、ニューラルネットワークを有するのが好ましい。
【００１１】
本発明に係る第３実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、前記ワーク毎の三次元マップを計測する三次元計測器の出力データを含む前記ロボットの状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記ワークの前記取り出し動作を前記ロボットに指令する指令データを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する学習部と、を備える機械学習装置を備えたロボットシステムであって、前記ロボットと、前記三次元計測器と、前記ロボットおよび前記三次元計測器をそれぞれ制御する制御装置と、を備えるロボットシステムが提供される。
【００１２】
本発明に係る第４実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、前記ワーク毎の三次元マップを計測する三次元計測器の出力データを含む前記ロボットの状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記三次元計測器の計測パラメータを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する学習部と、を備える機械学習装置を備えたロボットシステムであって、前記ロボットと、前記三次元計測器と、前記ロボットおよび前記三次元計測器をそれぞれ制御する制御装置と、を備えるロボットシステムが提供される。
【００１３】
前記ロボットシステムは、複数の前記ロボットを備え、前記機械学習装置は、前記ロボット毎にそれぞれ設けられ、複数の前記ロボットに設けられた複数の前記機械学習装置は、通信媒体を介して相互にデータを共有または交換するのが好ましい。前記機械学習装置は、クラウドサーバ上に存在してもよい。
【００１４】
本発明に係る第５実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習方法であって、前記ワーク毎の三次元マップを計測する三次元計測器の出力データを含む前記ロボットの状態量を観測し、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得し、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記ワークの前記取り出し動作を前記ロボットに指令する指令データを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する機械学習方法が提供される。
【発明の効果】
【００１５】
本発明に係る機械学習装置、ロボットシステムおよび機械学習方法によれば、バラ積みされた状態を含む、乱雑に置かれたワークを取り出すときのロボットの最適な動作を人間の介在無しに学習できるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の一実施形態のロボットシステムの概念的な構成を示すブロック図である。
【図２】図２は、ニューロンのモデルを模式的に示す図である。
【図３】図３は、図２に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。
【図４】図４は、図１に示す機械学習装置の動作の一例を示すフローチャートである。
【図５】図５は、本発明の他の実施形態のロボットシステムの概念的な構成を示すブロック図である。
【図６】図６は、図５に示すロボットシステムにおける前処理部の処理の一例を説明するための図である。
【図７】図７は、図１に示すロボットシステムの変形例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明に係る機械学習装置、ロボットシステムおよび機械学習方法の実施例を、添付図面を参照して詳述する。ここで、各図面において、同じ部材には同じ参照符号が付されている。また、異なる図面において同じ参照符号が付されたものは同じ機能を有する構成要素であることを意味するものとする。なお、理解を容易にするために、これらの図面は縮尺を適宜変更している。
【００１８】
図１は、本発明の一実施形態のロボットシステムの概念的な構成を示すブロック図である。本実施形態のロボットシステム１０は、かご状の箱１１にバラ積みされたワーク１２を把持するハンド部１３が取り付けられたロボット１４と、ワーク１２の表面の三次元マップを計測する三次元計測器１５と、ロボット１４および三次元計測器１５をそれぞれ制御する制御装置１６と、座標計算部１９と、機械学習装置２０と、を備える。
【００１９】
ここで、機械学習装置２０は、状態量観測部２１と、動作結果取得部２６と、学習部２２と、意思決定部２５と、を備える。なお、機械学習装置２０は、後に詳述するように、ワーク１２の取り出し動作をロボット１４に指令する指令データ、或いは、三次元計測器１５の計測パラメータといった操作量を学習して出力する。
【００２０】
ロボット１４は、例えば、６軸多関節型ロボットであり、ロボット１４およびハンド部１３のそれぞれの駆動軸は、制御装置１６によって制御される。また、ロボット１４は、所定の位置に設置された箱１１からワーク１２を１つずつ取り出して指定の場所、例えば、コンベヤまたは作業台（図示しない）まで順次移動させるために使用される。
【００２１】
ところで、バラ積みされたワーク１２を箱１１から取り出す際、ハンド部１３またはワーク１２が箱１１の壁と衝突もしくは接触する場合がある。あるいは、ハンド部１３またはワーク１２が別のワーク１２に引っかかったりする場合もある。そのような場合にロボット１４に掛かる過負荷を直ちに回避できるように、ハンド部１３に作用する力を検出する機能が必要となる。そのため、ロボット１４のアーム部の先端とハンド部１３との間には、６軸の力センサ１７が設けられている。また、本実施形態のロボットシステム１０は、ロボット１４の各関節部の駆動軸を駆動するモータ（図示しない）の電流値をもとにハンド部１３に作用する力を推定する機能も備えている。
【００２２】
さらに、力センサ１７は、ハンド部１３に作用する力を検出できるため、ハンド部１３がワーク１２を実際に把持しているか否かも判断することができる。つまり、ハンド部１３がワーク１２を把持した場合、ハンド部１３にワーク１２の重さが作用するため、ワーク１２の取り出し動作を実施した後、力センサ１７の検出値が所定の閾値を超えていれば、ハンド部１３がワーク１２を把持していると判断することができる。なお、ハンド部１３がワーク１２を把持しているか否かの判断については、例えば、三次元計測器１５に使用されるカメラの撮影データや、ハンド部１３に取り付けられた図示しない光電センサ等の出力により判断することもできる。また、後述の吸着式ハンドの圧力計のデータをもとに判断してもよい。
【００２３】
ここで、ハンド部１３は、ワーク１２を保持可能であれば様々な形態を有していてもよい。例えば、ハンド部１３は、２本または複数の爪部を開閉することによってワーク１２を把持する形態、あるいは、ワーク１２に対して吸引力を発生する電磁石または負圧発生装置を備えたものであってもよい。すなわち、図１において、ハンド部１３は、２本の爪部によりワークを把持するものとして描かれているが、これ限定されないのはいうまでもない。
【００２４】
三次元計測器１５は、複数のワーク１２を測定するために、支持部１８によって複数のワーク１２の上方の所定の位置に設けられている。三次元計測器１５としては、例えば、２台のカメラ（図示しない）から撮影されたワーク１２の画像データを画像処理することによって、三次元位置情報を取得する三次元視覚センサを使用することができる。具体的には、三角計測法、光切断法、Time-of-flight法、Depth from Defocus法、または、これらを併用した方法などを適用することにより、三次元マップ（バラ積みされた複数のワーク１２の表面の位置）が測定される。
【００２５】
座標計算部１９は、三次元計測器１５で得られた三次元マップを入力として、バラ積みされた複数のワーク１２の表面の位置を計算（測定）する。すなわち、三次元計測器１５の出力を利用して、それぞれのワーク１２毎の三次元位置データ（ｘ，ｙ，ｚ）、あるいは、三次元位置データ（ｘ，ｙ，ｚ）および姿勢データ（ｗ，ｐ，ｒ）を得ることができる。ここで、状態量観測部２１は、三次元計測器１５からの三次元マップおよび座標計算部１９からの位置データ（姿勢データ）の両方を受け取ってロボット１４の状態量を観測しているが、例えば、三次元計測器１５からの三次元マップだけを受け取ってロボット１４の状態量を観測することもできる。また、後に図５を参照して説明するのと同様に、前処理部５０を追加し、この前処理部５０により、状態量観測部２１への入力前に、三次元計測器１５からの三次元マップを処理（前処理）して状態量観測部２１に入力することも可能である。
【００２６】
なお、ロボット１４と三次元計測器１５との相関位置は、予めキャリブレーションにより決定されているものとする。また、本願発明の三次元計測器１５には、三次元視覚センサに代えて、レーザ距離測定器を使用することもできる。つまり、三次元計測器１５が設置された位置から各ワーク１２の表面までの距離をレーザ走査によって計測することや、単眼カメラ、触覚センサなどの各種センサを用いることにより、バラ積みされた複数のワーク１２の三次元位置データおよび姿勢（ｘ，ｙ，ｚ，ｗ，ｐ，ｒ）を取得してもよい。
【００２７】
すなわち、本発明においては、例えば、それぞれのワーク１２のデータ（ｘ，ｙ，ｚ，ｗ，ｐ，ｒ）を取得できれば、どのような三次元計測法を適用した三次元計測器１５でも適用することができる。また、三次元計測器１５が設置される態様も特に限定されるものではなく、例えば、床や壁などに固定されていてもよいし、ロボット１４のアーム部等に取り付けられていてもよい。
【００２８】
三次元計測器１５は、制御装置１６からの指令により、箱１１にバラ積みされた複数のワーク１２の三次元マップを取得し、座標計算部１９は、その三次元マップをもとに複数のワーク１２の三次元位置（姿勢）のデータを取得（計算）し、そのデータを、制御装置１６と後述する機械学習装置２０の状態量観測部２１および動作結果取得部２６とに出力するようになっている。特に、座標計算部１９においては、例えば、撮影された複数のワーク１２の画像データを基に、或るワーク１２と別のワーク１２との境界や、ワーク１２と箱１１との境界が推定され、ワーク１２毎の三次元位置のデータが取得される。
【００２９】
ワーク１２毎の三次元位置のデータとは、例えば、バラ積みされた複数のワーク１２の表面上の複数の点の位置から各々のワーク１２の存在位置や保持可能な位置を推定することによって取得されたデータを指す。勿論、ワーク１２毎の三次元位置のデータには、ワーク１２の姿勢のデータが含まれてもよい。
【００３０】
さらに、座標計算部１９におけるワーク１２毎の三次元位置および姿勢データの取得には、機械学習の手法を使用することも含まれる。例えば、後述する教師あり学習等の手法を用いた入力画像もしくはレーザ距離測定器などからの物体認識や角度推定などを適用することも可能である。
【００３１】
そして、ワーク１２毎の三次元位置のデータが三次元計測器１５から座標計算部１９を介して制御装置１６に入力されると、制御装置１６は、或るワーク１２を箱１１から取り出すハンド部１３の動作を制御する。このとき、後述する機械学習装置２０により得られたハンド部１３の最適な位置，姿勢および取り出し方向に対応する指令値（操作量）に基づいて、ハンド部１３やロボット１４の各軸のモータ（図示しない）が駆動される。
【００３２】
また、機械学習装置２０は、三次元計測器１５に使用されるカメラの撮影条件の変数（三次元計測器１５の計測パラメータ：例えば、露出計を用いて撮影時に調整される露出時間、被撮影対象を照明する照明系の照度など）を学習し、制御装置１６を介して、学習した計測パラメータ操作量に基づいて、三次元計測器１５を制御することもできる。ここで、三次元計測器１５が、計測した複数のワーク１２の位置から各々のワーク１２の存在位置・姿勢や保持可能な位置・姿勢を推定するのに使用する位置・姿勢推定条件の変数は、上述の三次元計測器１５の出力データに含まれてもよい。
【００３３】
さらに、三次元計測器１５からの出力データは、図５を参照して後に詳述する前処理部５０等により、事前に処理し、その処理されたデータ（画像データ）を状態量観測部２１に与えるようにすることも可能なのは前述した通りである。なお、動作結果取得部２６は、例えば、三次元計測器１５からの出力データ（座標計算部１９の出力データ）から、ロボット１４のハンド部１３によりワーク１２を取り出した結果を取得することができるが、それ以外に、例えば、取り出したワーク１２を後工程に渡したときの達成度、並びに、取り出したワーク１２の破損等の状態変化がないかどうかといった動作結果を、他の手段（例えば、後工程に設けられたカメラやセンサ等）を介して取得することもできるのはいうまでもない。以上において、状態量観測部２１および動作結果取得部２６は、機能的なブロックであり、１つのブロックにより両者の機能を達成するものとして捉えることもできるのは勿論である。
【００３４】
次に、図１に示される機械学習装置２０について、詳述する。機械学習装置２０は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習（機械学習）を行う機能を有する。機械学習の手法は様々であるが、大別すれば、例えば、「教師あり学習」、「教師なし学習」および「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習（ディープラーニング：Deep Learning）」と呼ばれる手法がある。なお、これらの機械学習（機械学習装置２０）は、汎用の計算機もしくはプロセッサを用いてもよいが、ＧＰＧＰＵ（General-Purpose computing on Graphics Processing Units）や大規模ＰＣクラスター等を適用すると、より高速に処理することが可能である。
【００３５】
まず、教師あり学習とは、ある入力と結果（ラベル）のデータの組を大量に機械学習装置２０に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、すなわちその関係性を帰納的に獲得するものである。この教師あり学習を本実施形態に適用する場合、例えば、センサ入力からワーク位置を推定する部分、あるいはワーク候補に対してその取得成功確率を推定する部分などに用いることができる。例えば、後述のニューラルネットワークなどのアルゴリズムを用いて実現することが可能である。
【００３６】
また、教師なし学習とは、入力データのみを大量に学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮・分類・整形などを行う装置で学習する手法である。例えば、それらのデータセットにある特徴を、似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適化するような出力の割り当てを行うことにより、出力の予測を実現することができる。
【００３７】
なお、教師なし学習と教師あり学習との中間的な問題設定として、半教師あり学習と呼ばれるものもあり、これは、例えば、一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合が対応する。本実施形態においては、実際にロボットを動かさなくても取得することができるデータ（画像データやシミュレーションのデータ等）を教師なし学習で利用することにより、学習を効率的に行うことが可能となる。
【００３８】
次に、強化学習について、説明する。まず、強化学習の問題設定として、次のように考える。
・ロボットは、環境の状態を観測し、行動を決定する。
・環境は、何らかの規則に従って変化し、さらに、自分の行動が、環境に変化を与えることもある。
・行動するたびに、報酬信号が帰ってくる。
・最大化したいのは、将来にわたっての（割引）報酬の合計である。
・行動が引き起こす結果を全く知らない、または、不完全にしか知らない状態から学習はスタートする。すなわち、ロボットは、実際に行動して初めて、その結果をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように、事前学習（前述の教師あり学習や、逆強化学習といった手法）した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００３９】
ここで、強化学習とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶものである。このことは、本実施形態において、例えば、ワーク１２の山を崩して将来的にワーク１２を取り易くする、といった、未来に影響をおよぼすような行動を獲得できることを表している。以下に、例として、Ｑ学習の場合で説明を続けるが、Ｑ学習に限定されるものではない。
【００４０】
Ｑ学習は、或る環境状態ｓの下で、行動ａを選択する価値Ｑ（ｓ，ａ）を学習する方法である。つまり、或る状態ｓのとき、価値Ｑ（ｓ，ａ）の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は、状態ｓと行動ａとの組合せについて、価値Ｑ（ｓ，ａ）の正しい値は全く分かっていない。そこで、エージェント（行動主体）は、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して、報酬が与えられる。それにより、エージェントは、より良い行動の選択、すなわち、正しい価値Ｑ（ｓ，ａ）を学習していく。
【００４１】
さらに、行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（ｓ，ａ）＝Ｅ［Σ（γt）ｒt］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒtは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化したときについてとるものとし、それは、分かっていないので、探索しながら学習することになる。このような価値Ｑ（ｓ，ａ）の更新式は、例えば、次の式（１）により表すことができる。
【００４２】
【数１】
0006522488.tif 000002
上記の式（１）において、ｓtは、時刻ｔにおける環境の状態を表し、ａtは、時刻ｔにおける行動を表す。行動ａtにより、状態はｓt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態ｓt+1の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
【００４３】
上述した式（１）は、試行ａtの結果、帰ってきた報酬ｒt+1を元に、状態ｓtにおける行動ａtの評価値Ｑ（ｓt，ａt）を更新する方法を表している。すなわち、状態ｓにおける行動ａの評価値Ｑ（ｓt，ａt）よりも、報酬ｒt+1と行動ａによる次の状態における最良の行動ｍａｘ ａの評価値Ｑ（ｓt+1，ｍａｘ ａt+1）の合計の方が大きければ、Ｑ（ｓt，ａt）を大きくし、反対に小さければ、Ｑ（ｓt，ａt）を小さくすることを示している。つまり、或る状態における或る行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【００４４】
ここで、Ｑ（ｓ，ａ）の計算機上での表現方法は、すべての状態行動ペア（ｓ，ａ）に対して、その値をテーブルとして保持しておく方法と、Ｑ（ｓ，ａ）を近似するような関数を用意する方法がある。後者の方法では、前述の式（１）は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことにより、実現することができる。なお、近似関数としては、後述のニューラルネットワークを用いることができる。
【００４５】
また、教師あり学習、教師なし学習の学習モデル、あるいは強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。図２は、ニューロンのモデルを模式的に示す図であり、図３は、図２に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。すなわち、ニューラルネットワークは、例えば、図２に示すようなニューロンのモデルを模した演算装置およびメモリ等で構成される。
【００４６】
図２に示されるように、ニューロンは、複数の入力ｘ（図２では、一例として入力ｘ1〜入力ｘ3）に対する出力（結果）ｙを出力するものである。各入力ｘ（ｘ1，ｘ2，ｘ3）には、この入力ｘに対応する重みｗ（ｗ1，ｗ2，ｗ3）が掛けられる。これにより、ニューロンは、次の式（２）により表現される結果ｙを出力する。なお、入力ｘ、結果ｙおよび重みｗは、すべてベクトルである。また、下記の式（２）において、θは、バイアスであり、ｆkは、活性化関数である。
【数２】
0006522488.tif 000003
【００４７】
図３を参照して、図２に示すニューロンを組み合わせて構成した三層のニューラルネットワークを説明する。図３に示されるように、ニューラルネットワークの左側から複数の入力ｘ（ここでは、一例として、入力ｘ1〜入力ｘ3）が入力され、右側から結果ｙ（ここでは、一例として、結果ｙ1〜入力ｙ3）が出力される。具体的に、入力ｘ1，ｘ2， ｘ3は、３つのニューロンＮ11〜Ｎ13の各々に対して、対応する重みが掛けられて入力される。これらの入力に掛けられる重みは、まとめてＷ１と標記されている。
【００４８】
ニューロンＮ11〜Ｎ13は、それぞれ、ｚ11〜ｚ13を出力する。図３において、これらｚ11〜ｚ13は、まとめて特徴ベクトルＺ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルＺ１は、重みＷ１と重みＷ２との間の特徴ベクトルである。ｚ11〜ｚ13は、２つのニューロンＮ21およびＮ22の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ２と標記されている。
【００４９】
ニューロンＮ21，Ｎ22は、それぞれｚ21，ｚ22を出力する。図３において、これらｚ21，ｚ22は、まとめて特徴ベクトルＺ２と標記されている。この特徴ベクトルＺ２は、重みＷ２と重みＷ３との間の特徴ベクトルである。ｚ21，ｚ22は、３つのニューロンＮ31〜Ｎ33の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ３と標記されている。
【００５０】
最後に、ニューロンＮ31〜Ｎ33は、それぞれ、結果ｙ１〜結果ｙ３を出力する。ニューラルネットワークの動作には、学習モードと価値予測モードとがある。例えば、学習モードにおいて、学習データセットを用いて重みＷを学習し、そのパラメータを用いて予測モードにおいて、ロボットの行動判断を行う。なお、便宜上、予測と書いたが、検出・分類・推論など多様なタスクが可能なのはいうまでもない。
【００５１】
ここで、予測モードで実際にロボットを動かして得られたデータを即時学習し、次の行動に反映させる（オンライン学習）ことも、予め収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う（バッチ学習）こともできる。あるいは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００５２】
また、重みＷ１〜Ｗ３は、誤差逆伝搬法（誤差逆転伝播法：バックプロパゲーション：Backpropagation）により学習可能なものである。なお、誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００５３】
このようなニューラルネットワークは、三層以上に、さらに層を増やすことも可能である（深層学習と称される）。また、入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することも可能である。
【００５４】
そこで、本実施形態の機械学習装置２０は、上述のＱ学習を実施すべく、図１に示されるように、状態量観測部２１、動作結果取得部２６、学習部２２、および、意思決定部２５を備えている。ただし、本発明に適用される機械学習方法は、Ｑ学習に限定されないのは前述した通りである。すなわち、機械学習装置で用いることが出来る手法である「教師あり学習」、「教師なし学習」、「半教師あり学習」および「強化学習」等といった様々な手法が適用可能である。なお、これらの機械学習（機械学習装置２０）は、汎用の計算機もしくはプロセッサを用いてもよいが、ＧＰＧＰＵや大規模ＰＣクラスター等を適用すると、より高速に処理することが可能である。
【００５５】
すなわち、本実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワーク１２からハンド部１３によってワーク１２を取り出すロボット１４の動作を学習する機械学習装置であって、ワーク１２毎の三次元位置（ｘ，ｙ，ｚ）、あるいは三次元位置と姿勢（ｘ，ｙ，ｚ，ｗ，ｐ，ｒ）を計測する三次元計測器１５の出力データを含むロボット１４の状態量を観測する状態量観測部２１と、ハンド部１３によってワーク１２を取り出すロボット１４の取り出し動作の結果を取得する動作結果取得部２６と、状態量観測部２１からの出力および動作結果取得部２６からの出力を受け取り、ワーク１２の取り出し動作をロボット１４に指令する指令データを含む操作量を、ロボット１４の状態量および取り出し動作の結果に関連付けて学習する学習部２２と、を備える。
【００５６】
なお、状態量観測部２１が観測する状態量は、例えば、或るワーク１２を箱１１から取り出すときのハンド部１３の位置，姿勢および取り出し方向をそれぞれ設定する状態変数が含まれてもよい。また、学習される操作量は、例えば、ワーク１２を箱１１から取り出す際に制御装置１６からロボット１４やハンド部１３の各駆動軸に与えられるトルク、速度、回転位置などの指令値が含まれてもよい。
【００５７】
そして、学習部２２は、バラ積みされた複数のワーク１２のうちの１つを取り出すとき、上記の状態変数をワーク１２の取り出し動作の結果（動作結果取得部２６の出力）に関連付けて学習する。つまり、制御装置１６により三次元計測器１５（座標計算部１９）の出力データとハンド部１３の指令データとをそれぞれ無作為に設定し、あるいは所定のルールに基づいて作為的に設定し、ハンド部１３によるワーク１２の取り出し動作を実施する。ここで、上記所定のルールとしては、例えば、バラ積みされた複数のワーク１２のうち、高さ（ｚ）方向が高いワークから順番に取り出すといったものがある。これにより、或るワークを取り出す行為に対して、三次元計測器１５の出力データとハンド部１３の指令データが対応する。そして、ワーク１２の取り出しの成功と失敗が生じ、そのような成功と失敗が生じる都度、学習部２２は、三次元計測器１５の出力データとハンド部１３の指令データとから構成される状態変数を評価していく。
【００５８】
また、学習部２２は、ワーク１２を取り出すときの三次元計測器１５の出力データおよびハンド部１３の指令データと、ワーク１２の取り出し動作の結果に対する評価とを関連付けて記憶する。なお、失敗例としては、ハンド部１３がワーク１２を把持できていない場合、あるいは、ワーク１２を把持できたとしてもワーク１２が箱１１の壁と衝突もしくは接触する場合、等がある。また、このようなワーク１２の取り出しの成否は、力センサ１７の検出値や、三次元計測器による撮影データをもとに判断される。ここで、機械学習装置２０は、例えば、制御装置１６から出力されるハンド部１３の指令データの一部を利用して学習を行うことも可能である。
【００５９】
ここで、本実施形態の学習部２２は、報酬計算部２３および価値関数更新部２４を備えることが好ましい。例えば、報酬計算部２３は、上記の状態変数に起因するワーク１２の取り出しの成否に基づいて報酬、例えば、スコアを計算する。ワーク１２の取り出しの成功に対しては報酬が高くなるようにし、ワーク１２の取り出しの失敗に対しては報酬が低くなるようにする。また、所定の時間内にワーク１２の取り出しに成功した回数に基づいて報酬を計算してもよい。さらに、この報酬を計算するとき、例えば、ハンド部１３による把持に成功や、ハンド部１３による運搬の成功、ワーク１２の置き動作に成功、などといったワーク１２の取り出しの各段階に応じて報酬を計算してもよい。
【００６０】
そして、価値関数更新部２４は、ワーク１２の取り出し動作の価値を定める価値関数を有していて、上記の報酬に応じて価値関数を更新する。この価値関数の更新には、上述したような価値Ｑ（ｓ，ａ）の更新式が使用される。さらに、この更新の際、行動価値テーブルを作成することが好ましい。ここでいう行動価値テーブルとは、ワーク１２を取り出した時の三次元計測器１５の出力データおよびハンド部１３の指令データと、その時のワーク１２の取り出し結果に応じて更新された価値関数（すなわち評価値）とを互いに関連付けて記録したものをいう。
【００６１】
なお、この行動価値テーブルとして、前述のニューラルネットワークを用いて近似した関数を用いることも可能であり、画像データなどのように状態ｓの情報量が莫大であるときは特に有効である。また、上記の価値関数は１種類に限定されない。例えば、ハンド部１３によるワーク１２の把持の成否を評価する価値関数や、ハンド部１３によりワーク１２を把持して運搬するのに要した時間（サイクルタイム）を評価する価値関数が考えられる。
【００６２】
さらに、上記の価値関数として、ワーク取り出し時の箱１１とハンド部１３またはワーク１２との干渉を評価する価値関数を使用してもよい。この価値関数の更新に用いる報酬を計算するため、状態量観測部２１は、ハンド部１３に作用する力、例えば、力センサ１７により検出される値を観測することが好ましい。そして、力センサ１７により検出される力の変化量が所定の閾値を超える場合、上記の干渉が発生したと推定できるため、その場合の報酬を例えばマイナスの値とし、価値関数が定める価値が低くなるようにするのが好ましい。
【００６３】
また、本実施形態によれば、三次元計測器１５の計測パラメータを操作量として学習することも可能である。すなわち、本実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワーク１２からハンド部１３によってワーク１２を取り出すロボット１４の動作を学習する機械学習装置であって、ワーク１２毎の三次元位置（ｘ，ｙ，ｚ）、あるいは三次元位置と姿勢（ｘ，ｙ，ｚ，ｗ，ｐ，ｒ）を計測する三次元計測器１５の出力データを含むロボット１４の状態量を観測する状態量観測部２１と、ハンド部１３によってワーク１２を取り出すロボット１４の取り出し動作の結果を取得する動作結果取得部２６と、状態量観測部２１からの出力および動作結果取得部２６からの出力を受け取り、三次元計測器１５の計測パラメータを含む操作量を、ロボット１４の状態量および取り出し動作の結果に関連付けて学習する学習部２２と、を備える。
【００６４】
さらに、本実施形態のロボットシステム１０においては、ロボット１４に取り付けられているハンド部１３を別の形態のハンド部１３に交換する自動ハンド交換装置（図示しない）が備えられていてもよい。その場合、価値関数更新部２４は、形態の異なるハンド部１３毎に上記の価値関数を有していて、交換後のハンド部１３の価値関数を報酬に応じて更新するものであるとよい。それにより、形態の異なる複数のハンド１３毎にハンド部１３の最適な動作を学習できるため、価値関数のより高いハンド部１３を自動ハンド交換装置に選定させることが可能となる。
【００６５】
続いて、意思決定部２５は、例えば、上述したように作成した行動価値テーブルを参照して、最も高い評価値に対応する、三次元計測器１５の出力データおよびハンド部１３の指令データを選択することが好ましい。その後、意思決定部２５は、選定したハンド部１３や三次元計測器１５の最適なデータを制御装置１６に出力する。
【００６６】
そして、制御装置１６は、学習部２２が出力するハンド部１３や三次元計測器１５の最適なデータを用いて、三次元計測器１５およびロボット１４をそれぞれ制御してワーク１２を取り出す。例えば、制御装置１６は、学習部２２により得られたハンド部１３の最適な位置，姿勢および取り出し方向をそれぞれ設定する状態変数に基づいて、ハンド部１３やロボット１４の各駆動軸を動作させることが好ましい。
【００６７】
なお、上述した実施形態のロボットシステム１０は、図１に示されるように１つのロボット１４に対して１つの機械学習装置２０を備えたものである。しかし、本発明においては、ロボット１４および機械学習装置２０の各々の数は１つに限定されない。例えば、ロボットシステム１０は複数のロボット１４を備えていて、１つ以上の機械学習装置２０が各々のロボット１４に対応して設けられていてもよい。そして、ロボットシステム１０は、各ロボット１４の機械学習装置２０が取得した、三次元計測器１５とハンド部１３の最適な状態変数を、ネットワークなどの通信媒体によって共有または相互交換するのが好ましい。それにより、或るロボット１４の稼働率が別のロボット１４の稼働率より低くても、別のロボット１４に備わる機械学習装置２０が取得した最適な動作結果を或るロボット１４の動作に利用することができる。また、複数のロボットでの学習モデルの共有、もしくは三次元計測器１５の計測パラメータを含む操作量とロボット１４の状態量および取り出し動作の結果を共有することにより、学習に掛かる時間を短縮することができる。
【００６８】
さらに、機械学習装置２０はロボット１４内に在ってもロボット１４外に在ってもよい。あるいは、機械学習装置２０は、制御装置１６内に在ってもよいし、クラウドサーバ（図示しない）に存在してもよい。
【００６９】
また、ロボットシステム１０が複数のロボット１４を備える場合には、或るロボット１４がハンド部１３により把持したワーク１２を運搬する間に、別のロボット１４のハンド部にワーク１２を取り出す作業を実施させることが可能である。そして、このようなワーク１２を取り出すロボット１４が切替る間の時間を利用して価値関数更新部２４が価値関数を更新することもできる。さらに、機械学習装置２０には、複数のハンドモデルの状態変数をもち、ワーク１２の取り出し動作中に複数のハンドモデルでの取り出しシミュレーションを行い、その取り出しシミュレーションの結果に応じて、複数のハンドモデルの状態変数を、ワーク１２の取り出し動作の結果に関連付けて学習することも可能である。
【００７０】
なお、上述の機械学習装置２０においては、ワーク１２毎の三次元マップのデータを取得した際の三次元計測器１５の出力データが、三次元計測器１５から状態量観測部２１に送信されるようになっている。そのような送信データには、異常なデータが含まれていないとは限らないので、機械学習装置２０には、異常データのフィルタリング機能、すなわち三次元計測器１５からのデータを状態量観測部２１に入力するか否かを選択可能な機能を持たせることができる。それにより、機械学習装置２０の学習部２２は、三次元計測器１５およびロボット１４によるハンド部１３の最適な動作を効率よく学習できるようになる。
【００７１】
さらに、上述した機械学習装置２０において、制御装置１６には、学習部２２からの出力データが入力されているが、その学習部２２からの出力データにも、異常なデータが含まれていないとは限られないので、異常データのフィルタリング機能、すなわち、学習部２２からのデータを制御装置１６に出力するか否かを選択可能な機能を持たせてもよい。それにより、制御装置１６は、ハンド部１３の最適な動作をより安全にロボット１４に実行させることが可能になる。
【００７２】
なお、上述の異常データは、次のような手順により検出し得る。すなわち、入力データの確率分布を推定し、確率分布を用いて新規の入力の発生確率を導き、発生確率が一定以下ならば、典型的な挙動から大きく外れる異常なデータと見なす、という手順により異常データを検出できる。
【００７３】
次に、本実施形態のロボットシステム１０に備わる機械学習装置２０の動作の一例を説明する。図４は、図１に示す機械学習装置の動作の一例を示すフローチャートである。図４に示されるように、図１に示す機械学習装置２０において、学習動作（学習処理）が開始すると、三次元計測器１５により三次元計測を実施して出力する（図４のステップＳ１１）。すなわち、ステップＳ１１において、例えば、バラ積みされた状態を含む、乱雑に置かれたワーク１２毎の三次元マップ（三次元計測器１５の出力データ）を取得して状態量観測部２１に出力するとともに、座標計算部１９によりワーク１２毎の三次元マップを受け取ってワーク１２毎の三次元位置（ｘ，ｙ，ｚ）を計算して状態量観測部２１，動作結果取得部２６および制御装置１６に出力する。ここで、座標計算部１９は、三次元計測器１５の出力からワーク１２毎の姿勢（ｗ，ｐ，ｒ）を計算して出力してもよい。
【００７４】
なお、図５を参照して説明するように、三次元計測器１５の出力（三次元マップ）は、状態量観測部２１へ入力される前に処理する前処理部５０を介して状態量観測部２１に入力されてもよい。また、図７を参照して説明するように、三次元計測器１５の出力だけが状態量観測部２１に入力されてもよく、さらに、三次元計測器１５の出力だけが前処理部５０を介して状態量観測部２１に入力されてもよい。このように、ステップＳ１１における三次元計測の実施および出力は、様々なものを含むことが可能である。
【００７５】
具体的に、図１の場合には、状態量観測部２１は、三次元計測器１５からのワーク１２毎の三次元マップ、ならびに、座標計算部１９からのワーク１２毎の三次元位置（ｘ，ｙ，ｚ）および姿勢（ｗ，ｐ，ｒ）といった状態量（三次元計測器１５の出力データ）を観測する。なお、動作結果取得部２６は、三次元計測器１５の出力データ（座標計算部１９の出力データ）により、ハンド部１３によってワーク１２を取り出すロボット１４の取り出し動作の結果を取得する。なお、動作結果取得部２６は、三次元計測器の出力データ以外に、例えば、取り出したワーク１２を後工程に渡したときの達成度や取り出したワーク１２の破損といった取り出し動作の結果も取得することができる。
【００７６】
さらに、例えば、機械学習装置２０により、三次元計測器１５の出力データをもとに最適な動作を決定し（図４のステップＳ１２）、また、制御装置１６は、ハンド部１３（ロボット１４）の指令データ（操作量）を出力して、ワーク１２の取り出し動作を実施する（図４のステップＳ１３）。そして、ワークの取り出し結果は、上述した動作結果取得部２６により取得される（図４のステップＳ１４）。
【００７７】
次に、動作結果取得部２６からの出力により、ワーク１２の取り出しの成否を判定し（図４のステップＳ１５）、ワーク１２の取り出しに成功した場合は、プラスの報酬を設定し（図４のステップＳ１６）、ワーク１２の取り出しに失敗した場合は、マイナスの報酬を設定し（図４のステップＳ１７）、そして、行動価値テーブル（価値関数）を更新する（図４のステップＳ１８）。
【００７８】
ここで、ワーク１２の取り出しの成否判定は、例えば、ワーク１２の取り出し動作の後の三次元計測器１５の出力データに基づいてことができる。また、ワーク１２の取り出しの成否判定は、ワーク１２の取り出しの成否を評価したものに限定されず、例えば、取り出したワーク１２を後工程に渡したときの達成度、取り出したワーク１２の破損等の状態変化がないかどうか、あるいは、ハンド部１３によりワーク１２を把持して運搬するのに要した時間（サイクルタイム）やエネルギー（電力量）などを評価したものであってもよい。
【００７９】
なお、ワーク１２の取り出しの成否判定に基づいた報酬の値の計算は、報酬計算部２３により行われ、また、行動価値テーブルの更新は、価値関数更新部２４により行われる。すなわち、学習部２２は、ワーク１２の取り出しに成功したときは、前述した価値Ｑ（ｓ，ａ）の更新式における報酬にプラスの報酬を設定し（Ｓ１６）、また、ワーク１２の取り出しに失敗したときは、その更新式における報酬にマイナスの報酬を設定する（Ｓ１７）。そして、学習部２２は、ワーク１２の取り出しの都度、前述した行動価値テーブルの更新を行う（Ｓ１８）。以上のステップＳ１１〜Ｓ１８を繰返すことにより、学習部２２は、行動価値テーブルの更新を継続（学習）することになる。
【００８０】
以上において、状態量観測部２１に入力されるデータは、三次元計測器１５の出力データに限定されず、例えば、他のセンサの出力等のデータが含まれてもよく、さらに、制御装置１６からの指令データの一部を利用することも可能である。このようにして、制御装置１６は、機械学習装置２０から出力された指令データ（操作量）を使って、ワーク１２の取り出し動作をロボット１４に実行させる。なお、機械学習装置２０による学習は、ワーク１２の取り出し動作に限定されるものではなく、例えば、三次元計測器１５の計測パラメータであってもよいのは前述した通りである。
【００８１】
以上のように、本実施形態の機械学習装置２０を備えたロボットシステム１０によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワーク１２からハンド部１３によってワーク１２を取り出すロボット１４の動作を学習することができる。これにより、ロボットシステム１０は、バラ積みされたワーク１２を取り出すロボット１４の最適な動作の選択を人間の介在無しに学習することが可能になる。
【００８２】
図５は、本発明の他の実施形態のロボットシステムの概念的な構成を示すブロック図であり、教師あり学習を適用したロボットシステムを示すものである。図５と、前述した図１の比較から明らかなように、図５に示す教師あり学習を適用したロボットシステム１０’は、図１に示すＱ学習（強化学習）を適用したロボットシステム１０に対して、さらに、結果（ラベル）付きデータ記録部４０を備える。なお、図５に示すロボットシステム１０’は、さらに、三次元計測器１５の出力データを前処理する前処理部５０を備える。なお、前処理部５０は、例えば、図１に示すロボットシステム１０に対しても設けることができるのはいうまでもない。
【００８３】
図５に示されるように、教師あり学習を適用したロボットシステム１０’における機械学習装置３０は、状態量観測部３１と、動作結果取得部３６と、学習部３２と、意思決定部３５と、を備える。学習部３２は、誤差計算部３３と、学習モデル更新部３４と、を含む。なお、本実施形態のロボットシステム１０’においても、機械学習装置３０は、ワーク１２の取り出し動作をロボット１４に指令する指令データ、或いは、三次元計測器１５の計測パラメータといった操作量を学習して出力する。
【００８４】
すなわち、図５に示す教師あり学習を適用したロボットシステム１０’において、誤差計算部３３および学習モデル更新部３４は、それぞれ、図１に示すＱ学習を適用したロボットシステム１０における報酬計算部２３および価値関数更新部２４に対応する。なお、他の構成、例えば、三次元計測器１５，制御装置１６およびロボット１４等の構成は、前述した図１と同様であり、その説明は省略する。
【００８５】
動作結果取得部３６から出力される結果（ラベル）と学習部に実装されている学習モデルの出力との誤差が誤差計算部３３で計算される。ここで、結果（ラベル）付きデータ記録部４０は、例えば、ワーク１２の形状やロボット１４による処理が同一の場合にはロボット１４に作業を行わせる所定日の前日までに得られた結果（ラベル）付きデータを保持し、その所定日に、結果（ラベル）付きデータ記録部４０に保持された結果（ラベル）付きデータを誤差計算部３３に提供することができる。あるいは、ロボットシステム１０’の外部で行われたシミュレーション等により得られたデータ、または、他のロボットシステムの結果（ラベル）付きデータを、メモリカードや通信回線により、そのロボットシステム１０’の誤差計算部３３に提供することも可能である。さらに、結果（ラベル）付きデータ記録部４０をフラッシュメモリ（Flash Memory）等の不揮発性メモリで構成し、結果（ラベル）付きデータ記録部（不揮発性メモリ）４０を学習部３２に内蔵し、その結果（ラベル）付きデータ記録部４０に保持された結果（ラベル）付きデータを、そのまま学習部３２で使用することもできる。
【００８６】
図６は、図５に示すロボットシステムにおける前処理部の処理の一例を説明するための図であり、図６(a)は、箱１１にバラ積みされた複数のワーク１２の三次元位置（姿勢）のデータ、すなわち、三次元計測器１５の出力データの一例を示し、図６(b)〜図６(d)は、図６(a)におけるワーク１２１〜１２３に対して前処理を行った後の画像データの例を示す。
【００８７】
ここで、ワーク１２（１２１〜１２３）としては、円柱形状の金属部品を想定し、ハンド（１３）としては、２本の爪部でワークを把持するのではなく、例えば、円柱形状のワーク１２の長手中央部分を負圧で吸い取る吸着パッドを想定している。そのため、例えば、ワーク１２の長手中央部分の位置が分かれば、その位置に対して吸着パッド（１３）を移動させて吸着することにより、ワーク１２を取り出すことができるようになっている。また、図６(a)〜図６(d)における数値は、［ｍｍ］で表され、それぞれｘ方向，ｙ方向，ｚ方向を示す。なお、ｚ方向は、複数のワーク１２がバラ積みされた箱１１を、上方に設けられた三次元計測器１５（例えば、２つのカメラを有する）により撮像した画像データの高さ（深さ）方向に対応する。
【００８８】
図６(a)と、図６(b)〜図６(d)の比較から明らかなように、図５に示すロボットシステム１０’における前処理部５０の処理の一例としては、三次元計測器１５の出力データ（三次元画像）から、注目するワーク１２（例えば、３つのワーク１２１〜１２３）を、回転させると共に、中心の高さが『０』となるように処理するものである。
【００８９】
すなわち、三次元計測器１５の出力データには、例えば、それぞれのワーク１２の長手中央部分の三次元位置（ｘ，ｙ，ｚ）および姿勢（ｗ，ｐ，ｒ）の情報が含まれている。このとき、図６(b)，図６(c)および図６(d)に示されるように、注目する３つのワーク１２１，１２２，１２３は、それぞれ−ｒだけ回転させると共に、ｚだけ減算して、全て同じ条件に揃えるようになっている。このような前処理を行うことにより、機械学習装置３０の負荷を低減することが可能になる。
【００９０】
ここで、図６(a)に示す三次元画も、三次元計測器１５の出力データそのものではなく、例えば、以前より実施しているワーク１２の取り出し順を規定するプログラムにより得られた画像から、選択するためのしきい値を低くしたものとなっており、この処理自体も前処理部５０で行うこともできる。なお、このような前処理部５０による処理としては、ワーク１２の形状およびハンド１３の種類等を始めとしてさまざまな条件により様々に変化し得るのはいうまでもない。
【００９１】
このように、前処理部５０により、状態量観測部３１への入力前に処理を行った三次元計測器１５の出力データ（ワーク１２毎の三次元マップ）は、状態量観測部３１に入力されることになる。再び、図５を参照して、動作結果取得部３６から出力される結果（ラベル）を受け取る誤差計算部３３は、例えば、学習モデルとして図３に示すニューラルネットワークの出力をｙとしたとき、実際にワーク１２の取り出し動作を行って成功していたときは−ｌｏｇ(ｙ)の誤差、失敗していたときは−ｌｏｇ(１−ｙ)の誤差があるとみなし、この誤差を最小化することを目標として処理を行う。なお、図３に示すニューラルネットワークの入力としては、例えば、図６(b)〜図６(d)に示されるような前処理を行った後の注目するワーク１２１〜１２３の画像データ、並びに、それら注目するワーク１２１〜１２３毎の三次元位置および姿勢（ｘ，ｙ，ｚ，ｗ，ｐ，ｒ）のデータを与えることになる。
【００９２】
図７は、図１に示すロボットシステムの変形例を示すブロック図である。図７と、図１の比較から明らかなように、図７に示すロボットシステム１０の変形例において、座標計算部１９は削除され、状態量観測部２１は、三次元計測器１５からの三次元マップだけを受け取ってロボット１４の状態量を観測するようになっている。なお、制御装置１６に対して、座標計算部１９に対応する構成を設けることができるのはいうまでもない。また、この図７に示す構成は、例えば、図５を参照して説明した教師あり学習を適用したロボットシステム１０’に対しても適用することができる。すなわち、図５に示すロボットシステム１０’において、前処理部５０を削除し、状態量観測部３１が三次元計測器１５からの三次元マップだけを受け取ってロボット１４の状態量を観測することも可能である。このように、上述した各実施例は、様々な変更および変形することが可能である。
【００９３】
以上、詳述したように、本実施形態によれば、バラ積みされた状態を含む、乱雑に置かれたワークを取り出すときのロボットの最適な動作を人間の介在無しに学習できる機械学習装置、ロボットシステムおよび機械学習方法を提供することが可能になる。なお、本発明における機械学習装置２０，３０としては、強化学習（例えば、Ｑ学習）または教師あり学習を適用したものに限定されず、様々な機械学習のアルゴリズムを適用することが可能である。
【００９４】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００９５】
１０，１０’    ロボットシステム
１１    箱
１２    ワーク
１３    ハンド部
１４    ロボット
１５    三次元計測器
１６    制御装置
１７    力センサ
１８    支持部
１９    座標計算部
２０，３０    機械学習装置
２１，３１    状態量観測部
２２，３２    学習部
２３    報酬計算部
２４    価値関数更新部
２５，３５    意思決定部
２６，３６    動作結果取得部
３３    誤差計算部
３４    学習モデル更新部
４０    結果（ラベル）付きデータ記録部
５０    前処理部
【図１】
0006522488.tif 000004
【図２】
0006522488.tif 000005
【図３】
0006522488.tif 000006
【図４】
0006522488.tif 000007
【図５】
0006522488.tif 000008
【図６】
0006522488.tif 000009
【図７】
0006522488.tif 000010