(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-25
(45)【発行日】2024-05-08
(54)【発明の名称】ロボットシステム、制御装置、及び制御方法
(51)【国際特許分類】
B25J 9/22 20060101AFI20240426BHJP
G05B 19/4093 20060101ALI20240426BHJP
G05B 19/4069 20060101ALI20240426BHJP
G05B 19/19 20060101ALI20240426BHJP
G05B 19/4155 20060101ALI20240426BHJP
【FI】
B25J9/22 A
G05B19/4093 H
G05B19/4069
G05B19/19 F
G05B19/19 H
G05B19/4155 V
(21)【出願番号】P 2020099821
(22)【出願日】2020-06-09
【審査請求日】2023-03-16
(73)【特許権者】
【識別番号】522318900
【氏名又は名称】株式会社日立オートメーション
(74)【代理人】
【識別番号】110000198
【氏名又は名称】弁理士法人湘洋特許事務所
(72)【発明者】
【氏名】前田 真彰
(72)【発明者】
【氏名】桜井 祐市
(72)【発明者】
【氏名】林 直宏
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2018-126796(JP,A)
【文献】特開2009-045678(JP,A)
【文献】特開2017-177283(JP,A)
【文献】特表2012-528016(JP,A)
【文献】特開2017-144498(JP,A)
【文献】特開2019-171501(JP,A)
【文献】米国特許出願公開第2015/0239127(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10-19/06
G05B 13/02-19/4155
(57)【特許請求の範囲】
【請求項1】
ワークの組付け作業を実行するロボットと、前記ロボットを制御する制御装置と、を備えるロボットシステムであって、
前記制御装置は、
前記ロボットによる動作の
、コンフィギレーション空間における前記ワークを把持した状態を表す始点から
前記ワークを組み付けた状態を表す終点に至る軌道を決定して軌道情報を生成する動作計画部と、
前記軌道情報に基づいて前記ロボットのハンド部が実際に前記ワークを把持した際の前記ハンド部の把持位置、姿勢、及び把持力のうちの少なくとも一つについて、計画時との
前記始点における誤差を推定する把持調整部と、
推定された前記誤差を解消する方向に前記ハンド部の把持位置、姿勢、及び把持力のうちの少なくとも一つを調整し
、前記調整によって変更された始点から前記終点に至る新た
な軌道を生成するシミュレーション実行部と、
前記シミュレーション実行部により
前記新たな軌道が生成されたか否かに基づいて、前記組付け作業の可否を判断する再把持判断部と、を有する
ことを特徴とするロボットシステム。
【請求項2】
請求項1に記載のロボットシステムであって、
前記シミュレーション実行部は、
前記調整によって変更された前記始点から、
前記調整に起因して前記計画時とは異なる干渉領域を通過することなく前記終点に至る前記新たな軌道を生成する
ことを特徴とするロボットシステム。
【請求項3】
請求項1に記載のロボットシステムであって、
前記ロボットは、触覚センサ及び視覚センサの少なくとも一方を有し、
前記把持調整部は、前記触覚センサ及び前記視覚センサの少なくとも一方が出力したセンサデータに基づき、前記ハンド部の前記誤差を推定する
ことを特徴とするロボットシステム。
【請求項4】
請求項3に記載のロボットシステムであって、
前記把持調整部は、前記センサデータの特徴量を入力として前記誤差を出力する学習モデルを用いることにより前記誤差を推定する
ことを特徴とするロボットシステム。
【請求項5】
請求項1に記載のロボットシステムであって、
前記制御装置は、
前記再把持判断部による前記組付け作業の可否の判断結果を表示部に表示させる表示制御部、を有する
ことを特徴とするロボットシステム。
【請求項6】
請求項1に記載のロボットシステムであって、
前記制御装置は、
推定された前記誤差が所定の閾値以下であるか否かを判定する閾値判定部、を有し、
前記シミュレーション実行部及び前記再把持判断部は、前記閾値判定部により前記誤差が所定の閾値以下ではないと判定された場合、それぞれの処理を繰り返し実行する
ことを特徴とするロボットシステム。
【請求項7】
請求項1に記載のロボットシステムであって、
前記制御装置は、
前記再把持判断部により、前記シミュレーション実行部で軌道が生成されなかったことにより前記組付け作業が不可能と判断された場合、前記シミュレーション実行部による軌道生成の妨げとなった干渉物を特定する干渉物特定部と、
特定された前記干渉物に関する情報を表示部に表示させる表示制御部と、
を有する
ことを特徴とするロボットシステム。
【請求項8】
ワークの組付け作業を実行するロボットを制御する制御装置であって、
前記ロボットによる動作の
、コンフィギレーション空間における前記ワークを把持した状態を表す始点から
前記ワークを組み付けた状態を表す終点に至る軌道を決定して軌道情報を生成する動作計画部と、
前記軌道情報に基づいて前記ロボットのハンド部が実際に前記ワークを把持した際の前記ハンド部の把持位置、姿勢、及び把持力のうちの少なくとも一つについて、計画時との
前記始点における誤差を推定する把持調整部と、
推定された前記誤差を解消する方向に前記ハンド部の把持位置、姿勢、及び把持力のうちの少なくとも一つを調整し
、前記調整によって変更された始点から前記終点に至る新た
な軌道を生成するシミュレーション実行部と、
前記シミュレーション実行部により
前記新たな軌道が生成されたか否かに基づいて、前記組付け作業の可否を判断する再把持判断部と、
を備えることを特徴とする制御装置。
【請求項9】
ワークの組付け作業を実行するロボットを制御する制御装置による制御方法であって、
前記ロボットによる動作の
、コンフィギレーション空間における前記ワークを把持した状態を表す始点から
前記ワークを組み付けた状態を表す終点に至る軌道を決定して軌道情報を生成し、
前記軌道情報に基づいて前記ロボットのハンド部が実際に前記ワークを把持した際前記ハンド部の把持位置、姿勢、及び把持力のうちの少なくとも一つについて、計画時との
前記始点における誤差を推定し、
推定された前記誤差を解消する方向に前記ハンド部の把持位置、姿勢、及び把持力のうちの少なくとも一つを調整し
、前記調整によって変更された始点から前記終点に至る新た
な軌道を生成し、
前記新たな軌道が生成されたか否かに基づいて、前記組付け作業の可否を判断する
ステップを含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステム、制御装置、及び制御方法に関する。
【背景技術】
【0002】
ロボットシステムによる計画時の軌道に対する実動時の軌道のずれを補正する技術として、例えば特許文献1には、「ロボットの把持部に把持させた第1のワークを載置面上に配置された第2のワークに組み付ける物品の製造方法において、前記把持部の目標軌道に対する実軌道のずれを測定する第1の工程と、前記第1の工程で測定したずれと、前記第2のワークの形状に基づき、前記ロボットに対する前記第2のワークの位置及び姿勢を決める第2の工程と、前記第2の工程にて決めた位置及び姿勢に前記第2のワークを移動させて、組み付け動作を前記ロボットに行わせる第3の工程と、を備える」製造方法が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の技術によれば、ハンドの目標時の軌道と実動時の軌道のずれを測定し、ハンドのずれと第2のワークの形状に基づいて第2のワークの位置及び姿勢を決定し、決定した位置及び姿勢に第2のワークを移動させることで組付けを行うことができるとされている。
【0005】
しかしながら、実際には、ハンドが第1のワークを把持する際にも目標時の軌道と実動時の軌道のずれ、シミュレーションモデルと実機のずれに起因する把持位置のずれや姿勢のずれが発生しており、特許文献1に記載の技術のように、第2のワークの位置及び姿勢を移動するだけでは計画されていた組付け作業を実施できないことがある。
【0006】
本発明は、上記の点に鑑みてなされたものであって、ワークを実際に把持した際に生じた把持位置のずれや姿勢のずれに起因する組付け作業の失敗を抑止できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下の通りである。
【0008】
上記課題を解決するため、本発明の一態様に係るロボットシステムは、ワークの組付け作業を実行するロボットと、前記ロボットを制御する制御装置と、を備えるロボットシステムであって、前記制御装置は、前記ロボットによる動作の始点から終点に至る軌道を決定して軌道情報を生成する動作計画部と、前記軌道情報に基づいて前記ロボットが実際に前記ワークを把持した際の前記ロボットの把持位置、姿勢、及び把持力のうちの少なくとも一つについて、計画時との誤差を推定する把持調整部と、推定された前記誤差を解消する方向に前記ロボットの把持位置、姿勢、及び把持力のうちの少なくとも一つを調整した上で前記組付け作業の動作シミュレーションを実行することにより新たに軌道を生成するシミュレーション実行部と、前記シミュレーション実行部により軌道が生成されたか否かに基づいて、前記組付け作業の可否を判断する再把持判断部と、を有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、ワークを実際に把持した際に生じた把持位置のずれや姿勢のずれに起因する組付け作業の失敗を抑止することが可能となる。
【0010】
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本発明の第1の実施形態に係るロボットシステムの構成例を示す図である。
【
図2】
図2は、動作計画部による処理の一例を説明するための図である。
【
図3】
図3は、把持調整部の構成例を示す図である。
【
図4】
図4(A),(B)は、シミュレーション実行部及び再把持判断部による処理の一例を説明するための図であり、
図4(A)は干渉領域が小さいため軌道を生成できる場合、
図4(B)は干渉領域が大きいため軌道を生成できない場合を示す図である。
【
図5】
図5は、
図1のロボットシステムによる制御処理の一例を説明するフローチャートである。
【
図6】
図6は、本発明の第2の実施形態に係るロボットシステムの構成例を示す図である。
【
図7】
図7は、
図6のロボットシステムによる制御処理の一例を説明するフローチャートである。
【
図8】
図8は、本発明の第3の実施形態に係るロボットシステムの構成例を示す図である。
【
図9】
図9は、
図8のロボットシステムによる制御処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明の複数の実施形態について図面に基づいて説明する。なお、各実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでないことは言うまでもない。同様に、以下の実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合及び原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。
【0013】
<本発明の第1の実施形態に係るロボットシステム11の構成例>
図1は、本発明の第1の実施形態に係るロボットシステム11の構成例を示している。
【0014】
ロボットシステム11は、制御装置20、コントローラ30、及びロボット40を備える。
【0015】
制御装置20は、コントローラ30を介してロボット40の動作を制御する。制御装置20は、CPU(Central Processing Unit)等のプロセッサ、SDRAM(Static Random Access Memory)等のメモリ、HDD(Hard Disc Drive)やSSD(Solid State Drive)等のストレージ、通信モジュール、入力装置、表示装置を備えるパーソナルコンピュータ等の一般的なコンピュータから成る。
【0016】
制御装置20は、演算部21、記憶部22、表示部23、入力部24、及び通信部25を備える。
【0017】
演算部21は、コンピュータのプロセッサにより実現される。演算部21は、動作計画部211、把持調整部212、シミュレーション実行部213、再把持判断部214、及び表示制御部218の各機能ブロックを有する。これらの機能ブロックは、コンピュータのプロセッサが所定のプログラムを実行することにより実現される。
【0018】
動作計画部211は、記憶部22に格納されているロボット構成情報221、軌道始点・終点情報222、干渉物構成情報223、及び把持対象物情報224(いずれも後述)に基づき、ロボット40がワークを把持し、組付け作業を行う際の軌道を決定し、軌道情報225として記憶部22に格納する。
【0019】
図2は、動作計画部211による処理の一例を説明するための図であり、ロボット40の各関節角を空間軸とした座標空間(以下、コンフィギュレーション空間と称する)を示している。ただし、同図のコンフィギュレーション空間は、ロボット40の自由度が2である場合を示している。
【0020】
動作計画部211は、ロボット構成情報221、干渉物構成情報223、及び把持対象物情報224に基づく動作シミュレーション等により、ロボット40の動作に干渉し得る周辺構造物が存在する干渉領域の位置を計算する。動作計画部211は、ロボット40によりワークを把持した状態を表す始点Sから、1点以上の経由点(不図示)を経由して、ワークを組み付けた状態を表す終点Gに至る複数の軌道候補を生成し、軌道候補のうち、干渉領域を通らない軌道Pを選択する。軌道候補の生成方法及び軌道Pの選択方法は公知のアルゴリズムが多数存在するので、それらを用いればよい。動作計画部211が生成する軌道情報には、動作の始点S、1点以上の経由点、及び終点Gの位置とそれぞれにおけるロボット40の姿勢とを表す情報が含まれる。
【0021】
図1に戻る。把持調整部212は、ロボット40のハンド部42によるワークに対する把持動作を調整する。
【0022】
図3は、把持調整部212の詳細な構成例を示している。把持調整部212は、特徴量抽出部51、誤差推定部52、及び把持力調整部53を有する。
【0023】
特徴量抽出部51は、ハンド部42によるワークに対する把持動作の際、触覚センサ43及び視覚センサ44によって検出された結果を表すセンサデータを取得してその特徴量を抽出する。誤差推定部52は、抽出された特徴量を学習済モデル226に入力することにより、ハンド部42によるワークの把持位置、把持姿勢、及び把持力のうちの少なくとも一つについて、計画時とワークを実際に把持した際との誤差を推定する。
【0024】
ここで、把持位置は、例えばハンド部42がワークを把持する際の直交座標上の位置ベクトルによって表わされる。把持姿勢は、ワークを把持する際のハンド部42の直交座標軸まわり回転(ロール、ピッチ、ヨー)で表わされる。把持力は、ハンド部42の開閉の大きさを制御する関節の回転角等によって表わされる。
【0025】
把持力調整部53は、ロボット40のハンド部42によるワークに対する把持動作の把持力を調整する。
【0026】
図1に戻る。シミュレーション実行部213は、誤差推定部52によって推定された誤差を解消する方向にハンド部42の現在の位置、姿勢、及び把持力のうちの少なくとも一つを調整する。具体的には、ハンド部42によるワークの把持位置を移動したり、姿勢や把持力を変更したりする。なお、誤差を解消するためのハンド部42の調整は、実際にハンド部42を動作させてもよいし、ハンド部42を動作させることなくシミュレーションとして行ってもよい。さらに、シミュレーション実行部213は、ハンド部42を調整したことを前提として動作計画部211と同様のシミュレーションを実行して、組付け作業の始点から終点に至る軌道を探索する。
【0027】
再把持判断部214は、シミュレーション実行部213によるシミュレーション結果に基づき、ハンド部42の位置、姿勢、及び把持力のうちの少なくとも一つを調整した後の再把持により組付け作業が可能か否かを判断する。再把持により組付け作業が可能と判断した場合、再把持判断部214は、誤差を解消する方向にハンド部42を調整するための制御目標値を生成する。この制御目標値は、通信部25によってコントローラ30に送信される。
【0028】
図4は、シミュレーション実行部213及び再把持判断部214による処理の一例を説明するための図であり、ロボット40のコンフィグレーション空間を示している。同図(A)は、再把持によって組付けが可能と判断された場合の、誤差を解消する方向にハンド部42を調整した後のコンフィギュレーション空間における軌道を示している。ここで、始点Sは、調整後のロボット40の各関節角の組合せを表している。終点Gは、動作計画部211による計画時と同じ位置である。
【0029】
なお、調整後の始点Sは、動作計画部211による計画時(
図2)の始点Sと異なるため、干渉領域も計画時(
図2)と異なっている。同図(A)は、調整量が比較的小さいために干渉領域の変化が小さく、干渉領域を通過せずに始点Sから終点Gに至る軌道Pを生成できた場合を示している。一方、同図(B)は、調整量が比較的大きいために干渉領域の変化が大きく、干渉領域を通過せずに始点Sから終点Gに至る軌道を生成できない場合を示している。
【0030】
図1に戻る。表示制御部218は、表示部23における各種の表示を制御する。
【0031】
記憶部22は、コンピュータのメモリ及びストレージにより実現される。記憶部22には、ロボット構成情報221、軌道始点・終点情報222、干渉物構成情報223、把持対象物情報224、軌道情報225、及び学習済モデル226を格納する。
【0032】
ロボット構成情報221は、ロボット40を構成するアーム部41及びハンド部42の形状や接続状態等を含む情報である。具体的には、ロボット40の3D・CAD(Computer Aided Design)データやURDF(Unified Robot Description Format)データ等である。ロボット構成情報221は、予め記憶部22に格納されている。
【0033】
軌道始点・終点情報222は、ロボット40の動作の始点、経由点、及び終点それぞれの座標と姿勢とを表す情報である。軌道始点・終点情報222は、例えば、予めユーザから入力されて記憶部22に格納されている。
【0034】
干渉物構成情報223は、ロボット40の動作に干渉し得るロボット40の周辺に存在する構造物の情報である。具体的には、例えば組付けに用いる治具やロボット40の周辺の屋台の3D・CADデータ等である。干渉物構成情報223は、予め記憶部22に格納されている。
【0035】
把持対象物情報224は、把持対象となるワークの形状を表す情報である。具体的には、ワークの3D・CADデータ等である。把持対象物情報224は、予め記憶部22に格納されている。
【0036】
軌道情報225は、ロボット40の各関節角の組合せの時系列変化を表す情報である。軌道情報225は、動作計画部211により生成されて記憶部22に格納される。
【0037】
学習済モデル226は、例えばニューラルネットワーク等の機械学習モデルである。学習済モデル226には、あるワークに対する過去の把持動作において、触覚センサ43及び視覚センサ44によるセンサデータの特徴量と、ハンド部42がワークを把持した際の把持位置、姿勢、及び把持力の計画時と実動時の誤差との関係が学習されている。学習済モデル226は、センサデータの特徴量を入力として、把持位置、姿勢、及び把持力の計画時と実動時の誤差を出力する。学習済モデル226は、予め記憶部22に格納されている。
【0038】
表示部23は、コンピュータの表示装置により実現される。表示部23は、例えば、ユーザが各種の入力を行ったり、ロボット40の動作状況を示したり、ロボット40が計画通りに組付け作業を実行できないことを通知したりするGUI(Graphical User Interface)等の画面を表示する。
【0039】
入力部24は、コンピュータの入力装置により実現される。入力部24は、ユーザからの各種の入力操作を受け付ける。
【0040】
通信部25は、コンピュータの通信モジュールにより実現される。通信部25は、インターネットや携帯電話通信網等のネットワーク(不図示)を介してコントローラ30と接続し、各種のデータを通信する。
【0041】
コントローラ30は、制御装置20から入力される制御に従い、ロボット40を構成するアーム部41及びハンド部42を動作させることにより組付け作業を実行させる。
【0042】
ロボット40は、アーム部41、ハンド部42、触覚センサ43、及び視覚センサ44を有する。ロボット40は、コントローラ30からの制御に従ってアーム部41及びハンド部42を動作させる。
【0043】
アーム部41は、ハンド部42を支える構造体であり、ロボット40の可動部位である。ハンド部42は、例えばグリッパ等のエンドエフェクタである。触覚センサ43は、ハンド部42に設置されている。触覚センサ43は、ハンド部42の把持面とワークの接触面の形状や応力等を検出する。視覚センサ44は、ロボット40のいずれかの箇所に設置されている。視覚センサ44は、例えば、カメラ等からなり、ロボット40の周囲に存在するワークや干渉物等を検出する。なお、視覚センサ44は、ロボット40の周囲に存在するワークや干渉物等を検出できれば、ロボット40以外の場所(例えば、天井等)に設置するようにしてもよい。
【0044】
次に、
図5は、ロボットシステム11によるロボット制御処理の一例を説明するフローチャートである。
【0045】
該ロボット制御処理は、例えばユーザからの所定の操作に応じて開始される。始めに、動作計画部211が、記憶部22に格納されているロボット構成情報221、軌道始点・終点情報222、干渉物構成情報223、及び把持対象物情報224に基づき、ロボット40がワークを把持し、組付け作業を行う際の軌道を決定し、軌道情報225を生成して記憶部22に格納する(ステップS1)。
【0046】
次に、把持調整部212が、軌道情報225を参照し、実際にワークを把持する動作をロボット40に実行させる(ステップS2)。具体的には、通信部25を介してコントローラ30を制御し、ロボット40に把持動作を実行させる。
【0047】
次に、把持調整部212の特徴量抽出部51が、ロボット40が把持動作を実行している際に触覚センサ43及び視覚センサ44によって検出されたセンサデータをコントローラ30から取得し、特徴量を抽出する(ステップS3)。
【0048】
次に、誤差推定部52が、抽出された特徴量を学習済モデル226に入力することにより、ハンド部42によるワークの把持位置、把持姿勢、及び把持力について、計画時と実動時との誤差を推定する(ステップS4)。
【0049】
次に、シミュレーション実行部213が、推定された誤差を解消する方向にハンド部42を調整すること前提とした動作計画部211と同様のシミュレーションを実行して、変更された始点から干渉領域を通過することなく終点に至る軌道を探索する(ステップS5)。
【0050】
次に、再把持判断部214が、シミュレーション実行部213によるシミュレーション結果により軌道が探索されたか否かに基づいて、組付け作業が可能か否かを判断する(ステップS6)。ここで、軌道が探索されたことにより組付け作業が可能と判断した場合(ステップS6でYES)、再把持判断部214が、誤差を解消する方向にハンド部42を調整するための制御目標値を生成し、通信部25を介してコントローラ30に送信することにより、ロボット40に再びワークの把持動作を実行させる(ステップS7)。
【0051】
次に、把持調整部212が、通信部25を介してコントローラ30を制御し、ステップS5で探索され、ステップS6で組付け作業が可能と判断された軌道に沿ってロボット40を動作させる(ステップS8)。以上で、ロボット制御処理は終了される。
【0052】
反対に、再把持判断部214が、軌道が探索できなかったことにより組付け作業が不可能と判断した場合(ステップS6でNO)、表示制御部218が、組付け作業を実行できない旨を表すアラート画面を表示部23に表示させる(ステップS9)。以上で、ロボット制御処理は終了される。
【0053】
以上に説明したロボットシステム11によるロボット制御処理によれば、ワークを把持した際に把持位置のずれや姿勢のずれが発生しても、再把持により組付けが可能か否かをシミュレーションによって判断するので、組付け作業の成功率を向上させることが可能となる。
【0054】
<本発明の第2の実施形態に係るロボットシステム12の構成例>
次に、
図6は、本発明の第2の実施形態に係るロボットシステム11の構成例を示している。
【0055】
ロボットシステム12は、ロボットシステム11(
図1)の演算部21が有する機能ブロックとして、閾値判定部215を追加するとともに、記憶部22に格納された情報として誤差閾値情報227を追加したものである。ロボットシステム12の構成要素のうち、ロボットシステム11の構成要素と共通するものには同一の符号を付してその説明を省略する。
【0056】
閾値判定部215は、ワーク毎に設定されている把持位置、把持姿勢、及び把持力の許容誤差の閾値を表す誤差閾値情報227を参照し、誤差推定部52によって推定された誤差が閾値以下であるか否かを判定する。
【0057】
次に、
図7は、ロボットシステム12によるロボット制御処理の一例を説明するフローチャートである。
【0058】
該ロボット制御処理は、例えばユーザからの所定の操作に応じて開始される。なお、ステップS11~ステップS14の処理は、ロボットシステム11によるロボット制御処理(
図5)におけるステップS1~ステップS4の処理と同様であるため、その説明は省略する。
【0059】
ステップS14により誤差が推定された後、次に、閾値判定部215が、誤差閾値情報227を参照し、推定された誤差が閾値以下であるか否かを判定する(ステップS15)。ここで、推定された誤差が閾値以下ではないと判定された場合(ステップS15でNO)、シミュレーション実行部213が、推定された誤差を解消する方向にハンド部42を調整したことを前提として動作計画部211と同様のシミュレーションを実行し、変更された始点から干渉領域を通過することなく終点に至る軌道を探索する(ステップS16)。
【0060】
次に、再把持判断部214が、シミュレーション実行部213によるシミュレーション結果により軌道が探索できたか否かに基づき、組付け作業が可能であるか否かを判断する(ステップS17)。ここで、軌道が探索できたことにより組付け作業が可能であると判断した場合(ステップS17でYES)、再把持判断部214が、誤差を解消する方向にハンド部42を調整するための制御目標値を生成し、通信部25を介してコントローラ30に送信することにより、ロボット40に再びワークの把持動作を実行させる(ステップS18)。この後、処理はステップS13に戻されて、ステップS13以降が繰り返される。
【0061】
反対に、再把持判断部214が、軌道が探索できなかったことにより組付け作業が不可能と判断した場合(ステップS17でNO)、表示制御部218が、表示部23に、組付け作業を実行できない旨を表すアラート画面を表示させる(ステップS19)。以上で、ロボット制御処理は終了される。
【0062】
また、閾値判定部215が、推定された誤差が閾値以下であると判定した場合(ステップS15でYES)、これ以上の誤差調整は不要であるため、把持調整部212が、通信部25を介してコントローラ30を制御し、最新の軌道に沿ってロボット40を動作させる(ステップS20)。以上で、ロボット制御処理は終了される。
【0063】
以上に説明したロボットシステム12によるロボット制御処理によれば、軌道が探索できない場合を除き、推定された誤差が閾値以下となるまで再把持動作と軌道の探索を繰り返すので、第1の実施形態に比べて組付け作業の成功率をより向上させることが可能となる。
【0064】
<本発明の第3の実施形態に係るロボットシステム13の構成例>
次に、
図8は、本発明の第3の実施形態に係るロボットシステム13の構成例を示している。
【0065】
ロボットシステム13は、ロボットシステム11(
図1)の演算部21が有する機能ブロックとして、干渉物特定部216追加したものである。ロボットシステム13の構成要素のうち、ロボットシステム11の構成要素と共通するものには同一の符号を付してその説明を省略する。
【0066】
干渉物特定部216は、再把持後の軌道が探索できなかったために再把持判断部214によって組付け作業が不可能と判断された場合の、軌道が探索できない要因となった干渉物を特定し、その情報を表示制御部218に出力する。表示制御部218は、干渉物の位置や形状等を例えば文字列や画像等によって表示部23に表示させる。
【0067】
次に、
図9は、ロボットシステム13によるロボット制御処理の一例を説明するフローチャートである。
【0068】
該ロボット制御処理は、例えばユーザからの所定の操作に応じて開始される。なお、ステップS31~ステップS38の処理は、ロボットシステム11によるロボット制御処理(
図5)におけるステップS1~ステップS8の処理と同様であるため、その説明は省略する。
【0069】
ステップS36において、再把持判断部214により組付け作業が不可能と判断された場合(ステップS36でNO)、干渉物特定部216が、軌道が探索できない要因となった干渉物を特定し、その情報を表示制御部218に出力し、表示制御部218が、干渉物の位置や形状等を例えば文字列や画像等によって表示部23に表示させる(ステップS39)。
【0070】
次に、表示制御部218が、組付け作業を実行できない旨を表すアラート画面を表示部23に表示させる(ステップS40)。以上で、ロボット制御処理は終了される。
【0071】
以上に説明したロボットシステム13によるロボット制御処理によれば、ロボットシステム11によるロボット制御処理(
図5)と同様の作用、効果を得ることができる。さらに、ロボットシステム13によるロボット制御処理によれば、軌道の妨げとなっている干渉物をユーザが把握できるので、干渉物を移動させる等のユーザによる対処立案を容易にすることが可能となる。
【0072】
本発明は、上述した実施形態に限定されるものではなく、様々な変形が可能である。例えば、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えたり、追加したりすることが可能である。なお、干渉物特定部216をロボットシステム12(
図6)に追加するようにしてもよい。
【0073】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0074】
11~13・・・ロボットシステム、20・・・制御装置、21・・・演算部、211・・・動作計画部、212・・・把持調整部、213・・・シミュレーション実行部、214・・・再把持判断部、215・・・閾値判定部、216・・・干渉物特定部、218・・・表示制御部、22・・・記憶部、221・・・ロボット構成情報、222・・・軌道始点・終点情報、223・・・干渉物構成情報、224・・・把持対象物情報、225・・・軌道情報、226・・・学習済モデル、227・・・誤差閾値情報、23・・・表示部、24・・・入力部、25・・・通信部、30・・・コントローラ、40・・・ロボット、41・・・アーム部、42・・・ハンド部、43・・・触覚センサ、44・・・視覚センサ、51・・・特徴量抽出部、52・・・誤差推定部、53・・・把持力調整部