Processing

Please wait...

PATENTSCOPE will be unavailable a few hours for maintenance reason on Tuesday 27.07.2021 at 12:00 PM CEST
Settings

Settings

Goto Application

1. WO2020136769 - ROBOT CONTROL DEVICE, ROBOT CONTROL LEARNING DEVICE, AND ROBOT CONTROL METHOD

Document

明 細 書

発明の名称 ロボット制御装置、ロボット制御学習装置、及びロボット制御方法

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

発明の概要

発明が解決しようとする課題

0005   0006  

課題を解決するための手段

0007  

発明の効果

0008  

図面の簡単な説明

0009  

発明を実施するための形態

0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111  

産業上の利用可能性

0112  

符号の説明

0113  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16  

図面

1   2   3   4   5   6   7   8   9   10   11  

明 細 書

発明の名称 : ロボット制御装置、ロボット制御学習装置、及びロボット制御方法

技術分野

[0001]
 この発明は、ロボット制御装置、ロボット制御学習装置、及びロボット制御方法に関するものである。

背景技術

[0002]
 ロボットのアームが移動する経路を自動で生成する技術がある。
[0003]
 例えば、特許文献1には、レーザーレンジセンサで測定した障害物の距離情報をメモリに記憶する距離情報記憶部と、メモリに記憶された距離情報に基づき斥力を計算する斥力計算部と、計算された斥力を軸方向の成分に分離する斥力成分分離部と、分離された軸成分から軸毎に正方向の最大値と負方向の最大値とを抽出し、軸毎に抽出した正方向と負方向の最大値の和を計算し、計算結果を各軸の軸成分とした回避用斥力を生成する回避用斥力生成部とを含むように構成した障害物回避支援部を備えた障害物回避支援装置が開示されている。

先行技術文献

特許文献

[0004]
特許文献1 : 特許第5510081号

発明の概要

発明が解決しようとする課題

[0005]
 従来技術によれば、斥力を発生させるポテンシャルを合成した結果、障害物付近のポテンシャルが相対的に下がる場合があり、障害物とロボットのアームとの間において引力が生じ、ロボットのアームが障害物に干渉してしまうという問題があった。
 上述の問題点を解決するためには、連続した空間におけるあらゆる方向において、ロボットのアームが移動する経路を探索する必要がある。
 しかしながら、連続した空間におけるあらゆる方向において、ロボットのアームが移動する経路を探索する場合、演算量が増え、ロボットのアームが移動する経路を決定するまでに長い時間を要してしまう。
[0006]
 この発明は、上述の問題点を解決するためのもので、演算量を減らしつつ、ロボットのアームが不連続な動作を行うことないようにロボットを制御することができるロボット制御装置を提供することを目的としている。

課題を解決するための手段

[0007]
 この発明に係るロボット制御装置は、ロボットのアームの現在位置を示す現在位置情報を取得する現在位置取得部と、アームの目標位置を示す目標位置情報を取得する目標位置取得部と、参照経路を示す参照経路情報を参照してアームが参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて学習させたモデルを示すモデル情報と、現在位置取得部が取得した現在位置情報と、目標位置取得部が取得した目標位置情報とに基づいて目標位置情報が示す目標位置に向かってアームを移動させるための制御内容を示す制御信号を生成する制御生成部と、を備えた。

発明の効果

[0008]
 この発明によれば、演算量を減らしつつ、ロボットのアームが不連続な動作を行うことないようにロボットを制御することができる。

図面の簡単な説明

[0009]
[図1] 図1は、実施の形態1に係るロボット制御装置が適用されたロボット制御システムの構成の一例を示す図である。
[図2] 実施の形態1に係るロボット制御装置及びロボット制御システムの要部の構成の一例を示すブロック図である。
[図3] 図3は、実施の形態1に係る仮想空間画像生成部が生成した仮想空間画像情報が示す画像の一例を示す図である。
[図4] 図4A及び図4Bは、実施の形態1に係るロボット制御装置の要部のハードウェア構成の一例を示す図である。
[図5] 図5は、実施の形態1に係るロボット制御装置の処理の一例を説明するフローチャートである。
[図6] 図6は、実施の形態1に係るロボット制御学習装置及びロボット制御学習システムの要部の構成の一例を示すブロック図である。
[図7] 図7は、実施の形態1に係るロボットのアームの状態が状態S であるときにロボットのアームが取り得る行動a から、行動a を選択する一例を示す図である。
[図8] 図8は、実施の形態1に係るロボット制御学習装置の処理の一例を説明するフローチャートである。
[図9] 図9A、図9B、及び図9Cは、アームが目標位置に到達するまでに移動した経路の一例を示した図である。
[図10] 図10は、実施の形態2に係るロボット制御装置及びロボット制御システムの要部の構成の一例を示すブロック図である。
[図11] 図11は、実施の形態2に係るロボット制御装置の処理の一例を説明するフローチャートである。

発明を実施するための形態

[0010]
 以下、この発明の実施の形態について、図面を参照しながら詳細に説明する。
[0011]
実施の形態1.
 図1及び図2を参照して実施の形態1に係るロボット制御装置100の要部の構成について説明する。
 図1は、実施の形態1に係るロボット制御装置100が適用されたロボット制御システム1の構成の一例を示す図である。
 図2は、実施の形態1に係るロボット制御装置100及びロボット制御システム1の要部の構成の一例を示すブロック図である。
 ロボット制御装置100は、ロボット制御システム1に適用される。
 ロボット制御システム1は、ロボット制御装置100、ロボット10、ネットワーク30、記憶装置40、及び撮像装置50を備える。
[0012]
 ロボット10は、例えば、ロボット10が備えるアーム11を、アーム11の関節をモータ12-1,12-2により制御することで移動させることのより、作業環境20において所定の作業を行うアーム式ロボット装置である。
 ロボット10は、アーム11、モータ12-1,12-2、モータ制御手段13、回転センサ14-1,14-2、及び接触センサ15を備える。
[0013]
 アーム11は、複数の関節を有する。実施の形態1では、アーム11は、2個の関節11-1,11-2を有するものとして説明する。アーム11が有する関節の数は2個とは限らず、3個以上の関節を有する者であっても良い。例えば、アーム11を3次元で動作させることにより作業されるものである場合、アーム11は、ロボット工学上、少なくとも6個の関節を有する必要がある。
[0014]
 モータ12-1,12-2は、それぞれ、アーム11が有する2個の関節11-1,11-2を動かすためのものである。
 モータ制御手段13は、ロボット制御装置100が出力した制御信号に基づいてモータ12-1,12-2を制御する。具体的には、モータ制御手段13は、ロボット制御装置100が出力した制御信号に基づいてモータ12-1,12-2を動作されるための電気信号を生成し、生成した電気信号をモータ12-1,12-2に出力することによりモータ12-1,12-2を制御する。
 回転センサ14-1,14-2は、それぞれ、モータ12-1,12-2の回転量又は回転速度等のモータ12-1,12-2の回転状況を示す回転状況信号をロボット制御装置100に出力する。
 接触センサ15は、作業環境20における障害物とアーム11とが接触したか否かを示す接触信号をロボット制御装置100に出力する。
[0015]
 ネットワーク30は、例えば、CAN(Controller Area Network)、若しくはLAN(Local Area Network)等の有線ネットワーク、又は、無線LAN、若しくはLTE(Long Term Evolution)(登録商標)等の無線ネットワークにより構成される通信手段である。
[0016]
 記憶装置40は、ロボット制御装置100が、目標位置に向かってアーム11を移動させるための制御内容を示す制御信号を生成するために必要な情報を記憶するためのものである。ロボット制御装置100が、制御信号を生成するために必要な情報は、例えば、モデル情報である。記憶装置40は、例えば、ハードディスクドライブ又はSDメモリーカード等の不揮発性記憶媒体を有し、ロボット制御装置100が制御信号を生成するために必要な情報を不揮発性記憶媒体に記憶する。
[0017]
 撮像装置50は、例えば、デジタルスチルカメラ又はデジタルビデオカメラ等の撮影した画像を画像情報として外部に出力可能な画像入力装置である。撮像装置50は、深度カメラ又はステレオカメラ等の物体の位置又は領域を3次元空間において特定可能な画像情報を生成する画像入力装置であっても良い。また、撮像装置50は、1台とは限らず、2台以上であっても良い。また、撮像装置50は、ロボット10及び作業環境20とは離れた位置に設置されたものであっても、ロボット10の任意の部位に固定されて設定されたものであっても良い。実施の形態1では、撮像装置50は、ロボット10及び作業環境20とは離れた位置に設置された1台のデジタルスチルカメラであるものとして説明する。実施の形態1に係る撮像装置50は、作業環境20を撮影し、撮影した画像を画像情報として出力する。ロボット制御装置100は、撮像装置50が出力する画像情報と、ロボット10に対する撮像装置50の相対位置を示す情報とを用いて、ロボット10に対する作業環境20の相対位置、特に、ロボット10に対する作業環境20における障害物の位置又は領域の相対位置を特定する。
