(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044523
(43)【公開日】2024-04-02
(54)【発明の名称】算出方法および算出装置
(51)【国際特許分類】
B25J 13/08 20060101AFI20240326BHJP
B25J 13/00 20060101ALI20240326BHJP
【FI】
B25J13/08 Z
B25J13/00 Z
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022150086
(22)【出願日】2022-09-21
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100091292
【弁理士】
【氏名又は名称】増田 達哉
(74)【代理人】
【識別番号】100173428
【弁理士】
【氏名又は名称】藤谷 泰之
(74)【代理人】
【識別番号】100091627
【弁理士】
【氏名又は名称】朝比 一夫
(72)【発明者】
【氏名】工藤 真
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS01
3C707BS12
3C707BS15
3C707BT05
3C707CT05
3C707CV08
3C707CW08
3C707CX01
3C707DS01
3C707ES03
3C707HS27
3C707JS03
3C707JU01
3C707JU09
3C707JU14
3C707KS17
3C707KS23
3C707KS35
3C707KV01
3C707KW05
3C707KX06
3C707KX10
3C707LU07
3C707MS15
3C707MT04
(57)【要約】
【課題】適正な動作パラメーターを設定することができ、ロボットに適正で迅速な動作を行わせることができる算出方法および算出装置を提供すること。
【解決手段】モーターに生じるトルクに関する情報であるトルク情報を取得する第1ステップと、第1ステップで取得したトルク情報から所定のトルク値TA1を取得する第2ステップと、第2ステップで取得したトルク値TA1と、所定の設定値TA0とを比較する第3ステップと、TA1/TA0≦1、かつ、TA0-TA1=TAxが可及的に小さくなるように、特性値の値を変更して動作パラメーターを求める第4ステップと、を有し、第4ステップで求める前記動作パラメーターは、TA1を増大させることによりTAxを段階的にn回減少させ、TAx<0となったときの、n-1回目(このとき、nは2以上の整数)の特性値、またはn回目(このとき、nは1以上の整数)の特性値を含む算出方法。
【選択図】
図4
【特許請求の範囲】
【請求項1】
回転軸を中心として回転する関節と、前記関節を回転駆動するモーターとを有し、先端にエンドエフェクターが設置されるロボットアームの動作パラメーターを算出する算出方法であって、
前記動作パラメーターは、特性値である前記エンドエフェクターの重量、前記エンドエフェクターの重心位置および前記関節のイナーシャのうちの少なくとも1つを含み、
前記モーターを駆動して前記関節を回転させて、前記モーターに生じるトルクに関する情報であるトルク情報を取得する第1ステップと、
前記第1ステップで取得した前記トルク情報から所定のトルク値TA1を取得する第2ステップと、
前記第2ステップで取得した前記トルク値TA1と、所定の設定値TA0とを比較する第3ステップと、
TA1/TA0≦1、かつ、TA0-TA1=TAxが可及的に小さくなるように、前記特性値の値を変更して前記動作パラメーターを求める第4ステップと、を有し、
前記第4ステップで求める前記動作パラメーターは、TA1を増大させることによりTAxを段階的にn回減少させ、TAx<0となったときの、n-1回目(このとき、nは2以上の整数)の前記特性値、またはn回目(このとき、nは1以上の整数)の前記特性値を含むことを特徴とする算出方法。
【請求項2】
前記ロボットアームは、水平多関節ロボットのロボットアームであり、
前記動作パラメーターは、前記エンドエフェクターの重量および前記関節のイナーシャの前記特性値を含み、
前記特性値を前記エンドエフェクターの重量として前記第1ステップ、前記第2ステップ、前記第3ステップおよび前記第4ステップを行う第5ステップと、
前記特性値を前記関節のイナーシャとして前記第1ステップ、前記第2ステップ、前記第3ステップおよび前記第4ステップを行う第6ステップと、を有し、
前記第5ステップと前記第6ステップとを任意の順序で実行する請求項1に記載の算出方法。
【請求項3】
前記ロボットアームは、垂直多関節ロボットのロボットアームであり、
前記動作パラメーターは、前記エンドエフェクターの重量、前記エンドエフェクターの重心位置および前記関節のイナーシャの前記特性値を含み、
前記特性値を前記エンドエフェクターの重量として前記第1ステップ、前記第2ステップ、前記第3ステップおよび前記第4ステップを行う第7ステップと、
前記特性値を前記エンドエフェクターの重心位置として前記第1ステップ、前記第2ステップ、前記第3ステップおよび前記第4ステップを行う第8ステップと、
前記特性値を前記関節のイナーシャとして前記第1ステップ、前記第2ステップ、前記第3ステップおよび前記第4ステップを行う第9ステップと、を有し、
前記第7ステップと前記第8ステップと前記第9ステップとを任意の順序で実行する請求項1に記載の算出方法。
【請求項4】
回転軸を中心として回転する関節と、前記関節を回転駆動するモーターとを有し、先端にエンドエフェクターが設置されるロボットアームの動作パラメーターを算出する算出方法であって、
前記動作パラメーターは、特性値である前記エンドエフェクターの重量、前記エンドエフェクターの重心位置、および前記関節のイナーシャのうちの少なくとも1つを含み、
前記モーターを駆動して前記関節を回転させて、前記モーターに生じるトルクに関する情報であるトルク情報を取得する第1ステップと、
前記第1ステップで取得した前記トルク情報から所定のトルク値TB1を取得する第2ステップと、
前記第2ステップで取得した前記トルク値TB1と、所定の設定値TB0とを比較する第3ステップと、
TB0/TB1≦1、かつ、TB1-TB0=TBxが可及的に小さくなるように、前記特性値の値を変更して前記動作パラメーターを求める第4ステップと、を有し、
前記第4ステップで求める前記動作パラメーターは、TB1を減少させることによりTBxを段階的にn回減少させ、0<TBxとなったときの、n-1回目(このとき、nは2以上の整数)の前記特性値、またはn回目(このとき、nは1以上の整数)の前記特性値を含むことを特徴とする算出方法。
【請求項5】
回転軸を中心として回転する関節と、前記関節を回転駆動するモーターとを有し、先端にエンドエフェクターが設置されるロボットアームの動作パラメーターを算出する算出装置であって、
前記動作パラメーターは、特性値である前記エンドエフェクターの重量、前記エンドエフェクターの重心位置および前記関節のイナーシャのうちの少なくとも1つを含み、
前記モーターを駆動して前記関節を回転させて、前記モーターに生じるトルクに関する情報であるトルク情報を取得する第1取得部と、
前記第1取得部で取得した前記トルク情報から所定のトルク値TA1を取得する第2取得部と、
前記第2取得部で取得した前記トルク値TA1と、所定の設定値TA0とを比較する比較部と、
TA1/TA0≦1、かつ、TA0-TA1=TAxが可及的に小さくなるように、前記特性値の値を変更して前記動作パラメーターを求める算出部と、を有し、
前記算出部が求める前記動作パラメーターは、TA1を増大させることによりTAxを段階的にn回減少させ、TAx<0となったときの、n-1回目(このとき、nは2以上の整数)の前記特性値、またはn回目(このとき、nは1以上の整数)の前記特性値を含むことを特徴とする算出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、算出方法および算出装置に関する。
【背景技術】
【0002】
近年、工場では人件費の高騰や人材不足により、ロボットアームを有するロボットを用いて製造、加工、組み立て等の作業が行われるようになり、人手で行われてきた作業の自動化が進んでいる。
【0003】
ロボットに所定の決められた作業内容の作業を行わせるに際しては、例えば特許文献1に示すような装置を用いて、事前にロボットの動作パラメーターを設定する。該動作パラメーターは、種々の特性値を含む。該特性値としては、ロボットアームの先端に装着されるハンドであるエンドエフェクターの重量、エンドエフェクターの重心位置、エンドエフェクターのイナーシャが挙げられる。エンドエフェクターのイナーシャとしては、例えば、エンドエフェクターの最大許容イナーシャが挙げられる。
【0004】
特許文献1に記載されている装置では、ロボットアームの動作に先立って、所定の姿勢のロボットアームにハンドを装着し、ロボットアームを駆動してモーターの駆動トルクを測定し、取得したモーター駆動トルク値から、エンドエフェクター重量およびエンドエフェクターの重心位置を求め、設定している。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載されている装置では、求めることができる動作パラメーターの種類、すなわち特性値の項目が限られており、また、特性値の算出方法にも問題があることから、必ずしも適正な動作パラメーターを設定することが難しい。このため、ロボットアームが適正な動作を行うことができない場合がある。すなわち、動作中にロボットアームに過剰に負荷がかかってしまったり、必要以上に低速度で動作してしまい、動作に長時間を要したりするという問題がある。
【課題を解決するための手段】
【0007】
本発明の適用例にかかる算出方法は、
回転軸を中心として回転する関節と、前記関節を回転駆動するモーターとを有し、先端にエンドエフェクターが設置されるロボットアームの動作パラメーターを算出する算出方法であって、
前記動作パラメーターは、特性値である前記エンドエフェクターの重量、前記エンドエフェクターの重心位置および前記関節のイナーシャのうちの少なくとも1つを含み、
前記モーターを駆動して前記関節を回転させて、前記モーターに生じるトルクに関する情報であるトルク情報を取得する第1ステップと、
前記第1ステップで取得した前記トルク情報から所定のトルク値TA1を取得する第2ステップと、
前記第2ステップで取得した前記トルク値TA1と、所定の設定値TA0とを比較する第3ステップと、
TA1/TA0≦1、かつ、TA0-TA1=TAxが可及的に小さくなるように、前記特性値の値を変更して前記動作パラメーターを求める第4ステップと、を有し、
前記第4ステップで求める前記動作パラメーターは、TA1を増大させることによりTAxを段階的にn回減少させ、TAx<0となったときの、n-1回目(このとき、nは2以上の整数)の前記特性値、またはn回目(このとき、nは1以上の整数)の前記特性値を含むことを特徴とする。
【0008】
本発明の適用例にかかる算出方法は、回転軸を中心として回転する関節と、前記関節を回転駆動するモーターとを有し、先端にエンドエフェクターが設置されるロボットアームの動作パラメーターを算出する算出方法であって、
前記動作パラメーターは、特性値である前記エンドエフェクターの重量、前記エンドエフェクターの重心位置、および前記関節のイナーシャのうちの少なくとも1つを含み、
前記モーターを駆動して前記関節を回転させて、前記モーターに生じるトルクに関する情報であるトルク情報を取得する第1ステップと、
前記第1ステップで取得した前記トルク情報から所定のトルク値TB1を取得する第2ステップと、
前記第2ステップで取得した前記トルク値TB1と、所定の設定値TB0とを比較する第3ステップと、
TB0/TB1≦1、かつ、TB1-TB0=TBxが可及的に小さくなるように、前記特性値の値を変更して前記動作パラメーターを求める第4ステップと、を有し、
前記第4ステップで求める前記動作パラメーターは、TB1を減少させることによりTBxを段階的にn回減少させ、0<TBxとなったときの、n-1回目(このとき、nは2以上の整数)の前記特性値、またはn回目(このとき、nは1以上の整数)の前記特性値を含むことを特徴とする。
【0009】
また、本発明の適用例にかかる算出装置は、回転軸を中心として回転する関節と、前記関節を回転駆動するモーターとを有し、先端にエンドエフェクターが設置されるロボットアームの動作パラメーターを算出する算出装置であって、
前記動作パラメーターは、特性値である前記エンドエフェクターの重量、前記エンドエフェクターの重心位置および前記関節のイナーシャのうちの少なくとも1つを含み、
前記モーターを駆動して前記関節を回転させて、前記モーターに生じるトルクに関する情報であるトルク情報を取得する第1取得部と、
前記第1取得部で取得した前記トルク情報から所定のトルク値TA1を取得する第2取得部と、
前記第2取得部で取得した前記トルク値TA1と、所定の設定値TA0とを比較する比較部と、
TA1/TA0≦1、かつ、TA0-TA1=TAxが可及的に小さくなるように、前記特性値の値を変更して前記動作パラメーターを求める算出部と、を有し、
前記算出部が求める前記動作パラメーターは、TA1を増大させることによりTAxを段階的にn回減少させ、TAx<0となったときの、n-1回目(このとき、nは2以上の整数)の前記特性値、またはn回目(このとき、nは1以上の整数)の前記特性値を含むことを特徴とする。
【図面の簡単な説明】
【0010】
【
図1】
図1は、本発明の算出方法を実行する算出装置の第1実施形態にかかるロボットシステムの全体構成を示す図である。
【
図2】
図2は、
図1に示すロボットシステムのブロック図である。
【
図3】
図3は、トルク情報および補正トルク情報を示すグラフである。
【
図4】
図4は、本発明の算出方法の一例を示すフローチャートである。
【
図5】
図5は、本発明の算出方法の第2実施形態を示すフローチャートである。
【
図6】
図6は、本発明の算出方法の第3実施形態を示すフローチャートである。
【
図7】
図7は、本発明の算出方法(第4実施形態)の一例を示すフローチャートである。
【
図8】
図8は、本発明の算出方法(第5実施形態)の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の算出方法および算出装置を添付図面に示す好適な実施形態に基づいて詳細に説明する。
【0012】
<第1実施形態>
図1は、本発明の算出方法を実行する算出装置の第1実施形態にかかるロボットシステムの全体構成を示す図である。
図2は、
図1に示すロボットシステムのブロック図である。
図3は、トルク情報および補正トルク情報を示すグラフである。
図4は、本発明の算出方法の一例を示すフローチャートである。
【0013】
なお、以下では、説明の便宜上、ロボットアームについては、
図1中の基台11側を「基端」、その反対側、すなわち、エンドエフェクター20側を「先端」とも言う。
【0014】
図1に示すように、ロボットシステム100は、ロボット1と、本発明の算出装置5と、を備える。算出装置5は、ロボット1の各部の作動を制御する制御装置3と、教示装置4と、を備える。
【0015】
まず、ロボット1について説明する。
図1に示すロボット1は、本実施形態では単腕の6軸垂直多関節ロボットであり、基台11と、ロボットアーム10と、を有する。また、ロボットアーム10の先端部にエンドエフェクター20を装着することができる。なお、エンドエフェクター20は、ロボット1の構成要件であってもよく、ロボット1とは別部材、すなわち、ロボット1の構成要件でなくてもよい。
【0016】
なお、ロボット1は、図示の構成に限定されず、例えば、双腕型の多関節ロボットであってもよい。また、ロボット1は、水平多関節ロボットであってもよい。
【0017】
基台11は、ロボットアーム10をその基端側において、駆動可能に支持する支持体であり、例えば工場内の床に固定されている。ロボット1は、基台11が中継ケーブルを介して制御装置3と電気的に接続されている。なお、ロボット1と制御装置3との接続は、
図1に示す構成のように有線による接続に限定されず、例えば、無線による接続であってもよい。また、インターネット等のネットワークを介して接続されていてもよい。
【0018】
本実施形態では、ロボットアーム10は、第1アーム12と、第2アーム13と、第3アーム14と、第4アーム15と、第5アーム16と、第6アーム17とを有し、これらのアームが基台11側からこの順に連結されている。なお、ロボットアーム10が有するアームの数は、6つに限定されず、例えば、1つ、2つ、3つ、4つ、5つまたは7つ以上であってもよい。また、各アームの全長等の大きさは、それぞれ、特に限定されず、適宜設定可能である。
【0019】
基台11と第1アーム12とは、関節171を介して連結されている。そして、第1アーム12は、基台11に対し、鉛直方向に延びる回転軸O1を回転中心とし、その回転軸O1回りに回転可能となっている。このように、回転軸O1は、基台11が固定される床の床面の法線と一致しており、ロボットアーム10の全体が回転軸O1の軸回りに正方向・逆方向のいずれへも回転することができる。
【0020】
第1アーム12と第2アーム13とは、関節172を介して連結されている。そして、第2アーム13は、第1アーム12に対し、水平方向に延びる回転軸O2を回転中心として回転可能となっている。
【0021】
第2アーム13と第3アーム14とは、関節173を介して連結されている。そして、第3アーム14は、第2アーム13に対し、水平方向に延びる回転軸O3を回転中心として回転可能となっている。回転軸O3は、回転軸O2と平行である。
【0022】
第3アーム14と第4アーム15とは、関節174を介して連結されている。そして、第4アーム15は、第3アーム14に対し、第3アーム14の中心軸方向と平行な回転軸O4を回転中心として回転可能となっている。回転軸O4は、回転軸O3と直交している。
【0023】
第4アーム15と第5アーム16とは、関節175を介して連結されている。そして、第5アーム16は、第4アーム15に対して回転軸O5を回転中心として回転可能となっている。回転軸O5は、回転軸O4と直交している。
【0024】
第5アーム16と第6アーム17とは、関節176を介して連結されている。そして、第6アーム17は、第5アーム16に対して回転軸O6を回転中心として回転可能となっている。回転軸O6は、回転軸O5と直交している。
【0025】
第6アーム17は、ロボットアーム10の中で最も先端側に位置するロボット先端部となっている。この第6アーム17は、ロボットアーム10の駆動により、エンドエフェクター20ごと変位することができる。
【0026】
図1に示すエンドエフェクター20は、ワークまたは工具を把持することができる把持部を有する構成である。第6アーム17にエンドエフェクター20を装着した状態では、エンドエフェクター20の先端部は、制御点TCPとなる。
【0027】
ロボット1は、駆動部としてのモーターM1、モーターM2、モーターM3、モーターM4、モーターM5およびモーターM6と、エンコーダーE1、エンコーダーE2、エンコーダーE3、エンコーダーE4、エンコーダーE5およびエンコーダーE6とを備える。モーターM1は、関節171に内蔵され、基台11に対し第1アーム12を前記回転軸O1回りに回転させる。モーターM2は、関節172に内蔵され、第1アーム12と第2アーム13とを前記回転軸O2回りに相対的に回転させる。モーターM3は、関節173に内蔵され、第2アーム13と第3アーム14とを前記回転軸O3回りに相対的に回転させる。モーターM4は、関節174に内蔵され、第3アーム14と第4アーム15とを前記回転軸O4回りに相対的に回転させる。モーターM5は、関節175に内蔵され、第4アーム15と第5アーム16とを前記回転軸O5回りに相対的に回転させる。モーターM6は、関節176に内蔵され、第5アーム16と第6アーム17とを前記回転軸O6回りに相対的に回転させる。
【0028】
また、エンコーダーE1は、関節171に内蔵され、モーターM1の位置を検出する。エンコーダーE2は、関節172に内蔵され、モーターM2の位置を検出する。エンコーダーE3は、関節173に内蔵され、モーターM3の位置を検出する。エンコーダーE4は、関節174に内蔵され、モーターM4の位置を検出する。エンコーダーE5は、第5アーム16に内蔵され、モーターM5の位置を検出する。エンコーダーE6は、第6アーム17に内蔵され、モーターM6の位置を検出する。なお、ここで言う「位置を検出」とは、モーターの回転角すなわち正逆を含む回転量および角速度を検出することを言い、当該検出された情報を「位置情報」と言う。
【0029】
図2に示すように、モータードライバーD1~モータードライバーD6は、それぞれ、対応するモーターM1~モーターM6に接続され、これら各モーターの駆動を制御する。モータードライバーD1~モータードライバーD6は、それぞれ、関節171、関節172、関節173、関節174、第5アーム16および第6アーム17に内蔵されている。
【0030】
エンコーダーE1~エンコーダーE6、モーターM1~モーターM6およびモータードライバーD1~モータードライバーD6は、それぞれ、制御装置3と電気的に接続されている。エンコーダーE1~エンコーダーE6で検出されたモーターM1~モーターM6の位置情報、すなわち、回転量は、制御装置3に電気信号として送信される。そして、この位置情報に基づいて、制御装置3は、
図2に示すモータードライバーD1~モータードライバーD6に制御信号を出力し、モーターM1~モーターM6を駆動させる。すなわち、ロボットアーム10を制御するということは、モーターM1~モーターM6の駆動を制御して、ロボットアーム10に属する第1アーム12~第6アーム17の作動を制御することである。
【0031】
トルクセンサー18は、モーターM6のトルクを検出するセンサーである。トルクセンサー18のトルクの検出方式は、特に限定されないが、例えば、磁歪式、ひずみゲージ式、回転トランス式、テレメーター式、圧電式、光学式、静電容量式等が挙げられる。トルクセンサー18が検出したトルクに関する情報は、電気信号に変換されて、制御装置3に送信される。なお、この構成に限定されず、トルクセンサー18が検出したトルクに関する情報が、教示装置4に直接送信される構成であってもよい。この場合、教示装置4の、トルクセンサー18からの信号線が接続される端子が取得部45となる。
【0032】
ロボットアーム10の先端部には、エンドエフェクター20を着脱可能に装着することができる。本実施形態では、エンドエフェクター20は、互いに接近離間可能な一対の爪部を有し、各爪部によりワークまたは工具(図示せず)を把持、解除するハンドで構成される。このエンドエフェクター20に装着された力検出器は、両爪部でワークを把持した際の把持力の反力の大きさや向きを検出することができる。
【0033】
なお、エンドエフェクター20としては、図示の構成に限定されず、例えば吸着部を有し、該吸着部の吸着によりワークまたは工具を把持する構成のものであってもよい。また、エンドエフェクター20としては、例えば、研磨機、研削機、切削機、スプレーガン、レーザー光照射器、ドライバー、レンチ等の工具であってもよい。
【0034】
本明細書において、「関節176を回転」または「関節176を回転駆動」とは、モーターM6を駆動することにより、関節176が有する回転軸O6回りに、当該関節176を介して連結されている第5アーム16と第6アーム17とを正・逆いずれかの方向に回転させることを言う。他の関節171~175についても同様である。
【0035】
次に、制御装置3および教示装置4について説明する。
図1に示すように、制御装置3は、本実施形態では、ロボット1と離れた位置に設置されている。ただし、この構成に限定されず、制御装置3は、基台11に内蔵されていてもよい。また、制御装置3は、ロボット1の駆動を制御する機能を有し、前述したロボット1の各部と電気的に接続されている。制御装置3は、制御部31と、記憶部32と、通信部33と、を有する。これらの各部は、例えばバスを介して相互に通信可能に接続されている。
【0036】
制御部31は、例えば、CPU(Central Processing Unit)で構成され、記憶部32に記憶されている動作プログラム等の各種プログラムを読み出し、実行する。制御部31で生成された信号は、通信部33を介してロボット1の各部に送信され、ロボット1の各部からの信号は、通信部33を介して制御部31で受信される。制御部31で受信された信号は、所定の処理が施され、記憶部32に記憶され、あるいはロボットアーム10の動作の制御や教示作業に利用される。このような制御部31により、ロボットアーム10が所定の作業を所定の条件で実行することができる。
【0037】
また、制御部31は、教示装置4から取得した動作プログラムに基づいて、モーターM1~M6を駆動して関節171~176を回転させ、所定の速度条件(加速度条件)、所定の動作パラメーターで加速動作を実行する実行部である。
【0038】
記憶部32は、制御部31で実行される各種プログラム等を保存する。記憶部32としては、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等を有する構成のものが挙げられる。
【0039】
通信部33は、例えば有線LAN(Local Area Network)、無線LAN等の外部インターフェースを用いて他の機器との間で信号の送受信を行う。この場合、図示しないサーバーを介して通信を行ってもよく、また、インターネット等のネットワークを介して通信を行ってもよい。
【0040】
教示装置4は、作業(作業動作)の開始前にロボットアーム10の動作プログラムを作成したり、ロボットアーム10を動作させるための速度条件や、各種動作パラメーター等を設定したりする装置である。
【0041】
動作プログラムとしては、実際に作業を行うための作業動作プログラム、試験的に動作を行って適切な動作パラメーターを設定するための試験動作プログラム等が挙げられる。
【0042】
作業動作プログラムは、作業時のロボットアーム10の経時的な位置情報を示すプログラムであり、例えば、直接教示、間接教示等により作成される。これらの教示を行うことによって位置情報を作成し、別途、経時的な速度条件、各種動作パラメーターを設定する。なお、教示を行わずに、作業者が予め作成された作業動作プログラム、経時的な速度条件および各種動作パラメーターを設定する構成であってもよい。
【0043】
試験動作プログラムは、試験運転時の経時的な位置情報を示すプログラムであり、予め設定されている。また、試験運転時には、速度条件や、各種動作パラメーターは、所定の値に設定されている。試験運転時のロボットアーム10の動作は、作業動作プログラムに比べ、比較的簡単な動作であり、例えば、制御点TCPが直線運動を行うような動作や、制御点TCPが円運動を行うような動作が挙げられる。
【0044】
動作パラメーターには、種々の項目、すなわち特性値がある。この特性値としては、例えば、エンドエフェクター20の重量、エンドエフェクター20の重心位置、および関節のイナーシャ等が挙げられる。
【0045】
エンドエフェクター20の重量は、装着したエンドエフェクター20によってロボットアーム10の先端にどの程度の負荷がかかるかを示す特性値であり、その単位は、例えば、(kg)で表される。以下では、「エンドエフェクター20の重量を設定する」ということは、ロボットアーム10の先端にかかる最大許容荷重を設定することとする。
【0046】
エンドエフェクター20の重心位置は、装着したエンドエフェクター20によってロボットアーム10の先端にかかる負荷の重心が、例えば、基準位置から、どれくらいの距離ずれているかを示す特性値であり、その単位は、例えば、(mm)で表される。前記基準位置は、例えば、回転軸O6の延長上の任意の位置とされる。
【0047】
イナーシャは、慣性モーメントのことであり、回転のしやすさを表す特性値であり、その単位は、例えば、(kg・m2)で表される。以下、本実施形態では、イナーシャは、関節176のイナーシャとして説明する。
【0048】
これらの特性値を適正な値に設定することにより、その設定を加味した速度条件でロボットアーム10を適正に動作させることができる。すなわち、ロボットアーム10に過剰な負荷がかかることなく、迅速な動作を行うことができる。
【0049】
以下では、「イナーシャを設定する」とは、許容し得る最大のイナーシャを設定することとする。すなわち、イナーシャを適正に設定することにより、ロボットアーム10は、動作中の関節176のイナーシャが設定値を超えずに、可及的に速度を高めて動作を行う。
【0050】
図1に示すように、教示装置4は、表示部であるディスプレイ40と、入力操作部44と、を有し、本実施形態では、ノート型パソコンで構成される。
【0051】
上述した動作パラメーターの各特性値の設定や、速度条件の設定は、図示はしないが、ディスプレイ40に表示された入力画面上で、入力操作部44を適宜操作することによりなされる。
【0052】
入力操作部44は、キーボードおよび図示しないマウスで構成され、ユーザーがこれらを適宜操作することによって、前述した動作パラメーター等の各種情報の入力操作が行われる。後述する教示ボタンの押下は、例えば、キーボード上の任意のキー、例えばエンターキーを押すことにより実行され、あるいはディスプレイ40の入力画面上の適正な位置にカーソルまたはポインタを合わせた状態で、マウスをクリック操作することにより実行される。なお、教示ボタンは、入力操作部44とは別の箇所に設置されていてもよい。
【0053】
ディスプレイ40は、例えば、液晶、有機EL等により構成され、各種表示画面をカラーまたはモノクロで表示することができる。なお、教示装置4は、ノート型パソコンに限らず、デスクトップ型パソコン、タブレット型端末でもよい。
【0054】
図2に示すように、教示装置4は、制御部41と、記憶部42と、通信部43と、を有する。
【0055】
制御部41は、例えば、CPU(Central Processing Unit)等の少なくとも1つのプロセッサーで構成され、記憶部42に記憶されている教示プログラム等の各種プログラムを読み出し、実行する。
【0056】
この制御部41は、特性値を算出し、該特性値を含むパラメーターを求める算出部として機能する。
【0057】
記憶部42としては、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等を有する構成のものが挙げられる。また、記憶部42には、本発明の算出方法を実行するためのプログラムが記憶されている。また、記憶部42には、作業者が入力した各種動作プログラム、取得したトルク情報、補正トルク情報、算出した特性値等が一時的に記憶される。
【0058】
通信部43は、例えば有線LAN(Local Area Network)、無線LAN等の外部インターフェースを用いて制御装置3との間で信号の送受信を行う。この場合、図示しないサーバーを介して通信を行ってもよく、また、インターネット等のネットワークを介して通信を行ってもよい。通信部43は、記憶部42に記憶された動作プログラムに関する情報等を制御装置3に送信する。また、通信部43は、記憶部32に記憶された情報を受信し、記憶部42に当該情報を記憶することもできる。
【0059】
取得部45は、トルクセンサー18から送信されたトルク情報を取得し、教示装置4内に取り込む端子である。この取得部45は、後述するトルク情報を取得する第1取得部として機能する。
【0060】
取得部45で取得したトルク情報は、記憶部42に記憶され、特性値の算出に用いられる。
【0061】
また、取得部45で取得したトルク情報から所定のトルク値TA1を取得する。制御部41は、この所定のトルク値TA1を取得する第2取得部として機能する。
【0062】
次に、本発明の算出方法の一例について説明する。以下では、動作パラメーターにおける特性値の算出として、(1)エンドエフェクター20の重量の算出、(2)エンドエフェクター20の重心位置の算出、(3)イナーシャの算出の順に説明する。
【0063】
(1)エンドエフェクター20の重量の算出
1.ステップS101
まず、ステップS101において、各種設定を行う。本ステップは、作業者が教示装置4を用いて、動作プログラム、速度条件、動作パラメーターの特性値等を入力することによりなされる。
【0064】
本ステップでは、特性値として、エンドエフェクター20の重量の初期値および後述するステップS105における判断の基準となる設定値TA0が設定される。
【0065】
設定値TA0は、しきい値とも言い、例えば、エンドエフェクター20の重量の許容最大重量に対応したトルク値、すなわち、許容最大重量のエンドエフェクター20を装着した状態において、ロボットアーム10にかかっても物理的損傷や破壊が生じない程度のトルク値とされる。このような設定値TA0は、実験的に求められ、記憶部42に記憶されていてもよく、作業者が適宜設定してもよい。
【0066】
2.ステップS102
次いで、制御装置3の制御部31は、ステップS101で設定された情報に基づいて、ロボットアーム10に試験動作を行わせる。
【0067】
試験動作としては、特に限定されないが、エンドエフェクター20の重量を算出する場合、関節173を90°回転させて、その後、反対方向に90°回転させる動作を繰り返す反復動作であることが好ましい。これにより、エンドエフェクター20の重量の算出をより正確に行うことができる。
【0068】
3.ステップS103(第1ステップ)
次いで、制御装置3は、トルクセンサー18から取得したトルク情報を取得し、教示装置4に送信する。教示装置4は、取得部45を介してトルク情報を取得する。
【0069】
取得部45が取得するトルク情報は、例えば、
図3中の細線で示すような、トルク値の経時変化、すなわち経時的なトルク値のデータQ1である。
図3は、横軸が時間、縦軸がトルクの実測値を示すグラフである。なお、図示の構成では、関節176の回転動作の加速および減速を1セットとして、4セット同じ動作を行っている。
【0070】
このようなステップS103が、モーターM6を駆動して関節176を回転させて、モーターM6に生じるトルクに関する情報であるトルク情報を取得する第1ステップに相当する。
【0071】
4.ステップS104(第2ステップ)
教示装置4の制御部41は、取得部45を介して取得したトルク情報からトルク値TA1を取得する。本ステップでは、まず、制御部41は、トルク情報に所定の補正処理を施して補正トルク情報を生成する。
【0072】
補正トルク情報としては、例えば、
図3中の太線で示すような、データQ1に平滑化移動平均処理を施したデータQ2が挙げられる。平滑化移動平均処理は、ある時刻でのトルク値に、過去のトルク値の推移を反映させる処理であり、その種類としては、単純移動平均処理、加重移動平均移動処理、指数移動平均処理等が挙げられる。このような補正トルク情報を用いることにより、ノイズによる外れ値QN等を除外することができ、トルク情報をより適正化することができる。
【0073】
なお、補正トルク情報の生成は、平滑化移動平均処理に限られず、例えば、データの補間処理、近似処理、圧縮処理、拡大処理、サンプリング等、いかなる種類、方法の補正処理によるものであってもよい。
【0074】
制御部41は、データQ1で示される補正トルク情報のうち、最大トルク値をトルク値TA1とする。ただし、トルク値TA1としては、最大トルク値に限定されず、例えば、モーターM6の加速時における最大トルク値と、減速時における最大トルク値との平均値であってもよい。
【0075】
このようなステップS104が、第1ステップで取得したトルク情報からトルク値TA1を取得する第2ステップに相当する。
【0076】
5.ステップS105(第3ステップ)
次いで、制御部41は、TA1<TA0であるか否かを判断する。すなわち、ステップS104で取得したトルク値TA1と設定値TA0とを比較し、トルク値TA1が、設定値TA0よりも小さいか否かを判断する。
【0077】
ステップS105において、TA1<TA0であると判断した場合、ステップS106に移行し、TA1<TA0ではないと判断した場合、ステップS107に移行する。
【0078】
このようなステップS105が、第2ステップで取得したトルク値TA1と、所定の設定値TA0とを比較する第3ステップである。
【0079】
6.ステップS106(第4ステップ)
制御部41は、特性値の値を変更し、変更した値を記憶部42に記憶する。すなわち、制御部41は、エンドエフェクター20の重量を、ステップS101で設定された設定値、すなわちエンドエフェクター20の重量の初期値よりも、所定の重量、例えば0.5kg重い値に設定し直す。そして、その設定でステップS102およびそれ以降のステップを繰り返す。
【0080】
すなわち、1ループ目は、初期設定値のエンドエフェクター20の重量を用いて試験動作を行い、取得したトルク値TA1と設定値TA0とを比較する。2ループ目は、初期設定値よりも所定値重いエンドエフェクター20の重量を用いて試験動作を行い、取得したトルク値TA1と設定値TA0とを比較する。3ループ目は、2ループ目での設定値よりも所定値重いエンドエフェクター20の重量を用いて試験動作を行い、取得したトルク値TA1と設定値TA0とを比較する。ループの回数を重ねるごとに、トルク値TA1が増大し、設定値TA0との差(TAx)が段階的に小さくなり、n回目のループでトルク値TA1が設定値TA0を超える。すなわち、n回目のループでTAx<0となる。
【0081】
7.ステップS107(第4ステップ)
n回目のステップS105において、TA1<TA0ではないと判断すると、1つ前の特性値の値を設定する。すなわち、n-1回目のループの際に用いた設定値であるエンドエフェクター20の重量を、作業時に用いる動作パラメーターの特性値として記憶部42に記憶する。
【0082】
このステップS106およびステップS107が、TA1/TA0≦1、かつ、TA0-TA1=TAxが可及的に小さくなるように特性値の値を変更し、該特性値を含んだ動作パラメーターを求める第4ステップに相当する。
【0083】
このように、上記ステップにより設定される特性値は、TA1を増大させることによりTAxを段階的にn回(nは2以上の整数)減少させ、TAx<0となったときの、n-1回目の特性値である。すなわち、特性値の値を変更しつつ試験動作を行うことによりトルク値TA1を設定値TA0に近づけて行き、設定値TA0を超える直前のトルク値TA1に対応する特性値を求める。このようにして求められた特性値を含む動作パラメーターを用いてロボットアーム10を動作させることにより、ロボットアーム10に過剰な負荷がかかることなく、設定値TA0に可及的に近いトルク値を想定してロボットアーム10を迅速に動作させることができる。
【0084】
なお、TAxを1回目に1回減少させ、TAx<0となった場合は、1回目の特性値を特性値に設定する。
【0085】
また、高精度に特性値を設定する必要がない場合は、TA1を増大させることによりTAxを段階的にn回(nは1以上の整数)減少させ、TAx<0となったときの、n回目の特性値を特性値に設定してもよい。
【0086】
以上より、本発明によれば、適正な動作パラメーターを算出することができ、この動作パラメーターを用いてロボットアーム10を動作させることにより、ロボットアーム10に適正で迅速な動作を行わせることができる。
【0087】
上記では、動作パラメーターの特性値として、(1)エンドエフェクター20の重量の算出について説明したが、(2)エンドエフェクター20の重心位置の算出および(3)イナーシャの算出に関しても、同様に行うことができる。
【0088】
(2)エンドエフェクター20の重心位置の算出
エンドエフェクター20の重心位置を求める場合、特性値をエンドエフェクター20の重心位置とし、ステップS101では、エンドエフェクター20の重心位置の初期位置を設定し、設定値TA0は、例えば、重心からの距離が許容最大限度とされる値に基づいて設定される。
【0089】
試験動作としては、特に限定されないが、エンドエフェクター20の重心位置を算出する場合、関節175を90°回転させて、その後、反対方向に90°回転させる動作を繰り返す反復動作であることが好ましい。これにより、エンドエフェクター20の重心位置の算出をより正確に行うことができる。
【0090】
ステップS106では、ステップS101で設定された初期位置よりも、所定値、例えば基準位置から0.1cm遠い位置に設定し直す。そして、その設定でステップS102およびそれ以降のステップを繰り返す。これにより、適正なエンドエフェクター20の重心位置を算出することができる。
【0091】
(3)イナーシャの算出
関節176のイナーシャを求める場合、特性値をイナーシャとし、ステップS101では、エンドエフェクター20のイナーシャの初期値を設定し、設定値TA0は、例えば、イナーシャの許容最大限度とされる値に基づいて設定される。
【0092】
試験動作としては、特に限定されないが、関節176のイナーシャを算出する場合、関節176を360°回転させて、その後、反対方向に360°回転させる動作を繰り返す反復動作であることが好ましい。これにより、イナーシャの算出をより正確に行うことができる。
【0093】
ステップS106では、ステップS101で設定された初期値よりも、所定値、例えば、0.01kg・m2大きい値に設定し直す。そして、その設定でステップS102およびそれ以降のステップを繰り返す。これにより、適正なイナーシャを算出することができる。
【0094】
以上説明したように、本発明の算出方法は、回転軸O6を中心として回転する関節176と、関節176を回転駆動するモーターM6とを有し、先端にエンドエフェクター20が設置されるロボットアーム10の動作パラメーターを算出する算出方法である。また、動作パラメーターは、特性値であるエンドエフェクター20の重量、エンドエフェクター20の重心位置、および関節176のイナーシャのうちの少なくとも1つを含む。また、算出方法は、モーターM6を駆動して関節176を回転させて、モーターM6に生じるトルクに関する情報であるトルク情報を取得する第1ステップと、第1ステップで取得したトルク情報から所定のトルク値TA1を取得する第2ステップと、第2ステップで取得したトルク値TA1と、所定の設定値TA0とを比較する第3ステップと、TA1/TA0≦1、かつ、TA0-TA1=TAxが可及的に小さくなるように、特性値の値を変更して動作パラメーターを求める第4ステップと、を有し、第4ステップで求める動作パラメーターは、TA1を増大させることによりTAxを段階的にn回減少させ、TAx<0となったときの、n-1回目(このとき、nは2以上の整数)の特性値、またはn回目(このとき、nは1以上の整数)の特性値を含む。
【0095】
このような第1ステップ~第4ステップを経ることにより、適正な動作パラメーターを算出し、設定することができる。よって、この動作パラメーターを用いてロボットアーム10を動作させることにより、ロボットアーム10に適正で迅速な動作を行わせることができる。
【0096】
また、本発明の算出装置5は、回転軸O6を中心として回転する関節176と、関節176を回転駆動するモーターM6とを有し、先端にエンドエフェクター20が設置されるロボットアーム10の動作パラメーターを算出する算出装置である。また、動作パラメーターは、特性値であるエンドエフェクター20の重量、エンドエフェクター20の重心位置、および関節176のイナーシャのうちの少なくとも1つを含む。また、算出装置5は、モーターM6を駆動して関節176を回転させて、モーターM6に生じるトルクに関する情報であるトルク情報を取得する第1取得部(取得部45)と、第1取得部が取得したトルク情報から所定のトルク値TA1を取得する第2取得部(制御部41)と、第2取得部で取得したトルク値TA1と、所定の設定値TA0とを比較する比較部(制御部41)と、
TA1/TA0≦1、かつ、TA0-TA1=TAxが可及的に小さくなるように、特性値の値を変更して動作パラメーターを求める算出部(制御部41)と、を有し、制御部41が求める動作パラメーターは、TA1を増大させることによりTAxを段階的にn回減少させ、TAx<0となったときの、n-1回目(このとき、nは2以上の整数)の特性値、またはn回目(このとき、nは1以上の整数)の特性値を含む。
【0097】
本実施形態では、第1ステップ~第4ステップを経ることにより、エンドエフェクター20の重量、エンドエフェクター20の重心位置、および関節176のイナーシャのうちの1つを求める場合について説明したが、本発明ではこれに限定されず、これら3つの特性値のうちの任意の2つ以上を所定の順序で、同時に、または時間的に重複して求める構成であってもよい。
【0098】
なお、回転軸、関節およびモーターとして、回転軸O6、関節176、モーターM6を例に挙げて説明したが、本発明ではこれに限定されず、回転軸、関節およびモーターとして、回転軸O1、関節171、モーターM1を適用してもよく、回転軸O2、関節172、モーターM2を適用してもよく、回転軸O3、関節173、モーターM3を適用してもよく、回転軸O4、関節174、モーターM4を適用してもよく、回転軸O5、関節175、モーターM5を適用してもよい。
【0099】
また、本実施形態では、算出部の一例として、制御部41を例に挙げて説明したが、本発明ではこれに限定されず、制御部31が、算出部として機能する構成であってもよい。この場合、制御装置3の、トルクセンサー18からの信号線が接続される端子が取得部となる。
【0100】
なお、検出したトルク値が、所定のしきい値を超えた場合、その旨を報知することが好ましい。これにより、過大な負荷がかかっていることを作業者が認識することができる。また、報知を行った場合、トルク値TA1と設定値TA0の判断を行わず、初期設定を再設定する構成であることが好ましい。
【0101】
また、エンドエフェクター20の重量およびエンドエフェクター20の重心位置を、従来(特開平10-138187号公報)の方法で算出し、イナーシャを、本発明の算出方法を用いて算出してもよい。
【0102】
<第2実施形態>
図5は、本発明の算出方法の第2実施形態を示すフローチャートであり、特に、本発明の算出方法を用いて各種特性値を算出する順序の一例を示すフローチャートである。
【0103】
以下、
図5を参照しつつ本発明の算出方法の第2実施形態について説明するが、以下では、第1実施形態との相違点を説明し、共通点については説明を省略する。
【0104】
本実施形態におけるロボット1は、垂直多関節ロボット、特に6軸垂直多関節ロボットであり、ロボットアーム10は、当該垂直多関節ロボットのロボットアームである。
【0105】
動作パラメーターは、エンドエフェクター20の重量、エンドエフェクター20の重心位置、および関節176のイナーシャを所定の順序で算出する。
【0106】
本実施形態における算出方法では、まず、
図5中のステップS201で示すように、特性値をエンドエフェクター20の重量として、第1実施形態で述べたのと同様の第1ステップ、第2ステップ、第3ステップおよび第4ステップを行い、エンドエフェクター20の重量を算出する。このステップS201が、第7ステップに相当する。
【0107】
次いで、
図5中のステップS202で示すように、特性値をエンドエフェクター20の重心位置として第1実施形態で述べたのと同様の第1ステップ、第2ステップ、第3ステップおよび第4ステップを行い、エンドエフェクター20の重心位置を算出する。このステップS202が、第8ステップに相当する。
【0108】
次いで、
図5中のステップS203で示すように、特性値を関節176のイナーシャとして第1実施形態で述べたのと同様の第1ステップ、第2ステップ、第3ステップおよび第4ステップを行い、関節176のイナーシャを算出する。このステップS203が、第9ステップに相当する。
【0109】
このように、垂直多関節ロボットにおいて、異なる複数種の特性値について算出し、設定することができる。これにより、設定される特性値の組み合わせも適正となり、より適正な動作パラメーターを算出し、設定することができる。よって、この動作パラメーターを用いてロボットアーム10を動作させることにより、ロボットアーム10により適正で迅速な動作を行わせることができる。
【0110】
このように、ロボットアーム10は、垂直多関節ロボットのロボットアームであり、動作パラメーターは、エンドエフェクター20の重量、エンドエフェクター20の重心位置および関節176のイナーシャの特性値を含む。そして、算出方法は、特性値をエンドエフェクター20の重量として第1ステップ、第2ステップ、第3ステップおよび第4ステップを行う第7ステップと、特性値をエンドエフェクター20の重心位置として第1ステップ、第2ステップ、第3ステップおよび第4ステップを行う第8ステップと、特性値を関節176のイナーシャとして第1ステップ、第2ステップ、第3ステップおよび第4ステップを行う第9ステップと、を有し、第7ステップと第8ステップと第9ステップとを任意の順序で実行する。
【0111】
このように、垂直多関節ロボットにおいて、異なる複数種の特性値について算出し、設定することができる。これにより、設定される特性値の組み合わせも適正となり、より適正な動作パラメーターを算出し、設定することができる。よって、この動作パラメーターを用いてロボットアーム10を動作させることにより、ロボットアーム10により適正で迅速な動作を行わせることができる。
【0112】
この場合、エンドエフェクター20の重量の算出、エンドエフェクター20の重心位置の算出およびイナーシャの算出の順で行うのが好ましい。すなわち、エンドエフェクター20の重量を算出し、その算出した特性値を、エンドエフェクター20の重心位置の算出の際に設定する初期のエンドエフェクター20の重量の設定値とし、これら2つの特性値を、イナーシャの算出の際に設定する初期のエンドエフェクター20の重量およびエンドエフェクター20の重心位置の設定値とすることができる。これにより、イナーシャの算出をより適正に行うことができる。
【0113】
<第3実施形態>
図6は、本発明の算出方法の第3実施形態を示すフローチャートであり、特に、本発明の算出方法を用いて各種特性値を算出する順序の一例を示すフローチャートである。
【0114】
以下、
図6を参照しつつ本発明の算出方法の第3実施形態について説明するが、以下では、第1実施形態との相違点を説明し、共通点については説明を省略する。
【0115】
本実施形態におけるロボット1は、水平多関節ロボット、ロボットアーム10は、当該水平多関節ロボットのロボットアームである。水平多関節ロボットとしては、例えば、特開2021-121450号公報に開示されているような水平多関節ロボット、いわゆるスカラーロボットが挙げられる。
【0116】
動作パラメーターは、特性値として、エンドエフェクター20の重量、エンドエフェクター20の重心位置、および関節176のイナーシャを含み、これらの特性値を所定の順序で算出する。
【0117】
ロボットがスカラーロボットである場合、
図6に示すように、エンドエフェクター20の重量の算出、イナーシャの算出およびエンドエフェクター20の重心位置の算出を、この順で行うことが好ましい。
【0118】
本実施形態における算出方法では、まず、
図6中のステップS301で示すように、特性値をエンドエフェクター20の重量として、第1実施形態で述べたのと同様の第1ステップ、第2ステップ、第3ステップおよび第4ステップを行い、エンドエフェクター20の重量を算出する。このステップS301が、第5ステップに相当する。
【0119】
次いで、
図6中のステップS302で示すように、特性値を関節176のイナーシャとして、第1実施形態で述べたのと同様の第1ステップ、第2ステップ、第3ステップおよび第4ステップを行い、関節176のイナーシャを算出する。このステップS302が、第6ステップに相当する。
【0120】
以上述べたように、ロボットアーム10は、水平多関節ロボットのロボットアームであり、動作パラメーターは、エンドエフェクター20の重量および関節176のイナーシャの特性値を含む。そして、算出方法は、特性値をエンドエフェクター20の重量として第1ステップ、第2ステップ、第3ステップおよび第4ステップを行う第5ステップと、特性値を関節176のイナーシャとして第1ステップ、第2ステップ、第3ステップおよび第4ステップを行う第6ステップと、を有し、第5ステップと第6ステップとを任意の順序で実行する。
【0121】
本実施形態では、エンドエフェクター20の重量の算出、関節176イナーシャの算出の順で行うのが好ましい。すなわち、エンドエフェクター20の重量を算出し、その算出した特性値を、イナーシャの算出の際に設定する初期のエンドエフェクター20の重量の設定値とすることができる。これにより、イナーシャの算出をより適正に行うことができる。
【0122】
なお、各特性値の算出は、上記順序に限定されず、関節176のイナーシャの算出を行ってからエンドエフェクター20の重量の算出を行ってもよい。
【0123】
本実施形態において、さらに、特性値としてエンドエフェクター20の重心位置の算出を行ってもよい。この場合、エンドエフェクター20の重心位置は、エンドエフェクター20の重量の算出の前に算出してもよく、エンドエフェクター20の重量の算出とイナーシャの算出との間で算出してもよく、イナーシャの算出の後に行ってもよい。
【0124】
スカラーロボットにおける試験動作としては、特に限定されないが、エンドエフェクター20の重量を算出する場合、第2アームを第1アームに対して90°回転させて、その後、反対方向に90°回転させる動作を繰り返す反復動作であることが好ましい。これにより、エンドエフェクター20の重量の算出をより正確に行うことができる。
【0125】
スカラーロボットにおける試験動作としては、特に限定されないが、エンドエフェクター20のイナーシャを算出する場合、第4アーム(シャフト)を360°回転させて、その後、反対方向に360°回転させる動作を繰り返す反復動作であることが好ましい。これにより、エンドエフェクター20のイナーシャの算出をより正確に行うことができる。
【0126】
スカラーロボットにおける試験動作としては、特に限定されないが、エンドエフェクター20の重心位置を算出する場合、第1アームを基台に対して回転させる動作、第2アームを第1アームに対して回転させる動作、および、第4アーム(シャフト)を回転させる動作を同時に行う複合動作であることが好ましい。これにより、エンドエフェクター20の重心位置の算出をより正確に行うことができる。
【0127】
<第4実施形態>
図7は、本発明の算出方法(第4実施形態)の一例を示すフローチャートである。
【0128】
以下、
図7を参照しつつ本発明の算出方法の第4実施形態について説明するが、以下では、第1実施形態との相違点を説明し、共通点については説明を省略する。また、以下では、エンドエフェクター20の重量の算出について代表的に説明する。
【0129】
(1)エンドエフェクター20の重量の算出
1.ステップS101A
まず、ステップS101Aにおいて、各種設定を行う。本ステップは、作業者が教示装置4を用いて、動作プログラム、速度条件、動作パラメーターの特性値等を入力することによりなされる。
【0130】
本ステップでは、特性値として、エンドエフェクター20の重量の初期値および後述するステップS105Aにおける判断の基準となる設定値TB0が設定される。
【0131】
設定値TB0は、しきい値とも言い、例えば、関節176の回転速度の下限値に対応したトルク値とされる。このような設定値TB0は、実験的に求められ、記憶部42に記憶されていてもよく、作業者が適宜設定してもよい。
【0132】
2.ステップS102A
次いで、制御装置3の制御部31は、ステップS101Aで設定された情報に基づいて、ロボットアーム10に試験動作を行わせる。
【0133】
3.ステップS103A(第1ステップ)
次いで、制御装置3は、トルクセンサー18から取得したトルク情報を取得し、教示装置4に送信する。教示装置4は、取得部45を介してトルク情報を取得する。
【0134】
取得部45が取得するトルク情報は、例えば、
図3中の細線で示すような、トルク値の経時変化、すなわち経時的なトルク値のデータQ1である。
図3は、横軸が時間、縦軸がトルクの実測値を示すグラフである。なお、図示の構成では、関節176の回転動作の加速および減速を1セットとして、4セット同じ動作を行っている。
【0135】
このようなステップS103Aが、モーターM6を駆動して関節176を回転させて、モーターM6に生じるトルクに関する情報であるトルク情報を取得する第1ステップに相当する。
【0136】
4.ステップS104A(第2ステップ)
教示装置4の制御部41は、取得部45を介して取得したトルク情報からトルク値TB1を取得する。本ステップでは、まず、制御部41は、トルク情報に所定の補正処理を施して補正トルク情報を生成する。補正トルク情報としては、第1実施形態で述べた通りである。
【0137】
制御部41は、第1実施形態と同様に、データQ1で示される補正トルク情報のうち、最大トルク値をトルク値TB1とする。このようなステップS104Aが、第1ステップで取得したトルク情報からトルク値TB1を取得する第2ステップに相当する。
【0138】
5.ステップS105A(第3ステップ)
次いで、制御部41は、TB0<TB1であるか否かを判断する。すなわち、ステップS104で取得したトルク値TB1と設定値TB0とを比較し、トルク値TB1が、設定値TA0よりも大きいか否かを判断する。
【0139】
ステップS105Aにおいて、TB0<TB1であると判断した場合、ステップS106Aに移行し、TB0<TB1ではないと判断した場合、ステップS107Aに移行する。
【0140】
このようなステップS105Aが、第2ステップで取得したトルク値TB1と、所定の設定値TB0とを比較する第3ステップである。
【0141】
6.ステップS106A(第4ステップ)
制御部41は、特性値の値を変更し、変更した値を記憶部42に記憶する。すなわち、制御部41は、エンドエフェクター20の重量を、ステップS101Aで設定された設定値、すなわちエンドエフェクター20の重量の初期値よりも、所定の重量、例えば0.5kg軽い値に設定し直す。そして、その設定でステップS102Aおよびそれ以降のステップを繰り返す。
【0142】
すなわち、1ループ目は、初期設定値のエンドエフェクター20の重量を用いて試験動作を行い、取得したトルク値TB1と設定値TB0とを比較する。2ループ目は、初期設定値よりも所定値軽いエンドエフェクター20の重量を用いて試験動作を行い、取得したトルク値TA1と設定値TA0とを比較する。3ループ目は、2ループ目での設定値よりも所定値軽いエンドエフェクター20の重量を用いて試験動作を行い、取得したトルク値TB1と設定値TB0とを比較する。ループの回数を重ねるごとに、トルク値TB1が増大し、設定値TB0との差(TBx)が段階的に小さくなり、n回目のループでトルク値TB1が設定値TB0を下回る。すなわち、n回目のループでTBx<0となる。
【0143】
7.ステップS107A(第4ステップ)
n回目のステップS105Aにおいて、TB0<TB1ではないと判断すると、1つ前の特性値の値を設定する。すなわち、n-1回目のループの際に用いた設定値であるエンドエフェクター20の重量を、作業時に用いる動作パラメーターの特性値として記憶部42に記憶する。
【0144】
このステップS106AおよびステップS107Aが、TB0<TB1≦1、かつ、TB1-TB0=TBxが可及的に小さくなるように特性値の値を変更し、該特性値を含んだ動作パラメーターを求める第4ステップに相当する。
【0145】
このように、上記ステップにより設定される特性値は、TB1を減少させることによりTBxを段階的にn回(nは2以上の整数)減少させ、0<TBxとなったときの、n-1回目の特性値である。すなわち、特性値の値を変更しつつ試験動作を行うことによりトルク値TB1を設定値TB0に近づけて行き、設定値TB0を超える直前のトルク値TB1に対応する特性値を求める。
【0146】
なお、TBxを1回目に1回減少させ、0<TBxとなった場合は、1回目の特性値を特性値に設定する。
【0147】
また、高精度に特性値を設定する必要がない場合は、TB1を減少させることによりTBxを段階的にn回(nは1以上の整数)減少させ、0<TBxとなったときの、n回目の特性値を特性値に設定してもよい。
【0148】
このようにして求められた特性値を含む動作パラメーターを用いてロボットアーム10を動作させることにより、ロボットアーム10の速度が必要以上に遅くなることなく、設定値TB0に可及的に近いトルク値を想定してロボットアーム10を迅速に動作させることができる。
【0149】
以上より、本発明によれば、適正な動作パラメーターを算出することができ、この動作パラメーターを用いてロボットアーム10を動作させることにより、ロボットアーム10に適正で迅速な動作を行わせることができる。
【0150】
上記では、動作パラメーターの特性値として、(1)エンドエフェクター20の重量の算出について説明したが、(2)エンドエフェクター20の重心位置の算出および(3)イナーシャの算出に関しても、同様に行うことができる。
【0151】
(2)エンドエフェクター20の重心位置の算出
エンドエフェクター20の重心位置を求める場合、特性値をエンドエフェクター20の重心位置とし、ステップS101Aでは、エンドエフェクター20の重心位置の初期位置を設定し、設定値TB0は、例えば、重心からの距離が許容最小限度とされる値に基づいて設定される。
【0152】
ステップS106Aでは、ステップS101Aで設定された初期位置よりも、所定値、例えば基準位置から0.1cm遠い位置に設定し直す。そして、その設定でステップS102Aおよびそれ以降のステップを繰り返す。これにより、適正なエンドエフェクター20の重心位置を算出することができる。
【0153】
(3)イナーシャの算出
関節176のイナーシャを求める場合、特性値をイナーシャとし、ステップS101Aでは、エンドエフェクター20のイナーシャの初期値を設定し、設定値TB0は、例えば、イナーシャの許容最小限度とされる値に基づいて設定される。
【0154】
ステップS106Aでは、ステップS101Aで設定された初期値よりも、所定値、例えば、0.01kg・m2大きい値に設定し直す。そして、その設定でステップS102Aおよびそれ以降のステップを繰り返す。これにより、適正なイナーシャを算出することができる。
【0155】
以上説明したように、本発明の算出方法は、回転軸O6を中心として回転する関節176と、関節176を回転駆動するモーターM6とを有し、先端にエンドエフェクター20が設置されるロボットアーム10の動作パラメーターを算出する算出方法である。また、動作パラメーターは、特性値としてのエンドエフェクター20の重量、エンドエフェクター20の重心位置、および関節176のイナーシャのうちの少なくとも1つを含む。また、算出方法は、モーターM6を駆動して関節176を回転させて、モーターM6に生じるトルクに関する情報であるトルク情報を取得する第1ステップと、第1ステップで取得したトルク情報から所定のトルク値TB1を取得する第2ステップと、第2ステップで取得したトルク値TB1と、所定の設定値TB0とを比較する第3ステップと、TB0/TB1≦1、かつ、TB1-TB0=TBxが可及的に小さくなるように、特性値の値を変更して動作パラメーターを求める第4ステップと、を有し、第4ステップで求める動作パラメーターは、TB1を減少させることによりTBxを段階的にn回減少させ、0<TBxとなったときの、n-1回目(このとき、nは2以上の整数)の特性値、またはn回目(このとき、nは1以上の整数)の特性値を含む。
【0156】
このような第1ステップ~第4ステップを経ることにより、適正な動作パラメーターを算出し、設定することができる。よって、この動作パラメーターを用いてロボットアーム10を動作させることにより、ロボットアーム10に適正で迅速な動作を行わせることができる。
【0157】
<第5実施形態>
図8は、本発明の算出方法(第5実施形態)の一例を示すフローチャートである。
【0158】
以下、
図8を参照しつつ本発明の算出方法の第5実施形態について説明するが、以下では、第1実施形態との相違点を説明し、共通点については説明を省略する。また、以下では、エンドエフェクター20の重心位置の算出について代表的に説明する。
【0159】
本実施形態では、イナーシャの算出中にエラーが生じた場合、それを加味してエンドエフェクター20の重心位置を変更することにより、イナーシャの算出を行う場合について説明する。
【0160】
なお、
図8中のステップS401~ステップS405は、
図4において、エンドエフェクター20の重心位置を適用した場合のステップS101~ステップS105とそれぞれ対応している。
【0161】
まず、第1実施形態と同様にイナーシャの算出を行い、ステップS104が完了したか、ステップS400において、TA1<TC0であるか否かを判断する。すなわち、ステップS104で取得したトルク値TA1と設定値TC0(異常しきい値)とを比較し、トルク値TA1が、設定値TC0よりも小さいか否かを判断する。TA1<TC0であると判断した場合、ステップS105に移行し、TA1<TC0ではないと判断した場合、過大なトルクが生じたと判断し、ステップS406に移行する。
【0162】
ステップS406では、重心位置を変更する。すなわち、ステップS401で設定された初期位置よりも、所定値、例えば基準位置から0.1cm遠い位置に設定し直す。そして、その設定でステップS402およびそれ以降のステップを繰り返す。このように、イナーシャの算出の際に、トルク値TA1が異常であった場合、エンドエフェクター20の重心位置を変更することにより、互いの特性値を加味しつつ、イナーシャおよびエンドエフェクター20の重心位置を適正かつバランスよく算出することができる。
【0163】
<変形例>
以上の各実施形態においては、トルク値を段階的にn回減少させ、トルク値が所定の条件を満たしたときに、n-1回目(このとき、nは2以上の整数)または、n回目(このとき、nは1以上の整数)の特性値を特性値に設定することを示したがこれに限らない。例えば、nが2以上の整数のとき、n-1回目の特性値とn回目の特性値との平均値を特性値に設定してもよく、また、n-1回目の特性値とn回目の特性値とで直線補完し、計算により、設定値ちょうどのトルク値をとるときの特性値を求めてもよい。
【0164】
以上、本発明の算出方法および算出装置を図示の各実施形態について説明したが、本発明は、これに限定されるものではない。各実施形態における構成を、適宜組み合わせたり置換したりすることができる。また、本発明の算出方法には、任意の工程が付加されていてもよい。また、本発明の算出装置の各部は、同様の機能を発揮し得る任意の構造物と置換することができる。また、任意の構造体が付加されていてもよい。
【符号の説明】
【0165】
1…ロボット、3…制御装置、4…教示装置、5…算出装置、10…ロボットアーム、11…基台、12…第1アーム、13…第2アーム、14…第3アーム、15…第4アーム、16…第5アーム、17…第6アーム、18…トルクセンサー、20…エンドエフェクター、31…制御部、32…記憶部、33…通信部、40…ディスプレイ、41…制御部、42…記憶部、43…通信部、44…入力操作部、45…取得部、100…ロボットシステム、171…関節、172…関節、173…関節、174…関節、175…関節、176…関節、D1…モータードライバー、D2…モータードライバー、D3…モータードライバー、D4…モータードライバー、D5…モータードライバー、D6…モータードライバー、E1…エンコーダー、E2…エンコーダー、E3…エンコーダー、E4…エンコーダー、E5…エンコーダー、E6…エンコーダー、M1…モーター、M2…モーター、M3…モーター、M4…モーター、M5…モーター、M6…モーター、TCP…制御点、TA0…設定値、TB0…設定値、TA1…トルク値、TB1…トルク値、O6…回転軸、Q1…データ、Q2…データ、QN…外れ値