(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183271
(43)【公開日】2023-12-27
(54)【発明の名称】処理装置、ロボット制御システム及び機械学習方法
(51)【国際特許分類】
B25J 9/22 20060101AFI20231220BHJP
【FI】
B25J9/22 Z
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022096802
(22)【出願日】2022-06-15
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001829
【氏名又は名称】弁理士法人開知
(72)【発明者】
【氏名】小谷 俊貴
(72)【発明者】
【氏名】伊藤 洋
(72)【発明者】
【氏名】一藁 秀行
(72)【発明者】
【氏名】山本 健次郎
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707KS16
3C707KS17
3C707KS21
3C707KS22
3C707KS24
3C707KS31
3C707KS35
3C707LS09
3C707LS14
3C707LT06
3C707LT11
3C707LU09
3C707LW03
3C707LW12
(57)【要約】
【課題】動作学習を阻害する教示データの時間方向のばらつきを低減することができる処理装置、ロボット制御システム及び機械学習方法を提供する。
【解決手段】処理装置(計算機20)のプロセッサ(CPU23)は、ロボット(ロボット装置1)への教示データをロボットの同種の動作ごとに分節する(動作分節化部41)。プロセッサは、分節された複数の教示データに対して、ロボットの同種の動作の速度又はタイミングを揃える補正を行う(速度調整部42、タイミング調整部43)。プロセッサは、補正が行われた複数の教示データを合成する(データ処理部45)。プロセッサは、合成された教示データを用いて機械学習を行う(機械学習装置34)。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ロボットへの教示データを前記ロボットの同種の動作ごとに分節し、
分節された複数の前記教示データに対して、前記ロボットの同種の動作の速度又はタイミングを揃える補正を行い、
補正が行われた複数の前記教示データを合成し、
合成された前記教示データを用いて機械学習を行うプロセッサを備える処理装置。
【請求項2】
請求項1に記載の処理装置であって、
前記プロセッサは、
分節された複数の前記教示データに対して、前記ロボットの同種の動作のダイナミクスの値を平滑化する補正を行う
ことを特徴とする処理装置。
【請求項3】
請求項2に記載の処理装置であって、
前記教示データは、
前記ロボットの位置を示す位置情報、関節角度を示す関節角度情報、
前記ロボットの速度を示す速度情報、前記ロボットの関節角速度を示す関節角速度情報、及び
前記ロボットに設けられる触覚センサのセンサ値を示す触覚情報のうち少なくとも1つを含む
ことを特徴とする処理装置。
【請求項4】
請求項3に記載の処理装置であって、
前記教示データは、
前記ロボット又は作業環境の画像を含む
ことを特徴とする処理装置。
【請求項5】
請求項3に記載の処理装置であって、
前記教示データは、
前記ロボットが作業を行う対象物の位置を示す位置情報、及び前記対象物の姿勢を示す姿勢情報のうち少なくとも1つを含む
ことを特徴とする処理装置。
【請求項6】
請求項2に記載の処理装置であって、
前記ダイナミクスは、
加速度、加速度変化、
躍度、躍度変化、
トルク、及びトルク変化のうち少なくとも1つを含む
ことを特徴とする処理装置。
【請求項7】
請求項4に記載の処理装置であって、
前記プロセッサは、
分節された複数の前記教示データに対して、前記教示データに含まれる画像のフレーム補間を行い、その後、前記ロボットの同種の動作の速度を揃える補正を行う
ことを特徴とする処理装置。
【請求項8】
請求項1に記載の処理装置であって、
前記プロセッサは、
前記教示データから外れデータを除去することでスクリーニングを行う
ことを特徴とする処理装置。
【請求項9】
請求項1に記載の処理装置であって、
機械学習後の前記ロボットの動作を調整するパラメータを示す動作パラメータを記憶する記憶装置を備え、
前記プロセッサは、
学習済みの機械学習モデルを用いて、前記動作パラメータに基づき前記ロボットの動作の指令値を生成する
ことを特徴とする処理装置。
【請求項10】
請求項9に記載の処理装置であって、
前記動作パラメータは、前記教示データのサンプリング周期であり、
前記プロセッサは、
前記指令値において、前記ロボットの制御周期を前記サンプリング周期より小さくすることで前記ロボットの動作の速度を大きくし、又は
前記指令値において、前記ロボットの制御周期を前記サンプリング周期より大きくすることで前記ロボットの動作の速度を小さくする
ことを特徴とする処理装置。
【請求項11】
請求項9に記載の処理装置であって、
前記動作パラメータは、前記教示データにおける前記ロボットのトルク又はそれと相関のある値の最大値であり、
前記プロセッサは、
前記指令値において、前記ロボットのトルク又はそれと相関のある値の上限を前記最大値より大きくすることで前記ロボットの力を大きくし、又は
前記指令値において、前記ロボットのトルク又はそれと相関のある値の上限を前記最大値より小さくすることで前記ロボットの力を小さくする
ことを特徴とする処理装置。
【請求項12】
請求項1に記載の処理装置であって、
前記プロセッサは、
分節された複数の前記教示データを量子化し、ノイズを削除することで前記ロボットの同種の動作の速度を揃える
ことを特徴とする処理装置。
【請求項13】
請求項1に記載の処理装置であって、
前記プロセッサは、
分節された複数の前記教示データに対して、前記ロボットの静止時間を増やす又は減らすことで、前記ロボットの同種の動作のタイミングを揃える補正を行う
ことを特徴とする処理装置。
【請求項14】
請求項1に記載の処理装置とロボットを含むロボット制御システムであって、
前記プロセッサは、学習済みの機械学習モデルを用いて、前記ロボットの動作の指令値を生成し、
前記ロボットは、前記指令値に応じて動作する
ことを特徴とするロボット制御システム。
【請求項15】
ロボットへの教示データを前記ロボットの同種の動作ごとに分節する工程と、
分節された複数の前記教示データに対して、前記ロボットの同種の動作の速度又はタイミングを揃える補正を行う工程と、
補正が行われた複数の前記教示データを合成する工程と、
合成された前記教示データを用いて機械学習を行う工程と、
を含む機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置、ロボット制御システム及び機械学習方法に関する。
【背景技術】
【0002】
事業環境の急速な変化や人々のニーズの多様化に対応するために、多品種少量生産システムが注目を集めている。生産効率を高める手段としてロボットによる自動化が考えられるが、ロボットを制御するためには膨大なプログラミングコストや高い専門知識が必要であり、導入工数が大きいことが課題となっている。そこで、ロボット導入工数を削減するために、あらゆるロボット機能に機械学習が用いられている。例えば、物体認識では、物体の種類や位置、姿勢を推定するために、ロボットとの接触情報や画像情報から機械学習を用いて物体の特徴を定量的に算出する研究が多数報告されている。
【0003】
一方で、動作生成では、環境変化やプログラムでは記述困難な動作を実現するために、機械学習をロボットの自律制御に適用した研究が多数報告されている。自律制御技術の一例として、強化学習が挙げられる。ロボットが試行錯誤することで、タスクを遂行するための最適動作を獲得するため、明示的に動作を教示する必要がない。しかし、最適動作を獲得するためには、膨大な試行錯誤(学習時間)がかかる。
【0004】
学習時間が小さい自律制御技術として、模倣学習がある。模倣学習は教示・学習・実行フェーズの3つからなる。教示フェーズでは、教示者がロボットを操作することで目的の動作を教示し、その際ロボットに搭載されたエンコーダーや、温度センサ、ビジョンセンサ、超音波センサ等が出力する時系列情報を収集記録する。ロボットへの動作教示は、コントローラによる遠隔操作や、ロボットを直接触れて教示するダイレクトティーチング、あるいは制御プログラムを用いる手法などがある。
【0005】
教示フェーズで得られる時系列情報を、教示データと呼ぶ。教示データの種類は、動作生成方法に依存する。例えば、ロボットや対象物の位置に応じて動作を生成する場合、教示データには、ロボットの位置や、関節角情報等が含まれる。さらに、視覚情報に応じて動作を生成する場合は、ロボットや作業環境の画像を含めてもよい。また、対象物の状態に応じて動作を生成する場合は、対象物の位置や姿勢情報を含めてもよい。また、例えば、ロボットの速度に応じて動作を生成する場合、教示データには、ロボットの速度、関節角速度情報等が含まれる。また、例えば、ロボットの力に応じて動作を生成する場合、教示データには、ロボットの触覚情報が含まれる。
【0006】
学習フェーズでは、教示フェーズで収集した教示データをもとに学習データを作成し、その学習データを用いて動作生成モデルの学習を行う。学習データは、教示データをそのまま使用してもよい。また、教示データに含まれるノイズ、欠損、エラー値などを除去するために、教示データを変換することで学習データを作成してもよい。教示データを学習データへ変換することを前処理と呼ぶ。前処理には、欠損値や外れ値等が含まれるデータを除去するデータクリーニングや、データの値が指定された範囲内に収まるように変換する正規化などがある。学習データを用いて、機械学習モデルの重みを更新することで、ある値をモデルへ入力すると、所望の値を出力するようにする。例えば、ある時刻の関節角情報と画像を入力すると、その次の時刻の関節角情報と画像を予測するようにモデルを学習する。
【0007】
実行フェーズでは、学習フェーズで得られた動作生成モデルとロボットのセンサデータを用いて、動作生成を行うことでタスクを実行する。例えば、学習フェーズで、ある時刻の関節角情報と画像を入力すると、その次の時刻の関節角情報と画像を予測するように、機械学習モデルを学習したとする。この機械学習モデルを実行フェーズで用いることで、各時刻の関節角情報と画像を入力し、出力された関節角情報をロボットへの制御指令値とすることで、自律的に動作を生成することができる。
【0008】
模倣学習の動作生成精度を向上させるために、次のような模倣学習が特許文献1に記載されている。この特許文献1には、「模範操作時に操作者が把握していた観測情報に基づいて模倣学習を行う」と記載されている。
【先行技術文献】
【特許文献】
【0009】
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、模倣学習の課題として、導入工数(教示・学習フェーズの工数)削減と、汎化動作獲得の両立が困難であることが挙げられる。例えば、プログラムベースの教示では、コンピュータ制御によってロボットを操作するため、人が操作する場合に比べて均整な教示データが取得でき、教示データ間の関係性を学習しやすくなり汎化動作性能が向上する。しかし、ロボットの動作を逐一プログラミングする必要があるため、導入工数が大きい。
【0011】
プログラムベースよりも導入工数が小さい教示方法としては、人がロボットをコントローラ等で遠隔操作する方法や、直接触れることで操作する方法等が挙げられる。これらの教示方法は、ロボットの動作を逐一プログラミングする必要がないため、導入工数が小さい。
【0012】
しかし、人がロボットを動かすことで、プログラムベースの教示方法に比べて、教示データ毎に動作速度や動作タイミング等の時間方向のばらつきが生じるため、教示データ間の関係性を学習することが困難である。この時間方向のばらつきの影響を無視するためには、膨大な学習データが必要であり、教示回数が増加する。
【0013】
そこで、本発明は、動作学習を阻害する教示データの時間方向のばらつきを低減することができる処理装置、ロボット制御システム及び機械学習方法を提供することを目的とする。なお、特許文献1に記載の技術は、動作生成精度を向上させるために学習データを操作するという点で共通しているものの、時間方向のばらつきを低減することに言及していない。
【課題を解決するための手段】
【0014】
上記目的を達成するために、本発明の一例の処理装置は、ロボットへの教示データを前記ロボットの同種の動作ごとに分節し、分節された複数の前記教示データに対して、前記ロボットの同種の動作の速度又はタイミングを揃える補正を行い、補正が行われた複数の前記教示データを合成し、合成された前記教示データを用いて機械学習を行うプロセッサを備える。
【発明の効果】
【0015】
本発明によれば、動作学習を阻害する教示データの時間方向のばらつきを低減することができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0016】
【
図1】本発明が適用されるロボット制御システムの構成例を示す概略図である。
【
図2】ロボット制御システムの動作計画部を実現する計算機のハードウェア構成例を示すブロック図である。
【
図3】ロボット制御システムの動作計画部が備える計算機の機能構成例を示すブロック図である。
【
図4】本発明の第1の実施形態における、動作計画部が備える整合性検証装置の機能構成例を示すブロック図である。
【
図5】本発明の第1の実施形態における、速度調整の実現方法例の説明図である。
【
図6】本発明の第1の実施形態における、動作計画部が備える機械学習装置の機能構成例を示すブロック図である。
【
図7】本発明の第1の実施形態における、動作計画部が備える整合性検証装置の動作例を示すフローチャートである。
【
図8A】本発明の第1の実施形態における、動作計画部が備える整合性検証装置の効果例を示すための、リーチングタスクの説明図である。
【
図8B】教示動作中の時間とY軸方向の手先位置の関係を表した図である。
【
図8C】教示データに時間方向のバラつきがある場合の、リーチングタスクの様子を示す図である。
【
図8D】時間方向のばらつきがある教示動作中の、時間とY軸方向の手先位置の関係を表した図である。
【
図9】
図8C、8Dに示したリーチングタスクについて、整合性検証装置を適用した際の説明図である。
【
図10】本発明の第2の実施形態における、動作計画部が備える整合性検証装置の内部構成例を示すブロック図である。
【
図11】本発明の第2の実施形態における、動作計画部が備える整合性検証装置の動作例を示すフローチャートである。
【
図12】本発明の第3の実施形態における、ロボット制御システムの構成例を示す概略図である。
【
図13】本発明の第3の実施形態における、ロボット制御システムの動作計画部が備える計算機の機能構成例を示すブロック図である。
【
図14】本発明の第3の実施形態における、ロボット制御システムの動作計画部を実現する計算機のハードウェア構成例を示すブロック図である。
【
図15】本発明の第3の実施形態における、ロボット制御システムの動作計画部が備えるスクリーニング装置の機能構成例を示すブロック図である。
【
図16】本発明の第3の実施形態における、ロボット制御システムが備える画面操作部の機能構成例を示すブロック図である。
【
図17】本発明の第4の実施形態における、ロボット制御システムが備える動作計画部の機能構成例を示すブロック図である。
【
図18】本発明の第4の実施形態における、ロボット制御システムの動作計画部が備える動作パラメータ調整装置の機能構成例を示すブロック図である。
【発明を実施するための形態】
【0017】
以下、第1~第4の実施形態を、図面を用いて説明する。本実施形態は、ロボットの時系列データを学習し、自律的に動作を生成するようなロボット動作生成技術に関する。本実施形態は、動作学習を阻害する教示データの時間方向のばらつきを低減することで、導入工数削減と汎化動作獲得の両立を実現することを目的とする。
【0018】
(第1の実施形態)
まず、本発明の第1の実施形態に係るロボット制御システムについて
図1から
図3を参照して説明する。
【0019】
図1は、本発明が適用されるロボット制御システムの構成例を示す。
図1に示すロボット制御システム100は、ロボット装置1とセンサデータ取得部2、動作計画部3、制御部4から成る。ロボット装置1の具体例として、単腕ロボットアームを示しているが、ロボット装置1の構成は問わず、例えば、双腕アームでもよい。また、脚やクローラ、車輪、プロペラなどの移動装置でもよい。
【0020】
センサデータ取得部2は、ロボット装置1から出力されるセンサデータを取得する。センサデータには、作業中に取得した、ロボット装置1や環境のセンサデータが含まれる。
【0021】
動作計画部3は、センサデータ取得部2で得られたデータを教示データとして、次の3つの手順で動作を学習・生成する。まず、教示データのばらつきを抑える前処理行うことで学習データを作成する。次に、学習データに基づき動作学習を行うことで動作生成モデルを構築する。最後に、構築した動作生成モデルを用いて動作指令値を生成する。
【0022】
制御部4は、動作計画部3で算出された指令値をロボット装置1へ与えることで、ロボット装置1に搭載されたアクチュエータが駆動する。
【0023】
[動作計画部のハードウェア構成]
次に、ロボット制御システム100が備える動作計画部3のハードウェア構成について
図2を参照して説明する。ここでは、動作計画部3を実現する計算機のハードウェア構成について説明する。
【0024】
図2は、動作計画部3を実現する計算機のハードウェア構成例を示すブロック図である。図示する計算機20は、センサデータ取得部2、動作計画部3、制御部4で使用されるコンピュータを構成するハードウェアの一例である。計算機20には、例えば、パーソナルコンピュータを用いることができる。
【0025】
計算機20は、バス21に接続された、ROM(Read Only Memory)22と、CPU(Central Processing Unit)23と、RAM(Random Access Memory)24と、不揮発性ストレージ25と、入出力インターフェース26と、ネットワークインターフェース27と、を備える。
【0026】
ROM22は、本実施形態に係るセンサデータ取得部2、動作計画部3、制御部4の機能を実現するソフトウェアのプログラムコードを記録している。
【0027】
CPU23は、本実施形態に係るセンサデータ取得部2、動作計画部3、制御部4の機能を実現するソフトウェアのプログラムコードをROM22から読み出し、該当プログラムをRAM24にロードして実行する演算処理装置として機能する。RAM24には、CPU23の演算処理の途中で発生した変数やパラメータなどの値が一時的に書き込まれる。RAM24に書き込まれた変数やパラメータなどの値は、CPU23によって適宜読みだされる。演算処理装置としてCPUを用いているが、MPU(Micro Processing Unit)等の他のプロセッサを用いてもよい。
【0028】
不揮発性ストレージ25は、記録媒体の一例であり、プログラムが使用するデータや、プログラムを実行して得られたデータなどを保存できる。例えば、不揮発性ストレージ25には、後述する学習データや動作生成モデル等が保存される。また、不揮発性ストレージ25に、OS(Operating System)や、CPU23が実行するプログラムを記録してもよい。不揮発性ストレージ25としては、磁気記録媒体、光記録媒体、半導体記録媒体などが採用可能である。
【0029】
入出力インターフェース26は、ロボット制御システム100が備える各センサや各アクチュエータの信号やデータの通信を行うインターフェースである。入出力インターフェース26が、入力信号又は出力信号を処理する図示しないA/D(Analog/Digital)変換器、及び/又は、D/A変換器の機能を備えてもよい。本明細書のセンサデータには、各センサだけでなく、各アクチュエータから得られる情報も含まれる。
【0030】
ネットワークインターフェース27は、例えばNIC(Network Interface Card)やモデムが用いられる。ネットワークインターフェース27は、端子が接続されたLANやインターネット等の通信ネットワーク又は専用線等を介して、外部装置との間で各種のデータを送受信することが可能となるように構成されている。例えば、ネットワークインターフェース27を用いることで、ロボット装置1と各種データの送受信を行うことができる。
【0031】
[動作計画部の機能構成]
次に、ロボット制御システム100が備える動作計画部3の機能構成について、
図3を参照して説明する。
図3は、本発明の実施となる動作計画部3の機能構成例を表したものである。
図3に示す動作計画部3において、センサデータ蓄積装置31は、前記センサデータ取得部2で取得されたセンサデータを、時系列データとして記録する装置である。整合性検証装置32は、前記センサデータ蓄積装置31に記録された時系列データを変換し、学習データを出力する装置である。学習データ蓄積装置33は、整合性検証装置32から出力された学習データを記録する装置である。機械学習装置34は、学習データ蓄積装置33に記録された学習データを学習し、制御部4へ指令値を出力する装置である。
【0032】
次に、
図4を用いて動作計画部3の整合性検証装置32の構成を説明する。整合性検証装置32において、動作分節化部41は、センサデータを、動作のまとまり毎に分割する装置である。動作分節化の実現方法としては、速度変化に基づく分節化や、クラスタリングによる分節化、深層学習による分節化等がある。
【0033】
速度変化に基づく分節化は、ロボットの動作速度に基づく手法であり、データ特性が単純な場合に使用できる。クラスタリングによる分節化は、教示データ特性が複雑な場合にも使用できるが、事前に分節数を設定する必要がある。深層学習による分節化は、教示データ特性が複雑な場合にも使用でき、事前に分節数を設定する必要がない。一方、速度変化に基づく分節化やクラスタリングによる分節化に比べて、実装コスト、計算コストが大きい。
【0034】
速度調整部42は、汎化動作獲得の妨げとなる教示データ間の動作速度のばらつきを小さくするために、動作速度を調整する。速度調整部の実現方法の一例として、教示データの量子化とノイズ削除を行うことで教示データ間の速度を揃えるアルゴリズムを説明する。
【0035】
図5は、本アルゴリズムの手順と効果を示した図である。グラフg5Aは、移動速度が異なる種類のデータを示しており、横軸は時間,縦軸は世界座標系におけるある軸(以降、x軸とよぶ)方向の手先位置を表す。グラフg5Bは、グラフg5Aで示す2つの教示データについて、手先位置の値を離散的な近似値に変換する量子化を行った結果を表している。グラフg5Bに示す通り、量子化することで教示データの時間当たりの変化量が一定になる。
【0036】
なお、教示データの時間当たりの変化量が量子化幅よりも大きい場合、量子化後の変化量は必ずしも一定値にならない。そこで、量子化幅の大きさは教示データの時間当たりの変化量と同じ、又は、それより大きくする必要がある。言い換えると、速度調整後は、元の教示データと速度が同じか、又は、元の教示データよりも大きくなる。
【0037】
ただし、変形例2で説明するアップサンプリングを行うことで、元の教示データよりも、小さな速度へ速度調整することができる。拡大表示5Cは、手先一方向に量子化を行うことで、手先位置が変化しない時間、すなわち速度がゼロの時間が発生することを示している。グラフg5Dは、グラフg5Bで示す量子化後の教示データについて、ノイズ削除を行った結果を表している。ノイズ削除とは、量子化後に発生した、速度がゼロになる時間を、ノイズとみなして削除することをいう。グラフg5Dが示す通り、2つの教示データの手先速度が揃っていることが分かる。また、最終手先位置は、速度調整前と変わらないこともわかる。以上より、量子化とノイズ削除を行うことで、速度調整を実現できることがわかる。
【0038】
図4に示すタイミング調整部43は、汎化動作獲得の妨げとなる教示データ間の動作開始・終了等のタイミングのばらつきを小さくするために、動作開始・終了タイミングを調整する。タイミング調整の実現方法の一例としては、ロボット装置1の静止時間を増やす、又は、減らすことが考えられる。例えば、全教示データにおける、ロボット装置1の動作開始時刻を揃えるためには、全教示データの動作開始時刻の平均値を算出し、各教示データにおける動作開始時刻を、その平均値と等しくなるように静止時間を増やす、又は、減らすことが考えられる。
【0039】
ダイナミクス調整部44は、速度調整後の教示データにおける加速度や躍度、トルク等のダイナミクスの大きさや変化が過大になることで、生成される動作が不安定になることを防ぐために、センサデータにおける加速度や躍度、トルク等のダイナミクスを調整する。ダイナミクス調整の実現方法の一例としては、手先位置のデータに対して移動平均フィルタを適用することが考えられる。
【0040】
データ処理部45は、ダイナミクス調整部44から出力されたデータを深層学習モデルで学習できるように、学習データに変換する。具体的には、教示データ毎に、調整後の各分節を合成することで学習データを構築する。
【0041】
次に、
図6を用いて機械学習装置34の構成について説明する。機械学習装置34において、機械学習モデル定義部61は、機械学習モデルの構造やパラメータを定義する。
【0042】
学習部62は、学習データ蓄積装置33で蓄積した学習データを用いて、機械学習モデル定義部61で定義された機械学習モデルの重みを更新することで、ある値をモデルへ入力すると、所望の値を出力するようにする。例えば、ある時刻のロボットの関節角度を入力すると、次の時刻のロボットの関節角度の予測値を出力するようにする。
【0043】
学習済み重み蓄積部63は、学習済みのモデルの重みパラメータを保存する。
【0044】
推論部64は、機械学習モデル定義部61から読み込んだ機械学習モデルと、学習済み重み蓄積部63から読み込んだモデルの重みパラメータを用いることで動作生成モデルを構築し、学習時と同様のセンサデータをモデルへ入力することで動作生成を行う。
【0045】
例えば、学習時に、ある時刻のロボットの関節角度を入力すると、次の時刻のロボットの関節角度の予測値を出力するようにモデルを構築したとする。この場合、動作生成時は、各時刻ごとの関節角度をモデルに入力することで、次の時刻における関節角度を得られ、得られた関節角度を指令値とすることでロボットの動作を生成できる。
【0046】
[動作計画部3の動作例]
次に、これまで説明した動作計画部3の各機能がどのような順序で動作するかを説明する。動作順序は大きく教示・学習・実行の3つのフェーズに分けられる。教示フェーズでは、ロボット装置1を操作することで動作を教示し、その間得られたセンサデータを、センサデータ取得部2を用いて、センサデータ蓄積装置31に記録する。
【0047】
学習フェーズでは、整合性検証装置32を用いて、センサデータ蓄積装置31のセンサデータを学習データへ変換し、機械学習モデル定義部61で定義した機械学習モデルを用いて学習することで、学習済み重みを得る。整合性検証装置32では、動作分節化、速度調整、タイミング調整の3つ手順でセンサデータを変換する。これらの3つの手順を、
図7を参照して説明する。
【0048】
図7は、整合性検証装置32の動作例を示すフローチャートである。前処理開始(S1)後は、まず、全教示データについて、それぞれ動作分節化を行う(S2)。動作分節化では、動作分節化部41を用いて、センサデータを時間方向に分割することで、動作のまとまり毎に分ける。動作分節化後は、各分節について(S3、S4)、速度調整(S5)と、タイミング調整と(S6)、ダイナミクス調整(S7)を行う。タイミング調整部43によって処理されたデータを、データ処理部45を用いることで、学習データへ変換し(S8)、前処理を終了する(S9)。
【0049】
以上のように、整合性検証装置32で教示データを処理することで、教示データ間の時間方向のばらつきを低減した学習データが得られる。なお、速度調整とタイミング調整は、必ずしも両方とも行う必要はなく、どちらか一方のみ行えばよい場合がある。例えば、教示動作の速度のみが異なる場合は、速度のみを調整すればよいので、タイミング調整は不要である。また、教示動作のタイミングのみが異なる場合は、タイミングのみを調整すればよいので、速度調整は不要である。
【0050】
整合性検証装置32で構築した学習データを、機械学習装置34の学習部62へ入力する。学習部62では、機械学習モデル定義部61から機械学習モデルを呼び出し、学習データに基づき学習する。学習の結果得られた動作生成モデルは、学習済み重み蓄積部63へ保存される。
【0051】
実行フェーズでは、学習フェーズで得られた動作生成モデルを用いて、動作生成を行うことで、タスクを実行する。ロボット装置1への指令値を計算するために、機械学習装置34の推論部64を用いる。
【0052】
[動作計画部の効果例]
動作計画部3の有効性の検証として、動作計画部3が動作することで、どのように教示データ間の時間方向のばらつきが小さくなるかを、
図8(8A~8D)、
図9を参照して説明する。
図8(8A~8D)は、ロボットアームの手先を目標手先位置へ直線的に移動させるという、リーチングタスクを表したものである。
図8(8A~8D)を用いて、教示データにおける時間方向のばらつきが、リーチングタスクに与える影響を説明する。
【0053】
まず、
図8Aと
図8B(グラフg8B)を用いて、教示データに時間方向のばらつきがないとタスクが成功する理由を説明する。
図8Aに描かれる手先は、ロボットハンドの初期時刻での位置を示している。また、
図8Aに描かれるp、q、rは、それぞれ目標手先位置を表している。
図8AのX、Yはそれぞれタスク環境に設定された座標軸の名前であり、ここではX軸、Y軸は位置[cm]を示す。ここで、目標手先位置p、rに対する動作を教示したとする。
図8Aにおいて、手先からp、rへ向かう矢印(実線)は、教示動作中の手先の軌跡を表している。
【0054】
図8B(グラフg8B)は、教示動作中の時間とY軸方向の手先位置の関係を表した図である。グラフg8Bに示す通り、目標手先位置pとrの教示動作は、手先速度とリーチング開始・終了時刻は同じであり、時間方向のばらつきはない。動作学習フェーズで、目標手先位置pとrに対する教示動作を学習することで、現在のセンサデータを入力すると、次の時刻におけるロボットアームへの指令値を出力する動作生成モデルを獲得する。
【0055】
次いで、
図8Aとグラフg8Bを参照して、動作実行フェーズで、目標手先位置qに対して生成される動作を考える。動作実行フェーズでは、動作学習フェーズで構築した動作生成モデルへ目標手先位置qは、2点間の学習により、位置汎化することで、目標手先位置p、rのちょうど真ん中に位置するようになる。このとき、qに対して生成される手先位置は、各時刻ごとに、p、rに対する教示動作の手先位置のちょうど中間を通る。
図8Aとグラフg8Bは、qに対して生成される動作を破線で示しており、手先がY軸方向にぶれず安定している。このことから、教示データに時間方向のばらつきがない場合は、リーチングタスクに成功することが分かる。
【0056】
次に、
図8Cと
図8D(グラフg8D)を用いて、ばらつきがあるとタスクが失敗する理由を説明する。
図8Cは、教示データに時間方向のバラつきがある場合の、リーチングタスクの様子を示したものである。図中の各符号は
図8Aと同じ意味を表す。
【0057】
図8D(グラフg8D)は、教示動作中の、時間とY軸方向の手先位置の関係を表した図である。目標手先位置pとrの教示動作には、時間方向のばらつきがある。具体的には、目標手先位置pよりも、目標手先位置rの教示動作のほうが、移動速度が速い。またリーチング開始時刻(2点鎖線)、完了時刻(1点鎖線)も早い。
【0058】
次いで、
図8Cとグラフg8Dを参照して、目標手先位置qに対して生成される動作を考える。上述の通り、p、q、rの位置関係から、qに対して生成される動作は、p、rに対する教示動作のちょうど中間を通る。
図8Cとグラフg8Dに、qに対して生成される動作を、破線で示している。qに対して生成される動作を参照すると、手先がY軸方向に大きくぶれてしまっている。このことから、教示データに時間方向のばらつきがある場合は、リーチングタスクに失敗することが分かる。
【0059】
次いで、
図9を用いて、教示データに時間方向のバラつきがある場合でも、整合性検証装置32を用いることで、汎化動作が獲得できることを説明する。
図9は、
図8C、8Dに示したリーチングタスクについて、整合性検証装置32を適用した際の説明図である。
図9中の、同一符号は
図8C、8Dと同一部品であるため、再度の説明を省略する。
【0060】
グラフg9Aは、グラフg8Dで示した目標手先位置p、rに対する教示データである。上述の通り、目標手先位置p、rに対する教示データには、時間方向のばらつきがある。
【0061】
グラフg9Bは、グラフg9Aで示す目標手先位置p、rに対する教示動作を、それぞれ動作分節化したものである。グラフg9Bの一点鎖線は、分節化した時刻を表している。グラフg9Bに示す通り、リーチング開始時刻とリーチング終了時刻で動作を分割している。例えば、グラフg9Bに示すように、リーチング開始時刻を検出するためには、動作分節化部41にて速度変化に基づく分節化を行うことで、手先が静止している状態から動き始める時刻を調べるとよい。
【0062】
グラフg9Cは、グラフg9Bで示す手先動作について、手先速度を揃える説明図である。グラフg9Cに示す通り、リーチング開始時刻からリーチング完了時刻までのアームの手先速度を調整し、2つの教示データにおける手先速度の平均値+α(定数)と等しくすれば良い。さらに好ましくは、リーチング開始時刻からリーチング完了時刻までのアームの手先速度を平均値と等しくする。
【0063】
グラフg9Dは、グラフg9Cで示す手先動作について、手先の動作タイミングを揃える説明図である。グラフg9Dに示す通り、教示データ間で、リーチング開始時刻とリーチング完了時刻を等しくしている。
【0064】
グラフg9Eは、実行フェーズで、
図8Aにおける目標手先位置qに対して生成される動作を示している。目標手先位置qは、目標手先位置p、rのちょうど中間に位置するため、qに対して生成される動作も、p、rに対する教示動作のちょうど中間を通る。qに対して生成される動作を参照すると、手先がY軸方向にぶれず、安定している。
【0065】
<変形例1>
ところで、本実施形態では、動作分節化部41では、センサデータを動作のまとまりごとに分割する。しかし、データ特性が複雑である場合、分節化がうまく機能しない可能性がある。この対処法として、Recurrent Dropoutを用いることが考えられる。Recurrent Dropoutは、再帰型ニューラルネットワークにおけるノードをランダムに不活性化させながら、学習を行うことである。Recurrent Dropoutを用いることで、学習データにおける時間方向のばらつきに対する汎化性能が向上することが期待される。
【0066】
<変形例2>
ところで、本実施形態では、速度調整部42にて、センサデータの量子化を行っている。しかし、センサデータの単位時間当たりの変化量が量子化幅よりも大きい場合(つまり、変換後の速度を大きくしたい場合)、量子化後のセンサデータの時間当たりの変化量が量子化幅を超えてしまうため、量子化後の時間当たりの変化量が等しくならず速度を揃えることに失敗する。
【0067】
これを避けるためには、速度調整部42にて、量子化の前にアップサンプリングを行うことで、センサの単位時間あたりの変化量を小さくする必要がある。アップサンプリングとは、時系列データのサンプリング周波数を大きくすることである。アップサンプリングの実現方法としては、線形補間や、最近傍補間、スプライン補間等がある。ただし、これらの補間方法は、画像データに対して適用できないことが知られており、フレーム補間という技術が別途必要となる。詳細は、第2の実施形態で説明する。
【0068】
本実施形態の主な特徴は、次のようにまとめることもできる。
【0069】
処理装置(計算機20)のプロセッサ(CPU23)は、ロボット(ロボット装置1)への教示データをロボットの同種の動作ごとに分節する(動作分節化部41)。プロセッサ(CPU23)は、分節された複数の教示データに対して、ロボットの同種の動作の速度又はタイミングを揃える補正を行う(速度調整部42、タイミング調整部43)。プロセッサ(CPU23)は、補正が行われた複数の教示データを合成する(データ処理部45)。プロセッサ(CPU23)は、合成された教示データを用いて機械学習を行う(機械学習装置34)。
【0070】
これにより、教示データの時間方向のばらつきが低減される。その結果、導入工数(教示・学習フェーズの工数)が削減されるとともに、教示データ間の関係性を学習しやすくなり汎化動作性能が向上する。
【0071】
プロセッサ(CPU23)は、分節された複数の教示データに対して、ロボットの同種の動作のダイナミクスの値を平滑化する補正を行う(ダイナミクス調整部44)。例えば、ダイナミクス(加速度や躍度、トルク等)の値は、移動平均をとることにより平滑化される。これにより、ロボットの動作を安定化することができる。
【0072】
教示データは、例えば、ロボットの位置を示す位置情報、関節角度を示す関節角度情報、ロボットの速度を示す速度情報、ロボットの関節角速度を示す関節角速度情報、及びロボットに設けられる触覚センサのセンサ値を示す触覚情報のうち少なくとも1つを含む。本実施形態では、教示データは、ロボットの位置(グリッパーの位置)を示す位置情報を含む。これにより、ロボットの状態を教示データとして機械学習を行うことができる。
【0073】
また、教示データは、ロボットが作業を行う対象物の位置を示す位置情報、及び対象物の姿勢を示す姿勢情報のうち少なくとも1つを含んでもよい。これにより、対象物の状態を教示データとして機械学習を行うことができる。
【0074】
ダイナミクスは、例えば、加速度、加速度変化、躍度、躍度変化、トルク、及びトルク変化のうち少なくとも1つを含む。これにより、ロボットの動作をなめらかにすることができる。
【0075】
プロセッサ(CPU23)は、分節された複数の教示データを量子化し、ノイズを削除することでロボットの同種の動作の速度を揃える(
図5)。これにより、教示データの時間方向のばらつきを高速に低減することができる。
【0076】
プロセッサ(CPU23)は、分節された複数の教示データに対して、ロボットの静止時間を増やす又は減らすことで、ロボットの同種の動作のタイミングを揃える補正を行う(
図9)。これにより、教示データの時間方向のばらつきを容易に低減することができる。
【0077】
ロボット制御システム100は、処理装置(計算機20)とロボット(ロボット装置1)を含む。プロセッサ(CPU23)は、学習済みの機械学習モデルを用いて、ロボットの動作の指令値を生成する(機械学習装置34)。ロボットは、指令値に応じて動作する。これにより、ロボットを自律的に制御することができる。
【0078】
(第2の実施形態)
次に、本発明の第2の実施形態として、センサデータに画像が含まれる場合について、
図10と
図11を参照して説明する。
【0079】
[機能構成例]
図10は、本発明の第2の実施形態における、動作計画部が備える整合性検証装置の内部構成例を示すブロック図である。なお、
図10において、
図4と同一符号は同一部品を示すので、再度の説明は省略する。
図10に示すように、第2の実施形態は、センサデータを動作分節化部41で分割し、速度調整部42と、又は/及び、タイミング調整部43と、を用いることで時間方向のばらつきを削減し、ダイナミクス調整部44を用いることでダイナミクスを調整し、データ処理部45で学習データに変換する点では、第1の実施形態と同じである。第1の実施形態からの変更点は、第2の実施形態では、整合性検証装置32において、フレーム補間部101を備えている点である。フレーム補間部101は、画像の時系列データのフレームレートを大きくする。
【0080】
フレーム補間の実現方法としては、オプティカルフローに基づくフレーム補間や、深層学習によるフレーム補間等が挙げられる。オプティカルフローに基づくフレーム補間は、特徴量抽出と、移動変化計算と、補間画像生成という3つのステップから成る。例えば、画像の時系列データのうち、ある連続する2枚の画像を考える。特徴量抽出では、2枚の画像の特徴量を抽出する。移動変化計算では、特徴量抽出で算出された特徴量のうち、同一特徴量に着目し、その移動変化量を計算する。なお、この特徴量の移動変化のことをオプティカルフローという。補間画像生成では移動変化量に基づき、元の画像2枚における画素を移動することで、2枚の画像の間にある画像を推定する。
【0081】
深層学習によるフレーム補間としては、例えば、FLAVRやFILM等のモデルが挙げられる。FLAVRは、オプティカルフローや3次元畳み込み計算をモデルの内部で行うことで、高精度なフレーム補間を可能にする深層学習モデルである。また、FILMは、画像のスケール(拡大や縮小)を考慮した深層学習モデルである。FLAVR(またはFILM)へ画像の時系列データを入力すると、フレーム補間後の画像の時系列データを得ることができる。
【0082】
[動作例]
図11は、本発明の第2の実施形態における、整合性検証装置32の動作例を示すフローチャートである。
図11に示すように、第2の実施形態は、センサデータの動作分節化を行い(S2)、分節毎に(S3、S4)、速度調整(S6)、タイミング調整(S7)を行い、教示データ毎に(S8、S9)、調整後の各分節を合成することで、学習データを構築する点では、第1の実施形態と同じである。なお、
図11において、
図7と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第2の実施形態では、速度調整(S6)の前に、フレーム補間(S13)を行う点である。
【0083】
本実施形態の主な特徴は、次のようにまとめることもできる。
【0084】
教示データは、ロボット(ロボット装置1)又は作業環境の画像を含む。
【0085】
プロセッサ(CPU23)は、分節された複数の教示データに対して、教示データに含まれる画像のフレーム補間を行い、その後、ロボットの同種の動作の速度を揃える補正を行う(フレーム補間部101)。これにより、教示データがロボット(ロボット装置1)又は作業環境の画像を含んでいても、教示データの時間方向のばらつきを容易に低減することができる。
【0086】
(第3の実施形態)
次に、本発明の第3の実施形態として、汎化性能向上に有効な教示データのみを抽出する場合について、
図12、
図13、
図14と参照して説明する。
【0087】
図12は、本発明の第3の実施形態における、ロボット制御システム100の構成例を示すブロック図である。なお、
図12において、
図1と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第3の実施形態では、ロボット制御システム100において、画面操作部5を備えている点である。画面操作部5は、動作計画部の処理結果を表示することができる。また、ユーザーから受け取った操作入力に基づいて、動作計画部3における各種パラメータを決定する。
【0088】
図13は、本発明の第3の実施形態における、動作計画部3の構成例を示すブロック図である。なお、
図13において、
図3と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第3の実施形態では、動作計画部3において、スクリーニング装置131を備えている点である。スクリーニング装置131は、センサデータ蓄積装置31に保存されたセンサデータの中から、汎化性能向上に有効なもののみを抽出する。その後、抽出された教示データを整合性検証装置32と画面操作部5へ出力する。
【0089】
[ハードウェア構成例]
次に、本発明第3の実施形態における、ロボット制御システム100が備える動作計画部3のハードウェア構成について
図14を参照して説明する。なお、
図14において、
図3と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第3の実施形態では、映像出力インターフェース141を備える点である。
【0090】
映像出力インターフェース141は、例えば、VGA(Video Graphics Array)やDVI(Digital Visual interface)、HDMI(High-Definition Multimedia Interface、登録商標)、Display Portが用いられる。映像出力インターフェース141は、専用線等を介して、ディスプレイへ映像を送信することが可能となるように構成されている。
【0091】
[機能構成例]
次に、本発明第3の実施形態における、ロボット制御システム100が備える動作計画部3のスクリーニング装置131の機能構成例について、
図15を参照して説明する。
【0092】
図15は、本発明の実施となるスクリーニング装置131の機能構成例を現したものである。なお、
図15において、
図13と同一符号は同一部品を示すので、再度の説明は省略する。
【0093】
図15に示すスクリーニング装置131において、グルーピング部151は、センサデータ蓄積装置31に保存されたセンサデータを、動作が類似したデータが同じグループになるようにする。グルーピング部の実現方法として、例えば、同じ目標手先位置のセンサデータ毎にグループに分けることが考えられる。
【0094】
代表データ算出部152は、グルーピング部151で得られたグループ毎に、そのグループを代表する時系列データ(これを代表データと呼ぶ)を算出する。代表データ算出部152の実現方法としては、例えば、グループ内の全ての時系列データについて、各時刻ごとに中央値を算出することで得られた時系列データを、代表データとすることが考えられる。
【0095】
外れデータ検出部153は、グルーピング部151で得られたグループ毎に、代表データ算出部152で算出した代表データと類似していない時系列データ(これを外れデータと呼ぶ)を検出する。外れデータ検出部の実現方法として、例えばDTW(Dynamic Time Warping、動的時間伸縮法)と、IQR(Interquartile range, 四分位範囲)を用いることが考えられる。DTWとは、時系列データ同士の類似度の指標である。DTWのとり得る値は0以上であり、0に近いほど時系列データ同士が類似していることを意味する。まず、グループ内のすべての時系列データについて、代表データとのDTWを算出することで、DTWの系列を得る。次に、算出されたDTWの系列のIQRを求める。IQRとは、データの散らばり度合いを現す指標であり、(第三四分位数)―(第一四分位数)で求まる。最後に、時系列データのうち、代表データに対するDTWが、(第三四分位数+α×IQR)より大きなものを外れデータとする。αの値は初期設定では1.5に設定されている。また、ユーザーが画面操作部5を利用することで値を変更することも可能である。
【0096】
計算結果出力部154は、整合性検証装置32へ、外れデータ以外のセンサデータを出力する。また、画面操作部5へ、外れデータの情報を出力する。
【0097】
次に、本発明第3の実施形態における、ロボット制御システム100が備える画面操作部5の機能構成例について、
図16を参照して説明する。
【0098】
図16は、本発明の実施となる画面操作部5の機能構成例を現したものである。なお、
図16において、
図1と同一符号は同一部品を示すので、再度の説明は省略する。
【0099】
図16に示す画面操作部5において、操作入力部161は、例えば、マウス、キーボード等の入力装置で構成され、ユーザーからのマウス入力やキーボード入力等を受け付ける。
【0100】
画面表示部162は、例えば、ディスプレイ等で構成され、操作入力部161や、動作計画部3から得られる情報を可視化する。
【0101】
画面制御部163は、動作計画部3や操作入力部161からの情報を受信する。また、動作計画部3や画面表示部162に情報を出力する。
【0102】
本実施形態の主な特徴は、次のようにまとめることもできる。
【0103】
プロセッサ(CPU23)は、教示データから外れデータを除去することでスクリーニングを行う(スクリーニング装置131)。これにより、汎化動作性能をさらに向上することができる。
【0104】
(第4の実施形態)
次に、本発明の第4の実施形態として、動作生成時に、任意の動作速度、又は/及び、任意の力の大きさを実現する場合について、
図17を参照して説明する。
【0105】
図17は、本発明の第4の実施形態における、動作計画部の構成例を示すブロック図である。なお、
図17において、
図3と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第4の実施形態では、動作計画部3において、動作パラメータ調整装置171を備えている点である。動作パラメータ調整装置171は、センサデータ蓄積装置31に保存されたセンサデータから、動作生成時に、任意の動作速度、又は/及び、任意の力の大きさを実現する。
【0106】
[動作パラメータ調整装置のハードウェア構成]
本発明の第4の実施形態における、ロボット制御システム100が備える動作計画部3のハードウェア構成は、本発明第3の実施形態の場合と同じであるため、再度の説明は省略する。
【0107】
[動作パラメータ調整装置の機能構成例]
次に、本発明第4の実施形態における、ロボット制御システム100が備える動作計画部3の動作パラメータ調整装置171の機能構成例について、
図18を参照して説明する。
【0108】
図18は、本発明の実施となる動作パラメータ調整装置171の機能構成例を現したものである。なお、
図18において、
図12、
図13と同一符号は同一部品を示すので、再度の説明は省略する。
【0109】
図18に示す動作パラメータ調整装置171において、動作パラメータ記憶部181は、動作パラメータ調整に必要なパラメータの値を保存する。パラメータの種類は、例えば動作生成モデルの制御周期や、電流値の範囲、トルクセンサ値の範囲等がある。パラメータの値は、ユーザーが、画面操作部5を介して変更できる。
【0110】
動作パラメータ調整演算部182は、動作パラメータ記憶部181に保存しているパラメータの値に基づいて、動作生成時に、動作速度、又は/及び、力の大きさを調整する。動作パラメータ調整演算部で動作速度を変更する具体的な方法として、例えば、動作生成時の制御周期を変えることが考えられる。例えば、動作速度を大きくしたい場合は、教示データのサンプリング周期よりも、動作生成時の制御周期を小さくすればよい。動作パラメータ調整演算部で力の大きさを変更する具体的な方法として、例えば、電流値やトルクセンサ値を変えることが考えられる。例えば、力の大きさを小さくしたい場合は、電流値やトルクセンサ値の上限を、教示データよりも小さくすればよい。
【0111】
本実施形態の主な特徴は、次のようにまとめることもできる。
【0112】
処理装置(計算機20)は、機械学習後のロボット(ロボット装置1)の動作を調整するパラメータを示す動作パラメータを記憶する記憶装置(動作パラメータ記憶部181)を備える。記憶装置は、例えば、RAM24、不揮発性ストレージ25等で構成される。
【0113】
プロセッサ(CPU23)は、学習済みの機械学習モデルを用いて、動作パラメータに基づきロボット(ロボット装置1)の動作の指令値を生成する(機械学習装置34)。これにより、教示・学習を再度行うことなく、ロボットの動作を調整することができる。
【0114】
動作パラメータは、例えば、教示データのサンプリング周期である。プロセッサ(CPU23)は、指令値において、ロボット(ロボット装置1)の制御周期をサンプリング周期より小さくすることでロボットの動作の速度を大きくし、又は指令値において、ロボットの制御周期をサンプリング周期より大きくすることでロボットの動作の速度を小さくする(動作パラメータ調整装置171)。これにより、教示・学習を再度行うことなく、ロボットの動作の速度を調整することができる。
【0115】
また、動作パラメータは、例えば、教示データにおけるロボットのトルク又はそれと相関のある値の最大値Mである。プロセッサ(CPU23)は、指令値において、ロボット(ロボット装置1)のトルク又はそれと相関のある値(例えば、アクチュエータの駆動電流の値)の上限を最大値Mより大きくすることでロボットの力を大きし、又は指令値において、ロボットのトルク又はそれと相関のある値の上限を最大値Mより小さくすることで前記ロボットの力を小さくする。これにより、教示・学習を再度行うことなく、ロボットの力を調整することができる。
【0116】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0117】
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。ハードウェアとして、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの広義のプロセッサデバイスを用いてもよい。
【0118】
また、上述した各実施形態に係る動作計画部3の各構成要素は、制御部4に実装されてもよい。また、動作計画部3のある処理部により実施される処理が、1つのハードウェアにより実現されてもよいし、複数のハードウェアによる分散処理により実現されてもよい。
【0119】
上述した各実施形態では、センサデータ取得部2、動作計画部3、制御部4は、一例として1台の計算機20によって実現されるが、別々の計算機によって実現されていてもよい。計算負荷の大きい動作計画部3を高性能な計算機で実現することで、全体のスループットを向上することができる。なお、計算機どうしは、例えば、LAN、インターネット等の通信ネットワークを介して相互に接続される。
【0120】
なお、本発明の実施形態は、以下の態様であってもよい。
【0121】
(1).ロボットの動作を生成するための機械学習を行う機械学習システムであって、ロボットへの教示データ(時系列のセンサ情報等)を取得する取得部と、教示データを、ロボットの動作に基づき分節する動作分節化部と、タスクが共通する異なる教示データ間で、分節された動作のうち、同種の動作の速度が異なる場合に、該同種の動作の速度を揃えるように教示データを補正する速度調整部と、タスクが共通する異なる教示データ間で、分節された動作のうち、同種の動作のタイミングが異なる場合に、該同種の動作のタイミングを揃えるように教示データを補正するタイミング調整部と、教示データにおけるロボットのダイナミクスを補正するダイナミクス調整部と、を備え、前記速度と前記タイミングと前記ダイナミクスのうち少なくとも1つが補正された教示データを、前記機械学習システムにおける学習用データとする、機械学習システム。
【0122】
(2).(1)において、機械学習システムは、ロボットへの教示データとして、ロボットの位置や、関節角度情報等を取得する取得部を備えた、機械学習システム。
【0123】
(3).(2)において、機械学習システムは、ロボットの位置や、関節角度情報に加えて、ロボットや作業環境の画像を取得する取得部を備えた、機械学習システム。
【0124】
(4).(2)において、機械学習システムは、ロボットの位置や、関節角度情報に加えて、対象物の位置、姿勢情報を取得する取得部を備えた、機械学習システム。
【0125】
(5).(1)において、機械学習システムは、ロボットへの教示データとして、ロボットの速度、関節角速度情報等を取得する取得部を備えた、機械学習システム。
【0126】
(6).(1)において、機械学習システムは、ロボットへの教示データとして、ロボットの触覚情報を取得する取得部を備えた、機械学習システム。
【0127】
(7).(1)において、機械学習システムは、ロボットのダイナミクスのうち、加速度または/および加速度変化を調整するダイナミクス調整部を備えた、機械学習システム。
【0128】
(8).(1)において、機械学習システムは、ロボットのダイナミクスのうち、躍度または/および躍度変化を調整するダイナミクス調整部を備えた、機械学習システム。
【0129】
(9).(1)において、機械学習システムは、ロボットのダイナミクスのうち、トルクまたは/およびトルク変化を調整するダイナミクス調整部を備えた、機械学習システム。
【0130】
(10).(1)において、前記速度調整部は、ロボットへの教示データにカメラ画像が含まれる場合、前記教示データ間で、フレーム補間を行った後に、該同種の動作の速度を揃えるように教示データを補正することを特徴とする、機械学習システム。
【0131】
(11).(1)において、機械学習システムは、取得した教示データの中から、動作汎化性能向上に有効な教示データを抽出するスクリーニング装置を備えた、機械学習システム。
【0132】
(12).(1)において、機械学習システムは、学習済みの機械学習モデルを用いて動作生成を行う際、任意の動作速度を実現するために、ロボットの制御周期を調整する動作パラメータ調整装置を備えた、機械学習システム。
【0133】
(13).(1)において、機械学習システムは、学習済みの機械学習モデルを用いて動作生成を行う際、任意の力の大きさを実現するために、ロボットのトルクを調整する動作パラメータ調整装置を備えた、機械学習システム。
【0134】
(1)~(13)によれば、動作学習を阻害する教示データ間の時間方向のばらつきを低減することで、導入工数削減と汎化性能獲得の両立が期待できる。
【符号の説明】
【0135】
1…ロボット装置、2…センサデータ取得部、3…動作計画部、4…制御部、5…画面操作部、22…ROM、23…CPU、24…RAM、25…不揮発性ストレージ、26…入出力インターフェース、27…ネットワークインターフェース、31…センサデータ蓄積装置、32…整合性検証装置、33…学習データ蓄積装置、34…機械学習装置、41…動作分節化部、42…速度調整部、43…タイミング調整部、44…ダイナミクス調整部、45…データ処理部、61…機械学習モデル定義部、62…学習部、63…学習済み重み蓄積部、64…推論部、101…フレーム補間部、131…スクリーニング装置、161…操作入力部、151…グルーピング部、152…代表データ算出部、153…外れデータ検出部、154…計算結果出力部、161…操作入力部、162…画面表示部、163…画面制御部、171…動作パラメータ調整装置、181…動作パラメータ記憶部、182…動作パラメータ調整演算部