[0018]
 ロボット10に備えられたモータ制御手段13、回転センサ14-1,14-2、及び接触センサ15、記憶装置40、撮像装置50、並びに、ロボット制御装置100は、それぞれ、ネットワーク30に接続されている。
[0019]
 ロボット制御装置100は、モデル情報、アーム11の現在位置を示す現在位置情報、及び作業環境20における目標位置を示す目標位置情報に基づいて目標位置情報が示す目標位置に向かってアーム11を移動させるための制御内容を示す制御信号を生成し、生成した制御信号を、ネットワーク30を介してロボット10に備えられたモータ制御手段13に出力するものである。
 ロボット制御装置100は、画像取得部101、仮想空間画像生成部102、モデル取得部103、回転状況取得部104、目標位置取得部106、現在位置取得部105、制御生成部107、及び制御出力部108を備える。ロボット制御装置100は、上述の構成に加えて、制御補正部111、及び制御補間部112を備えるものであっても良い。
[0020]
 画像取得部101は、撮像装置50が出力した画像情報を、ネットワーク30を介して取得する。
[0021]
 仮想空間画像生成部102は、画像取得部101が取得した画像情報に基づいて作業環境20を仮想空間に画像として再現し、当該画像を示す仮想空間画像情報を生成する。
 具体的には、例えば、仮想空間画像生成部102は、画像情報が示す画像から周知の画像解析技術を用いて特徴点を抽出し、特徴点から物体形状を特定するための予め用意された指標情報を用いて、抽出した特徴点から作業環境20における物体又は障害物の位置又は領域を特定する。仮想空間画像生成部102は、特定した物体又は障害物の位置又は領域と、ロボット10に対する撮像装置50の相対位置を示す情報と、撮像装置50の画角を示す情報に基づいてピンホールカメラ技術等を用いて、ロボット10に対する特定した物体又は障害物の位置又は領域の位置を特定し、作業環境20を仮想空間に再現する。なお、実施の形態1では、指標情報は、モデル情報に含まれるものとして説明する。
 撮像装置50が深度カメラ又はステレオカメラ等の物体の位置又は領域を3次元空間において特定可能な画像情報を生成する画像入力装置である場合、仮想空間画像生成部102は、画像取得部101が取得した画像情報を用いて、画像情報が示す画像に写る物体又は障害物の位置又は領域を3次元空間において特定し、作業環境20を仮想空間に再現する。
[0022]
 モデル取得部103は、モデル情報を取得する。モデル取得部103は、例えば、ネットワーク30を介して、記憶装置40からモデル情報を読み出すことにより、モデル情報を取得する。なお、実施の形態1において、制御生成部107等が予めモデル情報を保持する場合、モデル取得部103は、ロボット制御装置100において、必須な構成ではない。
[0023]
 回転状況取得部104は、ロボット10に備えられた回転センサ14-1,14-2から、モータ12-1,12-2の回転状況を示す回転状況信号を取得する。
[0024]
 現在位置取得部105は、ロボット10におけるアーム11の現在位置を示す現在位置情報を取得する。
 具体的には、例えば、現在位置取得部105は、回転状況取得部104が取得した回転状況信号に基づいてロボット10におけるアーム11の現在位置を特定することにより、現在位置情報を取得する。ロボット10におけるアーム11の現在位置は、アーム11における関節11-1,11-2の曲がり具合、すなわち、関節11-1,11-2の曲がる角度を特定することにより一意に決定される。アーム11における関節11-1,11-2の曲がる角度は、関節11-1,11-2に対応するモータ12-1,12-2が回転することにより制御される。現在位置取得部105は、回転状況信号が示すモータ12-1,12-2の回転量を用いて、モータ12-1,12-2における予め決められた基準位置からの回転量を特定することにより、ロボット10におけるアーム11の現在位置を特定する。
[0025]
 現在位置取得部105が現在位置情報を取得する方法は、回転状況信号に基づいてアーム11の現在位置を特定する方法に限るものではない。例えば、現在位置取得部105は、画像取得部101が取得した画像情報に基づいてアーム11の現在位置を特定しても良い。具体的には、例えば、現在位置取得部105は、画像取得部101が取得した画像情報が示す画像から周知の画像解析技術を用いて特徴点を抽出し、抽出した特徴点から画像に写るアーム11を特定して、アーム11の現在位置を特定する。
 また、例えば、現在位置取得部105は、超音波センサ又はレーザーセンサ等の物体の位置を検知可能なセンサが出力するセンサ信号に基づいてアーム11の現在位置を特定しても良い。
 実施の形態1では、現在位置取得部105は、回転状況取得部104が取得した回転状況信号に基づいてロボット10におけるアーム11の現在位置を特定することにより、現在位置情報を取得するものとして説明する。
[0026]
 仮想空間画像生成部102は、現在位置取得部105が取得したロボット10におけるアーム11の現在位置を示す現在位置情報を用いてロボット10におけるアーム11の一部又は全部を作業環境20と共に、仮想空間に再現し、仮想空間画像情報を生成しても良い。
 図3は、実施の形態1に係る仮想空間画像生成部102が生成した仮想空間画像情報が示す画像の一例を示す図である。
 図3は、仮想空間画像生成部102が、ロボット10におけるアーム11の全部を作業環境20と共に、仮想空間に再現した場合を示している。
[0027]
 目標位置取得部106は、アーム11を移動させる目標位置を示す目標位置情報を取得する。目標位置情報が示す目標位置は、例えば、アーム11における任意の一部を移動させる目標の位置であり、アーム11における任意の一部とは、例えば、アーム11における先端11-3である。
 目標位置取得部106は、例えば、図示しない入力装置に対するユーザの操作により入力された目標位置情報を受け付けることにより、目標位置情報を取得する。具体的には、目標位置取得部106は、図示しない表示装置に対して仮想空間画像生成部102が生成した仮想空間画像情報を表示させ、表示装置に表示された仮想空間画像情報の位置を指定する入力装置に対するユーザの操作により目標位置情報を受け付ける。
[0028]
 制御生成部107は、モデル取得部103が取得したモデル情報と、現在位置取得部105が取得した現在位置情報と、目標位置取得部106が取得した目標位置情報とに基づいて目標位置情報が示す目標位置に向かってアーム11を移動させるための制御内容を示す制御信号を生成する。
 モデル情報は、参照経路を示す参照経路情報を参照してロボット10におけるアーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて学習させたモデルを示す情報である。
[0029]
 具体的には、例えば、モデル情報は、ロボット10におけるアーム11の位置を示す位置情報と、アーム11を移動させるための制御内容を示す制御信号とが対応付けられた対応情報を含むものである。対応情報は、互いに異なる複数の目標位置において、目標位置毎に、複数の位置情報と、各位置情報に対応する制御信号がセットになった情報である。モデル情報は、複数の対応情報を含み、各対応情報は、互いに異なる複数の目標位置のそれぞれに対応付けられたものである。
 制御生成部107は、モデル情報に含まれる対応情報から、目標位置取得部106が取得した目標位置情報が示す目標位置に対応する対応情報を特定し、特定した対応情報と、現在位置取得部105が取得した現在位置情報とに基づいて制御情報を生成する。
 より具体的には、制御生成部107は、特定した対応情報を参照して、現在位置取得部105が取得した現在位置情報が示すロボット10におけるアーム11の現在位置に対応する制御信号を特定することにより、アーム11を移動させるための制御内容を示す制御信号を生成する。
[0030]
 制御出力部108は、制御生成部107が生成した制御信号を、ネットワーク30を介して、ロボット10に備えられたモータ制御手段13に出力する。
 ロボット10に備えられたモータ制御手段13は、ネットワーク30を介して、制御出力部108が出力した制御信号を受信し、上述のとおり、受信した制御信号に基づいてモータ12-1,12-2を動作されるための電気信号を生成し、生成した電気信号をモータ12-1,12-2に出力する。
[0031]
 制御補正部111は、制御生成部107が生成した制御信号(以下「第1制御信号」という。)が示す制御内容が、制御生成部107が直前に生成した制御信号(以下「第2制御信号」という。)が示す制御内容と比較して、予め定められた範囲内の変化量になるように、第1制御信号を補正する。
 制御補正部111が生成するロボット10に備えられたモータ12-1又はモータ12-2の回転を制御するための制御信号において、第2制御信号が示す回転制御と比較して、第1制御信号が示す回転制御が、大きく異なる回転制御である場合、モータ12-1又はモータ12-2は、急激なトルク変化を強いられ、脱調等の不具合が発生することがある。更には、モータ12-1又はモータ12-2は、予め決められた定格電圧を超える電気信号が入力され、故障等の不具合が発生することがある。
 制御補正部111は、制御補正部111が生成するロボット10に備えられたモータ12-1又はモータ12-2の回転を制御するための制御信号において、第2制御信号が示す回転制御と比較して、急激な変化にならい範囲になるように、第1制御信号が示す回転制御を補正する。
