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

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

▶ 株式会社デンソーウェーブの特許一覧

<>
  • 特許-原点合わせ方法、ロボットシステム 図1
  • 特許-原点合わせ方法、ロボットシステム 図2
  • 特許-原点合わせ方法、ロボットシステム 図3
  • 特許-原点合わせ方法、ロボットシステム 図4
  • 特許-原点合わせ方法、ロボットシステム 図5
  • 特許-原点合わせ方法、ロボットシステム 図6
  • 特許-原点合わせ方法、ロボットシステム 図7
  • 特許-原点合わせ方法、ロボットシステム 図8
  • 特許-原点合わせ方法、ロボットシステム 図9
  • 特許-原点合わせ方法、ロボットシステム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-28
(45)【発行日】2022-01-19
(54)【発明の名称】原点合わせ方法、ロボットシステム
(51)【国際特許分類】
   B25J 9/10 20060101AFI20220112BHJP
【FI】
B25J9/10 A
【請求項の数】 6
(21)【出願番号】P 2017141876
(22)【出願日】2017-07-21
(65)【公開番号】P2019018327
(43)【公開日】2019-02-07
【審査請求日】2020-03-13
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】特許業務法人 サトー国際特許事務所
(72)【発明者】
【氏名】河地 勇登
(72)【発明者】
【氏名】福岡 貴史
(72)【発明者】
【氏名】白取 寛章
【審査官】杉田 隼一
(56)【参考文献】
【文献】特許第5886043(JP,B2)
【文献】特開昭62-103705(JP,A)
【文献】特開昭60-009680(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10
(57)【特許請求の範囲】
【請求項1】
モータによって駆動されるアームと、前記モータの回転角度を検出する角度検出器とを有し、前記アームの可動範囲がストッパによって機械的に規定されるロボットにおいて、前記アームの原点合わせを行うための原点合わせ方法であって、
前記アームを速度制御によって移動させ、前記アームを可動範囲の一端側に設けられている前記ストッパに押し当てた状態における前記角度検出器の値と、前記アームを可動範囲の他端側に設けられている前記ストッパに押し当てた状態における前記角度検出器の値との平均値を求めて前記ストッパ間の中点を推定するものであって、
前記アームを速度制御により前記ストッパに押し当てる際、可動範囲の両端において同じモータ出力で押し当てた状態で前記角度検出器の値を取得することにより、前記アームの原点合わせを行う原点合わせ方法。
【請求項2】
前記アームを、速度制御によって定まる押し当て力で前記ストッパに押し当てる請求項1記載の原点合わせ方法。
【請求項3】
前記アームを速度制御により移動させて前記ストッパに到達したと判定した際のモータ出力を用いることで、可動範囲の両端において同じモータ出力で押し当てた状態を実現する請求項1記載の原点合わせ方法。
【請求項4】
前記アームを押し当てた際に重力の影響が加わる側では、モータ出力を、少なくとも静摩擦力を越えられる分だけ増加させる請求項1記載の原点合わせ方法。
【請求項5】
前記アームを前記ストッパに押し当てる場合、重力の影響によりモータ出力が相対的に大きくなる側の前記ストッパへの押し当てを行った後に、モータ出力が相対的に小さくなる側の前記ストッパへの押し当てを行う請求項1から4のいずれか一項記載の原点合わせ方法。
【請求項6】
モータによって駆動されるアームを有するロボットと、
前記アームの可動範囲を機械的に規定するストッパと、
前記モータの回転角度を検出する角度検出器と、
前記アームを速度制御によって移動させ、前記アームを可動範囲の一端側に設けられている前記ストッパに押し当てた状態における前記角度検出器の値と、前記アームを可動範囲の他端側に設けられている前記ストッパに押し当てた状態における前記角度検出器の値との平均値を求めて前記ストッパ間の中央の位置を推定するものであって、前記アームを速度制御により前記ストッパに押し当てる際、可動範囲の両端において同じモータ出力で押し当てた状態で前記角度検出器の値を取得することにより、前記アームの原点合わせを行う制御部と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットのアームの原点合わせを行うための原点合わせ方法、ロボットシステムに関する。
【背景技術】
【0002】
ロボットは、一般的に、アームの回転角度を取得する目的で例えば光学エンコーダ等の
角度検出器が設けられている。このとき、角度検出器の値とアームの実際の回転角度と
の間にずれが生じると、ロボット動作時の位置精度の低下に直接結びつくことになる。そ
のため、ロボットを組み立てた後、アームの可動範囲を機械的に規定するストッパにアー
ムを押し当て、可動範囲の両端でそれぞれ取得した角度検出器の値の平均を原点として
設定する原点合わせが行われている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開昭62-103705号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、特許文献1のような手法で原点合わせを行う際には、当然のことながらアームを回転させてストッパに押し当てる必要がある。
しかしながら、原点合わせを行う時点では、未だ原点が定まっていないことから、アームの位置は未確定となっている。その場合、通常の動作時のようにアームの回転角度に基づいた角度制御によりアームを回転させることができない状態となっている。そして、角度制御が困難な状態でアームを回転させると、回転速度やトルクが過大になってアームやストッパの変形や損傷を招くおそれが高くなる。
【0005】
本発明は上記事情に鑑みてなされたものであり、その目的は、アームやストッパの変形や損傷を招くことなく原点合わせを行うことができる原点合わせ方法、ロボットシステムを提供することにある。
【課題を解決するための手段】
【0006】
請求項1に記載した発明は、モータによって駆動されるアームと、モータの回転角度を検出する角度検出器とを有し、アームの可動範囲がストッパによって機械的に規定されているロボットにおいて、アームの原点合わせを行うためのロボットの原点合わせ方法である。
【0007】
このような機械的にアームの可動範囲を規定する構成の場合には、アームを可動範囲の一端側に設けられているストッパに押し当てた状態における角度検出器の値と、アームを可動範囲の他端側に設けられているストッパに押し当てた状態における角度検出器の値とを用いて原点合わせを行うことができると考えられる。
【0008】
具体的には、アームをストッパに押し当てたときの角度検出器の値を可動範囲の両端において取得し、取得した値の平均を取ることにより、例えば可動範囲の中点を原点として設定することができる。なお、可動範囲の中点ではなく、一方のストッパの位置を原点として設定する場合には、中点を特定した後、その半分をオフセット値として加えること等も可能である。
【0009】
その一方で、原点合わせを行う前の段階では、原点が特定されていないため、アームの現在位置が未確定となっている。換言すると、原点合わせを行おうとする時点では、アームが現在どの角度に位置しているかが不明であるため、例えばストッパと接触する直前の角度まで移動させるといった角度制御が行えない状態となっている。
【0010】
この場合、モータ出力を十分に大きくすることにより、アームの初期位置が可動範囲内のどの位置であっても、アームをストッパに接触させることができると考えられる。しかし、モータ出力が大き過ぎると、回転速度やトルクが過大になってアームやストッパの変形や損傷を招くおそれが高くなる。アームの回転方向によっては、ツールの自重によって同じモータ出力であってもアームの速度が速くなり、過大なトルクでアームがストッパに衝突したりするおそれがある。これはモータ出力を徐々に大きくしていく手法でも同様である。
【0011】
その一方で、原点合わせを行うために最小限のモータ出力を出荷時等に予め設定しておいたとしても、出荷後にユーザ側でツールが取り付けられた場合には、モータ出力が不足してアームをストッパまで移動させることができなくなる可能性がある。
【0012】
このように、原点合わせを行うためにアームをストッパに押し当てる際のモータ出力を予め設定することは困難である。換言すると、アームをストッパに押し当てて原点合わせを行う場合には、角度検出器の値を取得する以前の準備段階において、考慮および対策すべき問題が存在していた。
【0013】
そこで、アームをストッパに押し当てる際、アームを速度制御により移動させる。この場合、アームの位置が未確定であっても、アームの速度、より厳密には、アームの角速度は、角度検出器の値の時間変化に基づいて求めることができる。つまり、原点合わせを行うまでの段階においては、角度制御はできないものの、速度制御は可能である。
【0014】
この場合、速度制御時の目標速度を、アームやストッパの変形や損傷を招かない程度に予め設定しておくことにより、アームやストッパの変形や損傷を防ぐことができる。そして、一定のモータ出力ではなく、一定の目標速度でアームを制御することにより、出荷後にユーザ側でツール等が取り付けられた場合であっても、アームを移動させることができる。つまり、原点合わせを行う際のアームの位置が可動範囲のどの位置であっても、アームをストッパまで移動させることができる。
【0015】
さらに、一定の目標速度であれば、アームは、可動範囲の両端において、ストッパに同等の状態、つまりは、同等の押し当て状態で接触すると考えられる。そして、押し当て力が同等であれば、仮にアームとモータとの間に介在する減速機等の構造物が弾性変形したとしても、その弾性変形分は、大きさが等しく且つ向きが逆になると考えられる。
【0016】
これにより、上記したように可動範囲の両端において取得した角度検出器の値の平均値を取ることで可動範囲の中点を正しく特定することができる。そして、その中点を原点とすることにより、アームやストッパの変形や損傷を招くことなく、原点合わせを行うことができる。
【0017】
また、治具等を用いることなく、ロボットシステム単体で原点合わせを行うことができ
るため、出荷前の作業時だけでなく出荷後のメンテナンス時等においても容易且つ効率的
に原点合わせを行うことができる。また、自動で原点合わせを行うことができるため、作
業者の熟練度等に左右されることもない。
また、請求項6に記載したロボットシステムの発明によっても、上記した請求項1に係
る発明と同様の効果を得ることができ、アームやストッパの変形や損傷を招くことなく、
原点合わせを行うことができる。
【0018】
請求項2に記載した発明は、速度制御によって定まる押し当て力でアームをストッパに押し当てる。上記したように、一定の目標速度で速度制御する場合、アームはストッパに同等の押し当て状態で接触すると考えられる。このとき、モータ出力は目標速度と実速度の差で決まること、また、押し当て状態では実速度は0であることから、設定した目標速度の大きさで押し当て力が決まることになる。
【0019】
そのため、可動範囲の両端においてアームをストッパに押し当てた場合には、それぞれのストッパには同じ力が加わることになり、弾性変形量が等しくなる。そして、可動範囲の両端における弾性変形量が等しい場合には平均値をそのまま中点として扱うことができるため、原点合わせを行うことができる。
【0020】
請求項1に記載した発明は、アームを速度制御によりストッパに押し当てる、可動範囲の両端において同じモータ出力で押し当てた状態で角度検出器の値を取得する。
上記したように、速度制御によりアームを移動させることにより、アームが可動範囲のどの位置にあったとしても、アームをストッパまで移動させることができる。
【0021】
ただし、アームの可動範囲によっては、換言すると、ストッパが設けられる位置によっては、可動範囲の両端において同等の押し当て状態を実現することが困難な場合がある。これは、アームやツールの自重が押し当て状態に影響を与える場合に相当する。
【0022】
アームがストッパに接触した状態では、アームとストッパとは静止状態で釣り合っていることから、減速機等の構造物には、ロボットの姿勢とは無関係にモータ出力に相当するトルクが作用する。そして、このトルクは、構造物の弾性変形を引き起こす。
【0023】
このとき、アームを重力に逆らって速度制御により移動させる際のモータ出力は、アームを重力に沿って速度制御により移動させる際のモータ出力よりも大きくなると考えられる。そのため、重力による影響が異なる位置関係でストッパが設けられている場合には、速度制御によりアームをストッパに接触させたとしても、モータ出力が異なることから、可動範囲の両端での弾性変形分に差が生じることになる。
【0024】
そして、可動範囲の両端での弾性変形分に差が出ると、取得した角度検出器の値の中点にも差が生じ、原点を正しく特定できなくなる。
そこで、アームを速度制御によりストッパに押し当てた後、可動範囲の両端において同じモータ出力で押し当てた状態で角度検出器の値を取得する。
【0025】
つまり、可動範囲の両端において、弾性変形の要因となるモータ出力が等しくなるように調整する。これにより、可動範囲の両端においてモータ出力に起因する弾性変形分が等しくなり、取得した角度検出器の値の平均が正しく可動範囲の中点となり、原点合わせを正しく行うことができる。
【0026】
請求項3に記載した発明は、アームを速度制御により移動させてストッパに到達したと判定した際のモータ出力を用いることで、可動範囲の両端において同じモータ出力で押し当てた状態を実現する。上記したように、同じ速さでアームを移動させれば同じ押し当て状態が実現できるため、ストッパに到達したと判定した際のモータ出力を用いて押し当てることにより、モータ出力を調整する処理を省略して簡便に原点合わせを行うことができる。
【0027】
請求項4に記載した発明は、アームを押し当てた際に重力の影響が加わる側では、モータ出力を、少なくとも静摩擦力を越えられる分だけ増加させる。これにより、実際には弾性変形していない状態を弾性変形したと誤判定するおそれを低減することができ、中点を推定する精度を向上させることができる。
【0028】
請求項5に記載した発明は、アームをストッパに押し当てる場合、重力の影響によりモータ出力が相対的に大きくなる側のストッパへの押し当てを行った後に、モータ出力が相対的に小さくなる側のストッパへの押し当てを行う。この場合、逆の順番で押し当てを行うと、同じ力で他端側に押し当てた際に重力トルク分だけモータ出力が足りなくなるおそれがあり、その場合には再度の押し当てを行う必要がある。これに対して、本発明の順番で押し当てを行えば、先に押し当てた際のモータ出力のほうが相対的に大きいため、再度の押し当てが不要となり、効率よく原点合わせを行うことができる。
【0029】
また、本明細書には下記の発明が記載されている。
モータによって駆動されるアームと、前記モータの回転角度を検出する角度検出器とを有し、前記アームの可動範囲がストッパによって機械的に規定されるロボットにおいて、前記アームの原点合わせを行うための原点合わせ方法であって、
前記アームの可動範囲の一端側に設けられている前記ストッパは、前記アームに下方から接触し、接触した状態において当該アームの自重が加わる位置に設けられており、
前記アームの可動範囲の他端側に設けられている前記ストッパは、前記アームに上方から接触し、接触した状態において当該アームの自重が加わらない位置に設けられており、
一端側において、前記アームを異なるモータ出力で前記ストッパに対して複数回押し当て、
複数回押し当てた際に取得したそれぞれのモータ出力と前記角度検出器の値とに基づいて、モータ出力の変化に伴う前記角度検出器の値の変化を示す一端側の前記ストッパの弾性変形特性を求め、
他端側において前記アームを前記ストッパに対して押し当てた際のモータ出力と同じモータ出力で一端側に押し当てたと仮定した場合に得られる一端側の前記角度検出器の値を、前記弾性変形特性に基づいて推定する原点合わせ方法の発明。
この発明は、可動範囲の一端側においてアームを異なるモータ出力で前記ストッパに対して複数回押し当て、複数回押し当てた際に取得したそれぞれのモータ出力と角度検出器の値とに基づいて、モータ出力の変化に伴う角度検出器の値の変化を示す一端側のストッパの弾性変形特性を求め、他端側においてアームをストッパに対して押し当てた際のモータ出力と同じモータ出力で一端側に押し当てたと仮定した場合に得られる一端側の前記角度検出器の値を、弾性変形特性に基づいて推定する。
【0030】
アームの可動範囲の一端側に設けられているストッパは、アームに下方から接触し、接触した状態において当該アームの自重が加わる位置に設けられており、アームの可動範囲の他端側に設けられているストッパは、アームに上方から接触し、接触した状態において当該アームの自重が加わらない位置に設けられている場合のように、重力による影響が異なる位置関係でストッパが設けられている場合には、各ストッパにアームを押し当てる際に考慮すべき事項が存在すると考えられる。
【0031】
具体的には、一端側のストッパにはアームを押し当てた際に重力の影響が加算されてその分だけモータ出力以上の押し当て力が働くことになる一方、他端側のストッパにはアームを押し当てた際にアームの自重分がモータ出力から減算された押し当て力が働くことになる。この場合、他端側のモータ出力は、重力に逆らってアームを移動させる必要があることから、一端側よりもモータ出力が相対的に大きくなることが予想される。
【0032】
そのため、他端側に押し当てたときと同じモータ出力で一端側に押し当てるようとすると、モータ出力が相対的に大きいことに加え、重力による影響が加わることから、ストッパあるいはアームの構造に対して過大な力が加わるおそれがある。その一方で、一端側に押し当てる際に構造に支障がない程度の押し当て力となるモータ出力で他端側に押し当てようとすると、アームを重力に逆らって移動させることができず、他端側のストッパに押し当てることができなくなるおそれもある。
【0033】
また、重力による影響はロボットの姿勢によって変化すると考えられることや、ストッパの位置がユーザによって変更される可能性があること等を考慮すると、両端で同じ押し当て状態となるモータ出力を予め設定しておくことは困難である。
このように、重力による影響が異なる位置関係でストッパが設けられている場合には、可動範囲の両端において同等の押し当て状態を実現することが困難であることが予想される。そして、両端における押し当て状態が異なる場合には、弾性変形量が両端で異なることから、原点合わせを正しくできなくなる。
【0034】
さて、前述のように、減速機等の構造物には、ロボットの姿勢とは無関係にモータ出力に相当するトルクが作用することで弾性変形が引き起こされる。ただし、アームやストッパおよび構造物の剛性自体は、ストッパの位置によって変化することはないと考えられる。
【0035】
そのため、可動範囲の両端において異なるモータ出力で押し当てたとしても、モータ出力の変化に伴うストッパの弾性変形量の変化の特性が把握できていれば、同じモータ出力で押し当てた際の弾性変形分を推定することができ、同じ押し当て状態とした場合の角度検出器の値を推定できると考えられる。換言すると、ストッパの弾性変形量の変化の特性を把握できれば、可動範囲の両端において異なるモータ出力で押し当てた場合にも原点合わせを行うことができると考えられる。
【0036】
そこで、アームやストッパおよび構造物の剛性自体はストッパの位置によって変化しない点に着目し、重力の影響が加算される一端側において、構造に影響を与えない程度のモータ出力で複数回の押し当てを行い、取得したそれぞれのモータ出力および角度検出器の値に基づいて一端側のストッパの弾性変形特性を求め、他端側においてアームを前記ストッパに対して押し当てた後、他端側におけるモータ出力と同じモータ出力で一端側に押し当てたと仮定した場合に得られる一端側の角度検出器の値を、弾性変形特性に基づいて推定する。
【0037】
これにより、一端側における角度検出器の推定値と他端側で実測した角度検出器の値との平均を取ることで、つまりは、可動範囲の両端において同じ押し付け状態を再現することで、可動範囲の中点を特定することができ、原点合わせを行うことができる。そして、一端側のストッパには構造に影響を与えない程度のモータ出力で押し当てることから、アームやストッパの変形や損傷を招くことなく原点合わせを行うことができる。
【図面の簡単な説明】
【0038】
図1】第1実施形態によるロボットシステムの構成を模式的に示す図
図2】ロボットの関節部の概略を模式的に示す図
図3】ロボットの他の構成を模式的に示す図
図4】角度検出器の値を取得する処理の流れを示す図
図5】第2実施形態による各モーメントの向きを模式的に示す図
図6】角度検出器の値を取得する流れを示す図
図7】第3実施形態による角度検出器の値を取得する流れを示す図
図8】モータ出力と角度検出器の値との関係を示す図
図9】モータ出力の差分と弾性変形量の差分との関係を示す図
図10】他端側のモータ出力から角度検出器の値を推定する態様を模式的に示す図
【発明を実施するための形態】
【0039】
以下、複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に共通する部位には同一符号を付して説明する。
(第1実施形態)
以下、第1実施形態について、図1から図4を参照しながら説明する。
【0040】
図1に示すように、本実施形態のロボットシステム1は、いわゆる垂直多関節型のロボット2と、そのロボット2を制御するコントローラ3とを備えている。ロボット2は、ベース2a上に、鉛直方向に設定された回転軸を介して接続されているショルダ2bが水平方向に回転可能に連結されている。
【0041】
このショルダ2bには、水平方向に設定された回転軸を介して第1アーム2cの一端が、垂直方向に回転可能に連結されている。一方、第1アーム2cの他端側には、水平方向に設定された回転軸を介して第2アーム2dの一端が、垂直方向に回転可能に連結されている。そして、第2アーム2dの他端側には、ツール2eが回転可能に連結されている。
また、ロボット2には、例えば第1アーム2cの垂直回転する際の可動範囲を機械的に規定するストッパ4が設けられている。このストッパ4は、メカエンドと称されることもある。
【0042】
以下、図1において図示時計回り方向をアームの正回転方向と称し、図示反時計回り方向をアームの逆回転方向と称するとともに、アームが逆回転した際にストッパ4にあたる位置を可動範囲の下限と称し、アームが正回転した際にストッパ4にあたる位置を可動範囲の上限と称して説明する。また、可動範囲の下限と上限とを総称して、可動範囲の両端とも称して説明する。
【0043】
本実施形態のロボット2は、可動範囲の下限を規定する下限ストッパ4aと、正回転した際における可動範囲の上限を規定する上限ストッパ4bまたは上限ストッパ4cとを取り付け可能に構成されている。
【0044】
下限ストッパ4aは、ショルダ2bの下端側に取り付けられる。上限ストッパ4bは、ショルダ2bの上端側において、第1アーム2cを鉛直上方に伸ばしたときの中心線よりも下限ストッパ4a側になる位置に取り付け可能になっている。このため、下限ストッパ4aと上限ストッパ4bとにより第1アーム2cの可動範囲を規定する場合には、第1アーム2cの可動範囲は、所定の角度(Δ1)となる。
【0045】
一方、上限ストッパ4cは、ショルダ2bの下端側において、第1アーム2cの回転中心を通って図示上下方向に延びる仮想線に対して下限ストッパ4aと線対象となる位置に取り付け可能になっている。つまり、下限ストッパ4aと上限ストッパ4cは、ロボット2における高さ方向が同じ位置に取り付け可能になっている。このため、下限ストッパ4aと上限ストッパ4cとにより第1アーム2cの可動範囲を規定する場合には、第1アーム2cの可動範囲は、所定の角度(Δ2)となる。なお、本実施形態では、Δ2は180°になっている。
【0046】
この場合、図1に示すように複数のストッパ4を取り付け可能な構成とすることもできるが、下限ストッパ4aと上限ストッパ4bとのみを取り付け可能な構成、あるいは、下限ストッパ4aと上限ストッパ4cとのみを取り付け可能な構成とすることもできる。このとき、複数のストッパ4を取り付け可能な構成であれば、例えば上限ストッパ4cで可動範囲の上限を規定する際には可動範囲の途中に位置する上限ストッパ4bは取り外せばよい。また、図示は省略するが、ショルダ2bや第2アーム2dの可動範囲を規定するためのストッパ4を設ける構成とすることもできる。
【0047】
このようなロボット2は、図2に示すように、各回転軸つまり各関節部5にアームを駆動するモータ6、モータ6の回転をアームに伝達する減速機7、および、モータ6の回転角度を検出する角度検出器8等が設けられている。本実施形態では、角度検出器8は、光学エンコーダにより構成されており、検出したモータ6の回転角度つまりはアームの回転角度に応じた値を出力する。
【0048】
コントローラ3は、図示しないマイクロコンピュータ等で構成された制御部を有しており、ロボット2の姿勢や動作を制御する。具体的には、コントローラ3は、ロボット2の各関節部5のモータ6を駆動することにより、各アームの回転角度つまりは姿勢や動作を制御する。また、コントローラ3は、モータ出力指令値やモータ電流に基づいてモータ出力を検出する。ただし、モータ出力は、例えばトルクセンサやプッシュプル等を用いて検出することもできる。
【0049】
また、コントローラ3は、後述するように、アームを移動させて可動範囲の一端側のストッパ4に押し当てた状態における角度検出器8の値と、アームを逆方向に駆動して他端側のストッパ4に押し当てた状態における角度検出器8の値との平均を取り、その平均を、アームを駆動する際の原点として設定する。
【0050】
また、ロボットシステム1は、図1に示したロボット2以外にも、例えば垂直多関節型のいわゆる6軸ロボットや、図3に示すロボット20のような水平多関節型のいわゆる4軸ロボットで構成することもできる。
【0051】
図3に示すロボット20は、ベース20a上に、鉛直方向に設定された回転軸(J10)を介して第1アーム20bの一端が、水平方向に回転可能に連結されている。一方、第1アーム20bの他端側には、鉛直方向に設定された回転軸(J11)を介して第2アーム20cの一端が、水平方向に回転可能に連結されている。そして、第2アーム20cの他端側には、鉛直方向に移動可能なシャフト20dが連結されている。
【0052】
そして、ロボット20には、平面視において時計回りを正回転、反時計回りを逆回転とすると、例えば第1アーム20bには、第2アーム20cが水平回転する際の可動範囲を規定する下限ストッパ4a、上限ストッパ4bが設けられている。なお、図3は、側面視にて下限ストッパ4aおよび上限ストッパ4bが重なっている状態を示している。
【0053】
また、ロボット20には、シャフト20dが上下方向に移動する際の可動範囲の下限を規定する下限ストッパ4a、および、可動範囲の上限を規定する上限ストッパ4bが設けられている。なお、図3に示すロボット20の構成は一例である。以下、本実施形態では、ロボット2であれば例えば下限ストッパ4aと上限ストッパ4cとを設けて第1アーム2cの原点合わせを行う場合や、ロボット20であれば例えば第2アーム20cの原点合わせを行う場合に好適な原点合わせ方法について、主としてロボット2を参照しながら説明する。
【0054】
さて、ロボット2の動作は角度検出器8の値つまりはアームの回転角度に基づいて制御されるため、角度検出器8の値とアームの実際の回転角度との間にずれがあると、動作時の位置精度が低下することになる。そのため、一般的には、ロボット2を組み立てた後、可動範囲の両端においてアームをストッパ4に押し当て、その状態で取得した角度検出器8の値に基づいて各関節部5の原点合わせが行われている。
【0055】
このとき、原点合わせを行うためには、当然のことながらアームをストッパ4に押し当てることが必要になる。しかし、原点合わせを行う時点では未だ原点が定まっていないことから、アームの位置は未確定になっている。そのため、通常の動作時のようにアームの回転角度に基づいた角度制御を行うことが困難である。
【0056】
そして、角度制御を行うことが困難な状態でアームを回転させてしまうと、回転速度やトルクが過大になってアームやストッパ4の変形や損傷を招くおそれがある。
また、例えば現場で保守のために原点合わせを行う場合には、ロボット2に取り付けられたツール2eの重さの影響やアームに許容されている可動域の制約等により、あらかじめ無負荷の状態で設定していたモータ出力ではトルクが足りずにアームが動かない可能性がある。
【0057】
このように、アームをストッパ4に押し当てる態様にて原点合わせを行う場合には、まず、角度検出器8の値を読み取る以前の準備段階において、つまりは、アームを移動例えば回転させてストッパ4に押し当てるまでの段階において、十分に考慮および対策すべき問題が存在している。
【0058】
さらに、準備段階だけではなく、角度検出器8の値を読み取る段階においても、十分に考慮および対策すべき問題が存在する。一定のモータ出力(トルク)でアームをストッパ4に押し当てた状態では、アームがストッパ4に対して静止している状態つまりは力が釣り合っている状態になることから、ストッパ4とモータ6の間に介在する減速機7等の構造物には、ロボット2の姿勢とは無関係に、モータ6の出力トルク分だけが作用することになる。
【0059】
この場合、アーム自体はストッパ4によって位置が規定されているとしても、図2に示すように、角度検出器8の値は、減速機7のバックラッシ分(D1)とモータ6の出力トルクに比例した減速機7等の構造物の弾性変形分(D2)とだけ、アームが停止した位置を通り過ぎた値(D3。以下、行き過ぎ量と称する)を出力することになる。なお、図2では、説明のためにバックラッシ分(D1)と弾性変形分(D2)とを誇張して示している。また、バックラッシ分(D1)、弾性変形分(D2)および行き過ぎ量(D3)は、正回転方向を正、逆回転方向を負とするものとする。
【0060】
このとき、バックラッシ分(D1)は、可動範囲の上限と下限とにおいてそれぞれアームをストッパ4に押し当てた状態においては、アームの回転方向つまりはアームの押し当て方向が逆向きになっていることから、互いに相殺されると考えられる。
【0061】
一方、弾性変形分(D2)は、モータ出力に応じて変化するため、単にアームがストッパ4に押し当てられているというだけの状態では、それぞれの弾性変形分(D2)に差が生じる可能性がある。そして、弾性変形分(D2)に差が生じた場合には、可動範囲の上限と下限とにおいて行き過ぎ量(D3)が異なることから、中点の位置にずれが生じることになる。つまり、原点合わせを正確に行えなくなる。これは、角度検出器8の値は同じ方向に押し当てている場合にはモータ出力の差分に比例して弾性変形分に差が生じるためである(後述する図8参照)。
【0062】
なお、弾性変形分(D2)が生じないようにアームとストッパ4とを接触させる構成とすることも考えられるが、その場合には例えばプッシュプルゲージ等の治具を用いてストッパ4に対して力が加わっていないこと等を検出する必要があり、ロボットシステム1単独で行うことが困難になる。
【0063】
そこで、ロボットシステム1では、図4に示す処理を実行することにより、アームやストッパ4の変形や損傷を招くことなく、また、治具等を用いることなく、原点合わせを行っている。図4は、原点合わせを行う際の処理の流れを示している。なお、この処理はコントローラ3によって行われるものの、説明の簡略化のため、ロボットシステム1を主体として説明する。
【0064】
ロボットシステム1は、原点合わせを行う際、まず、アームの回転方向つまりは押し当て方向を設定する(S1)。この場合、最初に設定する押し当て方向は正回転方向または逆回転方向のいずれでもよいが、ここでは逆回転方向を設定したとする。押し当て方向を設定すると、ロボットシステム1は、目標速度(vc)に速度制御を開始する(S2)。つまり、ロボットシステム1は、原点合わせを行う段階では上記したように角度制御ができないことから、速度制御によってアームを回転させてストッパ4に押し当てる。
【0065】
ここで、vcは、アームを回転させる際に設定される速度である。この目標速度(vc)は、ストッパ4に接触しても損傷等を起こさない程度の速度が設定される。なお、目標速度(vc)は、原点合わせの作業時にユーザが設定可能とすることもできる。
また、このステップS2では、ロボットシステム1は、速度制御を開始した後、アームが目標速度あるいは目標速度付近に達するまで待機する。これは、速度制御を開始した直後においてはアームの速度が小さいことから、後述するステップS3の判定に利用できないためである。
【0066】
速度制御を開始した後にアームの速度が目標速度、または目標速度付近まで達すると、ロボットシステム1は、角度検出器8の値の変化量から求まるアームの動作速度(v。角速度)に基づいて、動作速度の絶対値(|v|)が速度低下判定閾値(e1)未満となったか、または、目標速度との差分の絶対値(|vc-v|)が速度偏差過大判定閾値(e2)よりも大きくなったかを判定する(S3)。
【0067】
ここで、速度低下判定閾値(e1)および速度偏差過大判定閾値(e2)は、目標速度(vc)で回転しているアームがストッパ4に接触したか否かを判定するための閾値である。また、2種類の閾値で判定するのは、目標速度(vc)に応じた判定ができるようにするためである。これらの閾値はモータ6の定格トルクや構造物の強度、目標とする検出時間等に応じて適宜設定することができる。
【0068】
例えば目標速度(vc)が比較的低速に設定されている場合には、アームがストッパ4に接触してもそれほど過大な力は加わらないため、速度低下判定閾値(e1)を用いて速度の低下を検出すれば、アームがストッパ4に接触したことを判定できると考えられる。
【0069】
一方、アームを比較的大きく回転させる必要がある場合には、目標速度(vc)が比較的高速に設定されることが想定される。その場合、アームがストッパ4に衝突して損傷を招くおそれがあるが、速度偏差過大判定閾値(e2)を用い、動作速度(v)が目標速度(vc)から大きく変化した場合にモータ出力をその時の値に固定して速度制御を解除することで、アームやストッパ4の損傷を招くことなくアームがストッパ4に接触したことを判定できると考えられる。
【0070】
このように、アームが回転してストッパ4に接触した場合にはアームの回転がその時点で停止することから、ロボットシステム1は、動作速度(v)が速度低下判定閾値(e1)よりも小さくなったか否か、または、速度偏差過大判定閾値(e2)を超える減速があったか否かを判定条件として、アームがストッパ4に接触したか否かを判定する。
【0071】
ロボットシステム1は、アームがストッパ4に接触していないと判定すると(S3:NO)、速度制御を継続する。一方、ロボットシステム1は、アームがストッパ4に接触したと判定すると(S3:YES)、モータ出力をその時の値に固定して速度制御を解除し(S4)、角度検出器8の値、この場合は下限ストッパ4aに接触した状態での値(θa)を取得する。
【0072】
角度検出器8の値を取得すると、ロボットシステム1は、押し当て方向を逆向き、この場合は正回転方向に設定し(S6)、同じ目標速度(vc)に速度制御を開始し(S7)、動作速度(v)の絶対値(|v|)が速度低下判定閾値(e1)未満となったか、または、目標速度との差分の絶対値(|vc-v|)が速度偏差過大判定閾値(e2)よりも大きくなったかを判定する(S8)。
【0073】
そして、いずれかの判定条件が成立すると、ロボットシステム1は、モータ出力をその時の値に固定して速度制御を解除し(S9)、角度検出器8の値、この場合は上限ストッパ4cに接触した状態での値(θc)を取得する(S10)。つまり、アームを速度制御により移動させてストッパ4に到達したと判定した際のモータ出力で、アームを押し当てている。
【0074】
このとき、アームは、逆回転および正回転の何れにおいても、同じ目標速度(vc)に速度制御されるとともに、同じ判定条件でストッパ4との接触が判定される。そのため、アームが下限ストッパ4aに接触するときの状態は、アームが上限ストッパ4cに接触するときの状態と同じである。より平易に言えば、速度制御されたアームは、下限ストッパ4aおよび上限ストッパ4cに対して一定のモータ出力、つまりは、同じ力が加わった状態で接触することになる。
【0075】
このため、可動範囲の下限と上限とでは、同じ力による弾性変形が生じることになり、弾性変形分(D2)が同じになる。そして、弾性変形分(D2)が同じであれば、角度検出器8は、同じ行き過ぎ量(D3)が逆方向にそれぞれ加わった値を出力することになる。
【0076】
そして、角度範囲の上限と下限とにおいて同じ弾性変形が生じているのであれば、取得した2つの角度検出器8の値(θa、θc)の平均を取れば、正確に下限ストッパ4aと上限ストッパ4cとの中点が特定されることになる。
【0077】
そのため、ロボットシステム1は、取得した2つの角度検出器8の値(θa、θc)の平均を、原点として算出する(S11)。これにより、理論上、ストッパ4やアームの寸法公差と角度検出器8の分解能およびモータ出力のばらつきの範囲内で、アームに対する角度検出器8の原点合わせを正確に行うことができる。
このように、本実施形態のロボットシステム1は、アームを速度制御より詳細には角速度制御により駆動することにより、原点合わせを行っている。
【0078】
以上説明した構成によれば、次のような効果を得ることができる。
ロボットシステム1は、アームを速度制御しながら回転させてストッパ4に押し当てる。具体的には、アームが回転している際の角度検出器8の値の変化量すなわちアームの動作速度を監視し、動作速度の変化がなくなった時点、または、動作速度が大きく減速した時点で可動範囲の端に到達したとみなし、可動範囲の上限と下限とでそれぞれ角度検出器8の値を取得し、その平均を原点に設定することで、原点合わせを行っている。
【0079】
この場合、例えばアームを回転させる際にアームの自重の影響でモータ6の出力が足りなくなると動作速度(v)が徐々に下がるため、目標速度(vc)に近づけるためモータ6の出力が上がる。そのため、ツール2eの重さが可搬重量以下であれば、可動範囲の端に到達する前に止まってしまうことはない。
【0080】
そして、動作速度の変化がなくなった時点、または、動作速度が大きく減速した時点でストッパ4に到達したと判定すれば、ツール2eの重さによらず、弱い力でアームをストッパ4に押し当てることができる。そして、アームを速度制御により移動させてストッパ4に到達したと判定した際のモータ出力を用いることで、可動範囲の両端において同じモータ出力で押し当てた状態を実現することができる。
【0081】
これにより、アームの可動範囲の両端で同じ力で押し当てた状態における角度検出器8の値、つまりは、逆方向にストッパ4を同じ行き過ぎ量(D3)だけ行き過ぎた状態における角度検出器8の値を取得でき、両者の値の平均値を求めれば、可動範囲の両端のストッパ4の中点を原点とする原点合わせを行うことができる。そして、原点合わせができれば、角度検出器8のオフセット値を取得することができる。
【0082】
したがって、アームやストッパ4の変形や損傷を招くことなく原点合わせを行うことができる。
この場合、原点は、角度検出器8の値の平均ではなく、いずれかのストッパ4の位置に設定する等、ロボット2の制御に都合の良いように任意のオフセット値を加えることもできる。
【0083】
また、治具等を用いることなくロボットシステム1単独且つ自動で原点合わせを行うことができるため、使い勝手を向上させることができるとともに、ロボット2を設置した現場での作業やある程度の期間が経過した後のメンテナンス等においても、容易に原点合わせを行うことができる。また、自動で原点合わせを行うことができるため、作業者の熟練度等に左右されることもない。
【0084】
また、この手法は、本実施形態のように、ロボット2であれば下限ストッパ4aと上限ストッパ4cとを設けた場合のように、アームの自重によらず可動範囲の上限と下限とにおいてストッパ4への押し当て状態が同じになる構成や、ロボット20であれば例えば第2アーム20cのように回転方向が水平方向に限定されている構成、つまりは、可動範囲の両端においてアームに掛かる重力がモータ6のトルクに対して同じように作用する場合に問題なく原点合わせができることから、特に有意である。
【0085】
また、図4に示す原点合わせの処理を実行可能な制御部を有するコントローラ3を備えたロボットシステム1によっても、アームやストッパ4の変形や損傷を招くことなく原点合わせを行うことができる等、上記した同様の効果を得ることができる。
【0086】
また、制御部としては、実施形態で例示したコントローラ3以外に、図示は省略するがティーチングペンダントを用いる構成とすることもできる。
また、モータ出力と実際にアームに発揮されるモーメントの関係が既知であれば、減速機7等の構造物の剛性が得られるため、自重によるたわみ分を補正した角度制御にも活用することができる。
【0087】
(第2実施形態)
以下、第2実施形態について、図5および図6を参照しながら説明する。第2実施形態では、アームが鉛直方向に回転あるいは移動する場合における原点合わせの手法について説明する。なお、ロボットシステム1の構成は第1実施形態と共通するため、図1から図3も参照しながら説明する。
【0088】
可動範囲の両端において同じモータ出力でアームをストッパ4に押し当てた場合、ストッパ4とモータ6との間に存在する減速機7等の構造物には、静止状態で力が釣り合っていることからロボット2の姿勢とは無関係にモータ6の出力トルク分だけが作用する。この場合、角度検出器8は、上記した図3に示したように、減速機7のバックラッシ分(D1)とモータ6の出力トルクに比例した構造物の弾性変形分(D2)とに応じてストッパ4の位置を通り過ぎた値、つまり、行き過ぎ量(D3)を含む値を出力することになる。
【0089】
そのため、アームの可動範囲の両端で同じモータ出力で押し当てれば、同じ量且つ逆方向に行き過ぎ量(D3)が発生することから、両端での角度検出器8の値の平均値を求めれば、両端のストッパ4の中点を原点として設定する原点合わせを行うことができる。このため、同じモータ出力でアームをストッパ4に押し当てれば、理論上、ストッパ4やアームの寸法公差や角度検出器8の分解能およびモータ出力のばらつきの範囲内で、アームに対する角度検出器8の原点合わせを正確に行うことができる。
【0090】
だたし、ストッパ4の位置によっては、同じモータ出力で押し当てることによる原点合わせが困難な場合が想定される。
まず、ストッパ4の位置によって原点合わせを行うことが困難になる1つ目の大きな理由として、モータ出力の値を予め一定値に設定することが難しいという点が挙げられる。
【0091】
可動範囲内のどの位置から原点合わせを開始してもアームをストッパ4に押し当てることができるようにするためには、モータ出力値をアームの自重を振り切れるだけ十分大きく設定しておく必要がある。しかし、その場合には、アームの自重が最大になる位置以外にストッパ4が設けられていると、自重を支えるために必要となるモータ出力が小さくなる分だけ、アームの移動速度が速くなる。
【0092】
その結果、アームがストッパ4により強く押し当てられることになり、アームやストッパ4の損傷を招くおそれがある。また、アームの自重と同じ方向へ押し当てる場合には、さらにアームが強くストッパ4に押し当てられることになる。これは、モータ出力を徐々に大きくしていく手法の場合も同様である。
【0093】
具体的には、例えば図5に示すように、ロボット2において第1アーム2cの可動範囲を下限ストッパ4aと上限ストッパ4bとにより規定する場合や、図3に示すロボット20においてシャフト20dの可動範囲を下限ストッパ4aと上限ストッパ4bとにより規定する場合がこれに相当する。以下、第1アーム2cやシャフト20dを、便宜的にアームと総称して説明する。
【0094】
図5に示すロボット2の場合、上限ストッパ4bに向かってアームを動作させる際には、モータ出力によるモーメント(M1)とアームの自重によるモーメント(M2)が逆向きであることから、重力に逆らってアームを移動できるだけのモータ出力、より厳密に言えば、アームの自重が最大になる姿勢でのモータ出力よりも大きな出力が必要になる。
【0095】
その一方で、可動範囲の上限に向かってアームを移動させる場合と下限に向かって移動させる場合で同じモータ出力にしてしまうと、下限ストッパ4a側に移動する際には、モータ出力によるモーメント(M1)とアームの自重によるモーメント(M2)が同じ向きになることから、アームの自重と同じ方向にモータ出力が作用してアームの移動速度が相対的に速くなるとともにアームの自重分が加わり、下限ストッパ4aに過剰な力で押し当てられてしまう。換言すると、下限ストッパ4aからの反力(F1)が、上限ストッパ4bに比べて大きくなる。
【0096】
このように、アームを移動させる際に重力が影響する場合には、同じモータ出力で押し当てるようとすると、重力に逆らってアームを移動できるだけのモータ出力が必要とされる一方、そのモータ出力でアームの自重と同じ方向にモータ出力が作用する側のストッパ4に押し当てると過剰な力が加わってしまう。
【0097】
そして、過剰な力に対処してアームやストッパ4が損傷しないようにするために例えば強固な構造にすること等が必要になってしまう。また、ストッパ4に加わる力が異なれば、弾性変形分(D2)が両端で異なってしまうため、正確な原点を特定することができなくなる。
【0098】
次に、原点合わせを行うことが困難になる2つ目の大きな理由として、損傷等を招かない程度の比較的小さな値をモータ出力に予め設定しておくことが難しい点が挙げられる。
例えば、出荷後のロボット2に対してメンテナンス等のために現場で原点合わせを行うことがある。この場合、ロボット2にはツール2e等が取り付けられているため、上記したように重力に逆らって移動できるようにするためには、出荷時に行った原点合わせのときよりも少なくともツール2e分は出力を大きくする必要がある。
【0099】
また、周辺設備とロボット2との関係によっては、例えばアームが干渉する等の理由により、出荷時と同じ姿勢で原点合わせを行うことができず、アームの自重による影響が異なっていることも想定される。
【0100】
このとき、もしも出荷時の原点合わせで用いたモータ出力では足りなかったりアームの自重とモータ出力とが釣り合ってしまったりすると、上限ストッパ4bに到達する前に角度検出器8の値の変化がなくなり、可動範囲の上限に到達したと誤判定した状態で角度検出器8の値を取得して間違った原点を算出してしまうおそれがある。
【0101】
そこで、本実施形態では、図6に示す処理を実行することにより、アームの自重が影響する場合であっても正確に原点合わせを行うことを可能としている。なお、図6に示す処理において、上記した第1実施形態で説明した処理と共通する処理については同一のステップ番号を付し、その詳細な説明は省略する。
【0102】
ロボットシステム1は、図6に示す処理において、押し当て方向を設定し(S1)、目標速度(vc)に速度制御を開始する(S2)。速度制御を開始してアームの速度が目標速度または目標速度付近まで達すると、ロボットシステム1は、角度検出器8の値の変化量から求まるアームの動作速度(v)に基づいて、動作速度の絶対値(|v|)が速度低下判定閾値(e1)未満となったか、または、目標速度との差分の絶対値(|vc-v|)が速度偏差過大判定閾値(e2)よりも大きくなったかを判定する(S3)。つまり、ロボットシステム1は、第1実施形態と同様に速度制御によりアームを移動させている。
【0103】
ロボットシステム1は、アームがストッパ4に接触していないと判定すると(S3:NO)、速度制御を継続する。一方、ロボットシステム1は、アームがストッパ4に接触したと判定すると(S3:YES)、モータ出力をその時の値に固定して速度制御を解除し(S4)、モータ出力(Pa)を取得した後(S20)、角度検出器8の値(θa)を取得する(S5)。つまり、ロボットシステム1は、アームがストッパ4に接触して押し当てられた状態におけるモータ出力(Pa)および角度検出器8の値(θa)を取得する。
【0104】
続いて、ロボットシステム1は、押し当て方向を逆向きに設定し(S6)、同じ目標速度(vc)に速度制御を開始し(S7)、動作速度(v)の絶対値(|v|)が速度低下判定閾値(e1)未満となったか、または、目標速度との差分の絶対値(|vc-v|)が速度偏差過大判定閾値(e2)よりも大きくなったかを判定する(S8)。
【0105】
そして、ロボットシステム1は、いずれかの判定条件も成立していない場合には(S8:NO)速度制御を継続する一方、いずれかの判定条件が成立した場合には(S8:YES)、速度制御を解除した後(S9)、モータ出力(Pb)を調整する(S21)。
【0106】
このステップS21では、ロボットシステム1は、モータ出力(Pb)を、ステップS20で取得したモータ出力(Pa)に一致するように調整している。つまり、ロボットシステム1は、ストッパ4に接触した後にアームをストッパ4に押し当てる際の押し当て力を、可動範囲の両端で同じになるように調整する。
【0107】
モータ出力を調整すると、ロボットシステム1は、角度検出器8の値(θb)を取得する(S10)。この場合、アームをストッパ4に押し当てる力が一致していることから、ストッパ4の弾性変形分(D2)は、角度検出器8の値(θa)を取得したときとは同じ大きさで向きが逆になっている。
【0108】
そして、ロボットシステム1は、取得した2つの角度検出器8の値(θa、θb)の平均を原点として算出する(S11)。これにより、理論上、ストッパ4やアームの寸法公差と角度検出器8の分解能およびモータ出力のばらつきの範囲内で、アームに対する角度検出器8の原点合わせを正確に行うことができる。なお、原点は、角度検出器8の値の平均ではなく、いずれかのストッパ4の位置に設定する等、ロボット2の制御に都合の良いように任意のオフセット値を加えることもできる。
【0109】
以上説明した構成によれば、次のような効果を得ることができる。
本実施形態のロボットシステム1は、アームを速度制御により駆動してストッパ4に押し当てた後、可動範囲の両端において同じモータ出力で押し当てた状態で角度検出器8の値を取得する。
【0110】
これにより、可動範囲の端に到達する前に止まってしまうことなく弱い力でアームをストッパ4に押し当てることができ、アームやストッパ4の変形や損傷を招くことなく原点合わせを行うことができる等、第1実施形態と同様の効果を得ることができる。
【0111】
また、アームをストッパ4に押し当てる力が可動範囲の両端側で一致していることから、下限側と上限側とでは各行き過ぎ量(D3)の大きさが同じで向きが逆になる。そのため、下限側と上限側とで取得した角度検出器8の値の例えば平均を取ることにより、原点を正確に特定することができる。
【0112】
実施形態ではモータ出力(Pa)のほうが大きい場合を想定しており、ステップS21においてはモータ出力をPaに合わせる流れを示したが、例えば予め目標となるモータ出力(Pc)を設定しておき、ステップS20、S21において、モータ出力(Pc)となるように調整する流れとすることもできる。
【0113】
また、可動範囲の両端への押し当てを一度実施してモータ出力が大きい側を予め特定しておき、モータ出力が大きい側に対してステップS1~S5の処理を行い、モータ出力が小さい側に対してステップS6~S10の処理を行う流れとすることもできる。また、後述する第3実施形態のように、可動範囲の両端においてバックラッシ分を一致させるために、ステップS6とステップS8の後段にそれぞれモータ出力(P)の方向が押し当て方向と一致するか否かを判定する処理(S30。図7参照)を含む流れとすることもできる。
【0114】
また、モータ出力と実際にアームに発揮されるモーメントの関係が既知であれば、減速機7等の構造物の剛性が得られるため、自重によるたわみ分を補正した角度制御にも活用することができる。
また、上限ストッパ4bに向かってアームを回転させる場合には重力に逆らう必要があるため、下限ストッパ4aに向かってアームを回転させる場合よりもモータ出力が大きくなると想定される。そのため、上限ストッパ4bに押し当ててから下限ストッパ4aに押し当てる順番とすることにより、モータ6が必要とする出力を足りなくなるおそれを低減でき、再計測し無ければならない状態を回避することができる。
【0115】
なお、十分なモータ出力を予め設定しているのであれば、ストッパ4へ押し当てを行う順序は、上限ストッパ4bに押し当ててから下限ストッパ4aに押し当てる順番とすることができるし、下限ストッパ4aに押し当ててから上限ストッパ4bに押し当てる順番とすることもできる。
【0116】
(第3実施形態)
以下、第3実施形態について、図7から図10を参照しながら説明する。第3実施形態では、アームが鉛直方向に回転あるいは移動する場合における原点合わせの手法について、第2実施形態とは異なる手法を説明する。なお、ロボットシステム1の構成は第1実施形態と共通するため図1から図3も参照しながら説明するとともに、原点合わせ時における課題や背景は第2実施形態と共通するため図5も参照しながら説明する。
【0117】
まず、上記した第2実施形態で説明したように、例えば図5に示すようにロボット2において第1アーム2cの可動範囲を下限ストッパ4aと上限ストッパ4bとにより規定する場合や、図3に示すロボット20においてシャフト20dの可動範囲を下限ストッパ4aと上限ストッパ4bとにより規定する場合を想定する。
【0118】
つまり、本実施形態では、アームの可動範囲の一端側に設けられているストッパ4aは、アームに下方から接触し、接触した状態において当該アームの自重が加わる位置に設けられており、アームの可動範囲の他端側に設けられているストッパ4bは、アームに上方から接触し、接触した状態において当該アームの自重が加わらない位置に設けられている状態である。
【0119】
このように重力による影響が異なる位置関係でストッパ4が設けられている場合には、各ストッパ4にアームを押し当てる際に考慮すべき事項が存在すると考えられる。具体的には、一端側のストッパ4aには、アームを押し当てた際に重力の影響が加算されてその分だけモータ出力以上の押し当て力が働くことになる。一方、他端側のストッパ4bには、アームを押し当てた際にアームの自重分がモータ出力から減算された押し当て力が働くことになる。この場合、他端側のモータ出力は、重力に逆らってアームを移動させる必要があることから、一端側よりもモータ出力が相対的に大きくなると予想される。
【0120】
そのため、他端側に押し当てたときと同じモータ出力で一端側に押し当てるようとすると、モータ出力が相対的に大きいことに加え、重力による影響が加わることから、ストッパ4あるいはアームの構造に対して過大な力が加わるおそれがある。その一方で、一端側に押し当てる際に構造に支障がない程度の押し当て力となるモータ出力で他端側に押し当てようとすると、アームを重力に逆らって移動させることができず、他端側のストッパに押し当てることができなくなるおそれもある。この場合、重力による影響はロボット2の姿勢によって変化すると考えられることや、ストッパ4の位置がユーザによって変更される可能性があること等を考慮すると、両端で同じ押し当て状態となるモータ出力を予め設定しておくことは困難であると考えられる。
【0121】
このように、重力による影響が異なる位置関係でストッパが設けられている場合には、可動範囲の両端において同等の押し当て状態を実現することが困難であることが予想される。そして、両端における押し当て状態が異なる場合には、弾性変形量が両端で異なることから、原点合わせを正しくできなくなる。
【0122】
そこで、本実施形態では、アームやストッパ4およびその他の構造物の剛性自体はストッパ4の位置によって変化しない点に着目して、図7に示す処理を実行することにより原点合わせを行っている。なお、図7に示す処理において、上記した第1実施形態で説明した処理と共通する処理については同一のステップ番号を付し、その詳細な説明は省略する。
【0123】
ロボットシステム1は、図7に示す処理において、押し当て方向を設定し(S1)、目標速度(vc)に速度制御を開始する(S2)。速度制御を開始してアームの速度が目標速度または目標速度付近まで達すると、ロボットシステム1は、角度検出器8の値の変化量から求まるアームの動作速度(v)に基づいて、動作速度の絶対値(|v|)が速度低下判定閾値(e1)未満となったか、または、目標速度との差分の絶対値(|vc-v|)が速度偏差過大判定閾値(e2)よりも大きくなったかを判定する(S3)。つまり、ロボットシステム1は、第1実施形態と同様に速度制御によりアームを移動させている。
【0124】
ロボットシステム1は、アームがストッパ4に接触していないと判定すると(S3:NO)、速度制御を継続する。一方、ロボットシステム1は、アームがストッパ4に接触したと判定すると(S3:YES)、モータ出力(P)の方向が押し当て方向と一致するか否かを判定する(S30)。
【0125】
アームの自重が掛かる方向と同じ方向にアームを動かしていった場合、アームの自重によって、モータ6の回転角度よりも減速機7のバックラッシ分だけアーム角度が先行している。そのため、アームがストッパ4に接触した直後では、バックラッシ分は、可動範囲の反対側に押し当てた状態に一致しないため、バックラッシ分を一致させる必要がある。
【0126】
そのため、ロボットシステム1は、モータ出力(P)の方向が押し当て方向と一致しないと判定した場合には(S30:NO)、速度制御を継続することによりモータ出力を増加させ、押し当て方向とモータ6の駆動方向が一致するようにしている。
【0127】
そして、ロボットシステム1は、モータ出力(P)の方向が押し当て方向と一致した状態になると(S30:YES)、モータ出力をその時の値に固定して速度制御を解除し(S4)、現在のモータ出力(P)における角度検出器8の値(θ1)を取得する(S31)。
【0128】
続いて、ロボットシステム1は、現在のモータ出力(P)をαだけ増加させ、モータ出力(P+α)とした状態でアームを駆動し(S32)、そのときの角度検出器8の値(θ2)を取得する(S33)。ただし、モータ出力の増加量(α)は、関節部5の静摩擦力より十分大きい値とする。これにより、実際には弾性変形していない状態を弾性変形したと誤判定するおそれを低減することができ、中点を推定する精度を向上させることができる。
【0129】
このように、ロボットシステム1は、異なる2つの押し当て力で押し当てたときの角度検出器8の値をそれぞれ取得している。このとき、取得した2つの角度検出器8の値とモータ出力との関係が、図8に示すものになったとする。
さて、同じ方向に押し当てている場合には、モータ出力に差がなければ弾性変形分にも差は生じないと考えられる。そのため、図8に示したモータ出力と角度検出器8の値との関係を、モータ出力の差分と弾性変形分の差分(角度検出器8の値の変化量)との関係に置き換えてみる。
【0130】
この場合、モータ出力の差分と弾性変形分の差分との関係は、図9に示すように、座標原点と点(α、Dα)を通り、傾きが(Dα)/αである比例直線(K)にて示されることになる。ただし、Dα=θ2-θ1である。また、この比例直線(K)は、モータ出力の変化に伴う角度検出器8の値の変化を示すものであり、本実施形態における一端側のストッパ4aの弾性変形特性に相当する。なお、図9では説明の簡略化のために正負を問わない状態で示しているが、押し当て方向が逆であれば、弾性変形分の差分の符号も逆になる。
【0131】
ロボットシステム1は、モータ出力と角度検出器8の値との関係を特定すると、押し当て方向を逆向きに設定し(S6)、同じ目標速度(vc)に速度制御を開始し(S7)、ストッパ4に接触したか否かを判定する(S8)。ロボットシステム1は、ストッパ4に接触したと判定すると(S8:YES)、モータ出力(P)の方向が押し当て方向と一致するまで速度制御を継続した後(S34:YES)、モータ出力をその時の値に固定して速度制御を解除して(S9)、角度検出器8の値(θ3)を取得する(S10)。また、このときのモータ出力をP3とする。
【0132】
可動範囲の両端で角度検出器8の値を取得すると、ロボットシステム1は、原点を算出する(S11)。
さて、可動範囲の一端側つまりは2段階の押しつけを行った側であるステップS31で取得した角度検出器8の値(θ1)と、他端側であるステップ10で取得した角度検出器8の値(θ3)とには、それぞれ逆向きの弾性変形分が含まれている。
この場合、モータ出力が同じであれば、上記したように弾性変形分には差がないことから、θ1とθ3との平均を取ることにより、中点を原点とする原点合わせを行うことができる。
【0133】
一方、モータ出力(P3)が例えばモータ出力(P1)よりも大きい場合には、θ3にはθ1よりも大きい弾性変形分が含まれていると考えられるため、単純に平均値を取った場合には、中点が他端側にずれることになり正しく原点合わせを行うことができない。
そこで、ロボットシステム1は、上記した図9に示す関係を利用して、他端側と同じ押し当て状態にしたと仮定した場合に得られる一端側の角度検出器8の値を推定する。
【0134】
具体的には、ロボットシステム1は、図10に示すように、一端側のモータ出力と角度検出器8の値との関係から、モータ出力がP3である場合に得られると推定される角度検出器8の値(θα)を取得する。より具体的には、他端側に押し当てを行った際のモータ出力(P3)における弾性変形特性(K)を延長した仮想線(K2)上の値に基づいて、一端側においてモータ出力(P3)でアームを押し当てたと仮定した場合における一端側の角度検出器8の値(θα)を推定する。
【0135】
これにより、可動範囲の両端において同じ押し当て状態であると仮定した場合における角度検出器8(θα、θ3)が求まり、それらの平均を取ることにより、可動範囲の両端において同じ押し当て状態とした場合の中点が求まる。そして、求めた中点を原点に設定することにより、正しく原点合わせを行うことができる。
【0136】
以上説明した構成によれば、次のような効果を得ることができる。
ロボットシステム1は、一端側において、アームを異なるモータ出力でストッパ4に対して複数回押し当て、複数回押し当てた際に取得したそれぞれのモータ出力と角度検出器8の値とに基づいて、モータ出力の変化に伴う角度検出器8の値の変化を示す一端側のストッパ4aの弾性変形特性を求め、他端側においてアームをストッパ4bに対して押し当てた際のモータ出力と同じモータ出力で一端側に押し当てたと仮定した場合に得られる一端側の角度検出器8の値を、弾性変形特性に基づいて推定する。
【0137】
そして、ロボットシステム1は、一端側における角度検出器8の推定値と他端側で実測した角度検出器8の値との平均を取ることで、つまりは、可動範囲の両端において同じ押し付け状態を再現することで、可動範囲の中点を特定して原点合わせを行う。
この場合、一端側のストッパには構造に影響を与えない程度のモータ出力で押し当てることから、アームやストッパの変形や損傷を招くことなく原点合わせを行うことができる等、第1実施形態と同様の効果を得ることができる。
【0138】
また、アームを移動させる際に重力の影響を受ける場合であっても、可動範囲の両端において同等の押し当て状態とした場合の角度検出器8の値を取得できることから、アームの自重によらず、また、ストッパ4の位置によらず、正しく原点合わせを行うことができる。
また、モータ出力と実際にアームに発揮されるモーメントの関係が既知であれば、減速機7等の構造物の剛性が得られるため、自重によるたわみ分を補正した角度制御にも活用することができる。
【0139】
この場合、重力がかかる下限ストッパ4aではアームの自重とモータ出力の両方が作用するが、重力に逆らって押し当てる上限ストッパ4bではモータ6に必要とされる出力は大きくなる。そのため、下限ストッパ4aに一度押し当ててから上限ストッパ4bに2段階での押し当てを行うことで構造物に掛かる力を小さくすることができ、損傷をより抑えることができる。
【0140】
また、実施形態では2段階の押し当てを行う例を示したが、3段階以上の押し当てをおこなうこともできる。
また、アームとストッパ4とが接触した状態から変化したモータ出力の差分に基づいて角度検出器8の値を推定する構成とすることもできる。
【0141】
また、実施形態では一端側での複数段階の押し当てと他端側での推定とを1回行う例を示したが、複数段階の押し当てと他端側での推定を複数回行うことができる。これにより、複数のデータから推定を行うことができ、より正確な原点合わせを行うことができる。
また、アームとストッパ4とが接触した状態から変化したモータ出力の差分に基づいて角度検出器8の値を推定する構成とすることもできる。
【0142】
また、一端側のストッパ4aへの押し当てを行った後に他端側のストッパ4bまでアームを回転させる際には、角度制御によりストッパ4の付近まで回転させることにより、アームの回転に要する時間を短縮し、原点合わせの作業時間を短縮することもできる。
また、一端側に3回以上の押し当てを行い、弾性変形特性を直線ではなく曲線や多項式で近似することもできる。
【0143】
(その他の実施形態)
本発明は上記した各実施形態で例示した構成にのみ限定されるものではなく、その要旨を逸脱しない範囲で各種の変形や拡張あるいは組み合わせを行うことができる。
各実施形態では、アームがストッパ4に接触した時点で速度制御を解除する例を示したが、アームがストッパに接触した後も速度制御を継続することもできる。つまり、アームを、速度制御によって定まる押し当て力でストッパ4に押し当てることができる。この場合の具体的な処理の流れは、例えば図4図6図7のステップS9を省略した流れになる。
【0144】
アームを速度制御している場合には、アームの速度によってストッパ4への押し当て力が決まるため、正回転時と逆回転時とで同じ速さでアームを回転させれば、同じ押し当て力でストッパ4に押し当てられることになる。そして、同じ押し当て力であればストッパ4の弾性変形量も同じになることから、ストッパ4間の中央の位置を推定することができ、原点合わせを行うことができる。
【0145】
また、アームがストッパに接触した後も速度制御を継続する方法は、アームがストッパ4に押し付けられる際の状況がほぼ等しいと考えられる場合に特に有益である。例えば図1に示すストッパ4aとストッパ4cのように、アームの回転中心を通る仮想的な鉛直線に対してストッパ4が正回転側と逆回転側とで線対称に設けられている場合であれば、アームは機械的にほぼ同じ状況でストッパに押し付けられるとともに、重力による影響もほぼ等しいと同じと考えられるため、アームを同じ押し当て力でストッパ4に押し当てられると考えられる。
【0146】
また、アームをストッパ4に押し当てる場合、重力の影響によりモータ出力が相対的に大きくなる側のストッパ4への押し当てを行った後に、モータ出力が相対的に小さくなる側のストッパ4への押し当てを行うことができる。例えば、図1に示すストッパ4aとストッパ4bとで可動範囲を規定している場合には、ストッパ4bに押し当てて角度検出器8の値を取得し、ストッパ4aに押し当てて角度検出器8の値を取得する順番で原点合わせを行う。
【0147】
この場合、逆の順番で押し当てを行うと、同じ力で他端側に押し当てた際に重力トルク分だけモータ出力が足りなくなるおそれがあり、その場合には再度の押し当てを行う必要がある。これに対して、重力の影響によりモータ出力が相対的に大きくなる側のストッパへの押し当てを先に行えば、そのモータ出力のほうが相対的に大きくなることから、モータ出力が不足する自体を回避でき、再度の押し当てが不要となるため、効率よく原点合わせを行うことができる。
【0148】
第3実施形態ではストッパ4の位置が重力の影響が大きく異なる場合を例示したが、両端のストッパ4において重力の影響が同程度であると予想される場合には、一端側のストッパ4の弾性変形特性を取得して他端側の角度検出器8の値を推定する構成とすることもできる。すなわち、アームの可動範囲の両端に設けられているストッパ4が、アームに下方から接触し、接触した状態において当該アームの自重が加わる位置に設けられている場合に、一端側においてアームを異なるモータ出力でストッパに対して複数回押し当てることで一端側の弾性変形特性を求め、他端側に押し当てた際のモータ出力と弾性変形特性とから、一端側と同じ押し当て状態にした際の他端側の角度検出器の値を推定することができる。
【符号の説明】
【0149】
図面中、1はロボットシステム、2はロボット、2cは第1アーム(アーム)、2dは第2アーム(アーム)、3はコントローラ(制御部)、4はストッパ、4aは下限ストッパ(ストッパ)、4bは上限ストッパ(ストッパ)、4cは上限ストッパ(ストッパ)、6はモータ、8は角度検出器、20はロボット、20bは第1アーム(アーム)、20cは第2アーム(アーム)、20dはシャフト(アーム)を示す。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10