JP3967014B2 - 位置検出装置および関節機構 - Google Patents

位置検出装置および関節機構 Download PDF

Info

Publication number
JP3967014B2
JP3967014B2 JP25363698A JP25363698A JP3967014B2 JP 3967014 B2 JP3967014 B2 JP 3967014B2 JP 25363698 A JP25363698 A JP 25363698A JP 25363698 A JP25363698 A JP 25363698A JP 3967014 B2 JP3967014 B2 JP 3967014B2
Authority
JP
Japan
Prior art keywords
signal
pulse
output shaft
sensor
rotation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP25363698A
Other languages
English (en)
Other versions
JP2000084885A (ja
Inventor
有一 村瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP25363698A priority Critical patent/JP3967014B2/ja
Publication of JP2000084885A publication Critical patent/JP2000084885A/ja
Application granted granted Critical
Publication of JP3967014B2 publication Critical patent/JP3967014B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、例えばロボットの関節等に用いる減速機の出力軸の回動位置を検出する位置検出装置、およびロボットの関節等に採用される関節機構に関する。
【0002】
【従来の技術】
従来より、例えば、ロボットのアームとアームとの結合部分である関節には、モータが配置され、そのモータにより、一方のアームを基体とし、もう一方のアームをその基体に対し相対的に動作させる関節機構が採用されている。ロボットの関節に使用されるモータは、それ自身が負荷となることが多く、小型のモータが採用され、一方でトルクが必要なため減速機が採用される。
【0003】
ここで、例えばそれまで停止していたロボットを稼動させようとする場合、ロボットの姿勢が不明であるため、初期化動作を行なう必要がある。この初期化動作は、例えばアームがある姿勢にまで動いたときにオンとなるセンサを備えておいて、そのアームをそのセンサがオンとなるまで動かしてみることにより行なわれる。こうすることによりそのアームの姿勢が判明し、それ以降その初期化時の姿勢を基準として所望の動作を行なわせることができる。
【0004】
【発明が解決しようとする課題】
ところが、その初期化動作は、上述したように、そのロボットの現在の姿勢が不明な状態からとりあえず動かしてみてセンサが働く姿勢を見つけるというやり方で行なわれることから、その初期化動作時にアームが大きく動く可能性があり、周囲の障害物にあたってしまう危険性がある。また、例えば人間型のロボットに関し、2本足で立っている状態から各足の関節を初期化しようとしたとき、その初期化動作が大きいと立っているのが不安定となり、転倒してしまう危険性がある。したがってこのような危険を回避するために、アームを大きく動かしても障害物にあたることのないよう広いスペースを確保したり、人間型のロボットでは2本足のほかにロボットの姿勢保持装置を取り付けたりなど無駄が多い。また、このような危険のないロボットの場合であっても、初期化のために大きく動作する必要があると初期化に時間がかかり作業効率が悪いという問題もある。
【0005】
従来、ロボットの関節等のような、モータと減速機とが組み合わされた回転可動部の位置(角度)を求める方式として、
(1)アブソリュートエンコーダを採用した方式
(2)減速機の出力軸が基体に対しある回動角度になったときにオンになるオンオフセンサを設け、かつ、減速機構の入力軸に、基体に対する入力軸の回転量を検出するインクリメンタル式エンコーダを設ける方式
(3)減速機の出力軸にスリット板を設けるとともにそのスリット板のスリットを検出するセンサを基体に設け、かつ入力軸には、基体に対する入力軸の回転量を検出するインクリメンタル式エンコーダを設け、しかも、上記スリット板のスリットどうしの間隔を入力軸の1回転分に対応する出力軸の動作角の整数倍から僅かにずらした構成とする方式(「日本ロボット学会誌」Vol.16 No.1 pp.48〜49,1989 参照)などが知られている。
【0006】
上記(1)のアブソリュートエンコーダを用いた方式によれば、常に現在の出力軸の絶対的な回動位置(絶対角度)を知ることができる。したがって、初期化のために大きく動かさなくてもよいという観点からは理想的ではあるが、アブソリュートエンコーダは高価であり小型化も困難であるため、アブソリュートエンコーダを採用することのできるケースは極く限られている。
【0007】
上記(2)は、前述した、オンオフセンサがオンとなるまでとりあえず動かしてみるという初期化方式であり、大きな初期化動作を必要とし、現在この初期化方式が広く採用されているものの、上述のような様々な問題を伴う初期化方式である。
【0008】
上記(3)は、初期化動作を小さく抑えるという観点からは1つの有効な方式であるが、エンコーダと同程度に高精度なスリットを形成する必要があり、しかも減速比に応じたスリット間隔のものを作製する必要がある。このように、この方式の場合、高精度かつ減速比に応じたスリットを形成する必要があることから、入力軸側のエンコーダのほかに、もう一台特注のエンコーダを必要とするようなものであり、非常に高価なものとなってしまうという問題がある。
【0009】
本発明は、上記事情に鑑み、小さな動作を行なうだけで基体を基準としたときの減速機の出力軸の回動位置(角度)を検出することのできる、安価な位置検出装置、およびその位置検出装置を採用した、例えばロボットの関節等に採用される関節機構を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成する本発明の位置検出装置は、基体に対し回転する入力軸の回転速度を減速して出力軸に伝達する減速機の、基体を基準としたときの出力軸の回動位置を検出する位置検出装置において、
回転する入力軸が基体を基準とした所定の位相を通過する毎に第1の信号を生成するとともに、その第1の信号が生成される周期よりも短い周期で、入力軸が基体に対し所定角度回転する毎に第2の信号を生成するエンコーダと、
回転する入力軸が出力軸を基準とした所定の位相を通過する毎に第3の信号を生成するセンサと、
上記エンコーダで生成された第1の信号および第2の信号、および上記センサで生成された第3の信号に基づいて、基体を基準としたときの出力軸の回動位置を求める位置演算部とを備えたことを特徴とする。
【0011】
本発明の第1の位置検出装置は、基本に対する入力軸の回転量を求めるエンコーダ(インクリメンタル式エンコーダ)を採用した点に関しては従来技術の(2),(3)の方式と同様であるが、本発明の第1の位置検出装置の場合は、入力軸と出力軸との間に上記センサを設けたことに1つの特徴があり、このセンサは、例えば入力軸が一回転したことを検出するスリット板とフォトカプラ程度のもので済み、このスリット板は入力軸が例えば一回転したことを検出すればよいものであるから、円板に一箇所適当な寸法のスリットを設けた程度のもので済み、高精度である必要はなく、このような簡易、安価なセンサを入力軸と出力軸との間に設ける(例えばスリットを入力軸、フォトカプラを出力軸に取り付ける)だけで、詳細は後述するが、出力軸を少し動かすだけで、その間のセンサの出力(第3の信号)とエンコーダ出力(第1の信号および第2の信号)とに基づいて、基体を基準としたときの出力軸の回動位置を検出することができる。
【0012】
また、上記本発明の位置検出装置の第2の位置検出装置は、基体に対し回転する入力軸の回転速度を減速して出力軸に伝達する減速機の、基体を基準としたときの出力軸の回動位置を検出する位置検出装置において、
回転する入力軸が出力軸を基準とした所定の位相を通過する毎に第1の信号を生成するとともに、その第1の信号が生成される周期よりも短い周期で、入力軸が出力軸に対し所定角度回転する毎に第2の信号を生成するエンコーダと、
回転する入力軸が基体を基準とした所定の位相を通過する毎に第3の信号を生成するセンサと、
上記エンコーダで生成された第1の信号および第2の信号、および上記センサで生成された第3の信号に基づいて、基体を基準としたときの出力軸の回動位置を求める位置演算部とを備えたことを特徴とする。
【0013】
本発明の第2の位置検出装置は、第1の位値検出装置と比べ、エンコーダとセンサの取付位置を逆にしたもの、すなわち、エンコーダを出力軸に取り付けてその出力軸に対する入力軸の相対的な回転量を検出し、センサを基体と入力軸との間に取り付けて基体に対する入力軸の回転を検出する(例えば一回転に一回のパルスを生成する)ようにしたものであり、詳細は後述するが、この第2の位置検出装置も、第1の位置検出装置と同様、出力軸を少しだけ回動することで、その出力軸の回動位置を知ることができる。
【0014】
ここで、上記第1の位置検出装置ないし第2の位置検出装置において、上記位置演算部が、上記第1の信号の生成タイミングから上記第3の信号の生成タイミングまでの間の前記第2の信号の生成回数を計数して計数値を得、その計数値に基づいて、基体を基準としたときの出力軸の回動位置を求めるものであってもよい。
【0015】
この方式は、第1の信号や第3の信号の生成の周期と比べ第2の信号の生成周期が十分に小さいときに有効である。また、この方式は、常に、まず第1の信号の生成を検知してその第1の信号の生成タイミングから第3の信号の生成タイミングまでの間の第2の信号の生成回数を計数するものであり、比較的簡単なアルゴリズムで済む。
【0016】
あるいは上記第1の位置検出装置ないし第2の位置検出装置において、上記位置演算部は、上記第1の信号と上記第3の信号のうちの先に生成された一方の信号から後で生成された他方の信号までの間の上記第2の信号の生成回数を計数して計数値を得、その計数値に基づいて、基体を基準としたときの出力軸の回動位置を求めるものであってもよい。
【0017】
この方式も、上記と同様、第1の信号や第3の信号の生成の周期と比べ第2の信号の生成周期が十分に小さいときに有効である。またこの方式は、第1の信号と第3の信号のうちの先の信号から第2の信号を数え始め後の信号で数え終えるようにしたため、アルゴリズムは多少複雑となるが、より小さな動きで出力軸の回動位置を検出することができる。 また、上記第1の位置検出装置ないし第2の位置検出装置において、上記位置検出部は、上記第1の信号の生成タイミングから前記第3の信号の生成タイミングまでの間の上記第2の信号の生成回数を計数して計数値を得る過程を、入力軸が回転した状態でその計数値が変化するまで繰り返し、計数値が変化したタイミングにおける計数値に基づいて、基体を基準としたときの出力軸の回動位置を求めるものであってもよい。
【0018】
この方式は、減速比が極めて大きく、例えば同一の計数値が何回か続くような場合に有効に作用する。また、この方式は、常に第1の信号が生成されるのを待ってその第1の信号の生成タイミングから第3の信号の生成タイミングまでの間、第2の信号の生成回数を計数するものであり、比較的簡単なアルゴリズムで済む。
【0019】
あるいは、上記第1の位置検出装置ないし第2の位置検出装置において、上記位置検出部は、上記第1の信号と上記第3の信号のうちの先に生成された一方の信号から後で生成された他方の信号までの間の上記第2の信号の生成回数を計数して計数値を得る過程を、入力軸が回転した状態でその計数値が変化するまで繰り返し、計数値が変化したタイミングにおける計数値に基づいて、基体を基準としたときの出力軸の回動位置を求めるものであってもよい。
【0020】
この方式も、減速比が極めて大きな場合に有効であり、また第1の信号と第3の信号のうちの先の信号から後の信号までの計数値を得るものであるため、アルゴリズムは多少複雑となるが、より小さな動きで出力軸の回動位置を検出できる可能性がある。
【0021】
ここで、上記の、計数値を得る過程を複数回繰り返す方式を採用した場合に、さらに、上記位置検出部が、上記第2の信号の生成回数の計測値と、基体を基準としたときの出力軸の回動位置を求めるための係数との対応表を記憶しておき、その対応表を参照して、計数値が変化したタイミングにおけるその計数値に対応する係数を求め、その求めた係数を用いて、基体を基準としたときの出力軸の回動位置を求めるものであることが好ましい。 上述したような、例えば同一の計数値が何回か続くようなケースでは、上記のような対応表を参照しない構成の場合はある程度大きな誤差が残る可能性がある。ただし、この誤差は、計数値が例えばNからN+1に変化した場合そのNには依存するが、Nが定まれば常に一定である。そこで上記対応表を記憶しておいてその対応表を参照することにより、その誤差分が補正された、出力軸の正確な回動位置を知ることができる。
【0022】
また、上記目的を達成する本発明の関節機器のうちの第1の関節機構は、本発明の第1の位置検出装置を採用したものであり、
基体、
基体に固定された、基体に対し回転する回転軸を有するモータ、
モータの駆動力により基体に対し相対的に動作するアーム、
モータの回転軸に連結されその回転軸の回転に伴って回転する入力軸と、アームに連結されそのアームを駆動する出力軸とを有し、入力軸の回転速度を減速して出力軸に伝達する減速機、および
回転する入力軸が基体を基準としたときの所定の位相を通過する毎に第1の信号を生成するとともに、その第1の信号が生成される周期よりも短かい周期で、入力軸が基体に対し所定角度回転する毎に第2の信号を生成するエンコーダと、回転する入力軸が出力軸を基準とした所定の位相を通過する毎に第3の信号を生成するセンサと、エンコーダで生成された第1の信号および第2の信号、および上記センサで生成された第3の信号に基づいて基体を基準としたときの出力軸の回動位置を求めることにより、基体を基準としたときのアームの動作位置を求める位置演算部とを有する位置検出装置を備えたことを特徴とする。
【0023】
本発明の第1の関節機構は、本発明の第1の位置検出装置を採用したことにより、アームを大きくは動かすことなく、そのアームの動作位置を求めることができる。
【0024】
また、上記目的を達成する本発明の関節機構のうちの第2の関節機構は、本発明の第2の位置検出装置を採用したものであり、
基体、
基体に固定された、基体に対し回転する回転軸を有するモータ、
モータの駆動力により基体に対し相対的に動作するアーム、
モータの回転軸に連結されその回転軸の回転に伴って回転する入力軸と、前記アームに連結されそのアームを駆動する出力軸とを有し、入力軸の回転速度を減速して出力軸に伝達する減速機、および
回転する入力軸が出力軸を基準とした所定の位相を通過する毎に第1の信号を生成するとともに、その第1の信号が生成される周期よりも短かい周期で、入力軸が出力軸に対し所定角度回転する毎に第2の信号を生成するエンコーダと、回転する入力軸が基体を基準としたとき所定の位相を通過する毎に第3の信号を生成するセンサと、エンコーダで生成された第1の信号および第2の信号、および上記センサで生成された第3の信号に基づいて基体を基準としたときの出力軸の回動位置を求めることにより、基体を基準としたときのアームの動作位置を求める位置演算部とを有する位置検出装置を備えたことを特徴とする。
【0025】
本発明の第2の関節機構は、本発明の第2の位置検出装置を採用したことにより、上記第1の関節機構と同様、アームを大きく動かすことなく、そのアームの動作位置を求めることができる。
【0026】
【発明の実施の態様】
以下、本発明の実施態様について説明する。
【0027】
図1は、本発明の一実施形態としての位置検出装置および関節機構を備えたロボットの一例を示す模式図である。この図1に示すロボットは、複数のアームとそれらのアームどうしを連結する関節とから構成されている作業用ロボットである。
【0028】
ベース1上に複数のアーム2_1,2_2,2_3が各関節3_1,3_2,3_3で順次連結されている。また先端のアーム2_3にはハンド4が連結されている。ハンド4は、そのハンドを構成する指4aが自在に開閉して作業対象物を把持したり離したりすることができ、また、各関節3_1,3_2,3_3には、各関節で連結されたアーム2_1,2_2,2_3を自在に回動することができるようにモータや減速機からなる関節機構が配置されている。このような作業ロボットを用いると、先端のハンド4が所定の位置、所定の姿勢となるようにアームを回動させて、例えば作業対象物5を把持して他の位置まで運ぶ等の作業を行なうことができる。
【0029】
図2は、図1に示す作業ロボットの各関節に配置されるモータ、減速機、および減速機の出力軸の回動位置の演算とモータの回転制御を担う演算制御部を示す模式図である。
【0030】
ここには、モータ10と、減速機20と、エンコーダ30と、センサ40と、演算制御部50が示されている。
【0031】
モータ10は、図示しない基体に固定されている。ここでいう基体とは、図1に示す関節3_1に関してはベース1、関節3_2に関してはアーム2_1、関節3_3に関してはアーム2_2である。
【0032】
また、ここでは、減速機20には、ハーモニックギアが用いられている。ハーモニックギアは大きな減速比を得ることができることで知られており、ロボットの関節等に多用されている。ここではハーモニックギア自体の構造についての説明は省略する。
【0033】
モータ10の回転軸11と減速機20の入力軸21は直結されており、モータ10の回転軸11、すなわち減速機20の入力軸21が回転すると、その入力軸21の回転は大きな減速比で減速されて出力軸21に伝達され、入力軸21が多数回回転すると、出力軸21は、入力軸21の回転に伴ってゆっくりと回動する。
【0034】
減速機20の出力軸21にはアームが連結されており(図1の各関節3_1,3_2,3_3に配置された各減速機の出力軸には、それぞれアーム2_1,2_2,2_3が連結されている)、モータ10が回転して減速機20の出力軸22が回動すると、それに伴ってその出力軸22に連結されたアームが動くことになる。
【0035】
図1に示すように、各関節3_1,3_2,3_3には図2に示す構造の関節機構がそれぞれ配置されるため、モータ自身がそのロボットの負荷として作用する。そこでモータとしてはできる限り小型、軽量のものを採用し、減速機で大きく減速することでトルクを高めているのである。
【0036】
図2に示すモータ10には、ロータリエンコーダ30が連結されている。このロータリエンコーダ30は、モータ10とともに基体に固定されており、またモータ10の回転軸11がそのロータリエンコーダ30の軸(図2には図示せず)に直結されている。このロータリエンコーダ30は、モータ10の回転軸11が一回転する毎にZ相パルスを出力するとともに、その一回転の間に多数回、互いに位相が90°ずれたA相パルスとB相パルスを出力する。
【0037】
A相パルスとB相パルスは互いに位相が90°ずれており、モータ10の回転軸11の回転方向に応じてその位相関係が逆転することから、これらA相パルスとB相パルスの位相をモニタすることにより、モータ10の回転軸11の回転方向を知ることができる。また、これらA相パルス、B相パルスのいずれか一方のパルス信号、あるいはこれらA相パルスとB相パルスを組み合わせて作ったパルス信号を計数することにより、モータ10の回転軸11の、一回転よりも細かな回転角度を知ることができる。ここでは、この計数の対象となるパルス信号を基本パルスと称する。本発明との対比では、Z相パルスが本発明にいう第1の信号に相当し、基本パルスが本発明にいう第2の信号に相当する。
【0038】
また、図2の右側には、減速機21の入力軸21に、オンオフセンサ40を構成するスリット円板41が固定されている。このスリット円板41は、一周の間に1つだけスリットが設けられており、入力軸21の回転に伴って回転する。また、出力軸22には、そのスリット円板41に設けられたスリットを検出するためのフォトカプラ42が固定されており、入力軸21が出力軸22に対して一回転する毎にそのスリットがフォトカプラ42により検出され、そのフォトカプラ42からオンオフセンサパルス(本発明にいう第3の信号に相当する)を出力する。
【0039】
エンコーダ30から出力されたZ相、A相、B相の各パルス信号およびオンオフセンサ40から出力されたオンオフセンサパルス信号は演算制御部50に入力される。
【0040】
尚、ここでは、一般的なエンコーダの説明のため、Z相パルスのほか、A相とB相との2つのパルス信号が生成される旨説明したが、モータ10の回転軸11の回転方向(正転又は逆転)は、モータを駆動する側で判定することもでき、その場合は、A相、B相2つのパルス信号は不要であり、A相のみ、あるいはB相のみを基本パルスとして演算制御部50に入力してもよく、あるいはZ相パルスのほか、もともとA相パルスのみあるいはB相パルスのみに相当する基本パルスしか生成しないエンコーダを用いてもよい。本実施形態ではA相パルスとB相パルスの双方を演算制御部50に入力し、演算制御部50の内部でそれらA相パルスとB相パルスから基本パルスを生成しているものとする。
【0041】
また、オンオフセンサ40はスリット円板41とフォトカプラ42とからなる旨説明したが、この構成に限るものではなく、出力軸を基準としたときの入力軸の一回転を検出することができるセンサであればどのようなものであってもよい。
【0042】
演算制御部50は、3つの関節3_1,3_2,3_3のうちのそれぞれ1つの関節の制御を担っており、図1に示すロボット全体の制御を司る図示しない上位の制御装置からの指令を受けて自分が担当する関節を制御する。この制御は、モータ10の回転軸11の回転方向および回転量を制御することによって行なわれる。モータ10を制御してアームを動かすと、その結果は、図示しない上位の制御装置に報告される。
【0043】
図3は、図2にブロックで示すロータリエンコーダの内部構造を示す模式図である。
【0044】
基体に固定される固定ベース31の内部には、ロータリーエンコーダの回転軸37に固定されたスリット板32が配置されている。この回転軸37はモータの回転軸11(図2参照)に直結されている。スリット板32は、一周に1つだけ設けられたZ相検出用のスリット33と、一周にわたって多数形成されたA相、B相検出用のスリット34を有している。Z相検出用スリット33は、固定ベース31に固定されたZ相検出センサ35によって検出され、A相、B相検出用スリット34は、固定ベース31に固定されたA相、B相検出センサ36によって検出される。ここで、A相、B相検出センサ36は、図示は省略するが、A相、B相検出用スリット34のピッチに対し互いに位相が90°異なる位置に配置されたA相検出センサとB相検出センサとの2つのセンサから成り、スリット板32の回転方向、すなわちモータの回転軸11が正転するか逆転するかに応じて、A相、B相検出用スリット34を、A相検出センサあるいはB相検出センサのいずれかが先に検出し、したがってA相パルスとB相パルスとのいずれのパルス信号の位相が進んでいるかに応じて、モータの正転と逆転を判定することができる。Z相検出センサ35で得られたZ相パルス、およびA相、B相検出センサ36で得られたA相パルスおよびB相パルスは、図2に示すように、いずれも演算制御部50に入力される。
【0045】
図4は、オンオフセンサ40の構成を示す模式図である。減速機の入力軸21には、スリット板41が固定されており、そのスリット板41には、一周に1つのみスリット43が設けられている。このスリット43は減速機の出力軸22に固定されたフォトカプラ42で検出されてオンオフセンサパルスが生成される。この生成されたオンオフセンサパルスも図2に示す演算制御部50に入力される。
【0046】
図5は、図2に1つのブロックで示す演算制御部50の内部構成図である。
【0047】
ここに示す演算制御部50は、コンピュータシステムで構成されており、ここには、各種プログラムが実行されるCPU51、外部からの各種のデータや指令を入力する入力インターフェース52、外部に対し各種のデータや指令を出力する出力インターフェース53、各種プログラムや固定的なデータが記憶されているROM54、プログラム実行時の作業領域として、あるいは外部との間で入出力されるデータの一時保管場所として利用されるRAM55、および必要に応じてこの演算制御部50にマニュアルで指令を与えるための操作部56が示されており、これらの構成要素はバス57で相互に接続されている。CPU51では、図1に示す作業ロボットの、初期化動作のためのプログラム、初期化終了後の、実際の作業を行なう際の動作を制御するプログラム、その他上位の制御装置との間でデータを送受信するためのプログラム、操作部56の操作を認識するプログラム等、多種のプログラムが実行されるが、以下では、本発明の主題である初期化動作に限って説明を続ける。
【0048】
図6は、各種パルス信号の生成タイミングを示す図である。(A),(B)および(C)は、それぞれZ相パルス、基本パルス、およびオンオフセンサパルスであり、横軸は減速機の入力軸(モータの回転軸)の回転角度である。
【0049】
エンコーダ30(図2参照)では、入力軸が一回転するごとに一回Z相パルスが生成され、入力軸の一回の間においても所定の微小回転角度Δθe毎に1つずつ基本パルスが生成される。ここでは、Z相パルスが生成されてから次のZ相パルスが生成されるまでの間、すなわち入力軸の一回転の間に、基本パルスがP回生成されるものとする。また、オンオフセンサパルスは、スリット板41が入力軸に固定されて入力軸の回転に伴って回転するが、そのスリット板41のスリット43(図4参照)を検知するフォトカプラ42が出力軸22に固定されており、この出力軸22は、入力軸21の回転に伴って、減速機20の減速比に応じた速度でゆっくりと回動するため、Z相パルスからの遅れが順次変化することになる。すなわち図6に示すように、Z相パルスを基準として考えたときのオンオフセンサパルスは、例えば初回は横軸に示したAの位置で生成され、その次はBの位置で生成され、さらにその次はCの位置で生成され、…というようにZ相パルスを基準としたとき、入力軸の回転角度が順次異なった位置で生成されることになる。尚、オンオフセンサパルスの生成位置がA,B,C,…の順に変化するときのモータの回転方向を正転とすると、モータが逆転したときは、オンオフセンサパルスの生成位置は、…C,B,Aの順に変化することになる。
【0050】
ここで、エンコーダ30やオンオフセンサ40の加工精度や取付誤差、あるいはその他の要因により、設計上は同一であっても、Z相パルスが生成されてからオンオフセンサパルスが生成されるまでの間の基本パルスの数や、オンオフセンサパルスが生成されたときの、出力軸の回動角度やその出力軸に連結されたアームの角度等は、製作されたロボット一台一台について微妙に異なっており、これを誤差のまま残しておくとそのロボットに高精度の動作を行なわせるのは難しい。そこでロボットを製作した際に通常行なわれるように、ここでも、図示しない三次元測定器等を用いて、ロボットの基準となる姿勢をキャリブレーションしておく。すなわち、ここでは、三次元測定器等を用いて、Z相パルスを基準としオンオフセンサパルスが図6の横軸上の位置Aで生成されたときの、基体に対する出力軸の絶対角度を求め、かつ、そのときのZ相パルスからオンオフセンサパルスまでの間に発生した基本パルスのパルス数がNaパルスであることを求めておく。これらの絶対角度のデータ、およびそのパルス数(Naパルス)は、そのロボットの出荷に先立って、図3に示すROM54に記憶される。あるいは、RAM55が不揮発性メモリの場合はRAM55に格納してもよい。あるいは、ロボットの複数の関節3_1,3_2,3_3(図1参照)に関するデータを上位の制御装置に格納しておいて、そのロボットの動作に先立って各関節の制御を担う各演算制御部にそれらのデータをダウンロードして演算制御部のRAMに格納するようにしてもよい。ここでは、それらのキャリブレーションは済んでいるものとして説明を続ける。
【0051】
初期化動作時に、図2に示すモータ10の回転軸11を回転させることによって減速機20の入力軸21を回転させ、それに伴ってZ相パルスが生成され、そのZ相パルスの生成タイミングから基本パルスを数え始め、オンオフセンサパルスが生成されたタイミングで基本パルスを数えるのを停止したとき、Nパルスが計数されたものとする。
【0052】
図6に示す横軸上のA,B,C…の各ポイントどうしの間隔、すなわち、その間の出力軸の回動角度やその間に生成される基本パルスの数は、減速機20の減速比と、基本パルスの周期とから既知であるため、今回、Z相パルスが生成されてからオンオフセンサパルスが生成されるまでの間の基本パルスを数え、その結果がNパルスであるということから、オンオフセンサパルスが生成された位置、すなわち位置Xにおける出力軸の回動位置を求めることができる。
【0053】
この原理を理論的に説明する。
【0054】
減速機の減速比をRとしたとき、ある1つのオンオフセンサパルスが生成されてから次のオンオフセンサパルスが生成されるまでの入力軸の回転角度θrは、
θr=(360×R)/(R−1) [deg]
であらわされる。
【0055】
一方Z相のパルス間隔は、入力軸の回転角度で常に360[deg]である。
【0056】
このことから、図6に示すように、Z相のパルス生成位置を基準としたときのオンオフセンサパルスの位置変化を入力軸の回転角度であらわしたものをオンオフセンサパルス変動ステップΔθzr(図6参照)と呼ぶと、そのオンオフセンサパルス変動ステップΔθzrは、
Δθzr=θr−360=360/(R−1) [deg]
であらわされる。
【0057】
すなわち、オンオフセンサパルスは、毎回、このオンオフセンサパルス変動ステップΔθzrずつZ相パルス位置からずれていく。この式からわかるようにこの変化分Δθzrは、減速機の減速比Rで一意に定まる定数である。このΔθzrが、エンコーダの基本パルス間隔Δθe(図6参照)より大きい場合(小さい場合については後述する)、Z相パルス位置からオンオフセンサパルス位置までの基本パルス数を計数することにより、キャリブレーション位置Aから、今回のオンオフセンサパルス位置Xまでの間に入力軸が何回回転したかが判る。キャリブレーション位置Aにおける出力軸の絶対角度は前述のように測定されており、したがって今回のオンオフセンサパルス位置Xにおける出力軸の絶対角度は計算によって求めることができる。このZ相パルスとオンオフセンサパルスの検索動作、すなわち初期化動作の入力軸回転量は、Z相パルスよりもオンオフセンサの方が先に生成されるという、最も大きな入力軸回転量を要するケースであっても2θrで済む。
【0058】
この間、出力軸は、2×360/(R−1)[deg]しか回動せず、出力軸の絶対角度の算出のための初期化動作はほんの僅かな動作で済むことになる。
【0059】
以下に、具体的な計算例を示す。
【0060】
前提条件:
エンコーダ基本パルス数:500[パルス/回転]
減速比R:100
或る位置A(キャリブレーション位置)での出力軸絶対角度θo
:10.000[deg]
(位置Aはオンオフセンサパルスが発生した位置であり、絶対角度は別途キャリブレーションで求めたものである)
Z相パルス発生位置から位置Aまでのエンコーダ基本パルス数Na
:35[pulse]
(上記パルス数をカウントしたときの入力軸回転方向を+方向とする)
エンコーダ基本パルス角度Δθe:360/500[deg]
オンオフセンサパルス間隔θr:360×100/99[deg]
オンオフセンサパルス変動ステップΔθzr:360/99[deg]
とする。
【0061】
任意の点で入力軸を+方向に回転させて、Z相パルスが発生した後のオンオフセンサパルス発生位置で止める。このときのZ相パルスが発生した後、オンオフセンサパルス発生まで間の基本パルス数Nの計測結果が
N=86[pulse]
であったとする。出力軸の位置Aからの概算回転角度は
(N−Na)×Δθe=(86−35)×360/500=36.72[deg]
である。
【0062】
位置Aからみたときのオンオフセンサパルスの発生回数を計算すると
36.72/Δθzr=10.1[回]
現在位置はオンオフセンサパルスが発生した位置にあるので0.1は量子化誤差であり、位置Aからみて10回目のオンオフセンサパルスが発生した位置にいるはずである(最も近い整数値を回数として判断する)。
よってA点からの入力軸の回転量は
Δθi=10×(360+Δθzr)=10×(360+360/99)
であり出力軸の回転量Δθoは
Δθo=Δθi/R=10×(360+Δθzr)/R=10×(360+360/99)/100=36.364[deg]
よって現在の出力軸の絶対角度θは
θ=θo+Δθo=10.000+36.364=46.364[deg]
である。
【0063】
この絶対位置の算出に必要な出力軸の回転角度は出力軸を最も大きく回動させる必要がある場合においても、
2×360/(R−1)=7.27[deg]
である。
【0064】
図7は、以上の原理に基づいて初期化動作を行なう際に演算制御部で実行されるプログラムをあらわしたフローチャートである。
【0065】
ここでは、先ずカウンタNがリセットされ(ステップ7_1)、モータの回転を開始する(ステップ7_2)。次いで、Z相パルスが出力されるのを待って(ステップ7_3)、Z相パルスが出力されると、次にオンオフセンサパルスの出力と基本パルスの出力がモニタされ(ステップ7_4,7_5)、基本パルスが出力されるとその基本パルスのカウンタNがカウントアップされる(ステップ7_6)。一方、オンオフセンサパルスが出力されるとステップ7_7に進み、オーバーラン補正が行なわれる。
【0066】
ロボットのアームは、ある瞬間に停止しようとしても直ちには停止することはできず慣性力により若干行き過ぎることになる。そこでここでは、モータを、オンオフセンサパルスが出力された後に出力された基本パルス数と同数の基本パルス数が発せられるまで逆回転させることにしたり、行き過ぎ分(オーバーラン)を補正し、オンオフセンサパルスが出力された位置に戻す。その位置でモータを停止し(ステップ7_8)、減速機の出力軸の回転角度の計算を行なう。このときの計算のアルゴリズムは前述のとおりである。これにより、出力軸の現在の回動角度、すなわちその出力軸に連結されたアームの動作位置が判明し、初期化が行なわれたことになる。
【0067】
この初期化動作における出力軸の回動角度は、前述のとおり僅かで済み、出力軸を少しだけ回動させるだけで初期化を行なうことができる。
【0068】
図7に示すプログラムは、Z軸パルスが発生してから基本パルスの計数を始めるプログラムであり、この場合、Z軸パルスよりもオンオフパルスの方が先に発生したときであっても、Z軸パルスが発生するまでモータを回転し続けてZ軸パルスを得、そのZ軸パルスを得た時点から基本パルスの計数を始めることになり、最初にオンオフパルスが発生してからZ軸パルスが発生するまでの間、出力軸は初期化のための演算に寄与することなく回動し続けることになり、その分、初期化に要する出力軸の回動角度が大きくなってしまう結果となる。そこでこれを避けるための一方法として、Z軸パルスよりオンオフセンサパルスの方が先に発生したとき、その時点でモータを逆転させ、Z軸パルスを発生したタイミングでモータをもう一度逆転させ(もともとの正転方向となる)、Z軸パルスの発生タイミングから基本パルスの計数を開始する。こうすることにより、出力軸は正方向と逆方向の双方に回動するが、回動の角度範囲は狭くて済むことになる。
【0069】
図8は、上記の、オンオフパルスが先に発生したときにはモータを逆転させるというアルゴリズムを実現するプログラムの、図7に示すプログラムからの変更部分を示す部分フローチャートである。
【0070】
この図8に示す部分フローチャートは、図7のステップ7_3に代えて、そのステップ7_3の部分に配置される。
【0071】
ステップ8_1,8_2においてZ相パルスとオンオフセンサパルスの出力がモニタされ、Z相パルスの方が先に出力されたときは図7の場合と同様であって、図7のステップ7_4に進む。一方、オンオフセンサパルスの方が先に出力されたときは、モータを逆転し(ステップ8_3)、Z相パルスの出力をモニタし(ステップ8_4)、Z相パルスが出力されるとモータを再度逆転(もともとの正転方向)する(ステップ8_5)。前述したように慣性力により少し行き過ぎることを利用し、ステップ8_1においてモータをもともとの正転方向に回転したときのZ軸パルスを検知して、図7に示すステップ7_4に進む。
【0072】
このようなアルゴリズムを採用すると、出力軸の回動範囲をより小さく抑えることができる。ただし、慣性力が存在することから、モータを逆転させるにはある程度の長時間を要し、このアルゴリズムはモータを2回にわたって逆転させる必要があることから、初期化動作に時間がかかる結果となる。そこで次に出力軸の回動範囲をより小さく抑え、かつ初期化動作に要する時間も抑えたアルゴリズムを説明する。
【0073】
図9は、演算制御部で実行される初期化動作プログラムのもう一つの例を示すフローチャートである。
【0074】
先ず、カウンタNをN=0にリセットし、モータの回転を開始する(ステップ9_1,9_2)。次いで、Z相パルスとオンオフセンサパルスとのいずれかが出力されるのを待つ(ステップ9_3,9_4)。Z相パルスの方が先に出力されたときは、フラグFをF=0にリセットし(ステップ9_5)、オンオフセンサパルスの方が先に出力されたときはフラグFをF=1にセットして(ステップ9_6)、いずれの場合も、ステップ9_7に進む。ステップ9_7ではフラグFがF=0かF=1かが判定され、F=0のときはステップ9_8に進んでオンオフセンサパルスが出力されたか否かが判定され、F=1のときはステップ9_9に進んでZ相パルスが出力されたが否かが判定される。
【0075】
ステップ9_8においてオンオフセンサパルスが出力されていないと判定されたとき、あるいはステップ9_9においてZ相パルスが出力されていないと判定されたときは、ステップ9_10に進み、基本パルスが出力されたか否かが判定される。基本パルスが出力されていないときはステップ9_7に戻り、以上のパルス出力のモニタが繰り返される。 ステップ9_10において基本パルスの出力が確認されると、ステップ9_11に進み、基本パルス数Nがカウントアップされる。
【0076】
ステップ9_8においてオンオフセンサパルスの出力が確認されたとき、あるいはステップ9_9においてZ相パルスの出力が確認されたときは、ステップ9_12に進む。ステップ9_12〜ステップ9_14の処理は、図7のステップ7_7〜7_9の処理と同一であり、説明は省略する。ただしステップ9_14における角度計算アルゴリズムは、F=0のときは図7のステップ7_9と同様であり、F=1のときは次に説明するアルゴリズムが採用される。
【0077】
この図9に示すフローは、Z軸パルスとオンオフセンサパルスのうちの先に出力されたパルスから後に出力されたパルスまでの間の基本パルス数を計数し、その計数値に基づいて出力軸の回動角度を計算するようにしたものであり、図7のフローチャートと比べると解るように多少複雑なアルゴリズムとなっているが、モータを逆転させる必要がなく、かつ出力軸の回動範囲をより小さく抑えた初期化を行なうことができる。
【0078】
F=1の場合、すなわちオンオフセンサパルスが先に発生し、その後Z軸パルスが発生した場合の角度計算方法について説明する。
【0079】
ここでは前述の計算例の場合と同様に、絶対角度をキャリブレーションした位置をオンオフセンサパルス発生位置Aとする。ここでは、Z相パルスより先に、図6の絶対角度算出位置Xでのオンオフセンサパルスが発生したものとし、この場合に、さらに同じ方向に入力軸を回転させてZ相パルスが発生した位置で停止する。その場合、オンオフセンサパルス発生後に余分に回した入力軸の回転量は(P−N)パルス分である。(P−N)パルス分の出力軸回転量Δθpnは
Δθpn=(P−N)×360/R/P
で求められるから、前述の具体的な計算例と同じ前提のもとに計算すれば、Z相パルスが発生した時点での出力軸絶対角度θは
θ=θo+Δθo+Δθpn=10.000+36.364+(500−86)×360/100/500=49.345[deg]
となる。
【0080】
このように、オンオフセンサパルス発生位置、Z相パルス発生位置における絶対角度は全て算出できるので、停止位置はどちらのパルス位置でも良いことになる。
【0081】
図10は、オンオフセンサパルス変動ステップΔθzrよりも基本パルス間隔Δθeの方が大きい場合の、各種パルス信号の生成タイミングを示す図である。図6の場合と同様、(A),(B),(C)は、それぞれZ相パルス、基本パルスおよびオンオフセンサパルスであり、横軸は減速機の入力軸(モータの回転軸)の回転角度である。
【0082】
ここでは、減速機の減速比が非常に大きく、その結果、図10に示すように、オンオフセンサパルス変動ステップΔθzrよりも基本パルス間隔Δθeの方が大きく、したがってモータをある一定の方向に回転し続けてZ軸パルスの発生からオンオフセンサパルスの発生までの間の基本パルスの数の計数を何度か繰り返したときに複数回同じ計数値が得られるような場合の初期化アルゴリズムについて説明する。
【0083】
この場合、例えばZ相パルスの発生からオンオフセンサパルスの発生までの間の基本パルスの数を数えてもその基本パルスの計数値によっては出力軸の回動位置を求めることはできない。そこで、ここでは、入力軸を一方向に回転させて、Z相パルスからオンオフセンサパルスまでの間の基本パルスの計数を繰り返し、この計数値が最初に変化したときのオンオフセンサパルス発生位置で出力軸を停止する。この停止位置は、図10上で、横軸上の位置Aであるとする。
この停止したとき、すなわち、変化した後の計数値をNa+1(変化前の計数値をNa)とする。この停止したときの出力軸の絶対角度θo(出力軸に連結されたアームの動作位置)を三次元測定器等を用いて計測する。このような絶対角度θoの測定を行ない、その測定された絶対角度θoと、出力軸を停止した時点における、基本パルスの計数値Na+1を保有しておく。これらのデータの保有場所は、前述の例と同様、図5に示すROM54あるいはRAM55、あるいは、このロボット装置全体の制御を司る図示しない制御装置内であってもよい。
【0084】
次に、実際の初期化動作を開始し、Z相パルスからオンオフセンサパルスまでの間の基本パルスの計数値を求めたところNであったとし、さらに入力軸の回転を続けZ相パルスからオンオフセンサパルスパルスまでの間の基本パルスの計数を続ける。この間、オンオフセンサパルスの発生位置は、図10の横軸上、位置B、位置C、…と進む。
【0085】
その間、暫らくは計数値Nが続き、その計数値が始めてNa+1に変化したときのオンオフセンサパルス出力位置(図10の位置X)でモータを停止する。尚ここではオーバランは考えない。
【0086】
ここでは、このようにして計数値が始めてNa+1となったときの位置Xに対応する出力値の絶対角度θを求める。
【0087】
三次元測定器等を用いて絶対角度θoを求めた位置Aと、今回計数値N+1を得て停止した位置Xとの間の計数値の差は
(N+1)−(Na+1)=N−Na
であり、この計数値の差(N−Na)を角度に換算すると、その差(N_Na)に相当する角度差Δθoは、
Δθo=Δθe×(N−Na)
であるから、位置Xでの出力軸の絶対角度θは、
θ=θo+Δθo
=θo+Δθe×(N−Na)
で求めることができる。
【0088】
この絶対角度θの算出に伴う出力軸の必要動作範囲の最大値は、基本パルス間隔Δθeである。
【0089】
以下に具体的な計算例を示す。
前提条件:
エンコーダ基本パルス数P:100[パルス/回転]
減速比R:500
或る位置A(キャリブレーション位置)での出力軸絶対角度θo:10.000[deg]
(位置AはZ相パルス〜オンオフセンサパルス間の基本パルス数が最初に変化したタイミングにおけるオンオフセンサパルス発生位置であって、この位置Aでは、絶対角度が別途キャリブレーションで求められている。
【0090】
Z相パルス発生位置から位置Aまでの基本パルス数Na:35[pulse]
(上記パルス数をカウントしたときの入力軸回転方向を+方向とする)
基本パルス角度Δθe;360/100[deg]
オンオフセンサパルス間隔θr:360×500/499[deg]
オンオフセンサパルス変動ステップΔθzr:360/499[deg]
とする。
【0091】
任意の位置から入力軸を+方向に回転させて、Z相パルスが発生した後、オンオフセンサパルス発生位置までの間の基本パルス数Nをカウントする。入力軸をさらに同方向に回し、このN値が最初に変化するときのオンオフセンサパルス発生位置Xで停止する。Z相パルスが発生した後、オンオフセンサパルスが発生するまでの間の基本パルス数N+1の計測結果が
N=86[pulse]
であったとする。出力軸の、位置Aからの回動角度Δθoは
(N−Na)×Δθe=(86.35)×360/100=183.6[deg]
である。
よって現在の出力軸の絶対角度θは
θ=θo+Δθo=10.000+183.6=193.6[deg]
である。
【0092】
この絶対位置の算出に必要な出力軸の回転角度は、出力軸は最を大きく動かす必要のあるケースであっても、
Δθe=3.6[deg]
である。
【0093】
図10を参照して説明している、オンオフセンサパルス変動ステップΔθzrよりも基本パルス間隔Δθeの方が大きい場合における、上記の絶対角度θを求めるアルゴリズムの場合、算出できる絶対角度の精度はΔθzrであり、減速比が500のシステムにおいても
Δθzr=360/499=0.721[deg]
程度であり、高精度な絶対角度を必要とするシステムには適用できない。この精度を上げるには、絶対角度をキャリブレーションした位置Aから現在位置までの間にオンオフセンサパルスが何回出るのか知っていればよい。そこで、事前に行うキャリブレーションにて、Z相パルス〜オンオフセンサパルス間における基本パルス数がNaからNa+1に変化する位置Aにおける絶対角度θoを求めておく他に、減速機の入力軸を順次回転させて、Z相パルス〜オンオフセンサパルス間の基本パルス数が変化するすべての位置に関し、それらの位置それぞれと位置Aとの間で発生する、オンオフセンサパルスの各発生数を対応表として保管しておく。実際の運用時には、基本パルス数がNからN+1に変化した位置Xに停止させたとき、基本パルス数がNからN+1に変化した場合の、位置Aからのオンオフセンサパルス数Kをその対応表から求め、出力軸の絶対角度θを
θ=θo+K×θzr
として求めることにより、絶対角度θをより正確に求めることができる。
【0094】
図11、図12は、以上の原理に基づいて初期化動作を行なう際に、演算制御部で実行されるプログラムをあらわしたフローチャートの、それぞれ前半部分、後半部分である。 ここでは、先ずカウンタNとZがN=Z=0にリセットされ(ステップ11_1)、モータの回転が開始される(ステップ11_2)。次いで、Z相パルスが出力されるのを待って(ステップ11_3)、Z相パルスが出力されるとZ相パルス数Zをカウントアップし(ステップ11_4)、オンオフセンサパルスの出力と基本パルスの出力がモニタされ(ステップ11_5、11_6)、基本パルスが出力されるとその基本パルス数Nをカウントアップする(ステップ11_7)。
【0095】
ステップ11_5、11_6、11_7を繰り返し、今度はオンオフセンサパルスが出力されると、そのときの基本パルスの計数値NがN_Newに記憶される(ステップ11_8)。
【0096】
ステップ11_9では、Z>1か否か、すなわちZ=1であるか、それともZ≧2であるかが判定される。Zは、Z相パルスの計数値であり、ここでは、基本パルスの計数値どうしの比較のために基本パルスの計数を最低2回行なう必要があるため、Z>1であるか否かを判定することにより初回(Z=1)であるか2回目以降(Z>1)であるかを判定しているのである。
【0097】
初回は、Z=1であり、ステップ11_9のあと直接にステップ11_11に進んで基本パルスの計数値NがN_O1dに格納され、ステップ11_3に戻って次のZ相パルスの出現を待つ。
【0098】
2回目以降(Z>1)のときは、ステップ11_9のあとステップ11_10に進み、N_O1dとN_Newとの比較が行なわれる。それらが一致している(N_Old=N_New)ときは、ステップ11_11に進み、今日求めた計数値NがN_Oldに格納される。一方ステップ11_10でN_Old=N_Newではない。すなわち、今日初めて、前回の計数値N_Oldと今回の計数値N_Newが相違していたときは、図12のステップ12_1に進む。図12のステップ12_1におけるオーバーラン補正、ステップ12_2におけるモータストップ、ステップ12_3における角度計算の各ステップは、図7における各ステップ7_7,7_8,7_9と基本的には同一であり、詳細説明は省略するが、ステップ12_3の角度計算ステップでは、図10を参照して説明した計算アルゴリズムが採用されて角度計算が行なわれる。図10を参照した説明では対応表を保有しておいてその対応表を参照する計算アルゴリズムと対応表は不用のアルゴリズムとの2種類のアルゴリズムについて説明したが、ここではいずれのアルゴリズムを採用してもよい。
【0099】
図13は、基本パルスの計数値Nと図10に示す位置Aからのオンオフセンサパルスのパルス数Kとの対応表の概念図である。
【0100】
図12のステップ12_3において対応表を参照した角度計算が行なわれるときは、今回最初に変化した基本パルスの計数値Nに対応するオンオフセンサパルスのパルス数Kを知り、前掲の式
θ=θo+K×θzr
により、出力軸の回動位置θが求められる。
【0101】
尚、図7のフローチャートのステップ7_3に代えて図8の部分フローを採用すると、モータを逆転させることにより初期化動作のための出力軸の回動範囲を狭めることができる旨説明したが、この図11に示すフローチャートのステップ11_3に代え、図8の部分フローを採用してもよい。この場合も、モータの逆回転により、初期化動作のための出力軸の回動範囲を狭めたフローが実現する。
【0102】
図14は、初期化動作を行なうにあたり演算制御部で実行されるプログラムのもう一つの例を示すフローチャートの前半部分である。このフローの後半部分は、図12に示す部分フローと同一であり、図示は省略する。
【0103】
この図14に示すフローは、図10を参照して説明した、オンオフセンサパルス変動ステップΔθzrよりも基本パルス間隔Δθeの方が大きい場合に適合するフローであるが、図11、図12に示すフローとは異なり、基本パルスとオンオフセンサパルスのいずれが先に発生してもよいように工夫されたフローである。
【0104】
ここでは、先ず、カウンタNとZがN=Z=0にリセットされ(ステップ14_1)、モータの回転が開始される(ステップ14_2)。次いでZ相パルスとオンオフセンサパルスとのいずれかが出力されるのを待つ(ステップ14_3,14_4)。Z相パルスの方が先に出力されたときはフラグFをF=0にリセット(ステップ14_5)。オンオフセンサパルスの方が先に出力されたときはフラグFをF=1にセットし(ステップ14_6)、さらにいずれの場合もカウンタZをインクリメントし(ステップ14_7,14_8)、ステップ14_9に進む。ステップ14_9では、フラグFがF=0かF=1かが判定され、F=0のときはステップ14_10に進んでZ相パルスが出力されたか否かが判定され、一方F=1のときはステップ14_11に進んでZ相パルスが出力されたか否かが判定される。
【0105】
ステップ14_10においてオンオフセンサパルスが出力されていないと判定されたとき、あるいはステップ14_11においてZ相パルスが出力されていないと判定されたときは、ステップ14_12に進み、基本パルスが出力されたか否かが判定される。基本パルスが出力されていないときは、ステップ14_9に戻り、以上のパルス出力のモニタが繰り返される。
【0106】
ステップ14_12において基本パルスの出力が確認されると、ステップ14_13に進み、基本パルスカウント数がカウントアップされる。
【0107】
ステップ14_10においてオンオフセンサパルスの出力が確認されたとき、あるいは、ステップ14_11においてZ相パルスの出力が確認されたときはステップ14_14に進む。ステップ14_14では、そのときの基本パルスの計数値NがN_Newに記憶される。
【0108】
ステップ14_15では、Z>1か否か、すなわち、今回が初回であるか2回目以降であるかが判定される。ここでは計数値どうしの比較を行なう必要があり、したがって基本パルスの計数を最低2回行なう必要があるためである。
【0109】
初回はZ=1であり、ステップ14_15のあと直接にステップ14_17に進んで基本パルスの計数値NがN_Oldに格納され、ステップ14_18に進んだ後、F=0にあるかF=1であるかに応じてそれぞれステップ14_17、ステップ14_20に進み、それぞれ、Z相パルスの出力、オンオフセンサパルスの出力を待ってそれぞれステップ14_7,14_8に戻る。
【0110】
2回目以降の場合(Z>2の場合)は、ステップ14_15のあとステップ14_16に進み、N_OldとN_Newとの比較が行なわれる。それらが一致している(N_Old=N_New)ときは、ステップ14_17に進み、今回求められた計数値NがN_Oldに格納される。一方、ステップ14_16でN_Old=N_Newではない、すなわち、今回初めて、前回の計数値N_Oldと今回の計数値N_Newが相違していたときは、図12のステップ12_1に進む。
【0111】
図12については説明済であり、重複説明は省略するが、図12のステップ12_3における角度計算は、F=0のときは、図11のフローから図12のフローに移ったときと同じアルゴリズムに基づいて行なわれ、一方、F=1のときは、オンオフセンサパルスか発生が先であって、基本パルスの発生が後であるため、それに対応した計算アルゴリズムが採用される。この計算アルゴリズムの詳細は省略する。
【0112】
また、対応表を用いる場合は、F=0に対応する対応表とF=1に対応する対応表との双方があらかじめ用意される。
【0113】
次に本発明のもう1つの実施形態について説明する。
【0114】
図15は、図2に示す位置検出装置に代えて採用することのできる位置検出装置を備えた関節機構を示す図である。図2に示す関節機構との相違点について説明する。
【0115】
図2に示す関節機構においては、ロータリエンコーダ30は、モータ10とともに基体に固定されていたが、図15に示す関節機構では、ロータリエンコーダ30は、減速機20の出力軸22に固定され、減速機20の出力軸22を基準としたときの入力軸21の相対的な回転角度に応じたZ相パルスおよびA相、B相パルスが出力される。
【0116】
また、オンオフセンサ40を構成するスリット板41は、モータ10の回転軸11に取り付けられている。この点、取付位置は異なるが、図2に示すオンオフセンサ40のスリット板41が入力軸21に取り付けられていることと共通する。ただし、オンオフセンサ40を構成するフォトカプラ42は、図2に示す関節機構の場合は出力軸22に固定されていたが、図15に示す関節機構の場合はモータ11に固定されている。このモータ11は、図2の場合と同様基体に固定されているため、結局フォトカプラ42は基体に固定されていることになる。
【0117】
すなわち、図15に示す関節機構の場合、図2に示す関節機構と比べ、エンコーダ30とオンオフセンサ40の取付位置が逆になっている。この場合も、エンコーダ30のZ相パルスとオンオフセンサ40のオンオフセンサパルスは出力軸の回動に伴なって相対的にずれるため、角度計算プログラムを若干変更するだけで、図2に示す関節機構の場合と同様な初期化動作、角度計算を行なうことができる。
【0118】
図16は、各種パルスの生成タイミングを表す図である。図6の場合と同様、(A),(B),(C)は、それぞれ、Z相パルス、基本パルス、およびオンオフセンサパルスであり、横軸は減速機の入力軸(モータの回転軸)の回転角度である。
【0119】
図16の、図6との主な相違点は、オンオフセンサパルスの横軸の位置A、位置B、…、位置Xの表示が、図6のそれとは逆になっている点である。
【0120】
図2に示す関節機構の場合、モータ10の回転軸11を回転させたとき、オンオフセンサパルスの発生位置が、図6に示すA,B,C,…のように変化する場合、図15に示す関節機構では、エンコーダ30とオンオフセンサ40の取付位置の違いから、モータの回転方向が同一ならばオンオフセンサパルスの発生位置は、図16に示すA,B,C,…のように変化する。
【0121】
ここで、減速機の減速比がRのとき、Z相パルスの間隔を入力軸の回転角度であらわしたものをθrとすれば
θr=(360×R)/(R−1)[deg]
また、エンコーダの基本パルス間隔Δθeを入力軸の回転角度で示すと
Δθe=θr/P[deg] (P:基本パルス数)
である。
【0122】
一方、オンオフセンサパルスどうしの間隔は常に入力軸の回転角度にて360[deg]である。このことから、図16に示すようにZ相パルスの発生位置を基準としてオンオフセンサパルスの位置変化を入力軸の回転角度であらわしたオンオフセンサパルス変動ステップΔθzrは、
Δθzr=360−θr=−360/(R−1)[deg]
となる。すなわち、入力軸の回転に伴い、Z相パルスとオンオフセンサパルスとの間隔は、毎回このΔθzrずつずれていく。式から分かるように、この変化分Δθzrは減速機の減速比Rで一意に定まる定数である。このΔθzrが、基本パルス間隔Δθe(図16参照)より大きい場合、Z相パルスの発生位置からの基本パルス数を計数することにより、オンオフセンサの、あるパルスが発生した位置A(図16参照)から、別のオンオフセンサパルスが発生した位置Xまでの入力軸の回転角度を知ることができる。すなわち、この或る位置Aにおいて出力軸の絶対角度θoを事前に専用の測定器でキャリブレーションしておけば、このキャリブレーション時と同じ方向に入力軸を回して、Z相パルス発生後の、オンオフセンサパルスが発生した位置での出力軸の絶対角度を計算によって求めることができる。このZ相パルスとオンオフセンサパルスの探索動作の入力軸回転量はオンオフセンサパルスが先に発生した場合を想定した最大の回転量の場合でも20θrで良い。すなわち、出力軸は2×360/(R−1)[deg]しか回転しないため、絶対位置を算出するための初期化の動作は局所的な微小回転領域だけで可能となる。
【0123】
以下に基本的な計算例を示す。
【0124】
前提条件:
基本パルス数P:500[パルス/回転]
減速比 R:100
或る位置A(キャリブレーション位置)での出力軸絶対角度θo:10.000[deg]
(位置Aはオンオフセンサパルスが発生した位置であり、この位置Aにおける絶対角度は別途キャリアブレーションで求められている)
Z相パルス発生から位置Aまでの基本パルス数Na:86[pulse]
(上記パルス数をカウントしたときの入力軸回転方向を+方向とする)
基本パルス角度
Δθe:360×100/99/500[deg]
Z相パルス間隔 θr:360×100/99[deg]
オンオフセンサパルス変動ステップΔθzr:360/99[deg]
(Z相パルス位置を基準としたとき)
とする。
【0125】
任意の位置から入力軸を+方向に回転させてZ相パルスが発生した後のオンオフセンサパルス発生位置で止める。このときのZ相パルスが発生した後、オンオフセンサパルス発生するまでの間の基本パルス数Nの計測結果が
N=35[pulse]
であったとする。出力軸の、位置Aからの概算回転角度は
Figure 0003967014
である。
【0126】
位置Aからみたときのオンオフセンサパルスの発生回数を計算すると
−37.09/Δθzr=10.2 [回]
現在位置はオンオフセンサパルスが発生した位置にあるので0.2は量子化誤差であり位置Aからみて10回目のオンオフセンサパルスが発生した位置にいるはずである(最も近い整数値を回数として判断する)。
【0127】
よって位置Aからの入力軸の回転量は
Δθi=10×360
であり出力軸の回転量Δθoは
Figure 0003967014
よって現在の出力軸の絶対角度θは
θ=θo+Δθo=10.000+36.0=46.0[deg]
である。
【0128】
ここでは図示は省略するが、図2に示す関節機構に関し図10を参照して説明したように、Z相パルスからのオンオフセンサパルスの発生位置の変動がエンコーダの基本パルスの間隔より小さい場合は、基本パルスの計数値ではその変動は識別できない。そこで、さらに入力軸を回転させてZ相パルス〜オンオフセンサパルス間の基本パルス数を複数回求め、この基本パルスの計数値が最初に変化した時のオンオフセンサパルス発生位置で出力軸を停止する。図10を参照して説明した場合と同様に、事前に行うキャリブレーションも、この基本パルス数が最初に変化した時のオンオフセンサパルス発生位置で出力軸を停止して行い、その時の出力軸の絶対角度θoとZ相パルス発生位置〜オンオフセンサパルス発生位置間の基本パルス数を保有しておき、その場で求めたZ相パルス発生位置〜オンオフセンサパルス発生位置間の基本パルス数との差を求める。このパルス数の差(Na−N)を角度に変換すると
Δθo=Δθe×(Na−N)
であるから現時点での出力軸の絶対角度は
θ=θo+Δθo=θo+Δθe×(Na−N)
である。ここで、Δθeは、基本パルスの発生間隔を出力軸の角度であらわしたものであり、図15に示す実施形態の場合エンコーダが出力軸に付いているため、図2に示す実施形態と比べ、この出力軸の回転分だけ異なる。この出力軸の回転分を加味したΔθeは本説明ですでに示した式
θr=(360×R)/(R−1) [deg]
Δθe=θr/P [deg]
で求めることができる。
【0129】
以下に具体的な計算例を示す。
【0130】
前提条件:
エンコーダ基本パルス数 P:100[パルス/回転]
減速比 R:500
或る位置A(キャリブレーション位置)での出力軸絶対角度θo:10.000[deg]
(位置AはZ相パルス〜オンオフセンサパルス間の基本パルス数が最初に変化したタイミングにおけるオンオフセンサパルス発生位置であって、この位置Aの絶対角度はキャリブレーションで別途求められている。)
Na−N=51 [パルス]
とする。
【0131】
Figure 0003967014
したがって出力軸絶対角度θは、
Figure 0003967014
となる。
【0132】
尚、ここには、図15に示す実施形態については、オンオフセンサパルスよりもZ相パルスの方が先に発生した場合の角度計算アルゴリズムについて説明したが、オンオフセンサパルスの方が先行した場合も若干異なる計算アルゴリズムを採用し、出力軸の角度計算を行なうことができる。
【0133】
また、図15に示す実施形態における演算制御部50では、これまで説明してきた、図2に示す演算制御部50で実行される初期化のためのプログラムをそのまま採用することができる。但し角度計算アルゴリズムは、エンコーダ30とオンオフセンサ40の取付位置が逆になっていることに伴って変更された角度計算アルゴリズムが採用される。
【0134】
【発明の効果】
以上説明したように、本発明によれば、安価な装置で、出力軸を僅かに回動させるだけで基体に対する出力軸の回動角度を検出することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態としての位置検出装置および関節機構を備えたロボットの一例を示す模式図である。
【図2】図1に示す作業ロボットの各関節に配置されるモータ、減速機、および、減速機の出力軸の回動位置の演算とモータの回転制御を担う演算制御部を示す模式図である。
【図3】図2にブロックで示すロータリエンコーダの内部構造を示す模式図である。
【図4】オンオフセンサの構成を示す模式図である。
【図5】図2に1つのブロックで示す演算制御部の内部構成図である。
【図6】各種パルス信号の生成タイミングを示す図である。
【図7】初期化動作を行なう際に演算処理部で実行されるプログラムをあらわしたフローチャートである。
【図8】オンオフパルスが先に発生したときにはモータを逆転させるというアルゴリズムを実現するプログラムの、図7に示すプログラムからの変更部分を示す部分フローチャートである。
【図9】演算制御部で実行される初期化動作プログラムのもう一つの例を示すフローチャートである。
【図10】オンオフセンサパルス変動ステップΔθzrよりも基本パルス間隔Δθeの方が大きい場合の、各種パルス信号の生成タイミングを示す図である。
【図11】演算制御部で実行されるプログラムをあらわしたフローチャートの前半部分である。
【図12】演算制御部で実行されるプログラムをあらわしたフローチャートの後半部分である。
【図13】基本パルスの計数値Nと図10に示す位置Aからのオンオフセンサパルスのパルス数Kとの対応表の概念図である。
【図14】初期化動作を行なうにあたり演算制御部で実行されるプログラムのもう一つの例を示すフローチャートの前半部分である。
【図15】図2に示す位置検出装置に代えて採用することのできる位置検出装置を備えた関節機構を示す図である。
【図16】各種パルスの生成タイミングを表す図である。
【符号の説明】
1 ベース
2_1,2_2,2_3 アーム
3_1,3_2,3_3 関節
4 ハンド
5 作業対象物
10 モータ
11 回転軸
20 減速機
21 入力軸
22 出力軸
30 エンコーダ
31 固定ベース
32 スリット板
33,34 スリット
35 Z相検出センサ
36 A相、B相検出センサ
40 オンオフセンサ
41 スリット板
42 フォトカプラ
43 スリット
50 演算制御部
51 CPU
52 入力インターフェース
53 出力インターフェース
54 ROM
55 RAM
56 操作部

Claims (8)

  1. 入力軸および出力軸を有し、基体に固定され、入力軸の回転を減速回転して出力軸に伝達する減速機の、基体を基準としたときの出力軸の回動位置を検出する位置検出装置において、
    回転する入力軸に設けた第1のセンサ検知体が通過することを検知してパルス状の計数可能な第1の信号を発生する第1のセンサを基体に設け、前記回転において、回転する入力軸に設けた第2のセンサ検知体が通過することを検知して第1の信号が生成される周期よりも短い周期で、かつ入力軸の回転角度に比例した数のパルス状の計数可能な第2の信号を生成する第2のセンサを基体に設け構成したエンコーダと、
    さらに、回転する入力軸に設けた第3のセンサ検知体が通過することを検知してパルス状の計数可能な第3の信号を発生する第3のセンサを出力軸に設け
    該第1の信号、該第2の信号および該第3の信号を計数処理可能な位置演算部を用いて、入力軸を回転させて第1の信号と第3の信号間に発生した第2の信号のパルス数と、設計データとして基体と出力軸との絶対角度があらかじめ測定された状態における第1の信号と第3の信号間に発生した、基準姿勢に対応した第2の信号のパルス数とから、基体と出力軸の絶対角度を算定することを特徴とした、基体からみた出力軸の角度を検出する検出装置。
  2. 入力軸および出力軸を有し、基体に固定され、入力軸の回転を減速回転して出力軸に伝達する減速機の、基体を基準としたときの出力軸の回動位置を検出する位置検出装置において、
    回転する入力軸に設けた第1のセンサ検知体が通過することを検知してパルス状の計数可能な第1の信号を発生する第1のセンサを出力軸に設け、前記回転において、回転する入力軸に設けた第2のセンサ検知体が通過することを検知して第1の信号が生成される周期よりも短い周期で、かつ入力軸の回転角度に比例した数のパルス状の計数可能な第2の信号を生成する第2のセンサを出力軸に設け構成したエンコーダと、
    さらに、回転する入力軸に設けた第3のセンサ検知体が通過することを検知してパルス状の計数可能な第3の信号を発生する第3のセンサを基体に設け
    該第1の信号、該第2の信号および該第3の信号を計数処理可能な位置演算部を用いて、入力軸を回転させて第1の信号と第3の信号間に発生した第2の信号のパルス数と、設計データとして基体と出力軸との絶対角度があらかじめ測定された状態における第1の信号と第3の信号間に発生した、基準姿勢に対応した第2の信号のパルス数とから、基体と出力軸の絶対角度を算定することを特徴とした、基体からみた出力軸の角度を検出する検出装置。
  3. 請求項1又は2記載の位置検出装置において、前記位置演算部が、前記第1の信号と前記第3の信号のうちの先に生成された一方の信号から後で生成された他方の信号までの間の前記第2の信号の生成回数を計数して計数値を得、該計数値に基づいて、基体を基準としたときの出力軸の回動位置を求めるものであることを特徴とする位置検出装置。
  4. 請求項1又は2記載の位置検出装置において、前記位置検出部が、前記第1の信号の生成タイミングから前記第3の信号の生成タイミングまでの間の前記第2の信号の生成回数を計数して計数値を得る過程を、入力軸が回転した状態で該計数値が変化するまで繰り返し、計数値が変化したタイミングにおける計数値に基づいて、基体を基準としたときの出力軸の回動位置を求めるものであることを特徴とする位置検出装置。
  5. 請求項1又は2記載の位置検出装置において、前記位置検出部が、前記第1の信号と前記第3の信号のうちの先に生成された一方の信号から後で生成された他方の信号までの間の前記第2の信号の生成回数を計数して計数値を得る過程を、入力軸が回転した状態で該計数値が変化するまで繰り返し、計数値が変化したタイミングにおける計数値に基づいて、基体を基準としたときの出力軸の回動位置を求めるものであることを特徴とする位置検出装置。
  6. 請求項4又は5記載の位置検出装置において、前記位置検出部が、前 記第2の信号の生成回数の計数値と、基体を基準としたときの出力軸の回動位置を求めるための係数との対応表を記憶しておき、該対応表を参照して、前記計数値が変化したタイミングにおける、該計数値に対応する係数を求め、該係数を用いて、基体を基準としたときの出力軸の回動位置を求めるものであることを特徴とする位置検出装置。
  7. 基体、
    前記基体に固定された、該基体に対し回転する回転軸を有するモータ、
    前記モータの駆動力により前記基体に対し相対的に動作するアーム、
    前記モータの回転軸に連結され該回転軸の回転に伴って回転する入力軸と、前記アームに連結され該アームを駆動する出力軸とを有し、入力軸の回転速度を減速して出力軸に伝達する減速機、および、請求項1記載の位置検出装置を備えたことを特徴とする関節機構。
  8. 基体、
    前記基体に固定された、該基体に対し回転する回転軸を有するモータ、
    前記モータの駆動力により前記基体に対し相対的に動作するアーム、
    前記モータの回転軸に連結され該回転軸の回転に伴って回転する入力軸と、前記アームに連結され該アームを駆動する出力軸とを有し、入力軸の回転速度を減速して出力軸に伝達する減速機、および、請求項2記載の位置検出装置を備えたことを特徴とする関節機構。
JP25363698A 1998-09-08 1998-09-08 位置検出装置および関節機構 Expired - Fee Related JP3967014B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25363698A JP3967014B2 (ja) 1998-09-08 1998-09-08 位置検出装置および関節機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25363698A JP3967014B2 (ja) 1998-09-08 1998-09-08 位置検出装置および関節機構

Publications (2)

Publication Number Publication Date
JP2000084885A JP2000084885A (ja) 2000-03-28
JP3967014B2 true JP3967014B2 (ja) 2007-08-29

Family

ID=17254103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25363698A Expired - Fee Related JP3967014B2 (ja) 1998-09-08 1998-09-08 位置検出装置および関節機構

Country Status (1)

Country Link
JP (1) JP3967014B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266762A (ja) * 2008-04-30 2009-11-12 Nec Electronics Corp 位置調整装置、方法、プログラム、イオン注入装置及びウェハ製造方法
JP5400473B2 (ja) * 2009-05-22 2014-01-29 川崎重工業株式会社 ロボット装置
CN111557636B (zh) * 2020-01-14 2023-08-11 杭州法博激光科技有限公司 软镜手术辅助系统

Also Published As

Publication number Publication date
JP2000084885A (ja) 2000-03-28

Similar Documents

Publication Publication Date Title
JP6504864B2 (ja) ロボット制御方法、ロボット装置、プログラム、記録媒体及び物品の製造方法
US7779553B2 (en) Oscillating scanning probe with constant contact force
US20180361592A1 (en) Control device and robot system
US7375487B2 (en) Geared motor
WO1989008538A1 (en) Method of detecting collision of moving portions driven by servo motor
JP2004195621A (ja) 3次元計測装置
WO1999001927A1 (fr) Systeme de commande de positionnement
JP2010238174A (ja) 位置決め装置及び位置決め方法
JP2008148412A (ja) モータ制御装置
JP3967014B2 (ja) 位置検出装置および関節機構
JP7015276B2 (ja) 産業用ロボットシステム
JPH07100781A (ja) 多関節型ロボット
JPH0778683B2 (ja) 多関節ロボツトの機械原点位置補正方法
CA1323699C (en) Method of detecting a position of a robot
JP2727542B2 (ja) アーム位置検出方法
JP2020062730A (ja) ロボット制御方法、ロボット装置、プログラム、記録媒体および物品の製造方法
JP4121875B2 (ja) アブソリュート位置検出装置
US6879119B2 (en) Positioning controller
JP3339787B2 (ja) 産業用ロボットアームの移動量検出装置
JPH0820241B2 (ja) 絶対位置検出ロボット
KR100664025B1 (ko) 이동 로봇의 거리 측정장치 및 방법
JPS6234210A (ja) 原点位置の検出装置
JPH0260474B2 (ja)
JPH04123205A (ja) 制御対象物の初期位置検出装置
KR0170313B1 (ko) 수직 다관절 로보트의 원점 복귀 제어방법 및 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050725

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070530

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110608

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120608

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120608

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130608

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140608

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees