JP2018149605A - ロボット装置 - Google Patents

ロボット装置 Download PDF

Info

Publication number
JP2018149605A
JP2018149605A JP2015152591A JP2015152591A JP2018149605A JP 2018149605 A JP2018149605 A JP 2018149605A JP 2015152591 A JP2015152591 A JP 2015152591A JP 2015152591 A JP2015152591 A JP 2015152591A JP 2018149605 A JP2018149605 A JP 2018149605A
Authority
JP
Japan
Prior art keywords
torque
time
stepping motor
command value
joint
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.)
Pending
Application number
JP2015152591A
Other languages
English (en)
Inventor
尹 祐根
Wookeun Yoon
祐根 尹
一輝 飯田
Kazuki Iida
一輝 飯田
順央 川口
Yorihisa Kawaguchi
順央 川口
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.)
Life Robotics Inc
Original Assignee
Life Robotics Inc
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 Life Robotics Inc filed Critical Life Robotics Inc
Priority to JP2015152591A priority Critical patent/JP2018149605A/ja
Priority to PCT/JP2016/071639 priority patent/WO2017022533A1/ja
Priority to TW105123765A priority patent/TW201703949A/zh
Publication of JP2018149605A publication Critical patent/JP2018149605A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • B25J9/12Programme-controlled manipulators characterised by positioning means for manipulator elements electric
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P8/00Arrangements for controlling dynamo-electric motors rotating step by step
    • H02P8/36Protection against faults, e.g. against overheating or step-out; Indicating faults
    • H02P8/38Protection against faults, e.g. against overheating or step-out; Indicating faults the fault being step-out

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Power Engineering (AREA)
  • Manipulator (AREA)
  • Control Of Stepping Motors (AREA)

Abstract

【課題】ロボット装置の関節トルクの適正化を簡易な作業でもって実現すること。【解決手段】ロボット装置は複数の関節部J1−J6を有する多関節アーム機構を装備する。モータドライバ210は、関節部の動力源としてのステッピングモータ310に対するパルス信号を位置又は速度に関する指令値に従って発生させ、トルク指令値に従って励磁電流を発生させる。脱調検知部217はステッピングモータの脱調状態を検知する。トルクキャリブレーション制御部110はアーム機構の手首基準点又は手先基準点を予定軌道の始点から終点まで移動させ、予定軌道上の位置又は区間においてワークに対する作業を実行させるために指令値をトルク指令値とともにモータドライバに所定周期で繰り返し供給させ、ステッピングモータの脱調状態に基づいてトルク指令値を更新するトルクキャリブレーション処理を繰り返す。【選択図】 図4

Description