[0032]
 ロボット制御装置100は、制御補正部111を有することで、ロボット10に備えられたモータ12-1又はモータ12-2の回転を制御するための制御信号において、脱調又は故障等の不具合が発生しないように、ロボット10のアーム11を安定して制御することができる。
 なお、制御補正部111は、第1制御信号と第2制御信号とを比較する例を説明したが、制御補正部111は、第1制御信号と、回転状況取得部104が取得する回転状況信号とを比較し、第1制御信号が示す制御内容が、回転状況信号が示すモータ12-1又はモータ12-2の回転速度等の回転状況に対して、予め定められた範囲内の変化量になるように、第1制御信号を補正しても良い。
[0033]
 制御補間部112は、制御生成部107が生成した第1制御信号が示す制御内容の一部又は全部が欠落している場合、制御生成部107が直前に生成した第2制御信号が示す制御内容に基づいて第1制御信号における欠落している制御内容を補間して第1制御信号を補正する。制御補間部112は、第2制御信号が示す制御内容に基づいて第1制御信号における欠落している制御内容を補間する際、第1制御信号における欠落している制御内容が、第2制御信号が示す制御内容から予め定められた範囲内の変化量になるように補間して第1制御信号を補正する。
[0034]
 例えば、制御生成部107が予め定められた期間ごとに定期的に制御信号を生成し、ロボット10に備えられたモータ12-1又はモータ12-2の回転制御を行う場合、制御生成部107による制御信号の生成が当該期間内に完了しない場合がある。このような場合、例えば、制御生成部107により生成された制御信号は、制御内容の一部又は全部が欠落した状態となる。例えば、制御信号が示す制御内容が相対値ではなく絶対値を指定する制御信号である場合、制御生成部107が生成する制御信号の制御内容の一部又は全部が欠落すると、モータ12-1又はモータ12-2は、急激なトルク変化を強いられ、脱調等の不具合が発生することがある。更には、モータ12-1又はモータ12-2は、予め決められた定格電圧を超える電気信号が入力され、故障等の不具合が発生することがある。
 ロボット制御装置100は、制御補間部112を有することで、ロボット10に備えられたモータ12-1又はモータ12-2の回転を制御するための制御信号において、脱調又は故障等の不具合が発生しないように、ロボット10のアーム11を安定して制御することができる。
 なお、制御補間部112は、第1制御信号における欠落している制御内容を補間する際、第2制御信号に基づいて第1制御信号を補間する例を説明したが、制御補正部111は、第1制御信号と、回転状況取得部104が取得する回転状況信号とを比較し、第1制御信号が示す制御内容が、回転状況信号が示すモータ12-1又はモータ12-2の回転速度等の回転状況に対して、予め定められた範囲内の変化量になるように、第1制御信号を補間して補正しても良い。
[0035]
 図4A及び図4Bを参照して、実施の形態1に係るロボット制御装置100の要部のハードウェア構成について説明する。
 図4A及び図4Bは、実施の形態1に係るロボット制御装置100の要部のハードウェア構成の一例を示す図である。
[0036]
 図4Aに示す如く、ロボット制御装置100はコンピュータにより構成されており、当該コンピュータはプロセッサ201及びメモリ202を有している。メモリ202には、当該コンピュータを、画像取得部101、仮想空間画像生成部102、モデル取得部103、回転状況取得部104、目標位置取得部106、現在位置取得部105、制御生成部107、制御出力部108、制御補正部111、及び制御補間部112として機能させるためのプログラムが記憶されている。メモリ202に記憶されているプログラムをプロセッサ201が読み出して実行することにより、画像取得部101、仮想空間画像生成部102、モデル取得部103、回転状況取得部104、目標位置取得部106、現在位置取得部105、制御生成部107、制御出力部108、制御補正部111、及び制御補間部112が実現される。
[0037]
 また、図4Bに示す如く、ロボット制御装置100は処理回路203により構成されても良い。この場合、画像取得部101、仮想空間画像生成部102、モデル取得部103、回転状況取得部104、目標位置取得部106、現在位置取得部105、制御生成部107、制御出力部108、制御補正部111、及び制御補間部112の機能が処理回路203により実現されても良い。
[0038]
 また、ロボット制御装置100はプロセッサ201、メモリ202及び処理回路203により構成されても良い(不図示)。この場合、画像取得部101、仮想空間画像生成部102、モデル取得部103、回転状況取得部104、目標位置取得部106、現在位置取得部105、制御生成部107、制御出力部108、制御補正部111、及び制御補間部112の機能のうちの一部の機能がプロセッサ201及びメモリ202により実現されて、残余の機能が処理回路203により実現されるものであっても良い。
[0039]
 プロセッサ201は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、マイクロプロセッサ、マイクロコントローラ又はDSP(Digital Signal Processor)を用いたものである。
[0040]
 メモリ202は、例えば、半導体メモリ又は磁気ディスクを用いたものである。より具体的には、メモリ202は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、SSD(Solid State Drive)又はHDD(Hard Disk Drive)などを用いたものである。
[0041]
 処理回路203は、例えば、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field-Programmable Gate Array)、SoC(System-on-a-Chip)又はシステムLSI(Large-Scale Integration)を用いたものである。
[0042]
 図5を参照して、実施の形態1に係るロボット制御装置100の動作について説明する。
 図5は、実施の形態1に係るロボット制御装置100の処理の一例を説明するフローチャートである。
 ロボット制御装置100は、例えば、新たな目標位置が設定される毎に当該フローチャートの処理を繰り返して実行する。
[0043]
 まず、ステップST501にて、画像取得部101は、画像情報を取得する。
 次に、ステップST502にて、モデル取得部103は、モデル情報を取得する。
 次に、ステップST503にて、回転状況取得部104は、回転状況信号を取得する。
 次に、ステップST504にて、現在位置取得部105は、ロボット10におけるアーム11の現在位置を示す現在位置情報を取得する。
 次に、ステップST505にて、仮想空間画像生成部102は、仮想空間画像情報を生成する。
 次に、ステップST506にて、目標位置取得部106は、目標位置情報を取得する。
 次に、ステップST507にて、制御生成部107は、モデル情報に含まれる対応情報のうち、目標位置情報が示す目標位置に対応する対応情報を特定する。
[0044]
 次に、ステップST508にて、制御生成部107は、現在位置取得部105が取得した現在位置情報が示すロボット10におけるアーム11の現在位置と目標位置情報が示す目標位置とが同一であるか否かを判定する。なお、ここで言う同一とは、必ずしも完全に一致するものに限らず、同一は、略同一を含むものである。
 ステップST508にて、制御生成部107が、アーム11の現在位置と目標位置とが同一であると判定した場合、ロボット制御装置100は、当該フローチャートの処理を終了する。
 ステップST508にて、制御生成部107が、アーム11の現在位置と目標位置とが同一でないと判定した場合、ステップST511にて、制御生成部107は、特定した対応情報を参照して、現在位置取得部105が取得した現在位置情報が示すロボット10におけるアーム11の現在位置に対応する制御信号を特定することにより、アーム11を移動させるための制御内容を示す制御信号を生成する。
[0045]
 次に、ステップST512にて、制御補正部111は、制御生成部107が生成した第1制御信号が示す制御内容が、制御生成部107が直前に生成した第2制御信号が示す制御内容と比較して、予め定められた範囲内の変化量になるように、第1制御信号を補正する。
 次に、ステップST513にて、制御補間部112は、制御生成部107が生成した第1制御信号が示す制御内容の一部又は全部が欠落している場合、制御生成部107が直前に生成した第2制御信号が示す制御内容に基づいて第1制御信号における欠落している制御内容を補間して第1制御信号を補正する。
 次に、ステップST514にて、制御出力部108は、制御生成部107が生成した制御信号又は制御補正部111若しくは制御補間部112が補正した制御信号を、ロボット10に出力する。
 次に、ステップST515にて、回転状況取得部104は、回転状況信号を取得する。
 次に、ステップST516にて、現在位置取得部105は、ロボット10におけるアーム11の現在位置を示す現在位置情報を取得する。
 次に、ステップST517にて、仮想空間画像生成部102は、仮想空間画像情報を生成する。
[0046]
 ロボット制御装置100は、ステップST517の処理を実行した後、ステップST508の処理に戻って、ステップST508にて、制御生成部107が、アーム11の位置と目標位置とが同一であると判定するまでの期間において、ステップST508からステップST517までの処理を繰り返し実行する。
 なお、当該フローチャートの処理において、ステップST512、ステップST513,及びステップST517の処理は、ロボット制御装置100において必須の処理ではない。また、当該フローチャートの処理において、ステップST501及びステップST502の処理は順序が逆であっても良い。また、当該フローチャートの処理において、ステップST512及びステップST513の処理は順序が逆であっても良い。
