以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施例で取り上げる数値は、参考数値であって、本発明を限定するものではない。
本実施形態に係るロボット装置は、組み立て作業等を行う例えば産業用のロボットアームであり、各関節にブレーキ装置を備えている。上記のように、従来のロボットアームの保持ブレーキはモータ軸に直結した摩擦部材(摩擦板やブレーキディスク)の摩擦力(のみ)を利用するものが多い。この種の摩擦ブレーキ装置は関節駆動用のモータに組み込まれている場合もある。
これに対して、本実施形態では、噛合ブレーキを利用した好適な関節機構の構成例を示す。ただし、従来の摩擦ブレーキは、後述のような噛合ブレーキに置換し、ロボットアームから除去する必要はない。例えば関節駆動用のモータに組み込まれている摩擦ブレーキと、後述のような噛合ブレーキを併用するよう、ロボットアームを構成してもよい。摩擦ブレーキは、例えば、非常停止などの際に緊急に作動させるブレーキとして好適に利用できる可能性がある。
なお、以下では、ブレーキの動作状態について、ブレーキ「無効」、「解除」、ないし「有効」「作動」のような用語を用いることがある。このうち「有効」、「作動」などは制動力が加わっており、関節ないしそれを駆動するモータ軸の回転が規制され、当該関節の姿勢が保持されている状態をいう。また、「無効」は制動力が加わっておらず、関節を駆動するモータ軸の回転によって、関節の姿勢を変更することができる状態をいう。また、ブレーキ「有効」の状態から「無効」の状態に移行させること「解除」ということがある。
以下に例示する(噛合)ブレーキ装置は、駆動装置の歯車(構成の)回転部の噛合突起と、ブレーキ部材(板)の噛合突起の噛合いによって回転を規制する構成である。このような噛合ブレーキは小さな制御力で大きな制動力を得ることができ、装置の小型軽量化を期待できる。また、ブレーキ駆動に必要なエネルギーが小さいため、例えばブレーキ解除の電力を小さくでき、低発熱のロボット装置を実現できる。
一方で、前述のように、噛合いブレーキでは、停止(保持)位置が離散的になるため、もし当該関節の停止(保持)位置に誤差が生じた場合、噛合いの分解能によってはその誤差量が大きな値になる可能性がある。以下では、噛合いブレーキの利点を亨受しつつ、ロボット関節の停止(保持)位置の精度を確保できる構成を例示する。
以下、実施例1〜4を参照して、本発明の実施形態に係るロボット装置の構成および動作につき説明する。以下では、ロボット装置およびその制御系のハードウェア構成の基本部分は、実施例1で主に説明するものと共通であるものとする。
<実施例1>
図1から図8を参照して、本実施形態に係るロボット装置500の構成につき説明する。図1から図3は本実施形態のロボット装置500の全体構成を示している。図1は、ロボット装置500の全体構成を斜視図として示している。図2は、図1のロボット装置500のカバー112Cを外した状態を示している。また、図3は図1のロボット装置500の関節(112)に保持ブレーキとして設けられる噛合いブレーキの構成を示している。
図4は図1のロボット装置500の関節(112)の構造を部分断面として示している。図5は図1のロボット装置500の制御装置200の構成を示している。図6(a)、(b)はそれぞれ噛合いブレーキの「有効」および「無効」の状態を示している。図7は、図1のロボット装置500の制御装置200の制御機能を機能ブロック図として示している。図8は、実施例1のブレーキ制御の流れをフローチャートとして示している。
図1に示すように、ロボット装置500は、ワークWの組立てなどの作業を行うロボットアーム部100と、ロボットアーム部100を制御する制御装置200と、ティーチングペンダント300を備えている。
ティーチングペンダント300は、制御装置200に接続され、例えばロボット装置500の設置環境において、ロボット教示を行うために用いられる。このために、ティーチングペンダント300には例えばLCDパネルなどを用いたディスプレイ、ファンクションキーなどから成るキーボードが設けられる。
ロボットアーム部100の主要部は、図示のように例えば6軸垂直多関節構成のロボットアーム101と、このロボットアーム101の先端に接続されたハンド(エンドエフェクタ)102を備えている。ハンド102には作用する接触力や把持力等を検出可能な不図示の力センサを設けることができる。
ロボットアーム101は、作業台に固定されるベース部103と、変位や力を伝達する複数のリンク121〜126を備えている。各リンク121〜126は、複数の関節111〜116によって旋回、または回転可能に連結される。
複数の関節111〜116は、ほぼ同様に構成することができるため、本実施形態では、各関節111〜116と同様の構成を代表するものとして、リンク121とリンク122を連結する関節112の構成を説明する。以下では、他の関節111,113〜116の構成はほぼ同様であるものとして、その詳細な説明は省略する。
図1のロボットアーム101では、例えば、ユーザが関節112(や113)の駆動部に不用意に触れたりしないよう、リンク121の側面は関節112から113に渡る部分がカバー112Cによりカバーされている。このようなカバーは必要に応じて各リンクに設ける。後述のように、関節112の駆動装置(600:図2)はカバー112Cの下部に配置される。
以下に説明する関節112と同様の構成は、さらに他の関節111、113〜116のうちの少なくとも1カ所に設けることができる。ハンド102は、ワークWを把持可能な複数のフィンガと、複数のフィンガを駆動する不図示のアクチュエータとを備えており、複数のフィンガを駆動することでワークを把持可能に構成されている。ハンド102に力センサが設けられる場合、この力センサは、ハンド102が複数のフィンガでワークWを把持する際などにおいて、ハンド102に作用する力やモーメントを検出する。
図2はリンク121に取り付けたカバー112Cを外した状態で関節112の駆動装置600の構成を示している。なお、図2では不図示であるが、カバー112Cの下部には駆動装置600と同様に構成された関節113の駆動装置を配置することもできる。また、図3は関節112の駆動装置600の構成を詳細に示している。
図2、図3において、関節112の駆動装置600は、ブレーキ装置601を含む。関節112の駆動装置600のうち、実質的な関節駆動系は、サーボモータ1、モータ用タイミングプーリ2、減速機用タイミングプーリ3、モータ用タイミングプーリ2と減速機用タイミングプーリ3の間の動力伝達を行うタイミングベルト4から成る。
サーボモータ1は関節112を回転駆動するためのサーボモータで、例えばDCブラシレスモータやACサーボモータを使用できる。サーボモータ1は、例えば後述のブレーキベース8よりもリンク121の内部側に配置される。
ブレーキベース8の外側に突出して配置されたモータ1の回転軸には、モータ用タイミングプーリ2が取り付けられる。モータ1の回転軸の他端側には、ロータリーエンコーダなどを用いたモータ用エンコーダ1eが装着されている。このモータ用エンコーダ1eにより、サーボモータ1の回転軸の回転角(関節減速機の入力側の回転角)を検出する。
モータ用エンコーダ1e、および後述の出力軸エンコーダ15は、回転量を検出するロータリーエンコーダであって、例えばスケールおよび光学センサなどから成るロータリーエンコーダによって構成される。以下では、簡略化のため、モータ用エンコーダ1e、出力軸エンコーダ15については「エンコーダ」のように略記するものとする。
モータ用タイミングプーリ2、および減速機用タイミングプーリ3は、例えば、コッグ(ド)ベルト(あるいはチェーンなど)から成るタイミングベルト4を掛け回す場合、歯車(コッグ(ド)ホイールないしギア)形状の構成とする。図示のように、モータ用タイミングプーリ2の直径ないし歯数を減速機用タイミングプーリ3異なる仕様にすることにより、関節駆動系のこの部分においても必要な減速比または増速比(1次変速比)を取ることができる。
モータ用タイミングプーリ2と、減速機用タイミングプーリ3の間には、コッグ(ド)ベルト(あるいはチェーンなど)から成るタイミングベルト4が掛け回されている。減速機用タイミングプーリ3は、後述の減速機12の減速機入力軸13に装着される。このような構成において、サーボモータ1の駆動力は、モータ用タイミングプーリ2〜タイミングベルト4〜減速機用タイミングプーリ3を介して減速機入力軸13に伝達される。
本実施形態の関節112の保持ブレーキとして設けられたブレーキ装置601は、主にブレーキレバー5、噛合いバネ6、電磁ソレノイド7から構成される。
図6(a)、(b)は、アーム側方からブレーキ装置601を含む駆動装置600の構成を示している。同図に示すように、ブレーキ装置601のブレーキレバー5は、回動軸5cに回動自在に支持されるとともに、ブレーキレバー5の先端5eと、ブレーキベース8の支持部6aの間には、例えばコイルスプリングなどから成る噛合いバネ6が弾装されている。また、ブレーキレバー5には、モータ用タイミングプーリ2の歯を噛合いで停止させるための数歯ぶんの突起を有するブレーキ板5d(噛合い部材)が取り付けられている。また、噛合いレバー5の中央部領域は、電磁ソレノイド7のプランジャ7pにリンクされている。ブレーキレバー5、特にブレーキ板5dの部位は本実施例の噛合ブレーキのブレーキ部材を構成する。
電磁ソレノイド7は、コイル7cに駆動電流を与えることによって、ブレーキ板5dがモータ用タイミングプーリ2から離間する方向にプランジャ7pを吸引する。プランジャ7pとコイル7cは、相対運動可能にフレーム7f(電磁ヨークを兼ねていてよい)によって支持されている。
一方、ブレーキレバー5は、噛合いバネ6によって、噛合いバネ6が収縮する方向に常時付勢されている。そして、上記のように電磁ソレノイド7を駆動することによって、ブレーキレバー5がプランジャ7pによって揺動し、ブレーキ板5dがモータ用タイミングプーリ2から離間し、噛合いブレーキが解除(図6(a))される。一方、電磁ソレノイド7を非駆動(励磁解除)に制御することにより、噛合いバネ6の付勢力によってブレーキ板5dがモータ用タイミングプーリ2と噛合し、噛合いブレーキが有効(図6(b))となる。
なお、本実施例は、図3に示すように、ブレーキレバー5によってモータ用タイミングプーリ2を制動するような構成であるが、ブレーキレバー5によって減速機用タイミングプーリ3側に作用させ、関節112の制動を行うようにしてもよい。図3のようなタイミングベルト4を用いる駆動装置600の場合、モータ用タイミングプーリ2と減速機用タイミングプーリ3の間は、多くの場合デッドスペースで、有効利用するのが難しい。図3のようにブレーキレバー5や電磁ソレノイド7を配置してスペース利用効率を向上でき、結果としてロボットアーム101を小型軽量に構成することができる。
ブレーキベース8は、サーボモータ1、ブレーキレバー5、噛合いバネ6、電磁ソレノイド7を搭載、保持する。図3に示すように、これらを搭載したブレーキベース8は、リンク121に対してビス(8a)などによって固定される。
本実施例では、上記のように関節(112)を駆動する歯車(タイミングプーリ:2、3)を含む駆動系(駆動装置600)の歯車(タイミングプーリ:2、3)との噛合いによってブレーキ有効/無効を切換えるブレーキ装置(601)を配置している。なお、以上の例は、ブレーキ装置(601)は、駆動系の歯車(タイミングプーリ:2、3)の少なくとも1カ所を係止して関節(112)を保持、制動する構成である。しかしながら、ブレーキ装置(601)は、上記同様の構成で駆動系の歯車(タイミングプーリ:2、3)の少なくとも2カ所以上を噛合制動するよう構成してもよい。
上記のような、噛合いバネ6、およびその制動力を解除する電磁ソレノイド7を用いる構成では、摩擦板などを用いるブレーキよりも比較的小さな制御力で容易に大きな制動力を発生でき、関節(112)の姿勢を確実に保持できる。電磁ソレノイド7は噛合いブレーキを解除するために用いられるが、その駆動は関節(112)を動作させる期間のみ行えばよく、従って、小型で低発熱の関節ブレーキ装置を実現することができる。
ここで、図4に図4は関節112の駆動機構の断面構成を示す。図4は上記の減速機入力軸13より先の減速機12を含む断面構成を示している。
関節112は、リンク121とリンク122を相互に回動変位できるよう指示する。このため、リンク121とリンク122は、クロスローラベアリング11を介して回転自在に結合されている。クロスローラベアリング11は、一つのベアリングでアキシアル方向・ラジアル方向・モーメント方向の全ての荷重に耐え、1軸のみ廻りに回転自由な関節支持手段を構成する。クロスローラベアリング11は、この回転自由方向をリンク121とリンク121の回転方向に合わせて使用する。サーボモータ1の回転トルクは減速機12により増幅され、適切な回転速度に減速される。減速機12には例えば図示のような波動歯車機構などから成る減速機を用いることができる。
減速機12は、ウェーブジェネレータ12w、サーキュラースプライン12c、フレックススプライン12fを備える。ウェーブジェネレータ12wは減速機用タイミングプーリ3により駆動される減速機入力軸13と結合される。サーキュラースプライン12cはリンク122に、また、フレックススプライン12fはリンク121に固定される。これらのスプラインの固定方式には例えばボルト固定などが用いられる。
波動歯車機構から成る減速機12は固有の減速比を有しており、通常、この種のロボットアームの場合は1/30から1/200程度の固有の減速比(2次変速比)を採用することが多い。減速機用タイミングプーリ3とウェーブジェネレータ12wを接続する減速機入力軸13は例えば複数のベアリング14で支持される。
リンク121とリンク122の間には出力軸エンコーダ15が配置される。出力軸エンコーダ15はリンク121とリンク122の相対角度を検出する。出力軸エンコーダ15は、光学的或いは磁気的パターンを設けたスケール15sとパターン読み取り用の検出器15dから構成する。
上述のモータ用エンコーダ1e(10)および出力軸エンコーダ15の角度検出値は、制御装置200の関節駆動制御に用いられる。モータ用エンコーダ1e(10)からでも、減速比換算などによってリンク121とリンク122の相対角度を概ね検出することができる。しかしながら、通常、減速機12のような駆動系には捩れ変形やガタがある。特に多関節ロボットの場合、姿勢によって重力モーメントが大きく異なることがあり、これにより捩れ変形やガタの発生が大きく異なる。このため、出力軸エンコーダ15を用いることにより精度良く相対角度を検出できる。
図5は、制御装置200のハードウェア構成の一例を示している。図5に示すように、制御装置200は、CPU(演算部)201、ROM202、RAM203、HDD(記憶部)204、記憶ディスクドライブ205、各種のインタフェース211〜215、を備えている。
CPU201には、ROM202、RAM203、HDD204、記憶ディスクドライブ205及び各種のインタフェース211〜215が、バス216を介して接続されている。ROM202には、BIOS等の基本プログラムが格納される。RAM203は、CPU201の演算処理結果を一時的に記憶する記憶装置である。
HDD204は、CPU201の演算処理結果である各種のデータ等を記憶する記憶部であると共に、CPU201に、各種演算処理を実行させるためのプログラム(例えば、後述の関節制御プログラム)330を記録するために用いられる。CPU201は、HDD204に記録(格納)されたプログラム330に基づいて各種演算処理を実行する。記憶ディスクドライブ205は、記憶ディスク331に記録された各種データやプログラム等を読み出すことができる。
また、図5では、メモリ2021が図示されている。このメモリ2021は、ブレーキ板5dと歯車(タイミングプーリ:2、あるいは3)が噛合状態となるブレーキ噛合位置に関する情報を格納する記憶装置を構成する。メモリ2021に格納するブレーキ噛合位置の情報は、例えばサーボモータ1の駆動軸の回転角度のリストで表現することができる。
ただし、メモリ2021に格納するブレーキ噛合位置に関する情報としては、別の形式も考えられる。例えば、メモリ2021に格納するブレーキ噛合位置に関する情報は、少なくとも歯車構成のモータ用タイミングプーリ2の歯数を含んでいればよい。この場合には、ブレーキ噛合位置に相当するサーボモータ1の駆動軸の回転角度は、CPU201がメモリ2021から読み出したモータ用タイミングプーリ2の歯数を用いて計算により求めることができる。以下では、メモリ2021にはブレーキ噛合位置の情報として、サーボモータ1の駆動軸の回転角度のリストが含まれているものとして説明する。従って、以下では、ブレーキ噛合位置に相当するサーボモータ1の駆動軸の回転角度を決定する箇所では、メモリ2021から読み出した角度情報を用いるよう説明する。しかしながら、その箇所では上記のようにCPU201がメモリ2021から読み出したモータ用タイミングプーリ2の歯数の情報を用いてブレーキ噛合位置に相当する回転角度を計算により求めてもよい。要するに、モータ用タイミングプーリ2を制動できるブレーキ噛合位置に相当するサーボモータ1の回転角度は、メモリ2021(記憶装置)から読み出したブレーキ噛合位置に関する情報に基づき決定すればよい。その決定の際に実行すべき処理の細部は当業者において任意に設計変更が可能である。
本実施形態では、後述のように、メモリ2021に格納されたブレーキ噛合位置を利用したブレーキ制御に特徴があり、図5では、メモリ2021を殊更に独立したブロックで示している。しかしながら、このメモリ2021の記憶領域は、実際には、例えばROM202やHDD204に配置しておくことができる。
また、関節112、ブレーキ装置601を含む駆動装置600などの構成部分をいわゆる「アセンブリ」として製造し、また流通させるような構成が考えられる。このような「アセンブリ」製品においては、メモリ2021は、いわゆるタグメモリとして内蔵させておくことができる。この種のタグメモリは、例えばEEPROMのようなメモリデバイスから構成することができる。
ここで、そのような「アセンブリ」が、例えばサーボモータ1と、その駆動軸に装着されたモータ用タイミングプーリ2、ブレーキ装置601を組み立てたものとする。その組み立て状態で、ブレーキ装置601のブレーキ板5dとモータ用タイミングプーリ2が噛合状態となるブレーキ噛合位置のリストを生成し、アセンブリ内蔵のタグメモリ内のメモリ2021に書き込んでおく。CPU201は、各関節との間に配置される信号線(不図示)を介してこのタグメモリにアクセスできるようにしておく。
このような製品構成によれば、関節112、ブレーキ装置601を含む駆動装置600など「アセンブリ」製造時に、その駆動系に特有のブレーキ噛合位置リストを生成してタグメモリに用意しておくことができる。一方、制御装置200の側には一般的な制御パラメータのみを用意しておけばよい。例えば、関節112、ブレーキ装置601を含む駆動装置600などの「アセンブリ」を交換した場合でも、駆動系に特有のブレーキ噛合位置を記録したメモリ2021のリストをタグメモリから読み出して利用できる。これにより、制御装置200の制御プログラムを変更することなく、その駆動系のブレーキ噛合位置の特性に応じて、後述のようなブレーキ制御を行うことができる。
インタフェース211にはユーザが操作可能なティーチングペンダント300が接続されており、ティーチングペンダント300は、入力された各関節111〜116の目標関節角度をインタフェース211およびバス216を介してCPU201に出力する。
インタフェース212a,212bには、モータ用エンコーダ1e(10)、出力軸エンコーダ15がそれぞれ接続されている。モータ用エンコーダ1e(10)、出力軸エンコーダ15は、上述の角度検出値に相当する例えばパルス信号をインタフェース212a,212bに出力する。CPU201は、バス216を介してこれらモータ用エンコーダ1e(10)、出力軸エンコーダ15の検出角度値を入力することができる。さらにインタフェース213,214には、各種画像が表示されるモニタ311や書き換え可能な不揮発性メモリや外付けHDD等の外部記憶装置312を接続することができる。
また、インタフェース215にはサーボ制御装置313が接続されており、CPU201は、サーボモータ1の回転軸の回転角度の制御量を示す駆動指令のデータを所定間隔でバス216およびインタフェース215を介してサーボ制御装置313に出力する。
サーボ制御装置313は、CPU201から入力を受けた駆動指令に基づき、サーボモータ1への電流の出力量を演算し、サーボモータ1へ電流を供給する。これにより、ロボットアーム101の各関節111〜116の関節角度制御が行われる。このように、CPU201は、サーボ制御装置313を介して、関節111〜116の角度が目標関節角度となるようサーボモータ1を制御し、関節111〜116の姿勢制御を行う。
図6は、本実施例におけるブレーキ装置601の動作状態を示している。図6(a)はブレーキ無効、図6(b)はブレーキ有効な状態を示している。
関節(112)を駆動し、その姿勢(角度)を変更する場合、ブレーキ装置601は図6(a)のブレーキ無効状態に制御する。即ち、図6(a)のように、電磁ソレノイド7に電圧を印加し、所定の電流を流して電磁力を発生させる。プランジャ7pがコイル7c側に吸引され、プランジャ7pと接続されたブレーキレバー5が回動軸5cを中心に回転する。これにより、ブレーキ板5dとモータ用タイミングプーリ2の噛合いが外れた状態となり、サーボモータ1は回転自在、即ち、ブレーキ無効となる。ここで、電磁ソレノイド7に印加する所定の電流は、当然ながら噛合いブレーキばね6の付勢力より大きく、かつブレーキレバー5を移動可能な電流値である。
一方、関節(112)を所定の姿勢(角度)に固定(保持)する場合には、ブレーキ装置601は図6(b)のブレーキ有効状態に制御する。即ち、図6(b)のように、電磁ソレノイド7への印加電圧を消勢させ、コイル7cに励磁電流が流れていない状態を形成する。この場合は、電磁ソレノイド7の電磁力が発生しないので、噛合いバネ6の付勢力によりブレーキレバー5がモータ用タイミングプーリ2の方向に揺動し、ブレーキ板5dとモータ用タイミングプーリ2が噛合った状態が形成される。これがブレーキ有効の状態である。
図6(b)のブレーキ有効状態では、モータ用タイミングプーリ2とブレーキ板5dの歯の山と谷が相互に整合した時に、目的の噛合い(ブレーキ有効)状態が形成される。一方、モータ用タイミングプーリ2とブレーキ板5dの山と山が一致した位置関係では、そこから上記の歯の山と谷が相互に整合した状態に移行して初めて目的の噛合い(ブレーキ有効)状態が形成される。
以下では、図7および図8を参照して、モータ用タイミングプーリ2とブレーキ板5dの歯の山と谷が相互に整合し、目的の噛合い(ブレーキ有効)状態となる制動位置を確実に得るための制御につき説明する。この制御は、例えば、制御装置200、特にそのCPU201が後述のプログラムを実行することにより実現される。
図7は、本実施形態のロボット装置500の制御系を示す機能ブロック図である。図7では、機能ブロックとして、主に上記の駆動装置600に相当する関節機構部21、ブレーキ装置601に相当する噛合いブレーキ部22を含む。また、駆動装置600では、特にサーボモータ1と、そのモータ用エンコーダ1e(10)、および減速機12の出力側の出力軸エンコーダ15が図示されている。
関節機構部21は、前述した減速機12やタイミングベルト4でサーボモータ1のトルクをリンク122を駆動するトルクへ変換し、これにより関節(112)の回転角度を変化させる。CPU201は、サーボモータ1(回転駆動源)の回転軸の回転角度をモータ用エンコーダ1eを介して検出することができる。また、CPU201は、減速機12の出力側、即ち、関節の出力角度を出力軸エンコーダ15を介して検出することができる。噛合いブレーキ部22は前述のブレーキ装置601に相当し、上記の各タイミングプーリやブレーキレバー5、電磁ソレノイド7などを含む。
制御装置200ないしそのCPU201によるブレーキ制御の機能は、ブレーキ制御部23として示されている。このブレーキ制御部23は、停止軌道計算部24、噛合せ選択部25、モータ制御部26、ソレノイド駆動部27、噛合い確認制御部28などから構成される。
停止軌道計算部24は、ユーザが操作するティーチングペンダント300や装置上位コントローラ(不図示)から停止指令が発生された場合に停止の軌道を計算する。停止軌道計算部24は、ロボットアームが動作している場合には、出来るだけ短時間、且つ、ロボットアームを破壊しない加速度となる停止軌道を生成する。また、停止軌道計算部24は、ロボットアームが既に停止している場合は、その位置を保持停止位置として認識する。
噛合せ選択部25は、噛合いブレーキ部22のブレーキ部材であるブレーキ板5dとモータ用タイミングプーリ2の噛合位置を選択する制御を行う。両者の噛合位置は、例えばモータ用タイミングプーリ2の回転角度などによって表現されたデータによって取り扱うことができる。ブレーキ板5dとモータ用タイミングプーリ2が相互に歯の山と谷で噛合する回転角度(回転位置)は、例えば360°をモータ用タイミングプーリ2の歯数で除算した角度を分解能として定まる。噛合せ選択部25は、この複数の噛合位置から1つを選択する。
モータ制御部26は、サーボ制御装置313を制御するソフトウェアに相当し、CPU201のモータ制御部26の機能によって、サーボモータ1の回転角度が目的の関節姿勢に相当する角度に制御される。ソレノイド駆動部27は噛合いブレーキの電磁ソレノイドのON(励磁)とOFF(電流遮断)を制御するソフトウェアに相当する。
噛合い確認制御部28は、噛合いブレーキが有効なる状態に制御した後、目的のブレーキ位置でブレーキ装置601が制動状態となっているか否かを確認する制御(例えば後述のステップS17〜S19)に相当する。
以上の構成において、関節(112)の回動位置を保持する時、あるいは主電源遮断、休止、スリープ制御などを行う時において、少なくともその関節に関するブレーキONイベントが発生される。
本実施例1のブレーキ制御では、CPU201(制御装置)が、メモリ2021(記憶装置)のブレーキ板5d(ブレーキ部材)と歯車(2:タイミングプーリ)が噛合状態となるブレーキ噛合位置のリストを読み出す読み出し工程(S14)を含む。メモリ2021(記憶装置)にリストとして格納されるブレーキ噛合位置は、例えばサーボモータ1(回転駆動源)の駆動軸の回転角度で表現される。
そして、CPU201は、メモリ2021(記憶装置)から読み出したブレーキ噛合位置のリストを用いて、次のような制動制御工程を実行する。まず、メモリ2021から読み出したブレーキ噛合位置のリストを用いて、サーボモータ1の回転角度を決定する(S14)。そして、サーボモータ1をその回転角度まで駆動(S15)し、ブレーキ装置(601)を介してブレーキ板5dと歯車(2:タイミングプーリ)を噛合させ、関節(112)を制動する制動位置を制御する。
特に、本実施例では、CPU201(制御装置)は、関節(112)の目的の制動角度に相当するサーボモータ1(回転駆動源)の回転軸の停止回転角度を計算する(S12:停止角度計算工程)。そして、CPU201はその停止回転角度に応じて前記回転駆動源を一旦停止させる(S13:一旦停止工程)。
さらに、一旦停止させたサーボモータ1の現在の回転角度と、メモリ2021から読み出したリストに含まれるブレーキ噛合位置との差分を用いて、制動位置に相当するサーボモータ1(回転駆動源)の回転角度を決定する(S14、S15)。
図8は、上記のようにCPU201がブレーキONイベントを処理する制御手順を詳細に示している。図8のステップS11において、ユーザが操作するティーチングペンダント300や装置上位コントローラ(不図示)によって、例えばロボットアーム101の停止指令が発生されると、ブレーキONイベントが発生する。このブレーキONイベントは、上記のように例えば関節(112)の回動位置を保持する時、あるいは主電源遮断、休止、スリープ制御などを行う時に発生する。ブレーキONイベント(ステップS11)が発生すると、ステップS12以降でCPU201のブレーキ制御部23の制御が実行される。
ステップS12では、停止軌道計算部24によりロボットアーム101を停止させるための停止軌道、即ち、各関節のモータ指令プロファイルを計算する。なお、ロボットアームが既に停止している場合は、その場所を停止位置として選択する。
続いて、ステップS13において、ステップS12において停止軌道計算部24で計算した停止軌道に基づきモータ制御部26によるモータ制御を行い、各関節のサーボモータ1を停止させる。
ステップS14では、ステップS13で当該関節(例えば112)停止した位置から、ブレーキ装置601のブレーキ板5dとモータ用タイミングプーリ2が噛合可能なモータ回転角度で表現されたブレーキ噛合位置をメモリ2021から読み出す。そして、モータ用エンコーダ1eで検出した現在の回転角度との差分を計算する。この時、当然ながら、ブレーキ噛合位置のうち、現在の回転角度に直近のブレーキ噛合位置との差分を計算する。
上述のように、ブレーキ板5dとモータ用タイミングプーリ2が相互に歯の山と谷で噛合するブレーキ噛合位置は、例えば360°をモータ用タイミングプーリ2の歯数で除算した回転角度を分解能として定まる。
一方、ステップS13でモータ用タイミングプーリ2を停止させた回転角度(回転位置)は、例えばモータ用エンコーダ1e(10)によって検出できる。しかしながら、このモータ用タイミングプーリ2を停止させた回転角度(回転位置)は、ステップS12で計算される好適な停止軌道に基づき決定されるため、必ずしも上記のブレーキ噛合位置とは一致しない場合がある。
このため、ステップS15で、モータ用タイミングプーリ2の回転角度(回転位置)が、直近のブレーキ噛合位置となるようサーボモータ1を回転させ、好適な直近のブレーキ噛合位置を選択する補正を行う。ステップS14の制御は、このステップS15におけるサーボモータ1の補正回転量を計算する処理に相当する。また、このステップS14の制御機能は、図7では噛合せ選択部25の機能ブロックに相当する。
なお、ブレーキ板5dとモータ用タイミングプーリ2が相互に歯の山と谷で噛合するブレーキ噛合位置に対応するサーボモータ1のモータ回転角度は、予め実験的に、あるいは、設計値として計算しておくことができる。従って、例えばブレーキ噛合状態を形成できるサーボモータ1のモータ回転角度はメモリ2021として、ROM202やHDD204、あるいは関節駆動系のアセンブリのタグメモリなどに格納しておくことができる。ステップS14では、このメモリ2021を利用してサーボモータ1を回転させる補正量を決定することができる。当然ながら、メモリ2021には、ブレーキ噛合状態を形成できるサーボモータ1のモータ回転角度は、上記の例えば360°をモータ用タイミングプーリ2の歯数で除算した回転角度を分解能のステップで配列されることになる。
ステップS15においては、ステップS14(噛合せ選択部25の機能)で決定された補正量に基づき、サーボモータ1に指令値を送信し、モータ用タイミングプーリ2を例えば直近の好適なブレーキ噛合位置に回転させる。このモータ制御は図7ではモータ制御部26の機能ブロックに相当する。なお、この直近の好適なブレーキ噛合位置への補正回転は、例えばステップS13で停止したモータ角度と、ステップS14で求めた噛合い角度の差が最も小さいブレーキ噛合位置を選択する処理に相当する。
以上のようにステップS14(噛合せ選択部25)とステップS15(モータ制御部26)を実行する。これにより、モータ用タイミングプーリ2およびブレーキ板5dの山どうしが一致しない、好適なブレーキ噛合位置に確実にサーボモータ1を回転させることができる。
続いて、ステップS16において、ソレノイド駆動部27(図7)の機能を実行し、励磁状態にある電磁ソレノイド7の電流を遮断して、ブレーキ装置601を図6(b)の状態から図6(a)の状態に移行させる。
ステップS17〜S19では噛合い確認制御部28(図7)に相当する制御を行う。この制御は、噛合いブレーキが有効なる状態に制御した後、目的のブレーキ位置でブレーキ装置601が制動状態となっているか否かを確認する制御である。上記のステップS14およびS15のような制御を行っても、例えば機構の誤差などによって、モータ用タイミングプーリ2およびブレーキ板5dの山どうしが一致しているような状態が生じていることが予想される。そこで、ステップS17のような確認駆動を行うことにより、ブレーキ装置601の噛合状態確認を行うことができる。
まず、ステップS17において、CPU201はサーボ制御装置313を介してサーボモータ1を駆動し、所定トルクを発生させる(ステップS17:モータ制御部26の機能)。
そして、ステップS18でサーボモータ用エンコーダ1eの出力から、サーボモータ1の回転軸に所定回転角以上の回転が生じたか否かを判定する。この判定基準の所定回転角は、所定のブレーキ噛合位置で確実にブレーキ装置601の噛合制動状態が形成されているか否かを判定するためのもので、例えば上記のブレーキ噛合位置の分解能の1ステップ分程度に設定する。なお、ステップS17でサーボモータ1に発生させるトルク(ないしはその時の回転駆動角度)は、ブレーキ噛合位置の分解能の1、2ステップ(あるいは数ステップ程度)分以内のブレーキ噛合位置まで同プーリを回動できる程度でよい。
ステップS18において、サーボモータ用エンコーダ1eの値で所定回転角以上、サーボモータ1が回転していた場合はステップS19に分岐する。また、サーボモータ1の回転量が所定回転角より小さければ、ステップS20に分岐する。
ステップ19に分岐する場合は、CPU201は、何らかの理由で当該関節の駆動系が制動状態となっていない、即ち、ブレーキ無効と判断し、警報音やエラーメッセージを用いたエラー通知を行う。また、ブレーキ無効と判断した場合は、関節姿勢を保持するため、サーボモータ1を現在のモータ回転位置を保持するように制御する。
一方、ステップ20の状態は、サーボモータ1が上記の所定回転角度以下であり、この場合はブレーキ有効と判断し、ブレーキONイベントを終了する。このブレーキ有効でブレーキONイベントを終了する場合には、例えば、ステップS17の確認駆動前において既にモータ用タイミングプーリ2とブレーキ板5dが上記のブレーキ噛合状態で、正規の制動保持状態に移行しているような場合が含まれる。この場合には、サーボモータ1はステップS17の確認駆動前の位置から回転しない。また、ステップS17の確認駆動前において、機構の誤差などによって、例えば、モータ用タイミングプーリ2およびブレーキ板5dの山どうしが一致しているような状態からブレーキ噛合位置への移動が生じた場合も含まれる。この場合は、例えばモータ用タイミングプーリ2およびブレーキ板5dの山どうしが一致している状態から確認駆動によって直近の半ステップ〜ないし1ステップ程度のブレーキ噛合位置への移動が生じる。なお、ステップS17の確認駆動でモータ用タイミングプーリ2にその歯数で1ないし2ステップ程度の回転が生じたとしても、関節の姿勢に問題となるような大きな誤差は生じない。これは、モータ用タイミングプーリ2〜減速機用タイミングプーリ3、および減速機12の減速比が通常、上記の1/30から1/200程度のオーダに取られるためである。
以上のように、本実施例のブレーキ制御(図8)によれば、ステップS17以降において、サーボモータ1に所定トルクを発生させ、サーボモータ1の回転角を検出することで噛合いブレーキの有効/無効状態を判定できる。この判定において、ブレーキ無効と判断される場合はサーボモータ1のモータ回転位置を保持するように制御する。
従って、本実施例によれば、ロボット装置500の関節に噛合いブレーキを利用し、小型で低発熱のブレーキ装置が実現できる。また、噛合いブレーキを駆動した後、関節のサーボモータ1を確認駆動(ステップS17)し、その際の回転角の検出値に応じて、噛合いブレーキの有効/無効状態を判定できる。この確認駆動(ステップS17)により、モータ用タイミングプーリ2およびブレーキ板5dの山どうしが一致しているような半制動状態の場合は、直近のブレーキ噛合位置に移動させ確実な制動状態を形成できる。また、確認駆動(ステップS17)における回転角が大き過ぎる場合は、噛合いブレーキは無効状態と判断されるが、その場合は、サーボモータ1のモータ回転位置を保持するように制御し、関節姿勢を保持することができる。
<実施例2>
上記実施例1では、計算(図8ステップS12)した停止軌道で関節を一旦停止させてから、確認駆動(ステップS17)を行い、ブレーキ板5dとモータ用タイミングプーリ2が相互に歯の山と谷で噛合するブレーキ噛合位置における制動状態を形成した。しかしながら、上記のようにブレーキ板5dとモータ用タイミングプーリ2が相互に歯の山と谷で噛合するブレーキ噛合位置を得られるサーボモータ1のモータ回転角度は予め計算しておくことができる。
そこで、本実施例2では、計算した停止軌道と、その近傍のブレーキ噛合位置との差分を計算し、停止軌道の演算を補正するブレーキONの制御例を示す。本実施例2の制御によれば、上記実施例1の確認駆動(ステップS17)のような一旦停止の後の再度駆動が必要なくなる。
即ち、本実施例2では、CPU201(制御装置)が関節の目的の制動角度に相当するサーボモータ1(回転駆動源)の回転軸の停止回転角度を計算する(停止角度計算工程:下記のステップS12)。そして、メモリ2021(記憶装置)から読み出したリストに含まれるブレーキ噛合位置との差分を用いて、計算した停止回転角度を補正する(補正工程:同S32)。さらに、補正された停止回転角度に基づきをサーボモータ1を回転駆動し、その回転位置でブレーキ装置601の電磁ソレノイド7(ブレーキ駆動装置)を作動させて制動状態を形成する(同S16)。
図9は本実施例2のブレーキON制御の流れを示している。図9のフローチャートは図8と同等の様式であり、また、本実施例2では、ハードウェアや制御系の構成については上述の実施例1と同様であるものとする。図9では、図8と同等の処理ステップについては同一の参照符号を用いており、その詳細な説明は省略するものとする。以下、図9を参照して、本実施例2のブレーキON制御につき説明する。
本実施例2では、ブレーキ板5dとモータ用タイミングプーリ2が相互に歯の山と谷で噛合するブレーキ噛合位置を得られるモータ回転角(噛合可能角度)のリストは上記のメモリ2021に格納しておく。このモータ回転角(噛合可能角度)のリストは、当然ながら各関節毎に用意しておく。
図9のステップS11は、上述のブレーキONイベントの発生を示し、以後、CPU201は、ステップS12以降のブレーキON制御を実行する。ステップS12では、上述の実施例1と同様に停止軌道の計算を行う。ステップS12以降の制御は、当然ながら制動の必要な各関節ごとに行う。
ステップS31では、予めROM202やHDD204に格納されているメモリ2021からブレーキ噛合位置を得られるモータ回転角(噛合可能角度)を読み出す。
そして、ステップS32において、CPU201はメモリ2021から読み出したブレーキ噛合位置を得られるモータ回転角(噛合可能角度)と、ステップS12で計算した停止軌道に対応する当該関節のサーボモータ1の停止角度の差分を計算する。この場合、例えばブレーキ噛合位置を得られるモータ回転角(噛合可能角度)のうち、ステップS12で計算された当該関節のサーボモータ1の停止角度に直近のブレーキ噛合位置に相当するモータ回転角(噛合可能角度)との差分を取得する。そして、ステップS12で計算された当該関節のサーボモータ1の停止角度に、取得した差分を加算または減算する補正を行い、このブレーキONイベントによって当該関節を停止させるべきモータ停止角度を求める。
続いて、ステップS33では、ステップ32で補正したモータ停止角度でサーボモータ1を停止させるよう、停止軌道制御を実行する。その後、ステップS16において上述同様に電磁ソレノイド7の電流を遮断し、ブレーキ装置601を図6(b)の状態から図6(a)の状態に移行させる。
ステップS16以降の制御は上述の実施例1と同様である。本実施例では、上記のようにブレーキ噛合位置に相当するモータ回転角(噛合可能角度)との差分によりサーボモータ1の停止角度を補正する。このため、ステップS17の確認駆動を実行する前に、既にブレーキ板5dとモータ用タイミングプーリ2が相互に歯の山と谷で噛合するブレーキ噛合位置が得られている可能性が高くなる。このため、実施例1の場合よりステップS17の確認駆動は短時間かつより低トルクで行えば足りる可能性が高い。
以上のように、本実施例ではブレーキONイベントが発生した時、計算した停止軌道と、その近傍のブレーキ噛合位置との差分を計算し、停止軌道の演算を補正するようにしている。即ち、直近のブレーキ噛合位置に相当するモータ回転角(噛合可能角度)との差分を取得し、この差分によって計算された当該関節のサーボモータ1の停止角度を補正する。これにより、高速で低消費電力なブレーキON制御を実現できる。
なお、機構や計算精度にもよるが、ステップS32において、充分高精度にサーボモータ1の停止角度を補正できる見込みがあれば、ステップS17以降の確認駆動およびその結果判定の制御は省略できる可能性がある。この場合には、さらに短時間かつ低消費電力なブレーキON制御を実現できる可能性がある。
<実施例3>
実施例1と実施例2ではブレーキONの制御シーケンスについて説明した。本実施例2では、ブレーキOFFイベント発生時の制動解除制御例について述べる。本実施例2においても、ロボット装置500のハードウェアや制御系の構成については上述の実施例1と同様であるものとする。
関節(112)の制動を解除する場合、本実施例3では、次のような制御を行う。CPU201(制御装置)は、サーボモータ1(回転駆動源)の駆動状態を関節が制動姿勢を保持するよう制御した後、電磁ソレノイド7(ブレーキ駆動装置)を励磁し、制動を解除する(下記のS42、S43)。
また、CPU201(制御装置)は、電磁ソレノイド7(ブレーキ駆動装置)を励磁し、制動を解除した後、サーボモータ1(回転駆動源)を所定の駆動量(回転角度)だけ回転させる。そして、その後の駆動軸の回転角度に応じて、制動解除状態の有効または無効を判定する(同S44、S45)。
以下、図10を参照して本実施例3のブレーキOFF制御につき説明する。図10のステップS41では、ユーザが操作するティーチングペンダント300や装置上位コントローラ(不図示)によって、例えばロボットアーム101の動作指令が発生されると、ブレーキOFFイベントが発生する。これに応じて、CPU201は、ステップS42以降のブレーキOFF制御を実行する。ステップS42以降のブレーキOFF制御は、当然ながら駆動の必要な各関節毎に行う。
ステップS42においては、サーボ制御装置313を介して当該関節のサーボモータ1をサーボオン状態に移行させ、サーボモータ1を関節が制動姿勢を保持するよう駆動制御する。即ち、サーボモータ1で当該関節の現在の姿勢を保持できる大きさの駆動トルクを発生させる。
続いて、ステップS43でCPU201は電磁ソレノイド7を励磁し、ブレーキ装置601を図6(b)の状態から図6(a)の状態、即ちブレーキOFF(無効)の状態に移行させる。この時、ブレーキ板5dがモータ用タイミングプーリ2から離間して当該関節の制動状態が解除される。一方、サーボモータ1の姿勢保持のためのトルクは継続して発生させる。これにより、現在の(制動時と同じ)関節の姿勢がサーボモータ1の駆動トルクによって保持される。
以上のように、本実施例では、ステップS43の電磁ソレノイド7の励磁による制動解除に先立ち、ステップS42でサーボモータ1に姿勢保持のためのトルクを発生させておく。これにより、例えば重力などの影響によりリンクが落下するのを防止できる。
例えば、図1の関節112や113のように重力方向に回転可能な回動軸を有する関節は、ステップS42を行わないでブレーキ無効にすれば重力によって関節が回転し、その先のリンクが落下する可能性がある。しかしながら、このため、ステップS43の制動力解除の前に、サーボモータ1に姿勢保持トルクを発生させておくことによりリンクの落下や衝突、それによる機構の損傷などを未然に防止できる。
ステップS44以降では、ブレーキOFF(制動解除)状態を確実に形成するとともに、その状態が形成されているか否かの確認動作およびその判定を行う。まず、ステップS44では、電磁ソレノイド7のON(励磁)状態を保持したまま、サーボ制御装置313を介してサーボモータ1を所定角度だけ回転させる確認動作を行わせる。例えば、このサーボモータ1を回転させる所定角度は、サーボモータ1が、ステップS44で実際に与えた指令と(ほぼ)同じ回転角だけ回転したか否か判定(S45)できる程度でよい。例えば、この所定角度はブレーキ噛合位置の分解能の数ステップ程度、あるいは関節出力側のリンクの角度にして大きくとも数°程度、などとする。
また、この時のサーボモータ1、ないしそれにより駆動される関節(112)の回動方向は、図1の関節112、113のようにそれよりも手先側の自重によって比較的大きな回動モーメント(自重モーメント)が作用する関節について、考慮すべき事項がある。この点については、本実施例の最後で考察する。
ステップS45においては、CPU201は、モータ用エンコーダ1eの出力を用いて、サーボモータ1がステップS44で実際に与えた指令と(ほぼ)同じ回転角だけ回転したか否か判定する。本実施例3はブレーキOFF制御であるから、この確認は上記実施例1および2とは逆に所定角度、サーボモータ1が回転したか否かを判定する。
ここでサーボモータ1が指令通り所定角度揺動していれば、制動解除状態を達成したと判断してブレーキ処理のステップ46の終了処理に分岐する。逆に、ブレーキOFFに制御したにも拘らず、所期の回転量を得られていなければステップS47のエラー処理に分岐する。
なお、正常終了でステップS46に移行する場合、実行しているロボット制御プログラムに応じてその後の制御が行われる。例えば、ロボットアーム101の姿勢を保持する場合、CPU201はサーボモータ1に姿勢保持トルクを発生させる。また、ロボットアーム101の位置姿勢を目標の位置姿勢に変位させる場合には、CPU201は、その位置姿勢への変位に必要な関節駆動を行うべく、サーボモータ1の回転角度、回転速度を制御する。
また、図1のロボット装置の関節112や関節113には、その関節より手先側の自重がかかる。このような関節では、ブレーキ装置601の制動中、この自重モーメントは、モータ用タイミングプーリ2とブレーキ板5dの噛合部で支えることになる。モータ用タイミングプーリ2とブレーキ板5dの噛合部にかかるモーメントは、ブレーキ有効からブレーキ無効に推移する際の抵抗になる。この抵抗により、ブレーキを無効に(解除)できない可能性がある。
そこで、上記のステップS43で電磁ソレノイド7をONした後、ステップS44でサーボモータ1を比較的高速に所定周波数、ないし所定振幅で振動駆動する制御を行うことが考えられる。これにより、噛合部の抵抗が小さくなる瞬間が形成されるため、確実にブレーキ無効にできる可能性が高くなる。この場合、ステップ45では、ステップS44で行わせた振動駆動状態が形成されたか否かをモータ用エンコーダ1eなどを介して検出すればよい。
こ
以上、説明したように、本実施例によれば、ブレーキOFFイベントが発生すると、まずサーボオン(S42)により発生後のモータ位置を保持する制御を行う。このため、手先側のリンクの落下などの障害を生じることなく、制動解除を行うことができる。また、電磁ソレノイドをONとした後、サーボモータ1を駆動(S44)する確認動作を行うことにより、実際に制動解除の状態が得られているか否かを確認(S45〜S46)することができる。また、この時(S44)、サーボモータ1を好ましくは自重モーメントによる回転速度よりも高速に回動させることにより、スムーズに制動解除を行うことができる。
<実施例4>
上述のように、噛合いブレーキの場合、ブレーキ板5dとモータ用タイミングプーリ2の歯(突起)の山と谷を噛合させる構造上、両者のブレーキ噛合位置は離散的であり、その分解能は両者の歯(突起)の山(谷)のピッチないし周期によって定まる。このため、ある関節を制動する場合、計算した停止軌道上の所定の制動位置に最も近いブレーキ噛合位置を選択できるのが望ましい。
一方、上記の実施例1〜3では、モータ用エンコーダ1eを用いて、目的の制動状態が確実に生成されているか、あるいは制動状態が確実に解除されているかどうかを確認する例を示した。これに対して本実施例では、ブレーキONイベントにおいては、出力軸エンコーダ15の出力を利用し、制御対象の関節の目的の制動位置(姿勢)に最も近い(理想的な)ブレーキ噛合位置を得られるよう制御する例を示す。
ロボットアーム101を用いた精密な組立や狭い場所の作業では、制動(停止)位置の制御の精度が良くなければ作業を失敗したり、他の物体に干渉したりする問題がある。このため、精密な組立や狭い場所の作業ほど、ロボットアーム101の手先の位置を正確に制御する必要がある。
ロボットアーム101の手先位置(例えばハンド102の把持部)の位置姿勢は、各関節の減速機の捩れやガタの影響を受ける。このため、例えばサーボモータ用エンコーダ1eのみを利用してロボットアーム101の位置姿勢を制御しようとしても、ロボットアーム101の手先位置はそれ程正確に制御できない。ロボットアーム101の手先位置を精密に制御するためには、各関節の姿勢(回動角)を精密に制御する必要がある。このためには、各関節の姿勢(回動角)を出力軸エンコーダ15の出力に基づき制御するのが望ましい。
そこで、本実施例4では、ブレーキONイベントの発生に応じて前記関節を制動する場合、次のような制御を行う。CPU201(制御装置)は、当該関節(112)の目的の制動角度に相当するサーボモータ1(回転駆動源)の回転軸の停止回転角度を計算する(下記のS12:停止角度計算工程)。そして、CPU201(制御装置)は、その停止回転角度に応じてサーボモータ1(回転駆動源)を一旦停止させる(同S13:一旦停止工程)。さらに、一旦停止させたサーボモータ1(回転駆動源)の現在の回転角度の近傍で、メモリ2021(記憶装置)から読み出したリストに含まれる複数のブレーキ噛合位置にそれぞれサーボモータ1を回転させる。そして、その各回転位置において関節(112)の出力軸の回転角度を出力軸エンコーダ15を用いて測定する(同S52:測定工程)。
そして、サーボモータ1を回転させた複数のブレーキ噛合位置のうち、出力軸エンコーダ15により測定された回転角度と関節の目的の制動角度との差分が最も小さいブレーキ噛合位置で前記ブレーキ装置601を作動させ、制動有効状態を形成する。
図11は、本実施例4のブレーキON制御の流れを示している。図11のフローチャートは図8、図9と同等の様式であり、また、本実施例4においてもハードウェアや制御系の構成については上述の各実施例と同様であるものとする。図11では、図8、図9と同等の処理ステップについては同一の参照符号を用いており、その詳細な説明は省略するものとする。以下、図11を参照して、本実施例4のブレーキON制御につき説明する。
なお、本実施例でも、ブレーキ板5dとモータ用タイミングプーリ2が相互に歯の山と谷で噛合するブレーキ噛合位置を得られるモータ回転角(噛合可能角度)のリストは予めROM202やHDD204などに配置したメモリなどに格納しておく。このモータ回転角(噛合可能角度)のリストは、当然ながら各関節毎に用意しておく。
図11のステップS11において、ティーチングペンダント300や装置上位コントローラ(不図示)によって例えばロボットアーム101の停止指令が発生されると、ブレーキONイベントが発生する。このブレーキONイベント(ステップS11)が発生すると、ステップS12以降でCPU201のブレーキ制御部23の制御が実行される。
ステップS12では、停止軌道計算部24によりロボットアーム101を停止させるための停止軌道、各関節のモータ指令プロファイルを計算する。ロボットアームが既に停止している場合は、その場所を停止位置として選択する。
続いて、ステップS13において、ステップS12において停止軌道計算部24で計算した停止軌道に基づきモータ制御部26によるモータ制御を行い、各関節のサーボモータ1を停止させる。
次にステップS51において、上記のROM202やHDD204などに配置されたブレーキ噛合位置のメモリから、現在のサーボモータ1の停止位置の近傍のブレーキ噛合位置を複数、検索する。このメモリには、ブレーキレバー5のブレーキ板5dとモータ用タイミングプーリ2が相互に山と谷で係合するブレーキ噛合位置を、例えばサーボモータ1の回転角度表現のリストとして用意しておく。ここでは、現在のサーボモータ1の停止位置は、モータ用エンコーダ1eを介して検出する。また、複数、検索する現在の停止位置の近傍のブレーキ噛合位置の数は、当該関節(の出力軸)の姿勢の制御誤差などに応じて定めておけばよい。
続いてステップS52において、モータ制御部26の機能によって、サーボモータ1の指令値にステップS51で検索した複数のブレーキ噛合位置の各々にモータ回転角度にサーボモータ1を制御する。そして、その各々の停止位置で出力軸エンコーダ15の出力値を取得する。
ステップS53では、出力軸エンコーダ15の出力値を用い、ステップS52で移動させた各ブレーキ噛合位置のうち、ステップS12で計算した停止軌道に最も近いブレーキ噛合位置を選択する。そして、この噛合位置に相当する回転角度にサーボモータ1を回転させる制御を行う。この時、ロボットアーム101の姿勢制御を各関節軸の角度で制御している場合には、各関節で、出力軸エンコーダ15で当該関節軸の目標角度に近い角度が得られているブレーキ噛合位置を選択すればよい。また、停止軌道の制御を、例えばロボットアーム101の手先部位の目標位置で制御している場合には、順運動学で計算した手先位置と目標位置との差が最も小さくなるよう、各関節のブレーキ噛合位置を選択すればよい。
続いてステップS16において、CPU201は、ソレノイド駆動部27を介して励磁されている電磁ソレノイド7の電流を遮断して、図6(b)の状態から図6(a)の状態にして噛合いブレーキを有効にする。
ステップS16〜S20の処理は、図8、図9のステップS16〜S20と同じ処理である。ここでは、ブレーキON(制動)状態が形成されているか否かを判定(ステップS18)し、モータ用エンコーダ1eの値で所定回転角以上、サーボモータ1が回転していた場合にはエラー処理(ステップS19)を行う。また、サーボモータ1の回転角が所定回転角を超えない微小量であれば、正常な制動状態を確認したものとしてブレーキON制御を終了(ステップS20)する。
以上のように、本実施例4によれば、サーボモータ1を目的の制動角度に相当する停止回転角度で一旦停止させる。そして、メモリ2021から読み出したリストに含まれる複数のブレーキ噛合位置にそれぞれサーボモータ1を回転させる。さらに、その各回転位置において関節(112)の出力軸の回転角度を出力軸エンコーダ15を用いて測定する。そして、サーボモータ1を回転させた複数のブレーキ噛合位置のうち、出力軸エンコーダ15により測定された回転角度と関節の目的の制動角度との差分が最も小さいブレーキ噛合位置で前記ブレーキ装置601を作動させる。従って、出力軸エンコーダ15を用いて測定した関節の実際の回転角度を測定し、メモリ2021から読み出したリストに含まれる複数のブレーキ噛合位置から関節の目的の制動角度との差分が最も小さいブレーキ噛合位置を選択することができる。このため、低発熱で大きな制動力を得られる噛合ブレーキ機構を用いながら、関節の目的の制動角度との差分が最も小さい、最適なブレーキ噛合位置を選択することができる。
<実施例5>
以上の各実施例は、ロボットアーム101の関節(111〜116)の駆動系に、それぞれ突起(コグ/ドグ)付きのモータ用タイミングプーリ2、減速機用タイミングプーリ3、タイミングベルト4を用いた構成を用いて説明した。しかしながら、上述の噛合いブレーキ制御は、上述のようなベルト駆動による駆動系のみに限定的に実施すべきものではない。
例えば、同様の噛合いブレーキによるブレーキ機構は、図12に示すように、関節(例えば112)の駆動装置600が、例えば平ギア38、39を用いて構成されているような場合でも実施することができる。
図12は、上述の図1〜図3、図6で説明した関節(例えば112)の駆動装置600の異なる構成を図6と同様の様式で示したものである。図12において、平ギア38はブレーキベース8の外側に配置され、サーボモータ(1:同図では不図示)の回転駆動軸に結合されている。一方、平ギア38と噛合う平ギア39は減速機(12:同図では不図示)の減速機入力軸13に結合されている。
図12のブレーキ装置601は、図中の平ギア38の上側に配置されている。ブレーキ装置601のブレーキレバー5は回動軸5cに回動自在に支持されるとともに、ブレーキレバー5の先端5eと、ブレーキベース8の支持部6dの間には、例えばコイルスプリングなどの弾性部材から成る噛合いバネ6が弾装されている。
また、ブレーキレバー5には、モータ用タイミングプーリ2の歯を噛合いで停止させるための数歯の突起を有するブレーキ板5d(噛合い部材)が取り付けられている。また、噛合いレバー5の中央部領域は、電磁ソレノイド7のプランジャ7pにリンクされている。電磁ソレノイド7は、前述同様に、コイル7c、プランジャ7p、フレーム7fから構成されている。
上述の図1〜図3、図6の構成と比較して明らかなように、図12の構成は、関節駆動軸(13)への伝達がギア同士の噛合によって行われる以外は機械的には上述の構成とほぼ同等である。従って、サーボモータ1の駆動軸に装着された平ギア38にブレーキ板5dを噛合させて制動するブレーキON動作、およびこれらの噛合を解除して制動を解除するブレーキOFF動作は、上述の各実施例で説明した手順によって制御することができる。
以上、実施例1〜5によって本実施形態の構成および制御例を示したが、本発明は上述した実施例の構成に限定されるものではない。また、上記各実施例に記載した構成、作用や効果については、それぞれ好適例を例示したに過ぎず、本発明の構成、作用や効果は上記各実施例の記載のみに限定されるものではない。
例えば、上記各実施例においては、ロボットアーム部100が、垂直多関節ロボットアームである場合について説明した。しかしながら、本発明の噛合いブレーキ機構およびそのブレーキ制御は、ロボットアームのアーキテクチャに限定されず、例えば水平多関節ロボットアーム(スカラロボット)、パラレルリンクロボットアームのような構成においても実施することができる。
また、本実施形態では、ブレーキレバー5を配置し、ブレーキレバー5を介してブレーキ板5dの位置を制御する構成を例示した。しかしながら、ブレーキレバー5は必須の構成要件ではない。例えば、電磁ソレノイド7のプランジャ7pの先端にブレーキ板5dを取り付け、また制動力を発生させる噛合いバネ6はプランジャ7pに同軸に弾装する、といった構成でも、上述のブレーキ制御は可能である。
また、本実施形態の各処理は具体的には制御装置200の制御部としてのCPU201により実行されるものである。従って、上述した機能を実現するプログラムを記録した記録媒体を制御装置200に供給し、制御装置200のコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施例の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
また、本実施例では、コンピュータ読み取り可能な記録媒体がHDD204であり、HDD204にプログラム330が格納される場合について説明したが、これに限定するものではない。プログラム330は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するためのコンピュータ読み取り可能な記録媒体としては、ROM202、外部記憶装置312、記憶ディスク331等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、本実施例におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、本実施例の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって本実施例の機能が実現される場合も含まれる。本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、本発明の制御は、1以上の機能を実現するハードウェア回路(例えば、ASIC)によっても実現可能である。