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

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

▶ ファナック株式会社の特許一覧

<>
  • 特許-ロボットシステム 図1
  • 特許-ロボットシステム 図2
  • 特許-ロボットシステム 図3
  • 特許-ロボットシステム 図4
  • 特許-ロボットシステム 図5
  • 特許-ロボットシステム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-20
(45)【発行日】2023-11-29
(54)【発明の名称】ロボットシステム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20231121BHJP
【FI】
B25J13/08 A
【請求項の数】 6
(21)【出願番号】P 2020068265
(22)【出願日】2020-04-06
(65)【公開番号】P2021164964
(43)【公開日】2021-10-14
【審査請求日】2023-02-07
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100118913
【弁理士】
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【弁理士】
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100163050
【弁理士】
【氏名又は名称】小栗 眞由美
(74)【代理人】
【識別番号】100201466
【弁理士】
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】藤岡 直幹
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2019-38040(JP,A)
【文献】特開2016-109630(JP,A)
【文献】特開2017-33429(JP,A)
【文献】特開2013-217893(JP,A)
【文献】特開2014-109466(JP,A)
【文献】特開2006-330988(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
ロボットと、
該ロボットのツール先端点の座標を算出するための情報を検出可能な複数種のセンサと、
プロセッサとを備え、
該プロセッサは、
動作プログラムによる前記ツール先端点の動作軌跡上の第1点および第2点の近傍に複数の点からなる点群を生成し、
該点群の各前記点が、前記第1点から前記第2点に向かう前記ツール先端点が到達可能な座標を有し、
各前記センサにより検出された前記情報に基づいて前記点群の各前記点に、存在し得る確からしさを示す重みを設定し、
前記点群をグループ分けして、前記確からしさが最も高いグループを抽出し、
抽出された前記グループの重心位置を該グループに属する前記点の座標および重みから算出し、
抽出された前記グループに属する前記点の内、算出された前記重心位置から最も遠い位置に配置されている前記点までの最大距離が所定の閾値以下である場合に、前記重心位置の座標を前記第2点の新たな座標として置き換えるロボットシステム。
【請求項2】
前記プロセッサは、
前記最大距離が前記閾値よりも大きい場合に、前記重心位置を中心とし前記最大距離を半径とする球の内部に点群を生成し、前記重みの設定からの工程を繰り返す請求項1に記載のロボットシステム。
【請求項3】
前記第2点の座標に対応付けて記憶する第1テーブルを記憶するメモリを備え、
前記第1テーブルが、前記第1点から前記第2点に向かう速度ベクトルに対応付けて前記点群の座標を記憶する複数の第2テーブルを記憶し、
前記プロセッサが、
前記メモリに記憶されている前記第1テーブルから前記第2点の座標に対応する前記第2テーブルを読み出し、読み出された該第2テーブルから前記速度ベクトルに対応する前記点群の座標を読み出すことにより、前記点群を生成する請求項1に記載のロボットシステム。
【請求項4】
前記プロセッサが、
各前記センサにより検出された前記ツール先端点の座標毎に、該座標からの各前記点までの距離に反比例する値を各前記点の重みとして設定する請求項1から請求項3のいずれかに記載のロボットシステム。
【請求項5】
前記プロセッサが、
各前記センサ毎に、前記重みを機械学習により求める請求項4に記載のロボットシステム。
【請求項6】
前記プロセッサが、
前記点群の内の1つの任意の前記点を選択し、
選択された前記点にグループ番号を与え、
該グループ番号を与えた各前記点からの距離が所定距離以下である前記点に同一のグループ番号を与えることを、同一のグループ番号を与える前記点がなくなるまで繰り返し、
前記グループ番号が与えられていない前記点が存在する場合には、前記グループ番号が与えられていない他の1つの任意の前記点を選択し、
与えるグループ番号を変更し、
選択された前記点にグループ番号を与える工程から繰り返すことにより、前記点群をグループ分けする請求項1から請求項5のいずれかに記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットシステムに関するものである。
【背景技術】
【0002】
オフラインによってロボットの教示を行った後、ロボットによる作業中にロボットに取り付けられたカメラにより画像を取得し、取得された画像に基づいてロボットの位置および姿勢を補正する技術が知られている(例えば、特許文献1参照。)。
オフラインにより理想的な環境下で教示されたロボットの位置は、実際の作業環境においては種々の要因により変動するので、画像データを用いて補正することにより、実際のワークに対してロボットを精度よく動作させることができる。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第4266946号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、例えば、ロボットの手先にカメラを取り付ける場合には、ワークに近い位置からの撮影となるため、ワークの部分的な領域の画像しか取得できない。このような状況において、画像データからワーク表面の特徴を抽出する場合には、撮影するワークの部位によっては、推定しようとするロボットの位置の誤差が大きくなり、適切な補正量が得られない場合がある。
【0005】
したがって、センサの検出結果に基づいて推定されるロボットの位置の誤差が変動しても、ロボットの位置を適切に補正することができるロボットシステムが望まれている。
【課題を解決するための手段】
【0006】
本開示の一態様は、ロボットと、該ロボットのツール先端点の座標を算出するための情報を検出可能な複数種のセンサと、プロセッサとを備え、該プロセッサは、動作プログラムによる前記ツール先端点の動作軌跡上の第1点および第2点の近傍に複数の点からなる点群を生成し、該点群の各前記点が、前記第1点から前記第2点に向かう前記ツール先端点が到達可能な座標を有し、各前記センサにより検出された前記情報に基づいて前記点群の各前記点に、存在し得る確からしさを示す重みを設定し、前記点群をグループ分けして、前記確からしさが最も高いグループを抽出し、抽出された前記グループの重心位置を該グループに属する前記点の座標および重みから算出し、抽出された前記グループに属する前記点の内、算出された前記重心位置から最も遠い位置に配置されている前記点までの最大距離が所定の閾値以下である場合に、前記重心位置の座標を前記第2点の新たな座標として置き換えるロボットシステムである。
【図面の簡単な説明】
【0007】
図1】本開示の一実施形態に係るロボットシステムを示す斜視図である。
図2図1のロボットシステムを示すブロック図である。
図3図1のロボットシステムによるツール先端点の補正処理を説明するフローチャートである。
図4図3の補正処理における点群生成ルーチンを説明するフローチャートである。
図5図3の補正処理における重み付与ルーチンを説明するフローチャートである。
図6図3の補正処理における点群絞り込みルーチンを説明するフローチャートである。
【発明を実施するための形態】
【0008】
本開示の一実施形態に係るロボットシステム1について、図面を参照して以下に説明する。
本実施形態に係るロボットシステム1は、図1に示されるように、6軸多関節型のロボット2と、ロボット2の手首に装着されたカメラ(センサ)3と、ロボット2を制御する制御装置(プロセッサ、メモリ)4とを備えている。
【0009】
ロボット2は、図示しないサーボモータによって駆動される6個の動作軸を有し、各動作軸の回転角度がサーボモータに設けられたエンコーダ(センサ)5によって検出される。
したがって、ロボット2のツール先端点TCPの位置は、エンコーダ5により検出される各動作軸の回転角度に基づいて算出することができるとともに、カメラ3によって取得された画像に基づいても算出することができる。
【0010】
画像に基づくツール先端点TCPの位置は、例えば、カメラ3によってワークを撮影し、取得された画像を処理して、公知の方法により特徴点を抽出することにより、ワークの位置に対するカメラ3の位置を算出し、算出されたカメラ3の位置から幾何学的に算出される。
【0011】
制御装置4は、オフライン作業により教示された動作プログラムを読み込んで、動作プログラムに従ってロボット2の各軸を動作させるとともに、所定の時間間隔、例えば、0.1秒毎にツール先端点TCPの位置を推定して記憶する。これにより、次回の動作プログラムの実行時には、各時点において推定された位置をツール先端点TCPが通過するよう動作軌跡が補正される。
【0012】
さらに具体的には、制御装置4は、メモリ内に、ロボット2のツール先端点TCPの座標に対応付けた第1テーブルを記憶している。第1テーブルには、ツール先端点TCPの動作軌跡上の速度ベクトルに点群を対応付けた第2テーブルが記憶されている。第1テーブルおよび第2テーブルは3次元テーブルである。
【0013】
点群は、ツール先端点TCPの動作軌跡上の第1点から所定時間後の第2点に向かう間において、ツール先端点TCPが到達し得る範囲にランダムに設定された複数の点を含んでいる。第2テーブルには各点の座標が記憶されている。
【0014】
したがって、図3に示されるように、動作プログラムが実行されると、実行中の各時点において、点群が生成される(ステップS1)。点群の生成においては、図4に示されるように、動作プログラムにおけるツール先端点TCPの動作軌跡上に配置される現時点(第2点)の座標と、所定時間前の第1点の座標とが算出される(ステップS11)。
【0015】
次いで、算出された第2点の座標に対応する第2テーブルが第1テーブル内から読み出される(ステップS12)。また、第1点から第2点に向かう速度ベクトルが算出され(ステップS13)、速度ベクトルに対応する点群が、読み出された第2テーブル内から読み出される(ステップS14)。これにより、点群が生成される。
【0016】
次に、生成された点群の各点に対して重みが付与される(ステップS2)。
重み付与のステップS2は、図5に示されるように、まず、いずれかのセンサ3,5が選択される(ステップS21)。例えば、センサとしてエンコーダ5が選択された場合には、選択されたエンコーダ5により検出された各動作軸の回転角度からツール先端点TCPの座標を算出する(ステップS22)。
【0017】
次いで、重みの付与されていない1点が選択され(ステップS23)、選択された点の座標とツール先端点TCPの座標との距離Lを算出する(ステップS24)。各点に付与される重みは、エンコーダ5により検出された各動作軸の回転角度から算出されるツール先端点TCPの座標と各点の座標との距離Lに反比例している。
【0018】
そこで、定数Aを距離Lにより除算することにより、重みWを算出する(ステップS25)。算出された重みWは各点の座標に対応付けて記憶される(ステップS26)。
【0019】
算出されるツール先端点TCPの座標が大きな誤差を含んでいる場合には、誤差が小さい場合よりも小さな定数Aが与えられる。定数Aは、全てのセンサ3,5に同じ値を設定してもよいし、センサ3,5毎に誤差を測定する実験を行うことにより、予め個別に設定しておいてもい。また、定数Aは、機械学習により自動的に調整されてもよい。
【0020】
全ての点に重みWが付与されたか否かが判定され(ステップS27)、重みWが付与されていない点が存在する場合には、ステップS23からの工程が繰り返される。
全ての点に重みWが付与された場合には、全てのセンサ3,5について重みWが計算されたか否かを判定する(ステップS28)。
【0021】
重みWが計算されていない他のセンサ3,5が存在する場合には、他のセンサ3,5を選択し(ステップS29)、ステップS22からの工程を繰り返す。
他のセンサとしてカメラ3が選択された場合には、カメラ3により取得された画像からツール先端点TCPの座標が算出され(ステップS22)、全ての点に対して重みWが付与される(ステップS23からS27)。
【0022】
センサとして、カメラ3およびエンコーダ5の2つを備えている場合には、各センサ3,5に対して算出された2つの重みWが各点の重みとして生成される。
生成された2つの重みWは、両方とも各点の重みとして、各点の座標に対応付けて記憶される。
【0023】
次に、重みWが付与された点がグループ分けされ、点群が絞り込まれる(ステップS3)。点のグループ分けは、図6に示されるように実施される。
【0024】
まず、グループ番号が付されていない任意の1点を選択し(ステップS31)、選択された点にグループ番号を付与する(ステップS32)。次いで、グループ番号が付与された点から所定距離Xの範囲内に、グループ番号が付与されていない他の点が存在するか否かを判定し(ステップS33)、範囲内に存在する全ての点に同じグループ番号を付与する(ステップS34)。
【0025】
そして、ステップS33からの工程を繰り返す。ステップS33において、グループ番号が付与された全ての点から所定距離X内にグループ番号が付与されていない他の点が存在しないと判定された場合には、グループ番号が付与されていない点が存在するか否かを判定する(ステップS35)。
【0026】
グループ番号が付与されていない点が存在する場合には、グループ番号を変更し(ステップS36)、ステップS31からの工程を繰り返す。全ての点にグループ番号が付与された場合には、各グループに属する点の全ての重みをグループ毎に合計する(ステップS37)。
【0027】
この場合に、点が複数の重みを有している場合には、全ての重みを合計する。そして、重みの合計が最大のグループの点群を残して、他の点を消去する(ステップS38)。これにより、点群が絞り込まれる。
【0028】
次に、図1に示されるように、絞り込まれた点群の重心位置の座標を、各点の座標と重みとに基づいて算出する(ステップS4)。そして、算出された重心位置から最も遠い点までの距離(最大距離)を算出し(ステップS5)、算出された最大距離が所定の閾値以下であるか否かを判定する(ステップS6)。
【0029】
最大距離が所定の閾値よりも大きい場合には、全ての点を消去して、重心位置を中心とし、最大距離を半径とする球の内部にランダムに点群を生成する(ステップS7)。そして、ステップS2からの工程を繰り返す。
ステップS6において、算出された最大距離が所定の閾値以下である場合には、重心位置の座標を第2点の座標として記憶することにより座標を補正する(ステップS8)。
【0030】
このようにして、オフラインにて教示された動作プログラムの実行により、理想的なツール先端点TCPの動作軌跡上に位置する通過点の座標が、複数のセンサ3,5により検出された情報に基づいて算出されるツール先端点TCPの座標に基づいて補正される。
【0031】
本実施形態に係るロボットシステム1によれば、複数のセンサ3,5により検出された情報に基づいて算出される座標にもそれぞれ誤差が含まれているが、重みづけにより、それらの誤差をバランスよく勘案して適正な補正を行うことができるという利点がある。
【0032】
なお、本実施形態においては、ツール先端点TCPの座標を算出するための情報を検出可能なセンサとして、サーボモータに備えられたエンコーダ5およびカメラ3を例示したが、これに限定されるものではない。例えば、ロボット2が加速度センサを備えている場合には、検出された加速度を2回積分することにより、ツール先端点TCPの座標を算出することができる。
また、ワークの形状を検出するために1以上のレーザセンサを備えている場合には、各レーザセンサにより検出された、レーザセンサとワークとの距離情報に基づいてツール先端点TCPの座標を算出することができる。
【符号の説明】
【0033】
1 ロボットシステム
2 ロボット
3 カメラ(センサ)
4 制御装置(プロセッサ、メモリ)
5 エンコーダ(センサ)
X 所定距離
W 重み
TCP ツール先端点
図1
図2
図3
図4
図5
図6