[0047]
 モデル情報の生成方法について説明する。
 ロボット制御装置100が制御信号を生成する際に用いるモデル情報は、ロボット制御学習装置300により生成される。
 図6を参照して実施の形態1に係るロボット制御学習装置300の要部の構成について説明する。
 図6は、実施の形態1に係るロボット制御学習装置300及びロボット制御学習システム3の要部の構成の一例を示すブロック図である。
 ロボット制御学習装置300は、ロボット制御学習システム3に適用される。
 ロボット制御学習システム3は、ロボット制御学習装置300、ロボット10、ネットワーク30、記憶装置40、及び撮像装置50を備える。
 ロボット制御学習システム3の構成において、ロボット制御システム1と同様の構成については、同じ符号を付して重複した説明を省略する。すなわち、図2に記載した符号と同じ符号を付した図6の構成については、説明を省略する。
[0048]
 ロボット10に備えられたモータ制御手段13、回転センサ14-1,14-2、及び接触センサ15、記憶装置40、撮像装置50、並びに、ロボット制御学習装置300は、それぞれ、ネットワーク30に接続されている。
 ロボット制御学習装置300は、ロボット10に備えられたモータ12-1又はモータ12-2の回転を制御するための制御信号を生成し、当該制御信号によりロボット10に備えられたモータ12-1又はモータ12-2を制御することによってロボット10にアーム11を制御するための学習を行い、ロボット制御装置100がロボット10のアーム11を制御する際に用いるモデル情報を生成するものである。
[0049]
 ロボット制御学習装置300は、ロボット10のアーム11の現在位置を示す現在位置情報、アーム11の目標位置を示す目標位置情報、及び参照経路を示す参照経路情報に基づいてロボット制御装置100が目標位置に向かってアーム11を移動させるための制御内容を示す制御信号を生成する際に用いるモデル情報を生成するものである。
 ロボット制御学習装置300は、画像取得部301、仮想空間画像生成部302、回転状況取得部304、目標位置取得部306、現在位置取得部305、制御生成部307、制御出力部308、参照経路取得部320、報酬算出部321、モデル生成部322、モデル出力部323、及び接触信号取得部324を備える。ロボット制御学習装置300は、上述の構成に加えて、制御補正部311、及び制御補間部312を備えるものであっても良い。
[0050]
 なお、実施の形態1に係るロボット制御学習装置300における画像取得部301、仮想空間画像生成部302、回転状況取得部304、目標位置取得部306、現在位置取得部305、制御生成部307、制御出力部308、参照経路取得部320、報酬算出部321、モデル生成部322、モデル出力部323、接触信号取得部324、制御補正部311、及び制御補間部312の各機能は、実施の形態1に係るロボット制御装置100について図4A及び図4Bに一例を示したハードウェア構成におけるプロセッサ201及びメモリ202により実現されるものであっても良く、又は処理回路203により実現されるものであっても良い。
[0051]
 画像取得部301は、撮像装置50が出力した画像情報を、ネットワーク30を介して取得する。
[0052]
 仮想空間画像生成部302は、画像取得部301が取得した画像情報に基づいて作業環境20を仮想空間に画像として再現し、当該画像を示す仮想空間画像情報を生成する。
 仮想空間画像生成部302が仮想空間画像情報を生成する処理は、実施の形態1に係るロボット制御装置100における仮想空間画像生成部102が実施する処理と同様であるため、詳細な説明を省略する。
 なお、実施の形態1に係るロボット制御学習装置300において、仮想空間画像生成部302が仮想空間画像情報を生成するために必要な指標情報は、仮想空間画像生成部302が、ネットワーク30を介して記憶装置40から読み出すことにより取得するものとして説明する。
[0053]
 回転状況取得部304は、ロボット10に備えられた回転センサ14-1,14-2から、モータ12-1,12-2の回転状況を示す回転状況信号を取得する。
[0054]
 現在位置取得部305は、ロボット10におけるアーム11の現在位置を示す現在位置情報を取得する。
 具体的には、例えば、現在位置取得部305は、回転状況取得部304が取得した回転状況信号に基づいてロボット10におけるアーム11の現在位置を特定することにより、現在位置情報を取得する。
 現在位置取得部305が現在位置情報を取得する処理は、実施の形態1に係るロボット制御装置100における現在位置取得部105が実施する処理と同様であるため、詳細な説明を省略する。
[0055]
 目標位置取得部306は、アーム11を移動させる目標位置を示す目標位置情報を取得する。
 目標位置取得部306が目標位置情報を取得する処理は、実施の形態1に係るロボット制御装置100における目標位置取得部106が実施する処理と同様であるため、詳細な説明を省略する。
[0056]
 参照経路取得部320は、現在位置取得部305が取得した現在位置情報が示すロボット10におけるアーム11の現在位置から、目標位置取得部306が取得した目標位置情報が示す目標位置までの経路のうち、少なくとも一部の経路を含む参照経路を示す参照経路情報を取得する。
 参照経路取得部320は、例えば、図示しない表示装置に仮想空間画像生成部302が生成した仮想空間画像情報を表示させて、図示しない入力装置がユーザから入力を受け付けて、入力された参照経路情報を取得する。
[0057]
 参照経路取得部320における参照経路情報の取得方法は、上述の方法に限定されるものではない。
 例えば、参照経路取得部320は、所定の計算処理に基づいて自動で生成しても良い。具体的には、例えば、参照経路取得部320は、現在位置情報、目標位置情報、及び仮想空間画像情報に基づいてRRT(Rapidly-exploring Random Tree)等を用いたランダムサーチを実行し、ランダムサーチの結果に基づいて参照経路情報を生成することにより、参照経路情報を取得しても良い。
 参照経路取得部320は、参照経路情報を取得する際にランダムサーチの結果を用いることにより、参照経路情報を自動で生成できる。
 なお、RRT等を用いたランダムサーチにより2地点間の経路を求める方法は、公知であるため説明を省略する。
[0058]
 また、例えば、参照経路取得部320は、現在位置情報が示すアーム11の現在位置から目標位置情報が示す目標位置までの区間において、アーム11が過去に移動した経路を示す移動履歴情報に基づいて参照経路情報を生成することにより、参照経路情報を取得しても良い。
 移動履歴情報は、例えば、アーム11が過去に当該区間を移動した際に、ネットワーク30を介して記憶装置40に記憶させる。参照経路取得部320は、記憶装置40から移動履歴情報を読み出すことにより、移動履歴情報を取得する。
 参照経路取得部320は、参照経路情報を取得する際に移動履歴情報を用いることにより、参照経路情報を自動で生成できる。
[0059]
 接触信号取得部324は、ネットワーク30を介して、接触センサ15が出力した接触信号を受信する。
[0060]
 報酬算出部321は、現在位置取得部305が取得した現在位置情報と、目標位置取得部306が取得した目標位置情報と、参照経路取得部320が取得した参照経路情報とに基づいてアーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項を含む演算式を用いて、報酬を算出する。
 報酬算出部321が報酬を算出する際に用いる演算式は、アーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項に加えて、現在位置取得部305が取得した現在位置情報が示すアーム11の現在位置の移動の連続性を評価することにより報酬を算出する項を含むものであっても良い。
 また、報酬算出部321が報酬を算出する際に用いる演算式は、アーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項に加えて、アーム11と作業環境20における障害物とが接触したか否かを評価することにより報酬を算出する項を含むものであっても良い。報酬算出部321は、アーム11と作業環境20における障害物とが接触したか否かを、例えば、接触信号取得部324が接触センサ15から取得した接触信号に基づいて判定する。
[0061]
 具体的には、報酬算出部321は、以下の式(1)を用いて、時点t-1におけるロボット10におけるアーム11の位置から、ロボット10におけるアーム11が任意の制御信号に基づいて時点tまでの間に行動し、時点tにおけるロボット10におけるアーム11の位置となる際の報酬を算出するものである。なお、時点t-1から時点tまでの期間は、例えば、制御生成部307が、ロボット10備えられたモータ制御手段13に出力する制御信号を生成する予め決められた時間間隔である。
[0062]


[0063]


[0064]


[0065]


[0066]
 モデル生成部322は、Q学習法、Actor-Critic法、若しくはSarsa法等のTD(Temporal Difference)学習法、又はモンテカルロ法等の強化学習によりモデルを生成し、生成したモデルを示すモデル情報を生成する。
 強化学習は、ある時刻tにおける行動主体の状態S において、行動主体が行動し得る1以上の行動のうち、ある行動a を選択して行動した際の当該ある行動a に対する価値Q(S ,a )と当該ある行動a に対する報酬r を定義し、価値Q(S ,a )と報酬r とを高めていくものである。
 一般に、行動価値関数の更新式は、以下の式(2)により示される。
 Q(S ,a ) ← Q(S ,a )+α(r t+1+γmaxQ(S t+1,a t+1)-Q(S ,a )) ・・・式(2)
