説明

制御装置およびロボットアームの制御方法

【課題】本発明は、多関節型ロボットアームの滑らかな動作を実現することができる制御装置を提案する。
【解決手段】
本発明の制御装置2は、第一駆動モータ、第二駆動モータ、および第三駆動モータにかかる負荷イナーシャ、重力トルク、モータトルク、ならびにモータイナーシャに加えて、ばね装置のトルク、ならびに第一駆動モータ、第二駆動モータ、および第三駆動モータそれぞれの動力を伝達するための駆動系部材列のイナーシャである駆動系イナーシャのうちの少なくともいずれか一つを用いて、第一駆動モータ、前記第二駆動モータ、および第三駆動モータの角加速度を算出する加速度算出手段を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多関節型ロボットアームを制御する制御装置に関する。
【背景技術】
【0002】
従来、多関節型ロボットアームの滑らかな動作を実現するために、ロボットアームを動作させる駆動モータの加速度を制御している。駆動モータの加速および減速それぞれにおいて必要な時間は、駆動モータにかかる負荷イナーシャ、モータイナーシャ、モータトルク、モータ速度により決定される。そのため、加速および減速それぞれにおいて必要な時間としては、最小または最大の負荷イナーシャから算出された固定値を設定していた。
【0003】
ところで、多関節型ロボットアームは、動作することにより自らの姿勢が変化する。このため、多関節型ロボットアームを滑らかに動作させるためには、この姿勢変化に伴う駆動モータにかかる力の変動、より具体的には駆動モータにかかる負荷イナーシャと重力トルクとの変動も考慮する必要がある。そこで、多関節型ロボットアームの姿勢変更に伴うこれらの変動を考慮して、滑らかな動作を行うように制御する制御装置が、例えば、特許文献1に開示されている。
【0004】
より具体的には、特許文献1では、多関節型ロボットアームの姿勢変化による負荷イナーシャの変動と重力トルクの変動とを考慮して、駆動モータの加速時間および減速時間を可変とすることができる制御装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−102215号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、上述した特許文献1の制御装置は、多関節型ロボットアームの姿勢変化に起因する負荷イナーシャの変動と重力トルクの変動とを考慮したものであるが、多関節型ロボットアームの実際の詳細な構造を考慮して、駆動モータの適切な加速度を求めるものではない。
【0007】
すなわち、一般的には多関節型ロボットアームは、姿勢変化に伴い生じる関節部に加わる重力負荷を低減するためのバランサ(ばね装置)、およびギアなど駆動モータからの動力を伝達するための駆動系部材列をさらに備えてなる構成である。このため、多関節型ロボットアームの滑らかな動作を実現するためには、上述したバランサ、駆動系部材列に関わって作用する力も考慮する必要がある。
【0008】
ところが、特許文献1では、バランサや駆動系部材列に関わる力を考慮した構成となっていないため、多関節型ロボットアームの滑らかな動作を実現することができない。
【0009】
本発明は、上述した問題点に鑑みてなされたものであり、その目的は、多関節型ロボットアームの滑らかな動作を実現することができる制御装置およびロボットアームの制御方法を実現することにある。
【課題を解決するための手段】
【0010】
本発明に係る制御装置は、上記した課題を解決するために、基部と、第一リンク部材と、 第二リンク部材と、第三リンク部材と、前記基部に対して、回動自在に前記第一リンク部材の一方の端部を接合する第一接合部と、該基部に対して前記第一リンク部材の一方の端部を回動させるための第一駆動モータとを有する第一関節部と、前記第一リンク部材の他方の端部と前記第二リンク部材の一方の端部とを互いに回動自在に接合する第一接合部と、該第一リンク部材の他方の端部と前記第二リンク部材の一方の端部とを互いに回動させるための第二駆動モータとを有する第二関節部と、前記第二リンク部材の他方の端部と前記第三リンク部材の一方の端部とを互いに回動自在に接合する第三接合部と、該第二リンク部材の他方の端部と前記第三リンク部材の一方の端部とを互いに回動させるための第三駆動モータとを有する第三関節部と、前記第二リンク部材および第三リンク部材の姿勢変更に伴い生じる前記第二関節部に加わる重力負荷を低減するためのばね装置と、を備えたロボットアームの動作を、前記第一駆動モータ、第二駆動モータ、および第三駆動モータを介して制御する制御装置であって、前記第一駆動モータ、第二駆動モータ、および第三駆動モータにかかる負荷イナーシャ、重力トルク、モータトルク、ならびにモータイナーシャに加えて、前記ばね装置のトルク、ならびに該第一駆動モータ、第二駆動モータ、および第三駆動モータそれぞれの動力を伝達するための駆動系部材列のイナーシャである駆動系イナーシャのうちの少なくともいずれか一つを用いて、前記第一駆動モータ、前記第二駆動モータ、および第三駆動モータの角加速度を算出する加速度算出手段を備えている。
【0011】
上記した構成によると、制御装置は、加速度算出手段を備えているため、ばね装置のトルクおよび前記駆動系イナーシャのうちの少なくともいずれか一つを用いて第一駆動モータ、第二駆動モータ、および第三駆動モータの角加速度を算出することができる。
【0012】
このため、制御装置は、ばね装置、駆動系部材列に関わって作用する力も考慮した上で、多関節型ロボットアームにおける第一駆動モータ、第二駆動モータ、および第三駆動モータそれぞれの角加速度を算出することができる。
【0013】
したがって、本発明に係る制御装置は、実際のロボットアームの各関節部に働く力を考慮して第一駆動モータ、第二駆動モータ、および第三駆動モータの適切な角加速度を算出することできるため、このロボットアームの滑らかな動作を実現することができるという効果を奏する。
【0014】
また、本発明に係る制御装置は、前記第二駆動モータおよび前記第三駆動モータそれぞれは、同一方向に延在した回転軸を中心に回動しており、前記加速度算出手段が、前記第二関節部が備える第二駆動モータおよび前記第三関節部が備える第三駆動モータの両者が共に動作している場合における、該第二関節部と該第三関節部との相互間で作用する慣性力に起因して生じるトルクを、前記第二駆動モータおよび第三駆動モータそれぞれのモータトルクから減算して、前記第二駆動モータおよび前記第三駆動モータの角加速度を算出するように構成されていてもよい。
【0015】
上記した構成によると、加速度算出手段は、第二関節部が備える第二駆動モータおよび第三関節部が備える第三駆動モータの両者が共に動作している場合における、該第二関節部と該第三関節部との相互間で作用する慣性力に起因して生じるトルクを、第二駆動モータおよび第三駆動モータそれぞれのモータトルクから減算して角加速度を算出する。つまり、該第二関節部と該第三関節部との相互間で作用する慣性力による影響をモータトルクから取り除いて角加速度を算出することができる。
【0016】
したがって、本発明に係る制御装置は、実際のロボットアームの各関節部に働く力を考慮して第一駆動モータ、第二駆動モータ、および第三駆動モータの適切な角加速度を算出することできる。
【0017】
また、本発明に係る制御装置は、前記第一駆動モータ、前記第二駆動モータ、および前記第三駆動モータそれぞれで固有に定められた、駆動モータの回転数に応じた駆動モータのトルクを示すトルク情報を記憶する記憶装置をさらに備え、前記加速度算出手段は、前記第一駆動モータ、第二駆動モータおよび前記第三駆動モータにおける動作開始から動作終了までの間の加速時および減速時における角加速度から、前記第一駆動モータ、前記第二駆動モータ、および前記第三駆動モータそれぞれの回転数を算出し、前記記憶装置に記憶した前記トルク情報に基づき、算出した回転数に対応する該第一駆動モータ、該第二駆動モータ、および第三駆動モータのモータトルクをそれぞれ求め、これら求めたモータトルクを用いて、前記第一駆動モータ、前記第二駆動モータ、および前記第三駆動モータの角加速度を算出するように構成されていてもよい。
【0018】
また、本発明に係る制御装置は、前記加速度算出手段によって算出した角加速度が、時間軸に対して台形パターンとなるように前記第一駆動モータ、前記第二駆動モータ、および前記第三駆動モータに対する指令を補正するための補正指令値を生成する補正指令値生成手段を備える。
【0019】
上記した構成によると、補正指令値生成手段をさらに備えるため、前記加速度算出手段によって算出した角加速度が、時間軸に対して台形パターンとなるように前記第一駆動モータ、前記第二駆動モータ、および前記第三駆動モータに対する指令を補正することができる。これにより、第一駆動モータ、第二駆動モータ、および第三駆動モータの加加速度を略一定とすることができる。
【0020】
すなわち、第一駆動モータ、第二駆動モータ、および第三駆動モータにおける動作開始時点、加速期間から一定速度期間に切り替わる点、一定速度期間から減速期間に切り替わる点、減速期間から動作終了時点に切り替わる点等においてパルス的に生じる加加速度を低減することができる。
【0021】
したがって、ロボットアームの動作時に生じる振動を抑制することができる。
【0022】
また、本発明に係るロボットアームの制御方法は、上記した課題を解決するために、基部と、第一リンク部材と、第二リンク部材と、第三リンク部材と、前記基部に対して、回動自在に前記第一リンク部材の一方の端部を接合する第一接合部と、該基部に対して前記第一リンク部材の一方の端部を回動させるための第一駆動モータとを有する第一関節部と、 前記第一リンク部材の他方の端部と前記第二リンク部材の一方の端部とを互いに回動自在に接合する第一接合部と、該第一リンク部材の他方の端部と前記第二リンク部材の一方の端部とを互いに回動させるための第二駆動モータとを有する第二関節部と、前記第二リンク部材の他方の端部と前記第三リンク部材の一方の端部とを互いに回動自在に接合する第三接合部と、該第二リンク部材の他方の端部と前記第三リンク部材の一方の端部とを互いに回動させるための第三駆動モータとを有する第三関節部と、前記第二リンク部材および第三リンク部材の姿勢変更に伴い生じる前記第二関節部に加わる重力負荷を低減するためのばね装置と、を備えたロボットアームの動作を、前記第一駆動モータ、第二駆動モータ、および第三駆動モータを介して制御するロボットアームの制御方法であって、前記第一駆動モータ、第二駆動モータ、および第三駆動モータにかかる負荷イナーシャ、重力トルク、モータトルク、ならびにモータイナーシャに加えて、前記ばね装置のトルク、該第一駆動モータ、第二駆動モータ、および第三駆動モータそれぞれの動力を伝達するための駆動系部材列のイナーシャである駆動系イナーシャのうちの少なくともいずれか一つを用いて、前記第一駆動モータ、前記第二駆動モータ、および第三駆動モータの角加速度を算出する。
【0023】
上記した方法によると、ばね装置のトルクおよび前記駆動系イナーシャのうちの少なくともいずれか一つを用いて第一駆動モータ、第二駆動モータ、および第三駆動モータの角加速度を算出することができる。
【0024】
このため、ばね装置、駆動系部材列に関わって作用する力も考慮した上で、多関節型ロボットアームにおける第一駆動モータ、第二駆動モータ、および第三駆動モータそれぞれの角加速度を算出することができる。
【0025】
したがって、本発明に係るロボットアームの制御方法は、実際のロボットアームの各関節部に働く力を考慮して第一駆動モータ、第二駆動モータ、および第三駆動モータの適切な角加速度を算出することできるため、このロボットアームの滑らかな動作を実現することができるという効果を奏する。
【発明の効果】
【0026】
本発明は以上に説明したように構成され、実際のロボットアームの各関節部に働く力を考慮して第一駆動モータ、第二駆動モータ、および第三駆動モータの適切な角加速度を算出することできるという効果を奏する。
【図面の簡単な説明】
【0027】
【図1】本発明の実施形態に係るロボットアーム制御システムを示す概略図である。
【図2】図1に示すロボットアーム制御システムが備えるロボットアームのリンク部材と関節部との位置関係を模式的に示す図である。
【図3】図1に示すロボットアーム制御システムが備える制御装置に係る機能的構造の一例を示すブロック図である。
【図4】本実施の形態に係るロボットアームにおける第二関節部および第三関節部それぞれの角加速度の算出フローを説明するフローチャートである。
【図5】所定の定格出力容量を有する駆動モータのモータトルクと(最高)回転数との対応関係の概略を示す表である。
【図6】図6(a)は、駆動モータの動作速度の時間軸に対する変化について、本実施の形態に係る加加速度制御の場合と従来の非加加速度制御の場合とを比較したグラフである。図6(b)は、駆動モータを回す際の角加速度の時間軸に対する変化について、加加速度制御の場合と非加加速度制御の場合とを比較したグラフである。図6(c)は、発生するジャークについて加加速度制御の場合と非加加速度制御の場合とを比較したグラフである。
【図7】駆動モータの角加速度の時間軸に対する変化パターンを示すグラフと駆動モータの速度の時間軸に対する変化パターンを示すグラフとを対比して示す図である。
【発明を実施するための形態】
【0028】
以下、本発明の好ましい実施の形態を、図面を参照して説明する。なお、以下では全ての図を通じて同一又は対応する構成部材には同一の参照符号を付して、その説明については省略する。
【0029】
図1は、本発明の実施形態に係るロボットアーム制御システム100を示す概略図である。
【0030】
本実施の形態に係るロボットアーム制御システム100は、図1に示すように、多関節型のロボットアーム1と、該ロボットアーム1の動作を制御する制御装置2とを備えてなる構成である。
【0031】
(ロボットアームの構成)
まず、ロボットアーム1の構成について図1および図2を参照して説明する。図2は、図1に示すロボットアーム制御システム100が備えるロボットアーム1のリンク部材13と関節部12との位置関係を模式的に示す図である。
【0032】
本実施の形態に係るロボットアーム1は、複数の関節部(第一関節部12a〜第六関節部12f)と、関節部間をつなぐ、複数の棒形状のリンク部材(第一リンク部材13a〜第五リンク部材13e)とを備えた、例えば、製造ラインにおける溶接、塗装、組み立て等を行う産業用ロボットである。なお、第一関節部12a〜第三関節部12c、もしくは第一関節部12a〜第六関節部12fを特に区別して示す必要が無い場合は単に関節部12と称する。また、第一リンク部材13a〜第五リンク部材13eを特に区別して示す必要がない場合は単にリンク部材13と称する。
【0033】
ロボットアーム1は、各関節部12において、異なるリンク部材13を相互に回動可能に接合し、関節部12が備える駆動モータ15により回動することができるようになっている。また、各関節部12の駆動モータ15の回転角を制御することにより、ロボットアーム1の先端部αの位置を決定することができる。また、各関節部12の駆動モータ15の角加速度を制御することにより、ロボットアーム1のある姿勢から別の姿勢へと変更する速度を決定することができる。
【0034】
より具体的には、図1および図2に示すように、ロボットアーム1は、基部11、基軸部30、および手首軸部31を備えてなる構成である。なお、図1および図2では特に図示していないが、手首軸部31の先端部αには、対象物を把持するためのハンド、または対象物に対して溶接を行うための溶接装置等のエンドエフェクタが取り付け可能となっている。
【0035】
基部11は、ロボットアーム1を地面または載置台等に設置するための土台である。ロボットアーム1を安定して設置できるように底面において一定の面積を有する直方体形状をしているがこれに限定されるものではない。例えば、円柱形状であってもよい。
【0036】
基部11の上面には、基軸部30が設けられている。基軸部30は、ロボットアーム1の主たる動作姿勢を規定する部分であり、第一関節部12a、第一リンク部材13a、第二関節部12b、第二リンク部材13b、第三関節部12c、および第三リンク部材13cから構成される。
【0037】
第一関節部12aは、基部11に対して、垂直方向に延在した回転軸を中心に回動自在となるように第一リンク部材13aの一端を接合する接合部14aと、基部11に対して第一リンク部材13aを回動させる第一駆動モータ15aとを備えてなる構成である。すなわち、この第一関節部12aによって第一リンク部材13aを水平面上で旋回させることができる。
【0038】
第一リンク部材13aは、その一方の端部で上述したように第一関節部12aを介して基部11に接合されており、その他方の端部で、第二関節部12bを介して第二リンク部材13bと接合される。
【0039】
第二関節部12bは、第一リンク部材13aと第二リンク部材13bとを相互に回動自在に接合する接合部14bと、この第一リンク部材13aと第二リンク部材13bとを回動させる第二駆動モータ15bとを備えてなる構成である。第二関節部12bは、紙面奥行き方向に延在する回転軸を中心に回動自在となるように第一リンク部材13aと第二リンク部材13bとを接合する。
【0040】
第二リンク部材13bは、棒形状の部材であり、その一方の端部で上述したように第二関節部12bを介して第一リンク部材13aと接合されており、その他方の端部で、第三関節部12cを介して第三リンク部材13cと接合される。
【0041】
第三関節部12cは、第二リンク部材13bと第三リンク部材13cとを相互に回動自在に接合する接合部14cと、この第二リンク部材13bと第三リンク部材13cとを回動させる第三駆動モータ15cとを備えてなる構成である。第三関節部12cは、紙面奥行き方向に延在する回転軸を中心に回動自在となるように、すなわち第二関節部12bと同じ方向に回動自在となるように、第二リンク部材13bと第三リンク部材13cとを接合する。
【0042】
また、基軸部30では、接合部14bと接合部14cとの間の第二リンク部材13bにバランサ32が設けられている。バランサ32は、第二リンク部材13bおよび第三リンク部材13cの姿勢変更に伴い、第二駆動モータ15bに発生する重力トルクを相殺して軽減するものである。このバランサ32には、スプリングが内蔵されており、棒形状を成す第二リンク部材13bと平行に配される。バランサ32の一端は、第一リンク部材13aのある点に回動自在に取り付けられ、他端は、第二リンク部材13bのある点、例えば、第三関節部12cの回転軸に回動自在に取り付けられている。このため、第二リンク部材13bが図1に示すような直立姿勢から手首軸部31の先端方向側に傾斜するように回転し、これに伴い第三リンク部材13cが移動したとき、このバランサ32により第二リンク部材13bに、その重力方向の反対向きの力が付与され、これにより第二関節部12bの第二駆動モータ15bへの重力によるトルクを軽減させることができる。
【0043】
基軸部30の先端部αは、手首軸部31と接合されている。手首軸部31は、作業を行うエンドエフェクタ(不図示)の細かい位置決めを制御する部分である。すなわち、本実施の形態に係るロボットアーム1では、基軸部30によって自身の主たる姿勢を規定し、手首軸部31によりエンドエフェクタの作業位置に応じるように細かい位置決めがなさるようになっている。
【0044】
手首軸部31は、第四関節部12d、第四リンク部材13d、第五関節部12e、第五リンク部材13e、および第六関節部12fを備えてなる構成である。手首軸部31も基軸部30と同様に、第四関節部12dを介して第三リンク部材13cと第四リンク部材13dとが、第五関節部12eを介して、第四リンク部材13dと第五リンク部材13eとが相互に回動自在に取り付けられ、第四・第五駆動モータ15d、15eによってそれぞれ回動させられるように構成されている。
【0045】
より具体的には、第四関節部12dおよび第六関節部12fは、第三リンク部材13cの長手方向と一致する方向に配された回転軸を中心に回動するようになっている。一方、第五関節部12eは、第二、第三関節部12b、12cと同じ方向に回動するようになっている。
【0046】
このように、手首軸部31は、基軸部30と同様に複数の関節部12を介して複数のリンク部材13が接合されている。
【0047】
(制御装置の構成)
次に、上述した構成を有するロボットアーム1の動作を制御する制御装置2について図3を参照して説明する。図3は、図1に示すロボットアーム制御システム100が備える制御装置2に係る機能的構造の一例を示すブロック図である。
【0048】
制御装置2は、ロボットアーム1の動作を制御するものであり、通信制御部51、主制御部52、および記憶装置53を備えてなる構成である。
【0049】
通信制御部51は、主制御部52からの制御指示に基づき、ロボットアーム1との通信を確立するものである。本実施の形態に係るロボットアーム1と制御装置2とは有線により接続されるように構成されているが、これに限定されるものではない。例えば、無線により接続を確立し、相互にデータを送受信できる構成であってもよい。
【0050】
主制御部52は、制御装置2における各種制御を行うものであり、機能ブロックとして、動作計画部61および補正指令値生成部62を備えてなる構成である。
【0051】
動作計画部61は、ロボットアーム1の動作パターンを規定する動作計画時において、このロボットアーム1の動作パターンを規定するためのロジックを設定するものである。また、動作計画部61は、このロジックを設定するにあたり、ロボットアーム1の各関節部12における駆動モータ15の適切な角加速度(駆動モータ15の動作中において最高となる角加速度)を求める。なお、動作計画部61による各関節部12における駆動モータ15の角加速度の算出処理については後述する。
【0052】
補正指令値生成部62は、動作計画部61で設定された動作計画のロジックに即して動作するように、駆動モータ15に設定したパラメータに対する補正値の算出を行うものである。なお、補正指令値生成部62によるこの補正値の算出処理についての詳細は後述する。
【0053】
記憶装置53は、読み書き可能な記録媒体であり、動作計画部61にて駆動モータ15の最高となる角加速度を算出するにあたり利用する情報である算出情報63を記憶している。この算出情報63には、駆動モータ15において固有に定められた、駆動モータ15の回転数に応じたモータトルクTmiを示すトルク情報も含まれる。なお、トルク情報については後述する。
【0054】
ところで上述した構成を有する本実施の形態に係るロボットアーム制御システム100では、ロボットアーム1の姿勢変更を考慮し、動作計画部61が各関節部12に作用する力の関係から適切な駆動モータ15の最高となる角加速度を求める。そして、求めた角加速度となるように駆動モータ15を回転させ、駆動モータ15の加速時および減速時の速度が時間軸に対して台形(または、三角形)となるように駆動モータ15の指令値を生成するようになっている。
【0055】
つまり、駆動モータ15は、加速、定速、減速という一連の速度パターンで動作を行うが、この速度パターンの加速時および減速時において角加速度が、時間軸に対して台形となるように駆動モータ15への指令値を補正している。また、駆動モータ15の動作において定速時がない場合、つまり加速してすぐに減速に動作が移るような場合は、この台形形状が三角形となる。このような場合も加速時および減速時において角加速度が時間軸に対して台形となるように駆動モータ15に対する指令値を補正する。なお、本明細書では、この定速時が存在する動作を長ピッチの動作、定速時が存在しない動作を短ピッチの動作と称する。
【0056】
上述したように、動作計画部61は、駆動モータ15の速度パターンが時間軸に対して台形(短ピッチの場合は三角形)となるようにロボットアーム1の動作計画を生成し、この動作計画に合わせて動作させる駆動モータ15の最高角加速度を決定している。以下において、動作計画部61による各関節部12における駆動モータ15の適切な角加速度の算出方法について説明する。
【0057】
(ロボットアームの姿勢変更を考慮した角加速度の算出)
まず、動作計画部61は、この角加速度の算出を、ロボットアーム1の動作パターンを規定する動作計画時に事前に求める。より具体的には、動作計画部61は、この角加速度を、回転運動の運動方程式に重力トルクを加えた以下の方程式を用いて求める。
【0058】
トルク=イナーシャ×角加速度+重力トルク
なお、角加速度以外の値(モータトルク、イナーシャ等に関連するパラメータの値)は、一番負荷の大きいロボットアーム1の操作開始時、動作終了時、加速開始時、加速終了時それぞれのタイミングで事前に求めている。つまり、実際にはロボットアーム1の動作姿勢をモニタリングしてイナーシャ等の値を求めることが理想的である。しかしながら、コストとパラメータの値の決定にかかる時間とを低減させるため、本実施の形態に係るロボットアーム1では、上述した一番負荷が大きくなるタイミングでモータトルクやイナーシャ等の値を求める。そして、求められたこれらの値は、算出情報63として記憶装置53に格納される。
【0059】
本実施形態では、ロボットアーム1の主要な動作を規定する基軸部30を例に挙げ、適切な角加速度の算出方法について説明するが、手首軸部31についても同様にして角加速度を求めることができる。
【0060】
基軸部30は上述したように、第一関節部12a、第二関節部12b、および第三関節部12cの3つの関節部12を有している。そこで、運動方程式をたてると次の数(1)ようになる。
【0061】
【数1】