本発明の実施形態はロボット装置に関する。
基板等の様々なワークをハンドリングする垂直多関節アーム構造を有するロボット装置の適用範囲が産業現場だけでなく医療介護現場その他多くの現場に拡大しようとしている。多くのロボット装置では事前のティーチングによりロボット装置に予定軌道が設定され、またこの軌道上の複数の時点で必要な関節トルク(以下単にトルクという)が計算される。トルク計算にはワーク質量、各関節にかかる質量、リンク長、手先加速度、慣性モーメント等の変数に従って綿密に計算することが要求される。
従来のトルクの計算処理は非常に専門性が高く、専門員が不在の状況、特にロボット装置が設置されている現場においては適時にトルクを設定することができなかった。
またトルクが不足しているときは予定したタスクタイムを達成できなくなったり、ワークを取り落としてしまう事態が生じることがあり、その一方で、トルクを過度に高く設定したときは安全性が低下する恐れが無いとはいえない。
目的は、ロボット装置の関節トルクの適正化を簡易な作業でもって実現することにある。
本実施形態にかかるロボット装置は複数の関節部を有する多関節アーム機構を装備する。モータドライバは、関節部の動力源としてのステッピングモータに対するパルス信号を位置又は速度に関する指令値に従って発生させ、トルク指令値に従って励磁電流を発生させる。脱調検知部はステッピングモータの脱調状態を検知する。トルクキャリブレーション制御部はアーム機構の手首基準点又は手先基準点を予定軌道の始点から終点まで移動させ、予定軌道上の位置又は区間においてワークに対する作業を実行させるために指令値をトルク指令値とともにモータドライバに所定周期で繰り返し供給させ、ステッピングモータの脱調状態に基づいてトルク指令値を更新するトルクキャリブレーション処理を繰り返す。
図1は、本実施形態に係るロボット装置のロボットアーム機構の外観斜視図である。 図2は、図1のロボットアーム機構の内部構造を示す側面図である。 図3は、図1のロボットアーム機構の構成を図記号表現により示す図である。 図4は、本実施形態によるロボット装置の構成を示すブロック図である。 図5は、図4のタスクプログラム記憶部に記憶されているタスクプログラムで規定されている手先軌道を示す平面図である。 図6は、図4のタスクコントローラ106の処理を説明するための補足説明図である。 図7は、図4の脱調フラグマップ発生部107により発生される脱調フラグマップの一例を示す図である。 図8は、図4の脱調フラグマップ発生部107により発生されるフラグを説明するための補足説明図である。 図9は、図4のトルクマップ記憶部108に記憶されているトルクマップの一例を示す図である。 図10は、本実施形態に係るロボット装置のトルクキャリブレーション処理を示すフローチャートである。 図11は、図10の工程S7を説明するための補足説明図である。 図12は、図10の工程S7のトルクマップの更新規則を説明するための図である。 図13は、図10の工程S7のトルクマップの更新規則を説明するための図である。
以下、図面を参照しながら本実施形態に係るロボット装置を説明する。ロボット装置は、ステッピングモータをアクチュエータとする関節部を有するロボットアーム機構を備える。当該ロボット装置としては、垂直多関節アーム機構、特に複数の関節部のうち一が直動伸縮関節を備えた垂直多関節アーム機構を例に説明する。以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
図1は、本実施形態に係るロボット装置の外観斜視図である。ロボット装置を構成するロボットアーム機構は、略円筒形状の基部10と基部10に接続されるアーム部2とアーム部2の先端に取り付けられる手首部4とを有する。手首部4には図示しないアダプタが設けられている。例えば、アダプタは後述の第6回転軸RA6の回転部に設けられる。手首部4に設けられたアダプタには、ハンド装置3が取り付けられる。
ロボットアーム機構は、複数、ここでは6つの関節部J1,J2,J3,J4,J5,J6を有する。複数の関節部J1,J2,J3,J4,J5,J6は基部10から順番に配設される。一般的に、第1、第2、第3関節部J1,J2,J3は根元3軸と呼ばれ、第4、第5、第6関節部J4,J5,J6はハンド装置3の姿勢を変化させる手首3軸と呼ばれる。手首部4は第4、第5、第6関節部J4,J5,J6を有する。根元3軸を構成する関節部J1,J2,J3の少なくとも一つは直動伸縮関節である。ここでは第3関節部J3が直動伸縮関節部、特に伸縮距離の比較的長い関節部として構成される。アーム部2は直動伸縮関節部J3(第3関節部J3)の伸縮部分を表している。
第1関節部J1は基台面に対して例えば垂直に支持される第1回転軸RA1を中心としたねじり関節である。第2関節部J2は第1回転軸RA1に対して垂直に配置される第2回転軸RA2を中心とした曲げ関節である。第3関節部J3は、第2回転軸RA2に対して垂直に配置される第3軸(移動軸)RA3を中心として直線的にアーム部2が伸縮する関節である。
第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を中心とした曲げ関節である。
基部10を成すアーム支持体(第1支持体)11は、第1関節部J1の第1回転軸RA1を中心に形成される円筒形状の中空構造を有する。第1関節部J1は図示しない固定台に取り付けられる。第1関節部J1が回転するとき、アーム部2は第1支持体11の軸回転とともに左右に旋回する。なお、第1支持体11が接地面に固定されていてもよい。その場合、第1支持体11とは独立してアーム部2が旋回する構造に設けられる。第1支持体11の上部には第2支持部12が接続される。
第2支持部12は第1支持部11に連続する中空構造を有する。第2支持部12の一端は第1関節部J1の回転部に取り付けられる。第2支持部12の他端は開放され、第3支持部13が第2関節部J2の第2回転軸RA2において回動自在に嵌め込まれる。第3支持部13は第1支持部11及び第2支持部に連通する鱗状の外装からなる中空構造を有する。第3支持部13は、第2関節部J2の曲げ回転に伴ってその後部が第2支持部12に収容され、また送出される。ロボットアーム機構の直動伸縮関節部J3(第3関節部J3)を構成するアーム部2の後部はその収縮により第1支持部11と第2支持部12の連続する中空構造の内部に収納される。
第3支持部13はその後端下部において第2支持部12の開放端下部に対して第2回転軸RA2を中心として回動自在に嵌め込まれる。それにより第2回転軸RA2を中心とした曲げ関節部としての第2関節部J2が構成される。第2関節部J2が回動するとき、アーム部2は第2回転軸RA2を中心に垂直方向に回動、つまり起伏動作をする。
第4関節部J4は、アーム部2の伸縮方向に沿ったアーム中心軸、つまり第3関節部J3の第3移動軸RA3に典型的には接する第4回転軸RA4を有するねじり関節である。第4関節部J4が回転すると、手首部4及び手首部4に取り付けられたハンド装置3は第4回転軸RA4を中心に回転する。第5関節部J5は、第4関節部J4の第4回転軸RA4に対して直交する第5回転軸RA5を有する曲げ関節部である。第5関節部J5が回転すると、第5関節部J5から先端にかけてハンド装置3とともに上下(第5回転軸RA5を中心に垂直方向)に回動する。第6関節部J6は、第4関節部J4の第4回転軸RA4に直交し、第5関節部J5の第5回転軸RA5に垂直な第6回転軸RA6を有する曲げ関節である。第6関節部J6が回転すると、ハンド装置3は左右に旋回する。
上記の通り手首部4のアダプタに取り付けられたハンド装置3は、第1、第2、第3関節部J1.J2.J3により任意位置に移動され、第4、第5、第6関節部J4、J5、J6により任意姿勢に配置される。特に第3関節部J3のアーム部2の伸縮距離の長さは、基部10の近接位置から遠隔位置までの広範囲の対象にハンド装置3を到達させることを可能にする。第3関節部J3はそれを構成する直動伸縮機構により実現される直線的な伸縮動作とその伸縮距離の長さとが特徴的である。
(ハンド装置3)
ロボット装置1はハンド装置3を備える。ハンド装置3は、チューブ容器80を把持によりピッキングするための把持機構と紙箱を吸着によりピッキングするための吸着機構とを備える。具体的には、ハンド装置3は、ハンド本体31を有する。ハンド本体31は角柱形状を有し、その上方端面に取り付け部を備える。この取り付け部を介して、ハンド装置3は手首部4のアダプタに装着される。ハンド本体31の下方には、エアチャック構造32が取り付けられる。エアチャック構造32は一対のスライダ33を有する。一対のスライダ33は接近/離反自在に支持される。一対のスライダ33には一対の把持部34と一対の吸着部35とがそれぞれ取り付けられる。
把持部34は、外観略円柱形状を有する。円柱状体の先端部分には、弾性材料として例えばシリコン樹脂で成形された円筒状体の吸着パッドが取り付けられている。吸着パッドの先端面をワークと接触する接触面という。一対の把持部34は、円筒状体の吸着パッドの軸方向が、スライド方向に平行になるように、且つ互いの吸着パッドの接触面が対向するようにスライダ33に取り付けられる。吸着パッドの後方部分は、エジェクタ装置の出力部に接続される。吸着パッドの胴体部分は、径方向外側に突出した山部と径方向内側に窪んだ谷部とが交互に連続する蛇腹形状に成形される。把持部33の吸着パッドの胴体部分を蛇腹形状に成形することで、ワークを狭持する際のワークへの過度な力を吸収し、かつワークの形状にあわせて蛇腹部分が変形することで接触面をワーク表面に密着させることを実現する。このように、把持部34の吸着パッドに蛇腹部分が構成されることで、ハンド装置3は表面形状の異なる複数種類のワークを吸着パッドで把持することができる。
吸着部35は弾性材料として例えばシリコン樹脂で円筒状体に成形される。吸着部35は円筒状体の軸方向の向きに対象を吸着する。この吸着方向がスライド方向に垂直になるように、吸着部35はスライダ33に取り付けられる。吸着部35の後方部分は、エジェクタ装置の出力部に接続される。吸着部35の胴体部分は、径方向外側に突出した山部と径方向内側に窪んだ谷部とが交互に連続する蛇腹形状に成形される。吸着部35の胴体部分を蛇腹形状に成形することで、ワークに接触する際のワークへの過度な力を吸収し、かつワークの形状にあわせて蛇腹部分が変形することで接触面をワーク表面に密着させることを実現する。このように、吸着部35の胴体部分を蛇腹形状に構成することで、ハンド装置3は表面形状の異なる複数種類のワークを吸着部35で吸着することができる。
把持部34と吸着部35とは真空吸着機能と真空破壊機能とを有する。把持部34と吸着部35とにはそれぞれエアチューブが接続されている。エアチューブ各々はエアポンプ(図示しない)に接続されている。エアポンプとしては圧縮式と真空式のいずれでも良いがここでは圧縮ポンプとして説明する。以下、把持部34を例に真空吸着機能と真空破壊機能について説明する。
把持部34の吸着パッドとエアポンプとの間は負圧経路と正圧経路との2系統の配管経路で接続される。負圧経路には負圧弁とエジェクタ装置とが介在される。正圧経路には正圧弁が介在される。負圧弁と正圧弁とは電磁弁である。電磁弁ドライバ(図示しない)により負圧弁の開閉と正圧弁の開閉とは逆相に制御される。負圧弁が開放され正圧弁が閉じられているとき、負圧経路が確保される。負圧経路が確保されているとき把持部34の吸着パッドの内部は負圧に導入される。正圧弁が開放され負圧弁が閉じられているとき、正圧経路が確保される。正圧経路が確保されているとき把持部34の吸着パッドの内部は正圧に導入される。
真空吸着機能がONされると、電磁弁ドライバの制御に従って負圧弁が開放され正圧弁が閉鎖される。エアポンプで発生された圧縮空気は、負圧弁と把持部34の吸着パッドとの間に介在されたエジェクタに供給される。エジェクタは吸気口とノズルと排気口とを有する。吸気口には吸着パッドの接続口が接続されている。エジェクタに供給された圧縮空気は、ノズルから噴射され高速な空気の束となって排気口から排気される。すると、エジェクタのチャンバの内圧が低下し、これにより吸気口から空気が吸い込まれる。吸気口から吸いこまれた空気は、圧縮空気とともに排気口から排気される。これにより、吸気口に接続された吸着パッドに負圧が発生する。エジェクタに通常装備されている真空破壊機能がONされると、電磁弁ドライバの制御に従って負圧弁が閉鎖され、正圧弁が開放される。それにより吸着パッド、エジェクタ及びエアポンプらのエアサイクルが逆転し、エアポンプで発生された圧縮空気は直接的に吸着パッドに供給される。これにより、吸着パッドに正圧が発生する。
例えば、一対のスライダ33が接近する方向に移動され、一対の把持部34の吸着パッドの接触面がワークの表面に両側から密着した状態で、真空吸着機能がONされていると、ワーク表面と吸着パッドの筒状部分とで規定される閉空間の空気がエジェクタにより吸引され、ワークに対して負圧が働く。これにより、ワークの表面と吸着パッドの接触面との間に摩擦力が生じ、さらに、ワークに対して負圧が働くことで、その摩擦力を大きくすることでき、これにより、ハンド装置3はワークを把持することができる。真空破壊機能がONされると、ワークに対して正圧が働く。この状態で、一対のスライダ33が離反する方向に移動されると、ハンド装置3によるワークの把持状態が解除され、把持していたワークをリリースすることができる。なお、ハンド装置3に真空破壊機能が装備されていなくても、ハンド装置3の真空吸着機能をOFFにし、吸着パッドの内圧を大気圧に戻した上で、一対のスライダ33が離反する方向に移動されることで、ハンド装置3によるワークの把持状態が解除される。
(ロボット装置の内部構造)
図2は、図1のロボットアーム機構の内部構造を示す斜視図である。直動伸縮機構はアーム部2と射出部30とを有する。アーム部2は第1連結コマ列21と第2連結コマ列22とを有する。第1連結コマ列21は複数の第1連結コマ23からなる。第1連結コマ23は略平板形に構成される。前後の第1連結コマ23は、互いの端部箇所においてピンにより屈曲自在に列状に連結される。第1連結コマ列21は内側や外側に自在に屈曲できる。
第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とを合成した形状を有している。
射出部30は、複数の上部ローラ31と複数の下部ローラ32とが角筒形状のフレーム35に支持されてなる。例えば、複数の上部ローラ31は第1連結コマ23の長さと略等価な間隔を隔ててアーム中心軸に沿って配列される。同様に、複数の下部ローラ32は第2連結コマ24の長さと略等価な間隔を隔ててアーム中心軸に沿って配列される。射出部30の後方には、ガイドローラ40とドライブギア50とが第1連結コマ列21を挟んで対向するように設けられる。ドライブギア50は図示しない減速器を介してステッピングモータ330に接続される。第1連結コマ23の内面には連結方向に沿ってリニアギアが形成されている。複数の第1連結コマ23が直線状に整列されたときに互いのリニアギアは直線状につながって、長いリニアギアを構成する。ドライブギア50は、直線状のリニアギアにかみ合わされる。直線状につながったリニアギアはドライブギア50とともにラックアンドピニオン機構を構成する。
アーム伸長時、モータ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支持部13の開口から外に向かって送り出される。
アーム収縮時、モータ55が駆動し、ドライブギア50が逆回転されると、ドライブギア50と係合している第1連結コマ列21が第1支持体11内に引き戻される。第1連結コマ列の移動に伴って、柱状体が第3支持体13内に引き戻される。引き戻された柱状体は射出部30後方で分離される。例えば、柱状体を構成する第1連結コマ列21はガイドローラ40とドライブギア50とに挟まれ、柱状体を構成する第2連結コマ列22は重力により下方に引かれ、それにより第2連結コマ列22と第1連結コマ列21とは互いに離反される。離反された第1、第2連結コマ列21,22はそれぞれ屈曲可能な状態に復帰する。収納に際しては、射出部30から、第1支持体11(基部10)の内部の収納部に第2連結コマ列22は内側に屈曲されて搬送され、第1連結コマ列21も第2連結コマ列22と同じ方向(内側)に屈曲されて搬送される。第1連結コマ列21は第2連結コマ列22に略平行な状態で格納される。
(ロボット装置の図記号表示)
図3は、図1のロボットアーム機構を図記号表現により示す図である。ロボットアーム機構において、根元3軸を構成する第1関節部J1と第2関節部J2と第3関節部J3とにより3つの位置自由度が実現される。また、手首3軸を構成する第4関節部J4と第5関節部J5と第6関節部J6とにより3つの姿勢自由度が実現される。
ロボット座標系Σbは第1関節部J1の第1回転軸RA1上の任意位置を原点とした座標系である。ロボット座標系Σbにおいて、直交3軸(Xb、Yb,Zb)が規定されている。Zb軸は第1回転軸RA1に平行な軸である。Xb軸とYb軸とは互いに直交し、且つZb軸に直交する軸である。手先座標系Σhは、手首部4に取り付けられたハンド装置3の任意位置(手先基準点)を原点とした座標系である。例えば、ハンド装置3が2指ハンドのとき、手先基準点(以下、単に手先という。)の位置は2指先間中央位置に規定される。手先座標系Σhにおいて、直交3軸(Xh、Yh,Zh)が規定されている。Zh軸は第6回転軸RA6に平行な軸である。Xh軸とYh軸とは互いに直交し、且つZh軸に直交する軸である。例えば、Xh軸は、ハンド装置3の前後方向に平行な軸である。手先姿勢とは、手先座標系Σhのロボット座標系Σbに対する直交3軸各々周りの回転角(Xh軸周りの回転角(ヨウ角)α、Yh軸周りの回転角(ピッチ角)β、Zh軸周りの回転角(ロール角)γとして与えられる。
第1関節部J1は、第1支持部11と第2支持部12との間に配設されており、回転軸RA1を中心としたねじり関節として構成されている。回転軸RA1は第1関節部J1の固定部が設置される基台の基準面BPに垂直に配置される。
第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支持体12は第1支持体11に取り付けられる。第1関節部J1に第2関節部J2を接続する仮想的なアームロッド部分(リンク部分)は、先端が直角に曲がった2つの鈎形状体が組み合わされたクランク形状を有している。この仮想的なアームロッド部分は、中空構造を有する第1、第2支持体11、12により構成される。
第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支持体13は第2支持体12に取り付けられる。第2関節部J2に第3関節部J3を接続する仮想的なアームロッド部分(リンク部分)は、先端が垂直に曲がった鈎形状体を有している。この仮想的なアームロッド部分は、第2、第3支持体12、13により構成される。
第4関節部J4は回転軸RA4を中心としたねじり関節として構成される。第4関節部J4の回転軸RA4は第3関節部J3の移動軸RA3に略一致するよう配置される。
第5関節部J5は回転軸RA5を中心とした曲げ関節として構成される。第5関節部J5の回転軸RA5は第3関節部J3の移動軸RA3及び第4関節部J4の回転軸RA4に略直交するよう配置される。
第6関節部J6は回転軸RA6を中心としたねじり関節として構成される。第6関節部J6の回転軸RA6は第4関節部J4の回転軸RA4及び第5関節部J5の回転軸RA5に略直交するよう配置される。第6関節部J6は手先効果器としてのハンド装置3を左右に旋回するために設けられている。なお、第6関節部J6は、その回転軸RA6が第4関節部J4の回転軸RA4及び第5関節部J5の回転軸RA5に略直交する曲げ関節として構成されてもよい。
このように複数の関節部J1−J6の根元3軸のうちの一つの曲げ関節部を直動伸縮関節部に換装し、第1関節部J1に対して第2関節部J2を2方向にオフセットさせ、第2関節部J2に対して第3関節部J3を2方向にオフセットさせることにより、本実施形態に係るロボット装置のロボットアーム機構は、特異点姿勢を構造上解消している。
(ロボット装置の構成)
図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は、制御装置100からの制御信号に従って、ステッピングモータ310を駆動する。制御装置100からの制御信号は具体的には、ステッピングモータ310,320,330,340,350,360各々の位置(関節角度)又は速度を指令する位置指令と、ステッピングモータ310,320,330,340,350,360各々の発生トルクを指令するトルク指令とからなる。位置指令及びトルク指令は制御装置100から一定周期(制御周期△t)で繰り返し供給される。他のドライバユニット220−260は、ドライバユニット210と同一の構成を有し、それぞれステッピングモータ320−360を駆動する。ここではドライバユニット210の構成及び動作を説明する。他のドライバユニット220―260の構成及び動作は、それぞれドライバユニット210の構成及び動作と同一であるので説明は省略する。
(ドライバユニット)
ドライバユニット210は、ステッピングモータ310の駆動および停止を制御する。ドライバユニット210は、制御部211と、電源回路212と、パルス信号発生部213と、ロータリーエンコーダ215と、脱調判定部216と、カウンタ217とを有する。制御部211は、制御装置100から入力された制御信号に従って、ドライバユニット210を統括して制御する。
制御部211には、制御装置100から、制御周期Δt毎に位置指令がトルク指令とともに入力される。トルク指令は、ステッピングモータ310に発生させるトルクの値を表すコード信号である。制御部211は、ステッピングモータ310に関する励磁電流値とトルク値とを対応付けた対応表のデータを保持する。制御部211は電源回路212に対してトルク指令に従った励磁電流を発生させるための制御を実行する。電源回路212は、電流可変のAC/DC変換方式電源回路であり、トルク指令により指定された励磁電流値で電流を発生する。発生された励磁電流はステッピングモータ310のステータコイルに供給される。
位置指令は、ステッピングモータ310の関節角度を表すコード信号である。位置指令は制御周期Δt(例えば、10ms)ごとに供給される。位置指令は次の制御周期Δtの時点での関節角度を表している。関節角度とは、基準位置(原点)からの正負の回転角度を表す。なお、関節部J3のドライバユニット230において、位置指令は、次の伸縮距離として与えられる。伸縮距離とはアーム部2が最も収縮した状態からの距離を指す。関節角度と伸縮距離とを関節変数と総称する。制御部211は、パルス信号発生部213に対して位置指令に応じたパルス信号を発生させるための制御を実行する。制御部211は、関節部J1が現在の関節角度から次(制御周期Δt後)の関節角度との角度差を変位するために必要なステッピングモータ310の回転角度をステップ角で除算することによりパルス数を決定し、制御周期△tをパルス数で除算しその逆数によりパルス周波数を決定する。制御部211は、決定したパルス条件(パルス数とパルス周波数)に対応するパルス制御信号をパルス信号発生部213に対して出力する。
パルス信号発生部213は、制御部211から出力されたパルス制御信号で与えられたパルス数のパルスを、ステータコイルと電源回路212との間のスイッチング素子に対して決定したパルス周波数で順次切り替えながら供給する。これにより制御周期Δt後にステッピングモータ310は上記角度差を変位するために必要な回転角度だけ回転し、それにより、関節部J1は指令された関節角度まで回転する。同様に、関節部J2,J4、J5,J6に対応するドライバユニット220、240,250,260各々には、制御装置100から、次の関節角度を表す位置指令がトルク指令とともに入力され、これにより関節部J1,J2,J4,J5,J6各々は指令された関節角度まで回転する。同様に、関節部J3に対応するドライバユニット230には、制御装置100から次の伸縮距離を表す位置指令が入力され、これにより関節部J3のアーム部2は指令された伸縮距離まで伸縮する。なお、パルス信号発生部213から出力されたパルスは後述の脱調判定部216にも取り込まれる。
ドライブシャフトエンコーダ215は、ドライブシャフトが一定の回転角(エンコーダステップ角)を回転する毎にパルスをカウンタ217に対して出力する。ドライブシャフトは関節部J1の回転軸をいう。ここではダイレクトドライブ方式が採用されるので、関節部J1の回転軸はステッピングモータ310の駆動軸に一致する。なお、ドライブシャフトエンコーダ215から出力されたパルスは後述の脱調判定部216にも取り込まれる。実際には順/逆の回転方向を識別するためにA相/B相の2種のパルスが出力される。ドライブシャフトエンコーダ215は、ドライブシャフトが1回転する毎に原点用のパルス(Z相パルス)をカウンタ217に対して出力する。
カウンタ217は、ドライブシャフトエンコーダ215から出力されたA相(又はB相)パルスを回転方向に応じて加減算をする。カウンタ217は、ドライブシャフトエンコーダ215からZ相パルスが出力されると、カウント値をリセットする。したがって、エンコーダパルスのカウント値は、ドライブシャフトの原点からの回転変位(回転角度)を表す。カウンタ217は、ドライブシャフトエンコーダ215から出力されたZ相パルスも計数する。Z相パルスのカウント値は“回転数”を表す。以下、単に「カウント値」というときは、回転角度を表すカウント値と回転数を表すカウント値との総称するものとし、両者を区別する場合には「回転角度を表すカウント値」と「回転数を表すカウント値」を称するものとする。カウント値は、関節部J1の関節角度(関節座標上の位置)を表している。カウンタ217からは一定周期ごとにカウント値が出力される。この周期は上記制御周期△tと同一でも良いし、相違するものであっても良い。カウンタ217から出力されるドライブシャフトの回転に係るカウント値のデータは、制御部211のROMに記憶される。制御部211は、カウント値にステップ角を乗算することにより関節部J1の現在の関節角度(関節位置)を計算する。
ステッピングモータ310はモータドライバユニット210との組み合わせにより脱調時に回転停止しない脱調回復機能を備える。モータドライバユニット210はステッピングモータ310が脱調を発生したときステッピングモータ310の励磁位置を変更して回転停止を回避する。制御部211は、関節部J1の現在の関節角度から、複数のステータコイルに対するロータの現在位置を計算する。制御部211は、ロータの現在位置に従って、励磁を開始するステータコイルを決定する。パルス信号発生部213は、パルス制御信号で与えられたパルス数のパルスを、複数のステータコイルと電源回路212との間の複数のスイッチング素子に対して、制御部211により決定されたステータコイルに対応するスイッチング素子から順次供給する。これにより、ステッピングモータ310は、脱調が生じても、脱調した位置から回転を再開することができる。つまり、本実施形態に係るモータドライバユニット210は、脱調によるステッピングモータ310の回転停止を回避できる。
(脱調判定部)
脱調判定部216は、パルス信号発生部213から出力されたパルス信号に対するエンコーダパルスのカウント数を比較することによりステッピングモータ310が脱調を生じたか、脱調を生じていないかを判定する。脱調判定部216は、パルス信号に同期してエンコーダパルスのカウント/リセットを繰り返す。パルス信号の一周期で回転するステップ角は固定である。ステップ角に対応するエンコーダパルスの数は固定である。エンコーダパルスのカウント数がステップ角に対応する数に一致していれば、パルス信号に対してステッピングモータ310の回転が同期している、つまり脱調は生じていない。一方、エンコーダパルスのカウント数がステップ角に対応する数に一致していなければ、パルス信号に対してステッピングモータ310の回転が同期していない、つまり脱調が生じている。ステッピングモータ310が脱調を生じているとき、脱調判定部216は、脱調検知信号を発生する。
(制御装置100)
制御装置100は、システム制御部101と、操作部インターフェース102と、表示制御部103と、ドライバユニットインターフェース104と、タスクプログラム記憶部105と、タスクコントローラ106と、脱調フラグマップ発生部107と、トルクマップ記憶部108と、トルクマップ更新部109と、トルクキャリブレーションコントローラ110とを有する。
システム制御部101は、CPU(Central Processing Unit)と半導体メモリ等を有し、制御装置100を統括して制御する。システム制御部101には、制御/データバス120を介して各部が接続されている。
制御装置100には、操作部50I/Fを介して操作部50が接続されている。操作部50は、トルクキャリブレーションの初期条件を作業者が入力するための入力インターフェースとして機能する。操作部50は、マウス、キーボード、タッチパネル等の入力デバイスにより構成される。また、操作部50は、トルクキャリブレーションの開始スイッチ、タスクの開始スイッチ等の入力デバイスを備える。
システム制御部101は、トルクキャリブレーションの開始スイッチが作業者により押されたのを契機に、トルクキャリブレーションプログラムを起動し、トルクキャリブレーションの設定画面のデータを発生し、表示制御部103のフレームメモリに書き込む。表示制御部103は、フレームメモリに格納されたデータを読み出し、表示部60に表示する。表示部60としては、典型的に例えばCRTディスプレイや液晶ディスプレイ、有機ELディスプレイ、プラズマディスプレイ等が挙げられる。
制御装置100には、ドライバユニットI/Fを介してドライバユニット210−260が接続されている。制御装置100には、ドライバユニット210−260各々から、脱調検知信号が、ドライバユニットインターフェースを介して所定の制御周期△t毎(例えば、10ms毎)に供給される。
(タスクプログラム記憶部)
タスクプログラム記憶部は、タスクプログラムのデータを記憶する。タスクプログラムは、ロボット装置にタスクを実行させるための手順が時間スケールとともに記述されているシーケンスプログラムである。タスクプログラムには、手先基準点又は手首基準点(以下、手先基準点とする)の移動軌道、移動軌道上の作業点/区間、作業内容、作業時間、作業点の間の移動時間等が記述されている。作業点は、ハンド装置3の着目点(手先着目点)の位置とハンド装置3の姿勢とで与えられる。これらは、ロボット座標系で与えられる。また、作業点は、関節変数ベクトルで与えられてもよい。関節変数ベクトルとは関節部J1−J6の6つの関節変数、つまり回転関節部J1、J2、J4−J6の回転角と直動伸縮関節部J3のアーム伸縮距離との6変数をいう。タスクプログラムは、例えば、事前のティーチングにより提供される。
図5は、図1のロボット装置のタスクプログラムで記述されている軌道、軌道上の作業点を示す平面図である。このタスクプログラムでは、タスクの開始点をPstart、タスクの終了点をPend、作業点をPp1、Pr1、Pp2、Pp2と表記する。これらの点は例えばロボット装置のロボット座標系で記述されている。作業点Pp1は、搬送ラインの幅の中心線の上方に設定されている。作業点Pr1は、搬出シュータ上に設定されている。作業点Pp2は、搬入シュータ上の箱の搬送位置に設定されている。作業点Pr2は、搬送ラインの幅の中心線の上方に設定されている。作業点Pr2は作業点Pp1よりも搬送ラインの下流に設定されている。
作業点Pp1、Pr1、Pp2、Pr2で、ロボット装置による所定の作業が行われるようにタスクプログラムに作業内容が記述されている。具体的には、作業点Pp1には、作業内容として把持によるピッキング動作が記述されている。作業点Pr1には、把持によりピッキングしたワークのリリース動作が記述されている。作業点Pp2には、吸着によるピッキング動作が記述されている。作業点Pr2には、吸着によりピッキングしたワークのリリース動作が記述されている。
(タスクコントローラ106)
タスクコントローラ106は、通過検知センサ73から通過検知信号が出力されたのを契機に、タスクプログラムの実行を開始する。タスクコントローラ106がタスクプログラムに基づいて位置指令を発生する。位置指令を受けたモータドライバ210−260がステッピングモータ310−360を駆動する。手先基準点が開始点Pstartから、作業点Pp1、Pr1、Pp2、Pr2を経由して終了点Pendまで移動する。作業点Pp1、Pr1、Pp2、Pr2ではタスクコントローラ106は各作業内容に応じてハンド装置3のアクチュエータの動作を制御する。これにより、ロボット装置は、コンベア装置の搬送ライン71上を搬送されるチューブ容器300をピッキングし、ピッキングしたチューブ容器300を搬出シュータ80上にリリースし、その後、搬入シュータ90上の箱をピッキングし、ピッキングした箱を搬送ライン71上に戻すまでの一連のタスクを実行する。
タスクコントローラ106は、タスク開始からタスク終了までの間、制御周期Δt毎に位置指令とトルク指令とを、モータドライバユニット210−260各々に送信する。トルクの値を表すトルク指令は、トルクマップ記憶部108に記憶されているトルクマップにより与えられる。タスクの開始時刻t0から終了時刻tNまでの期間にわたって制御周期△tの間隔で配列される制御時刻t各々の関節角度(関節位置)を表す位置指令は、タスクプログラムで規定されている複数の作業点を例えば補間する処理によりタスクコントローラ106による計算処理により与えられる。
図6は、図4のタスクコントローラ106による位置指令を説明するための補足説明図である。タスクコントローラ106は、予定軌道と、作業点Pstart、Pp1、Pr1、Pp2、Pp2と、作業点の間の移動時間とに基づいて、タスク開始時刻t0から制御周期Δtを経過する時刻t1,t2,…,tNにおける制御上の位置(制御点)p0〜pNを計算する。これら制御点p0〜pNはロボット座標系で与えられる。次に、タスクコントローラ106は、時刻が前後する2つの制御点の間の距離を制御周期Δtで除算することにより、2つの制御点の間の手先速度を計算し、計算した手先速度をヤコビアン逆行列を用いて関節部J1−J6の関節角速度に変換する。ヤコビアン逆行列は、手先着目点の位置・手先姿勢を表すベクトルの関節変数による編微分で与えられ、手先速度(手先位置・姿勢の微小変化)を関節角速度(関節角度・伸縮長の微小変化)に変換する行列である。ヤコビアン逆行列は、アーム構造のリンクパラメータと制御点p0〜pN各々における関節変数ベクトルとにより計算される。タスクコントローラ106は、関節角速度に制御周期△tを乗算することにより、制御周期△tの間の関節部J1−J6各々の変位量を計算し、計算した関節部J1−J6各々の変位量を直前の関節変数ベクトルに加算することにより、制御周期△t後の関節変数ベクトルを計算する。
例えば、タスクコントローラ106は、制御時刻t0に、次の制御点p1に対応する関節変数をドライバユニット210−260各々に送信する。
(脱調フラグマップ発生部107)
脱調フラグマップ発生部107106は、ドライバユニット210−260各々からの脱調検知信号に基づいて、脱調フラグマップを発生する。タスクプログラムは、事前に設定される。タスクプログラムでは、アーム機構の手先基準点又は手首基準点が移動する軌道、さらに軌道上の位置又は区間においてワークに対する作業が記述されている。実際のワークを用いてタスクプログラムがトルクキャリブレーション処理の中で実行される。トルクキャリブレーション処理は繰り返される。トルクキャリブレーション処理の繰り返し過程の中で、各関節部のステッピングモータのトルクが漸近的に最適値に近似されていく。脱調フラグマップは、トルクキャリブレーション処理の繰り返し過程の中で繰り返し発生される。
図7は、図4の脱調フラグマップ発生部107で発生される脱調フラグマップの一例を示す図である。脱調フラグマップは、トルクキャリブレーション処理の中でタスクを実行しているときにおける関節部J1−J6各々のステッピングモータの脱調状態を表すフラグの一覧である。タスクプログラムを実行する時間軸上の開始時刻から終了時刻までのタスク期間における関節部J1、J2,J3,J4,J5,J6各々のステッピングモータの脱調状態を制御周期Δt毎に一覧で示す表を脱調フラグマップと定義する。
脱調フラグマップ上において、タスク開始時刻を制御時刻t0、タスク終了時刻を制御時刻t(N)と表記する。制御時刻t1は、制御時刻t0から制御周期Δt後の時刻を表し、制御時刻t2は、制御時刻t1から制御周期Δt後の時刻を表している。
脱調フラグマップ発生部107は、ドライバユニット210−260各々から制御周期Δt毎に入力される脱調検知信号に基づいて、各制御時刻tnの脱調状態を識別するフラグ(脱調フラグという)を立てる。初期状態の脱調フラグマップは全てブランクである。脱調フラグには3種類の脱調状態を表す「0」、「1」および「1」と、フラグを確定させることを表す確定フラグ「2」とが用意されている。
フラグ「0」は脱調が発生していない状態を表し、フラグ「1」は予定トルクがトルク不足であることを原因として脱調が発生している状態を表し、フラグ「1」は予定トルクがトルク不足である以外の原因で脱調が発生している状態を表している。
フラグ「0」は、脱調が発生しなかったときに選択されるフラグである。図7に示すように例えば関節部J2に対応するドライバユニット220から制御時刻t1で脱調検知信号が入力されなければ、脱調フラグマップ発生部107は、関節部J2と制御時刻t1とに関連付けてフラグ「0」をセットする。
フラグ「2」は、フラグ確定条件を満たしたときに選択されるフラグである。具体的には、トルクキャリブレーション処理の繰り返し過程において、あるキャリブレーションサイクル(n-1)でフラグ「1」が立てられたとき、その関節部のその時刻のトルク値を増加させ、増加させたトルク値を用いた次のキャリブレーションサイクル(n)で脱調しなかったとき、またはさらに次のサイクル(n+1)まで脱調しなかったとき、増加させたトルク値を確定させるために、その関節部J2と制御時刻t1とに関連付けてフラグ「2」がセットされる。後述のトルクマップ更新部109は、タスクを実行する際に用いたトルクマップのフラグ「2」がセットされたセル(例えば関節部J2と制御時刻t1)に対応するトルクの値を確定する。そのため、フラグ「2」は確定フラグともいう。
フラグ「1」、「1」は脱調が発生したときにセットされるフラグである。フラグ「1」は予定トルクで動作させたにも関わらずトルク不足を引き起こしてそれが原因で脱調が発生したことを表し、フラグ「1」は上記原因以外の原因で脱調が発生したことを表している。フラグ「1」によりトルク値が増加され、フラグ「1」によりトルク値は維持される。フラグ「1」、「1」の相違について図8を参照して具体的に説明する。
(フラグ「1」とフラグ「1」の説明)
図8は、図7のフラグを説明するための補足図である。ここでは、関節部J1を例に説明する。横軸は制御時刻を表し、縦軸は関節角度を表す。pJ1(n-1)〜pJ1(n+5)は、それぞれ制御時刻t(n-1)〜t(n+5)において予定されている、関節部J1の関節角度を表している。つまり、ドライバユニット210には、制御装置100から制御時刻t(n-1)〜t(n+5)に、それぞれ次に予定している関節角度pJ1(n)〜pJ1(n+6)が位置指令として入力される。pJ1´(n-1)〜pJ1´(n+5)は、それぞれ制御時刻t(n-1)〜t(n+5)における、実際の関節角度を表している。実際の関節角度pJ1´(n-1)〜pJ1´(n+5)は、それぞれロータリーエンコーダ215から出力されたエンコーダパルスに基づいて計算される。
制御時刻t(n-1)から制御時刻t(n+5)にかけて、ドライバユニット210から制御装置100に、脱調検知信号が入力されなければ、それは、ステッピングモータ310が脱調しない状態で予定軌道上を移動していることを示す。一方、脱調検知信号が入力されたとき、それは、ステッピングモータ310に脱調が生じ、それが原因で関節部J1が指令された関節角度まで達していない状態を示す。
図8に示すように、ここでは、制御時刻t(n)、t(n+1)、t(n+2)およびt(n+3)において、関節部J1の実際の関節角度が、指令された関節角度に対してズレているとき、制御装置100にドライバユニット210から脱調検知信号が出力されている。ここではこの脱調検知信号が連続して出力されている期間t(n)〜t(n+3)を脱調検出期間という。脱調検出期間のうち、脱調検出期間の始期から所定の時間幅の期間を脱調期という。また、脱調検出期間のうち、脱調期の終点から脱調検出期間の終期までの期間を回復期という。脱調期は、指令されたトルク値で関節部が回転したときそのトルクが負荷に対して不足している過負荷が原因でステッピングモータ310に脱調が生じたとみなす期間であり、その時間長は作業者により任意に設定される。例えば脱調期は制御周期Δtの2倍に初期値として設定される。作業者は任意に変更可能である。最初の時刻t(n)の脱調、さらに次の時刻t(n+1)の脱調が過負荷による脱調とみなす。回復期内の時刻、ここでは時刻t(n+2) 、t(n+3)ではステッピングモータ310に脱調が生じたが、その原因が上記トルク不足ではなく、例えば脱調による位置ずれを回復させるために急加速させ、関節角速度を高めたときにそれに伴ってステッピングモータの特性上トルクが低下したことが原因であろうとみなす期間である。
つまり、フラグ「1」、「1」はともにその関節部のその時刻に脱調は発生しているが、その脱調原因が予定トルクそれ自体が負荷に対して低すぎることにあるのか、それ以外の原因によるものであるかを区別するために用意されている。なお、脱調原因がトルク不足であるときはトルクを増加する処理がなされ、一方、脱調原因がトルク不足以外の原因によるときには直ちにトルクを増加すべきではなく、トルクを維持する処理がなされる。
脱調フラグマップ発生部107は、当該関節部に関する脱調検出期間内の脱調期の制御時刻に関連付けてフラグ「1」をセットし、回復期内の制御時刻に関連付けてフラグ「1」をセットする。すなわち、図8に示すように、関節部J1の脱調検出期間t(n)〜t(n+3)のうち、制御時刻t(n)、t(n+1)にはフラグ「1」がセットされ、制御時刻t(n+2)、t(n+3)にはフラグ「1」がセットされる。
例えば、図8に示すように、制御時刻t(n-1)、t(n)でステッピングモータ310に脱調が生じたとき、時刻t(n)の関節角度pJ1´(n)は指令位置pJ1(n)まで達しない。時刻t(n)の位置指令は次の時刻t(n+1)に達すべき位置pJ1(n+1)を指令する。制御部211は脱調が発生しなかった場合よりも、次の時刻t(n+1)に達すべき位置pJ1(n+1)まで回転させるために必要な多くのパルス信号を発生する。パルス信号は、予定周波数よりも高い周波数で発生される。それによりステッピングモータ310の回転角速度は脱調が発生しなかった場合に比べて高くなる。ステッピングモータ310の特性上、回転数が高くなるとトルクが低下する。従って制御時刻t(n)からt(n+1)にかけて、ステッピングモータ310が発生するトルクは、予定トルクよりも低下する。このように、ステッピングモータ310に一旦脱調が生じると、ステッピングモータ310の脱調状態が回復されるまでの間、ステッピングモータ310は予定していたトルクよりも低いトルクで動作する。そのため、脱調期では、予定していたトルクの値では、トルクが不足していたと推定できるが、回復期では、脱調による位置ずれを回復させるために急加速させ、また関節角速度を高めたときにそれに伴ってステッピングモータの特性上トルクが低下したことが原因であろうとみなされるため、実際に予定していたトルクを正常に発揮させたときには脱調が生じない可能性がある。なおここでは「トルク不足」とは、指令されたトルクで動作したときに発生する脱調の原因に限定的に用いるものとし、上記回復期の脱調にように、指令されたトルクより低いトルクで動作したときに発生する脱調の原因には用いないものとする。
そのため脱調は生じている時点全てトルクを増加させるのではなく、脱調検出されたとしても、その原因によってトルクを増加/維持を選択する。脱調期に対応するフラグ「1」がセットされたときに、後述のトルクマップ更新部109によるトルクの値の更新処理を実行させ、脱調検出期間の脱調期以降の回復期に対応するフラグ「1」がセットされたときに、後述のトルクマップ更新部109によるトルクの値の更新処理を保留させるように更新規則を設けることで、次のサイクルで、回復期に対応する制御時刻で再度同じトルクの値でタスクを実行させることができる。それによりトルク不足を解消するとともに、過度に高いトルクを設定してしまう事態を回避できる。
(トルクマップ記憶部108)
トルクマップ記憶部108はトルクマップのデータを記憶する。このトルクマップは、対応するタスクプログラムと関連付けされている。あるタスクプログラムを起動するときにそのタスクプログラム関連付けされているトルクマップが読み出される。
図9は、図4のトルクマップ記憶部108に記憶されているトルクマップの一例を示す図である。トルクマップは、関節部J1、J2,J3,J4,J5,J6各々のステッピングモータに発生させるトルクの値を、タスクプログラムを実行する時間軸上の開始時刻t0から終了時刻t(N)までのタスク期間内における制御周期Δt毎の制御時刻に対応つけた一覧表と定義される。換言すると、トルクマップはタスクが開始されてから終了されるまでの期間における関節部各々のステッピングモータが発生すべきトルクの時間変化を表している。ここでは、トルクの値は、ステッピングモータの仕様上の最大トルクに対する割合で表記する。トルクマップ上の値「90」は、ステッピングモータの仕様上の最大トルクに対して、90%のトルクを発揮させることを表している。
タスク期間内における制御周期Δt毎の制御時刻に位置指令とトルク指令とが制御装置100から制御部211に次々と供給される。時刻t1は、時刻t0から制御周期Δt経過後の時刻を表している。このトルクマップによれば、制御時刻t1に、関節部J1のステッピングモータ210には、最大トルクの90%のトルクを発生させることを表している。
(トルクマップ更新部109)
トルクマップ更新部109は、トルクマップ記憶部108に記憶されているトルクマップを後述の脱調フラグマップに基づいて、以下の更新規則により更新する。あるトルクマップのもとでトルクキャリブレーション処理が実行され、そのトルクキャリブレーション処理で発生した脱調フラグマップに従ってそのトルクマップが更新され、更新されたトルクマップを用いて次のトルクキャリブレーション処理が実行される。このようにトルクマップはトルクキャリブレーション処理の繰り返し過程の期間中、順次更新される。
なお、トルクキャリブレーション処理は、実際のタスクに先立って事前準備として実行しても良いし、実際のタスクの期間中にタスクと並行して実行させてもよい。
(トルク更新規則)
原則的なトルク更新規則としては、ある関節部についてトルク不足に起因する脱調を示すフラグ「1」をトルクキャリブレーション処理の繰り返しの中で一度も経験していない状態で発生している非脱調フラグ「0」に対してはトルクを所定の減少分ΔTdownだけ減少させる。さらにトルク不足に起因する脱調を示すフラグ「1」を経験した後に発生している非脱調フラグ「0」に対してはそのトルクを維持させ、又は安全のために少しだけトルク(後述のマージンα)を増加させ、そのトルク値をその関節部及びその時刻に対して確定させる(確定フラグ「2」をたてる)。或る関節部についてトルク不足に起因する脱調を示すフラグ「1」が或る時刻に立てられているときは、そのトルクに所定の増分量ΔTupを加えたトルク、又は増分量ΔTupとマージンαとを加えたトルクに更新する。或る関節部の或る時刻についてトルク不足以外の原因で脱調が発生したことを示すフラグ「1」が立てられているときは、トルクを維持させる。
フラグ「2」は確定フラグである。脱調フラグマップでフラグ「2」がセットされたセルに対応するトルクの値は、更新前のトルクの値に確定する。詳細には後述する。
実際の本作業としてのタスクプログラムの実行の前段階でその準備作業として、トルクキャリブレーションコントローラ110は、システム制御部101によりトルクキャリブレーションプログラムが起動されたのを契機に、トルクキャリブレーションプログラムで記述されている処理を実行する。なお、実際の本作業としてタスクプログラムを繰り返し実行中にそれと並行してトルクキャリブレーション処理を繰り返し実行するものであってもよい。以下、トルクキャリブレーション処理について図10を参照して説明する。
(トルクキャリブレーション処理)
本実施形態に係るロボット装置は、トルクキャリブレーション機能を備える。トルクキャリブレーションは、タスク実行中のステッピングモータ310−360各々に発生させるトルク値を、本番のタスク実行前の準備期間に、又は本番のタスク実行中に最適値に近似させるための処理である。事前処理であっても、トルクキャリブレーション処理は、実際のタスクプログラムをロボット装置に実際のワークを用いて実行される。
図10は、本実施形態に係るロボット装置のトルクキャリブレーションの手順を示すフローチャートである。トルクキャリブレーションはトルクキャリブレーションコントローラ110の制御に従って実行される。
(工程S1)
システム制御部101の制御に従って、トルクキャリブレーションプログラムが起動される。
(工程S2)
トルクキャリブレーションコントローラ110の制御に従って、表示制御部103により、表示部60にトルクキャリブレーション処理の初期条件の設定画面が表示される。作業者は、操作部50を操作して設定画面を介してトルクキャリブレーション処理の初期条件を入力することができる。操作部50を介して、作業者により初期トルクT0、増分量ΔTup、減少量ΔTdown、トルクマージン量(以下単にマージンという)α、及び最大サイクル数Lmaxが入力される。マージンαはトルク更新に際して本番でトルク不足による脱調の発生リスクをできるだけ軽減しながら、最適値に近似させるために設けられている。増分量とは、増分量ΔTup、又はこの増分量ΔTupにマージンαを加えた新たな増分量(ΔTup+α)のいずれかに定義される。
トルクキャリブレーションコントローラ110は増分量ΔTupと減少量ΔTdownとマージンαとに対してそれぞれデフォルト値を設定する。デフォルト値として、増分量ΔTupは、例えば最大トルクの10%に設定される。減少量ΔTdownのデフォルト値は典型的には増分量ΔTupと等価、例えば最大トルクの10%に設定される。マージンαは、増分量ΔTupよりも低い値、典型的には増分量ΔTupの1/2に設定される。マージンαを考慮するとき、増分量(ΔTup+α)は減少量ΔTdownよりも大きな値であって、増分量(ΔTup+α)は減少量ΔTdownの2倍より小さい値に設定される。もちろん、これらデフォルト値は操作部50を介してユーザ指示により任意に設定され得る。
(工程S3)
トルクキャリブレーションコントローラ110の制御に従って、トルクマップ記憶部108に記憶されているトルクマップ上の全てのトルク値が初期トルクTiniに初期化される。トルクキャリブレーションコントローラ110により。工程2で入力された初期トルクTiniが記述された初期トルクマップが発生され、発生された初期トルクマップのデータはトルクマップ記憶部108に記憶される。
(工程S4)
タスクプログラム記憶部105から所望のタスクプログラムが選択的に読み出され、トルクキャリブレーションコントローラ110にロードされる。タスクコントローラ106はタスクプログラムを展開して、各関節部J1−J6に関する制御周期Δt毎の位置指令を生成する。またトルクマップ記憶部108からタスクプログラムに関連付けられているトルクマップが選択的に読み出され、トルクキャリブレーションコントローラ110にロードされる。タスクコントローラ106はトルクマップから各関節部J1−J6に関する制御周期Δt毎のトルク指令を生成する。タスクコントローラ106は関節部J1−Jにそれぞれ対応するドライバユニット210―260各々に制御周期Δt毎に位置指令とトルク指令とを繰り返し出力する。
(工程S5)
タスクが実行されている間、ドライバユニット210−260各々から、脱調検知信号が制御周期Δt毎に入力される。この脱調検知信号に基づいて、脱調フラグマップ発生部107により脱調フラグマップのデータが発生される。
(工程S6)
終了条件を満たさないとき、つまり工程S5で発生された脱調フラグマップが全てフラグ「2」がセットされていない場合は、工程S7に処理が移行される。一方、工程S5で発生された脱調フラグマップの全てのセルにフラグ「2」がセットされた場合は、トルクキャリブレーションが終了される。
(工程S7)
トルクマップ更新部109により、工程S4で使用されたトルクマップが、工程S5で発生された脱調フラグマップを用いて更新規則にしたがって更新される。工程S7の処理の後、工程S4に戻り、工程S7で更新されたトルクマップを用いて、実際のワークを用いたタスクが実行される。工程S4〜工程S7のサイクルは、工程S5で発生された脱調フラグマップの全てのセルにフラグ「2」がセットされるまで繰り返し実行される。なお、トルクキャリブレーション処理は、工程S4〜工程S7のサイクル数Lが、最大サイクル数Lmaxに達した時点で強制的に終了されてもよい。このときは、工程S2で設定したトルクキャリブレーションの初期条件が不適切だった場合が想定される。そのため、作業者は、トルクキャリブレーションプログラムを再度起動し、工程S2のトルクキャリブレーションの初期条件の再設定等を行う。
(サイクルの説明)
図11は、図10のトルクキャリブレーションの1サイクルを説明するための補足説明図である。トルクマップを「TM」、脱調フラグマップを「FM」と表記する。
現在のトルクキャリブレーションサイクル(L)では、直前サイクル(L−1)で更新したトルクマップTM(L-1)を用いてタスクを実行する。そのタスク実行に伴って発生した脱調フラグマップFM(L)を用いて、今回のタスク実行に用いたトルクマップTM(L-1)を更新する。それにより新たなトルクマップTM(L)が生成される。新たなトルクマップTM(L)は、次のトルクキャリブレーションサイクル(L+1)でのタスク実行に用いられる。
(更新規則の説明)
例えば70以上の比較的高いトルクを初期値として与えたときの更新規則で特徴的なのは、比較的高いトルクを初期値としてトルクキャリブレーション処理を繰り返すとき、当初には脱調が発生しない傾向が当然強くなる。連続して脱調が発生していない間は減少量「10」ずつトルクを減少させていき、その繰り返し過程の中で脱調が発生した時点でそのトルクに増分量「10」とマージン「5」とを増加させてそのトルクで確定させる点にある。脱調が発生した時点のトルク値に、増分量「10」に加えてマージン「5」を増加させることにより、本番タスク実行に際して予定トルクではトルク不足を生じさせてしまい、それが原因で脱調が発生してしまうリスクを軽減しながら、最適値に近似させることができる。以下より詳細な更新規則とともに具体的に説明する。
図12は、図10のトルクキャリブレーションの工程S8のトルクマップの更新規則を詳細に説明するために、ある関節部J1に着目して脱調フラグマップとトルクマップの変遷を示している。制御時刻t(n)から制御時刻t(n+6)の関節部J1に関するトルクマップが確定されるまでのトルクの値の更新規則について説明する。増分量Δupが「最大トルクの10%」、減少量Δdownが「最大トルクの10%」およびマージンαが「最大トルクの5%」、初期トルクが「最大トルクの90%」に設定されているものとして説明する。以下ではトルクを単に「90」等により簡易に表記する。
トルクキャリブレーションの1回目のサイクルでは、初期トルクマップTM(0)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(1)が発生される。例えば脱調が発生しなかったとき、脱調フラグマップFM(1)において、すべてのセルにフラグ「0」がセットされる。トルクマップ更新部109は、脱調フラグマップFM(1)を用いて、更新規則により、当該1回目のサイクルで用いた初期トルクマップTM(0)を更新する。更新されたトルクマップTM(1)において、すべてのセル各々に対応するトルクの値は、初期トルクマップTM(0)で規定されていたトルクの値(「90」)から減少量「10」を減少させた値(「80」)に更新される。
トルクキャリブレーションの2回目のサイクルでは、1回目のサイクルで更新されたトルクマップTM(1)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(2)が発生される。脱調フラグマップFM(2)において、脱調が発生していない制御時刻t(n)にはフラグ「0」が立てられる。脱調が発生しており、しかもそれが脱調期であるときその制御時刻t(n+1)、t(n+2)各々にはフラグ「1」が立てられる。脱調が発生しており、しかもそれが回復期であるとき制御時刻t(n+3)からt(n+6)各々にフラグ「1」がそれぞれセットされる。
トルクマップ更新部109は、脱調フラグマップFM(2)を用いて、更新規則により、トルクマップTM(1)をトルクマップTM(2)に更新する。フラグ「0」を示した制御時刻t(n)に対応するトルクの値は、トルクの値(「80」)から「10」下げた値(「70」)に設定される。
「1」が立てられている制御時刻t(n+1)、t(n+2)各々のトルク値は、当該サイクルのタスク実行に使用したトルクマップTM(1)のトルク値(「80」)に像分量「10」とマージン「5」とを加算した値(「95」)に設定される。
「1」が立てられている制御時刻t(n+3)からt(n+6)各々に対応するトルクの値は、そのタスクに使用したトルク値(「80」)に維持される。
トルクキャリブレーションの3回目のサイクルでは、更新されたトルクマップTM(2)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(3)が発生される。脱調フラグマップFM(3)において、制御時刻t(n)、t(n+3)〜t(n+6)各々では脱調が発生していないのでフラグ「0」、制御時刻t(n+1)、t(n+2)各々では前回のサイクルで増加させたトルク「95」でサイド脱調が発生しなかったので、確定フラグ「2」がそれぞれセットされる。トルクマップ更新部109は、脱調フラグマップFM(3)を用いて、更新規則により、トルクマップTM(2)を更新する。
フラグ「0」を示す制御時刻t(n)、t(n+3)〜t(n+6)各々に対応するトルクの値は、タスクに使用したトルクマップTM(2)で規定されていたトルクの値(制御時刻t(n)は「70」、t(n+3)〜t(n+6)各々は「80」)から減少量「10」を減少させた値(制御時刻t(n)は「60」、t(n+3)〜t(n+6)各々は「70」)に設定される。確定フラグ「2」が立てられた制御時刻t(n+1)、t(n+2)は今回のサイクルのタスクで使用したトルクマップTM(2)で規定されていたトルクの値(「95」)に確定される。
トルクキャリブレーションの4回目のサイクルでは、更新されたトルクマップTM(3)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(4)が発生される。今回のサイクル中のタスク実行による脱調状況に従って、制御時刻t(n+6)に対応するセルにフラグ「0」、制御時刻t(n)、t(n+3)、t(n+4)各々に対応するセルにフラグ「1」、制御時刻t(n+5)に対応するセルにフラグ「1」、制御時刻t(n+1)、t(n+2)各々に対応するセルにフラグ「2」がそれぞれセットされた脱調フラグマップFM(4)が発生される。トルクマップ更新部109は、脱調フラグマップFM(4)を用いて、更新規則により、今回用いたトルクマップTM(3)を更新する。更新されたトルクマップTM(4)において、フラグ「0」の制御時刻t(n+6)に対応するトルクの値は、タスクに使用したトルクマップTM(3)で規定されていたトルクの値(「70」)から「10」下げた値(「60」)に設定される。脱調発生に伴って「1」が立てられた制御時刻t(n)、t(n+3)、t(n+4)各々のトルク値は、今回のタスクに使用したトルクマップTM(3)のトルク値(制御時刻t(n)は「60」、t(n+3)とt(n+4)各々は「70」)に、像分量「10」とマージン「5」とを増加させたトルク値(制御時刻t(n)は「75」、t(n+3)とt(n+4)各々は「85」)に設定される。「1」が立てられた制御時刻t(n+5)に対応するトルクの値は、タスクに使用したトルクマップTM(3)で規定されていたトルクの値(「70」)で維持される。
トルクキャリブレーションの5回目のサイクルでは、前回サイクルで更新されたトルクマップTM(4)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(5)が発生される。脱調フラグマップFM(5)において、脱調発生していない制御時刻t(n+5)、t(n+6)各々に対応するセルにフラグ「0」、前回サイクルでトルクを増加更新された制御時刻t(n)からt(n+4)では脱調が発生していないので確定フラグ「2」がセットされる。
トルクマップ更新部109は、脱調フラグマップFM(5)を用いて、更新規則により、トルクマップTM(4)を更新する。フラグ「0」が立てられている制御時刻t(n+5)、t(n+6)のトルク値は、今回のタスクに使用したトルクマップTM(4)で規定されていたトルク値(制御時刻t(n+5)は「70」、t(n+6)は「60」)から、減少料「10」を減少させたトルク値(制御時刻t(n+5)は「60」、t(n+6)は「50」)に更新される。新たに確定フラグ「2」が立った制御時刻t(n)、t(n+3)、t(n+4)各々に対応するトルクの値は、今回のタスクで用いたトルク値(制御時刻t(n)は「75」、t(n+3)とt(n+4)各々は「85」)に確定される。
トルクキャリブレーションの6回目のサイクルでは、更新されたトルクマップTM(5)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(6)が発生される。脱調フラグマップFM(6)において、制御時刻t(n+6)に対応するセルにフラグ「0」、制御時刻t(n+5)に対応するセルにフラグ「1」、制御時刻t(n)からt(n+4)各々に対応するセルにフラグ「2」がそれぞれセットされている。トルクマップ更新部109は、脱調フラグマップFM(6)を用いて、更新規則により、トルクマップTM(5)を更新する。更新されたトルクマップTM(6)において、フラグ「0」の制御時刻t(n+6)に対応するトルク値は、タスクに使用したトルクマップTM(5)で規定されていたトルクの値(「50」)から「10」下げた値(「40」)に設定される。フラグ「1」の制御時刻t(n+5)に対応するトルクの値は、タスクに使用したトルク値(「60」)に像分量とマージンとで「15」を加算した値(「75」)に更新される。
トルクキャリブレーションの7回目のサイクルでは、更新されたトルクマップTM(6)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(7)が発生される。脱調フラグマップFM(7)において、制御時刻t(n+6)に対応するセルにフラグ「1」、制御時刻t(n)からt(n+5)各々に対応するセルにフラグ「2」がそれぞれセットされている。トルクマップ更新部109は、脱調フラグマップFM(6)を用いて、更新規則により、トルクマップTM(6)を更新する。更新されたトルクマップTM(7)において、制御時刻t(n+5)に対応するトルクの値は、タスクに使用したトルクマップTM(6)のトルク値(「40」)に像分量とマージンとの「15」を加算した値(「55」)に設定される。制御時刻t(n+5)に対応するトルクの値は、タスクに使用したトルクマップTM(6)で規定されていたトルクの値(「75」)に確定される。
トルクキャリブレーションの8回目のサイクルでは、更新されたトルクマップTM(7)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(8)が発生される。脱調フラグマップFM(8)において、すべてのセルにフラグ「2」がセットされる。脱調フラグマップFM(8)は、図10の工程S6のトルクキャリブレーションの終了条件を満たす。そのため、トルクキャリブレーションは8回目のサイクルで終了され、トルクマップTM(7)がトルクマップ記憶部108に記憶される。
(更新規則の説明)
上述では70以上の比較的高いトルクを初期値として与えた場合の更新手順を説明した。70未満の比較的低いトルクが初期値として与えられたとき、更新規則が少し変更される。図13に示すように初期トルクマップTM(0)の全てのセルが初期トルク「50」に設定されている例を説明する。
70未満の比較的低いトルクを初期値として与えたときの更新規則が、70以上の比較的高いトルクを初期値として与えたときの更新規則と大きく異なるのは次の点である。
比較的低いトルクを初期値としてトルクキャリブレーション処理を繰り返すとき、当初では脱調が発生する傾向が当然強くなる。連続して脱調が発生している間は増分量「10」ずつトルクを増加させていき、その繰り返し過程の中で脱調が発生しなかった時点でそのトルクにマージンを増加させ、そのマージンを加えたトルクで確定させる。
トルクキャリブレーションの1回目のサイクルでは、初期トルクマップTM(0)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(1)が発生される。脱調フラグマップFM(1)において、制御時刻t(n)、t(n+6)各々に対応するセルにフラグ「0」、制御時刻t(n+1)、t(n+2)各々に対応するセルにフラグ「1」、制御時刻t(n+3)からt(n+5)各々に対応するセルにフラグ「1」がそれぞれセットされている。トルクマップ更新部109は、更新規則により、トルクマップTM(0)を更新する。脱調発生していないフラグ「0」の制御時刻t(n)、t(n+6)のトルクの値は、タスクに使用したトルクマップTM(0)で規定されていたトルクの値(「50」)から「10」下げた値(「40」)に設定される。トルク不足により脱調発生したフラグ「1」の制御時刻t(n+1)、t(n+2)各々に対応するトルクの値は増分量「10」を増加させたトルク値(「60」)に設定される。トルク不足以外の原因で脱調発生したフラグ「1」の制御時刻t(n+3)からt(n+5)各々に対応するトルクの値は、タスクに使用したトルクマップTM(0)で規定されていたトルクの値(「50」)で維持される。
トルクキャリブレーションの2回目のサイクルでは、1回目のサイクルで更新されたトルクマップTM(1)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(2)が発生される。脱調発生していない制御時刻t(n+6)に対応するセルにフラグ「0」、制御時刻t(n)、t(n+1)各々に対応するセルにフラグ「1」、制御時刻t(n+2)からt(n+5)各々に対応するセルにフラグ「1」がそれぞれセットされている。
トルクマップ更新部109は、脱調フラグマップFM(2)を用いて、更新規則により、トルクマップTM(1)を更新する。フラグ「0」が連続した制御時刻t(n+6)に対応するトルクの値は、タスクに使用したトルクマップTM(1)で規定されていたトルクの値(「40」)から「10」下げた値(「30」)に設定される。フラグ「0」後に初めて脱調したフラグ「1」の制御時刻t(n)に対応するトルクの値は、タスクに使用したトルクマップTM(1)のトルクの値(「40」)に増分量とマージンとの(「15」)を加算した値(「55」)に設定される。フラグ「1」が連続する制御時刻t(n+1)に対応するトルクの値は、タスクに使用したトルクマップTM(1)で規定されていたトルクの値(「60」)から「10」上げた値(「70」)に設定される。制御時刻t(n+2)からt(n+5)各々に対応するトルクの値は、タスクに使用したトルクマップTM(1)で規定されていたトルクの値(制御時刻t(n+2)は「60」、制御時刻t(n+3)からt(n+5)各々は「50」)で維持される。
トルクキャリブレーションの3回目のサイクルでは、トルクマップTM(2)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(3)が発生される。脱調フラグマップFM(3)において、制御時刻t(n+6)に対応するセルにフラグ「0」、制御時刻t(n+1)、t(n+2)各々に対応するセルにフラグ「1」、制御時刻t(n+3)からt(n+5)各々に対応するセルにフラグ「1」、制御時刻t(n)に対応するセルにフラグ「2」がそれぞれセットされている。トルクマップ更新部109は、脱調フラグマップFM(3)を用いて、更新規則により、トルクマップTM(2)を更新する。更新されたトルクマップTM(3)において、制御時刻t(n+6)に対応するトルクの値は、タスクに使用したトルクマップTM(2)で規定されていたトルクの値(「30」)から「10」下げた値(「20」)に設定される。制御時刻t(n+1)、t(n+2)に対応するトルクの値は、タスクに使用したトルクマップTM(2)で規定されていたトルクの値(制御時刻t(n+1)は「70」、制御時刻t(n+2)は「60」)から「10」上げた値(制御時刻t(n+1)は「80」、制御時刻t(n+2)は「70」)に設定される。制御時刻t(n+3)からt(n+5)各々に対応するトルクの値は、タスクに使用したトルクマップTM(2)で規定されていたトルクの値(「50」)で維持される。制御時刻t(n)に対応するトルクの値は、タスクに使用したトルクマップTM(2)で規定されていたトルクの値(「55」)に確定される。
トルクキャリブレーションの4回目のサイクルでは、トルクマップTM(3)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(4)が発生される。脱調フラグマップFM(4)において、制御時刻t(n+1)、t(n+2)各々に対応するセルにフラグ「0」、制御時刻t(n+3)、t(n+4)各々に対応するセルにフラグ「1」、制御時刻t(n+5)、t(n+6)各々に対応するセルにフラグ「1」、制御時刻t(n)に対応するセルにフラグ「2」がそれぞれセットされている。トルクマップ更新部109は、脱調フラグマップFM(4)を用いて、更新規則により、トルクマップTM(3)を更新する。更新されたトルクマップTM(4)において、前回サイクルではフラグ「0」の制御時刻t(n+1)、t(n+2)に対応するトルクの値は、タスクに使用したトルクマップTM(3)で規定されていたトルクの値(制御時刻t(n+1)は「80」、制御時刻t(n+2)は「70」)にマージン(「5」)を加算した値(制御時刻t(n+1)は「85」、制御時刻t(n+2)は「75」)に設定される。
トルク不足により脱調が発生したことを表すフラグ「1」の制御時刻t(n+3)、t(n+4)に対応するトルクの値は、タスクに使用したトルクマップTM(3)で規定されていたトルクの値(「50」)から「10」を増加させた値(「60」)に設定される。
トルク不足以外の原因で脱調が発生したことを表すフラグ「1」の制御時刻t(n+5)、t(n+6)各々に対応するトルクの値は、タスクに使用したトルクマップTM(3)で規定されていたトルクの値(制御時刻t(n+5)は「50」、制御時刻t(n+6)は「20」)で維持される。
トルクキャリブレーションの5回目のサイクルでは、トルクマップTM(4)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(5)が発生される。脱調フラグマップFM(5)において、制御時刻t(n+3)、t(n+4)各々に対応するセルにフラグ「0」、制御時刻t(n+5)、t(n+6)各々に対応するセルにフラグ「1」、制御時刻t(n)からt(n+2)各々に対応するセルにフラグ「2」がそれぞれセットされている。トルクマップ更新部109は、脱調フラグマップFM(5)を用いて、更新規則により、トルクマップTM(4)を更新する。
初めて脱調が発生しなかった制御時刻t(n+3)、t(n+4)各々に対応するトルクの値は、その脱調しなかったトルクの値(「60」)にマージン(「5」)を加算した値(「65」)に設定される。
トルク維持を連続させた後、初めて脱調が発生した制御時刻t(n+5)では、トルク値は、脱調発生したトルク値(「50」)に増分量「10」を増加させた値(「60」)に設定される。
脱調が発生していない状態が連続した後にトルク不足以外の原因で脱調が発生した制御時刻t(n+6)に対応するトルクの値は、その時点のトルクマップTM(4)のトルク値(「20」)に増分量とマージンとの(「15」)を増加させたトルク値(「35」)に設定される。
トルクキャリブレーションの6回目のサイクルでは、トルクマップTM(5)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(6)が発生される。脱調フラグマップFM(6)において、制御時刻t(n+5)に対応するセルにフラグ「0」、制御時刻t(n)〜t(n+4)、t(n+6)各々に対応するセルにフラグ「2」がそれぞれセットされている。トルクマップ更新部109は、脱調フラグマップFM(6)を用いて、更新規則により、トルクマップTM(5)を更新する。更新されたトルクマップTM(6)において、制御時刻t(n+5)に対応するトルクの値は、タスクに使用したトルクマップTM(5)で規定されていたトルクの値(「60」)にマージン(「5」)を加算した値(「65」)に設定される。制御時刻t(n+3)、t(n+4)、t(n+6)各々に対応するトルクの値は、タスクに使用したトルクマップTM(4)で規定されていたトルクの値(制御時刻t(n+3)、t(n+4)は「65」、制御時刻t(n+6)は「35」)に確定される。
トルクキャリブレーションの7回目のサイクルでは、更新されたトルクマップTM(6)を用いてタスクが実行され、そのタスク中に発生された脱調検知信号に基づいて脱調フラグマップFM(7)が発生される。脱調フラグマップFM(7)において、すべてのセルにフラグ「2」がセットされる。脱調フラグマップFM(7)は、図10の工程S6のトルクキャリブレーションの終了条件を満たす。そのため、トルクキャリブレーションは7回目のサイクルで終了され、トルクマップTM(6)がトルクマップ記憶部108に記憶される。
以上説明した本実施形態に係るロボット装置は、トルクマップを事前に決定するためのトルクキャリブレーション機能を備える。トルクマップは、タスクが開始されてから終了されるまでの、関節部J1―J6各々のステッピングモータに発生させるトルクの値の制御周期Δt毎の時間変化を規定する。タスクプログラムが起動されると、タスクコントローラ106は、トルクマップを参照してトルク指令を決定し、決定したトルク指令を、位置指令とともに、制御周期Δt毎にドライバユニット210−260各々に対して供給する。ドライバユニット210−260各々の制御部は、トルク指令と位置指令とに従って、ステッピングモータ210−260各々を制御する。これにより、関節部J1−J6各々のステッピングモータは、指示されたトルクで指示された関節角度まで回転され、ロボット装置は、タスクプログラムで規定されている作業を実行することができる。
本実施形態に係るロボット装置のトルクキャリブレーション処理は、ロボット装置に実際のタスクを実行させ、制御周期Δt毎の関節部J1−J6各々のステッピングモータの脱調状態に基づいて、タスクに使用したトルクマップを更新する処理を繰り返し行う処理である。基本的なトルクの値の更新規則としては、実際のタスクを実行させた結果、ステッピングモータが脱調していればトルクの値を上げ、ステッピングモータが脱調していないのであればトルクの値を下げる。また、1サイクル前のタスクでステッピングモータが脱調し、それにより増加させたトルクで実行した現在のタスクでステッピングモータが脱調しなければ、トルクの値は、現在のタスクで使用したトルクの値に確定される。同様に、1サイクル前のタスクでステッピングモータが脱調せず、現在のタスクでステッピングモータが脱調すれば、トルクの値は1サイクル前のタスクで使用したトルクの値に決定される。
以上説明した、トルクキャリブレーション処理によれば、トルクマップで規定されているトルクの値を、実際のタスク実行中にステッピングモータ310−360各々が脱調しないために必要な最低限の値に漸近させた値に決定することができる。これにより、トルク不足が原因で予定したタスクタイムを達成できなくなったり、ワークを取り落としてしまうリスクを回避し、さらに、作業者がロボットアーム機構に接触するとすぐに脱調する状態であるため、ロボット装置を稼働する安全性を確保することができる。
なお、実際のタスクを実行させる際、実際に使用するワークを用いることで、上述のリスクをより回避することができ、さらに、ロボット装置を稼働する安全性を確保することができる。
また、ワークの重量はバラつく場合や、経年劣化等の理由により、想定したトルクが発生しない場合がある。そのため、トルクの値を確定する際に、マージンαを加算するようにしてもよい。
本実施形態に係るロボット装置が備えるトルクキャリブレーション処理は、本番のタスク開始前の準備作業としてだけでなく、本番でタスクと並行して行われてもよい。本番時のトルクキャリブレーション処理では、脱調フラグマップ発生部107により、複数のフラグから確定フラグが選択されないように制限されている。これにより、図10のトルクキャリブレーション処理は、本番のタスクが開始されてから終了されるまで、繰り返し行われる。例えば、準備時では、繰り返し処理数を少なくしてトルクキャリブレーション処理を行ってもよい。また、本番時のトルクキャリブレーション処理の初期条件において、減少量と増分量とが準備時よりも少なく設定されていてもよい。例えば、準備時では、減少量と増分量とを例えば「10」に設定してトルクキャリブレーション処理を行い、本番時では、減少量と増分量とを例えば「1」に設定してトルクキャリブレーション処理を行ってもよい。これらにより、準備時にステッピングモータ310−360各々が脱調しないための大まかなトルクの値を決めておき、本番時に、準備時に決めたトルクの値をステッピングモータ310−360各々が脱調しない最低のトルクの値に漸近させることができ、準備時間を短縮することができる。
また、本番のタスクと並行してトルクキャリブレーション処理が実行できることで、本番時に使用するワークが、準備時に想定していたワークから変更された場合や、本番のタスク実行中に、ワークが変更された場合、さらに質量にばらつきのあるワークを処理するときに、トルクの値を本番のタスク実行中に動的に変更することができる。これにより、本番のタスクを中断することなく、また、タスクを中断して準備作業を再度行う煩雑さを解消し、それによるダウンタイムを解消させることができる。
さらに、トルクキャリブレーション処理を行う区間を、タスクの一部区間に制限してもよい。例えば、トルクキャリブレーション処理を、ロボット装置が作業員と協働して作業を行う区間に制限することで、ロボット装置は、その区間で過度なトルクで動作しない。作業員がアーム等に接触した場合でも、接触してすぐにステッピングモータが脱調するため、作業員の安全性を確保することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
50…操作部、60…表示部、100…制御装置、101…システム制御部、102…操作部I/F、103…表示制御部、104…ドライバユニットI/F、105…タスクプログラム記憶部、106…タスクコントローラ、107…脱調フラグマップ発生部、108…トルクマップ記憶部、109…トルクマップ更新部、110…トルクキャリブレーションコントローラ、120…制御/データバス、210〜260…ドライバユニット、211…制御部、212…電源回路、213…パルス信号発生部、215…エンコーダ、216…カウンタ、217…脱調判定部、310〜360…ステッピングモータ。

Claims (15)

  1. 複数の関節部を有する多関節アーム機構を装備するロボット装置において、
    前記関節部の動力源としてのステッピングモータと、
    前記ステッピングモータに対するパルス信号を位置又は速度に関する指令値に従って発生し、トルク指令値に従って励磁電流を発生するモータドライバと、
    前記ステッピングモータの脱調状態を検知する脱調検知部と、
    前記アーム機構の手首基準点又は手先基準点を予定軌道の始点から終点まで移動させ、前記予定軌道上の位置又は区間においてワークに対する作業を実行させるために前記指令値を前記トルク指令値とともに前記モータドライバに所定周期で繰り返し供給させ、前記ステッピングモータの脱調状態に基づいて前記トルク指令値を更新するトルクキャリブレーション処理を繰り返すトルクキャリブレーション制御部とを具備するロボット装置。
  2. 前記モータドライバは前記ステッピングモータが脱調を発生したとき前記ステッピングモータの励磁位置を変更して回転停止を回避するために前記パルス信号を再発生する請求項1記載のロボット装置。
  3. 前記トルクキャリブレーション制御部は、前記トルクキャリブレーション処理を前記予定軌道の全域わたって前記ステッピングモータの脱調が解消するまで繰り返す請求項1記載のロボット装置。
  4. 前記トルクキャリブレーション制御部は、前記トルク指令値を所定の最大トルクを表す値に初期化させ、前記ステッピングモータの脱調が発生した脱調時点の前記トルク指令値を前記脱調時点のトルクを所定の増分量で増加させたトルクを表す値に更新させ、前記ステッピングモータの脱調が発生していない非脱調時点の前記トルク指令値を前記非脱調時点のトルクを所定の減少量で減少させたトルクを表す値に更新させる請求項1記載のロボット装置。
  5. 前記増分量は前記減少量より大きい請求項4記載のロボット装置。
  6. 前記増分量は前記減少量の2倍より小さい請求項5記載のロボット装置。
  7. 前記トルクキャリブレーション制御部はユーザ指示に従って前記増分量と前記減少量とを任意に設定させる請求項4記載のロボット装置。
  8. 前記増分量は前記減少量と等価である請求項4記載のロボット装置。
  9. 前記トルクキャリブレーション制御部は、前記ステッピングモータの脱調に伴って更新されたトルク指令値により実行したトルクキャリブレーション処理で脱調が発生しないとき、前記脱調時点のトルク指令値として確定させる請求項1記載のロボット装置。
  10. 前記トルクキャリブレーション制御部は前記ステッピングモータの脱調が複数の時点で連続して発生したとき、前記連続する複数の時点のうち最初の時点とそれに連続する少なくとも一つの時点の前記トルク指令値を更新させ、前記連続する複数の時点のうち前記少なくとも一つの時点より後方の時点の前記トルク指令値を維持させる請求項1記載のロボット装置。
  11. 前記トルクキャリブレーション制御部は前記ステッピングモータの脱調が複数の時点で連続して発生したとき、前記連続する複数の時点のうち最初の時点の前記トルク指令値を更新させ、前記連続する複数の時点のうち前記最初の時点より後方の時点の前記トルク指令値を維持させる請求項1記載のロボット装置。
  12. 前記トルクキャリブレーション制御部は、前記ステッピングモータの脱調が発生した脱調時点の前記トルク指令値を、前記脱調時点の直前の少なくとも一つの時点の脱調状態に応じて前記脱調時点のトルクを所定の増分量で増加させたトルクと前記脱調時点のトルクで維持させたトルクとのいずれかを表す値に更新させる請求項4記載のロボット装置。
  13. 前記トルクキャリブレーション制御部は、前記ステッピングモータの脱調が発生した脱調時点の前記トルク指令値を前記脱調時点のトルクを所定の増分量で増加させたトルクを表す値に更新させる請求項1記載のロボット装置。
  14. 前記トルクキャリブレーション制御部は、前記ステッピングモータの脱調が発生していない非脱調時点の前記トルク指令値は前記非脱調時点のトルクを所定の減少量で減少させたトルクを表す値に更新させる請求項1記載のロボット装置。
  15. 前記トルクキャリブレーション制御部は、前記トルク指令値を所定の最大トルクより低いトルクを表す値に初期化させ、前記ステッピングモータの脱調が発生した脱調時点の前記トルク指令値を前記脱調時点のトルクを所定の増分量で増加させたトルクを表す値に更新させ、前記ステッピングモータの脱調が発生していない非脱調時点の前記トルク指令値を前記非脱調時点のトルクを所定の減少量で減少させたトルクを表す値に更新させる請求項1記載のロボット装置。
JP2015152591A 2015-07-31 2015-07-31 ロボット装置 Pending JP2018149605A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015152591A JP2018149605A (ja) 2015-07-31 2015-07-31 ロボット装置
PCT/JP2016/071639 WO2017022533A1 (ja) 2015-07-31 2016-07-22 ロボット装置
TW105123765A TW201703949A (zh) 2015-07-31 2016-07-27 機器人裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015152591A JP2018149605A (ja) 2015-07-31 2015-07-31 ロボット装置

Publications (1)

Publication Number Publication Date
JP2018149605A true JP2018149605A (ja) 2018-09-27

Family

ID=57942936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015152591A Pending JP2018149605A (ja) 2015-07-31 2015-07-31 ロボット装置

Country Status (3)

Country Link
JP (1) JP2018149605A (ja)
TW (1) TW201703949A (ja)
WO (1) WO2017022533A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021220780A1 (ja) * 2020-04-30 2021-11-04 株式会社島津製作所 分析装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112748741B (zh) * 2020-12-25 2022-03-29 华南理工大学 一种不同姿态四足爬壁机器人的关节扭矩确定方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08220643A (ja) * 1995-02-14 1996-08-30 Ricoh Co Ltd 画像形成装置
JP2000047731A (ja) * 1998-07-29 2000-02-18 Janome Sewing Mach Co Ltd スカラロボット
JP2001346398A (ja) * 2000-06-01 2001-12-14 Fuji Photo Optical Co Ltd 光学機器におけるステッピングモータ制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021220780A1 (ja) * 2020-04-30 2021-11-04 株式会社島津製作所 分析装置

Also Published As

Publication number Publication date
WO2017022533A1 (ja) 2017-02-09
TW201703949A (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
WO2016204099A1 (ja) ロボット装置及びモータ制御装置
JP6659238B2 (ja) ロボット装置及びステッピングモータ制御装置
JP5971887B2 (ja) マニピュレータの制御方法および制御装置
JP2017039170A (ja) ロボット装置
JP6595206B2 (ja) 多関節アーム機構の動作制御装置及びロボット装置
KR20090050024A (ko) 피작업물 반송 장치
WO2016208431A1 (ja) ロボット装置
WO2016104290A1 (ja) ロボットシステム及びロボット装置
WO2017022533A1 (ja) ロボット装置
WO2017043583A1 (ja) ロボット装置
JP2016209944A (ja) ロボットシステム
CN109304711A (zh) 串联机器人轨迹规划方法
TW201622920A (zh) 機器人裝置及機器人控制裝置
WO2016190141A1 (ja) ロボット装置及びステッピングモータ制御装置
WO2018216204A1 (ja) マスタスレーブマニピュレータとその制御方法
CN111699079B (zh) 协调系统、操作设备和方法
JP2017052072A (ja) ロボット装置
JP7178994B2 (ja) 把持システム
JP2012228761A (ja) ロボットシステム及び被作業物の製造方法
Paatz Anatomy of a Robot
Wang et al. Control system design of a case packing robot based on Simotion
JP6648491B2 (ja) 制御装置、ロボットおよびロボットシステム
JP2013111736A (ja) ロボットシステムおよび加工品の製造方法
WO2019207687A1 (ja) 水平多関節ロボット
Shaik et al. Energy Usage Simulation for 2 Articulated Robot Designs Having Stationary Motors and a Serial Robot Type Workspace