(57)【要約】【課題】目標位置までの駆動時間を短縮することができるロボットアーム、及びその制御方法を提供する。【解決手段】本発明の一態様にかかるロボットアームは、複数の関節を駆動して、手先を目標位置まで移動させるロボットアームであって、手先軌道を生成する手先軌道生成部と、手先軌道にしたがって移動するときの手先速度を演算する手先速度演算部３３と、手先速度に基づいて、関節の駆動速度を算出する駆動速度算出部３４と、関節の駆動速度が駆動速度の限界値を越えているか否かを評価する駆動速度評価部３５と、駆動速度が限界値を越えている場合に、手先速度を修正する手先速度修正部と、修正された手先速度に基づいて算出された駆動速度に応じて、関節を駆動するアクチュエータ２８と、を備えるものである。【選択図】図３
2008194760.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節を駆動して、手先を目標位置まで移動させるロボットアームであって、
前記目標位置までの手先の軌道を生成する手先軌道生成部と、
前記手先軌道生成部によって生成された手先軌道にしたがって移動するときの手先の速度を演算する手先速度演算部と、
前記手先速度演算部によって演算された手先速度に基づいて、前記関節の駆動速度を算出する駆動速度算出部と、
前記関節の駆動速度が駆動速度の限界値を越えているか否かを評価する駆動速度評価部と、
前記駆動速度が限界値を越えている場合に、前記手先速度演算部で演算された手先速度を修正して前記駆動速度算出部に出力する修正部と、
前記修正部で修正された手先速度に基づいて前記駆動速度算出部が算出した駆動速度に応じて、前記関節を駆動するアクチュエータと、を備えるロボットアーム。
【請求項２】
前記複数の関節に、前記手先の姿勢を変化させるための関節が含まれ、
前前記手先軌道生成部によって生成された手先軌道にしたがって移動するときの前記手先姿勢の角速度を演算する姿勢角速度演算部がさらに設けられ、
前記駆動速度算出部が、前記手先速度、及び前記角速度に基づいて、前記関節の駆動速度を算出し、
前記修正部が、前記駆動速度評価部での評価結果に応じて、前記手先速度、及び角速度を修正し、
前記アクチュエータが、前記修正された手先速度、及び前記修正された角速度に基づいて前記関節駆動部が算出した駆動速度に応じて、前記関節を駆動する請求項１に記載のロボットアーム。
【請求項３】
前記手先速度演算部が、前記手先の現在の速度から、所定の加速度で加速したときの速度を手先速度として演算することを特徴とする請求項１、又は２に記載のロボットアーム。
【請求項４】
複数の関節を駆動して、手先を目標位置まで移動させるロボットアームの制御方法であって、
前記目標位置までの手先の軌道を生成するステップと、
前記手先軌道にしたがって移動するときの手先の速度を演算するステップと、
前記手先速度に基づいて、前記関節の駆動速度を算出するステップと、
前記関節の駆動速度が駆動速度の限界値を越えているか否かを評価するステップと、
前記駆動速度が限界値を越えている場合に、前記手先速度を修正するステップと、
前記修正された手先速度に基づいて算出された駆動速度に応じて、前記関節を駆動するステップと、を備えるロボットアームの制御方法。
【請求項５】
前記複数の関節に、前記手先の姿勢を変化させるための関節が含まれ、
前記手先軌道にしたがって移動するときの前記手先姿勢の角速度を演算するステップがさらに設けられ、
前前駆動速度を算出するステップでは、前記関節の駆動速度が、前記手先速度、及び前記角速度に基づいて算出され、
前記手先速度を修正するステップでは、前記駆動速度が限界値を越えている場合に、前記手先速度、及び前記角速度が修正され、
前記関節を駆動するステップでは、前記修正された前記手先速度、及び前記修正された角速度に基づいて算出された駆動速度に応じて、前記関節が駆動される請求項４に記載のロボットアームの制御方法。
【請求項６】
前記手先速度を演算するステップでは、前記手先の現在の速度から、所定の加速度で加速したときの速度を手先速度として演算されている請求項４、又は５に記載のロボットアームの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアーム、及びその制御方法に関し、特に詳しくは、複数の関節を有するロボットアーム、及びその制御方法に関する。
【背景技術】
【０００２】
産業用ロボットとして利用されているロボットアームは、通常、リンクと、リンクを結びつける複数の関節とによって構成されている。このようなロボットアームでは、関節を駆動することによって、目標位置まで移動している。そして目標位置で、所定の作業を行なう。例えば、ロボットアームの先端に設けられたロボットハンドを目標位置まで移動して、所定の動作を行なう。したがって、目標位置までのロボットアームの駆動時間を短縮することによって、作業効率を向上することができる。
【０００３】
ロボットアームの駆動時間を短縮するための制御方法が開示されている（特許文献１）。この制御方法では、ロボットアームを駆動する場合、移動する経路内での移動速度を最大にする関節軸を選択している。そして、その関節軸の出し得る最大速度を目標速度に設定した後、他の関節速度を修正している。このようにして、ロボットアームの移動速度を決定している。
【特許文献１】特開平１１−１９８０７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載されている制御方法では、以下に示す問題点があった。この制御方法では、次の目標地点までにどれだけ加速できるかを考慮せずに、最大速度を設定している。そのため、十分な加速時間が得られない場合は、設定した最大速度に達しなくなってしまう。また、（手先から各関節までの距離）×（関節最大速度−関節現在速度）が最大になる関節軸を最大速度とすべき関節軸として選択している。したがって、最大速度を最大にする関節軸が最適であるかどうか分らないという問題点がある。さらに、目標軌道の情報（位置、姿勢）を元に計算しているため、刻々と動的に目標位置が変化するような場合、リアルタイムに適応することができない。このように、従来の制御方法では、駆動時間を短縮することができないという問題点がある。
【０００５】
本発明は、このような問題を解決するためになされたものであり、目標位置までの駆動時間を短縮することができるロボットアーム、及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様にかかるロボットアームは、複数の関節を駆動して、手先を目標位置まで移動させるロボットアームであって、前記目標位置までの手先の軌道を生成する手先軌道生成部と、前記手先軌道生成部によって生成された手先軌道にしたがって移動するときの手先の速度を演算する手先速度演算部と、前記手先速度演算部によって演算された手先速度に基づいて、前記関節の駆動速度を算出する駆動速度算出部と、前記関節の駆動速度が駆動速度の限界値を越えているか否かを評価する駆動速度評価部と、前記駆動速度が限界値を越えている場合に、前記手先速度演算部で演算された手先速度を修正して前記駆動速度算出部に出力する修正部と、前記修正部で修正された手先速度に基づいて前記駆動速度算出部が算出した駆動速度に応じて、前記関節を駆動するアクチュエータと、を備えるものである。これにより、各関節の駆動速度を適切に制御することができるため、目標位置までの駆動時間を短縮することができる。
【０００７】
本発明の第２の態様にかかるロボットアームは、上記のロボットアームであって、前記複数の関節に、前記手先の姿勢を変化させるための関節が含まれ、前前記手先軌道生成部によって生成された手先軌道にしたがって移動するときの前記手先姿勢の角速度を演算する姿勢角速度演算部がさらに設けられ、前記駆動速度算出部が、前記手先速度、及び前記角速度に基づいて、前記関節の駆動速度を算出し、前記修正部が、前記駆動速度評価部での評価結果に応じて、前記手先速度、及び角速度を修正し、前記アクチュエータが、前記修正された手先速度、及び前記修正された角速度に基づいて前記関節駆動部が算出した駆動速度に応じて、前記関節を駆動するものである。これにより、手先の姿勢角を適切に制御することができる。
【０００８】
本発明の第３の態様にかかるロボットアームは、上記のロボットアームであって、前記手先速度演算部が、前記手先の現在の速度から、所定の加速度で加速したときの速度を手先速度として演算することを特徴とするものである。これにより、手先が所定の加速度で加速されていくため、駆動時間を短縮することができる。
【０００９】
本発明の第４の態様にかかるロボットアームの制御方法は、複数の関節を駆動して、手先を目標位置まで移動させるロボットアームの制御方法であって、前記目標位置までの手先の軌道を生成するステップと、前記手先軌道にしたがって移動するときの手先の速度を演算するステップと、前記手先速度に基づいて、前記関節の駆動速度を算出するステップと、前記関節の駆動速度が駆動速度の限界値を越えているか否かを評価するステップと、前記駆動速度が限界値を越えている場合に、前記手先速度を修正するステップと、前記修正された手先速度に基づいて算出された駆動速度に応じて、前記関節を駆動するステップと、を備えるものである。これにより、各関節の駆動速度を適切に制御することができるため、目標位置までの駆動時間を短縮することができる。
【００１０】
本発明の第５の態様にかかるロボットアームの制御方法は、上記の制御方法において、前記複数の関節に、前記手先の姿勢を変化させるための関節が含まれ、前記手先軌道にしたがって移動するときの前記手先姿勢の角速度を演算するステップがさらに設けられ、前前駆動速度を算出するステップでは、前記関節の駆動速度が、前記手先速度、及び前記角速度に基づいて算出され、前記手先速度を修正するステップでは、前記駆動速度が限界値を越えている場合に、前記手先速度、及び前記角速度が修正され、前記関節を駆動するステップでは、前記修正された前記手先速度、及び前記修正された角速度に基づいて算出された駆動速度に応じて、前記関節が駆動されるものである。これにより、各関節の駆動速度を適切に制御することができるため、目標位置までの駆動時間を短縮することができる。これにより、手先の姿勢角を適切に制御することができる。
【００１１】
本発明の第６の態様にかかるロボットアームの制御方法は、前記手先速度を演算するステップでは、前記手先の現在の速度から、所定の加速度で加速したときの速度を手先速度として演算されているものである。これにより、手先が所定の加速度で加速されていくため、駆動時間を短縮することができる。
【発明の効果】
【００１２】
本発明によれば、目標位置までの駆動時間を短縮することができるロボットアーム、及びその制御方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００１３】
発明の実施の形態１．
以下に、図１を参照しつつ本発明の実施の形態１にかかるロボットアーム（以下、単にロボットという）について説明する。本実施の形態ではロボット１が２関節のマニピュレータであるとして説明する。
【００１４】
図１は、ロボット１を模式的に示す図である。ロボット１は、リンクとリンクを連結する関節（ジョイント）とが設けられたリンク機構を有している。具体的には、ロボット１は第１関節２１と、第１リンク２２と、第２関節２３と、第２リンク２４と、ハンド２６とを有している。第１関節２１、第１リンク２２、第２関節２３、及び第２リンク２４からアーム部２０が構成される。第１リンク２２、及び第２リンク２４は剛体で構成される部材である。そして、アーム部２０の先端にハンド２６が設けられている。すなわち、第２リンク２４の先端には所定の動作を行なうハンド２６が取り付けられている。ハンド２６は、例えば、物体の把持、塗装、溶接などの作業を行なう。すなわち、ハンド２６が目標位置まで移動したら、所定の作業を行なう。このように、２関節のマニピュレータは、アーム部２０とハンド２６から構成されている。そして、アーム部２０は本体部１０に接続されている。本体部１０には、アーム部２０を制御する制御部１１などが収納されている。
【００１５】
第１関節２１、及び第２関節２３には、モータ等のアクチュエータ、及びエンコーダ等のセンサが設けられている。例えば、各関節には、動力を発生するサーボモータと、サーボモータの動力を伝達するギヤと、サーボモータの回転変位を計測するロータリーエンコーダとが設けられている。第１関節２１は、本体部１０と第１リンク２２を連結している。第２関節２３は、第１リンク２２と第２リンク２４とを連結している。すなわち、第１関節２１は、第１リンク２２を回動自在に支持し、第２関節２３は第２リンク２４を回動自在に支持している。
【００１６】
アーム部２０は、本体部１０に取り付けられている。具体的には、第１関節２１が本体部１０に固定されている。本体部１０には、第１関節２１、及び第２関節２３を駆動するための制御部１１が設けられている。制御部１１は、ＣＰＵやメモリ等の記憶領域を備えるコンピュータである。制御部１１は、いわゆるＣＰＵ等の演算処理部を有するコンピュータであり、マニピュレータの動作を所定のプログラムに従って制御するものである。例えば、制御部１１は、演算処理部であるＣＰＵ（Central Processing Unit）、記憶領域であるＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）、通信用のインターフェースなどを有し、ロボット１の各種動作を制御する。例えば、ＲＯＭには、制御するための制御プログラムや、各種の設定データ等が記憶されている。そして、ＣＰＵは、このＲＯＭに記憶されている制御プログラムを読み出し、RAMに展開する。そして、設定データや、センサ等からの出力に応じてプログラムを実行する。
【００１７】
アーム部２０は、制御部１１によって駆動速度や関節角度などが制御されることで、自律的に動作する。制御部１１からの駆動信号によって、第１関節２１、及び第２関節２３が所定の駆動速度で駆動する。そして、アーム部２０の先端に設けられたハンド２６が目標位置まで移動すると、各関節の駆動が停止する。第１関節２１、及び第２関節２３は１自由度の回転関節である。図１では、第１関節２１と第２関節２３の回転軸が平行であるとして示しているが、これに限られるものではない。制御部１１は、一定の制御周期で、各関節の駆動速度を求めている。そして、制御部１１は、各関節の駆動速度に対応する駆動信号をモータ等に出力している。これにより、ハンド２６を目標位置まで速やかに移動させることができる。
【００１８】
例えば、図１において、第１関節２１、及び第２関節２３は、紙面と垂直な方向を回転軸として、回転駆動する。第１関節２１を駆動することによって、本体部１０に対して第１リンク２２が回転する。さらに、第２関節２３が駆動することによって、第１リンクに対して第２リンク２４が回転する。これにより、ハンド２６を所定の位置まで移動することができる。すなわち、第１関節２１、及び第２関節２３の関節角度によって、ハンド２６の位置が決定する。第１関節２１、及び第２関節２３が駆動することによって、ハンド２６が目標位置まで移動する。そして、ハンド２６は目標位置で所定の動作を行なう。例えば、ハンド２６は目標位置で物体の把持動作等を行なう。これにより、所望の作業を行なうことができる。
【００１９】
ここで、アーム部２０の動作について図２を用いて説明する。ここでは、図２に示すように、移動開始位置をＡ点とし、目標位置をＢ点とする。すなわち、Ａ点で停止していたハンド２６がＢ点まで移動して、Ｂ点で停止する場合について説明する。なお、アーム部２０の先端に設けられたハンド２６の位置を手先位置とする。また、ハンド２６の速度を手先速度Ｖとする。例えば、ハンド２６の重心の位置を手先位置とし、重心の速度を手先速度とする。また、第１関節２１の駆動速度をｖ１とし、第２関節２３の駆動速度をｖ２とする。なお、関節の駆動速度とは、回転関節の場合、回転する関節の角速度に対応した値である。従って、駆動速度は、関節を駆動するモータの角速度と、ギヤ比に基づいた値となる。そして、駆動速度ｖ１でリンク２２が回転し、駆動速度ｖ２でリンク２４が回転する。
【００２０】
図２では、Ａ点におけるマニピュレータを第１関節２１、第１リンク２２ａ、第２関節２３ａ、第２リンク２４ａ、ハンド２６ａで示し、Ｂ点におけるマニピュレータを第１関節２１、第１リンク２２ｂ、第２関節２３ｂ、第２リンク２４ｂ、ハンド２６ｂで示している。ここでは、Ａ点からＢ点までの手先の軌道を直線軌道としている。従って、手先が直線軌道にしたがって移動するものとして説明する。すなわち、手先はＡ点からＢ点まで最短距離で移動する。
【００２１】
次に、アーム部２０に対してＡ点からＢ点まで移動するための制御を行う制御部１１について図３を用いて説明する。図３は、制御部１１の構成を模式的に示すブロック図である。制御部１１は、目標位置記憶部３１、手先軌道生成部３２、手先速度演算部３３、駆動速度算出部３４、駆動速度評価部３５、加速度記憶部３６、手先速度修正部３７、減速処理判定部３８、及び関節駆動部３９を備えている。制御部１１は、例えば、一定の制御周期で、関節を駆動する駆動速度を計算して、その駆動速度に応じた駆動信号をアクチュエータ２８に出力する。ここでは、手先速度演算部３３、駆動速度算出部３４、駆動速度評価部３５、手先速度修正部３７での減速処理判定部３８での処理が制御周期毎に繰り返し実行される。これにより、関節の駆動速度を求めることができる。関節駆動部３９は、例えば、モータのアンプであり、駆動速度に応じた駆動信号をアクチュエータ２８に出力する。アクチュエータ２８は、その駆動信号に基づいて駆動する。これにより、それぞれの関節が駆動速度で駆動する。そして、関節駆動部３９は、制御周期毎に駆動信号を出力する。これにより、各関節は適切な駆動速度で回転する。
【００２２】
図３に示すように、制御部１１には、エンコーダ２７からの検出信号が入力されている。エンコーダ２７は、例えば、第１関節２１、第２関節２３に設けられたモータの回転角度を検出する。そして、エンコーダ２７は、モータの回転角度を検出信号として出力する。各関節に設けられているエンコーダ２７によって、手先の現在位置を得ることができる。制御部１１は、例えば、手先の現在位置をｘｙｚ座標値として求める。さらに、制御部１１は、エンコーダ２７からの検出信号によって、手先の現在速度を求めている。制御部１１は、例えば、エンコーダ２７の変化量から、各関節の角速度を算出して、手先の現在速度を求めている。
【００２３】
目標位置記憶部３１には、例えば、ユーザーによって入力された目標位置が記憶されている。この目標位置は、手先の位置をｘｙｚ座標値として記憶されている。手先軌道生成部３２は、現在位置から目標位置までの手先軌道を生成する。手先軌道は、例えば、３次元の軌道データ行列として算出される。制御部１１は、手先の現在位置、及び目標位置に基づいて、手先軌道を決定する。この手先軌道が手先の移動経路となる。ここで、手先軌道を複数の点（座標）の集合として求めることができる。よって、複数の座標の集合が、手先軌道を示す軌道データ行列となる。図２に示されているＡ点からＢ点までの直線軌道上の複数の点の座標が軌道データ行列として計算される。例えば、軌道データ行列には、直線軌道上に一定の間隔で配置された多数の点の座標が、順番に配列される。そして、この軌道データ行列上に含まれる点上を手先が順番に移動していく。ここで、軌道データ行列に含まれる手先軌道上の点の位置を軌道位置とする。軌道位置は、ｘｙｚ座標値で示される。
【００２４】
手先軌道生成部３２で生成された手先軌道は、手先速度演算部３３に入力される。すなわち、手先軌道を構成する軌道位置の座標が手先速度演算部３３に入力される。ここでは、軌道データ行列に含まれる軌道位置の座標が順番に入力されていく。さらに、手先速度演算部３３には、エンコーダ２７の検出信号に基づいて算出された手先の現在位置が入力される。
【００２５】
手先速度演算部３３は、手先の現在速度と手先軌道とに基づいて、手先速度を演算する。手先速度演算部３３は加速度記憶部３６に記憶されている加速度を用いて、手先速度を演算される。なお、加速度記憶部３６には、手先の加速度が複数記憶されている。そして、そのうちの一つの加速度で加速したときの手先速度が求められる。ここでは、手先の現在速度から、次の軌道位置に向かって最大加速度で加速した場合の手先速度が算出される。ここで、最大加速度とは、全関節を同じ方向に駆動することによって得られる最大の加速度である。この最大加速度は、一定の値であり、加速度記憶部３６に記憶されている。最大加速度は、関節を駆動するモータの性能（トルク、回転数等）、リンクやハンド２６の重量、及びギア比等によって決まる。手先速度演算部３３は、手先の現在位置から、手先軌道上の次の軌道位置に向かうときの速度を算出する。手先の現在速度に対して最大加速度を加えることによって、手先速度を求めることができる。ここで、手先の現在速度をＶ０とし、最大加速度をａｍａｘとする。なお、最大加速度をａｍａｘは正の値である。図２では、手先軌道が直線軌道となっている。このため、手先速度演算部３３によって演算される手先速度をＶとすると、手先速度Ｖ＝Ｖ０＋ａｍａｘｔとなる。なお、ｔは手先速度を演算する制御周期に対応する時間である。このように、手先速度演算部３３は、現在速度Ｖ０から所定の最大加速度ａｍａｘで加速したときの速度を手先速度Ｖとする。手先速度演算部３３は、手先速度Ｖを制御周期毎に演算して、駆動速度算出部３４に出力する。
【００２６】
手先速度演算部３３で演算された手先速度Ｖは、駆動速度算出部３４に入力される。駆動速度算出部３４は、手先速度Ｖに基づいて、各関節の駆動速度を算出する。具体的には、逆ヤコビアンなどの変換行列を用いて、手先速度Ｖに到達するために必要な駆動速度を各関節毎に算出する。逆ヤコビ行列を用いて、手先速度Ｖを各関節の駆動速度ｖ１、ｖ２に分解する。これにより、１制御周期で、手先の現在速度Ｖ０から手先速度Ｖに到達するための駆動速度ｖ１、ｖ２を求めることができる。もちろん、これ以外の方法で関節の駆動速度を求めてもよい。
【００２７】
駆動速度算出部３４で算出された駆動速度ｖ１、ｖ２は駆動速度評価部３５に出力される。駆動速度評価部３５は、駆動速度ｖ１、ｖ２が駆動速度の限界値を越えているか否かを評価する。ここで、第１関節２１及び第２関節２３の駆動速度の限界値をそれぞれ限界駆動速度ｖ１＿ｌｉｍｉｔ、ｖ２＿ｌｉｍｉｔとする。したがって、駆動速度算出部３４は、第１関節２１の駆動速度ｖ１と限界駆動速度ｖ１＿ｌｉｍｉｔとを比較し、第２関節２３の駆動速度ｖ２と第２関節２３の限界駆動速度ｖ２＿ｌｉｍｉｔとを比較する。限界駆動速度は、両回転方向に対して、設定されている。すなわち、正と負の限界駆動速度が設定されている。ここでは、両回転方向に対して設定されている限界駆動速度を同じ大きさとする。したがって、駆動速度ｖ１、ｖ２の絶対値|ｖ１|、|ｖ２|が、限界駆動速度ｖ１＿ｌｉｍｉｔ、ｖ２＿ｌｉｍｉｔ以上となっているかをそれぞれ判定する。
【００２８】
なお、限界駆動速度は、モータ仕様やギア比などに基づいて動力学から計算することができる。この場合、限界駆動速度は、一定の値となる。さらに、限界駆動速度をモータ仕様、ギア比、アーム部２０の姿勢、速度などに基づいて、動力学から計算してもよい。この場合、限界駆動速度は、アーム部２０の姿勢、速度に応じて変化する。駆動速度評価部３５は、全関節が限界駆動速度を超えていないか判定する。
【００２９】
関節の駆動速度が限界駆動速度を超えていない場合、駆動速度評価部３５は、各駆動速度ｖ１、ｖ２をそのまま減速処理判定部３８に出力する。すなわち、手先速度演算部３３で演算された手先速度Ｖに基づく駆動速度が出力される。関節の駆動速度が限界駆動速度を超えている場合、駆動速度評価部３５は、関節の駆動速度が限界駆動速度を超えていることを示す評価信号を手先速度修正部３７に出力する。手先速度修正部３７に評価信号が入力された場合、手先速度修正部３７は手先速度を修正する。すなわち、駆動速度評価部３５での評価結果に応じて、手先速度修正部３７は、手先速度演算部３３で演算された手先速度Ｖを修正する。ここで、修正された手先速度を修正速度Ｖｍｏｄとする。修正速度Ｖｍｏｄは、手先速度Ｖよりも低い値になっている。
【００３０】
修正速度Ｖｍｏｄは加速度記憶部３６に記憶されている加速度に基づいて求めることができる。例えば、加速度記憶部３６に、加速度ａ＝ａｍａｘ、０、−ａｍａｘの３つが記憶されているとする。最大加速度ａｍａｘで加速したときの手先速度Ｖに基づいて求められた駆動速度が、限界駆動速度を超えていたら、Ｖ０から加速度ａ＝０で加速したときの手先速度を修正速度Ｖｍｏｄとする。すなわち、手先が等速で移動するので、Ｖｍｏｄ＝Ｖ０となる。そして、駆動速度算出部３４は、修正速度Ｖｍｏｄに基づいて、各関節の駆動速度を算出する。ここでの駆動速度の算出は、上記と同様の処理であるため説明を省略する。
【００３１】
そして、駆動速度評価部３５は、修正速度Ｖｍｏｄに基づいて算出された駆動速度ｖ１、及びｖ２を評価する。すなわち、修正速度Ｖｍｏｄに基づいて算出された駆動速度が限界駆動速度を越えているか否かを判定する。そして、上記と同様に、修正速度Ｖｍｏｄに基づいて算出された駆動速度が限界駆動速度を越えている場合は、手先速度を修正する。ここでは、加速度ａ＝−ａｍａｘとしたとき、すなわち最大加速度ａｍａｘで減速したときの速度が修正速度Ｖｍｏｄとなる。したがって、修正速度Ｖｍｏｄ＝Ｖ０−ａｍａｘｔとなる。このように、加速度記憶部３６に記憶されている加速度のうち、手先をより加速するものから順番に用いられていく。
【００３２】
このように、修正速度Ｖｍｏｄに基づいて算出された駆動速度が限界駆動速度を越えていない場合は、この駆動速度を減速処理判定部３８に出力する。従って、駆動速度評価部３５は、限界駆動速度を越えていない駆動速度を減速処理判定部に出力する。すなわち、修正速度Ｖｍｏｄに基づいて算出された駆動速度が限界駆動速度を越えている場合、駆動速度が限界駆動速度が超えなくなるまで、駆動速度評価部３５、手先速度修正部３７、及び駆動速度算出部３４での処理を繰り返し行う。
【００３３】
減速処理判定部３８は、目標位置で手先を停止させるための減速処理が必要か否かを判定する。すなわち、減速処理判定部３８は、手先の現在位置が目標位置に対して十分近くなっている場合、目標位置で停止させるための減速処理を行う。これにより、各関節の駆動速度が減速し始め、目標位置で手先が停止する。このように、現在位置から減速を開始することによって、目標位置で各関節の駆動速度を０にできる。具体的には、減速処理判定部３８は、例えば、現在位置から目標位置までの間の距離を求める。そして、現在位置から最大加速度で減速を開始することによって、目標位置で手先速度が０になるかを判定する。目標位置が十分離れている場合、目標位置までの間に駆動速度を０にすることができる。従って、減速処理判定部３８は、減速処理が不要であると判定し、駆動速度評価部３５から入力された駆動速度ｖ１、ｖ２をそのまま関節駆動部３９に出力する。関節駆動部３９は、例えば、モータのアンプである。駆動速度に応じた駆動信号をモータであるアクチュエータ２８に出力する。
【００３４】
目標位置に接近している場合、減速を開始しないと、目標位置までの間に駆動速度を０にすることができない。この場合、減速処理判定部３８は、減速処理が必要であると判定する。これにより、各関節の駆動速度を最大加速度で減速した場合の駆動速度が関節駆動部３９に出力される。そして、関節駆動部３９は、減速処理したときの駆動速度に応じた駆動信号をアクチュエータ２８に出力する。これにより、各関節が駆動している回転方向と反対方向に最大加速度で加速する。すなわち、駆動速度が最大加速度で減少し始め、目標位置での駆動速度を０にすることができる。
【００３５】
このように、減速処理判定部３８は、減速処理を開始しないと目標位置で手先が止まれないか否かを判定する。目標位置で手先が停止できなくなってしまう場合は、即座に減速処理を開始する。すなわち、目標位置で駆動速度を停止できない程度に、手先の現在位置が目標位置に対して十分近くなると、減速処理を開始する。そして、手先が目標位置に到達するまでの間、現在速度を最大加速度で減速した場合の駆動速度を出力する。よって、現在速度から最大加速度で減速していく。これにより、目標位置での駆動速度が０となり、手先を停止することができる。すなわち、減速を開始することによって、目標位置で手先の速度を０にできる。
【００３６】
関節駆動部３９は、駆動速度に基づいた駆動信号を、アクチュエータ２８に出力する。アクチュエータ２８は、駆動信号に基づいて各関節を駆動する。これにより、各関節が制御部１１で算出された駆動速度で駆動する。そして、制御部１１は一定の制御周期で上記の処理を繰り返し実行して、駆動信号を出力する。例えば、手先軌道生成部３２で生成された手先軌道上の次の軌道位置の座標が手先速度演算部３３に入力される。そして、手先速度演算部３３は、次の軌道位置に対しての手先速度を同様に演算する。そして、駆動速度算出部３４、駆動速度評価部３５、手先速度修正部３７、減速処理判定部３８での処理を同様に実行する。このようにして、次の軌道位置に対しての駆動速度を算出し、駆動速度に応じた駆動信号をアクチュエータ２８に出力する。従って、駆動速度は、制御周期で更新されていく。このようにして、各関節の駆動速度が制御されている。
【００３７】
ここで、減速処理が必要ないと判定された場合、駆動速度評価部３５からの駆動速度が関節駆動部３９に出力されている。従って、各関節には、限界駆動速度を超えない駆動速度が入力される。これにより、アクチュエータ２８は各関節を適切な駆動速度で駆動する。すなわち、さらに、限界駆動速度は、各関節に対して個別に設定することができるため、それぞれの関節に適切な限界駆動速度を設定することができる。よって、限界駆動速度を高くすることができる。各関節の駆動速度を高くすることができ、駆動時間を短縮することができる。
【００３８】
次に、図４を用いて、図２に示す軌道に従って移動するとき手先速度、及び駆動速度について説明する。図４では、手先速度、及び駆動速度の制御パターンを示す図であり、上から順に手先速度Ｖ、第１関節２１の駆動速度ｖ１、第２関節２３の駆動速度ｖ２を示している。なお、図４において、横軸は時間、縦軸は手先速度、又は駆動速度を示している。駆動速度ｖ１、及び駆動速度ｖ２には、それぞれ限界駆動速度ｖ１＿ｌｉｍｉｔ、ｖ２＿ｌｉｍｉｔが設定されている。ｔ＝０のとき、移動が開始され、ｔ＝ｔ８のときに移動が停止するものとしてとして説明する。なお、図４（ａ）において点線で示した三角パターンは、目標位置まで最短時間で移動するときの制御パターンを示している。すなわち、最大加速度ａｍａｘで徐々に加速した後、最大加速度ａｍａｘで徐々に減速したときの制御パターンが示されている。
【００３９】
ｔ＝０〜ｔ１の区間では、手先速度が一定の傾きで増加している。すなわち、一定の加速度で手先が加速している。この区間では、駆動速度が限界駆動速度に比べて十分に小さい。よって、最大加速度ａｍａｘで加速したときの手先速度Ｖが限界速度を越えていないため、最大加速度ａｍａｘで加速されている。すなわち、手先速度Ｖ＝Ｖｏ＋ａｍａｘｔとなる。さらに、この区間では、駆動速度ｖ１、ｖ２も一定の傾きで増加している。すなわち、各関節の駆動速度の値は徐々に大きくなっていく。
【００４０】
次にｔ＝ｔ１〜ｔ２の区間では、手先速度Ｖが等速になっている。すなわち、この区間では手先速度Ｖが変化していない。図４に示すように、ｔ＝ｔ１となると、第１関節２１の駆動速度ｖ１が限界駆動速度に到達する。従って、ｔ＝ｔ１での手先速度から加速して、駆動速度ｖ１、ｖ２を算出すると、ｖ１が限界駆動速度ｖ１＿ｌｉｍｉｔを越えてしまう。よって、加速度ａ＝０として、手先速度を修正する。すなわち、加速度ａ＝０としたときの手先速度が修正速度Ｖｍｏｄとなる。そして、修正速度Ｖｍｏｄに基づいて駆動速度ｖ１、ｖ２が算出される。この区間では、駆動速度ｖ１が限界駆動速度ｖ１＿ｌｉｍｉｔに近い。このため、手先速度Ｖを加速してしまうと、駆動速度ｖ１が限界駆動速度ｖ１＿ｌｉｍｉｔを超えてしまう。よって、ｔ＝ｔ２になるまで、手先は等速で移動する。この区間では、駆動速度ｖ２がｖ２＿ｌｉｍｉｔを越えないので、駆動速度ｖ２は一定の傾きで増加する。すなわち、ｔ＝ｔ０〜ｔ２の区間において、駆動速度ｖ２が一定の傾きで増加する。これに対して、駆動速度ｖ１は、一定の傾きで減少している。すなわち、この区間で手先速度を加速すると、駆動速度ｖ１が限界駆動速度を超えてしまう。このため、加速度ａ＝０となっている。この区間では、駆動速度ｖ２が増加し、駆動速度ｖ１が減少することによって手先速度が一定となっている。このように、ｔ＝ｔ１〜ｔ２の区間では、手先速度を加速せずに、等速とする。そして、ｔ＝ｔ２では、駆動速度ｖ２が限界駆動速度ｖ２＿ｌｉｍｉｔに到達する。
【００４１】
ｔ＝ｔ２〜ｔ３の区間では手先速度Ｖが一定の傾きで減少している。すなわち、手先の加速度ａ＝−ａｍａｘとなり、手先は最大加速度ａｍａｘで減速している。この区間では、加速度ａ＝０として、手先速度を修正しても、駆動速度が限界駆動速度を超えてしまう。従って、加速度ａ＝−ａｍａｘとしたときの手先速度が修正速度Ｖｍｏｄとなる。例えば、手先の加速度ａ＝ａｍａｘでの手先速度では、駆動速度ｖ１、ｖ２ともに、限界駆動速度を超えてしまう。また、手先の加速度ａ＝ａｍａｘでの手先速度では、駆動速度ｖ１、ｖ２の一方が、限界駆動速度を超えてしまう。よって、手先速度を減速する。この区間では、駆動速度ｖ１が一定の傾きで減少し、駆動速度ｖ２が限界駆動速度ｖ２＿ｌｉｍｉｔで一定となっている。
【００４２】
ｔ＝ｔ３〜ｔ４の区間では、手先速度Ｖが一定となっている。この区間では、手先を最大加速度ａｍａｘで加速すると、駆動速度ｖ２が限界駆動速度を越えてしまう。しかしながら、手先を等速で駆動すると、駆動速度ｖ１、ｖ２が限界駆動速度を越えない。従って、手先速度の修正を行い、加速度ａ＝０のときの手先速度を修正速度Ｖｍｏｄとする。この区間では、駆動速度ｖ１は一定となり、駆動速度ｖ２が限界駆動速度ｖ２＿ｌｉｍｉｔで一定となっている。
【００４３】
ｔ＝ｔ４〜ｔ５の区間では、手先速度Ｖが一定となっている。この区間では、手先を最大加速度ａｍａｘで加速すると、駆動速度ｖ２が限界駆動速度を越えてしまう。しかしながら、手先を等速で駆動すると、駆動速度ｖ１、ｖ２が限界駆動速度を越えない。従って、手先速度の修正を行い、加速度ａ＝０のときの速度を修正速度Ｖｍｏｄとする。この区間では、駆動速度ｖ１は一定の傾きで増加し、駆動速度ｖ２が一定の傾きで減少している。すなわち、駆動速度ｖ１と駆動速度ｖ２の変化量が打ち消しあって、手先が等速移動している。このように、手先速度Ｖを一定とするよう、駆動速度ｖ１の増加と駆動速度ｖ２の減少が制御されている。この区間では、駆動速度ｖ１が限界駆動速度よりも十分低くなっているため、駆動速度ｖ１を加速することができる。
【００４４】
ｔ＝ｔ５〜ｔ６の区間では、手先速度Ｖが一定の傾きで増加している。すなわち、加速度ａ＝ａｍａｘとして算出した駆動速度ｖ１、ｖ２が限界駆動速度を越えないため。手先速度を修正する必要がない。よって、最大加速度ａｍａｘで加速したときの手先速度に基づいて、駆動速度が決定される。この区間では、駆動速度ｖ１は、一定の傾きで増加し、駆動速度ｖ２は、一定の傾きで減少している。さらに、この区間の駆動速度ｖ１の傾きは、ｔ４〜ｔ５での傾きよりも大きくなっている。また、この区間の駆動速度ｖ２の傾きは、ｔ４〜ｔ５での傾きと同じである。このように、この区間では、駆動速度ｖ１が増加し、駆動速度ｖ２が減少することによって、手先が加速する。
【００４５】
ｔ＝ｔ６〜ｔ７の区間では、手先速度Ｖが一定となっている。この区間では、手先を最大加速度ａｍａｘで加速すると、駆動速度ｖ１が限界駆動速度を越えてしまう。しかしながら、手先を等速で駆動すると、駆動速度ｖ１、ｖ２が限界駆動速度を越えない。従って、手先速度の修正を行い、加速度ａ＝０のときの速度を修正速度Ｖｍｏｄとする。この区間では、駆動速度ｖ１は一定の傾きで増加し、駆動速度ｖ２が一定の傾きで減少している。この区間の駆動速度ｖ１の傾きは、ｔ５〜ｔ６での傾きよりも小さくなっている。また、この区間の駆動速度ｖ２の傾きは、ｔ５〜ｔ６での傾きと同じである。このように、手先速度Ｖを一定とするよう、駆動速度ｖ１の増加と駆動速度ｖ２の減少が制御されている。
【００４６】
ｔ＝ｔ７〜ｔ８の区間では、手先速度Ｖが減少している。ここでは、目標位置に近づいたため、減速処理が実行されている。すなわち、ｔ＝ｔ７の時点で減速を開始しないと、目標位置をオーバーしてしまう。このため、最大加速度ａｍａｘで減速を開始する。この区間では、限界駆動速度によらず、一定の加速度で減速する。そして、ｔ＝８となった時点で、手先速度Ｖ＝０となり、移動が停止する。すなわち、駆動速度ｖ１が０となり、駆動速度ｖ２が０となる。
【００４７】
このように、手先速度は、±ａｍａｘ、０の３段階であるが、それによって求められる駆動速度、及びその傾きは小刻みに変化する。すなわち、各関節の駆動速度を細かく制御することができるため、適切な駆動速度で制御を行うことができる。さらに、本実施の形態では、手先速度ではなく、各関節の駆動速度に対して限界値を設定している。このため、複雑な条件を考慮することなく、限界駆動速度を設定することができる。よって、限界駆動速度を大きくすることができ、速やかに関節を駆動することができる。これにより、手先速度に限界値を設定した場合と比べて、手先を速く移動させることができ、駆動時間を短縮することができる。すなわち、アーム部２０の姿勢によっては、手先速度の限界値が変化することがある。この場合、手先軌道上には、手先速度を高くすることができる姿勢とできない姿勢とが、存在することになる。手先速度を高くすることができない姿勢を取る軌道上を移動する場合、手先速度の限界値を低く設定する必要がある。そして、手先速度に限界値を設ける場合、軌道上全体に対して低い限界値を設けなければならない。この場合、手先速度を大きくすることができないため、短時間で移動することができない。一方、本実施の形態では、各駆動速度に適切な限界駆動速度（限界値）を設定することができる。このため、手先を高速に移動させることができる。これにより、駆動時間を短縮することができる。
【００４８】
次に、本実施の形態にかかる制御方法について、図５を用いて説明する。図５は、本実施の形態にかかるロボットアームの制御方法を示すフローチャートである。図５では、手先速度演算部３３での処理から示されている。まず、手先速度を演算するため、現在速度、軌道位置、及び加速度を得る（ステップＳ１０１）。手先の現在速度は、例えば、エンコーダ２７の検出信号から求めることができる。軌道位置は、手先軌道生成部３２によって生成された軌道上の点の座標に対応している。そして、手先軌道上の軌道位置は、手先軌道生成部３２から順番に出力される。すなわち、移動開始位置から目標位置までの軌道位置を移動開始位置側から目標位置側に向かって順番に出力している。加速度として、最大加速度ａｍａｘを用いる。すなわち、手先速度が最も速くなるように、加速度記憶部３６に記憶されている加速度の中で最大の加速度を出力する。なお、最大加速度の加速方向は、現在速度の方向と同一方向である。
【００４９】
次に、手先速度を演算する（ステップＳ１０２）。すなわち、手先速度演算部３３が、現在速度、軌道位置、及び加速度に基づいて手先速度Ｖを演算する。具体的には、現在速度から軌道位置に向かって、最大加速度ａｍａｘで加速したときの手先速度Ｖを演算する。そして、各関節の駆動速度を算出する（ステップＳ１０３）。すなわち、駆動速度算出部３４が駆動速度を関節毎に算出する。ここでは、上記のように、逆ヤコビアンを用いて、各関節の駆動速度を求めることができる。
【００５０】
そして、各関節の駆動速度がリミットをオーバーしているか否かを判定する（ステップＳ１０４）。すなわち、駆動速度評価部３５が駆動速度と限界駆動速度とを比較して、駆動速度が限界駆動速度を越えていないか評価する。限界駆動速度を越えている場合、手先速度を修正する（ステップＳ１０５）。すなわち、手先速度修正部３７が、加速度を変化させて、修正速度Ｖｍｏｄを求める。ここでは、加速度記憶部３６に記憶されている加速度のうち、最大加速度の次の加速度が用いられる。従って、加速度ａ＝０とした時の手先速度を修正速度Ｖｍｏｄとする。そして、修正速度Ｖｍｏｄに基づいて、各関節の駆動速度を算出する（Ｓ１０４）。そして、駆動速度がリミットをオーバーしなくなるまで、手先速度を修正する（ステップＳ１０４、及びＳ１０５）。
【００５１】
限界駆動速度を越えない駆動速度が得られたら、減速処理を開始するか否かを判定する（ステップＳ１０６）。すなわち、ステップＳ１０２での手先速度に基づいて算出された駆動速度が限界駆動速度を越えていない場合、あるいは、ステップＳ１０５での修正速度に基づいて算出された駆動速度が限界駆動速度を越えていない場合、減速処理判定を行なう。
減速処理が不要であると判定されたら、そのまま関節駆動速度を決定する（ステップＳ１０８）。一方、減速処理が必要と判定されたら、減速処理を行う（ステップＳ１０７）。すなわち、目標位置に接近して、減速を開始しないと目標位置で停止できない場合は、即座に最大加速度で減速する。そして、減速処理を実行して駆動速度を決定する（ステップＳ１０８）。すなわち、最大加速度で減速した手先速度から得られた駆動速度を用いる。この駆動速度をアンプによって増幅して、駆動信号を出力する（ステップＳ１０９）。これにより、１制御周期における処理が完了する。そして、ステップＳ１０１に戻り、現在速度、軌道位置を更新して、再度同じ処理を行う。このようにして、関節を駆動することができる。このような制御方法によって、各関節の駆動速度を適切に設定することができるため、駆動時間を短縮することができる。
【００５２】
このように、制御周期毎に、現在のアームの状態（現在速度、手先の現在位置、及び目標位置までの距離等）を考慮して制御を行うため、目標位置が変化した場合でも、適切に制御することができる。これにより、目標位置が移動する場合でも、リアルタイムに対応することが可能となる。この場合、例えば、移動した目標位置に対して現在位置からの目標軌道を生成して、同様の処理を行う。よって、リアルタイムに対応することが可能となる。なお、上記の説明では、全関節が回転関節であるとして説明したが、一部の関節が、直動関節であってもよい。
【００５３】
なお、上記の説明では、加速度ａを３段階に設定したが、２段階に設定してもよく、あるいは４段階以上に設定してもよい。加速度記憶部３６に記憶されている加速度ａの数を増やすことにより、より細かな制御を行うことができる。すなわち、加速度記憶部３６に記憶されている複数の加速度の中から、適切な加速度を選択することができる。この場合、最大加速度ａｍａｘで駆動速度が限界駆動速度を越えたら、最大加速度ａｍａｘよりも低い加速度ａ１で加速する。このようにすることによって、手先速度をより細かく設定することが可能になる。よって、移動時間をより短縮することができる。なお、設定する加速度の数を増やすことにより計算時間が増加する。すなわち、ステップＳ１０４、ステップＳ１０５、及びステップＳ１０３の実行回数が増加するおそれがある。このため、設定する加速度の数は、想定する制御周期内で処理が完了できる程度に増加させることが好ましい。
【００５４】
発明の実施の形態２．
本実施の形態では、上記の制御を、多自由度のマニピュレータにおける手先の姿勢の制御に対して適用している。例えば、図１で示したロボット１において、手首関節などの手先の姿勢を変化させる関節を追加する。例えば、第２リンク２４とハンド２６との間に、ハンド２６を駆動する手首関節を設ける。これにより、ハンド２６の軸周りの姿勢（ローリング、ピッチング、ヨーイング）を変化させることができる。すなわち、ハンド２６は軸周りの姿勢が回転する。例えば、ハンド２６は、第２リンク２４が設けられている方向を回転軸として、回転する。これにより、ハンド２６の軸周りが駆動方向となって、手先姿勢が変化する。なお、本実施の形態にかかる制御は、６自由度や７自由度のマニピュレータに対しても適用することができる。このようなマニピュレータでは、複数の関節によって、手先の位置、及び手先の姿勢が変化する。また、１つの関節によって、手先の位置、及び姿勢が変化する。
【００５５】
図６を用いて、本実施の形態にかかるロボットについて説明する。図６は、本実施の形態にかかるロボット１の制御部１１の構成を模式的に示すブロック図である。なお、ロボット１の基本的構成は、実施の形態１と同様であるため、説明を省略する。また、制御部１１の基本的な構成も実施の形態１と同様であるため、以下の説明では、主に、実施の形態１との相違点を説明する。すなわち、手先の位置の制御については、実施の形態１と同様であるため説明を省略する。本実施の形態では、例えば、手先姿勢を変化させるための手首関節が設けられている。手首関節が回転駆動することによって、手先の姿勢が変化する。すなわち、手先が軸周りに回転して、手先姿勢が変化する。なお、手首関節以外の関節によって、手先姿勢を変化させてもよく、２以上の関節によって手先姿勢を変化させてもよい。本実施の形態では、手先姿勢を制御するため、図３で示した制御部１１の構成に加えて、姿勢角速度演算部４０が設けられている。さらに、手先速度修正部３７に変えて、修正部４１が設けられている。
【００５６】
本実施の形態では、手先軌道生成部３２は手先の軌道位置だけでなく、手先軌道上での手先の姿勢を算出する。すなわち、軌道位置の座標に手先の姿勢角（手先の軸周りの回転角）を対応付けて、手先軌道を生成する。手先軌道生成部３２の手先の位置の軌道は、実施の形態１と同様に、手先速度演算部３３に出力される。そして、手先速度演算部３３は、実施の形態１と同様に手先速度を演算する。一方、手先の姿勢の軌道は、姿勢角として姿勢角速度演算部４０に出力される。従って、姿勢角速度演算部４０には、停止位置での目標姿勢となる姿勢までの姿勢角が順次出力される。姿勢角速度演算部４０は、現在の姿勢の角速度から、姿勢角に向けて、予め設定されている変化量だけ角速度を増加させる。これにより、手先の姿勢角速度ωを演算することができる。従って、手先軌道生成部３２で生成された軌道上での手先の姿勢角に追従するように制御される。手先の現在姿勢角はエンコーダ２７によって求めることができる。
【００５７】
そして、駆動速度算出部３４は、手先速度と姿勢角速度を満たす駆動速度を算出する。ここでは、実施の形態１と同様に、逆ヤコビアンなどの変換行列によって、各関節の駆動速度を算出する。もちろん、手先の姿勢角を変えるための関節の駆動速度も算出される。そして、駆動速度評価部３５は、各関節の駆動速度を評価する。すなわち、姿勢角を変化させる関節の駆動速度が限界駆動速度を越えていないか判定する。もちろん、手先の位置を変化させる関節の駆動速度についても評価を行なう。１つ以上の関節の駆動速度が限界駆動速度を越えている場合、限界駆動速度を超えていることを示す評価信号を出力する。
【００５８】
本実施の形態では、実施の形態１で示した手先速度修正部３７の代わりに、修正部４１が設けられている。修正部４１は、１つ以上の関節の駆動速度が限界駆動速度を越えている場合、手先の速度、及び姿勢角速度ωを修正する。手先の姿勢角速度ωは、手先速度と同様に修正することができる。例えば、姿勢角速度ωを増加させると、駆動速度が限界駆動速度を越える場合、姿勢角速度ωを一定にする。また、姿勢角速度ωが一定としても、駆動速度が限界駆動速度を越える場合、姿勢角速度ωを減少させる。このようにして、修正角速度ωｍｏｄを求めることができる。従って、いずれか１つの駆動速度が限界駆動速度を越える場合、手先速度、及び姿勢角速度を修正する。そして、修正した手先速度、及び姿勢角速度に基づいて、各関節の駆動速度を求める。駆動速度が限界駆動速度を越えなくなるまで、この処理を行う。そして、実施の形態１と同様に、駆動速度に基づく駆動信号を出力する。上記の処理を繰り返すことにより、各関節を適切な駆動速度で駆動することができる。従って、駆動時間を短縮することができる。このように、手先位置、及び姿勢が同じ関節の駆動によって変化するマニピュレータに上記の制御を行うことにより、簡便に駆動時間を短縮することができる。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施の形態１に係るロボットの全体を概略的に表した全体概略図である。
【図２】本発明の実施の形態１に係るロボットの軌道を示す図である。
【図３】本発明の実施の形態１に係るロボットに設けられた制御部を示すブロック図である。
【図４】本発明の実施の形態１に係るロボットの制御方法における制御パターンを示す図である。
【図５】本発明の実施の形態１に係るロボットの制御方法を示すフローチャートである。
【図６】本発明の実施の形態２に係るロボットに設けられた制御部を示すブロック図である。
【符号の説明】
【００６０】
１  ロボット、１０  本体部、１１  制御部、２０  アーム部、
２１  第１関節、２２  第１リンク、２３  第２関節、２４  第２リンク、２６  ハンド、
２７  エンコーダ、２８  アクチュエータ、
３１  目標位置記憶部、３２  手先軌道生成部、３３  手先速度演算部、
３４  駆動速度算出部、３５  駆動速度評価部、３６  加速度記憶部、
３７  手先速度評価部、３８  減速処理判定部、３９  関節駆動部、
４０  姿勢角速度演算部、４１  修正部
【図１】
2008194760.tif 000003
【図２】
2008194760.tif 000004
【図３】
2008194760.tif 000005
【図４】
2008194760.tif 000006
【図５】
2008194760.tif 000007
【図６】
2008194760.tif 000008