なお、ここで駆動系伝達効率ETAとは、駆動モータ15の回転軸に対して垂直にとりつけられたギアなどの駆動系部材列を介し、リンク部材13に伝えられる力の伝達効率である。また、減速比Rとは、駆動モータ15の回転速度とリンク部材13の回転速度との比である。駆動系イナーシャIi2とは、駆動モータ15の回転軸に対して算出される駆動系部材列の持つ慣性モーメントである。
【0062】
なお、基軸部30において、第一関節部12aと、第二関節部12bおよび第三関節部12cとは回動する方向が異なる。そこで、数式(1)では、第一関節部12aに対する第二関節部12b、第三関節部12cから作用する力(慣性)は無視できるものとして計算することができる。また、逆に、第二関節部12bおよび第三関節部12cそれぞれに対する第一関節部12aから作用する力(慣性)も無視できるものとして計算することができる。
【0063】
上記した数式(1)から分かるように、各関節部の回転軸まわりにおけるイナーシャH(i=1,2,3)は、各関節部により回動されるリンク部材13のもつ慣性モーメントを各関節部の回転軸に対するものとして算出したイナーシャH(i=1,2,3)に、駆動モータ15およびギアなどの慣性モーメントを、減速比R(i=1,2,3)の二乗と駆動系伝達効率ETA(i=1,2,3)とをかけ合わせたものとを加えることで求めている。
【0064】
つまり、モータイナーシャIi1と駆動系イナーシャIi2とから、駆動モータ15から関節部12までの駆動系部材列の全慣性モーメントを駆動モータ15の回転軸に対する慣性モーメントとして算出することができる。これに減速比R(i=1,2,3)の二乗をかけることで、駆動系部材列の慣性モーメントを各関節部の回転軸に対する慣性モーメントとして算出することができる。さらに、これに駆動系伝達効率ETAをかけ合わせることによって、駆動モータ15の動力や駆動系部材列の慣性モーメントの影響がギア等の機械的伝達によりどれだけ伝達するか考慮することができる。
【0065】
さらには、第二関節部12bと第三関節部12cとでは、両者の間で作用する慣性力による影響(干渉)H23、H32を考慮するようになっている。また、第二関節部12bについては、第二リンク部材13bからの重力トルクUと、バランサ32によるバランサトルクTとが考慮され、第三関節部12cについては、第三リンク部材13cからの重力トルクUを考慮するようになっている。また、トルクT(i=1,2,3)は、駆動系伝達効率ETAと減速比RとをモータトルクTmi(i=1,2,3)に乗算して求められる。
【0066】
次に数式(1)から、第一関節部12aにおける角加速度は、以下数式(2)のように求めることができる。
【0067】
【数2】

