(58)【調査した分野】(Int.Cl.,DB名)
前記表示デバイスには、前記複数の関節部各々の動作状態とともに前記複数の関節部各々が可動限界又はその近傍に達しているか否かが表示されることを特徴とする請求項1記載のロボット装置。
前記表示デバイスには、前記複数の関節部各々の動作状態として前記複数の関節部各々の動作中と停止中との区別が表示されることを特徴とする請求項2記載のロボット装置。
前記表示デバイスには、前記複数の関節部各々の動作状態、前記複数の関節部各々が可動限界又はその近傍に達しているか否かに加えて、前記複数の関節部各々が速度超過か否かが表示されることを特徴とする請求項3記載のロボット装置。
前記複数の関節部の近傍には複数のインジケータランプがそれぞれ装備され、前記複数のインジケータランプはそれぞれ近傍の関節部の動作状態を表示することを特徴とする請求項2記載のロボット装置。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら本実施形態に係るロボット装置を説明する。ロボット装置は、複数の関節部を有する多関節アーム機構を備える。本実施形態に係るロボット装置には、複数の関節部各々の状態を表示する表示部が装備される。その表示部には、関節部各々の動作状態(動作中か停止中か)、関節部が可動限界に到達したか、関節部のアクチュエータが過熱状態か、関節部のアクチュエータが脱調したか等が表示される。これにより、オペレータがペンダントを操作してもロボットアームが移動しないとき、その原因がアクチュエータの過熱に代表されるロボット装置側の動作異常にあるのか、それとも関節部が可動限界に達した等のロボット装置側の動作異常ではない理由なのか、その区別をオペレータが表示部を視認することで即時に確認することができる。なお当該作用効果は、関節部のアクチュエータとして、ACサーボモータ、DCサーボモータ、ステッピングモータのいずれのモータであっても達成できる。ここではアクチュエータとしてステッピングモータが使用された場合を例に説明する。なお、当該ロボット装置としては、複数の関節部のうち一が直動伸縮関節を備えた多関節アーム機構を例に説明する。以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0010】
図1は、本実施形態に係るロボット装置の外観斜視図である。ロボット装置を構成するロボットアーム機構は、略円筒形状の基部1と基部1に接続されるアーム部2とアーム部2の先端に取り付けられる手首部4とを有する。手首部4には図示しないアダプタが設けられている。例えば、アダプタは後述の第6回転軸RA6の回転部に設けられる。手首部4に設けられたアダプタには、用途に応じたロボットハンドが取り付けられる。
【0011】
ロボットアーム機構は、複数、ここでは6つの関節部J1,J2,J3,J4,J5,J6を有する。複数の関節部J1,J2,J3,J4,J5,J6は基部1から順番に配設される。一般的に、第1、第2、第3関節部J1,J2,J3は根元3軸と呼ばれ、第4、第5、第6関節部J4,J5,J6はロボットハンドの姿勢を変化させる手首3軸と呼ばれる。手首部4は第4、第5、第6関節部J4,J5,J6を有する。根元3軸を構成する関節部J1,J2,J3の少なくとも一つは直動伸縮関節である。ここでは第3関節部J3が直動伸縮関節部、特に伸張距離の比較的長い関節部として構成される。アーム部2は直動伸縮関節部J3(第3関節部J3)の伸縮部分を表している。
【0012】
手首部4の第6関節部J6を覆う円筒形状のカバーの前方側面にはその30度乃至90度の範囲にわたって、関節部J1−J6各々の状態を通知するための表示部(表示デバイス)41が、その円筒形状に沿って湾曲した状態で取り付けられる。表示部41は例えばCRTディスプレイや液晶ディスプレイ、有機ELディスプレイ、プラズマディスプレイ等が挙げられる。なお、表示部41は、カバーに直接取り付けられているのではなく、カバーに設けられた台座や取り付けフック等に取り付けられてもよい。例えば、第6関節部J6を覆う円筒形状のカバーの前方側面に表示部41を、その表示面が前方を向くように備え付けるための台座が設けられ、その台座に表示部41が取り付けられてもよい。
【0013】
第1関節部J1は基台面に対して例えば垂直に支持される第1回転軸RA1を中心としたねじり関節である。第2関節部J2は第1回転軸RA1に対して垂直に配置される第2回転軸RA2を中心とした曲げ関節である。第3関節部J3は、第2回転軸RA2に対して垂直に配置される第3軸(移動軸)RA3を中心として直線的にアーム部2が伸縮する関節である。
【0014】
第4関節部J4は、第4回転軸RA4を中心としたねじり関節である。第4回転軸RA4は、後述の第7関節部J7が回転していないとき、つまりアーム部2の全体が直線形状にあるとき、第3移動軸RA3と略一致する。第5関節部J5は第4回転軸RA4に対して直交する第5回転軸RA5を中心とした曲げ関節である。第6関節部J6は第4回転軸RA4に対して直交し、第5回転軸RA5に対して垂直に配置される第6回転軸RA6を中心とした曲げ関節である。
【0015】
基部1を成すアーム支持体(第1支持体)11aは、第1関節部J1の第1回転軸RA1を中心に形成される円筒形状の中空構造を有する。第1関節部J1は図示しない固定台に取り付けられる。第1関節部J1が回転するとき、アーム部2は第1支持体11aの軸回転とともに左右に旋回する。なお、第1支持体11aが接地面に固定されていてもよい。その場合、第1支持体11aとは独立してアーム部2が旋回する構造に設けられる。第1支持体11aの上部には第2支持部11bが接続される。
【0016】
第2支持部11bは第1支持部11aに連続する中空構造を有する。第2支持部11bの一端は第1関節部J1の回転部に取り付けられる。第2支持部11bの他端は開放され、第3支持部11cが第2関節部J2の第2回転軸RA2において回動自在に嵌め込まれる。第3支持部11cは第1支持部11a及び第2支持部に連通する鱗状の外装からなる中空構造を有する。第3支持部11cは、第2関節部J2の曲げ回転に伴ってその後部が第2支持部11bに収容され、また送出される。ロボットアーム機構の直動伸縮関節部J3(第3関節部J3)を構成するアーム部2の後部はその収縮により第1支持部11aと第2支持部11bの連続する中空構造の内部に収納される。
【0017】
第3支持部11cはその後端下部において第2支持部11bの開放端下部に対して第2回転軸RA2を中心として回動自在に嵌め込まれる。それにより第2回転軸RA2を中心とした曲げ関節部としての第2関節部J2が構成される。第2関節部J2が回動するとき、アーム部2は第2回転軸RA2を中心に垂直方向に回動、つまり起伏動作をする。
【0018】
第4関節部J4は、アーム部2の伸縮方向に沿ったアーム中心軸、つまり第3関節部J3の第3移動軸RA3に典型的には接する第4回転軸RA4を有するねじり関節である。第4関節部J4が回転すると、手首部4及び手首部4に取り付けられたロボットハンドは第4回転軸RA4を中心に回転する。第5関節部J5は、第4関節部J4の第4回転軸RA4に対して直交する第5回転軸RA5を有する曲げ関節部である。第5関節部J5が回転すると、第5関節部J5から先端にかけてロボットハンドとともに上下(第5回転軸RA5を中心に垂直方向)に回動する。第6関節部J6は、第4関節部J4の第4回転軸RA4に直交し、第5関節部J5の第5回転軸RA5に垂直な第6回転軸RA6を有する曲げ関節である。第6関節部J6が回転すると、ロボットハンドは左右に旋回する。
【0019】
上記の通り手首部4のアダプタに取り付けられたロボットハンドは、第1、第2、第3関節部J1.J2.J3により任意位置に移動され、第4、第5、第6関節部J4、J5、J6により任意姿勢に配置される。特に第3関節部J3のアーム部2の伸張距離の長さは、基部1の近接位置から遠隔位置までの広範囲の対象にロボットハンドを到達させることを可能にする。第3関節部J3はそれを構成する直動伸縮機構により実現される直線的な伸縮動作とその伸張距離の長さとが特徴的である。
【0020】
図2は、
図1のロボットアーム機構の内部構造を示す斜視図である。直動伸縮機構はアーム部2と射出部30とを有する。アーム部2は第1連結コマ列21と第2連結コマ列22とを有する。第1連結コマ列21は複数の第1連結コマ23からなる。第1連結コマ23は略平板形に構成される。前後の第1連結コマ23は、互いの端部箇所においてピンにより屈曲自在に列状に連結される。第1連結コマ列21は内側や外側に自在に屈曲できる。
【0021】
第2連結コマ列22は複数の第2連結コマ24からなる。第2連結コマ24は横断面コ字形状の短溝状体に構成される。前後の第2連結コマ24は、互いの底面端部箇所においてピンにより屈曲自在に列状に連結される。第2連結コマ列22は内側に屈曲できる。第2連結コマ24の断面はコ字形状であるので、第2連結コマ列22は、隣り合う第2連結コマ24の側板同士が衝突して、外側には屈曲しない。なお、第1、第2連結コマ23、24の第2回転軸RA2に向いた面を内面、その反対側の面を外面というものとする。第1連結コマ列21のうち先頭の第1連結コマ23と、第2連結コマ列22のうち先頭の第2連結コマ24とは結合コマ27により接続される。例えば、結合コマ27は第2連結コマ24と第1連結コマ23とを合成した形状を有している。
【0022】
射出部30は、複数の上部ローラ31と複数の下部ローラ32とが角筒形状のフレーム35に支持されてなる。例えば、複数の上部ローラ31は第1連結コマ23の長さと略等価な間隔を隔ててアーム中心軸に沿って配列される。同様に、複数の下部ローラ32は第2連結コマ24の長さと略等価な間隔を隔ててアーム中心軸に沿って配列される。射出部30の後方には、ガイドローラ40とドライブギア50とが第1連結コマ列21を挟んで対向するように設けられる。ドライブギア50は図示しない減速器を介してステッピングモータ330に接続される。第1連結コマ23の内面には連結方向に沿ってリニアギアが形成されている。複数の第1連結コマ23が直線状に整列されたときに互いのリニアギアは直線状につながって、長いリニアギアを構成する。ドライブギア50は、直線状のリニアギアにかみ合わされる。直線状につながったリニアギアはドライブギア50とともにラックアンドピニオン機構を構成する。
【0023】
アーム伸長時、モータ55が駆動し、ドライブギア50が順回転すると、第1連結コマ列21はガイドローラ40により、アーム中心軸と平行な姿勢となって、上部ローラ31と下部ローラ32との間に誘導される。第1連結コマ列21の移動に伴い、第2連結コマ列22は射出部30の後方に配置された図示しないガイドレールにより射出部30の上部ローラ31と下部ローラ32との間に誘導される。上部ローラ31と下部ローラ32との間に誘導された第1、第2連結コマ列21,22は互いに押圧される。これにより、第1、第2連結コマ列21,22による柱状体が構成される。射出部30は、第1、第2連結コマ列21,22を接合して柱状体を構成するとともに、その柱状体を上下左右に支持する。第1、第2連結コマ列21、22の接合による柱状体が射出部30により堅持されることで、第1、第2連結コマ列21,22の接合状態が保持される。第1、第2連結コマ列21、22の接合状態が維持されているとき、第1、第2連結コマ列21,22の屈曲は互いに拘束される。それにより第1、第2連結コマ列21、22は、一定の剛性を備えた柱状体を構成する。柱状体とは、第2連結コマ列22に第1連結コマ列21が接合されてなる柱状の棒体を言う。この柱状体は第2連結コマ24が第1連結コマ23とともに全体として様々な断面形状の筒状体に構成される。筒状体とは上下左右が天板、底板及び両側板で囲まれ、前端部と後端部とが開放された形状として定義される。第1、第2連結コマ列21、22の接合による柱状体は、結合コマ27が始端となって、第3移動軸RA3に沿って直線的に第3支持部11cの開口から外に向かって送り出される。
【0024】
アーム収縮時、モータ55が駆動し、ドライブギア50が逆回転されると、ドライブギア50と係合している第1連結コマ列21が第1支持体11a内に引き戻される。第1連結コマ列の移動に伴って、柱状体が第3支持体11c内に引き戻される。引き戻された柱状体は射出部30後方で分離される。例えば、柱状体を構成する第1連結コマ列21はガイドローラ40とドライブギア50とに挟まれ、柱状体を構成する第2連結コマ列22は重力により下方に引かれ、それにより第2連結コマ列22と第1連結コマ列21とは互いに離反される。離反された第1、第2連結コマ列21,22はそれぞれ屈曲可能な状態に復帰する。収納に際しては、射出部30から、第1支持体11a(基部1)の内部の収納部に第2連結コマ列22は内側に屈曲されて搬送され、第1連結コマ列21も第2連結コマ列22と同じ方向(内側)に屈曲されて搬送される。第1連結コマ列21は第2連結コマ列22に略平行な状態で格納される。
【0025】
図3は、
図1のロボットアーム機構を図記号表現により示す図である。ロボットアーム機構において、根元3軸を構成する第1関節部J1と第2関節部J2と第3関節部J3とにより3つの位置自由度が実現される。また、手首3軸を構成する第4関節部J4と第5関節部J5と第6関節部J6とにより3つの姿勢自由度が実現される。
【0026】
ロボット座標系Σbは第1関節部J1の第1回転軸RA1上の任意位置を原点とした座標系である。ロボット座標系Σbにおいて、直交3軸(Xb、Yb,Zb)が規定されている。Zb軸は第1回転軸RA1に平行な軸である。Xb軸とYb軸とは互いに直交し、且つZb軸に直交する軸である。手先座標系Σhは、手首部4に取り付けられたロボットハンド5の任意位置(手先基準点)を原点とした座標系である。例えば、ロボットハンド5が2指ハンドのとき、手先基準点(以下、単に手先という。)の位置は2指先間中央位置に規定される。手先座標系Σhにおいて、直交3軸(Xh、Yh,Zh)が規定されている。Zh軸は第6回転軸RA6に平行な軸である。Xh軸とYh軸とは互いに直交し、且つZh軸に直交する軸である。例えば、Xh軸は、ロボットハンド5の前後方向に平行な軸である。手先姿勢とは、手先座標系Σhのロボット座標系Σbに対する直交3軸各々周りの回転角(Xh軸周りの回転角(ヨウ角)α、Yh軸周りの回転角(ピッチ角)β、Zh軸周りの回転角(ロール角)γとして与えられる。
【0027】
第1関節部J1は、第1支持部11aと第2支持部11bとの間に配設されており、回転軸RA1を中心としたねじり関節として構成されている。回転軸RA1は第1関節部J1の固定部が設置される基台の基準面BPに垂直に配置される。
【0028】
第2関節部J2は回転軸RA2を中心とした曲げ関節として構成される。第2関節部J2の回転軸RA2は空間座標系上のXb軸に平行に設けられる。第2関節部J2の回転軸RA2は第1関節部J1の回転軸RA1に対して垂直な向きに設けられる。さらに第2関節部J2は、第1関節部J1に対して、第1回転軸RA1の方向(Zb軸方向)と第1回転軸RA1に垂直なYb軸方向との2方向に関してオフセットされる。第2関節部J2が第1関節部J1に対して上記2方向にオフセットされるように、第2支持体11bは第1支持体11aに取り付けられる。第1関節部J1に第2関節部J2を接続する仮想的なアームロッド部分(リンク部分)は、先端が直角に曲がった2つの鈎形状体が組み合わされたクランク形状を有している。この仮想的なアームロッド部分は、中空構造を有する第1、第2支持体11a、11bにより構成される。
【0029】
第3関節部J3は移動軸RA3を中心とした直動伸縮関節として構成される。第3関節部J3の移動軸RA3は第2関節部J2の回転軸RA2に対して垂直な向きに設けられる。第2関節部J2の回転角がゼロ度、つまりアーム部2の起伏角がゼロ度であってアーム部2が水平な基準姿勢においては、第3関節部J3の移動軸RA3は、第2関節部J2の回転軸RA2とともに第1関節部J1の回転軸RA1にも垂直な方向に設けられる。空間座標系上では、第3関節部J3の移動軸RA3はXb軸及びZb軸に対して垂直なYb軸に平行に設けられる。さらに、第3関節部J3は、第2関節部J2に対して、その回転軸RA2の方向(Yb軸方向)と、移動軸RA3に直交するZb軸の方向との2方向に関してオフセットされる。第3関節部J3が第2関節部J2に対して上記2方向にオフセットされるように、第3支持体11cは第2支持体11bに取り付けられる。第2関節部J2に第3関節部J3を接続する仮想的なアームロッド部分(リンク部分)は、先端が垂直に曲がった鈎形状体を有している。この仮想的なアームロッド部分は、第2、第3支持体11b、11cにより構成される。
【0030】
第4関節部J4は回転軸RA4を中心としたねじり関節として構成される。第4関節部J4の回転軸RA4は第3関節部J3の移動軸RA3に略一致するよう配置される。
第5関節部J5は回転軸RA5を中心とした曲げ関節として構成される。第5関節部J5の回転軸RA5は第3関節部J3の移動軸RA3及び第4関節部J4の回転軸RA4に略直交するよう配置される。 g
第6関節部J6は回転軸RA6を中心としたねじり関節として構成される。第6関節部J6の回転軸RA6は第4関節部J4の回転軸RA4及び第5関節部J5の回転軸RA5に略直交するよう配置される。第6関節部J6は手先効果器としてのロボットハンド5を左右に旋回するために設けられている。なお、第6関節部J6は、その回転軸RA6が第4関節部J4の回転軸RA4及び第5関節部J5の回転軸RA5に略直交する曲げ関節として構成されてもよい。
【0031】
このように複数の関節部J1−J6の根元3軸のうちの一つの曲げ関節部を直動伸縮関節部に換装し、第1関節部J1に対して第2関節部J2を2方向にオフセットさせ、第2関節部J2に対して第3関節部J3を2方向にオフセットさせることにより、本実施形態に係るロボット装置のロボットアーム機構は、特異点姿勢を構造上解消している。
【0032】
図4は、本実施形態に係るロボット装置の構成を示すブロック図である。本実施形態に係るロボット装置のロボットアーム機構の関節部J1,J2,J3,J4,J5、J6には、アクチュエータとして、それぞれステッピングモータ310,320,330,340,350,360が設けられている。ステッピングモータ310,320,330,340,350,360には、ドライバユニット210、220,230,240,250,260が電気的に接続されている。典型的には、ドライバユニット210、220,230,240,250,260は、それぞれ制御対象のステッピングモータに併設される。これらドライバユニット210、220,230,240,250,260は、同一の構成を有し、制御装置100からの制御信号に従って、制御対象のステッピングモータに対して同一の動作をする。ここでは、ドライバユニット210のみ説明し、他のドライバユニット220,230,240,250,260の説明は省略する。
【0033】
ステッピングモータ310は、ドライブシャフトが接続されたロータの周囲に複数のステータコイルを配置してなる。ステータコイルはスイッチング素子を介して電源回路212に接続される。これらスイッチング素子は、パルス信号発生部213から供給されるパルス信号によりオンされる。これらスイッチング素子を順番にオンすることでステッピングモータ310(ロータ)を所定のステップ角で順次回転させることができる。パルス信号を切り替える周期を変化させることでステッピングモータ310の回転速度を変化させる事ができる。この周期の逆数はパルス周波数と定義される。
【0034】
ドライバユニット210は、ステッピングモータ310の駆動および停止を制御する。ドライバユニット210は、制御部211と、電源回路212と、パルス信号発生部213と、ロータリーエンコーダ215と、カウンタ217とを有する。制御部211は、制御装置100から入力された指令値に従って、ドライバユニット210を統括して制御する。
【0035】
制御部211には制御装置100からステッピングモータ310の励磁電流値を表す電流指令コードが入力される。制御部211は、電源回路212に対して、電流指令コードに応じた制御信号を出力する。電源回路212は、電流可変のAC/DC変換方式電源回路であり、電流指令コードにより指定された励磁電流値の電流を発生する。発生された励磁電流はステッピングモータ310のステータコイルに供給される。また、制御部211には制御装置100から次の関節角度を表す位置指令コードが入力される。次の関節角度とは、所定の制御周期Δt(例えば、10ms)後の関節角度を指す。なお、関節部J1,J2,J4,J5、J6において、関節角度とは、基準位置からの正負の回転角度を表し、関節部J3において、伸張距離とは、最も収縮した状態からの距離を表す。関節角度と伸長距離とを関節変数と総称する。
【0036】
制御部211は、パルス信号発生部213に対して、位置指令コードに応じたパルス制御信号を出力する。具体的には、制御部211は、現在の関節変数から、制御装置100から入力された所定の制御周期△t後の関節角度との差をステップ角で除算することによりパルス数を決定し、制御周期△tをパルス数で除算しその逆数によりパルス周波数を決定する。制御部211は、決定したパルス条件(パルス数とパルス周波数)に対応するパルス制御信号をパルス信号発生部213に対して出力する。
【0037】
パルス信号発生部213は、制御部211から出力されたパルス制御信号に従って、予め決められた励磁シーケンスにより、各スイッチング素子に励磁パルスを供給する。これにより、関節部J1は、次の関節角度まで回転する。同様に、関節部J2,J4、J5,J6に対応するドライバユニット220,240,250,260各々には、次の関節角度を表す位置指令コードが、関節部J3に対応するドライバユニット230には次の伸張距離(直動変位)を表す位置指令コードが制御装置100から入力される。
【0038】
ロータリーエンコーダ215は、ステッピングモータ310のドライブシャフトに接続され、一定の回転角ごとにパルス信号(エンコーダパルス)を出力する。
カウンタ217は、ロータリーエンコーダ215から出力されたエンコーダパルスの数を回転方向に応じて加減算することによりカウント数を計算する。カウンタ217は、累積カウント数に関するデータを制御周期Δt毎に出力する。カウンタ217により出力された累積カウント数に関するデータは、ドライバユニットインターフェース111を介して制御装置100に入力される。
【0039】
温度センサ410は、ステッピングモータ310の温度に応じた信号を出力する。例えば、温度センサ410は、検出素子に熱電対を使用した表面温度測定用センサである。温度センサ410は、例えば、ステッピングモータ310の表面に磁石等により取り付けられる。温度センサ410はステッピングモータ310の温度に応じた電圧信号を所定の制御周期Δt毎に出力する。温度センサ410により出力された電圧信号は、温度センサインターフェース112を介して、制御装置100に入力される。
【0040】
制御装置100は、システム制御部101と、操作部インターフェース102と、記憶部103と、現在位置・姿勢計算部104と、指令値計算部105と、動作状態判定部106と、可動限界判定部107と、過熱状態判定部108と、脱調判定部109と、表示制御部110と、ドライバユニットインターフェース111と、温度センサインターフェース112と、出力部113と、速度超過判定部114とを有する。
制御装置100には、ドライバユニット210−260各々から、エンコーダパルスの累積カウント数に関するデータがドライバユニットインターフェース111を介して入力される。また、制御装置100には、温度センサ410―460各々から、ステッピングモータ310―360各々の温度に対応する電圧信号が温度センサインターフェース112を介して所定の制御周期毎(例えば、10ms毎)に入力される。
【0041】
制御装置100には、操作部インターフェース102を介して操作部60が接続されている。操作部60は、手首部4又はロボットハンド(手先効果器)の着目点の位置の変更(移動)、姿勢の変更およびそれら移動速度をオペレータが入力するための入力インターフェースとして機能する。例えば、操作部60は、ロボットハンドを移動させる最終目標位置と移動時間とを指定するためのジョイスティック等を備える。例えば、ジョイスティックが操作された方向、ジョイスティックが傾けられた角度、ジョイスティックの操作加速度に基づいて、ロボットハンドの最終目標位置と移動時間とが入力される。なお、操作部60を構成するこれらの入力デバイスは、他のデバイス、例えば、マウス、キーボード、トラックボールおよびタッチパネル等で代替が可能である。例えば、ダイレクトティーチング時のペンダントとしの操作部60は、典型的にはタッチパネル等が採用される。
【0042】
システム制御部101は、CPU(Central Processing Unit)と半導体メモリ等を有し、制御装置100を統括して制御する。システム制御部101には、制御/データバス120を介して各部が接続されている。
【0043】
記憶部103は、関節部J1−J6各々の関節変数(関節角度、J3では伸張距離(アームの原点からの送り出し長ともいう))の関節変数の閾値(可動閾値)のデータとステッピングモータ310―360各々の温度閾値のデータとステッピングモータ310−360各々の速度閾値のデータとを記憶する。
【0044】
関節変数の閾値は、好適には、関節部J1−J6各々の構造上の限界又はそれに近似する安全上あるいは制御上の限界値に設定される。温度閾値は、好適には、ステッピングモータの過熱を防止する温度限界値に設定される。速度閾値は、関節部J1、J2,J4−J6各々の回転角速度が、安全面または脱調防止のために設けられた上限値を超えない値に設定される。また、速度閾値は、関節部J3の伸縮速度が、安全面または脱調防止のために設けられた上限値を超えない値に設定される。関節変数の閾値と温度閾値と速度閾値とは、操作部60を介したオペレータ指示に従って、適宜変更することができる。
【0045】
現在位置・姿勢計算部104は、関節部J1−J6各々の現在の関節変数に基づいて、手先着目点の現在位置・姿勢を計算する。具体的には、現在位置・姿勢計算部104は、ドライバユニット210−260各々のカウンタにより計数された累積カウント数に、1カウントに対応するステップ角を乗算することにより、関節部J1−J6各々の現在の関節変数を計算する。現在位置・姿勢計算部104は、同次変換行列Kにパラメータとして関節部J1−J6各々の現在の関節変数を代入することにより、ロボット座標系Σbから見た手先着目点の現在位置・姿勢を計算する。同次変換行列Kは、手先座標系Σhとロボット座標系Σbとの関係を定義する行列式である。同次変換行列Kは、ロボットアーム機構を構成するリンク間の関係(リンク長とリンクのねじれ角)と関節部の軸間の関係(リンク間距離とリンクの間角度)とで決まる。現在位置・姿勢計算部104は、制御周期Δt毎に上述の計算処理を繰り返し行い、制御周期Δt毎の手先着目点の現在位置・姿勢を計算する。
【0046】
指令値計算部105は、ドライバユニット210〜260各々に対して指令値として与える、制御周期Δt経過後の関節変数ベクトルを計算する。なお、関節変数ベクトルとは、関節部J1−J6の6つの関節変数、つまり回転関節部J1、J2、J4−J6の関節角度と直動伸縮関節部J3の直動変位との6変数をいう。
【0047】
指令値計算部105は、手先着目点の現在位置・姿勢と手先の最終目標位置・姿勢とに基づいて、その間を結ぶ単位時間△t(制御周期、例えば10ms)毎の手先着目点の目標位置の点列を計算する。手先の現在位置・姿勢は、現在位置・姿勢計算部104による計算処理から与えられる。手先の最終目標位置・姿勢と移動時間とは、例えば操作部60を介してオペレータにより入力される。軌道計算部105は、予めプリセットされている、手先着目点の軌道計算式に、パラメータとして手先着目点の現在位置・姿勢と手先着目点の最終目標位置・姿勢を代入することにより、手先着目点の軌道(以下、手先軌道という)を計算し、その手先軌道上に単位時間△t毎の目標位置の点列を計算する。軌道計算方法としては任意の方法が採用される。
【0048】
指令値計算部105は、計算された複数の目標位置に対応する複数の関節変数ベクトルを計算する。指令計算部は、手先着目点の現在位置・姿勢と、単位時間Δt後の次の目標位置・姿勢と、単位時間Δtとに基づいて、手先速度を計算し、計算した手先速度をヤコビアン逆行列を用いて関節角速度に変換する。ヤコビアン逆行列は、手先着目点の位置・手先姿勢を表すベクトルの関節変数による編微分で与えられ、手先速度(手先位置・姿勢の微小変化)を関節角速度(関節角度・伸縮長の微小変化)に変換する行列である。ヤコビアン逆行列は、現在の関節変数ベクトルとアーム構造のリンクパラメータとにより計算される。指令値計算部105は、関節角速度に単位時間△tを乗算することにより、単位時間△tの間の各関節部の変位量を計算し、計算した各関節部の変位量を移動直前(現在)の関節変数ベクトルに加算することにより、単位時間△t経過後の関節変数ベクトルを計算する。
【0049】
出力部113は、システム制御部101の制御に従って、指令値計算部105で計算された関節部J1−J6各々の指令値(関節変数)を、ドライバユニット210−260各々に対して出力する。
【0050】
動作状態判定部106は、関節部J1−J6各々が動作中か否かを判定する。具体的には、動作状態判定部106は、関節部J1の関節角度を所定周期で繰り返し入力し、関節部J1の現在の関節角度を直前(1周期前)の関節角度に対して比較する。直前の関節角度に対して現在の関節角度が変位していないとき、動作状態判定部106は、関節部J1が「停止中」であると判定し、関節部J1が停止中であることを通知する動作判定信号を出力する。一方、直前の関節角度に対して現在の関節角度が変位しているとき、動作状態判定部106は、関節部J1が「動作中」であると判定し、関節部J1が動作中であることを通知する動作判定信号を出力する。同様の手法で、動作状態判定部106は、他の関節部J2−J6各々が動作中か否かを判定する。動作状態判定部106から出力される動作判定信号には、関節部を特定するためのコードと、動作状態(「動作中」か「停止中」か)を表すコードとが含まれる。
【0051】
可動限界判定部107は、関節部J1−J6各々が可動限界か否かを判定する。関節部J3の可動限界とは、関節部J3のアーム部2が予め設定された伸張距離(直動変位)の閾値まで伸張された状態をいう。伸張距離の閾値は、アーム部2を伸張できる構造上の最長距離に設定されていてもよいし、アーム部2の伸縮制御を確実に継続するために、構造上の最長距離よりもわずかに短い安全上あるいは制御上の限界距離に設定されていてもよい。構造上の最長距離とは、第1連結コマ列21の最後尾の第1連結コマ23のリニアギアがドライブギア50に噛み合わされるまで、アーム部2が伸張された距離に対応する。関節部J1,J2,J4,J5,J6の可動限界とは、関節部J1,J2,J4,J5,J6各々が予め設定された関節角度の閾値まで回転された状態をいう。関節角度の閾値は、各関節部が回転できる構造上の最大角度に設定されていてもよいし、各関節部の回転制御を確実に継続するために、構造上の最大角度よりもわずかに小さく設定されていてもよい。
【0052】
具体的には、可動限界判定部107は、関節部J1の現在の関節角度を関節角度の閾値に対して比較する。現在の関節角度が閾値に達していたとき、可動限界判定部107は、関節部J1が「可動限界に達した」と判定し、関節部J1が可動限界であることを通知する可動限界判定信号を出力する。同様の手法で、可動限界判定部107は、関節部J2−J6各々が可動限界か否かを判定する。可動限界判定部107から出力される可動限界判定信号には、可動限界に達した関節部を特定するためのコードが含まれる。
【0053】
過熱状態判定部108は、関節部J1−J6各々のステッピングモータが過熱状態(オーバーヒート)か否か、つまり関節部J1−J6各々のステッピングモータが定常温度範囲を超過しているか否かを判定する。具体的には、過熱状態判定部108は、そのROMに温度センサ410の出力電圧と温度との対応表のデータを保持する。過熱状態判定部108は、温度センサ410により出力された電圧信号を、上述の対応表を参照して温度に変換する。この温度は、温度センサ410により計測されたステッピングモータ310の現在の温度に対応する。過熱状態判定部108は、ステッピングモータ310の現在の温度を温度閾値に対して比較する。現在の温度が温度閾値に達したとき、過熱状態判定部108は、ステッピングモータ310が「過熱状態」であると判定し、ステッピングモータ310が過熱状態であることを通知する過熱判定信号を出力する。同様の手法で、過熱状態判定部108は、関節部J2−J6にそれぞれ対応するステッピングモータ320−360各々が過熱状態か否かを判定する。過熱状態判定部108から出力される過熱判定信号には、過熱状態のステッピングモータを備える関節部を特定するためのコードが含まれる。
【0054】
脱調判定部109は、関節部J1−J6各々のステッピングモータが脱調したか否かを判定する。ステッピングモータ310−360各々には、指令値として制御周期Δt毎に繰り返し関節変数が与えられる。したがって、脱調判定部109は、制御周期Δt経過後に、ステッピングモータ310―360各々が指令値とおりの関節変数まで変位したか否かによって、脱調状態であるか否かを判定することができる。具体的には、脱調判定部109は、関節部J1の現在の関節変数をステッピングモータ310に直前(1周期前)に与えた指令値(関節変数)に対して比較する。現在の関節変数は、現在位置・姿勢計算部104による計算処理から得られる。1周期前に指令値として与えた関節変数に対して現在の関節変数が一致していないとき、脱調判定部109は、関節部J1のステッピングモータ310が「脱調した」と判定し、脱調判定信号を出力する。同様の手法で、脱調判定部109は、関節部J2−J6にそれぞれ対応するステッピングモータ320−360が脱調したか否かを判定する。脱調判定部109から出力される脱調判定信号には、脱調した関節部を特定するためのコードが含まれる。
【0055】
アーム部2の先端に取り付けられたロボットハンド5の手先の移動速度に対して安全上の観点から移動速度の上限が事前に設定されている。この手先速度の上限値に従って関節部J1−J6各々に対して回転角速度の上限値が事前に設定されている。
【0056】
速度超過判定部114は、指令値計算部105で計算された指令値に基づいて、関節部J1−J6の回転軸の回転角速度が、脱調防止、又は安全上の観点から事前に設定されたそれぞれの関節角速度の上限値を超過するか否かを判定する。ここでは関節部J1の回転軸が、脱調防止又は安全上設けられた速度上限値を超過するか否かを判定する例として説明する。他の関節部J2−J6の関節速度超過の判定処理についても同様である。
【0057】
指令値計算部105ではペンダント(操作部)60の例えばジョイスティックに対するオペレータの移動操作(操作角度、操作方向)に応じた手先の移動速度、移動方向を実現するために一定の制御周期△t(例えば10ms)毎に関節部J3に対する指令値(関節位置(基準位置からの関節角度))を計算する。出力部113は操作開始からの時間経過に従って制御周期△t毎に各時刻の指令値を順番に出力する。速度超過判定部114は、時間軸上で前後する時刻の一対の指令値(関節角度)の差、つまり制御周期△tの間に変位する角度幅を計算し、制御周期Δtで除算することにより、指令値によりステッピングモータ310に指令する回転角速度を計算する。速度超過判定部114は、計算した回転角速度を、関節部J3に対して予め設定されている速度閾値に比較する。計算した回転角速度が速度閾値を超過したとき、速度超過判定部114は「関節部J3の回転角速度が上限値を超過した」と判定し、その指令値を出力する前に速度超過信号を出力する。
【0058】
同様の手法で、速度超過判定部114は、関節部J2−J6各々の速度(J2,J4−J5では回転角速度、J3では伸縮速度)が予め設定された上限値を超過するか否かを判定する。速度超過判定部114から出力される速度超過判定信号には、速度が超過した関節部を特定するためのコードが含まれる。
【0059】
システム制御部101は、関節部J1−J6各々の状態に応じた通知画面を発生し、表示制御部110のフレームメモリに書き込む。表示制御部110は、フレームメモリに格納された画像のデータを読み出し、表示部41に表示する。表示部41としては、典型的に例えばCRTディスプレイや液晶ディスプレイ、有機ELディスプレイ、プラズマディスプレイ等が挙げられる。
【0060】
図5は、
図4の表示部41に表示される、関節部J1−J6の状態を通知するための通知画面400の一例を示す図である。システム制御部101は、動作判定信号、可動限界判定信号、過熱判定信号、脱調判定信号及び速度超過判定信号の判定結果に従って、関節部J1−J6それぞれの停止中/動作中の区別、可動限界に達しているか否か、異常が発生しているか否か、発生している異常を特定する情報(エラーコード)を一覧で表示する通知画面400を構成し表示部41に表示させる。
【0061】
記憶部103には、通知画面400のテンプレートデータ、上記各種文字列データが記憶されている。
図5に示すように、画面テンプレートには、関節を表す項目401−1、動作状態を表す項目401−2、可動状態を表す項目401−3、エラーコード表示を表す項目401−4が行方向に配列されている。また、関節項目401−1の下方には、関節部J1−J6を区別する文字列402−1〜402−6が列方向に配列されている。項目401−3の下方には、関節部J1−J6それぞれの動作状態403−1〜403−6が停止中/動作中を区別する文字列により配列される。同様に、項目401−3の下方には、関節部J1−J6それぞれが可動限界に達しているか否かを表記する文字列404−1〜404−6が配列される。ここでは可動限界に達している場合にのみ「可動限界」との文字列を表示するものとしている。項目401−4の下方には、関節部J1−J6それぞれで発生した異常を特定するエラーコード405−1〜405−6が配列されている。
【0062】
システム制御部101は、動作判定信号に含まれる関節部J1−J6各々を表すコードと関節部J1−J6各々の動作状態を表すコードとに基づいて、記憶部103から関節部J1−J6各々の動作状態を表す文字列データを読み出し、読み出した文字列を画面テンプレートの動作状態表示エリア403−1〜403−6各々に重ねた通知画面400のデータを発生する。例えば、動作判定信号に関節部J1が停止中であることを表すコードが含まれているとき、システム制御部101は、
図5に示すように画面テンプレートの動作状態表示エリア403−1に停止中を表す文字列をレイアウトした通知画面400のデータを発生する。同様に、動作判定信号に関節部J2が動作中であることを表すコードが含まれているとき、システム制御部101は、
図5に示すように画面テンプレートの動作状態表示エリア403−2に動作中を表す文字列をレイアウトした通知画面400のデータを発生する。
【0063】
システム制御部101は、可動限界判定信号に含まれる関節部を表すコードに基づいて、画面テンプレートの可動限界に達した関節部に対応する可動状態表示エリアに、可動限界を表す文字列をレイアウトした通知画面400のデータを発生する。例えば、可動限界判定信号に関節部J3を表すコードが含まれているとき、システム制御部101は、
図5に示すように画面テンプレートの可動状態表示エリア404−3に可動限界に達していることを表す文字列をレイアウトした通知画面400を発生する。システム制御部101は、脱調判定信号に含まれる関節部を表すコードに基づいて、画面テンプレートの脱調が発生した関節部に対応するエラーコード表示エリアに、脱調発生に対応するエラーコードを表す文字列をレイアウトした通知画面400のデータを発生する。例えば、脱調判定部109から関節部J5を表すコードを含む脱調判定信号が出力されたとき、システム制御部101は、
図5に示すように画面テンプレートのエラーコード表示エリア405−5に脱調に対応するエラーコードを表す文字列をレイアウトした通知画面400のデータを発生する。システム制御部101は、速度超過判定信号に含まれる関節部を表すコードに基づいて、画面テンプレートの速度超過する指令値が入力された関節部に対応するエラーコード表示エリアに、速度超過に対応するエラーコードを表す文字列をレイアウトした通知画面400のデータを発生する。例えば、速度超過判定部114から関節部J1を表すコードが含まれる速度超過信号が出力されたとき、システム制御部101は、
図5に示すように画面テンプレートのエラーコード表示エリア405−1に速度超過に対応するエラーコードを表す文字列をレイアウトした通知画面400のデータを発生する。システム制御部101は、過熱判定信号に含まれる関節部を表すコードに基づいて、画面テンプレートの過熱状態の関節部に対応するエラーコード表示エリアに、過熱状態を表す文字列をレイアウトした通知画面400のデータを発生する。
以上説明した本実施形態に係るロボット装置によれば、
図1に示すように、表示部41は、手首部4の第6関節部J6を覆う円筒形状のカバーの側面に取り付けられている。この表示部41には、関節部J1−J6各々の状態を表す通知画面が表示される。オペレータは、通知画面を視認することで、関節部J1−J6各々の状態を把握することができる。例えば、オペレータは、関節部が可動限界まで回転したか、関節部のドライバユニットに指令値として不適切な値が入力されたか、関節部が脱調してしまったか等を把握することができる。例えば、
図5に示す通知画面を視認することで、オペレータは、関節部J3のアーム部2の伸張操作ができない理由が、ロボット装置側の異常ではなく、関節部J3のアーム部2が限界まで伸張されてしまったためであるのを把握することができる。また、オペレータは、関節部J1が動かない理由が、関節部J1のドライバユニット210に予め設定した速度の上限値を超過してしまう指令値が入力されたためであることを把握することができる。また、オペレータは、関節部J5が動かない理由が、関節部J5が脱調してしまったからであることを把握することができる。
【0064】
このように、ロボットアームが動かなくなったときに、オペレータは、ステッピングモータの過熱に代表されるロボット装置側の異常により、ロボットアームの操作ができないのか、関節部J1−J6各々が可動限界に達してしまった、速度超過する指令値を与えていた、脱調が発生した等のロボット装置側の異常とは言えない理由でロボットアームを操作できないのか、を手首部4に設けられた表示部41の表示画面を視認することで把握することができる。そのため、ダイレクトティーチングなどの、オペレータが手先着目点に注視して操作部60を操作する場合において、オペレータは、ロボットアームが動かなくなったときに、視線を手先から移動させることなく、その理由を把握することができる。すなわち、本実施形態に係るロボット装置は、ロボットアームが動かない事態が生じたときのオペレータの作業負担を軽減させることができる。また、ロボットアームが動かなくなった理由が、ロボット装置側の異常とは言えない理由であれば、オペレータはその理由に応じた作業を行うことができる。例えば、ステッピングモータに脱調が発生したために、ロボットアームが動かなくなったのであれば、オペレータはロボットハンドに把持させるワークを変更等すればよい。また、速度超過する指令値を与えていたために、ロボットアームが動かなくなったのであれば、指令値の変更等をすればよい。関節部が可動限界に達していたのであれば、それを戻す方向には関節部を変位させることができる。
【0065】
(第1変形例)
上述したロボット装置では、表示部41は第6関節部J6を覆う円筒形状のカバーの側面に取り付けられていた。しかしながら、表示部41の配置はこれに限定されない。表示部41は、ロボット装置の設置位置に対するオペレータの位置やオペレータの嗜好に応じた位置に設けられればよい。また、手首部4の姿勢が変化してもオペレータによる表示部41の視認性の低下を防ぐために、手首部4に複数の表示部41が設けられてもよい。第1、第2、第3、第4、第5変形例は、表示部41の他の配置例に関するものである。
【0066】
図6は、本実施形態の第1変形例に係るロボットアーム機構の表示部42、43の位置を示す斜視図である。
図6に示すように、表示部42、43は、第5関節部J5を覆うカバーの両端部分に設けられてもよい。表示部42、43は、それぞれの表示中心軸が第5回転軸RA5に平行に、且つ互いに逆向き設けられる。左右両側のいずれからでも表示画面を視認することができる。
【0067】
(第2変形例)
図7は、本実施形態の第2変形例に係るロボットアーム機構の表示部44,45の位置を示す斜視図である。
図7に示すように、表示部44,45は、第5関節部J5と第6関節部J6とを接続するV字形のリンクのカバーの側面に設けられてもよい。表示部44は、その表示中心軸の向きが表示部45の表示中心軸と異なるように設けられる。
【0068】
(第3変形例)
図8は、本実施形態の第3変形例に係るロボットアーム機構の表示部44の位置を示す斜視図である。
図8に示すように、表示部46は第6関節部J6を覆う円筒形状のカバーの一端面に設けられてもよい。なお他方の端面にはハンド部が装着される。
【0069】
(第4変形例)
図9は、本実施形態の第4変形例に係るロボットアーム機構の表示部の位置を示す斜視図である。
図9に示すように、表示部47,48は、それぞれ第4関節部J4を覆うカバーの表面と裏面とにそれぞれ取り付けられてもよい。表示部47、48は第4回転軸RA4と第5回転軸RA5とで規定される平面を挟んで対称の位置に配置される。アーム2が起伏したとしてもその角度に関わらずオペレータは表示部47,48の一方を視認する事ができる。
【0070】
(第5変形例)
図10は、本実施形態の第6変形例に係るロボットアーム機構の表示部52の位置を示す斜視図である。表示部52は、手首部4を覆うカバーではなく、関節部J1−J3各々を覆うカバーに設けられてもよい。例えば、
図10に示すように、表示部52は、第3関節部J3を覆うカバーの、射出口の近傍に設けられる。
【0071】
(第6変形例)
上述したロボット装置における表示部の複数の位置のうち、少なくとも2つの位置に表示部が設けられてもよい。これにより、手首部4の姿勢変化による表示画面の視認性の低下を防ぐことができる。
図11は、本実施形態の第6変形例に係るロボットアーム機構の表示部49,50,51の位置を示す斜視図である。
図11に示すように、表示部49,50は、第4変形例の表示部47,48とそれぞれ一致する位置に設けられる。表示部51は、本実施形態の表示部41と一致する位置に設けられる。
【0072】
(第7変形例)
上述したロボット装置では、関節部J1−J6各々の状態を表す通知画面を表示画面に表示することにより、オペレータに対して関節部J1−J6各々の状態を通知していた。しかしながら、ロボット装置は、表示デバイスとして、オペレータに対して関節部J1−J6各々の状態を通知するためのインジケータランプを備えてもよい。第7,8変形例は、インジケータランプの配置例に関するものである。
【0073】
図12は、本実施形態の第7変形例に係るロボットアーム機構のインジケータランプ71,72,73の位置を示す斜視図である。
図12に示すように、関節部J1の近傍には、複数、ここでは3つのインジケータランプ71,72、73からなるインジケータランプセット74が設けられている。例えば、インジケータランプ71、72、73は、ランプの色、ランプの点滅等の表示態様の変化により、関節部J1の様々な状態を区別してオペレータに対して通知する。例えば、インジケータランプ71が青色に点灯しているとき、関節部J1が「動作中」であることを表し、赤色に点灯しているとき、関節部J1が「停止中」であることを表す。インジケータランプ72が青色に点灯しているとき、関節部J1が可動限界ではないことを表し、赤色に点灯しているとき、関節部J1が可動限界であることを表す。インジケータランプ73が青色に点灯しているとき、関節部J1のステッピングモータ310が過熱状態でないことを表し、赤色に点灯しているとき、関節部J1のステッピングモータ310が過熱状態であることを表す。
【0074】
関節部J1の近傍に配置されたインジケータランプセット74と同様に、関節部J2−J6各々の近傍には、それぞれ対応する関節部の動作状態を提示するためのインジケータランプセット75−79が配置されている。これにより、オペレータは、ロボットアームが動かないとき、関節部J1−J6にそれぞれ対応する複数のインジケータセット74−79各々のランプの色とランプの表示態様との変化により、直ちにその原因を把握することができる。
【0075】
(第8変形例)
図13は、本実施形態の第8変形例に係るロボットアーム機構のインジケータランプ80の位置を示す斜視図である。
図13に示すように、手首部4の第6関節部J6を覆う円筒形状のカバーの側面に1つのインジケータランプ80が設けられてもよい。インジケータランプ80が青色に点灯しているとき、関節部J1−J6各々が可動限界に達してなく、且つ関節部J1−J6各々のステッピングモータが過熱状態でない、つまり関節部J1−J6各々が操作可能状態であることを表す。インジケータランプ80が黄色に点灯しているとき、関節部J1−J6のうち、少なくとも1つの関節部が可動限界であることを表す。インジケータランプ80が赤色に点灯しているとき、関節部J1−J6のうち、少なくとも1つの関節部に対応するステッピングモータが過熱状態であることを表す。インジケータランプ80が赤色と黄色とで交互に点滅しているとき、関節部J1−J6のうち少なくとも1つの関節部が可動限界で、関節部J1−J6のうち少なくとも1つの関節部に対応するステッピングモータが過熱状態であることを表す。これにより、オペレータは、ロボットアームが動かせないとき、オペレータは、これらランプの色とランプの表示態様との変化により、その原因を把握することができる。
【0076】
なお、ロボット装置は、関節部J1−J6各々の状態を通知するための表示デバイスとして、表示部とインジケータランプとの両方を備えてもよい。例えば、手首部4に表示部が設けられ、関節部J1−J6のうち頻繁に駆動される関節部には、インジケータランプセットが設けられてもよい。これにより、オペレータは、インジケータランプにより、関節部の状態の変化を察知することができ、その理由を表示部を視認することで把握することができる。
【0077】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。