以下、本発明のロボットシステム、制御装置、および制御方法を、添付図面に示す好適な実施形態に基づいて詳細に説明する。なお、以下で説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
また、以下で参照する図面の内、図1、図2、図5A、図5B、図6、図7A、図7B、および図10では、説明の便宜上、互いに直交する三つの軸であるX軸、Y軸、およびZ軸を矢印で図示しており、その矢印の先端側を「+(プラス)」、基端側を「-(マイナス)」としている。また、以下では、X軸に平行な方向を「X方向」、Y軸に平行な方向を「Y方向」、Z軸に平行な方向を「Z方向」という。また、以下では、説明の便宜上、図1中の上方である+Z方向側を「上」、下方である-Z方向側を「下」ということがある。
また、以下では、X軸とY軸とを含むXY平面が水平となっており、Z軸が鉛直方向となっている。ここで、本明細書における「水平」とは、完全な水平に限定されず、電子部品の搬送が阻害されない限り、水平に対して、例えば5°以内で傾斜している状態も含む。同様に、本明細書において、「鉛直」とは、完全に鉛直な場合のみならず、鉛直に対して±5°以内で傾斜している場合も含む。また、本明細書において、「平行」とは、二つの線(軸を含む)または面が互いに完全な平行である場合のみならず、±10°以内で傾斜している場合も含む。また、本明細書において、「直交」とは、二つの線(軸を含む)または面が互いに完全な直交である場合のみならず、±10°以内で傾斜している場合も含む。
1.第1実施形態
1.1:第1実施形態に係るロボットシステムの全体構成
先ず、第1実施形態に係るロボットシステムの構成について、図1、図2、および図3を参照して説明する。図1は、第1実施形態に係るロボットシステムの全体構成を示す図である。図2は、第1実施形態に係るロボットシステムに適用されるロボットの概略図である。なお、図1ではエンドエフェクターの図示は省略されている。また、図2ではエンドエフェクターおよび対象物を模式的に示している。
図1、および図2に示すように、第1実施形態に係るロボットシステム1は、ロボット2と、ロボット2を制御する制御装置3とを備えている。これにより、ロボットシステム1は、後述する制御装置3の利点を有することができる。ロボットシステム1の用途は、特に限定されず、例えば、電子部品および電子機器等の対象物の保持、搬送、組立および検査等の各作業で用いることができる。
ロボット2は、スカラロボットとも呼ばれる水平多関節ロボットであり、基台21と、基台21に設けられ基台21に対して回動軸である第1回動軸J1周りに回動可能なアーム22と、アーム22に設けられた作業ヘッド25と、を有する。また、ロボット2は、アーム22を回動軸である第2回動軸J2周りに駆動させるアーム駆動部26と、作業ヘッド25を駆動させる作業ヘッド駆動部28と、を有する。また、ロボット2は、第2回動軸J2と異なる位置に設けられ、作業ヘッド25にあって、第1回動軸J1および第2回動軸J2のいずれかと平行な直動軸の軸方向に移動し、下方の一端側にエンドエフェクター4が設けられるシャフトであるスプラインシャフト253と、アーム22またはスプラインシャフト253に設けられ、第2回動軸J2の軸方向と直交し、かつ、第2回動軸J2とスプラインシャフト253の回動軸である第3回動軸J3とを含む平面である仮想平面VPに平行な軸でありアーム22のロール軸である第3角速度検出軸A3周りの角速度ωA3を検出する慣性センサー20の一例としての角速度センサー201(図3参照)と、を有する。
制御装置3は、アーム駆動部26に含まれるモーターとしての第1モーター261の作動を制御する第1モーター制御部30およびモーターとしての第2モーター271の作動を制御する第2モーター制御部31を備えている(図3参照)。第1モーター制御部30は、アーム22が第2回動軸J2周りに回動した際に、角速度センサー201の検出した角速度ωA3に基づいて第1モーター261に対してフィードバック制御を行う。第1モーター制御部30は、このフィードバック制御により第1モーター261の作動を制御し、作業ヘッド25のスプラインシャフト253において、アーム22の回動方向に沿って生じる回動などの振動、例えばスプラインシャフト253に生じるエンドエフェクター4側の制御点P1の振動を抑制することができる。
このようなロボットシステム1によれば、後述するように、アーム22が第1回動軸J1周りに回動して停止した後、もしくは減速したときのアーム22の振動を抑制し、例えばスプラインシャフト253の制御点P1の位置をできる限り一定に維持することができる。これにより、エンドエフェクター4で対象物Wを把持する際、その把持を安定して行うことができる。
以下、ロボット2の構成について、さらに詳細に説明する。
基台21は、例えば図示しない床面にボルト等によって固定されている。アーム22は、基台21に連結され、基台21に対して第1回動軸J1周りに回動可能な第1アーム23と、第1アーム23の先端部に設けられ、第1アーム23に対して第1回動軸J1と平行な第2回動軸J2周りに回動可能に連結されている第2アーム24と、を有する。
なお、第1アーム23は、例えば樹脂などの柔軟性を有する部材を、その外表面を構成する部材に含むことが好ましい。この樹脂には、例えば、ポリ塩化ビニル・ポリエチレンなどの熱可塑性樹脂、フェノール樹脂・メラミン樹脂などの熱硬化性樹脂と、または天然ゴムや合成ゴムなどを例示することができる。第1アーム23は、外表面に樹脂などを用いることにより、樹脂の柔軟性による緩衝作用により、回動する第1アーム23が他の部位と接触した場合の接触衝撃を小さくすることができる。なお、アーム22は、角速度センサー201の検出した角速度ωA3に基づいて第1モーター261に対してフィードバック制御を行い、第1モーター261の作動を制御することによって、作業ヘッド25のスプラインシャフト253に生じる振動を抑制することができる。したがって、上述したように、アーム22は、外表面を柔軟な樹脂で構成した第1アーム23としても、作業ヘッド25のスプラインシャフト253に生じる振動を増加させることが無い。
また、基台21内には、基台21に対して第1アーム23を、その回動軸としての第1回動軸J1周りに回動させる第1モーター261が設けられている。また、第1モーター261には、第1モーター261の回転量を検出する角度センサーとしての第1エンコーダー262が設けられており、第1エンコーダー262からの出力によって基台21に対する第1アーム23の回動角を検出することができる。
また、第2アーム24内には、第1アーム23に対して第2アーム24を、その回動軸としての第2回動軸J2周りに回動させる第2モーター271が設けられている。また、第2モーター271には、第2モーター271の回転量を検出する角度センサーとしての第2エンコーダー272が設けられており、第2エンコーダー272からの出力によって第1アーム23に対する第2アーム24の回動角を検出することができる。図3に示すように、アーム駆動部26は、第1モーター261と、第1エンコーダー262と、第2モーター271と、第2エンコーダー272とを有する構成となっている。
作業ヘッド25は、第2アーム24の先端部、すなわち、第2アーム24の回動軸としての第2回動軸J2と異なる位置に設けられている。作業ヘッド25は、第2アーム24の先端部に同軸的に配置されたスプラインナット251およびボールネジナット252と、スプラインナット251およびボールネジナット252に挿通されたスプラインシャフト253と、を有する。
スプラインシャフト253は、第2アーム24に対して、その中心軸である第3回動軸J3周りに回動可能であり、かつ、第3回動軸J3に沿った方向、換言すれば第3回動軸J3と平行な方向に往復移動が可能となっている。なお、第1回動軸J1、第2回動軸J2および第3回動軸J3は、互いに平行であり、それぞれ、鉛直方向に沿っている。
また、第2アーム24内には、スプラインナット251を回転させてスプラインシャフト253を第3回動軸J3周りに回動させる第3モーター281が設けられている。また、第3モーター281には、第3モーター281の回転量を検出する角度センサーとしての第3エンコーダー282が設けられており、第3エンコーダー282からの出力によって第2アーム24に対するスプラインシャフト253の回転量を検出することができる。また、第2アーム24内には、ボールネジナット252を回転させてスプラインシャフト253を第3回動軸J3に沿った方向に移動させる第4モーター291が設けられている。また、第4モーター291には、第4モーター291の回転量を検出する角度センサーとしての第4エンコーダー292が設けられており、第4エンコーダー292からの出力によって第2アーム24に対するスプラインシャフト253の移動量を検出することができる。図3に示すように、作業ヘッド駆動部28は、第3モーター281と、第3エンコーダー282と、第4モーター291と、第4エンコーダー292とを有する構成となっている。
図1および図2に示すように、スプラインシャフト253の下端側の先端部には、エンドエフェクター4を装着するためのペイロード254が設けられている。ペイロード254に装着するエンドエフェクター4としては、特に限定されず、例えば、対象物Wを保持するハンドや対象物Wを加工する作業具等が挙げられる。なお、ハンドによる対象物Wの保持には、把持、および吸着を含む。
慣性センサー20の一例としての角速度センサー201(図3参照)は、第2アーム24内に設けられている。特に、本実施形態における角速度センサー201は、第2アーム24の先端部であるスプラインシャフト253の近傍に設けられている。なお、第1回動軸J1と慣性センサー20との間の距離、本構成では第1回動軸J1と角速度センサー201との間の距離を、距離Lとする。
このように、角速度センサー201が第2アーム24の先端部に設けられることにより、第1モーター261と角速度センサー201との距離Lが大きくなり、第2アーム24のロール軸である第3角速度検出軸A3周りの振動を、より振動の大きな部位において検出することができ、角速度ωA3の検出感度を高めることができる。
図2に示すように、角速度センサー201は、第2アーム24が第2回動軸J2周りに回動、または、第2アーム24の回動が停止した状態で、第1アーム23が第1回動軸J1周りに回動した際に、第2アーム24における三つの軸周りの角速度を検出することができる。以下では、「第1アーム23が第1回動軸J1周りに回動した際に、アーム22のロール軸周りに生じる角速度」を代表とする。
なお、三つの軸のうち、一つ目の軸は、図2中の第1角速度検出軸A1であり、二つ目の軸は、第2角速度検出軸A2であり、三つ目の軸は、第3角速度検出軸A3である。また、このような角速度センサー201としては、例えばジャイロセンサーで構成されているのが好ましい。
第1角速度検出軸A1は、第2回動軸J2と第3回動軸J3とを含む平面である仮想平面VP、すなわち、図2の紙面に直交する軸であり、図2に示すY軸に沿った軸である。この第1角速度検出軸A1周りの角速度、換言すれば、ピッチ方向の角速度を「第1角速度ωA1」と言うことがある。
第2角速度検出軸A2は、第1角速度検出軸A1と直交する、すなわち、第2回動軸J2の軸方向と平行な軸であり、図2に示すZ軸に沿った軸である。この第2角速度検出軸A2周りの角速度、換言すれば、ヨー方向の角速度を「第2角速度ωA2」と言うことがある。
第3角速度検出軸A3は、第1角速度検出軸A1と第2角速度検出軸A2とに直交する、すなわち、第2回動軸J2の軸方向と直交し、かつ、仮想平面VPに平行な軸であり、図2に示すX軸に沿った軸である。この第3角速度検出軸A3周りの角速度、換言すれば、アーム22のロール方向の角速度を「第3角速度ωA3」と言うことがある。
このように角速度センサー201は、仮想平面VPに直交する第1角速度検出軸A1周りの第1角速度ωA1を検出することができる。これにより、例えば第1角速度ωA1の情報を、スプラインシャフト253のZ軸に沿った上下方向の振動抑制制御に用いることができる。
また、角速度センサー201は、第2回動軸J2に平行な第2角速度検出軸A2周りの第2角速度ωA2も検出することができる。これにより、例えば第2角速度ωA2の情報を、スプラインシャフト253の水平方向の振動抑制制御に用いることができる。
また、角速度センサー201は、アーム22のロール軸と平行な第3角速度検出軸A3周りの第3角速度ωA3を検出することができる。この第3角速度ωA3は、スプラインシャフト253の第3角速度検出軸A3周りの振動抑制制御に用いられる。この制御については、後述する。
角速度センサー201としては、角速度を検出することができれば、特に限定されず、例えば、圧電体の変形により生じる電荷から角速度を検出する角速度センサー、静電容量の変化から角速度を検出する角速度センサー等を用いることができる。なお、本実施形態では、角速度センサー201として水晶振動子を用いている。この水晶振動子は、振動腕を有しており、振動腕を駆動振動モードで振動させている状態で、第1角速度検出軸A1、第2角速度検出軸A2および第3角速度検出軸A3のいずれかの検出軸周りの角速度が加わると、コリオリの力によって振動腕に検出振動モードが励振され、この検出振動モードに応じた検出信号を出力するようになっている。そのため、水晶振動子から出力される検出信号に基づいて、各検出軸周りの角速度を検出することができる。
図3に示すように、制御装置3は、ロボット2のアーム駆動部26、作業ヘッド駆動部28および慣性センサー20と電気的に接続され、これらの各部の作動を制御する第1モーター制御部30および第2モーター制御部31を有する。ロボット2と制御装置3とは、ケーブルで電気的に接続されている。ただし、ロボット2と制御装置3とは、有線方式の接続に限らず、例えば、ケーブルを省略し、無線方式で接続してもよい。また、制御装置3は、その一部または全部がロボット2に内蔵されていてもよい。
第1モーター制御部30や第2モーター制御部31などを含む制御装置3としては、例えば、プロセッサーの一例であるCPU(Central Processing Unit)が内蔵されたコンピューター(PC:personal computer)等で構成することができる。これにより、制御装置3は、ロボット2の各部を制御することができる。
また、図3に示すように、制御装置3は、各種情報(諸条件)を記憶する記憶部39と、各種情報(諸条件)を入力する入力部38と、を備えている。
記憶部39には、例えば、ロボット2を動作させるプログラムや、アーム22が第2回動軸J2周りに回動した際に、ロール軸周りのアーム22の回動方向を示す情報である補正符号、および角速度センサー201の検出した角速度ωA3に基づいて第1モーター261に対してフィードバック制御する制御プログラムや、入力部38を介して入力された情報、および定義されている感度補正量などを記憶することができる。また、記憶部39には、後述する第3角速度検出軸A3周り、すなわちロール方向へのアーム22の回動方向を示す補正符号などの情報を記憶することができる。
入力部38は、ロボット2の動作に必要な情報を入力することができる。この入力部38としては、特に限定されず、例えば、キーボードやタッチパネル等で構成することができる。
1.2.第1実施形態に係る、アームの振動を抑制する制御方法および制御装置
次に、スプラインシャフト253の第3角速度検出軸A3周りの振動を抑制する制御方法について、図1~図3に加え、図4、図5A、図5B、図6、図7A、図7B、図8、および図9を参照して説明する。図3は、第1実施形態に係るロボットシステムの制御系を示すブロック図である。図4は、第1実施形態に係るロボットシステムの回路系を示すブロック図である。図5Aは、アームの動作ステップを説明する図1中のQ2視図である。図5Bは、アームの動作ステップを説明する図1中のQ1視図である。図6は、第2アームとスプラインシャフトとを説明する概略図である。図7Aは、アーム停止時または減速時のスプラインシャフトのロール方向への回転移動例1を示す概略図である。図7Bは、アーム停止時または減速時のスプラインシャフトのロール方向への回転移動例2を示す概略図である。図8は、スプラインシャフトの長さによる捻れ方向を示す符号テーブルの一例を示す表である。図9は、アーム停止時または減速時にロール方向に生じる角速度を示すグラフである。
なお、以下説明する本形態におけるアームの振動を抑制する制御方法では、アーム22のロール軸周りの角速度ωA3を、慣性センサー20の一例としての角速度センサー201によって検出する検出工程と、角速度センサー201の検出した角速度と、アーム22の停止時または減速時におけるアーム22のロール軸周りの回動方向を示す情報と、に基づいて、第1モーター261を制御する制御工程と、を含む。
第1アーム23および第2アーム24を含むアーム22は、例えば、図5AのStep1に示す初期位置から、矢印a1で示す第1回動軸J1周りに所定角度回動し、二点鎖線で示すアーム22aの位置に停止した際に、その慣性によって第3角速度検出軸A3周り、すなわち、アーム22のロール方向に振動する。なお、図5AのStep2が、この停止した際の状態を示している。そして、図5BのStep2AおよびStep2Bに示すように、アーム22を構成する第2アーム24の先端部に設けられているスプラインシャフト253も、この第2アーム24とともに、例えばスプラインシャフト253aからスプラインシャフト253aaの間において矢印b1のように、第3角速度検出軸A3周りに振動することになる。図5Bでは、スプラインシャフト253の停止目標位置を位置Pで示している。そして、角速度センサー201では、この第3角速度検出軸A3周りの振動と等価な角速度ωA3を検出することができ、この工程が検出工程に相当する。
ここで、第2アーム24の先端部に設けられているスプラインシャフト253の振動の回動方向は、図5Bに示す矢印b1のような正転を示す振動例と、矢印b1と逆方向に回転振動する逆転を示す振動例とがある。以下で説明するフィードバック制御では、第2アーム24の先端部に設けられているスプラインシャフト253の振動の回動方向を示す情報として、後述する手法のいずれかによって正転・逆転を表す補正符号を決定する。そして、制御装置3は、制御工程において、第3角速度検出軸A3周りのアーム22の回動方向を示す情報である補正符号と、角速度センサー201からの角速度ωA3に係る出力と、に基づいて、第1モーター261の作動を制御することによって、スプラインシャフト253の振動をより的確に抑制することができる。
第2アーム24の先端部に設けられているスプラインシャフト253の振動の回動方向は、アーム22の捻れ方向モーメントMj2と、対象物Wを把持したときのスプラインシャフト253で構成される負荷側モーメントMloadとの大小関係によって決定される。換言すれば、アーム22の第1回動軸J1周りにおける回動が停止したとき、アーム22の第3角速度検出軸A3周りに生じる捻れの回動方向は、図6に示すように、対象物Wを把持したときのスプラインシャフト253の位置条件、つまりスプラインシャフト253の長さDによって回動の正逆方向が反転する。すなわち、スプラインシャフト253に生じる振動の回動方向を示す情報としての補正符号が変わることになる。このような、スプラインシャフト253における振動の回動方向を示す情報としての補正符号は、種々の手法によって決定することができる。決定されたスプラインシャフト253における振動の回動方向を示す情報は、記憶部39に記憶される。
先ず、回動方向を示す情報としての補正符号を決定する第1の手法について説明する。回動方向を示す情報としての補正符号を決定する第1の手法は、第1アーム23と第2アーム24とを含むロボット2の構造の理論値から求める。
具体的に、第1の手法では、上述したように、アーム22の捻れ方向モーメントMj2と、対象物Wを把持したときのシャフトとしてのスプラインシャフト253で構成される負荷側モーメントMloadとの大小関係によって、スプラインシャフト253における振動の回動方向を示す情報としての補正符号を求めることができる。ここで、アーム22の捻れ方向モーメントMj2は、第1アーム23と第2アーム24とを含むロボット2の構造の理論値から求めることができる。アーム22の捻れ方向モーメントMj2は、第1アーム23と第2アーム24との結合支点A4から見たモーメントの理論値であるアーム22の捻れ方向モーメントMj2として予め求めておく。このモーメントの理論値であるアーム22の捻れ方向モーメントMj2に対して、第1アーム23と第2アーム24との結合支点A4から見たスプラインシャフト253の長さDと対象物Wを把持したときの負荷の重さとを乗算して求めた負荷側モーメントMloadを比較することによって求めることができる。
以下、スプラインシャフト253における振動の回動方向を示す符号としての補正符号について、図7Aおよび図7Bを参照して説明する。
先ず、図7Aを参照して、アーム22の捻れ方向モーメントMj2が、スプラインシャフト253の長さD1×対象物Waで表される負荷側モーメントMloadよりも小さい場合、換言すれば負荷の重心が第3角速度検出軸A3に対して対象物W側に大きく離れている場合について説明する。この場合、図7Aの回転移動例1に示すように、矢印Jの方向に移動してきた第2アーム24が仮想線Sの位置で停止したとき、対象物Wa側が、第2アーム24が移動してきた矢印Jの方向と同じ方向である回転方向F1に沿って、第3角速度検出軸A3周りに回転移動、即ち回動する。このような回転移動の場合の補正符号が、「補正符号プラス(+)」である。
次に、図7Bを参照して、アーム22の捻れ方向モーメントMj2が、スプラインシャフト253の長さD1×対象物Waで表される負荷側モーメントMloadよりも大きい場合、換言すれば負荷の重心が第3角速度検出軸A3に近い位置にある場合について説明する。この場合、図7Bの回転移動例2に示すように、矢印Jの方向に移動してきた第2アーム24が仮想線Sの位置で停止したとき、第3角速度検出軸A3に対して対象物Wbの配置側と反対側が、第2アーム24が移動してきた矢印Jの方向と同じ方向である回転方向F2に沿って、第3角速度検出軸A3周りに回転移動する。換言すれば、対象物Wb側が、第2アーム24が移動してきた矢印Jの方向と反対方向、すなわち、図7Aに示す方向と逆方向に、第3角速度検出軸A3周りに回転移動、即ち回動する。このような回転移動の場合の補正符号が、「補正符号マイナス(-)」である。
図5Aおよび図5Bに戻り、アーム22を構成する第2アーム24が、第3角速度検出軸A3周りに振動した際、その振動が大きければ大きい程、制御点P1での振幅、換言すれば制御点P1での変位量も大きくなり、その結果、制御点P1の位置が定まらないおそれがある(図5B:Step2B参照)。そして、この状態で、例えば、エンドエフェクター4で対象物Wを把持しようとしても、その把持を行うことが困難となるおそれがある。
そこで、制御装置3では、ロール軸周りのアーム22の回動方向を示す情報である補正符号、および角速度センサー201の検出したアーム22のロール軸周りの角速度ωA3に基づいて第1モーター261に対してフィードバック制御を行い、第1モーター261の作動を制御することによって、スプラインシャフト253の第3角速度検出軸A3周り、すなわちロール軸周りの振動の抑制を行う。
このフィードバック制御では、ロール軸周りのアーム22の回動方向を示す情報である補正符号、および角速度センサー201の検出したアーム22におけるロール軸周りの角速度ωA3の方向と大きさに基づいて、その角速度ωA3を相殺する方向にアーム22が移動するように第1モーター261の作動を制御する。すなわち、制御装置3は、速度制御として第1モーター261の作動を制御し、図5AのStep3および図5BのStep3の矢印a2に示す方向にアーム22aを移動させることによって角速度ωA3を相殺する。その結果、第2アーム24aの先端部に設けられているスプラインシャフト253aは、図5AのStep3および図5BのStep3に示す第2アーム24bのスプラインシャフト253bの位置となる。
その後、制御装置3は、アーム22の位置制御として第1モーター261の作動を制御し、図5AのStep4および図5BのStep4の矢印a3に示す方向にアーム22bをアーム22cの位置に移動させ、停止目標位置である位置Pにスプラインシャフト253cを停止する。このように、制御装置3は、このアーム22、すなわちスプラインシャフト253の振動の抑制により、制御点P1の停止位置が、できる限り一定となる制御を可能に構成されている。
なお、上述したロール軸周りのアーム22の回動方向を示す情報である補正符号の決定は、以下のような第2の手法、および第3の手法を用いても行うことができる。
回動方向を示す情報である補正符号を決定する第2の手法は、慣性センサー20としての角速度センサー201からの出力に基づいて補正符号を決定する。アーム22には、把持装置としてのハンドや周辺機器などが取り付けられることがある。このような場合、アーム22の捻れ方向モーメントMj2は、ロボット2の設計構造の理論値からずれてしまうことになる。
第2の手法では、このようにずれの生じたアーム22の捻れ方向モーメントMj2に対応したアーム22の捻れ回動方向を求めるため、ハンドや周辺機器などがアーム22に取り付けられた状態において、アーム22が停止したときの捻れ回動方向を、シャフトとしてのスプラインシャフト253の長さDに対応させて取得する。
この捻れ回動方向の取得に当たっては、アーム22が停止したときの角速度センサー201からの出力の符号を取得し、この出力の符号に基づいて捻れ回動方向を決定する。第2の手法では、アーム22の回動が停止するときの角速度が時計回りの方向である場合を「補正符号プラス(+)」と規定し、反時計回りの方向である場合を「補正符号マイナス(-)」と規定する。
具体的には、スプラインシャフト253の長さDを、例えば一定間隔で変化させ、その都度アーム22を回動させて停止したときの最初の捻れ回動方向が、「補正符号プラス(+)」であるか、「補正符号マイナス(-)」であるかを記録し、図8に示すようなテーブルを作成する。図8の表に示す例では、スプラインシャフト253の長さであるスプライン長を0mmから180mmまで10mm間隔で変化させたときの補正符号の状況が示されている。
また、具体的に図8の表に示す例では、スプラインシャフト253の長さであるスプライン長が0mm~160mmとなる第1位置にスプラインシャフト253が位置する場合の捻れ回動方向を示す第1情報としての補正符号「マイナス」と、スプラインシャフト253の長さであるスプライン長が170mm~180mmとなる第2位置にスプラインシャフト253が位置する場合の捻れ回動方向を示す第2情報としての補正符号「プラス」と、を含む。即ち、振動の回動方向を示す情報は、スプラインシャフト253が第1位置に位置する場合の捻れ回動方向を示す第1情報と、スプラインシャフト253が第1位置よりも高い第2位置に位置する場合の捻れ回動方向を示す第2情報とを有している。このようなスプラインシャフト253における振動の回動方向を示す情報は、記憶部39に記憶される。
そして、実際のロボット2の使用時においては、その停止時におけるスプラインシャフト253の長さD、例えばスプライン長が第1位置にあるか、もしくは第2位置にあるかに応じて補正符号を決定し、決定された補正符号と、角速度センサー201からの角速度ωA3に係る出力と、に基づいて、第1モーター261の作動を制御する。これにより、スプラインシャフト253の振動を、より的確に抑制することができる。
なお、第2の手法において、アーム22の捻れ方向モーメントMj2と負荷側モーメントMloadとが釣り合って、捻れ回動が起きない領域がある場合、もしくは補正符号にばらつきを生じる虞がある領域は、補正符号を用いずに、第1モーター261の作動を制御することができる。すなわち、制御工程では、スプラインシャフト253の長さであるスプライン長が、第1の位置にある場合の捻れ回動方向を示す第1情報としての補正符号「マイナス」と、第2の位置にある場合の第2情報としての補正符号「プラス」との間を不感帯エリアとし、この不感帯エリアでは、補正符号を用いずに第1モーター261の作動を制御する工程を含むことができる。
図8に表で示されている例では、スプラインシャフト253が、第1位置と第2位置との間に位置する、スプライン長が160mmを超え、170mm未満の範囲にあるときは、アーム22の捻れ方向モーメントMj2と負荷側モーメントMloadとが釣り合って、捻れ回動が起きないことがある。あるいは、補正符号が「プラス」になるか「マイナス」になるか不安定となることがある。したがって、スプライン長が160mmを超え、170mm未満の範囲にスプラインシャフト253が位置している場合は、この間を不感帯エリアとして補正をかけずに角速度センサー201からの角速度ωA3に係る出力に基づいて、第1モーター261の作動を制御する。
このように、制御装置3は、スプラインシャフト253の捻れ回動が生じない第1位置と第2位置との間に、スプラインシャフト253がある場合の不感帯エリアにおいて、補正符号を用いず、角速度センサー201からの角速度ωA3に係る出力に基づいて、第1モーター261の作動を制御することから、安定したフィードバック制御を行うことができる。
回動方向を示す情報である補正符号を決定する第3の手法は、慣性センサー20としての角速度センサー201からの出力に基づいて補正符号を決定する。第3の手法では、アーム22の回動が停止するときの角速度が、プラス方向と規定する時計回りの方向で始まるか、またはマイナス方向として規定する反時計回りの方向から始めるかが不明である場合、アーム22の回動停止直後における角速度データの絶対値を用いて制御に使用する。
具体的に第3の手法では、図9に示すように、アーム22の回動停止直後から出力されている角速度データの符号が反転するゼロクロス点Cまでの間の角速度データの符号によって、ゼロクロス点C以降の角速度データの符号を反転させるか否かを判断する。例えば、アーム22停止時の本来の角速度データが、破線Hのような波形で推移する場合、ゼロクロス点Cまでの間の角速度データの絶対値を取ると、実線Kで示す波形になる。このとき、ゼロクロス点Cまでの間の角速度データの符号はマイナスであるため、ゼロクロス点C以降の破線Hで示す角速度データの符号を反転させる。その結果、破線Hで示す角速度データは、符号反転され実線Kで示す波形となる。このように符号反転された角速度データを用いることにより、アーム22の回動が停止するときの角速度の方向が不明である場合におけるフィードバック制御を行うことができる。
なお、制御装置3は、フィードバック制御として、角速度ωA3に基づいてその角速度ωA3を相殺する方向にアーム22が移動するように第1モーター261の作動を制御する速度制御と、速度制御によって生じる位置ずれを予測してアーム22を目標位置に移動させる位置制御とを、並行して行ってもよい。
このような構成として、制御装置3は、図4に示すように、第1モーター制御部30と、第2モーター制御部31と、微分回路401と、感度補正量処理部402と、フィードバック量算出部403と、を有している。
第1モーター制御部30は、位置制御部としての第1位置制御部301および速度制御部としての第1速度制御部302を含み、第1アーム23を第1回動軸J1周りに回動させる第1モーター261の作動を制御する。また、第1モーター制御部30は、アーム22が第2回動軸J2周りに回動した際に、ロール軸周りのアーム22の回動方向を示す情報である補正符号、および角速度センサー201の検出した角速度ωA3に基づいて、第1モーター261に対してフィードバック制御を行う。ここで、第1モーター261は、第1モーター制御部30の作動制御により、減速機263を介して第1アーム23を回動させることができる。
具体的には、第1速度制御部302は、ロール軸周りのアーム22の回動方向を示す情報である補正符号、および角速度センサー201の検出したアーム22のロール軸周りの角速度ωA3の方向と大きさに基づいて、その角速度ωA3を相殺する方向にアーム22が移動するように第1モーター261の作動を制御する。すなわち、制御装置3は、速度制御として第1モーター261の作動を制御し、角速度ωA3の発生する方向にアーム22を移動させることによって角速度ωA3を相殺し、角速度ωA3を低減する。
その後、第1位置制御部301は、角速度ωA3を相殺し、角速度ωA3を低減するために第1速度制御部302によって移動した分の距離を、目標位置に戻す位置制御を行う。これにより、第2アーム24の先端部、換言すればスプラインシャフト253を目標位置に移動させる。
これらにより、第1速度制御部302が、ロール軸周りのアーム22の回動方向を示す情報である補正符号、および角速度センサー201からの出力に基づいて第1モーター261の速度を制御することにより、角速度ωA3による第2アーム24のロール軸周りの振動を抑制し、第1位置制御部301が振動によってずれた分を位置制御で目標位置に移動させる。これにより、第2アーム24の先端部をより短時間に、且つより正確に目標位置に到達させることができる。
第1位置制御部301は、例えば予め記憶部39に記憶されている位置指令に基づいて第1アーム23を第1回動軸J1周りに回動させる第1モーター261への速度指令を生成する部分である。
第1速度制御部302は、第1位置制御部301で生成された速度指令に基づいて第1モーター261を駆動する電流指令を生成する部分である。
第2モーター制御部31は、位置制御部としての第2位置制御部311および速度制御部としての第2速度制御部312を含み、第2アーム24を第1回動軸J1周りに回動させる第2モーター271の作動を制御する。ここで、第2モーター271は、第2モーター制御部31の作動制御により、減速機273を介して第2アーム24を回動させることができる。
第2位置制御部311は、例えば予め記憶部39に記憶されている位置指令に基づいて第2アーム24を第2回動軸J2周りに回動させる第2モーター271への速度指令を生成する部分である。
第2速度制御部312は、第2位置制御部311で生成された速度指令に基づいて第2モーター271を駆動する電流指令を生成する部分である。
微分回路401は、第2エンコーダー272からの出力によって得られた第1アーム23の第1回動軸J1周りの回動角度を微分する部分である。この微分されることにより生成された指令である角速度指令は、第1速度制御部302に入力されて、第1モーター261を駆動する電流指令に重畳される。
感度補正量処理部402は、角速度センサー201の検出した角速度ωA3に対して、定義してあった感度補正量をかけ、フィードバック制御に使用可能な制御量とする処理を行う。この処理として、本実施形態では、角速度ωA3に係数k1を乗じる。なお、係数k1は、0を超える任意の数値である。例えば、0<k1<1の場合、角速度ωA3は、感度補正量処理部402で減少される。これに対し、感度補正量処理部402での補正を省略した場合には、角速度ωA3がそのままの大きさで、すなわち、減少されずにフィードバック量算出部403に入力されてしまい、その結果、第1アーム23の第1回動軸J1周りの円滑な回動が困難となるおそれがある。
フィードバック量算出部403は、感度補正量処理部402で処理した角速度ωA3に基づく制御量から角速度フィードバック値を算出し、第1速度制御部302に送る。すなわち、角速度センサー201の検出した角速度ωA3に基づくフィードバックは、第1位置制御部301には行わず、第1速度制御部302に対して行う。
なお、ロボット2には、第1アーム23の第1回動軸J1周りの回動や第2アーム24の第2回動軸J2周りの回動による外乱振動が入ってきてもよい。
このようなロボット2を制御する制御方法では、角速度センサー201の検出した角速度ωA3に基づくフィードバック制御によって、第1アーム23を回動する第1モーター261が、位置指令および速度指令に合った駆動状態となる。そして、この駆動状態は、第2アーム24の先端部に設けられているスプラインシャフト253の第3角速度検出軸A3周りの移動が相殺され、振動を抑制することができる状態となっている。これにより、スプラインシャフト253の位置が、短時間で定まることとなる。
以上、説明した第1実施形態に係るロボットシステム1によれば、第1モーター制御部30は、ロール軸周りのアーム22の回動方向を示す情報である補正符号、および慣性センサー20の一例である角速度センサー201の検出したアーム22のロール軸周りの角速度ωA3に基づいて第1モーター261に対しフィードバック制御を行う。このフィードバック制御は、第2アーム24の先端部に設けられているスプラインシャフト253に生じるアーム22のロール軸周りの振動を抑制するように第1モーター261の作動を制御することから、第2アーム24の先端部に設けられているスプラインシャフト253の振動を抑制し、スプラインシャフト253の位置を短時間で定めることができる。
なお、上述では、角速度センサー201を第2アーム24の先端部側に設ける構成例を示して説明したが、角速度センサー201の設置位置はこれに限らない、角速度センサー201は、例えば、作業ヘッド25、もしくはスプラインシャフト253に設けてもよいし、第1アーム23に設けてもよい。なお、角速度センサー201を第1アーム23に設ける場合、角速度センサー201は、その検出感度を向上させるため、第1アーム23の回動軸である第1回動軸J1からできるだけ離れた位置に設けることが望ましい。
また、上述では、アーム22の停止時の動作を例示して説明したが、アーム22の減速時の動作においても、同様な制御方法を用いることができる。
2.第2実施形態
2.1.第2実施形態に係るロボットシステムの全体構成
次に、第2実施形態に係るロボットシステムの構成について、図10、図11、図12、および図13を参照して説明する。図10は、第2実施形態に係るロボットシステムの加速度センサーの配置例を説明する概略図である。図11は、第2実施形態に係るロボットシステムの制御系を示すブロック図である。図12は、第2実施形態に係るロボットシステムの回路系の実施例1を示すブロック図である。図13は、第2実施形態に係るロボットシステムの回路系の実施例2を示すブロック図である。
図11に示すように、第2実施形態に係るロボットシステム100a,100bは、前述の第1実施形態に係るロボットシステム1に対し、ロボット200a,200bに設けられている慣性センサー20として加速度センサー202a,202bを用いているところが異なっている。また、これに伴って、第2実施形態に係るロボットシステム100a,100bでは、制御装置300a,300bの構成が異なっている。ロボットシステム100a,100bの他の構成については、前述の第1実施形態に係るロボットシステム1と同様である。したがって、以下では、ロボットシステム1と同様な構成の詳細な説明を省略することがある。また、ロボットシステム1と同様な構成部位は、同名称および同符号を付して説明する。
図11に示すように、第2実施形態に係るロボットシステム100a,100bは、ロボット200a,200bに慣性センサー20として加速度センサー202a,202bを用いている。なお、加速度センサー202a,202bは、アーム22のロール方向である捻れ方向の加速度を検出するため、第1アーム23の第1回動軸J1および第2アーム24の第2回動軸J2に対して、離れた位置に取り付けられていることが望ましい。
また、加速度センサー202a,202bは、その取り付け位置によって、検出する加速度の方向が異なる。図10には、図1のQ1方向から見た場合の、第2アーム24への加速度センサー202a,202bの取り付け位置が示されている。図10では、アーム22のロール軸である第2アーム24の第3角速度検出軸A3の上側に加速度センサー202aが取り付けられている実施例1と、第2アーム24の第3角速度検出軸A3の水平面上に加速度センサー202bが取り付けられている実施例2と、を例示している。なお、第2アーム24には、第2回動軸J2と異なる位置に設けられ、作業ヘッド25にあって、第1回動軸J1および第2回動軸J2のいずれかと平行な直動軸の軸方向に移動し、下方の一端側にエンドエフェクター4が設けられるシャフトであるスプラインシャフト253が設けられている。換言すれば、スプラインシャフト253は、鉛直方向であるZ方向に沿って設けられ、その下端に対象物Wが把持されている。
実施例1に係る加速度センサー202a、および実施例2に係る加速度センサー202bは、いずれもアーム22のロール軸である第2アーム24の第3角速度検出軸A3を中心とした円c1,c2の、それぞれの接線方向f1,f2の加速度を検出する。そして、後段にて説明する制御装置300a,300bは、加速度センサー202a,202bの検出した加速度、および上述の第1実施形態で説明したロール軸周りのアーム22の回動方向を示す情報である補正符号に基づいてフィードバック制御を行い、第1モーター261の作動を制御する。この第1モーター261の作動の制御により、作業ヘッド25のスプラインシャフト253(図2参照)に生じる振動、例えばスプラインシャフト253に生じるエンドエフェクター4側の制御点P1(図2参照)の振動を抑制することができる。
ロボット200a,200bは、スカラロボットとも呼ばれる水平多関節ロボットであり、その構成は、第1実施形態のロボット2と同様であるので詳細な説明を省略する。なお、ロボット200a,200bは、基台21に連結され、基台21に対して第1回動軸J1周りに回動可能な第1アーム23と、第1アーム23の先端部に設けられ、第1アーム23に対して第1回動軸J1と平行な第2回動軸J2周りに回動可能に連結されている第2アーム24と、を有する。なお、第1アーム23は、第1実施形態と同様に、例えば樹脂などの柔軟性を有する部材を、その外表面を構成する部材に含んでいる。
以下、実施例1に係る加速度センサー202aの構成例、および実施例2に係る加速度センサー202bの構成例を順次説明する。
2.2.実施例1に係る、アームの振動を抑制する制御方法および制御装置
第2実施形態の実施例1に係るロボットシステム100aを構成する加速度センサー202aは、図10に示すように、アーム22のロール軸である第2アーム24の第3角速度検出軸A3の上側に取り付けられ、第3角速度検出軸A3を中心とした円c1の接線方向f1、すなわち水平方向の加速度を検出する。
水平方向の加速度を検出する加速度センサー202aは、第3角速度検出軸A3の上側に取り付けられていることから、ロール方向の捻れ振動成分以外の、ロボットアーム駆動によるアーム角速度も検出してしまう。この課題に対して、ロボットシステム100aでは、第1モーター261の角速度から算出されるアーム先端角速度と、加速度センサー202aの設置場所のアーム先端角速度との差分を取ることによって、加速度センサー202aにおける捻れ振動成分のみの検出値としている。
図12に示すように、実施例1に係る構成のロボットシステム100aは、ロボット200aと、制御装置300aと、を有している。ロボット200aは、図11に示したように第1実施形態と同様構成のアーム駆動部26および作業ヘッド駆動部28と、慣性センサー20を有している。本実施例1での慣性センサー20は、加速度センサー202aである。
制御装置300aは、第1モーター制御部30と、第2モーター制御部31と、入力部38と、記憶部39と、演算処理部40(図11参照)とを有している。演算処理部40は、微分回路401と、感度補正量処理部402と、フィードバック量算出部403と、積分回路404と、センサー角速度算出部405と、微分回路406と、モーター角速度算出部407と、を有している。
第1モーター制御部30は、第1位置制御部301および第1速度制御部302を含み、第1アーム23を第1回動軸J1周りに回動させる第1モーター261の作動を制御する。また、第1モーター制御部30は、アーム22が第2回動軸J2周りに回動した際に、加速度センサー202aの検出した加速度から算出された角速度、およびロール軸周りのアーム22の回動方向を示す情報である補正符号に基づいて、第1モーター261に対してフィードバック制御を行う。ここで、第1モーター261は、第1モーター制御部30の作動制御により、減速機263を介して第1アーム23を回動させることができる。
具体的には、第1速度制御部302は、ロール軸周りのアーム22の回動方向を示す情報である補正符号を用い、加速度センサー202aの検出した加速度から角速度を算出し、その角速度を相殺する方向にアーム22が移動するように第1モーター261の作動を制御する。すなわち、制御装置3は、速度制御として第1モーター261の作動を制御し、角速度の発生する方向にアーム22を移動させることによって角速度を相殺し、角速度を低減する。
その後、第1位置制御部301は、角速度を相殺し、低減するために第1速度制御部302によって移動した分の距離を、目標位置に戻す位置制御を行う。これにより、第2アーム24の先端部、換言すればスプラインシャフト253を目標位置に移動させる。
これらにより、第1速度制御部302が加速度センサー202aからの出力、およびロール軸周りのアーム22の回動方向を示す情報である補正符号に基づいて第1モーター261の速度を制御することにより、角速度による第2アーム24のロール軸周りの振動を抑制し、第1位置制御部301が振動によってずれた分を位置制御で目標位置に移動させる。これにより、第2アーム24の先端部をより短時間に、且つより正確に目標位置に到達させることができる。
第1位置制御部301は、例えば予め記憶部39に記憶されている位置指令に基づいて第1アーム23を第1回動軸J1周りに回動させる第1モーター261への速度指令を生成する部分である。
第1速度制御部302は、第1位置制御部301で生成された速度指令に基づいて第1モーター261を駆動する電流指令を生成する部分である。
第2モーター制御部31は、第2位置制御部311および第2速度制御部312を含み、第2アーム24を第1回動軸J1周りに回動させる第2モーター271の作動を制御する。ここで、第2モーター271は、第2モーター制御部31の作動制御により、減速機273を介して第2アーム24を回動させることができる。
第2位置制御部311は、例えば予め記憶部39に記憶されている位置指令に基づいて第2アーム24を第2回動軸J2周りに回動させる第2モーター271への速度指令を生成する部分である。
第2速度制御部312は、第2位置制御部311で生成された速度指令に基づいて第2モーター271を駆動する電流指令を生成する部分である。
微分回路401は、第2エンコーダー272からの出力によって得られた第1アーム23の第1回動軸J1周りの回動角度を微分する部分である。この微分されることにより生成された指令である角速度指令は、第1速度制御部302に入力されて、第1モーター261を駆動する電流指令に重畳される。
積分回路404は、加速度センサー202aによって得られた第2アーム24の先端部、すなわちアーム22の先端部の先端加速度を積分し、速度情報に変換する部分である。この積分により生成されたアーム22先端の水平方向における速度情報である先端速度は、センサー角速度算出部405に入力されて、アーム22先端の水平方向のセンサー角速度に変換される。
センサー角速度算出部405は、積分回路404から出力されたアーム22の先端速度を、1/Lを用いた処理により、アーム22の先端部における水平方向のセンサー角速度を算出する。ここで、Lは、図1に示すように、第1モーター261の第1回動軸J1から加速度センサー202aまでの距離である。
微分回路406は、第2エンコーダー272からの出力によって得られた第1アーム23の第1回動軸J1周りの回動角度を微分する部分である。
モーター角速度算出部407は、微分回路406から出力された第1アーム23における第1回動軸J1周りの回動角度の微分値に、減速機263の減速比率を乗算し、アーム22の先端部におけるモーター角速度を算出する。
そして演算処理部40は、センサー角速度算出部405の算出したセンサー角速度と、モーター角速度算出部407の算出したモーター角速度との差分を取り、アーム22のロール軸周りの振動成分のみの角速度を生成する。
感度補正量処理部402は、加速度センサー202aの検出した加速度から、積分回路404と、センサー角速度算出部405と、微分回路406と、モーター角速度算出部407とによって算出された、アーム22のロール軸周りの振動成分のみの角速度に対して、定義してあった感度補正量をかけ、フィードバック制御に使用可能な制御量とする処理を行う。この処理として、本実施形態では、角速度に係数k1を乗じる。なお、係数k1は、0を超える任意の数値である。例えば、0<k1<1の場合、角速度は、感度補正量処理部402で減少される。これに対し、感度補正量処理部402での補正を省略した場合には、角速度がそのままの大きさで、すなわち、減少されずにフィードバック量算出部403に入力されてしまい、その結果、第1アーム23の第1回動軸J1周りの円滑な回動が困難となるおそれがある。
フィードバック量算出部403は、感度補正量処理部402で処理した水平方向の振動成分の角速度に基づく制御量から角速度フィードバック値を算出し、第1速度制御部302に送る。すなわち、加速度センサー202aの検出した加速度から算出された水平方向の振動成分の角速度に基づくフィードバックは、第1位置制御部301には行わず、第1速度制御部302に対して行う。
このようなロボット200aおよび制御装置300aを用いたロボットシステム100aの制御方法では、加速度センサー202aの検出した加速度から算出された水平方向の振動成分の角速度、およびロール軸周りのアーム22の回動方向を示す情報である補正符号に基づくフィードバック制御によって、第1アーム23を回動する第1モーター261が、位置指令および速度指令に合った駆動状態となる。そして、この駆動状態は、第2アーム24の先端部に設けられているスプラインシャフト253の第3角速度検出軸A3周りの移動が相殺され、振動を抑制することができる状態となっている。これにより、スプラインシャフト253の位置が、短時間で定まることとなる。
以上、説明した第2実施形態の実施例1に係るロボットシステム100aによれば、第1モーター制御部30は、慣性センサー20の一例である加速度センサー202aの検出したアーム22の水平方向の加速度から算出された水平方向の振動成分の角速度、およびロール軸周りのアーム22の回動方向を示す情報である補正符号に基づいて第1モーター261に対しフィードバック制御を行う。このフィードバック制御は、第2アーム24の先端部に設けられているスプラインシャフト253に生じるアーム22のロール軸周りの振動を抑制するように第1モーター261の作動を制御することから、第2アーム24の先端部に設けられているスプラインシャフト253の振動を抑制し、スプラインシャフト253の位置を定めることができる。
2.3.実施例2に係る、アームの振動を抑制する制御方法および制御装置
第2実施形態の実施例2に係るロボットシステム100bを構成する加速度センサー202bは、図10に示すように、アーム22のロール軸である第2アーム24の第3角速度検出軸A3の図中Y軸に沿った水平面上に取り付けられ、第3角速度検出軸A3を中心とした円c2の接線方向f2、すなわち垂直方向の加速度を検出する。
垂直方向の加速度を検出する加速度センサー202bは、第3角速度検出軸A3の水平面上に取り付けられていることから、重力W1の影響を考慮する必要があり、常に重力との差分を取る必要がある。この課題に対して、ロボットシステム100bでは、加速度センサー202bの検出した加速度と、アーム22と把持されている対象物Wとに係る重力W1との差分を取ることによって、加速度センサー202bにおける捻れ振動成分のみの検出値としている。
演算処理部40は、加速度センサー202bの検出した加速度と、重力W1との差分を取り、この差分値を加速度センサー202bにおける捻れ振動成分のみの検出値として積分回路404に入力する。
図13に示すように、実施例2に係る構成のロボットシステム100bは、ロボット200bと、制御装置300b、を有している。ロボット200bは、第1実施形態と同様構成のアーム駆動部26および作業ヘッド駆動部28と、慣性センサー20(図11参照)としての加速度センサー202bと、を有している。
制御装置300bは、第1モーター制御部30と、第2モーター制御部31と、入力部38と、記憶部39と、演算処理部40(図11参照)とを有している。演算処理部40は、微分回路401と、感度補正量処理部402と、フィードバック量算出部403と、積分回路404と、センサー角速度算出部405と、を有している。
第1モーター制御部30は、位置制御部としての第1位置制御部301および速度制御部としての第1速度制御部302を含み、第1アーム23を第1回動軸J1周りに回動させる第1モーター261の作動を制御する。また、第1モーター制御部30は、アーム22が第2回動軸J2周りに回動した際に、加速度センサー202bの検出した加速度から算出された角速度、およびロール軸周りのアーム22の回動方向を示す情報である補正符号に基づいて、第1モーター261に対してフィードバック制御を行う。ここで、第1モーター261は、第1モーター制御部30の作動制御により、減速機263を介して第1アーム23を回動させることができる。
具体的には、第1速度制御部302は、ロール軸周りのアーム22の回動方向を示す情報である補正符号を用い、加速度センサー202bの検出した加速度から角速度を算出し、その角速度を相殺する方向にアーム22が移動するように第1モーター261の作動を制御する。すなわち、制御装置300bは、速度制御として第1モーター261の作動を制御し、角速度の発生する方向にアーム22を移動させることによって角速度を相殺し、角速度を低減する。
その後、第1位置制御部301は、角速度を相殺し、低減するために第1速度制御部302によって移動した分の距離を、目標位置に戻す位置制御を行う。これにより、第2アーム24の先端部、換言すればスプラインシャフト253を目標位置に移動させる。
これらにより、第1速度制御部302が加速度センサー202bからの出力に基づいて第1モーター261の速度を制御することにより、角速度による第2アーム24のロール軸周りの振動を抑制し、第1位置制御部301が振動によってずれた分を位置制御で目標位置に移動させる。これにより、第2アーム24の先端部をより短時間に、且つより正確に目標位置に到達させることができる。
第1位置制御部301は、例えば予め記憶部39に記憶されている位置指令に基づいて第1アーム23を第1回動軸J1周りに回動させる第1モーター261への速度指令を生成する部分である。
第1速度制御部302は、第1位置制御部301で生成された速度指令に基づいて第1モーター261を駆動する電流指令を生成する部分である。
第2モーター制御部31は、第2位置制御部311および第2速度制御部312を含み、第2アーム24を第1回動軸J1周りに回動させる第2モーター271の作動を制御する。ここで、第2モーター271は、第2モーター制御部31の作動制御により、減速機273を介して第2アーム24を回動させることができる。
第2位置制御部311は、例えば予め記憶部39に記憶されている位置指令に基づいて第2アーム24を第2回動軸J2周りに回動させる第2モーター271への速度指令を生成する部分である。
第2速度制御部312は、第2位置制御部311で生成された速度指令に基づいて第2モーター271を駆動する電流指令を生成する部分である。
微分回路401は、第2エンコーダー272からの出力によって得られた第1アーム23の第1回動軸J1周りの回動角度を微分する部分である。この微分されることにより生成された指令である角速度指令は、第1速度制御部302に入力されて、第1モーター261を駆動する電流指令に重畳される。
積分回路404は、加速度センサー202bによって得られた第2アーム24の先端部、すなわちアーム22の先端部の先端加速度と重力W1との差分をとった検出値を積分し、速度情報に変換する部分である。この積分により生成されたアーム22の先端の垂直方向における速度情報である先端速度は、センサー角速度算出部405に入力されて、アーム22先端の水平方向のセンサー角速度に変換される。
センサー角速度算出部405は、積分回路404から出力されたアーム22の先端速度を、アーム22の先端部における垂直方向のアーム22先端のセンサー角速度を算出する。
感度補正量処理部402は、加速度センサー202bの検出した加速度から、積分回路404と、センサー角速度算出部405とによって算出された、アーム22のロール軸周りの振動成分のみの角速度に対して、定義してあった感度補正量をかけ、フィードバック制御に使用可能な制御量とする処理を行う。この処理として、本実施形態では、角速度に係数k1を乗じる。なお、係数k1は、0を超える任意の数値である。例えば、0<k1<1の場合、角速度は、感度補正量処理部402で減少される。これに対し、感度補正量処理部402での補正を省略した場合には、角速度がそのままの大きさで、すなわち、減少されずにフィードバック量算出部403に入力されてしまい、その結果、第1アーム23の第1回動軸J1周りの円滑な回動が困難となるおそれがある。
フィードバック量算出部403は、感度補正量処理部402で処理した垂直方向の振動成分の角速度に基づく制御量から角速度フィードバック値を算出し、第1速度制御部302に送る。すなわち、加速度センサー202bの検出した加速度から算出された垂直方向の振動成分の角速度に基づくフィードバックは、第1位置制御部301には行わず、第1速度制御部302に対して行う。
このようなロボット200bおよび制御装置300bを用いたロボットシステム100bの制御方法では、加速度センサー202bの検出した加速度から算出された図10中のZ軸に沿った垂直方向の振動成分の角速度、およびロール軸周りのアーム22の回動方向を示す情報である補正符号に基づくフィードバック制御によって、第1アーム23を回動する第1モーター261が、位置指令および速度指令に合った駆動状態となる。そして、この駆動状態は、第2アーム24の先端部に設けられているスプラインシャフト253の第3角速度検出軸A3周りの移動が相殺され、振動を抑制することができる状態となっている。これにより、スプラインシャフト253の位置が、短時間で定まることとなる。
以上、説明した第2実施形態の実施例2に係るロボットシステム100bによれば、第1モーター制御部30は、慣性センサー20の一例である加速度センサー202bの検出したアーム22の垂直方向の加速度から算出された垂直方向の振動成分の角速度、およびロール軸周りのアーム22の回動方向を示す情報である補正符号に基づいて第1モーター261に対しフィードバック制御を行う。このフィードバック制御は、第2アーム24の先端部に設けられているスプラインシャフト253に生じるアーム22のロール軸周りの振動を抑制するように第1モーター261の作動を制御することから、第2アーム24の先端部に設けられているスプラインシャフト253の振動を抑制し、スプラインシャフト253の位置を定めることができる。
なお、上述した第1実施形態および第2実施形態では、ロボットシステム1,100a,100bの構成として、制御装置3,300a,300bがロボット2,200a,200bの外部に設けられている構成で説明したが、これに限らない。制御装置3,300a,300bは、ロボット2,200a,200bの外部に設けられていてもよいし、内部に設けられていてもよい。
また、上述した第1実施形態および第2実施形態では、慣性センサー20が第2アーム24に設けられている構成で説明したが、これに限らない。慣性センサー20は、作業ヘッド25を構成するスプラインシャフト253に設けられていてもよい。
また、ロボットシステム1によるフィードバック制御は、ロボット2,200a,200bのような、外表面に柔軟性を有する材料を含む構成の第1アーム23のように、捻れ変位の生じ易し構成のアームを有するロボットに対して好適である。
以下に、上述した実施形態から導き出される内容を、各態様として記載する。
[態様1]本態様に係るロボットシステムは、回動軸周りに回動するアームと、前記アームを前記回動軸周りに回動させるモーターと、前記アームに接続され前記回動軸と平行な直動軸の軸方向に移動するシャフトと、前記アームまたはシャフトに設けられた慣性センサーと、を有するロボットと、前記モーターを制御する制御部を有する制御装置と、を備え、前記慣性センサーは、前記回動軸および前記直動軸に対して直交するロール軸周りの角速度、または、前記ロール軸を中心とした円の接線方向の加速度を検出し、前記制御部は、前記アームの停止時または減速時における前記アームの前記ロール軸周りの回動方向を示す情報と、前記慣性センサーからの出力とに基づいて、前記モーターを制御する。
本態様のロボットシステムによれば、制御装置の制御部は、アームの停止時または減速時において、アームの停止時または減速時におけるアームのロール軸周りの回動方向を考慮し、慣性センサーから出力される、回動軸および直動軸に対して直交するロール軸周りの角速度、またはロール軸を中心とした円の接線方向の加速度に基づいてモーターを制御することから、アームのロール軸周りの振動を抑制することができる。
[態様2]本態様に係るロボットシステムは、第1回動軸周りに回動する第1アームと、前記第1アームに接続され前記第1回動軸と平行な第2回動軸周りに回動する第2アームと、を含むアームと、前記第1アームを前記第1回動軸周りに回動させる第1モーターと、前記第2アームに接続され前記回動軸と平行な直動軸の軸方向に移動するシャフトと、前記第2アームまたは前記シャフトに設けられた慣性センサーと、を有するロボットと、前記第1モーターを制御する制御部を有する制御装置と、を備え、前記慣性センサーは、前記回動軸および前記直動軸に対して直交するロール軸周りの角速度、または、前記ロール軸を中心とした円の接線方向の加速度を検出し、前記制御部は、前記アームの停止時または減速時における前記アームの前記ロール軸周りの回動方向を示す情報と、前記慣性センサーからの出力とに基づいて、前記第1モーターを制御する。
本態様のロボットシステムによれば、第1モーターを制御する制御装置の制御部は、第1回動軸周りに回動する第1アームと第1アームに接続され第1回動軸と平行な第2回動軸周りに回動する第2アームとを含むアームの停止時または減速時において、アームの停止時または減速時におけるアームのロール軸周りの回動方向を考慮し、慣性センサーから出力される、回動軸および直動軸に対して直交するロール軸周りの角速度、またはロール軸を中心とした円の接線方向の加速度に基づいて第1モーターを制御することから、アームのロール軸周りの振動を抑制することができる。
[態様3]上記態様に記載のロボットシステムにおいて、前記情報は、前記慣性センサーからの出力に基づいて求められることとしてもよい。
本態様によれば、アームの停止時または減速時におけるアームの回動方向を示す情報が、慣性センサーからの出力に基づいて求められることから、実際のアームの回動状態に即した的確なモーターの制御を行うことができる。
[態様4]上記態様に記載のロボットシステムにおいて、前記制御部は、記憶部を有し、前記情報は、前記記憶部に記憶されていることとしてもよい。
本態様によれば、制御部は、記憶部に記憶されているアームの停止時または減速時におけるアームの回動方向を示す情報と、ロール軸周りの慣性センサーからの出力とに基づいてモーターを制御することから、アームのロール軸周りの振動を抑制することができる。
[態様5]上記態様に記載のロボットシステムにおいて、前記情報は、前記シャフトが第1位置に位置する場合の前記回動方向を示す第1情報と、前記シャフトが前記第1情報よりも高い第2位置に位置する場合の前記回動方向を示す第2情報とを有することとしてもよい。
本態様によれば、シャフトが第1位置に位置する場合の回動方向を示す第1情報、およびシャフトが第1情報よりも高い第2位置に位置する場合の回動方向を示す第2情報の二つの情報と、ロール軸周りの慣性センサーからの出力とに基づいてモーターを制御することから、アームのロール軸周りの振動をより効果的に抑制することができる。
[態様6]上記態様に記載のロボットシステムにおいて、前記制御部は、前記シャフトが前記第1位置と前記第2位置との間に位置する場合、前記情報を用いずに前記モーターを制御することとしてもよい。
本態様によれば、制御部は、第1位置と第2位置との間におけるシャフトの回動が生じない位置でのモーターの制御を、アームの停止時または減速時におけるアームの回動方向を示す情報を用いずに行うことから、安定したモーターの制御を行うことができる。
[態様7]上記態様に記載のロボットシステムにおいて、前記シャフトには負荷が設けられ、前記情報は、前記負荷の重さに基づいていることとしてもよい。
本態様によれば、制御部は、アームの停止時または減速時におけるアームの回動方向を示す情報を、シャフトの負荷の重さに基づいて算出し、モーターを制御することから、アームのロール軸周りの振動をより効果的に抑制することができる。
[態様8]上記態様に記載のロボットシステムにおいて、前記アームの外表面を構成する部材は、樹脂を含むこととしてもよい。
本態様によれば、アームの外表面を構成する樹脂の有する柔軟性による緩衝作用により、アームとの接触衝撃を小さくすることができる。このように、緩衝作用を有する樹脂でアームの外表面を構成しても、慣性センサーの検出結果に基づいてモーターが制御されることから、アームのロール軸周りの振動を抑制することができる。
[態様9]本態様に係る制御装置は、モーターによって回動軸周りに回動するアームと、前記アームに接続され前記回動軸と平行な直動軸の軸方向に移動するシャフトと、前記回動軸および前記直動軸に対して直交するロール軸周りの角速度、または、前記ロール軸を中心とした円の接線方向の加速度を検出する慣性センサーと、を有するロボットの制御装置であって、前記モーターを制御する制御部を有し、前記制御部は、前記アームの停止時または減速時における前記アームの前記ロール軸周りの回動方向を示す情報と、前記慣性センサーからの出力とに基づいて、前記モーターを制御する。
本態様の制御装置によれば、制御部は、ロボットの有するアームの停止時または減速時における、ロール軸の軸方向から見たときのアームの慣性によって移動する回動方向を考慮し、ロール軸周りの慣性センサーからの出力に基づいてモーターを制御することから、アームのロール軸周りの振動を抑制することができる。
[態様10]上記態様に記載の制御装置において、前記情報は、前記慣性センサーからの出力に基づいて求められることとしてもよい。
本態様によれば、制御装置は、アームの停止時または減速時におけるアームの回動方向を示す情報を、慣性センサーからの出力に基づいて求めることから、実際のアームの回動状態に即した的確なモーターの制御を行うことができる。
[態様11]上記態様に記載の制御装置において、前記制御部は、記憶部を有し、前記情報は、前記記憶部に記憶されていることとしてもよい。
本態様によれば、制御装置は、記憶部に記憶されているアームの停止時または減速時におけるアームの回動方向を示す情報と、ロール軸周りの慣性センサーからの出力とに基づいてモーターを制御することから、アームのロール軸周りの振動を抑制することができる。
[態様12]上記態様に記載の制御装置において、前記情報は、前記シャフトが第1位置に位置する場合の前記回動方向を示す第1情報と、前記シャフトが前記第1位置よりも高い第2位置に位置する場合の前記回動方向を示す第2情報と、を有することとしてもよい。
本態様によれば、制御装置は、シャフトが第1位置に位置する場合の回動方向を示す第1情報、およびシャフトが第1位置よりも高い第2位置に位置する場合の回動方向を示す第2情報の二つの情報と、ロール軸周りの慣性センサーからの出力とに基づいてモーターを制御することから、アームのロール軸周りの振動をより効果的に抑制することができる。
[態様13]上記態様に記載の制御装置において、前記制御部は、前記シャフトが前記第1位置と前記第2位置との間に位置する場合、前記情報を用いずに前記モーターを制御することとしてもよい。
本態様によれば、制御装置は、第1位置と第2位置との間におけるシャフトの回動が生じない位置でのモーターの制御を、アームの停止時または減速時におけるアームの回動方向を示す情報を用いずに行うことから、効率的な制御を行うことができる。
[態様14]上記態様に記載の制御装置において、前記シャフトには負荷が設けられ、前記情報は、前記負荷の重さに基づいていることとしてもよい。
本態様によれば、制御装置は、アームの停止時または減速時におけるアームの回動方向を示す情報を、シャフトの負荷の重さに基づいて算出し、モーターを制御することから、アームのロール軸周りの振動をより効果的に抑制することができる。
[態様15]本態様に係る制御方法は、モーターによって回動軸周りに回動するアームと、前記アームに接続され前記回動軸と平行な直動軸の軸方向に移動するシャフトと、慣性センサーと、を有するロボットの制御方法であって、前記回動軸および前記直動軸に対して直交するロール軸周りの角速度、または、前記ロール軸を中心とした円の接線方向の加速度を、前記慣性センサーによって検出する検出工程と、検出した前記角速度または前記加速度と、前記アームの停止時または減速時における前記アームの前記ロール軸周りの回動方向を示す情報と、に基づいて、前記モーターを制御する制御工程と、を備える。
本態様の制御方法によれば、回動軸および直動軸に対して直交するロール軸周りの角速度、または、ロール軸を中心とした円の接線方向の加速度を、慣性センサーによって検出する検出工程と、検出した角速度または加速度と、アームの停止時または減速時におけるアームのロール軸周りの回動方向を示す情報と、に基づいて、モーターを制御する制御工程とにより、ロボットの有するアームの停止時または減速時における、ロール軸の軸方向から見たときのアームの慣性によって移動する回動方向を考慮し、ロール軸周りの慣性センサーからの出力に基づいてモーターを制御することから、停止時または減速時におけるアームのロール軸周りの振動を抑制することができる。
[態様16]上記態様に記載の制御方法において、前記情報は、前記慣性センサーからの出力に基づいて求められることとしてもよい。
本態様の制御方法によれば、アームの停止時または減速時におけるアームの回動方向を示す情報を、慣性センサーからの出力に基づいて求めることから、実際のアームの回動状態に即した的確なモーターの制御を行うことができる。
[態様17]上記態様に記載の制御方法において、前記情報は、記憶されている情報であることとしてもよい。
本態様の制御方法によれば、記憶されているアームの停止時または減速時におけるアームの回動方向を示す情報と、ロール軸周りの慣性センサーからの出力とに基づいてモーターを制御することから、アームのロール軸周りの振動を抑制することができる。
[態様18]上記態様に記載の制御方法において、前記情報は、前記シャフトが第1位置に位置する場合の前記回動方向を示す第1情報と、前記シャフトが前記第1位置よりも高い第2位置に位置する場合の前記回動方向を示す第2情報と、を有することとしてもよい。
本態様の制御方法によれば、シャフトが第1位置に位置する場合の回動方向を示す第1情報、およびシャフトが第1位置よりも高い第2位置に位置する場合の回動方向を示す第2情報の二つの情報と、ロール軸周りの慣性センサーからの出力とに基づいてモーターを制御することから、アームのロール軸周りの振動をより効果的に抑制することができる。
[態様19]上記態様に記載の制御方法において、前記制御工程は、前記シャフトが前記第1位置と前記第2位置との間に位置する場合、前記情報を用いずに前記モーターを制御する工程を含むこととしてもよい。
本態様の制御方法によれば、制御工程は、第1位置と第2位置との間におけるシャフトの回動が生じない位置でのモーターの制御を、アームの停止時または減速時におけるアームの回動方向を示す情報を用いずに行う工程を含むことから、効率的な制御を行うことができる。
[態様20]上記態様に記載の制御方法において、前記シャフトには負荷が設けられ、前記情報は、前記負荷の重さに基づいていることとしてもよい。
本態様の制御方法によれば、アームの停止時または減速時におけるアームの回動方向を示す情報を、シャフトの負荷の重さに基づいて算出し、モーターを制御することから、アームのロール軸周りの振動をより効果的に抑制することができる。