ただし、H11について、ロボットアーム1の動作開始姿勢時をH11S、動作終了姿勢時をH11Eとすると、これらのうち値の大きい方をH11として採用する(|H11|=max(|H11S|,|H11E|))。
【0068】
つまり、第一リンク部材13a、第二リンク部材13b、第三リンク部材13cの姿勢変更に伴い、これらリンク部材13の重心位置および第一関節部12aからの距離が異なることにより負荷イナーシャH11の値が変化する。そこで、動作開始時の負荷イナーシャH11Sと動作終了時の負荷イナーシャH11Eとを比較して一番値が大きい方、つまり、第一関節部12aに負荷がかかっている方の値を採用する。
【0069】
次に、第二関節部12b、第三関節部12cにおける角加速度を求める。第二関節部12b、第三関節部12cでは、複合動作時の他の関節部12からの慣性力による影響(干渉)を考慮し、下記に示すように求める。
【0070】
まず、数式(1)から、第二関節部12bにおける角加速度、第三関節部12cにおける角加速度は、それぞれ以下の数式(3)、(4)のように求めることができる。
【0071】
【数3】

【0072】
【数4】

ただし、第二関節部12bおよび第三関節部12cの角加速度はこの時点では定まっていないので、最初の角加速度の算出は、以下の数式(5)、(6)を使用する。つまり、最初は第二関節部12bおよび第三関節部12cで相互に働く干渉H23はないものとして計算を行う。
【0073】
【数5】