[0067]
 ここで、S は、ある時点tにおける行動主体の状態、a は、ある時点tにおける行動主体の行動、及び、S t+1は、時点tより所定の時間間隔だけ時刻が進んだ時点t+1における行動主体の状態を表す。時点tにおいて状態S である行動主体は、行動a により、時点t+1において、状態S t+1に遷移する。
 Q(S ,a )は、状態S にある行動主体が行った行動a に対する価値を表す。
 r t+1は、行動主体が状態S から状態S t+1に遷移した際の報酬を示す値である。
 maxQ(S t+1,a t+1)は、行動主体の状態が状態S t+1であるときに行動主体が取り得る行動a t+1のうち、行動主体が、最もQ(S t+1,a t+1)の値が大きな値となる行動a を選択した際のQ(S t+1,a )を表す。
 γは、1以下の正の値を示すパラメータであり、一般に、割引率と呼ばれる値である。
 αは、1以下の正の値を示す学習係数である。
[0068]
 式(2)は、行動主体の状態S における行動主体が行う行動a に基づく報酬r t+1と、行動a により遷移した行動主体の状態S t+1における行動主体が行う行動a の価値Q(S t+1,a )とに基づいて行動主体の状態S における行動主体が行う行動a の価値Q(S ,a )を更新するものである。
 具体的には、式(2)は、状態S における行動a による価値Q(S ,a )よりも、状態S における行動a に基づく報酬r t+1と、行動a により遷移した状態S t+1における行動a の価値Q(S t+1,a )との和の方が大きい場合、価値Q(S ,a )を大きくするように更新する。反対に、式(2)は、状態S における行動a による価値Q(S ,a )よりも、状態S における行動a に基づく報酬r t+1と、行動a により遷移した状態S t+1における行動a の価値Q(S t+1,a )との和の方が小さい場合、価値Q(S ,a )を小さくするように更新する。
[0069]
 つまり、式(2)は、行動主体がある状態である場合において、行動主体がある行動を行った際の当該行動の価値を、当該行動に基づく報酬と、当該行動により遷移した状態における最良の行動の価値との和に近付けるように更新するためのものである。
 行動主体の状態が状態S t+1であるときに行動主体が取り得る行動a t+1のうち、行動主体が、最もQ(S t+1,a t+1)の値が大きな値となる行動a を決定する方法は、例えば、ε-greedy法、Softmax法、又は、RBF(Radial Basis Function)関数を用いる方法がある。これらの方法は、公知であるため説明を省略する。
[0070]
 上述の一般的な式(2)において、行動主体は、実施の形態1に係るアーム11であり、行動主体の状態は、アーム11の位置であり、行動は、アーム11の位置の移動である。
[0071]
 モデル生成部322は、式(2)に式(1)を適用することにより、モデル情報を生成する。
 具体的には、モデル生成部322は、式(2)に式(1)を適用することにより、現在位置取得部305が取得したロボット10におけるアーム11の現在位置を示す現在位置情報と、アーム11を移動させるための制御内容を示す制御信号とを対応付けた対応情報を生成する。対応情報は、互いに異なる複数の目標位置において、目標位置毎に、複数の位置と、各位置に対応する制御信号がセットになった情報である。モデル生成部322は、互いに異なる複数の目標位置のそれぞれに対応付けた複数の対応情報を含むモデル情報を生成する。
 以上のとおり、モデル生成部322は、現在位置取得部305が取得した現在位置情報と、目標位置取得部306が取得した目標位置情報と、参照経路取得部320が取得した参照経路情報と、報酬算出部321が算出した報酬とに基づいてモデル情報を生成するものである。
[0072]
 図7を参照して、実施の形態1に係るアーム11の状態が状態S であるときにアーム11が取り得る行動a から、行動a を選択する方法について説明する。
 図7は、実施の形態1に係るアーム11の状態が状態S であるときにアーム11が取り得る行動a から、行動a を選択する一例を示す図である。
[0073]
 図7において、a 、a 、及びa は、時点tにおいて、アーム11の状態が状態S であるときにアーム11が取り得る行動である。また、Q(S ,a )、Q(S ,a )、及びQ(S ,a )は、アーム11の状態が状態S であるときにアーム11が行動a 、行動a 、及び行動a を行った際の各行動に対する価値である。
 モデル生成部322は、式(2)に式(1)を適用することにより、モデル情報を生成するため、価値Q(S ,a )、価値Q(S ,a )、及び価値Q(S ,a )は、式(1)における第6項及び第7項を含む演算式により評価される。すなわち、価値Q(S ,a )、価値Q(S ,a )、及び価値Q(S ,a )は、アーム11の位置と参照経路との間の距離が近いほど、また、アーム11が参照経路に沿って目標位置の方向に向かって移動した距離が長いほど、高い値となる。
[0074]
 したがって、価値Q(S ,a )、価値Q(S ,a )、及び価値Q(S ,a )を比較した場合、価値Q(S ,a )が最も高い値を示すため、モデル生成部322は、ロボット10の状態が状態S であるとき、行動a を選択して、状態S と行動a に対応する制御信号とを対応付けてモデル情報を生成する。
 なお、モデル生成部322は、モデル情報を生成する際に、報酬を算出する適切な演算式を採用することにより、上述の行動a を決定するための試行回数を低減させることが可能なTD学習を用いることが好適である。
[0075]
 制御生成部307は、モデル生成部322がモデル情報を生成する際に選択した行動に対応する制御信号を生成する。
[0076]
 制御出力部308は、制御生成部307が生成した制御信号を、ネットワーク30を介して、ロボット10備えられたモータ制御手段13に出力する。
 ロボット10に備えられたモータ制御手段13は、ネットワーク30を介して、制御出力部308が出力した制御信号を受信し、上述のとおり、受信した制御信号を入力信号として、制御信号に基づいてモータ12-1,12-2を制御する。
 モデル出力部323は、モデル生成部322が生成したモデル情報を、ネットワーク30を介して、記憶装置40に出力し、記憶装置40に記憶させる。
[0077]
 制御補正部311は、制御生成部307が生成した制御信号(以下「第1制御信号」という。)が示す制御内容が、制御生成部307が直前に生成した制御信号(以下「第2制御信号」という。)が示す制御内容と比較して、予め定められた範囲内の変化量になるように、第1制御信号を補正する。
 なお、制御補正部311が、第1制御信号と第2制御信号とを比較する例を説明したが、制御補正部311は、第1制御信号と、回転状況取得部304が取得する回転状況信号とを比較し、ロボット10において、モータ制御手段13が行っている制御に対して予め定められた範囲内の変化量になるように、第1制御信号を補正しても良い。
 制御補正部311は、ロボット制御装置100における制御補正部111と同様の動作であるため、詳細な説明は省略する。
 なお、モデル生成部322は、制御補正部311が補正した制御信号を用いてモデル情報を生成しても良い。
[0078]
 制御補間部312は、制御生成部307が生成した第1制御信号が示す制御内容の一部又は全部が欠落している場合、制御生成部307が直前に生成した第2制御信号が示す制御内容に基づいて第1制御信号における欠落している制御内容を補間して第1制御信号を補正する。制御補間部312は、第2制御信号が示す制御内容に基づいて第1制御信号における欠落している制御内容を補間する際、第1制御信号における欠落している制御内容が、第2制御信号が示す制御内容から予め定められた範囲内の変化量になるように補間して第1制御信号を補正する。
 なお、制御補間部312が、第1制御信号における欠落している制御内容を補間する際、第2制御信号に基づいて第1制御信号を補間する例を説明したが、制御補間部312は、回転状況取得部304が取得する回転状況信号に基づいてロボット10において、モータ制御手段13が行っている制御に対して予め定められた範囲内の変化量になるように、第1制御信号を補間して補正しても良い。
 制御補間部312は、ロボット制御装置100における制御補間部112と同様の動作であるため、詳細な説明は省略する。
 なお、モデル生成部322は、制御補間部312が補正した制御信号を用いてモデル情報を生成しても良い。
[0079]
 図8を参照して、実施の形態1に係るロボット制御学習装置300の動作について説明する。
 図8は、実施の形態1に係るロボット制御学習装置300の処理の一例を説明するフローチャートである。
 ロボット制御学習装置300は、例えば、当該フローチャートの処理を繰り返して実行する。
[0080]
 まず、ステップST801にて、画像取得部301は、画像情報を取得する。
 次に、ステップST802にて、回転状況取得部304は、回転状況信号を取得する。
 次に、ステップST803にて、現在位置取得部305は、ロボット10におけるアーム11の現在位置を示す現在位置情報を取得する。
 次に、ステップST804にて、仮想空間画像生成部302は、指標情報を取得する。 次に、ステップST805にて、仮想空間画像生成部302は、仮想空間画像情報を生成する。
 次に、ステップST806にて、目標位置取得部306は、目標位置情報を取得する。
