IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

特開2025-6470ロボット制御システム及びピッキング方法
<>
  • 特開-ロボット制御システム及びピッキング方法 図1
  • 特開-ロボット制御システム及びピッキング方法 図2
  • 特開-ロボット制御システム及びピッキング方法 図3
  • 特開-ロボット制御システム及びピッキング方法 図4
  • 特開-ロボット制御システム及びピッキング方法 図5
  • 特開-ロボット制御システム及びピッキング方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025006470
(43)【公開日】2025-01-17
(54)【発明の名称】ロボット制御システム及びピッキング方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20250109BHJP
【FI】
B25J13/08 A
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023107283
(22)【出願日】2023-06-29
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】赤池 聖公
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS01
3C707BS10
3C707DS01
3C707KS05
3C707KS17
3C707KT01
3C707KT04
3C707LS20
3C707LT12
3C707LV07
3C707LW12
3C707MT03
3C707MT04
(57)【要約】
【課題】ピッキングロボットにおいて制御負荷を低減させつつロボットアームを精確に制御する。
【解決手段】ロボット制御システムは、オフラインティーチングによって生成したオフライン制御指令値に基づく、ロボットアームのオフライン制御時のピッキング機構の位置(第1位置)とロボットアームのオンライン制御時のピッキング機構の位置とのズレ量を示すズレ情報と、オフライン制御指令値と、ロボットアームの特性情報と含むデータを入力し、ズレ量が最小になるように深層強化機械学習を実行することで、オンライン制御時の学習制御指令値を生成する。ロボット制御システムは、第1位置と学習制御指令値に基づくオンライン制御時のピッキング機構の位置(第3位置)とのズレ量を示す情報である更新ズレ情報を入力データの一部として入力し、第1位置と第3位置とのズレ量が最小になるように深層強化機械学習を実行することで、学習制御指令値を更新する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ピッキング機構を有するロボットアームで物品をピッキングするピッキングロボットについて、シミュレーションによるオフラインティーチングによって生成された前記ロボットアームを制御する制御指令値であるオフライン制御指令値に基づいて、オフラインで前記ロボットアームを制御したときの前記ピッキング機構の位置である第1位置と、前記オフライン制御指令値に基づいて実際にオンラインで前記ロボットアームを制御したときの前記ピッキング機構の位置である第2位置と、について、前記第1位置と前記第2位置とのズレ量を示す情報であるズレ情報を取得する取得部と、
前記オフライン制御指令値と前記ズレ情報と前記ロボットアームの動作特性を示す特性情報と含むデータを入力データとして、前記第1位置と前記第2位置とのズレ量が最小になるように深層強化機械学習を実行することで、前記ロボットアームを実際にオンラインで制御する制御指令値である学習制御指令値を生成する生成部と、
を備え、
前記取得部は、前記第1位置と、前記学習制御指令値に基づいて実際にオンラインで前記ロボットアームを制御したときの前記ピッキング機構の位置である第3位置とのズレ量を示す情報である更新ズレ情報を取得し、
前記生成部は、前記更新ズレ情報を前記入力データの一部として入力し、前記第1位置と前記第3位置とのズレ量が最小になるように前記深層強化機械学習を実行することで、前記学習制御指令値を更新する、
ロボット制御システム。
【請求項2】
前記特性情報の少なくとも一部の情報は、前記ロボットアームに備えられた前記動作特性を検出するセンサで、実際にオンラインで前記ロボットアームを制御したときに検出されたセンサ値である、
請求項1に記載のロボット制御システム。
【請求項3】
前記入力データは、前記ロボットアームに備えられた動作状態を検出するセンサで、実際にオンラインで前記ロボットアームを制御したときに検出されたセンサ値を含む、
請求項1又は2に記載のロボット制御システム。
【請求項4】
請求項1又は2に記載のロボット制御システムで前記ピッキングロボットを制御し、前記物品をピッキングするピッキング方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット制御システム及びピッキング方法に関する。
【背景技術】
【0002】
特許文献1には、物品を把持するロボットハンドがロボットアームに装着され、ピッキングを行うアームロボットに対して、シミュレーションによるオフラインティーチングによって制御値を生成する技術が開示されている。特許文献1に記載の技術では、生成した制御値に基づいて実際にオンラインでロボットアームを制御し、センサによって検出した実際のロボットアームの位置に基づき補正制御を行っている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第6905147号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、毎回、センサによって検出した実際のロボットアームの位置に基づき補正制御を行う必要があり、制御負荷が増大してしまう。よって、ピッキングロボットにおいて、制御負荷を低減させつつロボットアームを精確に制御できるようにする技術の開発が望まれる。
【課題を解決するための手段】
【0005】
本開示に係るロボット制御システムは、ピッキング機構を有するロボットアームで物品をピッキングするピッキングロボットについて、シミュレーションによるオフラインティーチングによって生成された前記ロボットアームを制御する制御指令値であるオフライン制御指令値に基づいて、オフラインで前記ロボットアームを制御したときの前記ピッキング機構の位置である第1位置と、前記オフライン制御指令値に基づいて実際にオンラインで前記ロボットアームを制御したときの前記ピッキング機構の位置である第2位置と、について、前記第1位置と前記第2位置とのズレ量を示す情報であるズレ情報を取得する取得部と、前記オフライン制御指令値と前記ズレ情報と前記ロボットアームの動作特性を示す特性情報と含むデータを入力データとして、前記第1位置と前記第2位置とのズレ量が最小になるように深層強化機械学習を実行することで、前記ロボットアームを実際にオンラインで制御する制御指令値である学習制御指令値を生成する生成部と、を備え、前記取得部は、前記第1位置と、前記学習制御指令値に基づいて実際にオンラインで前記ロボットアームを制御したときの前記ピッキング機構の位置である第3位置とのズレ量を示す情報である更新ズレ情報を取得し、前記生成部は、前記更新ズレ情報を前記入力データの一部として入力し、前記第1位置と前記第3位置とのズレ量が最小になるように前記深層強化機械学習を実行することで、前記学習制御指令値を更新する、ものである。
【0006】
本開示に係るピッキング方法は、前記ロボット制御システムで前記ピッキングロボットを制御し、前記物品をピッキングするピッキング方法である。
【発明の効果】
【0007】
本開示によれば、ピッキングロボットにおいて、制御負荷を低減させつつロボットアームを精確に制御できる。
【図面の簡単な説明】
【0008】
図1】実施の形態に係るロボット制御システムの一構成例を示すブロック図である。
図2図1のロボット制御システムにおける処理の概要を説明するための図である。
図3図2におけるオフラインのピッキングロボットと実機のピッキングロボットとのピッキング機構の位置のズレを説明するための図である。
図4図1のロボット制御システムにおける処理例を説明するためのフロー図である。
図5図1のロボット制御システムにおける他の処理例を説明するためのフロー図である。
図6図1のロボット制御システムにおける更なる他の処理例を説明するためのフロー図である。
【発明を実施するための形態】
【0009】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施の形態に限定するものではない。また、実施の形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【0010】
(実施の形態)
まず、図1図3を用いて、本実施の形態に係るロボット制御システム(以下、本システム)の一例について説明する。図1は、本システムの一構成例を示すブロック図である。図2は、図1に示す本システムにおける処理の概要を説明するための図である。図3は、図2におけるオフラインのピッキングロボットと実機のピッキングロボットとのピッキング機構の位置のズレを説明するための図である。
【0011】
図1に示すように、本システム1は、例えば、ロボットアームで物品をピッキングするピッキングロボット10と、情報処理装置20とを備える。以下、ピッキングロボットを単にロボットと称し、ロボットアームを単にアームと称し、物品をワークと称する。ロボット10は、例えば、制御部11、駆動制御部12、駆動部13、センサ群14、入力部15、及び記憶部16を備える。ロボット10は、図2で例示するように、アーム150で台M又は地面等に載置されたワークWをピッキングするロボットである。アーム150は、把持機構等のピッキング機構151を備えるとともに、1又は複数の関節部分のそれぞれを構成する複数の関節機構を備える。各関節機構は、回動、伸縮等によって可動する。無論、把持機構も関節機構を備えることができる。ロボット10は、ピッキング機構151によりワークWを拾い上げて任意の場所にそのワークWを置くことができる。
【0012】
ロボット10は、図2においてアーム150が6軸で回動するロボットの外観の一例を図示しているが、その形状をはじめ、関節機構の数、位置、形状、種類、ピッキング機構151の形状、種類などは問わない。ピッキング機構151は、以下に例を挙げるようにワークWを把持する把持機構であればよい。但し、ピッキング機構151は、ワークが金属である場合には永久磁石又は電磁力の磁力によりワークを吸着する機構でもよく、その場合、ピッキング機構151はワークとの吸着面を平面などとしておいてもよい。
【0013】
制御部11は、駆動制御部12、センサ群14、入力部15、及び記憶部16を制御する。制御部11は、例えば、CPU(Central Processing Unit)等のプロセッサ、作業用メモリ、及び不揮発性の記憶装置などで構成されるコンピュータによって実現されることができる。この記憶装置にプロセッサによって実行される制御プログラムを格納しておき、プロセッサがその制御プログラムを作業用メモリに読み出して実行することで、制御部11の機能を果たすことができる。この記憶装置は、記憶部16を利用することもできる。無論、制御部11は、専用の制御回路として構成されてもよい。
【0014】
以下では、図1に示したように、制御部11、入力部15、及び記憶部16がロボット10の本体に内蔵される例を挙げて説明する。但し、制御部11、入力部15、及び記憶部16は、ロボット10の本体と離間した位置に配されたコンピュータ等のコントローラに備えられてもよい。その場合、ロボット10の本体とコントローラとが有線又は無線で通信可能となっていれば、コントローラからのロボット10の制御は可能である。
【0015】
駆動制御部12は、制御部11からの制御に従い、駆動部13を制御する。駆動部13は、関節機構を駆動して、関節機構を介して接続された複数の部品を相対的に回動させたり、部品を伸縮させたりするなどの動作をさせるモータ等のアクチュエータなどで構成されることができる。図2及び図3では、回動の方向を矢印で示すように6つの関節機構における回動軸で回動可能で、またピッキング機構151の把持部152,153でワークWの把持が可能な例を挙げる。駆動部13は、各関節機構に1又は複数備えられるが、説明の簡略化のために駆動部13が関節機構につき1つ備えられる例を挙げる。なお、ロボット10に関節機構以外の機構が設けられる場合には、駆動部13はその機構の駆動のためにも備えられる。
【0016】
センサ群14は、各駆動部13あるいは各関節機構などに設けられた複数のセンサである。センサ群14には、例えば、ピッキング機構151又はその付近に設けられたカメラ等のセンサ14aが含まれる。センサ14aは、ワークWを認識するために配される。
【0017】
入力部15は、情報処理装置20などから情報を入力する部位である。記憶部16は、制御部11から情報の読み書きが可能な記憶装置とすることができ、後述する学習モデル17等を記憶しておくことができる。制御部11は、上記の制御プログラムの一部として、学習モデル17による学習を実行するためのプログラムを含むとよい。
【0018】
情報処理装置20は、例えば、入力部22、出力部23、及び記憶部24と、それらを制御する制御部21とを備える。制御部21は、例えば、プロセッサ、作業用メモリ、及び不揮発性の記憶装置などで構成されるコンピュータによって実現されることができる。この記憶装置にプロセッサによって実行される制御プログラムを格納しておき、プロセッサがその制御プログラムを作業用メモリに読み出して実行することで、制御部21の機能を果たすことができる。この記憶装置は、記憶部24を利用することもできる。
【0019】
入力部22は、外部の装置から、後述するシミュレーションプログラム25によるシミュレーションで必要な情報を入力し、シミュレーション時に読み出し可能な状態で記憶部24に記憶させる。以下、シミュレーションプログラム25を単にプログラム25と称す。出力部23は、シミュレーションの結果を示す結果情報を、ネットワークを介してロボット10へ出力する。無論、結果情報は可搬記録媒体へ出力し、可搬記録媒体を介してロボット10へ入力してもよい。記憶部24は、プログラム25等を記憶しておくことができる。制御部21は、上記の制御プログラムの一部として、プログラム25によるシミュレーションを実行するためのプログラムを含むとよい。
【0020】
本システム1では、深層強化学習を用い、オフラインティーチ後の実機のロボット10におけるピッキング機構151の位置ズレを抑制する。具体的に図2図3を用いて説明する。以下、プログラム25における、ロボット10、アーム150、ピッキング機構151に対応するモデルを、それぞれロボット25a、アーム250、ピッキング機構251として説明する。同様に、プログラム25における把持部152,153、センサ14a、台M、ワークWに対応するモデルを、それぞれ把持部252,253、センサ254、台Ms、ワークWsとして説明する。ロボット25aはロボット10の製造前のプログラム25上のモデルとするが、ロボット10の製造後のモデルであってもよい。なお、図2では便宜上、学習モデル17及び制御部11をロボット10の外部に描いているが、実際には図1に示す通りである。
【0021】
まず、情報処理装置20の制御部21が、ロボット25aについて、プログラム25を実行することでオフラインティーチングによるシミュレーションを実行し、アーム250を制御する制御指令値であるオフライン制御指令値を生成する。オフライン制御指令値は最適な制御指令値として生成される。制御部21は、オフライン制御指令値を生成する生成部を備えると言える。オフライ制御指令値は、各関節機構を駆動するための複数の駆動部13を駆動する制御指令値を含むとよい。オフライン制御指令値は、実際には、あるワークWsの存在する目標位置を指定して、その目標位置に向かうように制御するためのオフライン制御指令値を指すとよい。制御部21は、例えば想定しうる複数の目標位置のそれぞれ、即ち設置位置の異なる複数のワークWsのそれぞれに対する複数のオフライン制御指令値を生成しておくとよい。
【0022】
また、制御部21は、プログラム25により第1位置の出力も行う。第1位置は、オフライン制御指令値に基づいてオフラインでアーム250を制御したときのピッキング機構251の位置であり、例えば図3の把持部252,253の中点H2で示される座標である。ピッキング機構251の位置は、例えば、ワークWsをピッキングするようにアーム250を制御したときのピッキング位置とするとよい。より具体的には、ピッキング機構251の位置は、把持を開始する手前の、ワークWsとの距離又は位置関係が予め定められた距離又は位置関係となったときの位置としてもよいし、ワークWsを把持した位置としてもよい。制御部21は、結果情報であるオフライン制御値及び第1位置をロボット10へ出力するように、出力部23へ指示する。
【0023】
プログラム25による結果情報の算出例を挙げる。制御部21は、プログラム25を読み出すことにより、例えば、次のような物体認識処理部211、把持点探索部212、及び経路生成部213を構成する。換言すれば、プログラム25は、各部211~213の機能を制御部21に実現させるためのプログラムを含むことができる。物体認識処理部211は、センサ254でのワークWsの認識についての処理を行い、ワークWsが認識された場合、そのワークWsの位置を把持点探索部212へ渡す。把持点探索部212は、受け取ったワークWsの位置と現在のピッキング機構251の位置とに基づき、ワークWsにおける把持位置である把持点を探索し、探索した把持点を経路生成部213に渡す。ワークWsにおける把持位置は、例えば、把持時にピッキング機構251に当接する位置の中心などとして規定しておくとよい。経路生成部213は、把持点からピッキング機構251の移動経路を生成し、把持点探索部212へ渡す。把持点探索部212と経路生成部213とは、上述のように情報のやり取りを行いながら、探索した把持点への移動経路の生成を繰り返し、最適な把持点及び移動経路を決定する。最適な把持点及び移動経路は、例えば最速でワークWsを把持できるような把持点及び移動経路として決定される。
【0024】
経路生成部213は、決定した移動経路で決定した把持点までピッキング機構251を移動させるための、アーム250の各関節機構のそれぞれに対応する複数の駆動部についての駆動の角度、速度、加速度、及びトルクを示すオフライン制御指令値を生成する。なお、これら駆動部についての駆動の角度は関節の角度を指し、駆動の速度、加速度、及びトルクはそれぞれ関節を動かせる速度、加速度、及びトルクを指す。なお、後述の駆動部13の駆動の角度等についても同様である。オフライン制御指令値は、現在の位置から把持点へ向かうまでの時系列の制御指令値としてもよい。経路生成部213は、各ワークWsの位置、つまり各目標位置に対し、決定された最適な把持点、最適なオフライン制御指令値を、それぞれ第1位置、オフライン制御値として、ロボット10へ出力するように出力部23へ指示する。経路生成部213は、第1位置及びオフライン制御値とともに、その算出元となった目標位置、及び、上記現在のピッキング機構251の位置であるピッキング機構251の駆動前の位置を、結果情報に含めて出力するように指示を行うとよい。
【0025】
制御部11の構成例について説明する。制御部11は、例えば、物体認識処理部211、把持点探索部212、及び経路生成部213にそれぞれ対応する処理を行う物体認識処理部111、把持点探索部112、及び経路生成部113を備える。各部111~113の機能は、例えば、プロセッサにより実行される上記の制御プログラムに各部111~113の処理を実行するプログラムを含むことで実現できる。
【0026】
物体認識処理部111は、センサ14aでワークWを認識する。把持点探索部112は、認識されたワークWの位置と現在のピッキング機構151の位置とに基づき、ワークWにおける把持位置である把持点を探索する。経路生成部113は、探索された把持点からピッキング機構151の移動経路を生成する。把持点探索部112と経路生成部113とは、情報のやり取りを行いながら、探索した把持点への移動経路の生成を繰り返し、最適な把持点及び移動経路を、例えば最速でワークWを把持できる把持点及び移動経路として決定する。経路生成部113は、決定した移動経路で決定した把持点までピッキング機構151を移動させるための、アーム150の各関節機構のそれぞれに対応する駆動部13についての駆動の角度、速度、加速度、及びトルクを示す制御指令値を生成する。生成された制御指令値であるオンライン制御指令値は、現在の位置から把持点へ向かうまでの時系列の制御指令値としてもよい。経路生成部113は、ワークWについて生成したオンライン制御指令値に基づき、アーム150の駆動部13を制御するよう駆動制御部12に指示を送る。
【0027】
ロボット10の制御部11は、このような構成を備えるとともに、第1位置と第2位置とのズレ量を示す情報の取得も行う。つまり、ロボット10は、ズレ情報を取得する取得部を備えると言える。また、ズレ情報は、第1位置と第2位置とのズレの距離又は距離及び方向を示すズレ量を算出した結果を示す情報として取得するとよいが、第1位置を示す情報及び第2位置を示す情報として取得してもよい。
【0028】
第1位置は、入力部15が上記結果情報の一部として受信する。なお、制御部11は、情報処理装置20から入力部15で受信した結果情報を一時的に記憶部16へ記憶させておくとよい。第2位置は、制御部11が情報処理装置20から入力部15で受信したオフライン制御指令値に基づいて、実際にオンラインでアーム150を制御したときのピッキング機構151の位置である。第2位置は、センサ群14によって検出されたセンサ値として得るとよい。第2位置は、ロボット25aのピッキング機構251に対応する、ロボット10のピッキング機構151の位置であり、例えば図3の把持部152,153の中点H1で示される座標である。但し、中点H1は、中点H2からズレることがある。しかし、本実施の形態では後述の深層強化機械学習によりこのズレを低減できる。
【0029】
オフライン制御指令値に基づく制御の例、並びに第2位置の検出例について説明する。
物体認識処理部111は、センサ14aでのワークWの認識についての処理を行う。把持点探索部112は、認識されたワークWの位置と現在のピッキング機構151の位置とに基づき、ワークWにおける把持位置である把持点を探索し、探索した把持点及び現在のピッキング機構151の位置を経路生成部113に渡す。経路生成部113は、把持点探索部112と情報のやり取りを行いながら最適な把持点及び移動経路を決定し、情報処理装置20から受信して記憶部16に記憶されたオフライン制御指令値の中から、把持点及び現在のピッキング機構151の位置に対応するオフライン制御指令値を検索する。経路生成部113は、この検索した結果のオフライン制御指令値に基づきアーム150の駆動部13を制御するよう駆動制御部12に指示を送る。第2位置は、この指示に従い駆動部13が駆動した後の、ピッキング機構151の位置としてセンサ群14により検知される。また、対象となる他のワークWの位置、つまり対象となる他の目標位置についても同様に、現在のピッキング機構151の位置に基づき選択されたオフライン制御指令値で駆動部13の制御が実行され、第2位置がセンサ群14により検知される。制御部11は、このようにして複数の目標位置についての第2位置をセンサ群14から取得する。
【0030】
次いで、制御部11は、上述のようにして取得されたオフライン制御指令値とズレ情報と後述の特性情報と含むデータを、入力データとして学習モデル17へ入力する。制御部11は、このような入力データから、第1位置と第2位置とのズレ量が最小になるように学習モデル17で深層強化機械学習を実行する。
【0031】
制御部11は、この深層強化機械学習により、アーム150を実際にオンラインで制御する制御指令値を生成する。ここで生成された制御指令値を学習制御指令値と称す。学習モデル17は、DQN(Deep Q-Network)で強化学習を行うモデルとすることができるが、深層強化学習モデルであれば、そのアルゴリズムや階層数などは問わない。学習制御指令値は、各関節機構を駆動するための複数の駆動部13を駆動する制御指令値を含むとよい。制御部11は、学習モデル17を用いてこのような学習制御指令値を生成する生成部を備えると言える。学習制御指令値についても、オフライン制御指令値と同様の考え方で複数の目標位置に対して生成されるとよい。つまり、制御部11は、例えば設置位置の異なる複数のワークWのそれぞれに対する複数の学習制御指令値を生成しておくとよい。
【0032】
入力データの一部として学習モデル17に入力される特性情報は、アーム150の動作特性を示す情報である。特性情報は、例えば、回動軸などに駆動部13として設けられるモータのモータ特性、関節機構又は駆動部13に含まれるギヤのバックラッシ、アーム150の剛性などを示す情報とすることができる。なお、ロボット10にモータ以外のアクチュエータが備えられる場合には、モータ特性の代わりにアクチュエータ特性を示す情報を特性情報として入力するとよい。アーム150の剛性は、例えば、アーム150全体の剛性としてもよいし、アーム150を構成する各アーム部材の剛性としてもよい。
【0033】
また、特性情報は、少なくともその一部が現在の動作特性を示す情報とするとよい。具体的には、特性情報の少なくとも一部の情報は、アーム150に備えられた動作特性を検出する1又は複数のセンサで、実際にオンラインでアーム150を制御したときに検出されたセンサ値とするとよい。上記1又は複数のセンサはセンサ群14に含まれる。このように、センサ群14により特性情報を検出した結果であるセンサ値を入力データに含むことで、ロボット10の経年変化等も考慮して現在のアーム150の特性までを反映した学習制御指令値を生成することができる。
【0034】
また、入力データは、アーム150に備えられた動作状態を検出する1又は複数のセンサで、実際にオンラインでアーム150を制御したときに検出されたセンサ値を含むようにしてもよい。上記1又は複数のセンサはセンサ群14に含まれる。センサ群14は、例えば動作状態として、関節機構における角度、速度、加速度、及びトルクを示す情報を検出する。このように、センサ群14により動作状態を検出した結果であるセンサ値を入力データに含むことで、動作状態までを反映した学習制御指令値を生成することができる。
【0035】
また、制御部11は、第1位置と第3位置とのズレ量を示す情報である更新ズレ情報を取得する。第3位置は、学習制御指令値に基づいて実際にオンラインでアーム150を制御したときのピッキング機構151の位置である。制御部11は、学習モデル17に入力するために、このような更新ズレ情報を取得する取得部を備えると言える。また、更新ズレ情報は、第1位置と第3位置とのズレの距離又は距離及び方向を示すズレ量を算出した結果を示す情報として取得するとよいが、第1情報は既に学習モデル17へ入力済みであるため、更新ズレ情報は第3位置を示す情報として取得してもよい。
【0036】
第3位置の検出処理も、基本的には第2位置の検出処理と同様の手順でなされる。但し、第3位置は、オフライン制御指令値の代わりに学習制御指令値に基づいて駆動部13の制御がなされた後、センサ群14によりピッキング機構151の位置として検出される。
【0037】
さらに、制御部11は、更新ズレ情報を入力データの一部として更に入力し、第1位置と第3位置とのズレ量が最小になるように深層強化機械学習を実行することで、学習制御指令値を更新する。この再学習には、入力データの一部として学習時に得た学習制御指令値も入力してもよい。制御部11は、学習モデル17を用いてこのような学習制御指令値の更新値を生成する生成部を備えると言える。
【0038】
次に、図4を用いて、本実施の形態に係るロボット制御方法について説明する。図4図1に示す本システムにおける処理例を説明するためのフロー図である。このロボット制御方法は、例えば次のような第1生成ステップ、第1取得ステップ、第2生成ステップ、第2取得ステップ、及び更新ステップを備える。第1生成ステップは情報処理装置20が実行するステップであり、その他のステップはロボット10が実行するステップである。
【0039】
第1生成ステップは、ロボット25aのアーム250を制御するオフライン制御指令値をシミュレーションによるオフラインティーチングによって生成するステップである。具体的には、情報処理装置20の制御部21が、アーム250を備えたロボット25aに対してシミュレーションによるオフラインティーチングを実施する(ステップS1)。制御部21は、このティーチングにより、アーム250の駆動部を制御する角度、速度、加速度、トルクを示すオフライン制御指令値を生成し、ロボット10に送信し、ロボット10が、そのオフライン制御指令値を取得する(ステップS2)。例えば、ロボット10は、アーム250のある駆動部について、オフライン制御指令値Iaを学習モデル17への入力用に取得し、他の駆動部についても同様にオフライン制御指令値を取得する。
【0040】
第1取得ステップは、第1位置と第2位置とのズレ量を示すズレ情報を取得する。具体的には、制御部11は、そのオフライン制御指令値で実機である自身を動作させたときのオフラインで動作したときとのズレ量を示すズレ情報を取得する(ステップS3)。例えば、制御部11は、アーム250のある駆動部について、第1位置Ibを学習モデル17への入力用に取得し、他の駆動部についても同様に第1位置を取得する。さらに制御部11は、アーム250のある駆動部に対応する駆動部13について、オフライン制御指令値で駆動部13を制御したときの第2位置を、センサ群14により取得し、他の駆動部13についても同様に第2位置を取得する。
【0041】
また、ステップS3において、制御部11は、センサ群14により、オフライン制御指令値で駆動部13を制御したときの、各関節機構に対応する各駆動部13の角度、速度、加速度、トルクを検出し、それらの検出結果である関節情報を取得する。
【0042】
第2生成ステップは、オフライン制御指令値とズレ情報と特性情報と含むデータを入力データとして、第1位置と第2位置とのズレ量が最小になるように深層強化機械学習を実行する。この学習により、アーム150を実際にオンラインで制御する学習制御指令値が生成される。具体的には、制御部11は、センサ群14により各回動軸のモータのモータ特性、ギヤのバックラッシ、アーム150の各アーム部材の剛性を示す特性情報を取得する(ステップS4)。特性情報と関節情報とは同時に取得してもよい。次いで、制御部11は、取得した全てのデータを深層強化学習モデルである学習モデル17へ入力し、機械学習を実行する(ステップS5)。この機械学習により、ズレ量とその原因が学習され、ズレ量が最小となる学習制御指令値が生成される。
【0043】
第2取得ステップは、第1位置と第3位置とのズレ量を示す更新ズレ情報を取得する。具体的には、制御部11は、ステップS5で生成された学習制御指令値に基づきアーム150を含むロボット10を制御し(ステップS6)、その制御でロボット10が動作したときについて、オフラインとのズレ量を示す更新ズレ情報と各関節情報とを取得する(ステップS7)。例えば、制御部11は、更新ズレ情報として第3位置Idを学習モデル17への入力用に取得する。なお、制御部11は、さらに、アーム150のある駆動部13について、学習制御指令値Icを学習モデル17への入力用に記憶部16に保持し、他の駆動部13についても同様に学習制御指令値を保持しておいてもよい。各関節情報は、ステップS3と同様に取得される。
【0044】
更新ステップは、更新ズレ情報を入力データの一部として入力し、第1位置と第3位置とのズレ量が最小になるように深層強化機械学習を実行することで、学習制御指令値を更新する。具体的には、制御部11は、ステップS7で取得した更新ズレ情報や各関節情報を含む全てのデータを学習モデル17へ入力し再学習を実行する(ステップS8)。再学習の対象となる全てのデータとは、既にステップS5で入力されたデータも含めてもよい。この機械学習により、ズレ量とその原因が再度学習され、更新ズレ量が最小となる、更新された学習制御指令値Oaが生成される。そして、制御部11は、対象となるワークWについての最適な把持点及び現在のピッキング機構151の位置に対応するステップS8で生成された更新後の学習制御指令値Oaをオンライン制御指令値として使用して、アーム150を含むロボット10を制御して動作させ(ステップS9)、処理を終了する。
【0045】
以上、本実施の形態によれば、ロボット10において、オフラインティーチでの結果と実機での結果のズレを抑制すること、即ちアーム150を精確に制御することができ、これにより、ロボット10の設置位置での人による調整作業を減らすことができる。さらに、本実施の形態によれば、駆動部13の駆動制御が、更新後の学習制御指令値を用いたデータに基づく駆動制御であるため、ルールベースの駆動制御のようにズレ量に対する動的な補正制御を行う必要がないため、ロボット10の制御負荷を低減させることができる。
【0046】
また、上述のようなロボット制御方法でロボット10を制御し、ワークWをピッキングするピッキング方法を採用することで、即ち上述のようなロボット10でワークWをピッキングすることで、経年劣化等が存在した場合でも精確にワークWをピッキングできる。
【0047】
比較例として、オフラインティーチングを利用せずに、オンラインティーチングのみで対応することも想定される。しかし、この比較例では、実際にロボット10のような実機が完成し、且つ対象となるワークW、各ワークWとの配置関係を含めその実機の使用環境が整ってからしか、ティーチングできない。よって、この比較例では、使用環境が変わる度にオンラインでのティーチ作業が必要であり、リードタイムが長くなり、工数もかかるため、コストが嵩む。また、比較例の技術では、経年劣化などロボットのハードウェアの状態が変わる度に、例えば各軸のモータ特性や、ギヤのバックラッシ、アーム剛性などの特性情報が変わる度に、オンラインでのティーチ作業が必要である。これに対し、本実施の形態では、これらの比較例のような問題を解消することができる。
【0048】
なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、各回動軸のアクチュエータやギヤのバックラッシによる影響が少なく、アーム150を構成する各アーム部材の剛性が主なズレの原因である場合には、次のような処理を行うとよい。つまり、学習モデル17に入力される特性情報は、例えば、アーム150の剛性を示す情報を含み、モータ特性やギヤのバックラッシを示す情報を含めなくてもよい。この場合、機械学習により、ズレ量の原因として、各アーム部材の剛性が学習されることになり、ズレ量が最小になるように、各アーム部材の剛性を考慮した更新学習制御指令値が生成されることになる。一方で、アーム150を構成する各アーム部材が高剛性であるものの、モータやギヤが廉価でモータ特性やギヤのバックラッシのバラつきが大きい場合には、次のような処理を行うとよい。つまり、学習モデル17に入力される特性情報は、例えば、モータ特性やギヤのバックラッシを示す情報を含み、アーム150の剛性を示す情報を含めなくてもよい。この場合、機械学習により、ズレ量の原因として、モータ特性とギヤのバックラッシが学習されることになり、ズレ量が最小になるように、モータ属性及びギヤのバックラッシを考慮した更新学習制御指令値が生成されることになる。
【0049】
また、再学習は、一度きりに限らない。図5及び図6はいずれも、図1に示す本システム1における他の処理例を説明するためのフロー図である。図5に示すように、制御部11は、ステップS9の処理後、所定期間又は所定回数、アーム150を動作させたか否かを判定し(ステップS10)、YESとなった段階でステップS4へ戻り、現在の特性情報等に基づく再学習を行う。これにより、所定期間又は所定回数動作がなされる度に、学習制御指令値を更新できる。また、図6に示すように、制御部11は、ステップS9の処理後、ピッキングミスが発生したか否かを判定し(ステップS11)、YESとなった段階でステップS4へ戻り、現在の特性情報等に基づく再学習を行う。これにより、ピッキングミスが発生した段階で、学習制御指令値を更新できる。ピッキングミスの発生は、カメラ等のセンサにより、ワークWをピッキングできなかったことを検出すること、あるいはピッキング目的外のワークWにピッキング機構151が接触してしまったことを検出することができる。また、ステップS10,S11の双方の判定を組み込み、いずれかの事象が発生した段階でステップS4へ戻るようにしてもよい。
【符号の説明】
【0050】
1 ロボット制御システム、10 ピッキングロボット、11、21 制御部、12 駆動制御部、13 駆動部、14 センサ群、15、22 入力部、16、24 記憶部、17 学習モデル、23 出力部、25 シミュレーションプログラム
図1
図2
図3
図4
図5
図6