【0074】
【数6】

これら数式(5)、(6)で第二関節部12bおよび第三関節部12cそれぞれの角加速度を求めると、この求めた値を利用して数式(3)、(4)を再計算する。より具体的には、数式(5)で求めた第二関節部12bの角加速度、数式(6)で求めた第三関節部12cの角加速度の値を利用して干渉項H23に第二関節部12b、第三関節部12cそれぞれの角加速度を乗算した値(干渉に関わる値)を算出する。
【0075】
この値の算出には、まず、第二関節部12b、第三関節部12cそれぞれの加速時および減速時の運動を考慮する。
【0076】
つまり、ロボットアーム1では、作業の内容、作業間隔等に応じて、駆動モータ15が加速し、一定の速度となる期間が所定期間存在した後、減速を行う速度パターンとなる場合(長ピッチの場合)と、加速し、瞬時に減速に切り替わる速度パターンとなる場合(短ピッチの場合)の2つのパターンがありうる。
【0077】
また、ロボットアーム1では、各関節部12における運動速度がそれぞれ異なる場合、一番速度が遅い関節部12に合わせて他の関節部12も運動を行うように規定されている。すなわち、ロボットアーム1における加速および減速時では、全関節部12の加速・減速時間を統一する。これは、定常速度到達までの時間を等しくして、補間精度を保つためである。そこで、以下の数式(7)によって一番、運動速度が遅い関節部12を選択する。
【0078】
【数7】