[0081]
 ステップST807にて、制御生成部307は、現在位置取得部305が取得した現在位置情報が示すロボット10におけるアーム11の現在位置と目標位置情報が示す目標位置とが同一であるか否かを判定する。なお、ここで言う同一とは、必ずしも完全に一致するものに限らず、同一は、略同一を含むものである。
 ステップST807にて、制御生成部307が、アーム11の現在位置と目標位置とが同一でないと判定した場合、ロボット制御学習装置300は、ステップST811以降の処理を実行する。
 ステップST811にて、報酬算出部321は、アーム11が取り得る複数の行動における報酬を行動ごとに算出する。
 次に、ステップST812にて、モデル生成部322は、報酬算出部321が行動ごとに算出した報酬と、当該行動ごとの価値と、当該行動ごとに次に取りうる複数の行動ごとの価値とに基づいて行うべき行動を選択する。
 次に、ステップST813にて、制御生成部307は、モデル生成部322が選択した行動に対応する制御信号を生成する。
[0082]
 次に、ステップST814にて、制御補正部311は、制御生成部307が生成した第1制御信号が示す制御内容が、制御生成部307が直前に生成した第2制御信号が示す制御内容と比較して、予め定められた範囲内の変化量になるように、第1制御信号を補正する。
 次に、ステップST815にて、制御補間部312は、制御生成部307が生成した第1制御信号が示す制御内容の一部又は全部が欠落している場合、制御生成部307が直前に生成した第2制御信号が示す制御内容に基づいて第1制御信号における欠落している制御内容を補間して第1制御信号を補正する。
 次に、ステップST816にて、モデル生成部322は、現在位置取得部305が取得した現在位置情報と、アーム11を移動させるための制御内容を示す制御信号とを対応付けた対応情報を生成することにより、モデル情報を生成する。
[0083]
 次に、ステップST817にて、制御出力部308は、制御生成部307が生成した制御信号、又は、制御補正部311若しくは制御補間部312が補正した制御信号を、ロボット10備えられたモータ制御手段13に出力する。
 次に、ステップST818にて、回転状況取得部304は、回転状況信号を取得する。
 次に、ステップST819にて、現在位置取得部305は、ロボット10におけるアーム11の現在位置を示す現在位置情報を取得する。
 次に、ステップST820にて、仮想空間画像生成部302は、仮想空間画像情報を生成する。
[0084]
 ロボット制御学習装置300は、ステップST820の処理を実行した後、ステップST807の処理に戻って、ステップST807にて、制御生成部307が、アーム11の現在位置と目標位置とが同一であると判定するまでの期間において、ステップST807からステップST820までの処理を繰り返し実行する。
 ステップST807にて、制御生成部307が、アーム11の現在位置と目標位置とが同一であると判定した場合、ステップST821にて、モデル出力部323は、モデル生成部322が生成したモデル情報を出力する。
 ステップST821の処理を実行した後、ロボット制御学習装置300は、当該フローチャートの処理を終了する。
[0085]
 なお、当該フローチャートの処理において、ステップST814、ステップST815,及びステップST820の処理は、ロボット制御学習装置300において必須の処理ではない。また、当該フローチャートの処理において、ステップST801及びステップST802の処理は、実行される順序が逆でも良い。また、当該フローチャートの処理において、ステップST814及びステップST815の処理は、実行される順序が逆でも良い。
[0086]
 図9は、アーム11が目標位置に到達するまでに移動した経路の一例を示した図である。図9Aは、ある時点におけるアーム11の位置から目標位置まで参照経路を設定して式(1)に示した演算式を用いる場合、図9Bは、ある時点におけるアーム11の位置から目標位置に至る途中まで参照経路を設定して式(1)に示した演算式を用いた場合、図9Cは、参照経路を設定せずに、式(1)に示した演算式から第6項と第7項を除いた演算式を用いる場合を示している。
 図9Aは、アーム11が目標位置に到達するまで、設定された参照経路に沿って移動することが見て取れる。また、図9Bは、アーム11が設定された参照経路が存在する地点まで参照経路に沿って移動し、その後、目標位置に向かって移動することが見て取れる。これに対して、図9Cは、アーム11が目標位置に向かって移動する際に、アーム11が障害物を避けるように移動するため目標位置に到達することができないことが見て取れる。すなわち、ロボット制御学習装置300は、図9A及び図9Bに示すように、参照経路を設定して式(1)に示した演算式を用いて学習を行うことにより、短期間で学習を完了することができる。
[0087]
 以上のように、ロボット制御装置100は、ロボット10のアーム11の現在位置を示す現在位置情報を取得する現在位置取得部105と、アーム11の目標位置を示す目標位置情報を取得する目標位置取得部106と、参照経路を示す参照経路情報を参照してアーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて学習させたモデルを示すモデル情報と、現在位置取得部105が取得した現在位置情報と、目標位置取得部106が取得した目標位置情報とに基づいて目標位置情報が示す目標位置に向かってアーム11を移動させるための制御内容を示す制御信号を生成する制御生成部107と、を備えた。
[0088]
 このように構成することで、ロボット制御装置100は、演算量を減らしつつ、ロボット10のアーム11が実質的に不連続な動作を行うことないようにロボット10を制御することができる。
[0089]
 また、以上のように、ロボット制御学習装置300は、ロボット10のアーム11の現在位置を示す現在位置情報を取得する現在位置取得部305と、アーム11の目標位置を示す目標位置情報を取得する目標位置取得部306と、参照経路を示す参照経路情報を取得する参照経路取得部320と、現在位置取得部305が取得した現在位置情報と、目標位置取得部306が取得した目標位置情報と、参照経路取得部320が取得した参照経路情報とに基づいてアーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて、報酬を算出する報酬算出部321と、目標位置情報が示す目標位置に向かってアーム11を移動させるための制御内容を示す制御信号を生成する制御生成部307と、現在位置取得部305が取得した現在位置情報と、目標位置取得部306が取得した目標位置情報と、参照経路取得部320が取得した参照経路情報と、報酬算出部321が算出した報酬とに基づいて制御信号によりアーム11を移動させる価値を評価することにより、モデル情報を生成するモデル生成部322と、を備えた。
[0090]
 このように構成することで、ロボット制御学習装置300は、ロボット10のアーム11が実質的に不連続な動作を行うことないようにロボット10を制御させるためのモデル情報を、短い学習期間で生成することができる。
[0091]
実施の形態2.
 図10を参照して実施の形態2に係るロボット制御装置100aについて説明する。
 図10は、実施の形態2に係るロボット制御装置100a及びロボット制御システム1aの要部の構成の一例を示すブロック図である。
 ロボット制御装置100aは、例えば、ロボット制御システム1aに適用される。
 ロボット制御装置100aは、ロボット制御装置100と同様に、モデル情報、アーム11の現在位置を示す現在位置情報、及び作業環境20における目標位置を示す目標位置情報に基づいて目標位置情報が示す目標位置に向かってアーム11を移動させるための制御内容を示す制御信号を生成し、生成した制御信号を、ネットワーク30を介してロボット10に備えられたモータ制御手段13に出力するものである。ロボット制御装置100aが制御信号を生成する際に用いるモデル情報は、ロボット制御学習装置300により生成される。
[0092]
 実施の形態2に係るロボット制御装置100aは、実施の形態1に係るロボット制御装置100と比較して、参照経路取得部120、報酬算出部121、モデル更新部122、モデル出力部123、及び接触信号取得部124が追加され、ロボット制御学習装置300が出力した学習済みのモデル情報を更新可能にしたものである。
 実施の形態2に係るロボット制御装置100a及びロボット制御システム1aの構成において、実施の形態1に係るロボット制御装置100又はロボット制御システム1と同様の構成については、同じ符号を付して重複した説明を省略する。すなわち、図2に記載した符号と同じ符号を付した図10の構成については、説明を省略する。
[0093]
 ロボット制御システム1aは、ロボット制御装置100a、ロボット10、ネットワーク30、記憶装置40、及び撮像装置50を備える。
 ロボット10に備えられたモータ制御手段13、回転センサ14-1,14-2、及び接触センサ15、記憶装置40、撮像装置50、並びに、ロボット制御システム1aは、それぞれ、ネットワーク30に接続されている。
 ロボット制御装置100aは、画像取得部101、仮想空間画像生成部102、モデル取得部103、回転状況取得部104、目標位置取得部106、現在位置取得部105、制御生成部107a、及び制御出力部108a、参照経路取得部120、報酬算出部121、モデル更新部122、モデル出力部123、及び接触信号取得部124を備える。ロボット制御装置100aは、上述の構成に加えて、制御補正部111a、及び制御補間部112aを備えるものであっても良い。
