【解決手段】ロボット制御装置1は、複数の関節を有するアームと、関節を駆動するモータ23と、モータ23の位置によって示される関節位置を検出するエンコーダ24とを有するロボット2のアームの先端部に設置された力センサ3から、力センサ3に作用した力の方向及び大きさを表す力情報を取得する力センサデータ取得部11と、力情報に基づいて、力センサ3に外力が作用した方向にアームの先端部が移動するようにアームを駆動させる動き出しアシスト制御を行う動き出しアシスト制御部12と、関節位置に基づくフィードバック処理により、ロボット2をコンプライアンス制御するコンプライアンス制御部13とを備える。
複数の関節を有するアームと、関節を駆動するモータと、前記モータの位置によって示される関節位置を検出するエンコーダとを有するロボットの前記アームの先端部に設置された力センサから、前記力センサに作用した力の方向及び大きさを表す力情報を取得する力センサデータ取得部と、
前記力情報に基づいて、前記力センサに作用した力の方向に前記アームの先端部が移動するように前記アームを駆動させる動き出しアシスト制御を行う動き出しアシスト制御部と、
前記関節位置に基づくフィードバック処理により、前記ロボットをコンプライアンス制御するコンプライアンス制御部とを備えることを特徴とするロボット制御装置。
前記動き出しアシスト制御を行うか、前記コンプライアンス制御を行うか、前記動き出しアシスト制御と前記コンプライアンス制御とを並行して行うかを、前記エンコーダが検出した前記関節位置から算出した前記アームの先端部の速度又は前記力センサからの力情報に基づいて切り替える制御切替部を備えることを特徴とする請求項1に記載のロボット制御装置。
前記関節位置から算出した前記アームの先端部の速度又は前記力センサからの力情報が示す力の大きさが第1の閾値未満であれば、前記動き出しアシスト制御を行い、前記関節位置から算出した前記アームの先端部の速度又は前記力センサからの力情報が示す力の大きさが前記第1の閾値よりも大きい第2の閾値以上であれば、前記コンプライアンス制御を行い、前記関節位置から算出した前記アームの先端部の速度又は前記力センサからの力情報が示す力の大きさが前記第1の閾値以上前記第2の閾値未満であれば、前記動き出しアシスト制御と前記コンプライアンス制御とを並行して行うことを特徴とする請求項2に記載のロボット制御装置。
複数の関節を有するアームの先端部に設置された力センサを有するロボットの温度及びエンコーダによって取得された前記関節を駆動するモータの位置情報と、前記力センサに作用した力の方向に前記アームの先端部が移動するように前記アームを駆動させる動き出しアシスト制御と、前記位置情報に基づくフィードバック処理によるコンプライアンス制御とを切り替えるための閾値とを含む学習用データを取得するデータ取得部と、
前記学習用データを用いて、前記ロボットの温度及び前記位置情報から、前記閾値を推論するための学習済モデルを生成するモデル生成部とを備えることを特徴とする学習装置。
前記データ取得部が取得する前記閾値は、前記ロボットの動き出し時に前記関節を駆動するモータに流れる電流の電流値のピーク値であることを特徴とする請求項5に記載の学習装置。
複数の関節を有するアームの先端部に設置された力センサを有するロボットの温度及びエンコーダによって取得された前記関節を駆動するモータの位置情報を取得するデータ取得部と、
前記力センサに作用した力の方向に前記アームの先端部が移動するように前記アームを駆動させる動き出しアシスト制御と、前記位置情報に基づくフィードバック処理によるコンプライアンス制御とを切り替えるための閾値を、前記ロボットの温度及び前記位置情報から推論するための学習済モデルを用いて、前記データ取得部から入力された前記ロボットの温度及び前記位置情報から前記閾値を出力する推論部とを備えることを特徴とする推論装置。
【発明を実施するための形態】
【0010】
以下に、実施の形態に係るロボット制御装置、学習装置及び推論装置を図面に基づいて詳細に説明する。
【0011】
実施の形態1.
図1は、実施の形態1に係るロボット制御装置を用いたロボットシステムの構成を示す図である。ロボットシステム50は、ロボット制御装置1とロボット2とを有する。ロボット2は、アーム21の先端部に力センサ3を備えている。力センサ3は、外から作用した力の方向及び大きさを示す力情報を検出する。力センサ3は、力覚センサと呼ばれる高精度なセンサである必要はなく、人力による操作力を検出できればよい。アーム21は、複数の関節22を有している。ロボット2は、各関節22を駆動するモータ23を備えている。各モータ23には、モータ23の回転位置を検出し、検出した回転位置を示す位置情報を出力するエンコーダ24が設置されている。なお、
図1には、ロボット2が有する複数のモータ23及びエンコーダ24のうち、一部のみ図示している。
【0012】
図2は、実施の形態1に係るロボット制御装置の機能ブロック図である。ロボット制御装置1は、力センサ3から力情報を取得する力センサデータ取得部11と、力情報に基づいて、力が作用した方向に力センサ3が移動するようにアーム21を動かすためのトルク指令を生成する動き出しアシスト制御部12と、エンコーダ24からのエンコーダ情報に基づいてロボット2をコンプライアンス制御してトルク指令を生成するコンプライアンス制御部13と、動き出しアシスト制御を行うか、コンプライアンス制御を行うか、動き出しアシスト制御とコンプライアンス制御とを並行して行うかをエンコーダ情報に基づいて切り替える制御切替部14とを備えた制御部16を有する。また、ロボット制御装置1は、トルク指令に基づいてモータ23を駆動するサーボアンプ15を有する。なお、動き出しアシスト制御とは、力センサ3に外から作用する力と同じ方向にアーム21の先端部が移動するようにアーム21を動かすことによって、ロボット2を動き出させるのに要する力を軽減する制御である。
【0013】
力センサ3が設置されたアーム21の先端部の位置及び速度は、各関節22の関節位置及び関節速度によって定まる。各関節22の関節位置は、エンコーダ24が取得するモータ23の位置情報である。各関節22の関節速度は、関節位置を微分することによって算出される。
【0014】
図3は、実施の形態1に係るロボット制御装置がロボットを教示する際のロボットの関節の制御系のブロック線図である。補正量計算部38は、関節速度と既定の位置ゲイン補正係数K
cvとの積である計算結果を指令値計算部39に出力する。指令値計算部39は、補正量計算部38による計算結果と関節位置とを加算した計算結果であるコンプライアンス制御の位置指令値を加算器42及び切替スイッチ43に出力する。
【0015】
位置算出部40は、関節位置と力センサ3からの力情報とを加算した計算結果である関節位置を切替スイッチ43に出力する。位置算出部40が切替スイッチ43に出力する関節位置は、力センサ3に外力が作用したことによって移動した後の関節位置である。なお、切替スイッチ43に出力される位置算出部40の計算結果は、計算結果である関節位置が示す位置への移動を指令する位置指令となる。ゲイン計算部41は、力センサ3からの力情報に、関節速度が大きくなるにつれて小さくなるゲインK
s(V)を乗じた補正量を算出し、加算器42に出力する。ゲイン計算部41が出力する補正量は、力センサ3に外力が作用したことによる補正量である。加算器42は、力センサ3に外力が作用したことによる補正量と位置指令値とを加算した計算結果であるコンプライアンス制御と動き出しアシスト制御とを並行して行うための位置指令値を切替スイッチ43に出力する。切替スイッチ43は、移動量計算部31に出力する位置指令値を切り替えるスイッチである。
【0016】
スイッチ制御器44は、位置算出部40の計算結果、加算器42の計算結果及び指令値計算部39の計算結果のいずれを位置指令値にするかを、関節速度に基づいて切り替える。なお、スイッチ制御器44は、関節角度から直交座標系に座標変換したロボット2の先端での直交座標位置を微分するなどして算出した直交座標速度に基づいて、位置算出部40の計算結果、加算器42の計算結果及び指令値計算部39の計算結果のいずれを位置指令値にするかを切り替えてもよい。位置算出部40の計算結果、加算器42の計算結果及び指令値計算部39の計算結果のいずれを位置指令値にするかを、直接教示を行う操作者が直感的に分かり易い直交座標系の速度に基づいて切り替えることにより、操作者が操作しやすくなる。また、スイッチ制御器44は、位置算出部40の計算結果、加算器42の計算結果及び指令値計算部39の計算結果のいずれを位置指令値にするかを、力センサ3からの力情報に基づいて切り替えてもよい。
【0017】
図4は、実施の形態1に係るロボット制御装置のゲイン計算部が用いるゲインの一例を示す図である。ゲインK
s(V)は、関節速度vが第1の閾値v
1以上第2の閾値v
2未満の範囲では、関節速度vが高速になるほど小さくなる。関節速度vが第1の閾値v
1未満ではゲインK
s(V)=1であり、第2の閾値v
2以上ではゲインK
s(V)=0である。関節速度vが第1の閾値v
1以上第2の閾値v
2未満では、ゲインK
s(V)=(v−v
2)/(v
1−v
2)である。なお、
図4に示すゲインK
s(V)は、一例であり、第1の閾値v
1と第2の閾値v
2との間でゲインの変化は直線的でなくてもよい。第1の閾値v
1及び第2の閾値v
2は、ユーザが設定可能とすることにより、動き出しアシスト制御とコンプライアンス制御とを並行して行い始める速度及び動き出しアシスト制御を終了してコンプライアンス制御のみを行う速度をロボット2の仕様に合わせて決めることができる。以下の説明において、第1の閾値v
1は、関節速度の測定の分解能においてゼロを超える最小値に設定されているものとする。したがって、ロボット制御装置1は、関節22がわずかでも動いた場合に、動き出しアシスト制御とコンプライアンス制御とを並行して行い始める。ただし、ロボット2に振動などの外乱が作用することを鑑みて、関節速度が一定速度に達してから、動き出しアシスト制御とコンプライアンス制御とを並行して行い始めるように、第1の閾値v
1を設定してもよい。
【0018】
移動量計算部31は、切替スイッチ43から出力される位置指令値とエンコーダ24で検出された現在の関節位置との差である移動量を計算する。速度指令値計算部32は、移動量に関節位置フィードバックループにおける位置ゲインK
pを乗ずることにより速度指令値を求める。速度偏差計算部33は、速度指令値と速度検出器37で検出された関節速度との差である速度偏差を計算する。速度ゲイン処理部34は、速度偏差と関節速度フィードバックループにおける速度ゲインK
vとの積を計算する。積分器35は、速度偏差と速度ゲインK
vとの積を積分し、関節速度フィードバックループにおける積分ゲインK
iを乗算する。トルク指令生成部36は、速度偏差と速度ゲインK
vとの積に積分器35の出力を加算することによりトルク指令を求める。
【0019】
なお、アーム21の先端部のように複数の関節22が可動することによって移動する部位の移動速度に基づいて直接教示の開始時にロボット制御装置1がロボット2を制御する方法を切り替える場合には、各関節22の関節速度の和によって表される移動速度を第1の閾値及び第2の閾値と比較してロボット制御装置1がロボット2を制御する方法を切り替えればよい。
【0020】
実施の形態1に係るロボットシステム50のロボット制御装置1の動作について説明する。
図5は、実施の形態1に係るロボット制御装置の動作の流れを示すフローチャートである。この動作は、直接教示の開始時にロボット制御装置1がロボット2を制御する方法を切り替える動作である。以下の説明においては、直接教示の開始時にロボット制御装置1がロボット2を制御する方法を、各関節22の関節速度によって定まるアーム21の先端部の移動速度に基づいて切り替える。ステップS1において、ロボット制御装置1は、人手で力センサ3が押されることによって力センサ3が検出した力情報を力センサ3から受信する。ステップS2において、ロボット制御装置1は、力情報を基に力センサ3が設置されたアーム21の先端部の移動量を算出する。ステップS3において、ロボット制御装置1は、アーム21の先端部の移動量を基にトルク指令を生成する。ステップS1からステップS3の動作は、力センサ3に外力が作用した方向に移動するようにアーム21を動かすことによって、ロボット2を動き出させるのに要する力を軽減する動き出しアシスト制御である。
【0021】
ステップS4において、ロボット制御装置1は、力センサ3が設置されたアーム21の先端部の移動速度が第1の閾値未満であるか否かを判断する。アーム21の先端部の移動速度が第1の閾値未満であれば、ステップS4でYesとなり、処理はステップS1に進む。アーム21の先端部の移動速度が第1の閾値以上であれば、ステップS4でNoとなり、処理はステップS5に進む。
【0022】
ステップS5において、ロボット制御装置1は、アーム21の先端部の移動速度が第2の閾値未満であるか否かを判断する。アーム21の先端部の移動速度が第2の閾値未満であれば、ステップS5でYesとなり、処理はステップS6に進む。アーム21の先端部の移動速度が第2の閾値以上であれば、ステップS5でNoとなり、処理はステップS9に進む。
【0023】
ステップS6において、ロボット制御装置1は、力センサ3から力情報を受信するとともに、現在の指令値とフィードバック値との差を算出する。
【0024】
ステップS7において、ロボット制御装置1は、力センサ3の出力を基に力センサ3及びロボット2の移動量を生成し、アーム21の先端部及びロボット2の移動速度に合わせて移動量を変更する。
【0025】
ステップS8において、ロボット制御装置1は、指令値とフィードバック値との差と、変更後の移動量とからトルク指令を生成する。ステップS8の後、処理はステップS4に進む。ステップS6からステップS8の動作は、動き出しアシスト制御とコンプライアンス制御とを並行に行う制御である。
【0026】
ステップS9において、ロボット制御装置1は、力センサ3からロボット2への持ち替えをユーザに促す合図を出す。合図は、表示装置を用いた視覚的な合図であってもよいし、スピーカを用いた聴覚的な合図であってもよい。ステップS10において、ロボット制御装置1は、現在の指令値とフィードバック値との差を算出する。
【0027】
ステップS11において、ロボット制御装置1は、指令値とフィードバック値との差を基に、新たなトルク指令を生成する。ステップS11の後、処理はステップS10に進む。ステップS10及びステップS11の動作は、コンプライアンス制御である。
【0028】
なお、力センサ3以外の部分を押して直接教示を行う場合には、ステップS1からステップS9の処理は行われず、ステップS10及びステップS11の処理が行われる。
【0029】
図6は、実施の形態1に係るロボットシステムにおいてロボットに直接教示するのに必要な力を示す図である。
図6中の線Aは、ロボット制御装置1でロボット2の直接教示を行う際にロボット2を動かすのに必要な力を示している。
図6中の線Bは、コンプライアンス制御だけを行うロボット制御装置がロボット2の直接教示を行う際にロボット2を動かすのに必要な力を示している。
図6中の線Cは、アーム21の先端部の移動速度を示している。コンプライアンス制御だけを行う場合、静止しているロボット2が静止摩擦力に打ち勝って時刻T
1において動き出すまでの間は、力センサ3に加える力を増大させ、ロボット2が動き出した後は、動摩擦力に打ち勝ってロボット2の動きを維持する力を加え続けることになる。したがって、コンプライアンス制御だけを行う場合には、力センサ3に加える力は、ロボット2が動き出す直前に最大となる。一方、実施の形態1に係るロボット制御装置1は、制御切替部14から出力する位置指令値をアーム21の先端部の移動速度によって変化させるため、アーム21の先端部の移動速度が第1の閾値未満の間は、K
s(v)を1にして位置指令値をそのまま移動量計算部31に出力し、アーム21の先端部の移動速度が第1の閾値以上かつ第2の閾値未満の場合は、アーム21の先端部の移動速度が増大するにつれて減少するK
s(v)によって位置指令値を補正して移動量計算部31に出力する。したがって、静止しているロボット2が静止摩擦力に打ち勝って時刻T
1において動き出すまでの間は、ロボット2を動かす力に一定の強さの動き出しアシストが加わり、ロボット2が動き出した後は、アーム21の先端部の移動速度が増大するにつれて動き出しアシストが弱まり、時刻T
2においてアーム21の先端部の移動速度が第2の閾値以上になると、動き出しアシストが無い通常のコンプライアンス制御となる。
【0030】
実施の形態1に係るロボット制御装置1は、直接教示の開始時に、静止しているロボット2を弱い力で動き出させることができる。
【0031】
実施の形態2.
図7は、実施の形態2に係るロボット制御装置の機能ブロック図である。実施の形態2に係るロボット制御装置1は、制御切替部14が推論装置70から学習済データを取得する点で実施の形態1に係るロボット制御装置1と相違する。実施の形態2に係るロボット2は、モータ23に流れる電流の大きさを計測し、ロボット2の動き出し時にモータ23に流れる電流のピーク値を取得するピーク電流値取得部25と、ロボット2の温度を測定する温度センサ26とを備える。実施の形態2に係るロボット2は、
図1に示した実施の形態1に係るロボット2と同様に、複数の関節22を有するアーム21と、アーム21の先端部に設置された力センサ3と、各関節22を駆動するモータ23と、モータ23の回転位置を検出し、検出した回転位置を示す位置情報を出力するエンコーダ24とを備えている。また、ロボット2には、学習装置60及び推論装置70が接続される。学習装置60及び推論装置70には、記憶装置80が接続される。
【0032】
図8は、実施の形態2に係る学習装置の機能ブロック図である。学習装置60は、データ取得部61及びモデル生成部62を備える。また、記憶装置80は、学習済モデルを記憶する学習済モデル記憶部81を備える。
【0033】
モデル生成部62が用いる学習アルゴリズムは、教師あり学習、教師なし学習及び強化学習といった公知のアルゴリズムを用いることができる。一例として、ニューラルネットワークを適用した場合について説明する。
【0034】
モデル生成部62は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習により、切り替え速度閾値を学習する。ここで、教師あり学習とは、入力と結果とのデータの組を学習装置60に与えることで、与えられた学習用データにある特徴を学習し、入力から結果を推論する手法をいう。
【0035】
データ取得部61は、姿勢、動き出し方向、温度及び切り替え速度閾値を学習用データとして取得する。切り替え速度閾値は、動き出しアシスト制御とコンプライアンス制御とを切り替えるための閾値である。エンコーダ24が取得するモータ23の位置情報が、姿勢及び動き出し方向の情報としてデータ取得部61に取得される。また、温度センサ26が取得するモータ23の温度情報が、温度の情報としてデータ取得部61に取得される。また、
図6に示したように、静止していたロボット2が動き出すまでは、ロボット2を動かす力に一定の強さの動き出しアシストが加わり、ロボット2が動き出すとアーム21の先端部の移動速度の増大に合わせて動き出しアシストが弱まるため、モータ23に流れる電流は、動き出しアシスト制御からコンプライアンス制御に切り替わる時に電流値がピーク値となる。したがって、データ取得部61は、特定の姿勢、動き出し方向及び温度でのロボット2の動き出し時にモータ23に流れた電流の電流値のピーク値を取得することにより、切り替え速度閾値を取得する。教師あり学習においては、データ取得部61がピーク電流値取得部25から取得した切り替え速度閾値は、動き出しアシスト制御からコンプライアンス制御へ切り替わった時のアーム21の先端部の移動速度を示す正解データである。
【0036】
モデル生成部62は、データ取得部61によってロボット2から取得される姿勢、動き出し方向、温度及び切り替え速度閾値の組み合わせに基づいて作成される学習用データに基づいて、切り替え速度閾値を学習する。すなわち、モデル生成部62は、ロボット2の姿勢、動き出し方向、温度及び切り替え速度閾値に基づいて、姿勢、動き出し方向及び温度の組み合わせに適した切り替え速度閾値を推論する学習済モデルを生成する。
【0037】
ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層及び複数のニューロンからなる出力層で構成される。なお、中間層は、1層でもよいし、2層以上でもよい。
【0038】
図9は、実施の形態2に係る学習装置のニューラルネットワークモデルの一例を示す図である。
図9に示すような3層のニューラルネットワークであれば、複数の入力が入力層X1,X2,X3に入力されると、入力された値に重みw11,w12,w13,w14,w15,w16が掛けられて中間層Y1,Y2に入力される。さらに、中間層Y1,Y2に入力された値に重みw21,w22,w23,w24,w25,w26が掛けられて出力層Z1,Z2,Z3から出力される。出力層Z1,Z2,Z3からの出力である結果は、重みw11,w12,w13,w14,w15,w16の値及び重みw21,w22,w23,w24,w25,w26の値とによって変わる。
【0039】
実施の形態2に係る学習装置60において、ニューラルネットワークは、データ取得部61によって取得される姿勢、動き出し方向、温度及び切り替え速度閾値の組み合わせに基づいて作成される学習用データに従って、いわゆる教師あり学習により、切り替え速度閾値を学習する。
【0040】
すなわち、ニューラルネットワークは、入力層X1,X2,X3に姿勢、動き出し方向及び温度を入力して出力層Z1,Z2,Z3から出力された結果が、切り替え速度閾値に近づくように重みw11,w12,w13,w14,w15,w16の値及び重みw21,w22,w23,w24,w25,w26を調整することで学習を実行する。
【0041】
モデル生成部62は、上記のような学習を実行することで、学習済モデルを生成し、生成した学習済モデルを出力する。
【0042】
学習済モデル記憶部81は、モデル生成部62から出力された学習済モデルを記憶する。
【0043】
図10は、実施の形態2に係る学習装置の学習処理の流れを示すフローチャートである。ステップb1において、データ取得部61は、姿勢、動き出し方向、温度及び切り替え速度閾値によって構成される学習用データを取得する。なお、姿勢、動き出し方向、温度及び切り替え速度閾値を同時に取得するものとしたが、姿勢、動き出し方向、温度及び切り替え速度閾値を関連付けて取得できればよく、姿勢、動き出し方向、温度及び切り替え速度閾値の各データをそれぞれ別のタイミングで取得してもよい。
【0044】
ステップb2において、モデル生成部62は、データ取得部61によって取得される姿勢、動き出し方向、温度及び切り替え速度閾値によって構成される学習用データに従って、いわゆる教師あり学習により、切り替え速度閾値を学習し、学習済モデルを生成する。
【0045】
ステップb3において、モデル生成部62は、生成した学習済モデルを学習済モデル記憶部81に記憶させる。
【0046】
図11は、実施の形態2に係る推論装置の機能ブロック図である。実施の形態2に係る推論装置70は、データ取得部71及び推論部72を備える。
【0047】
データ取得部71は、姿勢、動き出し方向及び温度を取得する。
【0048】
推論部72は、学習済モデルを利用して得られる切り替え速度閾値を推論する。すなわち、学習済モデルにデータ取得部71で取得した姿勢、動き出し方向及び温度を入力することで、姿勢、動き出し方向及び温度から推論される切り替え速度閾値を出力する。
【0049】
なお、実施の形態2においては、ロボット2に関してモデル生成部62で学習した学習済モデルを用いて切り替え速度閾値を出力するものとして説明したが、ロボット2とは異なるロボットに関する学習済モデルを外部から取得し、この学習済モデルに基づいて切り替え速度閾値を出力するようにしてもよい。
【0050】
図12は、実施の形態2に係る推論装置が出力する切り替え速度閾値を用いてロボットが動き出しアシスト制御からコンプライアンス制御に切り替える処理の流れを示すフローチャートである。ステップc1において、データ取得部71は姿勢、動き出し方向及び温度を取得する。
【0051】
ステップc2において、推論部72は、学習済モデル記憶部81に記憶された学習済モデルに姿勢、動き出し方向及び温度を入力し、切り替え速度閾値を得る。
【0052】
ステップc3において、推論部72は、学習済モデルにより得られた切り替え速度閾値をロボット2の制御切替部14に出力する。
【0053】
ステップc4において、ロボット2は、動作開始時に、動き出しアシスト制御からコンプライアンス制御への切り替えを行う。これにより、ロボット制御装置1は、ロボット2の姿勢、動き出し方向及びモータ23の温度によらず、動き出しアシスト制御からコンプライアンス制御への切り替えを行うことができる。
【0054】
モータ23が発生させるトルクは、モータ23の温度が一定であれば、モータ23に供給される電流の変化に対して直線的に変化する。したがって、モータ23の温度が一定であるならば、切り替え速度閾値を演算によって求めることができる。しかし、モータ23の温度が一定ではない場合又は静止摩擦の影響が大きいときは、モータ23が発生させるトルクとモータ23に供給される電流との関係は、非線形の関係となるため、演算により切り替え速度閾値を求めることは困難である。実施の形態2では、学習装置60は、機械学習により学習済モデルを生成し、推論装置70は、機械学習によって生成された学習済モデルに基づいて切り替え速度閾値を得るため、モータ23の温度が一定ではない環境下においても、切り替え速度閾値を得ることができる。
【0055】
なお、実施の形態2では、モデル生成部62が用いる学習アルゴリズムに教師あり学習を適用した場合について説明したが、これに限られるものではない。学習アルゴリズムについては、教師あり学習以外にも、強化学習、教師なし学習又は半教師あり学習などを適用することも可能である。
【0056】
また、モデル生成部62は、複数のロボット2に対して作成される学習用データに従って、切り替え速度閾値を学習するようにしてもよい。なお、モデル生成部62は、同一のエリアで使用される複数のロボット2から学習用データを取得してもよいし、異なるエリアで独立して動作する複数のロボット2から収集される学習用データを利用して切り替え速度閾値を学習してもよい。また、学習用データを収集するロボット2を途中で対象に追加したり、対象から除外したりすることも可能である。さらに、あるロボット2に関して切り替え速度閾値を学習した学習装置60を、別のロボット2に接続し、別のロボット2に関して切り替え速度閾値を再学習して更新するようにしてもよい。
【0057】
また、モデル生成部62に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する深層学習(Deep Learning)を用いることもでき、他の公知の方法に従って機械学習を実行してもよい。例えば、Q学習、遺伝的プログラミング、機能論理プログラミング又はサポートベクターマシンに従って機械学習を実行してもよい。
【0058】
なお、学習装置60及び推論装置70は、ロボット2の切り替え速度閾値を学習するために使用されるが、例えば、ロボット2とは別個の装置であり、ネットワークを介してロボット2に接続されてもよい。また、学習装置60及び推論装置70は、ロボット2に内蔵されてもよい。さらに、学習装置60及び推論装置70は、ネットワーク上のサーバ内に存在していてもよい。
【0059】
上記の実施の形態1,2に係るロボット制御装置1の制御部16の機能、上記の実施の形態2に係る学習装置60のモデル生成部62の機能及び上記の実施の形態2に係る推論装置70の推論部72の機能は、処理回路により実現される。処理回路は、専用のハードウェアであっても、記憶装置に格納されるプログラムを実行する処理装置であってもよい。
【0060】
処理回路が専用のハードウェアである場合、処理回路は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、又はこれらを組み合わせたものが該当する。
図13は、実施の形態1,2に係るロボット制御装置の制御部の機能、実施の形態2に係る学習装置のモデル生成部の機能又は実施の形態2に係る推論装置の推論部の機能をハードウェアによる処理回路で実現した構成を示す図である。処理回路29には、制御部16の機能、モデル生成部62の機能又は推論部72の機能を実現する論理回路29aが組み込まれている。
【0061】
処理回路29が処理装置の場合、制御部16の機能、モデル生成部62の機能又は推論部72の機能は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。
【0062】
図14は、実施の形態1,2に係るロボット制御装置の制御部の機能、実施の形態2に係る学習装置のモデル生成部の機能又は実施の形態2に係る推論装置の推論部の機能をソフトウェアによる処理回路で実現した構成を示す図である。処理回路29は、プログラム29bを実行するプロセッサ291と、プロセッサ291がワークエリアに用いるランダムアクセスメモリ292と、プログラム29bを記憶する記憶装置293を有する。記憶装置293に記憶されているプログラム29bをプロセッサ291がランダムアクセスメモリ292上に展開し、実行することにより、制御部16の機能、モデル生成部62の機能又は推論部72の機能が実現される。ソフトウェア又はファームウェアはプログラム言語で記述され、記憶装置293に格納される。プロセッサ291は、中央処理装置を例示できるがこれに限定はされない。記憶装置293は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、又はEEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)といった半導体メモリを適用できる。半導体メモリは、不揮発性メモリでもよいし揮発性メモリでもよい。また記憶装置293は、半導体メモリ以外にも、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク又はDVD(Digital Versatile Disc)を適用できる。なお、プロセッサ291は、演算結果といったデータを記憶装置293に出力して記憶させてもよいし、ランダムアクセスメモリ292を介して不図示の補助記憶装置に当該データを記憶させてもよい。プロセッサ291、ランダムアクセスメモリ292及び記憶装置293を1チップに集積することにより、制御部16の機能、モデル生成部62の機能又は推論部72の機能をマイクロコンピュータにより実現することができる。
【0063】
処理回路29は、記憶装置293に記憶されたプログラム29bを読み出して実行することにより、制御部16の機能、モデル生成部62の機能又は推論部72の機能を実現する。プログラム29bは、制御部16の機能、モデル生成部62の機能又は推論部72の機能を実現する手順及び方法をコンピュータに実行させるものであるとも言える。
【0064】
なお、処理回路29は、制御部16の機能、モデル生成部62の機能又は推論部72の機能の一部を専用のハードウェアで実現し、制御部16の機能の一部をソフトウェア又はファームウェアで実現するようにしてもよい。
【0065】
このように、処理回路29は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって、上述の各機能を実現することができる。
【0066】
以上の実施の形態に示した構成は、内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。