そして、この数式(7)にて求めたTTを利用して、ロボットアーム1を動作させる駆動モータ15の速度パターンが短ピッチであるのか長ピッチであるのか判定を行う。具体的には以下の数式(8)の不等式によって判定を行うことができる。
【0079】
【数8】

ここで、上記した長ピッチの場合の加速時間T、減速時間T、ならびに短ピッチの場合の加速時間T、減速時間Tをそれぞれ算出する。なお、求まる加速時間T、減速時間Tの中で一番長い時間を求めるようにする。
【0080】
したがって、加速時間T、減速時間Tは、長ピッチの場合は、以下の数式(9)に短ピッチの場合は、以下の数式(10)によって求められる。
【0081】
【数9】

【0082】
【数10】

また、長ピッチの場合の、干渉項H23に乗算する加速時の角加速度および減速時の角加速度を、数式(9)で求めた加速時間T、減速時間Tを利用して求めると以下の数式(11)のようになる。
【0083】
【数11】

一方、短ピッチの場合の、干渉項H23に乗算する加速時の角加速度および減速時の角加速度を、数(10)で求めた加速時間T、減速時間Tを利用して求めると以下の数式(12)のようになる。
【0084】
【数12】

以上のようにして、第二関節部12b、第三関節部12cについて加速時の角加速度と減速時の角加速度とを長ピッチの場合と短ピッチの場合とに分けて求める。このようにして求めた加速時と減速時との第二関節部12bおよび第三関節部12cの角加速度を干渉項H23に乗算して、数式(3)、(4)を求める。数式(3)、(4)を求めて得た結果(第二関節部12b、第三関節部12cそれぞれの角加速度の値)を利用して再度、上述したように第二関節部12b、第三関節部12cについて加速時および減速時の角加速度を長ピッチの場合と短ピッチの場合とに分けて求め、数式(3)、(4)を演算する。
【0085】
また、第二関節部12bおよび第三関節部12cそれぞれにおける動作開始角度と終点角度とから、動作時における第二駆動モータ15bおよび第三駆動モータ15cそれぞれの加速時および減速時での角加速度を求める。そして、求めた加速時および減速時における第二関節部12bおよび第三関節部12cの角加速度を利用して第二駆動モータ15bおよび第三駆動モータ15cの(最高となる)回転数を求めるようにも構成されている。
【0086】
次に図4を参照して、上記した第二関節部12b、第三関節部12cにおける角加速度の算出方法の処理の流れを具体的に説明する。図4は、本実施の形態に係るロボットアーム1における第二関節部12bおよび第三関節部12cそれぞれの角加速度の算出フローを説明するフローチャートである。
【0087】
ところで、上記した算出方法では、第二関節部12bと第三関節部12cとの間で作用する干渉(干渉項H23)を考慮した角加速度の演算について説明したが、本実施形態では、この干渉(干渉項H23)を考慮する際に、さらに駆動モータ15の回転数に応じたモータトルクTmiを用いる。
【0088】
より具体的には、例えば図5に示すように駆動モータ15は、固有に定められた、駆動モータ15の回転数に応じたモータトルクTmiが決まっている。図5は所定の定格出力容量を有する駆動モータ15のモータトルクTmiと(最高)回転数との対応関係の概略を示す表である。この図5では、縦軸がモータトルクTmiの値を示し、横軸が駆動モータ15の(最高)回転数を示している。
【0089】
図5から分かるように、駆動モータ15の(最高)回転数とモータトルクTmiとの関係は常に一定とならず、図5の点(a、b)にて両者の対応関係を示すグラフの傾きが変化している。そこで、本実施形態では、動作計画部61が、さらに駆動モータ15において固有に定められる回転数に応じたモータトルクTmiも考慮して角加速度の算出を行う。
【0090】
なお、ここでは、第二駆動モータ15b、および第三駆動モータ15cの角加速度算出にあたり、この回転数とモータトルクTmiの特性について考慮するが、先に説明した第一駆動モータ15aの角加速度算出時にも同様に考慮してもよい。
【0091】
図4に示すように、まず、動作計画部61は、上記した数式(5)、(6)により、第二関節部12bおよび第三関節部12cの角加速度を算出する(ステップS11、これ以降、S11のように称する)。つまり、最初の段階では、第二・第三関節部12b、12cについて角加速度が求められていないため、相互に作用する干渉を考慮することができない。また、同様に角加速度が求められていないため、駆動モータ15固有に定められている回転数に応じたモータトルクTmiも考慮できない。したがって、ステップS11で求めた角加速度は、第二・第三関節部12b、12cが単独で動作するとした場合の角加速度である。
【0092】
また、本実施形態では、制御装置2では、事前に各関節部12の動作角度(動作距離)と各関節部12の最高速度から動作速度を求め、最も遅い関節部12の動作時をTTとして求めている。そこで、上記したステップS11を行う際、この求めたTTを使って、単体で各関節部12が動作する場合の動作時の動作速度を求め、加速時間Tと減速時間Tとをそれぞれ算出する。
【0093】
次に、上記して求めたTTと、各関節部12での加速時間T、減速時間Tとから、第二関節部12bおよび第三関節部12cそれぞれにおける第二・第三駆動モータ15b、15cの速度パターンが長ピッチであるのか短ピッチであるのか判定する。具体的には、数式(8)に示す不等号を使って判定する(S12)。
【0094】
数式(8)に示す不等号の関係が成り立つ場合(S12において「YES」)、第二・第三駆動モータ15b、15cの速度パターンが長ピッチであると判定する。そして、動作計画部61が、長ピッチの場合について、各関節部(第二関節部12b、第三関節部12c)に関して加速時間および減速時間を合わせる(S13)。すなわち、ロボットアーム1全体の動きの中で、各関節部(第二関節部12b、第三関節部12c)での最大動作時間を求める。つまり、どれか一つの関節部12の動作時間が最大となる場合、他の関節部12はその動作時間に合わせて動作することとなる。各関節部12の加速時間T、減速時間Tは、長ピッチの場合、数式(9)に示す式により求められる。
【0095】
このようにして、長ピッチの場合について各関節部12の加速時間T、減速時間Tを求めると、数式(3)、(4)の干渉項H23に乗算する第二関節部12b、第三関節部12cの角加速度それぞれを数式(9)から求める。
【0096】
そして、この求めた値を数式(3)、(4)に代入して第二関節部12b、第三関節部12cそれぞれの角加速度を算出する(S14)。この演算は、第二駆動モータ15bおよび第二駆動モータ15bそれぞれにおいて固有に定められている回転数に応じたモータトルクTmiも考慮して行う。
【0097】
一方、ステップS12において「NO」の場合、駆動モータ15の速度パターンが短ピッチであると判定する。そして、動作計画部61は、短ピッチの場合について、各関節部12(第二関節部12b、第三関節部12c)に関して加速時間および減速時間を合わせる(S18)。すなわち、ロボットアーム1全体の動きの中で、各関節部12での加速時および減速時における最大動作時間を求める。各関節部12の加速時間T、減速時間Tは、短ピッチの場合、数式(20)に示す式により求められる。
【0098】
このようにして、短ピッチの場合について各関節部12の加速時間T、減速時間Tを求めると、数式(3)、(4)の干渉項H23に乗算する第二関節部12b、第三関節部12cの角加速度を数式(10)から求める。
【0099】
そして、この求めた角加速度を数式(3)、(4)に代入して第二関節部12b、第三関節部12cそれぞれの角加速度を算出する(S19)。この演算は、駆動モータ15において固有に定められている回転数に応じたモータトルクTmiも考慮して行う。
【0100】
上述したステップS13、S14により、長ピッチの場合における各関節部(第二関節部12b、第三関節部12c)の角加速度を求めると、ステップS13で求めた加速時間T、減速時間Tを使って、駆動モータ15の速度パターンが長ピッチであるのか短ピッチであるのか判定を再度行う(S15)。同様に、上述したステップS18、S19により、短ピッチの場合における各関節部12(第二関節部12b、第三関節部12c)の角加速度を求めると、ステップS18で求めた加速時間T、減速時間Tを使って、駆動モータ15の速度パターンが長ピッチであるのか短ピッチであるのか判定を再度行う(S20)。
【0101】
つまり、各関節部12(第二関節部12b、第三関節部12c)単体の動きだけを考慮してステップS12では長ピッチであるか短ピッチであるかを判断していた。しかしながら、ステップS13またはステップS18では、ロボットアーム1の動きの中での各関節部12(第二関節部12b、第三関節部12c)の動作速度に応じた加速時間T、減速時間Tを求めた。
【0102】
このため、加速時間T、減速時間Tには変更が生じており、この変更により駆動モータ15それぞれの速度パターンに対する判定が変化する場合がある。そこで、再度、ステップS15、またはステップS20で、駆動モータ15の動作パターンが、長ピッチであるのか、短ピッチであるのかについての判定を行う。
【0103】
ステップS15の判定において「YES」の場合、これ以降の処理(ステップS16、S17)はステップS13、ステップS14と同様な演算を、ステップS14で求めた第二関節部12b、第三関節部12cそれぞれの角加速度の値を使って行うため説明は省略する。
【0104】
また、ステップS20の判定において「YES」の場合、ステップS19で求めた第二関節部12b、第三関節部12cそれぞれの角加速度の値を使って、テップS13、ステップS14と同様な演算を行うため説明は省略する。
【0105】
一方、ステップS15において「NO」の場合、ステップS21に進み、ステップS14で求めた第二関節部12b、第三関節部12cそれぞれの角加速度の値を使って、ステップ18、ステップS19と同様な演算を行う(S21、S22)。このため、これ以降の処理ステップについての説明は省略する。
【0106】
またステップS20において「NO」の場合も、これ以降の処理(ステップS21、S22)はステップS19で求めた第二関節部12b、第三関節部12cそれぞれの角加速度の値を使って、テップS18、S19と同様な演算を行う(S21、S22)。このため、これ以降の処理ステップについての説明は省略する。
【0107】
以上のように、3回の繰り返し演算により第二・第三関節部12b、12cの角加速度を求める。なお、第二・第三関節部12b、12cの角加速度を上述した3回の繰り返し演算により求める構成であるが、演算を行う制御装置2の主制御部52の処理能力等により、この演算回数を3回よりも多く繰り返してもよい。演算を繰り返す回数が増えれば増えるほど、求められる第二・第三関節部12b、12cにおける第二・第三駆動モータ15b、15cの角加速度の値の精度は高くなっていく。
【0108】
このようにして、主制御部52における動作計画部61により、ロボットアーム1の動作計画時に、第二関節部12bおよび第三関節部12cの適切な角加速度を求める。
【0109】
以上、基軸部30を例に挙げて各関節部12における駆動モータ15の適切な角加速度の算出処理について説明した。このように、動作計画時において設定したロジックでの駆動モータ15の適切な角加速度を求めると、制御装置2は、次に、ロボットアーム1がより滑らかな動きとなるように、補正指令値(指令値)を生成する。より具体的には、駆動モータ15(第一駆動モータ15a、第二駆動モータ15b、第三駆動モータ15c)の角加速度の時間軸に対する変化が台形形状となるような補正指令値を生成する。
【0110】
例えば、図6(a)に示すように、駆動モータ15の動作速度(角速度)を時間軸に対して台形形状となるように制御するものとする。ここで、図6(b)に示すように角加速度をいきなり最高角加速度となるように駆動モータ15を動作させる場合と、角加速度の時間軸に対する変化が台形形状となるように駆動モータ15を動作させる場合とを比較する。この比較において、図6(c)に示すように前者は加加速度(ジャーク)がパルス状に発生する。一方、後者は、前者よりも加加速度の発生が大幅に低減される。なお、前者を非加加速度制御、後者を加加速度制御と称するものとする。
【0111】
なお、図6(a)は、駆動モータ15の動作速度の時間軸に対する変化について、本実施の形態に係る加加速度制御の場合と従来の非加加速度制御の場合とを比較したグラフである。図6(b)は、駆動モータ15を回す際の角加速度の時間軸に対する変化について、加加速度制御の場合と非加加速度制御の場合とを比較したグラフである。図6(c)は、発生するジャークについて加加速度制御の場合と非加加速度制御の場合とを比較したグラフである。
【0112】
ロボットアーム1のように運動系にばね性がある場合、上述した加加速度が大きいほど振動が出やすくなる。そこで、本実施形態では、補正指令値生成部62が、角加速度の時間軸に対する変化が台形形状となるように駆動モータ15を動作させるために、駆動モータ15に対す指令値を補正した補正指令値を生成する。
【0113】
(補正指令値の算出方法)
以下において、図7を参照して、補正指令値の算出方法について説明する。なお、駆動モータ15の速度パターンが長ピッチの場合を例に挙げて説明する。図7は、駆動モータ15の角加速度の時間軸に対する変化パターンを示すグラフと駆動モータ15の速度の時間軸に対する変化パターンを示すグラフとを対比して示す図である。図7において、Vmは駆動モータ15の最高速度、Amは駆動モータ15の最高角加速度を示すものとする。
【0114】
まず、図7の下側に示す、駆動モータ15の速度の時間軸に対する変化パターンを表したグラフに示すように、駆動モータ15の時間軸に対する速度のパターンをT1からT7までの7つの区間に分離する。そして、T1からT3までを加速時サイクル、T4を定速時サイクル、T5からT7を減速時サイクルと規定する。これら各区間の時間間隔は、所望される駆動モータ15の時間軸に対する速度のパターンに応じて決定される。
【0115】
また、算出する補正指令値は、駆動モータ15の速度の時間軸に対する変化パターンを示す台形の面積を1として正規化し、目標地までの移動量を1から0までの面積変化で示すSパラメータSPを用いる。
【0116】
T1は、最高角加速度に到達するまでの加加速度区間である。つまり、図7の上側のグラフに示すように、T1区間において一定の変化率で最高角加速度に達するように角加速度を変化させる区間である。角加速度が一定の変化率で最高角加速度に達するように変化させることで、駆動モータ15の速度は図7の下側グラフに示すようにその立ち上がりの傾斜が緩やかな曲線を描くこととなる。このため、加加速度(ジャーク)をパルス的に発生させないため、ロボットアーム1の動作時において生じる振動を低減することができる。
【0117】
T1区間での角加速度、速度、および移動量は以下の式で求められる。まず、駆動モータ15の速度をv、角加速度をa、時間をt、任意の時点での位置をsとおき、Integrate[a,t]はaのtについての積分、Integrate[s,t]はsのtについての積分をそれぞれ意味するものとする。
【0118】
ここで、ロボットアーム1の移動量が1から0に向かって変化するものとした場合、1からsを減算して得られる移動量の値SPをSパラメータとするとき、このSパラメータは以下のようにして求められる。
【0119】
a=(Am/T1)×t
v=Integrate[a,t]
s=Integrate[v,t]
よって、
a=Am×t/T1
v=Am×t/(2×T1)
s=Am×t/(6×T1)
SP=1−s
=1−Am×t/(6×T1)
となる。
【0120】
次に、T2区間に移るがT2区間での角加速度、速度、および移動量は以下の式で求めることができる。つまり、このT2区間は、最高角加速度に到達し、角加速度を一定に維持する区間である。図7の下側グラフで示されるように、T2の区間では駆動モータ15は時間に比例して一定の角加速度で速度が上昇する。
【0121】
まず、T2区間は、T1区間の後の区間、つまりT1時間経過後の区間であるため、T2区間の始点では、角加速度、速度、および移動量はT1区間の終点での角加速度a1、速度v1、移動量s1とすることができる。また、t=T1とおくことができ、T1区間にて求めた速度v、角加速度a、移動量sの式に当てはめると以下のようになる。
【0122】
a1=Am
v1=Am×(T1)/2
s1=Am×(T1)/6
したがって、t=T1とするとT2区間での角加速度、速度、移動量は、
a=Am
v=Integrate[a,t]+v1
s=Integrate[v,t]
となる。
【0123】
よって、
v=Am×t+Am×T1/2
s=Am×t+Am×t×(T1)/2
となる。したがって、Sパラメータは以下の式で表すことができる。
【0124】
SP=1−s−s1
次に、T3区間に移るがT3区間での角加速度、速度、および移動量は以下の式で求めることができる。つまり、このT3区間は、最高角加速度からの減加速度区間である。図7の上側グラフに示すように、T3区間において一定の変化率で最高角加速度から0に向かって減じるように角加速度を変化させる区間である。角加速度を一定の変化率で最高角加速度から0(角加速度一定)に向かって変化させることで、駆動モータ15の速度は図7の下側のグラフに示すようにその立ち上がりの傾斜が緩やかな曲線を描くこととなる。このように加加速度(ジャーク)をパルス的に発生させないため、ロボットアーム1の動作時において生じる振動を低減することができる。
【0125】
まず、T3区間は、T1、T2区間の後の区間、つまりT1、T2時間経過後の区間であるため、T3区間の始点では、角加速度、速度、および移動量はT2区間の終点での角加速度a2、速度v2とすることができる。また、T2区間での移動量s2とし、t=T1+T2とおきT2区間にて求めた速度v、角加速度a、移動量sの式に当てはめると以下のようになる。
【0126】
a2=Am
v2=Am×(T1)/2+Am×T2
s2=Am×(T2)+Am×T2×(T1)/2
したがって、t=t−T1−T2とするとこのT3区間での角加速度、速度、移動量は、
a=Am−Am×t/(T3)
v=Integrate[a,t]+v2
s=Integrate[v,t]
よって、
v=Am×t+Am×(T1)/2+Am×T2−Am×t/(2×T3)
s=Am×t×(3×(t+T1+2×T2)−t/T3)/6
SP=1−s−s1−s2
となる。
【0127】
次のT4区間は最高速度Vmでの等速区間となり、
v=Vm
移動量は、T1区間の移動量をs1、T2区間の移動量をs2、T3区間の移動量をs3とおくと、
s=s1+s2+s3+v×(t−T1−T2−T3)
SP=1−s
となる。
【0128】
T4の定速時サイクルの次は、T5からT7を減速時サイクルへと移行する。この減速時サイクルは角加速度の変化の向きが負となる点を除いて基本的には、加速時サイクルと同様である。
【0129】
T5区間は、負の最高角加速度(最高減速度)に到達するまでの加減速度区間である。つまり、図7の上側のグラフに示すように、T5区間において一定の変化率で負の最高角加速度(最高減速度)に達するように角加速度を変化させる区間である。角加速度を一定の変化率で最高減速度に達するように変化させることで、駆動モータ15の速度は図7の下側のグラフに示すようにその立ち下がりの傾斜が緩やかな曲線を描くこととなる。このように加加速度(ジャーク)をパルス的に発生させないため、ロボットアーム1の動作時において生じる振動を低減することができる。
【0130】
T5区間での角加速度、速度、および移動量は以下の式で求められる。まず、T5の次にくる区間T6、T7の移動量をそれぞれs6、s7とすると、T1、T2区間での計算式より、
s7=Am×(T7)/6
s6=Am×(T6)+Am×T6×(T7)/2
ここで、t=t−T1−T2−T3−T4とすると、このT5区間の移動量は、区間T3での移動量の式
s=Am×t×(3×(t+T1+2×T2)−t/T3)/6
において、T1、T2、T3をそれぞれT7、T6、T5で置き換え、t=T5−tで置き換えたものとなる。
【0131】
よって、T5区間の残り移動量sは、tmp=T5−tとすると
s=Am×tmp×(3×(tmp+T7+2×T6)−tmp/T5)/6
SP=s7+s6+s
となる。
【0132】
続くT6区間は、負の最高角加速度(最高減速度)に到達し、角加速度を一定に維持する、最高減速度による減速区間である。図7の下側のグラフで示されるように、T6の区間では駆動モータ15は時間に比例して一定の角加速度で速度が減少する。
【0133】
ここでT7区間の移動量をs7とすると、
s7=Am×(T7)/6
となる。また、
t=t−T1−T2−T3−T4−T5
とすると、このT6区間での残り移動量sは、T2区間で求めた移動量の式、
s=Am×t+Am×t×(T1)/2
において、T1をT7に、tをT6−tにそれぞれ置き換えて求めることができる。
【0134】
したがって、この区間での残り移動量sをtmp=T6−tすると、
s=Am×t+Am×tmp×(T7)/2
SP=s7+s
となる。
【0135】
続くT7区間は、負の最高角加速度(最高減速度)からの減加速度区間である。図7の上側のグラフに示すように、T7区間において一定の変化率で負の最高角加速度(最高減速度)の値が正の方向に向かうように角加速度を変化させ、減速速度を低減させる区間(減減速度区間)である。角加速度が一定の変化率で最高減速度を低減させる方向(正の方向)に変化させることで、駆動モータ15の速度は図7の下側のグラフに示すようにその立ち下がりの傾斜が緩やかな曲線を描くこととなる。このように加加速度(ジャーク)をパルス的に発生させないため、ロボットアーム1の動作時において生じる振動を低減することができる。
【0136】
ここで、t=t−T1−T2−T3−T4−T5−T6とする。そして、このT7区間での残りの移動量をT1区間で求めた以下の移動量の式を用いて求める。
【0137】
s=Am×t/(6×T1)
ただし、T7区間は、このT1区間の移動量の式において、T1をT7に置き換え、tをT7−tにそれぞれ置き換えたものとなる。
【0138】
したがって、このT7区間での残り移動量sは、tmp=T7−tとすると、
s=Am×tmp/(6×T7)
となり、Sパラメータは、
SP=s
となる。
【0139】
以上のように、駆動モータの加速期間において、その加速開始から所定期間(T1区間)の角加速度と、加速から定速期間へと移行するまでの所定期間(T3区間)の角加速度とを一定の変化率で変化させる。すなわち、加速期間において駆動モータ15の角加速度を時間軸に対して台形形状となるように制御させると、加速期間の最初と最後に生じるジャークを低減させることができる。
【0140】
また、同様に、駆動モータの減速期間において、その減速開始から所定期間(T5区間)の角加速度と、減速終了するまでの所定期間(T7区間)の角加速度とを一定の変化率で変化させる。すなわち、減速期間において駆動モータ15の角加速度を時間軸に対して負の方向に台形形状となるように制御させると、減速期間の最初と最後に生じるジャークを低減させることができる。
【0141】
したがって、ロボットアーム1の動作時に生じる振動を低減させることができる。
【0142】
また、本実施の形態に係るロボットアーム制御システム100は動作計画時に設定したロジックに即して駆動モータ15を動作させるにあたり、上述した加加速度制御によって、該駆動モータ15へ与える指令値を補正する構成である。このため、フィルタを用いた平均化処理により指令値を補正する構成と比較してサイクルタイムを低減することができる。つまり、フィルタを用いた平均化処理により指令値を補正する構成の場合、所定のサンプリング時間当たりの指令値を算出し補正を行う必要があるため、時間遅れが生じ、本実施の形態に係る加加速度制御により加速度を制御する構成と比較してサイクルタイムが長くなってしまうからである。
【0143】
なお、上記では、動作計画部61は、駆動系イナーシャIi2およびバランサ32によるバランサトルクTも考慮して、ロボットアーム1の各関節部12における駆動モータ15の適切な角加速度を求める構成であった。しかしながら、駆動系イナーシャIi2またはバランサトルクTからの影響が非常に小さい等、無視しても適切な角加速度を求めることができる場合、駆動系イナーシャIi2およびバランサトルクTを必ずしも両方とも考慮する必要はない。すなわち、駆動系イナーシャIi2およびバランサトルクTのうちの少なくともいずれか一つだけを考慮する構成としてもよい。しかしながら、より正確に適切な角加速度を算出するためには、駆動系イナーシャIi2およびバランサトルクTをともに考慮する構成の方が好適である。
【0144】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び/又は機能の詳細を実質的に変更できる。
【産業上の利用可能性】
【0145】
本発明は、多関節型のロボットアーム1を滑らかに動作させるように制御する制御装置として有用である。
【符号の説明】
【0146】
1 ロボットアーム
2 制御装置
11 基部
12 関節部
12a 第一関節部
12b 第二関節部
12c 第三関節部
13 リンク部材
13a 第一リンク部材
13b 第二リンク部材
13c 第三リンク部材
14 接合部
14a 接合部
14b 接合部
14c 接合部
15 駆動モータ
15a 第一駆動モータ
15b 第二駆動モータ
15c 第三駆動モータ
30 基軸部
32 バランサ
52 主制御部
53 記憶装置
61 動作計画部
62 補正指令値生成部
63 算出情報
100 ロボットアーム制御システム