[0094]
 なお、実施の形態2に係るロボット制御装置100aにおける画像取得部101、仮想空間画像生成部102、モデル取得部103、回転状況取得部104、目標位置取得部106、現在位置取得部105、制御生成部107a、及び制御出力部108a、参照経路取得部120、報酬算出部121、モデル更新部122、モデル出力部123、接触信号取得部124、制御補正部111a、及び制御補間部112aの各機能は、実施の形態1において図2A及び図2Bに一例を示したハードウェア構成におけるプロセッサ201及びメモリ202により実現されるものであっても良く、又は処理回路203により実現されるものであっても良い。
[0095]
 参照経路取得部120は、参照経路を示す参照経路情報を取得する。具体的には、例えば、参照経路取得部120は、ロボット制御学習装置300がモデル情報を生成する際に用いた参照経路情報を、モデル取得部103が取得したモデル情報から読み出すことにより、参照経路情報を取得する。
[0096]
 報酬算出部121は、現在位置取得部105が取得した現在位置情報と、目標位置取得部106が取得した目標位置情報と、参照経路取得部120が取得した参照経路情報とに基づいてアーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項を含む演算式を用いて、報酬を算出する。
[0097]
 報酬算出部121が報酬を算出する際に用いる演算式は、アーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項に加えて、現在位置取得部105が取得した現在位置情報が示すアーム11の現在位置の移動の連続性を評価することにより報酬を算出する項を含むものであっても良い。
 また、報酬算出部121が報酬を算出する際に用いる演算式は、アーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項に加えて、アーム11と作業環境20における障害物とが接触したか否かを評価することにより報酬を算出する項を含むものであっても良い。報酬算出部121は、アーム11と作業環境20における障害物とが接触したか否かを、例えば、接触信号取得部124が接触センサ15から取得した接触信号に基づいて判定する。
 具体的には、報酬算出部121は、実施の形態1に示した式(1)に基づいて当該報酬を算出する。
[0098]
 モデル更新部122は、現在位置取得部105が取得した現在位置情報と、目標位置取得部106が取得した目標位置情報と、参照経路取得部120が取得した参照経路情報と、報酬算出部121が算出した報酬とに基づいてモデル情報を更新する。
 モデル更新部122は、実施の形態1に示した式(2)に式(1)を適用することにより、現在位置取得部105が取得した現在位置情報が示すロボット10におけるアーム11の現在位置と、アーム11を移動させるための制御内容を示す制御信号とを対応付けた対応情報を更新することより、モデル情報を更新する。
 モデル出力部123は、モデル更新部122が更新したモデル情報を、ネットワーク30を介して、記憶装置40に出力し、記憶装置40に記憶させる。
[0099]
 制御生成部107aは、モデル取得部103が取得したモデル情報と、現在位置取得部105が取得した現在位置情報と、目標位置取得部106が取得した目標位置情報とに基づいて目標位置情報が示す目標位置に向かってアーム11を移動させるための制御内容を示す制御信号を生成する。制御生成部107aは、モデル取得部103が取得したモデル情報の代わりにモデル更新部122が更新したモデル情報に基づいて制御信号を生成する場合があることを除いて、実施の形態1に示した制御生成部107と同様であるため、詳細な説明を省略する。
[0100]
 制御補正部111aは、制御生成部107aが生成した第1制御信号が示す制御内容が、制御生成部107aが直前に生成した第2制御信号が示す制御内容と比較して、予め定められた範囲内の変化量になるように、第1制御信号を補正する。
 制御補間部112aは、制御生成部107aが生成した第1制御信号が示す制御内容の一部又は全部が欠落している場合、制御生成部107aが直前に生成した第2制御信号が示す制御内容に基づいて第1制御信号における欠落している制御内容を補間して第1制御信号を補正する。
 なお、制御補正部111a及び制御補間部112aの動作は、実施の形態1に示した制御補正部111及び制御補間部112の動作と同様であるため、詳細な説明を省略する。
 また、モデル更新部122は、制御補正部111a又は制御補間部112aが補正した制御信号を用いてモデル情報を更新しても良い。
[0101]
 制御出力部108a、制御生成部107aが生成した制御信号、又は、制御補正部111a若しくは制御補間部112aが補正した制御信号を、ロボット10に備えられたモータ制御手段13に出力する。
[0102]
 図11を参照して、実施の形態2に係るロボット制御装置100aの動作について説明する。
 図11は、実施の形態2に係るロボット制御装置100aの処理の一例を説明するフローチャートである。
 ロボット制御装置100aは、例えば、新たな目標位置が設定される毎に当該フローチャートの処理を繰り返して実行する。
[0103]
 まず、ステップST1101にて、画像取得部101は、画像情報を取得する。
 次に、ステップST1102にて、モデル取得部103は、モデル情報を取得する。
 次に、ステップST1103にて、回転状況取得部104は、回転状況信号を取得する。
 次に、ステップST1104にて、現在位置取得部105は、ロボット10におけるアーム11の現在位置を示す現在位置情報を取得する。
 次に、ステップST1105にて、仮想空間画像生成部102は、仮想空間画像情報を生成する。
 次に、ステップST1106にて、目標位置取得部106は、目標位置情報を取得する。
 次に、ステップST1107にて、制御生成部107aは、モデル情報に含まれる対応情報のうち、目標位置情報が示す目標位置に対応する対応情報を特定する。
[0104]
 次に、ステップST1108にて、制御生成部107aは、現在位置取得部105が取得した現在位置情報が示すロボット10におけるアーム11の現在位置と目標位置情報が示す目標位置とが同一であるか否かを判定する。なお、ここで言う同一とは、必ずしも完全に一致するものに限らず、同一は、略同一を含むものである。
[0105]
 ステップST1108にて、制御生成部107aが、アーム11と目標位置とが同一でないと判定した場合、ステップST1111にて、報酬算出部121は、報酬を算出する。
 次に、ステップST1112にて、モデル更新部122は、制御生成部107aが特定した対応情報を更新することにより、モデル情報を更新する。
 次に、ステップST1113にて、制御生成部107aは、モデル更新部122が更新した対応情報を参照して、現在位置取得部105が取得した現在位置情報が示すロボット10におけるアーム11の現在位置に対応する制御信号を特定することにより、アーム11を移動させるための制御内容を示す制御信号を生成する。
 次に、ステップST1114にて、制御補正部111aは、制御生成部107aが生成した第1制御信号が示す制御内容が、制御生成部107aが直前に生成した第2制御信号が示す制御内容と比較して、予め定められた範囲内の変化量になるように、第1制御信号を補正する。
[0106]
 次に、ステップST1115にて、制御補間部112aは、制御生成部107aが生成した第1制御信号が示す制御内容の一部又は全部が欠落している場合、制御生成部107aが直前に生成した第2制御信号が示す制御内容に基づいて第1制御信号における欠落している制御内容を補間して第1制御信号を補正する。
 次に、ステップST1116にて、制御出力部108aは、制御生成部107aが生成した制御信号又は制御補正部111a若しくは制御補間部112aが補正した制御信号を、ロボット10に備えられたモータ制御手段13に出力する。
 次に、ステップST1117にて、回転状況取得部104は、回転状況信号を取得する。
 次に、ステップST1118にて、現在位置取得部105は、ロボット10におけるアーム11の現在位置を示す現在位置情報を取得する。
 次に、ステップST1119にて、仮想空間画像生成部102は、仮想空間画像情報を生成する。
[0107]
 ロボット制御装置100aは、ステップST1119の処理を実行した後、ステップST1108の処理に戻って、ステップST1108にて、制御生成部107aが、アーム11の現在位置と目標位置とが同一であると判定するまでの期間において、ステップST1108からステップST1119までの処理を繰り返し実行する。
 ステップST1108にて、制御生成部107aが、アーム11の現在位置と目標位置とが同一であると判定した場合、ステップST1121にて、モデル出力部123は、モデル更新部122が更新したモデル情報を出力する。
 ステップST1121の処理を実行した後、ロボット制御装置100aは、当該フローチャートの処理を終了する。
[0108]
 なお、当該フローチャートの処理において、ステップST1114、ステップST1115,及びステップST1119の処理は、ロボット制御装置100aにおいて必須の処理ではない。当該フローチャートの処理において、ステップST1101からステップST1103までの処理は、ステップST1104の処理に前に実行されれば、実行される順序は問わない。また、当該フローチャートの処理において、ステップST1114及びステップST1115の処理は、実行される順序が逆でも良い。
