(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-23
(45)【発行日】2024-05-02
(54)【発明の名称】ロボットの機械学習装置
(51)【国際特許分類】
B25J 13/00 20060101AFI20240424BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2020205955
(22)【出願日】2020-12-11
【審査請求日】2023-08-21
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】榎本 聡文
【審査官】牧 初
(56)【参考文献】
【文献】特開2005-1055(JP,A)
【文献】特許第6725930(JP,B1)
【文献】特開2020-59108(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
所定の位置にあるボトルをロボットアームのハンドにより掴んで、重量センサの上に載置させる制御について、
ロボットアームの動作速度を減速させて、ボトルを重量センサの上に載置した状態の画像を撮像装置によって撮像し、前記ボトル内の液体の揺れが収まるまでの収束時間を計測する収束時間計測部と、
前記ボトルを前記重量センサの上に載置する直前に前記ボトルを鉛直方向から進行方向に傾ける角度と、前記減速時の減速度とを前記ボトル内の液体の種類に応じて設定する設定部と、
前記角度と前記減速度とを変化させ、前記ボトル内の液体の種類に応じて前記収束時間が最短となるように学習処理を行う学習処理部とを備えるロボットの機械学習装置。
【請求項2】
前記設定部は、前記ボトル内の液体の種類に応じて、前記角度θの初期値と前記減速度Dの初期値とを設定し、
前記学習処理部は、前記ロボットアームの動作速度を減速させて、前記ボトルを前記重量センサの上に載置する第1工程と、
前記撮像装置により撮像される前記画像をモニタリングして、前記ボトル内の液体の揺れが収まるまでの収束時間Tを計測する第2工程とを行い、
同じボトルについて第1工程を行う際に、初期値と異なる角度θ及び減速度Dを付与して第2工程を行い、
収束時間Tが変化した結果に応じて、角度θ及び減速度Dの少なくとも一方を変化させ、同じボトルについて前記第1及び第2工程を行い、
上記の処理を繰り返すことで、収束時間Tが最短になったと判断した時点で得られている角度θ及び減速度Dを記憶部に記憶する請求項1記載のロボットの機械学習装置。
【請求項3】
前記設定部は、前記学習処理部が学習処理を完了すると、次回に前記第1工程を行う以前に、ボトル内の液体の種類に応じて、前記記憶部より前記角度θ及び前記減速度Dを読み出して設定する請求項2記載のロボットの機械学習装置。
【請求項4】
所定の位置にあるボトルを前記ハンドにより掴んで、前記ロボットアームの動作速度を加速させる期間に、撮像装置により撮像される前記ボトル内の液面の状態から、液体の種類を判別する判別部を備える請求項1から3の何れか一項に記載のロボットの機械学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、液体が入ったボトルをロボットアームによって重量センサの上に載置する制御を行う装置に関する。
【背景技術】
【0002】
図7に示すように、ボトルに入った液体を、カップなどの容器に一定量だけ注ぐ処理を、ロボットにより自動的に行うことが提案されている。その作業は、概ね以下のような工程となる。
(1)所定の位置にあるボトルA,B,Cのうち、例えばボトルAをロボットアームのハンドにより掴んで、重量センサ(1)の上に載置させ、ボトルA内の液体の重量を計測する。
(2)重量センサ(1)の上にあるボトルAをロボットアームのハンドにより掴んで、重量センサ(2)の上に載置されている容器の近くに移動させてから、ボトルAを傾けて液体を容器に注ぎ込む。
(3)重量センサ(2)により、容器に注ぎ込まれた液体の重量を計測する。
(4)容器内の液体の重量が所定値に達するまで、(2),(3)の処理を繰り返す。
尚、特許文献1は、ロボットを用いたものではないが、ボトル容器からタンクに液体を移し替える作業に特化した装置に関するものである。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
以上のような作業工程を想定すると、(1)で重量センサAによりボトル内の液体の重量を検知する際に、ボトル内の液体が揺れている状態では重量を正確に計測できない。ボトルを載置してから液体の揺れが収まるのを待つ時間を設けると、計測に完了するのに時間がかかることになり作業効率が低下する。
【0005】
本発明は、上記実情に鑑みてなされたものであり、その目的は、重量センサの上にボトル載置する段階で、内部の液体の揺れを極力抑制できるロボットの機械学習装置を提供することにある。
【課題を解決するための手段】
【0006】
請求項1記載のロボットの機械学習装置によれば、収束時間計測部は、所定の位置にあるボトルをロボットアームのハンドにより掴んで重量センサの上に載置させる制御について、ボトルを重量センサの上に載置した状態の画像を撮像装置によって撮像し、ボトル内の液体の揺れが収まるまでの収束時間を計測する。設定部は、ボトルを重量センサの上に載置する直前に鉛直方向から進行方向に傾ける角度と、減速時の減速度とをボトル内の液体の種類に応じて設定する。そして、学習処理部は、前記角度と前記減速度とを変化させ、ボトル内の液体の種類に応じて収束時間が最短となるように学習処理を行う。
【0007】
ボトル内の液体の種類,つまり液体の粘性に応じて、ボトルを重量センサの上に載置した際に内部の液体の揺れが収まるまでの収束時間は異なる。そして、液体の種類に応じて、ボトルを進行方向に傾ける角度とロボットアームの動作速度を減速させる減速度とを調整すれば、前記収束時間を最短にすることができる。したがって、学習処理部が行った学習処理の結果を適用すれば、ロボットを用いてボトル内の液体の重量を重量センサで計測する処理を、より短い時間で行うことが可能になる。
【0008】
請求項2記載のロボットの機械学習装置によれば、設定部は、ボトル内の液体の種類に応じて、前記角度θの初期値と前記減速度Dの初期値とを設定する。学習処理部は、第1工程において、ロボットアームの動作速度を減速させてボトルを重量センサの上に載置する。続く第2工程において、撮像装置により撮像される画像をモニタリングして、ボトル内の液体の揺れが収まるまでの収束時間Tを計測する。そして、同じボトルについて第1工程を行う際に、初期値と異なる角度θ及び減速度Dを付与して第2工程を行うと、収束時間Tが変化した結果に応じて、角度θ及び減速度Dの少なくとも一方を変化させ、同じボトルについて第1及び第2工程を行う。学習処理部は、上記の処理を繰り返すことで、収束時間Tが最短になったと判断した時点で得られている角度θ及び減速度Dを記憶部に記憶する。このように学習処理を行うことで、液体の種類に応じて収束時間Tを最短にするための角度θ及び減速度Dを得ることができる。
【0009】
請求項3記載のロボットの機械学習装置によれば、設定部は、学習処理部が学習処理を完了すると、次回に第1工程を行う以前に、ボトル内の液体の種類に応じて記憶部より角度θ及び減速度Dを読み出して設定する。すなわち、学習処理部が学習処理を完了すれば、液体の種類に応じて学習結果を適用することで収束時間Tを最短にできる。
【0010】
請求項4記載のロボットの機械学習装置によれば、判別部は、所定の位置にあるボトルをハンドにより掴んでロボットアームの動作速度を加速させる期間に、撮像装置により撮像されるボトル内の液面の状態から液体の種類を判別する。すなわち、液体の種類に応じてその粘性は異なるため、ボトルをハンドにより掴んでロボットアームの動作速度を加速させた際に、ボトル内の液体は、その種類に応じて液面の傾き度合いが異なるといったように異なる状態を呈す。したがって、判別部は、ロボットアームの加速期間に撮像されるボトル内の液面の状態に基づいて液体の種類を判別できるので、ユーザが液体の種類を入力する等の操作が不要となり、ボトル内の液体の重量を重量センサで計測する処理を、一層短い時間で行うことが可能になる。
【図面の簡単な説明】
【0011】
【
図1】一実施形態であり、ロボットの学習システムを示す図
【
図2】機械学習装置の内部構成を中心に示す機能ブロック図
【
図3】ロボットのハンドがボトル収納載置台からボトルを把持してから、重量センサに載置するまでの速度変化を示す図
【
図4】学習部が行う学習処理を中心に示すフローチャート
【
図5】学習結果を、ロボットを動作させる際に反映させる制御を示すフローチャート
【
図6】ステップS22,S23における処理を概念的に説明する図
【発明を実施するための形態】
【0012】
以下、一実施形態について図面を参照して説明する。
図1は、本実施形態におけるロボットの学習システムを示す図である。ロボット1は、いわゆる6軸の垂直多関節型ロボットとして周知の構成を備えており、ベース2上に、Z方向の軸心を持つ第1軸(J1)を介してショルダ3が水平方向に回転可能に連結されている。ショルダ3には、Y方向の軸心を持つ第2軸(J2)を介して上方に延びる下アーム4の下端部が垂直方向に回転可能に連結されている。下アーム4の先端部には、Y方向の軸心を持つ第3軸(J3)を介して第一上アーム5が垂直方向に回転可能に連結されている。第一上アーム5の先端部には、I方向の軸心を持つ第4軸(J4)を介して第二上アーム6が捻り回転可能に連結されている。第二上アーム6の先端部には、Y方向の軸心を持つ第5軸(J5)を介して手首7が垂直方向に回転可能に連結されている。手首7には、I方向の軸心を持つ第6軸(J6)を介してフランジ8が捻り回転可能に連結されている。
【0013】
ベース2、ショルダ3、下アーム4、第一上アーム5、第二上アーム6、手首7及びフランジ8は、ロボット1のアームとして機能し、アームの先端となるフランジ8には、ハンド9が取り付けられる。ロボット2に設けられている各軸J1~J6には、それぞれに対応して駆動源となる図示しないモータが設けられている。
【0014】
ロボット制御装置10は、マイクロコンピュータ等を備えて構成され、マイコンが制御プログラムを実行することで、ロボット1を制御する。具体的には、制御装置10は、インバータ回路等から構成された駆動部を備えており、上述した各モータに対応して設けられているエンコーダで検知したモータの回転位置に基づいて例えばフィードバック制御により各モータを駆動する。
【0015】
ボトル収納載置台11には、例えば3種類のボトル12A,12B,12Cが載置されている。これらのボトル12A,12B,12Cには、それぞれ異なる種類の液体が、その液面がボトル12の本体部分,つまり一定の直径が連続する部分の途中まで注入されている。制御装置10は、ロボット1のハンド9によってボトル収納載置台11に載置されているボトル12を把持してから、ボトル12を例えば電子秤等の重量センサ13の上方に移動させると、ボトル12を重量センサ13に載置する。そして、重量センサ13により、ボトル12内の液体の重量を計測する。
【0016】
移載場14には、例えばコップやビーカ等の移載容器15が載置されている。液体の重量が計測されたボトル12は、移載容器15の上方に移動させられて、内部の液体が移載容器15の内部に注がれる。この時、移載容器15の内部に注がれる液体の重量が予め定められた一定量にする制御も行うのであれば、移載場14にも重量センサをセットすれば良い。
【0017】
尚、以上において、重量センサ13による重量の計測を行った後から移載容器15の内部に液体を注ぐまでの制御は、制御装置10が行っても良いし、異なる装置によって行っても良い。
【0018】
ロボット1のハンド9によって、ボトル12を重量センサ13に載置するために移動させる際には、
図3に示すように、ハンド9がボトル収納載置台11からボトル12を把持してからはアームの動作速度が加速する期間となり、その後一定の速度で移動する期間となり、ボトル12を重量センサ13に載置する直前はアームの動作速度が減速する期間となる。上記のプロセスにおいて、内部の液体に加速力や減速力が作用するため、ボトル12を重量センサ13に載置した直後には液体の液面が波を打つように揺動している。液面が揺動している状態では、重量センサ13による重量の測定値が正確に出ないので、液面の揺動が収束するまで計測を待つ必要がある。この待ち時間を長く要することになると重量の測定を短時間内に完了することができず、作業効率が低下する。
【0019】
ボトル12を重量センサ13に載置した直後に液面が波を打つ大きさは、減速期間においてボトル12の長手方向の軸を鉛直方向から進行方向に向けて、つまり重量センサ13に向かう方向に傾けることで緩和される。また、減速期間における減速度の設定も、液面が波を打つ大きさに関与している。したがって、上述した傾きの角度θnと減速度Dnとを最適化することで、ボトル12を重量センサ13に載置した時点から液面の揺動が収束するまでの時間を最短にすることができる。
【0020】
そこで、本実施形態では、角度θnと減速度Dnとを最適化するための学習処理を行う機械学習装置20が、制御装置10に接続されている。撮像装置の一例である視覚センサ21は、例えばCCDやCMOS画像センサ等であり、重量センサ13に載置されたボトル12の画像を撮像し、その画像データを制御装置10及び機械学習装置20に出力する。尚、
図1では視覚センサ21がボトル12の画像を上方から撮像するように示しているが、ボトル12の側面から画像を撮像した方が液面の揺動状態をより明確に捉えることができる場合には、視覚センサ21をそのように配置すれば良い。
【0021】
図2は、機械学習装置20の内部構成を中心に示す機能ブロック図である。液面画像取得部22は、視覚センサ21により撮像された画像のデータPnを取得する。収束時間計測部に相当する計測完了時間取得部23は、ロボット1がボトル12を重量センサ13に載置してからボトル12内の液面の揺動が収束して、重量センサ13による重量の計測が完了するまでの時間Tnを取得する。この時間Tnの開始時点は制御装置10より得ても良いし、前記画像データPnより得ても良い。時間Tnの終了時点は画像データPnより得る。
【0022】
減速度取得部24,容器傾斜角度取得部25は、ロボットアームの減速期間における減速度Dn,ボトル12の鉛直方向に対する進行方向への傾斜角度θnを、それぞれ制御装置10より取得する。これらの取得部22~25により取得された各データ等は、学習部26に入力される。設定部,判別部及び学習処理部に相当する学習部26は、入力された各データ等に基づいて時間Tnを最短にするための学習処理を行い、その学習の結果を学習モデル記憶部27に記憶させる。
【0023】
学習部26が学習処理を行っている期間の減速度Dn及び傾斜角度θnは、出力制御部28及び出力部29を介して制御装置10に出力される。また、学習部26が学習処理を完了した際には、学習結果として得られた減速度Dn及び傾斜角度θnの最適値が、学習モデル記憶部27より読み出されて制御装置10に出力される。
【0024】
次に、本実施形態の作用について
図4から
図6を参照して説明する。
図4は、学習部26が行う学習処理を中心に示すフローチャートである。尚、減速度D,傾斜角度θ,画像データPに付与する添え字nは、ボトル12A,12B,12Cに対応させた(n=a,b,c)であり、添え字iは、学習処理の試行回数を示す自然数である。先ず、制御装置10が、ボトル収納載置台11に載置されている例えばボトル12Aを、ロボット1のハンド9により把持して移送する動作を開始させる(S1)。学習装置20の減速度取得部24,容器傾斜角度取得部25は、最初は初期値として設定されている減速度Dni=Da1,傾斜角度θni=θa1を、制御装置10より取得する(S2,S3)。
【0025】
ロボット1がボトル12Aを移送して重量センサ13に載置する動作を行っている間に(S4)、液面画像取得部22は、視覚センサ21より画像データPaiを取得する(S5)。ここでは、アームの動作速度が加速する期間の液面の動画像と、ボトル12Aが重量センサ13に載置される瞬間の前後における液面の動画像とを取得する。それから、続くステップS6において、計測完了時間取得部23は、ロボット1がボトル12を重量センサ13に載置してからボトル12内の液面の揺動が収束して、重量センサ13による重量の計測が完了するまでの時間Taiを取得する。尚、ボトル12を重量センサ13に載置するまでが第1工程である。
【0026】
ステップS6において、学習部26は、i=1の場合、時間Ta1を予め設定されている初期値Ta0と比較して条件判定を行う。(Ta1<Ta0)であり、時間Ta1が初期値より短縮された場合には、機械学習における報酬を増加させ(S7)、(Ta1>Ta0)であり、時間Ta1が初期値より伸長された場合には、機械学習における報酬を減少させる(S8)。ここで言う「報酬」の増減は、時間Taiの短縮度合いに応じた評価である。「報酬」を増加させた際には、前回の学習で付与した減速度Dni,傾斜角度θniに対して、今回の学習で新たに付与した減速度Dni,傾斜角度θniへの変化の傾向を、より進める。また「報酬」を減少させた際には、前記変化の傾向を逆進させる。
【0027】
具体的には、前回付与した減速度Dniに対して今回付与した減速度Dniがより小さい値であったことで、時間Tniが短縮された場合には、次回の学習で付与する減速度Dniをより減少させる。逆に、時間Tniが伸長された場合には、次回の学習で付与する減速度Dniを前回の値よりも増加させる。i=1の場合は前回の値がないので、ステップS7,S8の何れに移行しても良い。また、ここでは、減速度Dni,傾斜角度θniの何れか一方だけを変化させても良いし、両者を同時に変化させても良い。
【0028】
続くステップS9では、ステップS7,S8の実行結果に応じて最適減速度Da,最適傾斜角度θaの組み合わせを更新する。ここで、添え字「i」を除いた値が最適値を示すものとする。そして、学習部26は、学習処理を継続するか否かを判断する(S10)。ここで、学習処理を継続するか否かの判断は、ユーザの設定による。例えば、予め学習を試行する減速度Dni,傾斜角度θniの組み合わせを決定してデータテーブルを用意しておき、それらの組み合わせを総当たりした時点で終了としたり、(i=100)となった時点等で終了とすれば良い。
【0029】
学習処理を継続する場合は(YES)、ステップS7,S8の実行結果に応じて減速度Dai,傾斜角度θaiをそれぞれ変更してから(S12,S13)ステップS1に戻る。この時、ロボット1は、ボトル12Aを重量センサ13からボトル収納載置台11に戻してからステップS1を実行する。ステップS12,S13までが第2工程である。
【0030】
学習処理を終了する場合は(NO)、最適減速度Da,最適傾斜角度θaの組み合わせを動画像データPaに紐付けて学習モデル記憶部27に記憶させる(S11)。ここで紐づける画像データPaは、液体の種類を特定するためにアームの加速期間に取得した画像である。以上で、ボトル12Aについての学習モデルが完成する。続いて、ボトル12B,12Cについても同様の学習処理を行う。
【0031】
次に、学習モデルが完成した後、その学習結果を、ロボット1を動作させる際に反映させる制御について説明する。
図5に示すように、制御装置10が、ボトル収納載置台11に載置されている、内部の液体の種類が未知であるボトル12Xを、ロボット1のハンド9により把持して移送させる(S21)。ここは、
図3に示す加速期間に相当する。
【0032】
続いて、液面画像取得部22は、視覚センサ21より加速期間におけるボトル12Xの液面の画像データを取得する(S22)。学習部26は、この加速期間における液面の動画像データに紐付けられている液体の種類に応じた最適減速度Dnf,最適傾斜角度θnfの組み合わせを、学習モデル記憶部27より読み出す(S23)。そして、それらを指令値として制御装置10に出力するように、出力制御部28にセットする(S24)。
【0033】
図6は、ステップS22,S23における処理を概念的に説明する図である。学習処理の結果として、ボトル12A,12B,12Cについては、それぞれの最適減速度Dn及び最適傾斜角度θnの組み合わせが得られている。また、各ボトル12A,12B,12Cについて、加速期間に取得した液面の動画像データが紐付けられている。
【0034】
これらに対し、液体の種類が未知のボトル12Xについて加速期間に液面の動画像データを取得することで、ボトル12A,12B,12Cとの画像マッチング処理を行い、ボトル12Xがこれらの何れに該当するのかを判別し、適用する最適減速度Dnf及び最適傾斜角度θnfの組み合わせを決定する。
【0035】
続いて、制御装置10は、ボトル12を重量センサ13に載置するまでの等速期間,減速期間に相当する制御を行い(S25)、ボトル12が重量センサ13に載置されると重量の計測が行われる(S26)。それから、制御装置10は、移載場14に載置されている移載容器15に、ボトル12から液体を注ぐ処理を行い(S27)、ボトル12をボトル収納載置台11に搬送して戻すと(S28)1回分の動作が終了する。
【0036】
以上のように本実施形態によれば、機械学習装置20の計測完了時間取得部23は、ボトル収納載置台11にあるボトル12をロボットアームのハンド9により掴んで移送し、重量センサ13の上に載置した状態の画像を視覚センサ21によって撮像し、ボトル12内の液体の揺れが収まるまでの収束時間Tnを計測する。学習部26は、ボトル12を重量センサ13の上に載置する直前に鉛直方向から進行方向に傾ける角度θnと、減速時の減速度Dnとをボトル12内の液体の種類に応じて設定する。そして、角度θnと減速度Dnとを変化させ、ボトル12内の液体の種類に応じて収束時間Tnが最短となるように学習処理を行う。
【0037】
ボトル12内の液体の種類,つまり液体の粘性に応じて、ボトル12を重量センサ13の上に載置した際に内部の液体の揺れが収まるまでの収束時間Tnは異なる。そして、液体の種類に応じて、ボトル12を進行方向に傾ける角度θnとロボットアームの動作速度を減速させる減速度Dnとを調整すれば、収束時間Tnを最短にすることができる。したがって、学習部26が行った学習処理の結果を適用すれば、ロボット1を用いてボトル12内の液体の重量を重量センサ13で計測する処理を、より短い時間で行うことが可能になる。
【0038】
具体的には、学習部26は、ボトル12内の液体の種類に応じて、傾斜角度θnの初期値θn1と減速度Dnの初期値Dn1とを設定し、第1工程において、ロボットアームの動作速度を減速させてボトル12を重量センサ13の上に載置する。続く第2工程において、視覚センサ21により撮像される画像をモニタリングして、ボトル12内の液体の揺れが収まるまでの収束時間Tniを計測する。そして、次のボトル12について第1工程を行う際に、初期値と異なる角度θni及び減速度Dniを付与して第2工程を行うと、収束時間Tniが変化した結果に応じて、角度θni及び減速度Dniの少なくとも一方を変化させ、同じボトル12について第1及び第2工程を行う。学習部26は、上記の処理を繰り返すことで、収束時間Tniが最短になったと判断した時点で得られている角度θn及び減速度Dnを、最適値として学習モデル記憶部27に記憶する。このように学習処理を行うことで、液体の種類に応じて収束時間Tniを最短時間Tsにするための角度θn及び減速度Dnを得ることができる。
【0039】
また、学習部26は、学習処理を完了すると、次回に第1工程を行う以前に、ボトル12内の液体の種類に応じて学習モデル記憶部27より角度θn及び減速度Dnを読み出して設定する。すなわち、学習処理を完了すれば、液体の種類に応じて学習結果を適用することで収束時間Tniを最短にできる。
【0040】
更に、学習部26は、ボトル収納載置台11にあるボトル12をハンド9により掴んでロボットアームの動作速度を加速させる期間に、視覚センサ21により撮像されるボトル12内の液面の状態から液体の種類を判別する。すなわち、液体の種類に応じてその粘性は異なるため、ボトル12をハンド9により掴んでロボットアームの動作速度を加速させた際に、ボトル12内の液体は、その種類に応じて液面の傾き度合いが異なるといったように異なる状態を呈す。したがって、学習部26は、ロボットアームの加速期間に撮像されるボトル12内の液面の状態に基づいて液体の種類を判別できるので、ユーザが液体の種類を入力する等の操作が不要となり、ボトル12内の液体の重量を重量センサ13で計測する処理を、一層短い時間で行うことが可能になる。
【0041】
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
同じ種類の液体でも、ボトル内の液位が異なると液面が揺動する状態が異なる場合には、液位が異なるボトルについても学習処理を行い、液位に応じた角度θn及び減速度Dnの最適値を適用しても良い。
【符号の説明】
【0042】
図面中、1はロボット、10はロボット制御装置、11はボトル収納載置台、12はボトル、13は重量センサ、20は機械学習装置、21は視覚センサ、22は液面画像取得部、23は計測完了時間取得部、24は減速度取得部、25は容器傾斜角度取得部、26は学習部、27は学習モデル記憶部を示す。