【特許請求の範囲】
【請求項1】
基部と、
第一リンク部材と、
第二リンク部材と、
第三リンク部材と、
前記基部に対して、回動自在に前記第一リンク部材の一方の端部を接合する第一接合部と、該基部に対して前記第一リンク部材の一方の端部を回動させるための第一駆動モータとを有する第一関節部と、
前記第一リンク部材の他方の端部と前記第二リンク部材の一方の端部とを互いに回動自在に接合する第一接合部と、該第一リンク部材の他方の端部と前記第二リンク部材の一方の端部とを互いに回動させるための第二駆動モータとを有する第二関節部と、
前記第二リンク部材の他方の端部と前記第三リンク部材の一方の端部とを互いに回動自在に接合する第三接合部と、該第二リンク部材の他方の端部と前記第三リンク部材の一方の端部とを互いに回動させるための第三駆動モータとを有する第三関節部と、
前記第二リンク部材および第三リンク部材の姿勢変更に伴い生じる前記第二関節部に加わる重力負荷を低減するためのばね装置と、を備えたロボットアームの動作を、前記第一駆動モータ、第二駆動モータ、および第三駆動モータを介して制御する制御装置であって、
前記第一駆動モータ、第二駆動モータ、および第三駆動モータにかかる負荷イナーシャ、重力トルク、モータトルク、ならびにモータイナーシャに加えて、前記ばね装置のトルク、ならびに該第一駆動モータ、第二駆動モータ、および第三駆動モータそれぞれの動力を伝達するための駆動系部材列のイナーシャである駆動系イナーシャのうちの少なくともいずれか一つを用いて、前記第一駆動モータ、前記第二駆動モータ、および第三駆動モータの角加速度を算出する加速度算出手段を備えた制御装置。
【請求項2】
前記第二駆動モータおよび前記第三駆動モータそれぞれは、同一方向に延在した回転軸を中心に回動しており、
前記加速度算出手段が、前記第二関節部が備える第二駆動モータおよび前記第三関節部が備える第三駆動モータの両者が共に動作している場合における、該第二関節部と該第三関節部との相互間で作用する慣性力に起因して生じるトルクを、前記第二駆動モータおよび第三駆動モータそれぞれのモータトルクから減算して、前記第二駆動モータおよび前記第三駆動モータの角加速度を算出する請求項1に記載の制御装置。
【請求項3】
前記第一駆動モータ、前記第二駆動モータ、および前記第三駆動モータそれぞれで固有に定められた、駆動モータの回転数に応じた駆動モータのトルクを示すトルク情報を記憶する記憶装置をさらに備え、
前記加速度算出手段は、前記第一駆動モータ、第二駆動モータおよび前記第三駆動モータにおける動作開始から動作終了までの間の加速時および減速時における角加速度から、前記第一駆動モータ、前記第二駆動モータ、および前記第三駆動モータそれぞれの回転数を算出し、前記記憶装置に記憶した前記トルク情報に基づき、算出した回転数に対応する該第一駆動モータ、該第二駆動モータ、および第三駆動モータのモータトルクをそれぞれ求め、これら求めたモータトルクを用いて、前記第一駆動モータ、前記第二駆動モータ、および前記第三駆動モータの角加速度を算出する請求項2に記載の制御装置。
【請求項4】
前記加速度算出手段によって算出した角加速度が、時間軸に対して台形パターンとなるように前記第一駆動モータ、前記第二駆動モータ、および前記第三駆動モータに対する指令を補正するための補正指令値を生成する補正指令値生成手段を備える、請求項3に記載の制御装置。
【請求項5】
基部と、
第一リンク部材と、
第二リンク部材と、
第三リンク部材と、
前記基部に対して、回動自在に前記第一リンク部材の一方の端部を接合する第一接合部と、該基部に対して前記第一リンク部材の一方の端部を回動させるための第一駆動モータとを有する第一関節部と、
前記第一リンク部材の他方の端部と前記第二リンク部材の一方の端部とを互いに回動自在に接合する第一接合部と、該第一リンク部材の他方の端部と前記第二リンク部材の一方の端部とを互いに回動させるための第二駆動モータとを有する第二関節部と、
前記第二リンク部材の他方の端部と前記第三リンク部材の一方の端部とを互いに回動自在に接合する第三接合部と、該第二リンク部材の他方の端部と前記第三リンク部材の一方の端部とを互いに回動させるための第三駆動モータとを有する第三関節部と、
前記第二リンク部材および第三リンク部材の姿勢変更に伴い生じる前記第二関節部に加わる重力負荷を低減するためのばね装置と、を備えたロボットアームの動作を、前記第一駆動モータ、第二駆動モータ、および第三駆動モータを介して制御するロボットアームの制御方法であって、
前記第一駆動モータ、第二駆動モータ、および第三駆動モータにかかる負荷イナーシャ、重力トルク、モータトルク、ならびにモータイナーシャに加えて、前記ばね装置のトルク、該第一駆動モータ、第二駆動モータ、および第三駆動モータそれぞれの動力を伝達するための駆動系部材列のイナーシャである駆動系イナーシャのうちの少なくともいずれか一つを用いて、前記第一駆動モータ、前記第二駆動モータ、および第三駆動モータの角加速度を算出するロボットアームの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−130999(P2012−130999A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−286264(P2010−286264)
【出願日】平成22年12月22日(2010.12.22)
【出願人】(000000974)川崎重工業株式会社 (1,710)
【Fターム(参考)】