[0109]
 以上のように、ロボット制御装置100aは、ロボット10のアーム11の現在位置を示す現在位置情報を取得する現在位置取得部105と、アーム11の目標位置を示す目標位置情報を取得する目標位置取得部106と、参照経路を示す参照経路情報を参照してアーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて学習させたモデルを示すモデル情報と、現在位置取得部105が取得した現在位置情報と、目標位置取得部106が取得した目標位置情報とに基づいて目標位置情報が示す目標位置に向かってアーム11を移動させるための制御内容を示す制御信号を生成する制御生成部107と、に加えて、参照経路を示す参照経路情報を取得する参照経路取得部120と、現在位置取得部105が取得した現在位置情報と、目標位置取得部106が取得した目標位置情報と、参照経路取得部120が取得した参照経路情報とに基づいてアーム11が参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて、報酬を算出する報酬算出部121と、現在位置取得部105が取得した現在位置情報と、目標位置取得部106が取得した目標位置情報と、参照経路取得部120が取得した参照経路情報と、報酬算出部121が算出した報酬とに基づいて制御信号によりアーム11を移動させる価値を評価することにより、モデル情報を更新するモデル更新部122と、を備えた。
[0110]
 このように構成することで、参照経路を示す参照経路情報を参照してアーム11が参照経路を基にして移動していることを評価することにより、ロボット制御装置100aは、ロボット制御学習装置300が生成したモデル情報を、少ない演算量により短時間で更新しつつ、ロボット10のアーム11が実質的に不連続な動作を行うことのないようにロボット10をより高精度で制御することができる。
[0111]
 なお、この発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。

産業上の利用可能性

[0112]
 この発明に係るロボット制御装置は、ロボット制御システムに適用することができる。また、ロボット制御学習装置は、ロボット制御学習システムに適用することができる。

符号の説明

[0113]
 1,1a ロボット制御システム、3 ロボット制御学習システム、10 ロボット、11 アーム、11-1,11-2 関節、11-3 先端、12-1,12-2 モータ、13 モータ制御手段、14-1,14-2 回転センサ、15 接触センサ、20 作業環境、30 ネットワーク、40 記憶装置、50 撮像装置、100,100a ロボット制御装置、300 ロボット制御学習装置、101,301 画像取得部、102,302 仮想空間画像生成部、103 モデル取得部、104,304 回転状況取得部、105,305 現在位置取得部、106,306 目標位置取得部、107,107a,307 制御生成部、108,108a,308 制御出力部、111,111a,311 制御補正部、112,112a,312 制御補間部、120,320 参照経路取得部、121,321 報酬算出部、122 モデル更新部、123,323 モデル出力部、124,324 接触信号取得部、322 モデル生成部、201 プロセッサ、202 メモリ、203 処理回路。

請求の範囲

[請求項1]
 ロボットのアームの現在位置を示す現在位置情報を取得する現在位置取得部と、
 前記アームの目標位置を示す目標位置情報を取得する目標位置取得部と、
 参照経路を示す参照経路情報を参照して前記アームが前記参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて学習させたモデルを示すモデル情報と、前記現在位置取得部が取得した前記現在位置情報と、前記目標位置取得部が取得した前記目標位置情報とに基づいて前記目標位置情報が示す前記目標位置に向かって前記アームを移動させるための制御内容を示す制御信号を生成する制御生成部と、
 を備えること
 を特徴とするロボット制御装置。
[請求項2]
 前記演算式は、前記アームが前記参照経路を基にして移動していることを評価することにより報酬を算出する項に加えて、前記現在位置取得部が取得した前記現在位置情報が示す前記アームの前記現在位置の移動の連続性を評価することにより報酬を算出する項を含むこと
 を特徴とする請求項1記載のロボット制御装置。
[請求項3]
 前記演算式は、前記アームが前記参照経路を基にして移動していることを評価することにより報酬を算出する項に加えて、前記アームの一部と障害物とが接触したか否かを評価することにより報酬を算出する項を含むこと
 を特徴とする請求項1記載のロボット制御装置。
[請求項4]
 前記参照経路情報は、所定の計算処理に基づいて自動で生成されること
 を特徴とする請求項1記載のロボット制御装置。
[請求項5]
 前記参照経路情報は、前記アームが過去に移動した経路を示す移動履歴情報に基づいて生成されること
 を特徴とする請求項1記載のロボット制御装置。
[請求項6]
 前記制御生成部が生成した第1制御信号が示す制御内容が、前記制御生成部が直前に生成した第2制御信号が示す制御内容と比較して、予め定められた範囲内の変化量になるように、前記第1制御信号を補正する制御補正部
 を備えること
 を特徴とする請求項1記載のロボット制御装置。
[請求項7]
 前記制御生成部が生成した第1制御信号が示す制御内容の一部又は全部が欠落している場合、前記制御生成部が直前に生成した第2制御信号が示す制御内容に基づいて前記第2制御信号が示す制御内容から予め定められた範囲内の変化量になるように、前記第1制御信号において欠落している制御内容を補間して前記第1制御信号を補正する制御補間部
 を備えること
 を特徴とする請求項1記載のロボット制御装置。
[請求項8]
 前記参照経路を示す前記参照経路情報を取得する参照経路取得部と、
 前記現在位置取得部が取得した前記現在位置情報と、前記目標位置取得部が取得した前記目標位置情報と、前記参照経路取得部が取得した前記参照経路情報とに基づいて前記アームが前記参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて、報酬を算出する報酬算出部と、
 前記現在位置取得部が取得した前記現在位置情報と、前記目標位置取得部が取得した前記目標位置情報と、前記参照経路取得部が取得した前記参照経路情報と、前記報酬算出部が算出した報酬とに基づいて前記制御信号により前記アームを移動させる価値を評価することにより、前記モデル情報を更新するモデル更新部と、
 を備えたこと
 を特徴とする請求項1記載のロボット制御装置。
[請求項9]
 ロボットのアームの現在位置を示す現在位置情報を取得する現在位置取得部と、
 前記アームの目標位置を示す目標位置情報を取得する目標位置取得部と、
 参照経路を示す参照経路情報を取得する参照経路取得部と、
 前記現在位置取得部が取得した前記現在位置情報と、前記目標位置取得部が取得した前記目標位置情報と、前記参照経路取得部が取得した前記参照経路情報とに基づいて前記アームが前記参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて、報酬を算出する報酬算出部と、
 前記目標位置情報が示す前記目標位置に向かって前記アームを移動させるための制御内容を示す制御信号を生成する制御生成部と、
 前記現在位置取得部が取得した前記現在位置情報と、前記目標位置取得部が取得した前記目標位置情報と、前記参照経路取得部が取得した前記参照経路情報と、前記報酬算出部が算出した報酬とに基づいて前記制御信号により前記アームを移動させる価値を評価することにより、モデル情報を生成するモデル生成部と、
 を備えたこと
 を特徴とするロボット制御学習装置。
[請求項10]
 前記演算式は、前記アームが前記参照経路を基にして移動していることを評価することにより報酬を算出する項に加えて、前記現在位置取得部が取得した前記現在位置情報が示す前記アームの前記現在位置の移動の連続性を評価することにより報酬を算出する項を含むこと
 を特徴とする請求項9記載のロボット制御学習装置。
[請求項11]
 前記演算式は、前記アームが前記参照経路を基にして移動していることを評価することにより報酬を算出する項に加えて、前記アームの一部と障害物とが接触したか否かを評価することにより報酬を算出する項を含むこと
 を特徴とする請求項9記載のロボット制御学習装置。
[請求項12]
 前記参照経路情報は、所定の計算処理に基づいて自動で生成されること
 を特徴とする請求項9記載のロボット制御学習装置。
[請求項13]
 前記参照経路情報は、前記アームが過去に移動した経路を示す移動履歴情報に基づいて生成されること
 を特徴とする請求項9記載のロボット制御学習装置。
[請求項14]
 前記制御生成部が生成した第1制御信号が示す制御内容が、前記制御生成部が直前に生成した第2制御信号が示す制御内容と比較して、予め定められた範囲内の変化量になるように、前記第1制御信号を補正する制御補正部
 を備えること
 を特徴とする請求項9記載のロボット制御学習装置。
[請求項15]
 前記制御生成部が生成した第1制御信号が示す制御内容の一部又は全部が欠落している場合、前記制御生成部が直前に生成した第2制御信号が示す制御内容に基づいて前記第2制御信号が示す制御内容から予め定められた範囲内の変化量になるように、前記第1制御信号において欠落している制御内容を補間して前記第1制御信号を補正する制御補間部
 を備えること
 を特徴とする請求項9記載のロボット制御学習装置。
[請求項16]
 現在位置取得部が、ロボットのアームの現在位置を示す現在位置情報を取得し、
 目標位置取得部が、前記アームの目標位置を示す目標位置情報を取得し、
 参照経路を示す参照経路情報を参照して前記アームが前記参照経路を基にして移動していることを評価することにより報酬を算出する項を含む、報酬を算出するための演算式を用いて学習させたモデルを示すモデル情報と、前記現在位置取得部が取得した前記現在位置情報と、前記目標位置取得部が取得した前記目標位置情報とに基づいて前記目標位置情報が示す前記目標位置に向かって前記アームを移動させるための制御内容を示す制御信号を生成すること、
 を特徴とするロボット制御方法。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]