JP2008194760A - Robot arm and control method therefor - Google Patents
Robot arm and control method therefor Download PDFInfo
- Publication number
- JP2008194760A JP2008194760A JP2007029135A JP2007029135A JP2008194760A JP 2008194760 A JP2008194760 A JP 2008194760A JP 2007029135 A JP2007029135 A JP 2007029135A JP 2007029135 A JP2007029135 A JP 2007029135A JP 2008194760 A JP2008194760 A JP 2008194760A
- Authority
- JP
- Japan
- Prior art keywords
- speed
- hand
- joint
- driving
- drive
- 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
Links
Images
Abstract
Description
本発明は、ロボットアーム、及びその制御方法に関し、特に詳しくは、複数の関節を有するロボットアーム、及びその制御方法に関する。 The present invention relates to a robot arm and a control method thereof, and more particularly to a robot arm having a plurality of joints and a control method thereof.
産業用ロボットとして利用されているロボットアームは、通常、リンクと、リンクを結びつける複数の関節とによって構成されている。このようなロボットアームでは、関節を駆動することによって、目標位置まで移動している。そして目標位置で、所定の作業を行なう。例えば、ロボットアームの先端に設けられたロボットハンドを目標位置まで移動して、所定の動作を行なう。したがって、目標位置までのロボットアームの駆動時間を短縮することによって、作業効率を向上することができる。 A robot arm used as an industrial robot is generally composed of a link and a plurality of joints connecting the links. Such a robot arm moves to a target position by driving a joint. Then, a predetermined operation is performed at the target position. For example, the robot hand provided at the tip of the robot arm is moved to the target position to perform a predetermined operation. Therefore, work efficiency can be improved by shortening the drive time of the robot arm to the target position.
ロボットアームの駆動時間を短縮するための制御方法が開示されている(特許文献1)。この制御方法では、ロボットアームを駆動する場合、移動する経路内での移動速度を最大にする関節軸を選択している。そして、その関節軸の出し得る最大速度を目標速度に設定した後、他の関節速度を修正している。このようにして、ロボットアームの移動速度を決定している。
しかしながら、特許文献1に記載されている制御方法では、以下に示す問題点があった。この制御方法では、次の目標地点までにどれだけ加速できるかを考慮せずに、最大速度を設定している。そのため、十分な加速時間が得られない場合は、設定した最大速度に達しなくなってしまう。また、(手先から各関節までの距離)×(関節最大速度−関節現在速度)が最大になる関節軸を最大速度とすべき関節軸として選択している。したがって、最大速度を最大にする関節軸が最適であるかどうか分らないという問題点がある。さらに、目標軌道の情報(位置、姿勢)を元に計算しているため、刻々と動的に目標位置が変化するような場合、リアルタイムに適応することができない。このように、従来の制御方法では、駆動時間を短縮することができないという問題点がある。
However, the control method described in
本発明は、このような問題を解決するためになされたものであり、目標位置までの駆動時間を短縮することができるロボットアーム、及びその制御方法を提供することを目的とする。 The present invention has been made to solve such a problem, and an object of the present invention is to provide a robot arm that can shorten the drive time to a target position, and a control method therefor.
本発明の第1の態様にかかるロボットアームは、複数の関節を駆動して、手先を目標位置まで移動させるロボットアームであって、前記目標位置までの手先の軌道を生成する手先軌道生成部と、前記手先軌道生成部によって生成された手先軌道にしたがって移動するときの手先の速度を演算する手先速度演算部と、前記手先速度演算部によって演算された手先速度に基づいて、前記関節の駆動速度を算出する駆動速度算出部と、前記関節の駆動速度が駆動速度の限界値を越えているか否かを評価する駆動速度評価部と、前記駆動速度が限界値を越えている場合に、前記手先速度演算部で演算された手先速度を修正して前記駆動速度算出部に出力する修正部と、前記修正部で修正された手先速度に基づいて前記駆動速度算出部が算出した駆動速度に応じて、前記関節を駆動するアクチュエータと、を備えるものである。これにより、各関節の駆動速度を適切に制御することができるため、目標位置までの駆動時間を短縮することができる。 A robot arm according to a first aspect of the present invention is a robot arm that drives a plurality of joints to move a hand to a target position, and a hand trajectory generating unit that generates a hand trajectory to the target position; A hand speed calculator for calculating a hand speed when moving according to the hand trajectory generated by the hand trajectory generator; and a driving speed of the joint based on the hand speed calculated by the hand speed calculator A driving speed calculating unit for calculating the joint speed, a driving speed evaluating unit for evaluating whether or not the driving speed of the joint exceeds a limit value of the driving speed, and when the driving speed exceeds the limit value, A correction unit that corrects the hand speed calculated by the speed calculation unit and outputs the correction to the driving speed calculation unit, and a driving speed calculated by the driving speed calculation unit based on the hand speed corrected by the correction unit Depending on, those comprising, an actuator for driving the joint. Thereby, since the drive speed of each joint can be controlled appropriately, the drive time to the target position can be shortened.
本発明の第2の態様にかかるロボットアームは、上記のロボットアームであって、前記複数の関節に、前記手先の姿勢を変化させるための関節が含まれ、前前記手先軌道生成部によって生成された手先軌道にしたがって移動するときの前記手先姿勢の角速度を演算する姿勢角速度演算部がさらに設けられ、前記駆動速度算出部が、前記手先速度、及び前記角速度に基づいて、前記関節の駆動速度を算出し、前記修正部が、前記駆動速度評価部での評価結果に応じて、前記手先速度、及び角速度を修正し、前記アクチュエータが、前記修正された手先速度、及び前記修正された角速度に基づいて前記関節駆動部が算出した駆動速度に応じて、前記関節を駆動するものである。これにより、手先の姿勢角を適切に制御することができる。 A robot arm according to a second aspect of the present invention is the above-described robot arm, wherein the plurality of joints include joints for changing the posture of the hand, and is generated by the front hand trajectory generation unit. A posture angular velocity calculating unit that calculates an angular velocity of the hand posture when moving according to the hand trajectory, and the drive speed calculating unit calculates the joint drive speed based on the hand speed and the angular velocity. The correction unit corrects the hand speed and the angular velocity according to the evaluation result in the driving speed evaluation unit, and the actuator is based on the corrected hand speed and the corrected angular velocity. The joint is driven according to the driving speed calculated by the joint driving unit. Thereby, the posture angle of the hand can be appropriately controlled.
本発明の第3の態様にかかるロボットアームは、上記のロボットアームであって、前記手先速度演算部が、前記手先の現在の速度から、所定の加速度で加速したときの速度を手先速度として演算することを特徴とするものである。これにより、手先が所定の加速度で加速されていくため、駆動時間を短縮することができる。 A robot arm according to a third aspect of the present invention is the robot arm described above, wherein the hand speed calculation unit calculates, as a hand speed, a speed when accelerating at a predetermined acceleration from the current speed of the hand. It is characterized by doing. Thereby, since the hand is accelerated at a predetermined acceleration, the driving time can be shortened.
本発明の第4の態様にかかるロボットアームの制御方法は、複数の関節を駆動して、手先を目標位置まで移動させるロボットアームの制御方法であって、前記目標位置までの手先の軌道を生成するステップと、前記手先軌道にしたがって移動するときの手先の速度を演算するステップと、前記手先速度に基づいて、前記関節の駆動速度を算出するステップと、前記関節の駆動速度が駆動速度の限界値を越えているか否かを評価するステップと、前記駆動速度が限界値を越えている場合に、前記手先速度を修正するステップと、前記修正された手先速度に基づいて算出された駆動速度に応じて、前記関節を駆動するステップと、を備えるものである。これにより、各関節の駆動速度を適切に制御することができるため、目標位置までの駆動時間を短縮することができる。 A robot arm control method according to a fourth aspect of the present invention is a robot arm control method that drives a plurality of joints to move a hand to a target position, and generates a trajectory of the hand to the target position. A step of calculating a hand speed when moving according to the hand trajectory, a step of calculating a driving speed of the joint based on the hand speed, and a driving speed of the joint is a limit of a driving speed. A step of evaluating whether or not the value exceeds a value; a step of correcting the hand speed when the drive speed exceeds a limit value; and a drive speed calculated based on the corrected hand speed. And a step of driving the joint. Thereby, since the drive speed of each joint can be controlled appropriately, the drive time to the target position can be shortened.
本発明の第5の態様にかかるロボットアームの制御方法は、上記の制御方法において、前記複数の関節に、前記手先の姿勢を変化させるための関節が含まれ、前記手先軌道にしたがって移動するときの前記手先姿勢の角速度を演算するステップがさらに設けられ、前前駆動速度を算出するステップでは、前記関節の駆動速度が、前記手先速度、及び前記角速度に基づいて算出され、前記手先速度を修正するステップでは、前記駆動速度が限界値を越えている場合に、前記手先速度、及び前記角速度が修正され、前記関節を駆動するステップでは、前記修正された前記手先速度、及び前記修正された角速度に基づいて算出された駆動速度に応じて、前記関節が駆動されるものである。これにより、各関節の駆動速度を適切に制御することができるため、目標位置までの駆動時間を短縮することができる。これにより、手先の姿勢角を適切に制御することができる。 The robot arm control method according to a fifth aspect of the present invention is the robot control method described above, wherein the plurality of joints include joints for changing the posture of the hand and moves according to the hand trajectory. A step of calculating an angular velocity of the hand posture of the step, and a step of calculating a pre-front drive speed calculates the joint drive speed based on the hand speed and the angular speed, and corrects the hand speed. In the step of driving, when the driving speed exceeds a limit value, the hand speed and the angular speed are corrected. In the step of driving the joint, the corrected hand speed and the corrected angular speed are corrected. The joint is driven according to the drive speed calculated based on the above. Thereby, since the drive speed of each joint can be controlled appropriately, the drive time to the target position can be shortened. Thereby, the posture angle of the hand can be appropriately controlled.
本発明の第6の態様にかかるロボットアームの制御方法は、前記手先速度を演算するステップでは、前記手先の現在の速度から、所定の加速度で加速したときの速度を手先速度として演算されているものである。これにより、手先が所定の加速度で加速されていくため、駆動時間を短縮することができる。 In the robot arm control method according to the sixth aspect of the present invention, in the step of calculating the hand speed, the speed when accelerated at a predetermined acceleration is calculated from the current speed of the hand as the hand speed. Is. Thereby, since the hand is accelerated at a predetermined acceleration, the driving time can be shortened.
本発明によれば、目標位置までの駆動時間を短縮することができるロボットアーム、及びその制御方法を提供することが可能となる。 ADVANTAGE OF THE INVENTION According to this invention, it becomes possible to provide the robot arm which can shorten the drive time to a target position, and its control method.
発明の実施の形態1.
以下に、図1を参照しつつ本発明の実施の形態1にかかるロボットアーム(以下、単にロボットという)について説明する。本実施の形態ではロボット1が2関節のマニピュレータであるとして説明する。
A robot arm (hereinafter simply referred to as a robot) according to a first embodiment of the present invention will be described below with reference to FIG. In the present embodiment, description will be made assuming that the
図1は、ロボット1を模式的に示す図である。ロボット1は、リンクとリンクを連結する関節(ジョイント)とが設けられたリンク機構を有している。具体的には、ロボット1は第1関節21と、第1リンク22と、第2関節23と、第2リンク24と、ハンド26とを有している。第1関節21、第1リンク22、第2関節23、及び第2リンク24からアーム部20が構成される。第1リンク22、及び第2リンク24は剛体で構成される部材である。そして、アーム部20の先端にハンド26が設けられている。すなわち、第2リンク24の先端には所定の動作を行なうハンド26が取り付けられている。ハンド26は、例えば、物体の把持、塗装、溶接などの作業を行なう。すなわち、ハンド26が目標位置まで移動したら、所定の作業を行なう。このように、2関節のマニピュレータは、アーム部20とハンド26から構成されている。そして、アーム部20は本体部10に接続されている。本体部10には、アーム部20を制御する制御部11などが収納されている。
FIG. 1 is a diagram schematically showing the
第1関節21、及び第2関節23には、モータ等のアクチュエータ、及びエンコーダ等のセンサが設けられている。例えば、各関節には、動力を発生するサーボモータと、サーボモータの動力を伝達するギヤと、サーボモータの回転変位を計測するロータリーエンコーダとが設けられている。第1関節21は、本体部10と第1リンク22を連結している。第2関節23は、第1リンク22と第2リンク24とを連結している。すなわち、第1関節21は、第1リンク22を回動自在に支持し、第2関節23は第2リンク24を回動自在に支持している。
The
アーム部20は、本体部10に取り付けられている。具体的には、第1関節21が本体部10に固定されている。本体部10には、第1関節21、及び第2関節23を駆動するための制御部11が設けられている。制御部11は、CPUやメモリ等の記憶領域を備えるコンピュータである。制御部11は、いわゆるCPU等の演算処理部を有するコンピュータであり、マニピュレータの動作を所定のプログラムに従って制御するものである。例えば、制御部11は、演算処理部であるCPU(Central Processing Unit)、記憶領域であるROM(Read Only Memory)やRAM(Random Access Memory)、通信用のインターフェースなどを有し、ロボット1の各種動作を制御する。例えば、ROMには、制御するための制御プログラムや、各種の設定データ等が記憶されている。そして、CPUは、このROMに記憶されている制御プログラムを読み出し、RAMに展開する。そして、設定データや、センサ等からの出力に応じてプログラムを実行する。
The
アーム部20は、制御部11によって駆動速度や関節角度などが制御されることで、自律的に動作する。制御部11からの駆動信号によって、第1関節21、及び第2関節23が所定の駆動速度で駆動する。そして、アーム部20の先端に設けられたハンド26が目標位置まで移動すると、各関節の駆動が停止する。第1関節21、及び第2関節23は1自由度の回転関節である。図1では、第1関節21と第2関節23の回転軸が平行であるとして示しているが、これに限られるものではない。制御部11は、一定の制御周期で、各関節の駆動速度を求めている。そして、制御部11は、各関節の駆動速度に対応する駆動信号をモータ等に出力している。これにより、ハンド26を目標位置まで速やかに移動させることができる。
The
例えば、図1において、第1関節21、及び第2関節23は、紙面と垂直な方向を回転軸として、回転駆動する。第1関節21を駆動することによって、本体部10に対して第1リンク22が回転する。さらに、第2関節23が駆動することによって、第1リンクに対して第2リンク24が回転する。これにより、ハンド26を所定の位置まで移動することができる。すなわち、第1関節21、及び第2関節23の関節角度によって、ハンド26の位置が決定する。第1関節21、及び第2関節23が駆動することによって、ハンド26が目標位置まで移動する。そして、ハンド26は目標位置で所定の動作を行なう。例えば、ハンド26は目標位置で物体の把持動作等を行なう。これにより、所望の作業を行なうことができる。
For example, in FIG. 1, the first joint 21 and the second joint 23 are driven to rotate about a direction perpendicular to the paper surface as a rotation axis. By driving the first joint 21, the
ここで、アーム部20の動作について図2を用いて説明する。ここでは、図2に示すように、移動開始位置をA点とし、目標位置をB点とする。すなわち、A点で停止していたハンド26がB点まで移動して、B点で停止する場合について説明する。なお、アーム部20の先端に設けられたハンド26の位置を手先位置とする。また、ハンド26の速度を手先速度Vとする。例えば、ハンド26の重心の位置を手先位置とし、重心の速度を手先速度とする。また、第1関節21の駆動速度をv1とし、第2関節23の駆動速度をv2とする。なお、関節の駆動速度とは、回転関節の場合、回転する関節の角速度に対応した値である。従って、駆動速度は、関節を駆動するモータの角速度と、ギヤ比に基づいた値となる。そして、駆動速度v1でリンク22が回転し、駆動速度v2でリンク24が回転する。
Here, the operation of the
図2では、A点におけるマニピュレータを第1関節21、第1リンク22a、第2関節23a、第2リンク24a、ハンド26aで示し、B点におけるマニピュレータを第1関節21、第1リンク22b、第2関節23b、第2リンク24b、ハンド26bで示している。ここでは、A点からB点までの手先の軌道を直線軌道としている。従って、手先が直線軌道にしたがって移動するものとして説明する。すなわち、手先はA点からB点まで最短距離で移動する。
In FIG. 2, the manipulator at the point A is indicated by the first joint 21, the
次に、アーム部20に対してA点からB点まで移動するための制御を行う制御部11について図3を用いて説明する。図3は、制御部11の構成を模式的に示すブロック図である。制御部11は、目標位置記憶部31、手先軌道生成部32、手先速度演算部33、駆動速度算出部34、駆動速度評価部35、加速度記憶部36、手先速度修正部37、減速処理判定部38、及び関節駆動部39を備えている。制御部11は、例えば、一定の制御周期で、関節を駆動する駆動速度を計算して、その駆動速度に応じた駆動信号をアクチュエータ28に出力する。ここでは、手先速度演算部33、駆動速度算出部34、駆動速度評価部35、手先速度修正部37での減速処理判定部38での処理が制御周期毎に繰り返し実行される。これにより、関節の駆動速度を求めることができる。関節駆動部39は、例えば、モータのアンプであり、駆動速度に応じた駆動信号をアクチュエータ28に出力する。アクチュエータ28は、その駆動信号に基づいて駆動する。これにより、それぞれの関節が駆動速度で駆動する。そして、関節駆動部39は、制御周期毎に駆動信号を出力する。これにより、各関節は適切な駆動速度で回転する。
Next, the
図3に示すように、制御部11には、エンコーダ27からの検出信号が入力されている。エンコーダ27は、例えば、第1関節21、第2関節23に設けられたモータの回転角度を検出する。そして、エンコーダ27は、モータの回転角度を検出信号として出力する。各関節に設けられているエンコーダ27によって、手先の現在位置を得ることができる。制御部11は、例えば、手先の現在位置をxyz座標値として求める。さらに、制御部11は、エンコーダ27からの検出信号によって、手先の現在速度を求めている。制御部11は、例えば、エンコーダ27の変化量から、各関節の角速度を算出して、手先の現在速度を求めている。
As shown in FIG. 3, the detection signal from the
目標位置記憶部31には、例えば、ユーザーによって入力された目標位置が記憶されている。この目標位置は、手先の位置をxyz座標値として記憶されている。手先軌道生成部32は、現在位置から目標位置までの手先軌道を生成する。手先軌道は、例えば、3次元の軌道データ行列として算出される。制御部11は、手先の現在位置、及び目標位置に基づいて、手先軌道を決定する。この手先軌道が手先の移動経路となる。ここで、手先軌道を複数の点(座標)の集合として求めることができる。よって、複数の座標の集合が、手先軌道を示す軌道データ行列となる。図2に示されているA点からB点までの直線軌道上の複数の点の座標が軌道データ行列として計算される。例えば、軌道データ行列には、直線軌道上に一定の間隔で配置された多数の点の座標が、順番に配列される。そして、この軌道データ行列上に含まれる点上を手先が順番に移動していく。ここで、軌道データ行列に含まれる手先軌道上の点の位置を軌道位置とする。軌道位置は、xyz座標値で示される。
In the target
手先軌道生成部32で生成された手先軌道は、手先速度演算部33に入力される。すなわち、手先軌道を構成する軌道位置の座標が手先速度演算部33に入力される。ここでは、軌道データ行列に含まれる軌道位置の座標が順番に入力されていく。さらに、手先速度演算部33には、エンコーダ27の検出信号に基づいて算出された手先の現在位置が入力される。
The hand trajectory generated by the hand
手先速度演算部33は、手先の現在速度と手先軌道とに基づいて、手先速度を演算する。手先速度演算部33は加速度記憶部36に記憶されている加速度を用いて、手先速度を演算される。なお、加速度記憶部36には、手先の加速度が複数記憶されている。そして、そのうちの一つの加速度で加速したときの手先速度が求められる。ここでは、手先の現在速度から、次の軌道位置に向かって最大加速度で加速した場合の手先速度が算出される。ここで、最大加速度とは、全関節を同じ方向に駆動することによって得られる最大の加速度である。この最大加速度は、一定の値であり、加速度記憶部36に記憶されている。最大加速度は、関節を駆動するモータの性能(トルク、回転数等)、リンクやハンド26の重量、及びギア比等によって決まる。手先速度演算部33は、手先の現在位置から、手先軌道上の次の軌道位置に向かうときの速度を算出する。手先の現在速度に対して最大加速度を加えることによって、手先速度を求めることができる。ここで、手先の現在速度をV0とし、最大加速度をamaxとする。なお、最大加速度をamaxは正の値である。図2では、手先軌道が直線軌道となっている。このため、手先速度演算部33によって演算される手先速度をVとすると、手先速度V=V0+amaxtとなる。なお、tは手先速度を演算する制御周期に対応する時間である。このように、手先速度演算部33は、現在速度V0から所定の最大加速度amaxで加速したときの速度を手先速度Vとする。手先速度演算部33は、手先速度Vを制御周期毎に演算して、駆動速度算出部34に出力する。
The
手先速度演算部33で演算された手先速度Vは、駆動速度算出部34に入力される。駆動速度算出部34は、手先速度Vに基づいて、各関節の駆動速度を算出する。具体的には、逆ヤコビアンなどの変換行列を用いて、手先速度Vに到達するために必要な駆動速度を各関節毎に算出する。逆ヤコビ行列を用いて、手先速度Vを各関節の駆動速度v1、v2に分解する。これにより、1制御周期で、手先の現在速度V0から手先速度Vに到達するための駆動速度v1、v2を求めることができる。もちろん、これ以外の方法で関節の駆動速度を求めてもよい。
The hand speed V calculated by the
駆動速度算出部34で算出された駆動速度v1、v2は駆動速度評価部35に出力される。駆動速度評価部35は、駆動速度v1、v2が駆動速度の限界値を越えているか否かを評価する。ここで、第1関節21及び第2関節23の駆動速度の限界値をそれぞれ限界駆動速度v1_limit、v2_limitとする。したがって、駆動速度算出部34は、第1関節21の駆動速度v1と限界駆動速度v1_limitとを比較し、第2関節23の駆動速度v2と第2関節23の限界駆動速度v2_limitとを比較する。限界駆動速度は、両回転方向に対して、設定されている。すなわち、正と負の限界駆動速度が設定されている。ここでは、両回転方向に対して設定されている限界駆動速度を同じ大きさとする。したがって、駆動速度v1、v2の絶対値|v1|、|v2|が、限界駆動速度v1_limit、v2_limit以上となっているかをそれぞれ判定する。
The drive speeds v1 and v2 calculated by the drive
なお、限界駆動速度は、モータ仕様やギア比などに基づいて動力学から計算することができる。この場合、限界駆動速度は、一定の値となる。さらに、限界駆動速度をモータ仕様、ギア比、アーム部20の姿勢、速度などに基づいて、動力学から計算してもよい。この場合、限界駆動速度は、アーム部20の姿勢、速度に応じて変化する。駆動速度評価部35は、全関節が限界駆動速度を超えていないか判定する。
The limit drive speed can be calculated from dynamics based on the motor specifications, gear ratio, and the like. In this case, the limit drive speed is a constant value. Further, the limit drive speed may be calculated from the dynamics based on the motor specifications, the gear ratio, the attitude of the
関節の駆動速度が限界駆動速度を超えていない場合、駆動速度評価部35は、各駆動速度v1、v2をそのまま減速処理判定部38に出力する。すなわち、手先速度演算部33で演算された手先速度Vに基づく駆動速度が出力される。関節の駆動速度が限界駆動速度を超えている場合、駆動速度評価部35は、関節の駆動速度が限界駆動速度を超えていることを示す評価信号を手先速度修正部37に出力する。手先速度修正部37に評価信号が入力された場合、手先速度修正部37は手先速度を修正する。すなわち、駆動速度評価部35での評価結果に応じて、手先速度修正部37は、手先速度演算部33で演算された手先速度Vを修正する。ここで、修正された手先速度を修正速度Vmodとする。修正速度Vmodは、手先速度Vよりも低い値になっている。
When the joint drive speed does not exceed the limit drive speed, the drive
修正速度Vmodは加速度記憶部36に記憶されている加速度に基づいて求めることができる。例えば、加速度記憶部36に、加速度a=amax、0、−amaxの3つが記憶されているとする。最大加速度amaxで加速したときの手先速度Vに基づいて求められた駆動速度が、限界駆動速度を超えていたら、V0から加速度a=0で加速したときの手先速度を修正速度Vmodとする。すなわち、手先が等速で移動するので、Vmod=V0となる。そして、駆動速度算出部34は、修正速度Vmodに基づいて、各関節の駆動速度を算出する。ここでの駆動速度の算出は、上記と同様の処理であるため説明を省略する。
The correction speed Vmod can be obtained based on the acceleration stored in the
そして、駆動速度評価部35は、修正速度Vmodに基づいて算出された駆動速度v1、及びv2を評価する。すなわち、修正速度Vmodに基づいて算出された駆動速度が限界駆動速度を越えているか否かを判定する。そして、上記と同様に、修正速度Vmodに基づいて算出された駆動速度が限界駆動速度を越えている場合は、手先速度を修正する。ここでは、加速度a=−amaxとしたとき、すなわち最大加速度amaxで減速したときの速度が修正速度Vmodとなる。したがって、修正速度Vmod=V0−amaxtとなる。このように、加速度記憶部36に記憶されている加速度のうち、手先をより加速するものから順番に用いられていく。
Then, the drive
このように、修正速度Vmodに基づいて算出された駆動速度が限界駆動速度を越えていない場合は、この駆動速度を減速処理判定部38に出力する。従って、駆動速度評価部35は、限界駆動速度を越えていない駆動速度を減速処理判定部に出力する。すなわち、修正速度Vmodに基づいて算出された駆動速度が限界駆動速度を越えている場合、駆動速度が限界駆動速度が超えなくなるまで、駆動速度評価部35、手先速度修正部37、及び駆動速度算出部34での処理を繰り返し行う。
As described above, when the drive speed calculated based on the corrected speed Vmod does not exceed the limit drive speed, the drive speed is output to the deceleration
減速処理判定部38は、目標位置で手先を停止させるための減速処理が必要か否かを判定する。すなわち、減速処理判定部38は、手先の現在位置が目標位置に対して十分近くなっている場合、目標位置で停止させるための減速処理を行う。これにより、各関節の駆動速度が減速し始め、目標位置で手先が停止する。このように、現在位置から減速を開始することによって、目標位置で各関節の駆動速度を0にできる。具体的には、減速処理判定部38は、例えば、現在位置から目標位置までの間の距離を求める。そして、現在位置から最大加速度で減速を開始することによって、目標位置で手先速度が0になるかを判定する。目標位置が十分離れている場合、目標位置までの間に駆動速度を0にすることができる。従って、減速処理判定部38は、減速処理が不要であると判定し、駆動速度評価部35から入力された駆動速度v1、v2をそのまま関節駆動部39に出力する。関節駆動部39は、例えば、モータのアンプである。駆動速度に応じた駆動信号をモータであるアクチュエータ28に出力する。
The deceleration
目標位置に接近している場合、減速を開始しないと、目標位置までの間に駆動速度を0にすることができない。この場合、減速処理判定部38は、減速処理が必要であると判定する。これにより、各関節の駆動速度を最大加速度で減速した場合の駆動速度が関節駆動部39に出力される。そして、関節駆動部39は、減速処理したときの駆動速度に応じた駆動信号をアクチュエータ28に出力する。これにより、各関節が駆動している回転方向と反対方向に最大加速度で加速する。すなわち、駆動速度が最大加速度で減少し始め、目標位置での駆動速度を0にすることができる。
If the vehicle is approaching the target position, the driving speed cannot be reduced to zero until the target position is reached unless deceleration is started. In this case, the deceleration
このように、減速処理判定部38は、減速処理を開始しないと目標位置で手先が止まれないか否かを判定する。目標位置で手先が停止できなくなってしまう場合は、即座に減速処理を開始する。すなわち、目標位置で駆動速度を停止できない程度に、手先の現在位置が目標位置に対して十分近くなると、減速処理を開始する。そして、手先が目標位置に到達するまでの間、現在速度を最大加速度で減速した場合の駆動速度を出力する。よって、現在速度から最大加速度で減速していく。これにより、目標位置での駆動速度が0となり、手先を停止することができる。すなわち、減速を開始することによって、目標位置で手先の速度を0にできる。
In this way, the deceleration
関節駆動部39は、駆動速度に基づいた駆動信号を、アクチュエータ28に出力する。アクチュエータ28は、駆動信号に基づいて各関節を駆動する。これにより、各関節が制御部11で算出された駆動速度で駆動する。そして、制御部11は一定の制御周期で上記の処理を繰り返し実行して、駆動信号を出力する。例えば、手先軌道生成部32で生成された手先軌道上の次の軌道位置の座標が手先速度演算部33に入力される。そして、手先速度演算部33は、次の軌道位置に対しての手先速度を同様に演算する。そして、駆動速度算出部34、駆動速度評価部35、手先速度修正部37、減速処理判定部38での処理を同様に実行する。このようにして、次の軌道位置に対しての駆動速度を算出し、駆動速度に応じた駆動信号をアクチュエータ28に出力する。従って、駆動速度は、制御周期で更新されていく。このようにして、各関節の駆動速度が制御されている。
The
ここで、減速処理が必要ないと判定された場合、駆動速度評価部35からの駆動速度が関節駆動部39に出力されている。従って、各関節には、限界駆動速度を超えない駆動速度が入力される。これにより、アクチュエータ28は各関節を適切な駆動速度で駆動する。すなわち、さらに、限界駆動速度は、各関節に対して個別に設定することができるため、それぞれの関節に適切な限界駆動速度を設定することができる。よって、限界駆動速度を高くすることができる。各関節の駆動速度を高くすることができ、駆動時間を短縮することができる。
Here, when it is determined that the deceleration process is not necessary, the drive speed from the drive
次に、図4を用いて、図2に示す軌道に従って移動するとき手先速度、及び駆動速度について説明する。図4では、手先速度、及び駆動速度の制御パターンを示す図であり、上から順に手先速度V、第1関節21の駆動速度v1、第2関節23の駆動速度v2を示している。なお、図4において、横軸は時間、縦軸は手先速度、又は駆動速度を示している。駆動速度v1、及び駆動速度v2には、それぞれ限界駆動速度v1_limit、v2_limitが設定されている。t=0のとき、移動が開始され、t=t8のときに移動が停止するものとしてとして説明する。なお、図4(a)において点線で示した三角パターンは、目標位置まで最短時間で移動するときの制御パターンを示している。すなわち、最大加速度amaxで徐々に加速した後、最大加速度amaxで徐々に減速したときの制御パターンが示されている。 Next, the hand speed and the driving speed when moving according to the trajectory shown in FIG. 2 will be described with reference to FIG. FIG. 4 is a diagram showing a control pattern of the hand speed and the driving speed, and shows the hand speed V, the driving speed v1 of the first joint 21, and the driving speed v2 of the second joint 23 in order from the top. In FIG. 4, the horizontal axis represents time, and the vertical axis represents the hand speed or the driving speed. Limit drive speeds v1_limit and v2_limit are set for the drive speed v1 and the drive speed v2, respectively. In the following description, it is assumed that the movement starts when t = 0 and the movement stops when t = t8. In addition, the triangular pattern shown with the dotted line in Fig.4 (a) has shown the control pattern when moving to a target position in the shortest time. That is, after gradually accelerated at the maximum acceleration a max, control pattern is shown when gradually decelerated by the maximum acceleration a max.
t=0〜t1の区間では、手先速度が一定の傾きで増加している。すなわち、一定の加速度で手先が加速している。この区間では、駆動速度が限界駆動速度に比べて十分に小さい。よって、最大加速度amaxで加速したときの手先速度Vが限界速度を越えていないため、最大加速度amaxで加速されている。すなわち、手先速度V=Vo+amaxtとなる。さらに、この区間では、駆動速度v1、v2も一定の傾きで増加している。すなわち、各関節の駆動速度の値は徐々に大きくなっていく。 In the section from t = 0 to t1, the hand speed increases with a constant slope. That is, the hand is accelerating at a constant acceleration. In this section, the driving speed is sufficiently smaller than the limit driving speed. Therefore, since the hand speed V when accelerating at the maximum acceleration amax does not exceed the limit speed, the acceleration is performed at the maximum acceleration amax . That is, hand speed V = Vo + a max t. Further, in this section, the driving speeds v1 and v2 are also increased with a constant slope. That is, the value of the driving speed of each joint gradually increases.
次にt=t1〜t2の区間では、手先速度Vが等速になっている。すなわち、この区間では手先速度Vが変化していない。図4に示すように、t=t1となると、第1関節21の駆動速度v1が限界駆動速度に到達する。従って、t=t1での手先速度から加速して、駆動速度v1、v2を算出すると、v1が限界駆動速度v1_limitを越えてしまう。よって、加速度a=0として、手先速度を修正する。すなわち、加速度a=0としたときの手先速度が修正速度Vmodとなる。そして、修正速度Vmodに基づいて駆動速度v1、v2が算出される。この区間では、駆動速度v1が限界駆動速度v1_limitに近い。このため、手先速度Vを加速してしまうと、駆動速度v1が限界駆動速度v1_limitを超えてしまう。よって、t=t2になるまで、手先は等速で移動する。この区間では、駆動速度v2がv2_limitを越えないので、駆動速度v2は一定の傾きで増加する。すなわち、t=t0〜t2の区間において、駆動速度v2が一定の傾きで増加する。これに対して、駆動速度v1は、一定の傾きで減少している。すなわち、この区間で手先速度を加速すると、駆動速度v1が限界駆動速度を超えてしまう。このため、加速度a=0となっている。この区間では、駆動速度v2が増加し、駆動速度v1が減少することによって手先速度が一定となっている。このように、t=t1〜t2の区間では、手先速度を加速せずに、等速とする。そして、t=t2では、駆動速度v2が限界駆動速度v2_limitに到達する。 Next, in the section of t = t1 to t2, the hand speed V is constant. That is, the hand speed V does not change in this section. As shown in FIG. 4, when t = t1, the driving speed v1 of the first joint 21 reaches the limit driving speed. Therefore, if the driving speeds v1 and v2 are calculated by accelerating from the hand speed at t = t1, v1 exceeds the limit driving speed v1_limit. Therefore, the hand speed is corrected with the acceleration a = 0. That is, the hand speed when the acceleration a = 0 is the correction speed Vmod. Then, driving speeds v1 and v2 are calculated based on the correction speed Vmod. In this section, the drive speed v1 is close to the limit drive speed v1_limit. For this reason, if the hand speed V is accelerated, the drive speed v1 exceeds the limit drive speed v1_limit. Therefore, the hand moves at a constant speed until t = t2. In this section, since the driving speed v2 does not exceed v2_limit, the driving speed v2 increases with a constant slope. That is, the driving speed v2 increases with a constant slope in the interval t = t0 to t2. On the other hand, the driving speed v1 decreases with a constant inclination. That is, if the hand speed is accelerated in this section, the driving speed v1 exceeds the limit driving speed. For this reason, the acceleration a = 0. In this section, the hand speed is constant as the driving speed v2 increases and the driving speed v1 decreases. As described above, in the section of t = t1 to t2, the hand speed is not accelerated but is made constant. At t = t2, the driving speed v2 reaches the limit driving speed v2_limit.
t=t2〜t3の区間では手先速度Vが一定の傾きで減少している。すなわち、手先の加速度a=−amaxとなり、手先は最大加速度amaxで減速している。この区間では、加速度a=0として、手先速度を修正しても、駆動速度が限界駆動速度を超えてしまう。従って、加速度a=−amaxとしたときの手先速度が修正速度Vmodとなる。例えば、手先の加速度a=amaxでの手先速度では、駆動速度v1、v2ともに、限界駆動速度を超えてしまう。また、手先の加速度a=amaxでの手先速度では、駆動速度v1、v2の一方が、限界駆動速度を超えてしまう。よって、手先速度を減速する。この区間では、駆動速度v1が一定の傾きで減少し、駆動速度v2が限界駆動速度v2_limitで一定となっている。 In the interval from t = t2 to t3, the hand speed V decreases with a constant slope. That is, the hand acceleration a = −a max and the hand decelerates at the maximum acceleration a max . In this section, even if the acceleration a = 0 and the hand speed is corrected, the driving speed exceeds the limit driving speed. Therefore, the hand speed when the acceleration a = −a max is the correction speed Vmod. For example, at the hand speed at the hand acceleration a = a max , the drive speeds v1 and v2 both exceed the limit drive speed. In addition, at the hand speed at the hand acceleration a = a max , one of the drive speeds v1 and v2 exceeds the limit drive speed. Therefore, the hand speed is reduced. In this section, the drive speed v1 decreases with a constant slope, and the drive speed v2 is constant at the limit drive speed v2_limit.
t=t3〜t4の区間では、手先速度Vが一定となっている。この区間では、手先を最大加速度amaxで加速すると、駆動速度v2が限界駆動速度を越えてしまう。しかしながら、手先を等速で駆動すると、駆動速度v1、v2が限界駆動速度を越えない。従って、手先速度の修正を行い、加速度a=0のときの手先速度を修正速度Vmodとする。この区間では、駆動速度v1は一定となり、駆動速度v2が限界駆動速度v2_limitで一定となっている。 In the section from t = t3 to t4, the hand speed V is constant. In this section, if the hand is accelerated at the maximum acceleration a max , the driving speed v2 exceeds the limit driving speed. However, when the hand is driven at a constant speed, the drive speeds v1 and v2 do not exceed the limit drive speed. Therefore, the hand speed is corrected, and the hand speed when the acceleration a = 0 is set as the corrected speed Vmod. In this section, the drive speed v1 is constant, and the drive speed v2 is constant at the limit drive speed v2_limit.
t=t4〜t5の区間では、手先速度Vが一定となっている。この区間では、手先を最大加速度amaxで加速すると、駆動速度v2が限界駆動速度を越えてしまう。しかしながら、手先を等速で駆動すると、駆動速度v1、v2が限界駆動速度を越えない。従って、手先速度の修正を行い、加速度a=0のときの速度を修正速度Vmodとする。この区間では、駆動速度v1は一定の傾きで増加し、駆動速度v2が一定の傾きで減少している。すなわち、駆動速度v1と駆動速度v2の変化量が打ち消しあって、手先が等速移動している。このように、手先速度Vを一定とするよう、駆動速度v1の増加と駆動速度v2の減少が制御されている。この区間では、駆動速度v1が限界駆動速度よりも十分低くなっているため、駆動速度v1を加速することができる。 In the section from t = t4 to t5, the hand speed V is constant. In this section, if the hand is accelerated at the maximum acceleration a max , the driving speed v2 exceeds the limit driving speed. However, when the hand is driven at a constant speed, the drive speeds v1 and v2 do not exceed the limit drive speed. Therefore, the hand speed is corrected, and the speed when the acceleration a = 0 is set as the corrected speed Vmod. In this section, the driving speed v1 increases with a constant slope, and the driving speed v2 decreases with a constant slope. That is, the amount of change between the driving speed v1 and the driving speed v2 cancels out, and the hand moves at a constant speed. In this way, the increase in the drive speed v1 and the decrease in the drive speed v2 are controlled so that the hand speed V is constant. In this section, since the driving speed v1 is sufficiently lower than the limit driving speed, the driving speed v1 can be accelerated.
t=t5〜t6の区間では、手先速度Vが一定の傾きで増加している。すなわち、加速度a=amaxとして算出した駆動速度v1、v2が限界駆動速度を越えないため。手先速度を修正する必要がない。よって、最大加速度amaxで加速したときの手先速度に基づいて、駆動速度が決定される。この区間では、駆動速度v1は、一定の傾きで増加し、駆動速度v2は、一定の傾きで減少している。さらに、この区間の駆動速度v1の傾きは、t4〜t5での傾きよりも大きくなっている。また、この区間の駆動速度v2の傾きは、t4〜t5での傾きと同じである。このように、この区間では、駆動速度v1が増加し、駆動速度v2が減少することによって、手先が加速する。 In the interval from t = t5 to t6, the hand speed V increases with a constant slope. That is, since the acceleration a = drive speed calculated as a max v1, v2 does not exceed the limit driving speed. There is no need to correct the hand speed. Therefore, the drive speed is determined based on the hand speed when accelerating at the maximum acceleration a max . In this section, the driving speed v1 increases with a constant slope, and the driving speed v2 decreases with a constant slope. Further, the slope of the driving speed v1 in this section is larger than the slope at t4 to t5. In addition, the gradient of the driving speed v2 in this section is the same as the gradient at t4 to t5. Thus, in this section, the driving speed v1 increases and the driving speed v2 decreases, whereby the hand is accelerated.
t=t6〜t7の区間では、手先速度Vが一定となっている。この区間では、手先を最大加速度amaxで加速すると、駆動速度v1が限界駆動速度を越えてしまう。しかしながら、手先を等速で駆動すると、駆動速度v1、v2が限界駆動速度を越えない。従って、手先速度の修正を行い、加速度a=0のときの速度を修正速度Vmodとする。この区間では、駆動速度v1は一定の傾きで増加し、駆動速度v2が一定の傾きで減少している。この区間の駆動速度v1の傾きは、t5〜t6での傾きよりも小さくなっている。また、この区間の駆動速度v2の傾きは、t5〜t6での傾きと同じである。このように、手先速度Vを一定とするよう、駆動速度v1の増加と駆動速度v2の減少が制御されている。 In the section from t = t6 to t7, the hand speed V is constant. In this section, if the hand is accelerated at the maximum acceleration a max , the driving speed v1 exceeds the limit driving speed. However, when the hand is driven at a constant speed, the drive speeds v1 and v2 do not exceed the limit drive speed. Therefore, the hand speed is corrected, and the speed when the acceleration a = 0 is set as the corrected speed Vmod. In this section, the driving speed v1 increases with a constant slope, and the driving speed v2 decreases with a constant slope. The inclination of the driving speed v1 in this section is smaller than the inclination at t5 to t6. Further, the gradient of the driving speed v2 in this section is the same as the gradient at t5 to t6. In this way, the increase in the drive speed v1 and the decrease in the drive speed v2 are controlled so that the hand speed V is constant.
t=t7〜t8の区間では、手先速度Vが減少している。ここでは、目標位置に近づいたため、減速処理が実行されている。すなわち、t=t7の時点で減速を開始しないと、目標位置をオーバーしてしまう。このため、最大加速度amaxで減速を開始する。この区間では、限界駆動速度によらず、一定の加速度で減速する。そして、t=8となった時点で、手先速度V=0となり、移動が停止する。すなわち、駆動速度v1が0となり、駆動速度v2が0となる。 In the section from t = t7 to t8, the hand speed V decreases. Here, since the target position is approached, deceleration processing is executed. That is, if deceleration is not started at the time t = t7, the target position will be exceeded. For this reason, deceleration is started at the maximum acceleration a max . In this section, the vehicle decelerates at a constant acceleration regardless of the limit drive speed. When t = 8, the hand speed V = 0 and the movement stops. That is, the driving speed v1 is 0 and the driving speed v2 is 0.
このように、手先速度は、±amax、0の3段階であるが、それによって求められる駆動速度、及びその傾きは小刻みに変化する。すなわち、各関節の駆動速度を細かく制御することができるため、適切な駆動速度で制御を行うことができる。さらに、本実施の形態では、手先速度ではなく、各関節の駆動速度に対して限界値を設定している。このため、複雑な条件を考慮することなく、限界駆動速度を設定することができる。よって、限界駆動速度を大きくすることができ、速やかに関節を駆動することができる。これにより、手先速度に限界値を設定した場合と比べて、手先を速く移動させることができ、駆動時間を短縮することができる。すなわち、アーム部20の姿勢によっては、手先速度の限界値が変化することがある。この場合、手先軌道上には、手先速度を高くすることができる姿勢とできない姿勢とが、存在することになる。手先速度を高くすることができない姿勢を取る軌道上を移動する場合、手先速度の限界値を低く設定する必要がある。そして、手先速度に限界値を設ける場合、軌道上全体に対して低い限界値を設けなければならない。この場合、手先速度を大きくすることができないため、短時間で移動することができない。一方、本実施の形態では、各駆動速度に適切な限界駆動速度(限界値)を設定することができる。このため、手先を高速に移動させることができる。これにより、駆動時間を短縮することができる。
As described above, the hand speed is in three stages of ± a max and 0, but the driving speed and the inclination obtained thereby change in small increments. That is, since the driving speed of each joint can be finely controlled, the control can be performed at an appropriate driving speed. Furthermore, in the present embodiment, a limit value is set for the driving speed of each joint, not the hand speed. For this reason, it is possible to set the limit driving speed without considering complicated conditions. Therefore, the limit drive speed can be increased and the joint can be driven quickly. Thereby, compared with the case where a limit value is set for the hand speed, the hand can be moved faster and the driving time can be shortened. That is, the limit value of the hand speed may change depending on the posture of the
次に、本実施の形態にかかる制御方法について、図5を用いて説明する。図5は、本実施の形態にかかるロボットアームの制御方法を示すフローチャートである。図5では、手先速度演算部33での処理から示されている。まず、手先速度を演算するため、現在速度、軌道位置、及び加速度を得る(ステップS101)。手先の現在速度は、例えば、エンコーダ27の検出信号から求めることができる。軌道位置は、手先軌道生成部32によって生成された軌道上の点の座標に対応している。そして、手先軌道上の軌道位置は、手先軌道生成部32から順番に出力される。すなわち、移動開始位置から目標位置までの軌道位置を移動開始位置側から目標位置側に向かって順番に出力している。加速度として、最大加速度amaxを用いる。すなわち、手先速度が最も速くなるように、加速度記憶部36に記憶されている加速度の中で最大の加速度を出力する。なお、最大加速度の加速方向は、現在速度の方向と同一方向である。
Next, a control method according to the present embodiment will be described with reference to FIG. FIG. 5 is a flowchart showing a method for controlling the robot arm according to the present embodiment. FIG. 5 shows processing from the
次に、手先速度を演算する(ステップS102)。すなわち、手先速度演算部33が、現在速度、軌道位置、及び加速度に基づいて手先速度Vを演算する。具体的には、現在速度から軌道位置に向かって、最大加速度amaxで加速したときの手先速度Vを演算する。そして、各関節の駆動速度を算出する(ステップS103)。すなわち、駆動速度算出部34が駆動速度を関節毎に算出する。ここでは、上記のように、逆ヤコビアンを用いて、各関節の駆動速度を求めることができる。
Next, the hand speed is calculated (step S102). That is, the
そして、各関節の駆動速度がリミットをオーバーしているか否かを判定する(ステップS104)。すなわち、駆動速度評価部35が駆動速度と限界駆動速度とを比較して、駆動速度が限界駆動速度を越えていないか評価する。限界駆動速度を越えている場合、手先速度を修正する(ステップS105)。すなわち、手先速度修正部37が、加速度を変化させて、修正速度Vmodを求める。ここでは、加速度記憶部36に記憶されている加速度のうち、最大加速度の次の加速度が用いられる。従って、加速度a=0とした時の手先速度を修正速度Vmodとする。そして、修正速度Vmodに基づいて、各関節の駆動速度を算出する(S104)。そして、駆動速度がリミットをオーバーしなくなるまで、手先速度を修正する(ステップS104、及びS105)。
Then, it is determined whether or not the driving speed of each joint exceeds the limit (step S104). That is, the drive
限界駆動速度を越えない駆動速度が得られたら、減速処理を開始するか否かを判定する(ステップS106)。すなわち、ステップS102での手先速度に基づいて算出された駆動速度が限界駆動速度を越えていない場合、あるいは、ステップS105での修正速度に基づいて算出された駆動速度が限界駆動速度を越えていない場合、減速処理判定を行なう。
減速処理が不要であると判定されたら、そのまま関節駆動速度を決定する(ステップS108)。一方、減速処理が必要と判定されたら、減速処理を行う(ステップS107)。すなわち、目標位置に接近して、減速を開始しないと目標位置で停止できない場合は、即座に最大加速度で減速する。そして、減速処理を実行して駆動速度を決定する(ステップS108)。すなわち、最大加速度で減速した手先速度から得られた駆動速度を用いる。この駆動速度をアンプによって増幅して、駆動信号を出力する(ステップS109)。これにより、1制御周期における処理が完了する。そして、ステップS101に戻り、現在速度、軌道位置を更新して、再度同じ処理を行う。このようにして、関節を駆動することができる。このような制御方法によって、各関節の駆動速度を適切に設定することができるため、駆動時間を短縮することができる。
If a drive speed that does not exceed the limit drive speed is obtained, it is determined whether or not to start deceleration processing (step S106). That is, when the drive speed calculated based on the hand speed in step S102 does not exceed the limit drive speed, or the drive speed calculated based on the correction speed in step S105 does not exceed the limit drive speed. In this case, a deceleration process determination is performed.
If it is determined that the deceleration process is unnecessary, the joint drive speed is determined as it is (step S108). On the other hand, if it is determined that deceleration processing is necessary, deceleration processing is performed (step S107). That is, if the vehicle cannot stop at the target position unless it approaches the target position and starts deceleration, the vehicle immediately decelerates at the maximum acceleration. Then, deceleration processing is executed to determine the drive speed (step S108). That is, the driving speed obtained from the hand speed decelerated at the maximum acceleration is used. This drive speed is amplified by an amplifier and a drive signal is output (step S109). Thereby, the process in one control cycle is completed. Then, the process returns to step S101, the current speed and the trajectory position are updated, and the same process is performed again. In this way, the joint can be driven. By such a control method, the driving speed of each joint can be set appropriately, so that the driving time can be shortened.
このように、制御周期毎に、現在のアームの状態(現在速度、手先の現在位置、及び目標位置までの距離等)を考慮して制御を行うため、目標位置が変化した場合でも、適切に制御することができる。これにより、目標位置が移動する場合でも、リアルタイムに対応することが可能となる。この場合、例えば、移動した目標位置に対して現在位置からの目標軌道を生成して、同様の処理を行う。よって、リアルタイムに対応することが可能となる。なお、上記の説明では、全関節が回転関節であるとして説明したが、一部の関節が、直動関節であってもよい。 As described above, control is performed in consideration of the current arm state (current speed, current position of the hand, distance to the target position, etc.) for each control cycle. Can be controlled. As a result, even when the target position moves, it is possible to respond in real time. In this case, for example, a target trajectory from the current position is generated for the moved target position, and the same processing is performed. Therefore, it is possible to cope with real time. In the above description, it is assumed that all the joints are rotary joints, but some of the joints may be linear motion joints.
なお、上記の説明では、加速度aを3段階に設定したが、2段階に設定してもよく、あるいは4段階以上に設定してもよい。加速度記憶部36に記憶されている加速度aの数を増やすことにより、より細かな制御を行うことができる。すなわち、加速度記憶部36に記憶されている複数の加速度の中から、適切な加速度を選択することができる。この場合、最大加速度amaxで駆動速度が限界駆動速度を越えたら、最大加速度amaxよりも低い加速度a1で加速する。このようにすることによって、手先速度をより細かく設定することが可能になる。よって、移動時間をより短縮することができる。なお、設定する加速度の数を増やすことにより計算時間が増加する。すなわち、ステップS104、ステップS105、及びステップS103の実行回数が増加するおそれがある。このため、設定する加速度の数は、想定する制御周期内で処理が完了できる程度に増加させることが好ましい。
In the above description, the acceleration a is set at three levels, but may be set at two levels, or may be set at four or more levels. By increasing the number of accelerations a stored in the
発明の実施の形態2.
本実施の形態では、上記の制御を、多自由度のマニピュレータにおける手先の姿勢の制御に対して適用している。例えば、図1で示したロボット1において、手首関節などの手先の姿勢を変化させる関節を追加する。例えば、第2リンク24とハンド26との間に、ハンド26を駆動する手首関節を設ける。これにより、ハンド26の軸周りの姿勢(ローリング、ピッチング、ヨーイング)を変化させることができる。すなわち、ハンド26は軸周りの姿勢が回転する。例えば、ハンド26は、第2リンク24が設けられている方向を回転軸として、回転する。これにより、ハンド26の軸周りが駆動方向となって、手先姿勢が変化する。なお、本実施の形態にかかる制御は、6自由度や7自由度のマニピュレータに対しても適用することができる。このようなマニピュレータでは、複数の関節によって、手先の位置、及び手先の姿勢が変化する。また、1つの関節によって、手先の位置、及び姿勢が変化する。
Embodiment 2 of the Invention
In the present embodiment, the above control is applied to the control of the hand posture in the multi-degree-of-freedom manipulator. For example, in the
図6を用いて、本実施の形態にかかるロボットについて説明する。図6は、本実施の形態にかかるロボット1の制御部11の構成を模式的に示すブロック図である。なお、ロボット1の基本的構成は、実施の形態1と同様であるため、説明を省略する。また、制御部11の基本的な構成も実施の形態1と同様であるため、以下の説明では、主に、実施の形態1との相違点を説明する。すなわち、手先の位置の制御については、実施の形態1と同様であるため説明を省略する。本実施の形態では、例えば、手先姿勢を変化させるための手首関節が設けられている。手首関節が回転駆動することによって、手先の姿勢が変化する。すなわち、手先が軸周りに回転して、手先姿勢が変化する。なお、手首関節以外の関節によって、手先姿勢を変化させてもよく、2以上の関節によって手先姿勢を変化させてもよい。本実施の形態では、手先姿勢を制御するため、図3で示した制御部11の構成に加えて、姿勢角速度演算部40が設けられている。さらに、手先速度修正部37に変えて、修正部41が設けられている。
The robot according to this embodiment will be described with reference to FIG. FIG. 6 is a block diagram schematically showing the configuration of the
本実施の形態では、手先軌道生成部32は手先の軌道位置だけでなく、手先軌道上での手先の姿勢を算出する。すなわち、軌道位置の座標に手先の姿勢角(手先の軸周りの回転角)を対応付けて、手先軌道を生成する。手先軌道生成部32の手先の位置の軌道は、実施の形態1と同様に、手先速度演算部33に出力される。そして、手先速度演算部33は、実施の形態1と同様に手先速度を演算する。一方、手先の姿勢の軌道は、姿勢角として姿勢角速度演算部40に出力される。従って、姿勢角速度演算部40には、停止位置での目標姿勢となる姿勢までの姿勢角が順次出力される。姿勢角速度演算部40は、現在の姿勢の角速度から、姿勢角に向けて、予め設定されている変化量だけ角速度を増加させる。これにより、手先の姿勢角速度ωを演算することができる。従って、手先軌道生成部32で生成された軌道上での手先の姿勢角に追従するように制御される。手先の現在姿勢角はエンコーダ27によって求めることができる。
In the present embodiment, the hand
そして、駆動速度算出部34は、手先速度と姿勢角速度を満たす駆動速度を算出する。ここでは、実施の形態1と同様に、逆ヤコビアンなどの変換行列によって、各関節の駆動速度を算出する。もちろん、手先の姿勢角を変えるための関節の駆動速度も算出される。そして、駆動速度評価部35は、各関節の駆動速度を評価する。すなわち、姿勢角を変化させる関節の駆動速度が限界駆動速度を越えていないか判定する。もちろん、手先の位置を変化させる関節の駆動速度についても評価を行なう。1つ以上の関節の駆動速度が限界駆動速度を越えている場合、限界駆動速度を超えていることを示す評価信号を出力する。
Then, the drive
本実施の形態では、実施の形態1で示した手先速度修正部37の代わりに、修正部41が設けられている。修正部41は、1つ以上の関節の駆動速度が限界駆動速度を越えている場合、手先の速度、及び姿勢角速度ωを修正する。手先の姿勢角速度ωは、手先速度と同様に修正することができる。例えば、姿勢角速度ωを増加させると、駆動速度が限界駆動速度を越える場合、姿勢角速度ωを一定にする。また、姿勢角速度ωが一定としても、駆動速度が限界駆動速度を越える場合、姿勢角速度ωを減少させる。このようにして、修正角速度ωmodを求めることができる。従って、いずれか1つの駆動速度が限界駆動速度を越える場合、手先速度、及び姿勢角速度を修正する。そして、修正した手先速度、及び姿勢角速度に基づいて、各関節の駆動速度を求める。駆動速度が限界駆動速度を越えなくなるまで、この処理を行う。そして、実施の形態1と同様に、駆動速度に基づく駆動信号を出力する。上記の処理を繰り返すことにより、各関節を適切な駆動速度で駆動することができる。従って、駆動時間を短縮することができる。このように、手先位置、及び姿勢が同じ関節の駆動によって変化するマニピュレータに上記の制御を行うことにより、簡便に駆動時間を短縮することができる。
In the present embodiment, a
1 ロボット、10 本体部、11 制御部、20 アーム部、
21 第1関節、22 第1リンク、23 第2関節、24 第2リンク、26 ハンド、
27 エンコーダ、28 アクチュエータ、
31 目標位置記憶部、32 手先軌道生成部、33 手先速度演算部、
34 駆動速度算出部、35 駆動速度評価部、36 加速度記憶部、
37 手先速度評価部、38 減速処理判定部、39 関節駆動部、
40 姿勢角速度演算部、41 修正部
1 robot, 10 main unit, 11 control unit, 20 arm unit,
21 1st joint, 22 1st link, 23 2nd joint, 24 2nd link, 26 hands,
27 Encoder, 28 Actuator,
31 target position storage unit, 32 hand trajectory generation unit, 33 hand speed calculation unit,
34 driving speed calculation unit, 35 driving speed evaluation unit, 36 acceleration storage unit,
37 Hand speed evaluation unit, 38 Deceleration process determination unit, 39 Joint drive unit,
40 posture angular velocity calculation unit, 41 correction unit
Claims (6)
前記目標位置までの手先の軌道を生成する手先軌道生成部と、
前記手先軌道生成部によって生成された手先軌道にしたがって移動するときの手先の速度を演算する手先速度演算部と、
前記手先速度演算部によって演算された手先速度に基づいて、前記関節の駆動速度を算出する駆動速度算出部と、
前記関節の駆動速度が駆動速度の限界値を越えているか否かを評価する駆動速度評価部と、
前記駆動速度が限界値を越えている場合に、前記手先速度演算部で演算された手先速度を修正して前記駆動速度算出部に出力する修正部と、
前記修正部で修正された手先速度に基づいて前記駆動速度算出部が算出した駆動速度に応じて、前記関節を駆動するアクチュエータと、を備えるロボットアーム。 A robot arm that drives a plurality of joints to move the hand to a target position,
A hand trajectory generator for generating a hand trajectory up to the target position;
A hand speed calculator that calculates the speed of the hand when moving according to the hand trajectory generated by the hand trajectory generator;
A driving speed calculation unit that calculates the driving speed of the joint based on the hand speed calculated by the hand speed calculation unit;
A driving speed evaluation unit for evaluating whether the driving speed of the joint exceeds a limit value of the driving speed;
When the driving speed exceeds a limit value, a correction unit that corrects the hand speed calculated by the hand speed calculation unit and outputs the correction to the driving speed calculation unit;
A robot arm comprising: an actuator that drives the joint according to the drive speed calculated by the drive speed calculation unit based on the hand speed corrected by the correction unit.
前前記手先軌道生成部によって生成された手先軌道にしたがって移動するときの前記手先姿勢の角速度を演算する姿勢角速度演算部がさらに設けられ、
前記駆動速度算出部が、前記手先速度、及び前記角速度に基づいて、前記関節の駆動速度を算出し、
前記修正部が、前記駆動速度評価部での評価結果に応じて、前記手先速度、及び角速度を修正し、
前記アクチュエータが、前記修正された手先速度、及び前記修正された角速度に基づいて前記関節駆動部が算出した駆動速度に応じて、前記関節を駆動する請求項1に記載のロボットアーム。 The plurality of joints include joints for changing the posture of the hand,
A posture angular velocity calculating unit that calculates an angular velocity of the hand posture when moving according to the hand trajectory generated by the previous hand trajectory generating unit;
The drive speed calculation unit calculates the drive speed of the joint based on the hand speed and the angular speed,
The correction unit corrects the hand speed and the angular velocity according to the evaluation result in the drive speed evaluation unit,
The robot arm according to claim 1, wherein the actuator drives the joint according to a driving speed calculated by the joint driving unit based on the corrected hand speed and the corrected angular velocity.
前記目標位置までの手先の軌道を生成するステップと、
前記手先軌道にしたがって移動するときの手先の速度を演算するステップと、
前記手先速度に基づいて、前記関節の駆動速度を算出するステップと、
前記関節の駆動速度が駆動速度の限界値を越えているか否かを評価するステップと、
前記駆動速度が限界値を越えている場合に、前記手先速度を修正するステップと、
前記修正された手先速度に基づいて算出された駆動速度に応じて、前記関節を駆動するステップと、を備えるロボットアームの制御方法。 A control method of a robot arm that drives a plurality of joints and moves a hand to a target position,
Generating a trajectory of the hand to the target position;
Calculating the speed of the hand when moving according to the hand trajectory;
Calculating a driving speed of the joint based on the hand speed;
Evaluating whether the drive speed of the joint exceeds a limit value of the drive speed;
Correcting the hand speed when the driving speed exceeds a limit value; and
And a step of driving the joint according to a driving speed calculated based on the corrected hand speed.
前記手先軌道にしたがって移動するときの前記手先姿勢の角速度を演算するステップがさらに設けられ、
前前駆動速度を算出するステップでは、前記関節の駆動速度が、前記手先速度、及び前記角速度に基づいて算出され、
前記手先速度を修正するステップでは、前記駆動速度が限界値を越えている場合に、前記手先速度、及び前記角速度が修正され、
前記関節を駆動するステップでは、前記修正された前記手先速度、及び前記修正された角速度に基づいて算出された駆動速度に応じて、前記関節が駆動される請求項4に記載のロボットアームの制御方法。 The plurality of joints include joints for changing the posture of the hand,
A step of calculating an angular velocity of the hand posture when moving according to the hand trajectory;
In the step of calculating the pre-front drive speed, the joint drive speed is calculated based on the hand speed and the angular speed,
In the step of correcting the hand speed, when the driving speed exceeds a limit value, the hand speed and the angular speed are corrected,
5. The robot arm control according to claim 4, wherein in the step of driving the joint, the joint is driven according to the corrected hand speed and the driving speed calculated based on the corrected angular velocity. 6. Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007029135A JP2008194760A (en) | 2007-02-08 | 2007-02-08 | Robot arm and control method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007029135A JP2008194760A (en) | 2007-02-08 | 2007-02-08 | Robot arm and control method therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008194760A true JP2008194760A (en) | 2008-08-28 |
Family
ID=39754184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007029135A Pending JP2008194760A (en) | 2007-02-08 | 2007-02-08 | Robot arm and control method therefor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008194760A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012050578A (en) * | 2010-08-31 | 2012-03-15 | Canon Inc | Ophthalmologic apparatus |
JP2014144491A (en) * | 2013-01-28 | 2014-08-14 | Seiko Epson Corp | Robot and robot control device |
CN104889986A (en) * | 2014-03-04 | 2015-09-09 | 发那科株式会社 | Robot controller |
JP2016043439A (en) * | 2014-08-21 | 2016-04-04 | 株式会社デンソーウェーブ | Control apparatus and control method for robot |
CN106003004A (en) * | 2016-07-26 | 2016-10-12 | 云南科威液态金属谷研发有限公司 | Bio-robot based on tissue engineering of liquid metal and preparing method thereof |
CN112703090A (en) * | 2019-01-15 | 2021-04-23 | 欧姆龙株式会社 | Robot control device, robot control method, and robot control program |
-
2007
- 2007-02-08 JP JP2007029135A patent/JP2008194760A/en active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012050578A (en) * | 2010-08-31 | 2012-03-15 | Canon Inc | Ophthalmologic apparatus |
JP2014144491A (en) * | 2013-01-28 | 2014-08-14 | Seiko Epson Corp | Robot and robot control device |
US9785138B2 (en) | 2013-01-28 | 2017-10-10 | Seiko Epson Corporation | Robot and robot controller |
CN104889986A (en) * | 2014-03-04 | 2015-09-09 | 发那科株式会社 | Robot controller |
JP2015168053A (en) * | 2014-03-04 | 2015-09-28 | ファナック株式会社 | Robot controller having function to simplify teaching operation and improve motion performance of robot |
CN104889986B (en) * | 2014-03-04 | 2017-07-11 | 发那科株式会社 | Robot controller |
DE102015002348B4 (en) * | 2014-03-04 | 2018-02-01 | Fanuc Corporation | Robot controller with the function to simplify the teaching process and to improve the mobility of the robot |
JP2016043439A (en) * | 2014-08-21 | 2016-04-04 | 株式会社デンソーウェーブ | Control apparatus and control method for robot |
CN106003004A (en) * | 2016-07-26 | 2016-10-12 | 云南科威液态金属谷研发有限公司 | Bio-robot based on tissue engineering of liquid metal and preparing method thereof |
CN112703090A (en) * | 2019-01-15 | 2021-04-23 | 欧姆龙株式会社 | Robot control device, robot control method, and robot control program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6128767B2 (en) | Robot control apparatus and robot control method | |
JP6268819B2 (en) | Trajectory generation method for multi-axis robot | |
JP4896276B2 (en) | ROBOT, ROBOT CONTROL DEVICE, CONTROL METHOD, AND CONTROL PROGRAM | |
US9002519B2 (en) | Robot control method, robot control device, and robot control system | |
US9764462B2 (en) | Robot apparatus and robot controlling method | |
JP2018149606A (en) | Robot for executing learning control taking application in production line into consideration and method for control thereof | |
JP2008194760A (en) | Robot arm and control method therefor | |
JP2017209762A (en) | Robot device, robot control method, program, recording medium and production method of article | |
JP2009018380A (en) | Robot, control method of the robot, and control system of the robot | |
US20150051735A1 (en) | Control apparatus of robot, robot, and program thereof | |
JP2020093364A (en) | Trajectory generation device | |
JP6021478B2 (en) | Robot control apparatus and robot control method | |
JP2010076058A (en) | Control device of multiple point manipulator and method for generating operation track of hand for multiple point manipulator | |
JP4498061B2 (en) | Welding robot controller | |
JP6057284B2 (en) | Articulated robot and semiconductor wafer transfer device | |
JP2016062441A (en) | Omnidirectional transfer vehicle | |
JP6088601B2 (en) | Robot controller that suppresses tool tip deflection in robot with traveling axis | |
Katzschmann et al. | Towards online trajectory generation considering robot dynamics and torque limits | |
JP2013223895A (en) | Robot control method and robot control device | |
JP2015054360A (en) | Speed control method for two-axis robot | |
US20220297293A1 (en) | Dynamic torque saturation limits for robot actuator(s) | |
JP5633268B2 (en) | Robot control device | |
Li et al. | Kinodynamics-based pose optimization for humanoid loco-manipulation | |
CN112703090A (en) | Robot control device, robot control method, and robot control program | |
Xu et al. | Passive bilateral teleoperation of a car-like mobile robot |