JP2008194760A - Robot arm and control method therefor - Google Patents

Robot arm and control method therefor Download PDF

Info

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
Application number
JP2007029135A
Other languages
Japanese (ja)
Inventor
Yuichiro Nakajima
裕一朗 中島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2007029135A priority Critical patent/JP2008194760A/en
Publication of JP2008194760A publication Critical patent/JP2008194760A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a robot arm and a control method therefore capable of shortening a driving time to a target position. <P>SOLUTION: The robot arm drives a plurality of joints to move a robot hand to the target position. The arm includes: a hand track generating unit which generates a hand track; a hand speed computing unit 33 which computes hand speed when a hand moves on the hand track; a driving speed calculating unit 34 which calculates the driving speed of the joints based on the hand speed; a driving speed estimating unit 35 which estimates whether the driving speed of the joints exceeds a limit value of the driving speed or not; a hand speed correcting unit which corrects the hand speed when the driving speed exceeds the limit value; and an actuator 28 which drives the joints corresponding to the driving speed calculated based on the modified hand speed. <P>COPYRIGHT: (C)2008,JPO&INPIT

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)。この制御方法では、ロボットアームを駆動する場合、移動する経路内での移動速度を最大にする関節軸を選択している。そして、その関節軸の出し得る最大速度を目標速度に設定した後、他の関節速度を修正している。このようにして、ロボットアームの移動速度を決定している。
特開平11−198072号公報
A control method for shortening the driving time of the robot arm is disclosed (Patent Document 1). In this control method, when driving the robot arm, the joint axis that maximizes the moving speed in the moving path is selected. Then, after setting the maximum speed that can be generated by the joint axis as the target speed, other joint speeds are corrected. In this way, the moving speed of the robot arm is determined.
JP-A-11-198072

しかしながら、特許文献1に記載されている制御方法では、以下に示す問題点があった。この制御方法では、次の目標地点までにどれだけ加速できるかを考慮せずに、最大速度を設定している。そのため、十分な加速時間が得られない場合は、設定した最大速度に達しなくなってしまう。また、(手先から各関節までの距離)×(関節最大速度−関節現在速度)が最大になる関節軸を最大速度とすべき関節軸として選択している。したがって、最大速度を最大にする関節軸が最適であるかどうか分らないという問題点がある。さらに、目標軌道の情報(位置、姿勢)を元に計算しているため、刻々と動的に目標位置が変化するような場合、リアルタイムに適応することができない。このように、従来の制御方法では、駆動時間を短縮することができないという問題点がある。   However, the control method described in Patent Document 1 has the following problems. In this control method, the maximum speed is set without considering how much the vehicle can be accelerated to the next target point. Therefore, if sufficient acceleration time cannot be obtained, the set maximum speed will not be reached. Further, the joint axis that maximizes (distance from the hand to each joint) × (maximum joint speed−current joint speed) is selected as the joint axis that should be the maximum speed. Therefore, there is a problem that it is not known whether the joint axis that maximizes the maximum speed is optimal. Furthermore, since the calculation is based on the information (position, posture) of the target trajectory, it cannot be applied in real time when the target position changes dynamically every moment. Thus, the conventional control method has a problem that the drive time cannot be shortened.

本発明は、このような問題を解決するためになされたものであり、目標位置までの駆動時間を短縮することができるロボットアーム、及びその制御方法を提供することを目的とする。   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関節のマニピュレータであるとして説明する。
Embodiment 1 of the Invention
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 robot 1 is a two-joint manipulator.

図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 robot 1. The robot 1 has a link mechanism provided with a link and a joint (joint) for connecting the link. Specifically, the robot 1 includes a first joint 21, a first link 22, a second joint 23, a second link 24, and a hand 26. The arm portion 20 is configured by the first joint 21, the first link 22, the second joint 23, and the second link 24. The first link 22 and the second link 24 are members formed of rigid bodies. A hand 26 is provided at the tip of the arm unit 20. That is, a hand 26 that performs a predetermined operation is attached to the tip of the second link 24. The hand 26 performs operations such as gripping, painting, and welding of an object, for example. That is, when the hand 26 moves to the target position, a predetermined operation is performed. As described above, the two-joint manipulator includes the arm unit 20 and the hand 26. The arm unit 20 is connected to the main body unit 10. The main body unit 10 houses a control unit 11 that controls the arm unit 20.

第1関節21、及び第2関節23には、モータ等のアクチュエータ、及びエンコーダ等のセンサが設けられている。例えば、各関節には、動力を発生するサーボモータと、サーボモータの動力を伝達するギヤと、サーボモータの回転変位を計測するロータリーエンコーダとが設けられている。第1関節21は、本体部10と第1リンク22を連結している。第2関節23は、第1リンク22と第2リンク24とを連結している。すなわち、第1関節21は、第1リンク22を回動自在に支持し、第2関節23は第2リンク24を回動自在に支持している。   The first joint 21 and the second joint 23 are provided with actuators such as motors and sensors such as encoders. For example, each joint is provided with a servo motor that generates power, a gear that transmits the power of the servo motor, and a rotary encoder that measures the rotational displacement of the servo motor. The first joint 21 connects the main body 10 and the first link 22. The second joint 23 connects the first link 22 and the second link 24. That is, the first joint 21 supports the first link 22 so as to be rotatable, and the second joint 23 supports the second link 24 so as to be rotatable.

アーム部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 arm unit 20 is attached to the main body unit 10. Specifically, the first joint 21 is fixed to the main body 10. The main body 10 is provided with a control unit 11 for driving the first joint 21 and the second joint 23. The control unit 11 is a computer having a storage area such as a CPU and a memory. The control unit 11 is a computer having an arithmetic processing unit such as a so-called CPU, and controls the operation of the manipulator according to a predetermined program. For example, the control unit 11 includes a CPU (Central Processing Unit) that is an arithmetic processing unit, a ROM (Read Only Memory) and RAM (Random Access Memory) that are storage areas, a communication interface, and the like. Control the behavior. For example, the ROM stores a control program for control, various setting data, and the like. Then, the CPU reads the control program stored in the ROM and develops it in the RAM. Then, the program is executed in accordance with the setting data and the output from the sensor or the like.

アーム部20は、制御部11によって駆動速度や関節角度などが制御されることで、自律的に動作する。制御部11からの駆動信号によって、第1関節21、及び第2関節23が所定の駆動速度で駆動する。そして、アーム部20の先端に設けられたハンド26が目標位置まで移動すると、各関節の駆動が停止する。第1関節21、及び第2関節23は1自由度の回転関節である。図1では、第1関節21と第2関節23の回転軸が平行であるとして示しているが、これに限られるものではない。制御部11は、一定の制御周期で、各関節の駆動速度を求めている。そして、制御部11は、各関節の駆動速度に対応する駆動信号をモータ等に出力している。これにより、ハンド26を目標位置まで速やかに移動させることができる。   The arm unit 20 operates autonomously when the control unit 11 controls the driving speed, the joint angle, and the like. The first joint 21 and the second joint 23 are driven at a predetermined driving speed by a driving signal from the control unit 11. Then, when the hand 26 provided at the tip of the arm unit 20 moves to the target position, the driving of each joint is stopped. The first joint 21 and the second joint 23 are rotary joints with one degree of freedom. Although FIG. 1 shows that the rotation axes of the first joint 21 and the second joint 23 are parallel, the present invention is not limited to this. The control unit 11 obtains the driving speed of each joint at a constant control cycle. And the control part 11 is outputting the drive signal corresponding to the drive speed of each joint to a motor etc. Thereby, the hand 26 can be quickly moved to the target position.

例えば、図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 first link 22 rotates with respect to the main body 10. Furthermore, when the second joint 23 is driven, the second link 24 rotates with respect to the first link. Thereby, the hand 26 can be moved to a predetermined position. That is, the position of the hand 26 is determined by the joint angles of the first joint 21 and the second joint 23. When the first joint 21 and the second joint 23 are driven, the hand 26 moves to the target position. The hand 26 performs a predetermined operation at the target position. For example, the hand 26 performs an object gripping operation or the like at the target position. Thereby, a desired operation can be performed.

ここで、アーム部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 arm unit 20 will be described with reference to FIG. Here, as shown in FIG. 2, the movement start position is point A and the target position is point B. That is, a case where the hand 26 stopped at the point A moves to the point B and stops at the point B will be described. Note that the position of the hand 26 provided at the tip of the arm unit 20 is a hand position. Further, the speed of the hand 26 is a hand speed V. For example, the position of the center of gravity of the hand 26 is defined as the hand position, and the speed of the center of gravity is defined as the hand speed. Further, the driving speed of the first joint 21 is v1, and the driving speed of the second joint 23 is v2. Note that the joint drive speed is a value corresponding to the angular speed of the rotating joint in the case of a rotating joint. Accordingly, the driving speed is a value based on the angular speed of the motor that drives the joint and the gear ratio. Then, the link 22 rotates at the driving speed v1, and the link 24 rotates at the driving speed v2.

図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 first link 22a, the second joint 23a, the second link 24a, and the hand 26a, and the manipulator at the point B is indicated by the first joint 21, the first link 22b, and the first link. Two joints 23b, a second link 24b, and a hand 26b are shown. Here, the hand trajectory from the point A to the point B is a straight trajectory. Therefore, the description will be made on the assumption that the hand moves according to a straight path. That is, the hand moves from point A to point B with the shortest distance.

次に、アーム部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 control unit 11 that performs control for moving the arm unit 20 from the point A to the point B will be described with reference to FIG. FIG. 3 is a block diagram schematically showing the configuration of the control unit 11. The control unit 11 includes a target position storage unit 31, a hand trajectory generation unit 32, a hand speed calculation unit 33, a drive speed calculation unit 34, a drive speed evaluation unit 35, an acceleration storage unit 36, a hand speed correction unit 37, and a deceleration process determination unit. 38 and a joint drive unit 39. For example, the control unit 11 calculates a driving speed for driving the joint at a constant control cycle, and outputs a driving signal corresponding to the driving speed to the actuator 28. Here, the processing in the deceleration processing determination unit 38 in the hand speed calculation unit 33, the driving speed calculation unit 34, the driving speed evaluation unit 35, and the hand speed correction unit 37 is repeatedly executed for each control cycle. Thereby, the driving speed of the joint can be obtained. The joint drive unit 39 is, for example, a motor amplifier, and outputs a drive signal corresponding to the drive speed to the actuator 28. The actuator 28 is driven based on the drive signal. As a result, each joint is driven at a driving speed. And the joint drive part 39 outputs a drive signal for every control period. As a result, each joint rotates at an appropriate driving speed.

図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 encoder 27 is input to the control unit 11. For example, the encoder 27 detects the rotation angles of the motors provided at the first joint 21 and the second joint 23. Then, the encoder 27 outputs the rotation angle of the motor as a detection signal. The current position of the hand can be obtained by the encoder 27 provided at each joint. For example, the control unit 11 obtains the current position of the hand as an xyz coordinate value. Further, the control unit 11 obtains the current speed of the hand based on the detection signal from the encoder 27. For example, the control unit 11 calculates the angular velocity of each joint from the change amount of the encoder 27 to obtain the current velocity of the hand.

目標位置記憶部31には、例えば、ユーザーによって入力された目標位置が記憶されている。この目標位置は、手先の位置をxyz座標値として記憶されている。手先軌道生成部32は、現在位置から目標位置までの手先軌道を生成する。手先軌道は、例えば、3次元の軌道データ行列として算出される。制御部11は、手先の現在位置、及び目標位置に基づいて、手先軌道を決定する。この手先軌道が手先の移動経路となる。ここで、手先軌道を複数の点(座標)の集合として求めることができる。よって、複数の座標の集合が、手先軌道を示す軌道データ行列となる。図2に示されているA点からB点までの直線軌道上の複数の点の座標が軌道データ行列として計算される。例えば、軌道データ行列には、直線軌道上に一定の間隔で配置された多数の点の座標が、順番に配列される。そして、この軌道データ行列上に含まれる点上を手先が順番に移動していく。ここで、軌道データ行列に含まれる手先軌道上の点の位置を軌道位置とする。軌道位置は、xyz座標値で示される。   In the target position storage unit 31, for example, a target position input by a user is stored. As the target position, the position of the hand is stored as an xyz coordinate value. The hand trajectory generator 32 generates a hand trajectory from the current position to the target position. The hand trajectory is calculated as, for example, a three-dimensional trajectory data matrix. The control unit 11 determines the hand trajectory based on the current position of the hand and the target position. This hand trajectory becomes the movement path of the hand. Here, the hand trajectory can be obtained as a set of a plurality of points (coordinates). Therefore, a set of a plurality of coordinates becomes a trajectory data matrix indicating the hand trajectory. The coordinates of a plurality of points on the straight trajectory from point A to point B shown in FIG. 2 are calculated as a trajectory data matrix. For example, in the trajectory data matrix, the coordinates of a large number of points arranged at regular intervals on a straight trajectory are arranged in order. And a hand moves in order on the point contained on this orbit data matrix. Here, the position of the point on the hand trajectory included in the trajectory data matrix is defined as the trajectory position. The trajectory position is indicated by xyz coordinate values.

手先軌道生成部32で生成された手先軌道は、手先速度演算部33に入力される。すなわち、手先軌道を構成する軌道位置の座標が手先速度演算部33に入力される。ここでは、軌道データ行列に含まれる軌道位置の座標が順番に入力されていく。さらに、手先速度演算部33には、エンコーダ27の検出信号に基づいて算出された手先の現在位置が入力される。   The hand trajectory generated by the hand trajectory generating unit 32 is input to the hand speed calculating unit 33. That is, the coordinates of the trajectory position constituting the hand trajectory are input to the hand speed calculation unit 33. Here, the coordinates of the trajectory position included in the trajectory data matrix are sequentially input. Further, the current position of the hand calculated based on the detection signal of the encoder 27 is input to the hand speed calculation unit 33.

手先速度演算部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 hand speed calculator 33 calculates the hand speed based on the current hand speed and the hand trajectory. The hand speed calculator 33 calculates the hand speed using the acceleration stored in the acceleration storage 36. The acceleration storage unit 36 stores a plurality of hand accelerations. And the hand speed when accelerating at one of the accelerations is obtained. Here, the hand speed in the case of accelerating at the maximum acceleration toward the next trajectory position is calculated from the current speed of the hand. Here, the maximum acceleration is the maximum acceleration obtained by driving all joints in the same direction. The maximum acceleration is a constant value and is stored in the acceleration storage unit 36. The maximum acceleration is determined by the performance (torque, rotation speed, etc.) of the motor that drives the joint, the weight of the link or hand 26, the gear ratio, and the like. The hand speed calculator 33 calculates a speed when heading to the next orbital position on the hand orbit from the current position of the hand. By adding maximum acceleration to the current speed of the hand, the hand speed can be obtained. Here, it is assumed that the current speed of the hand is V0 and the maximum acceleration is a max . The maximum acceleration amax is a positive value. In FIG. 2, the hand trajectory is a straight trajectory. For this reason, if the hand speed calculated by the hand speed calculating unit 33 is V, the hand speed V = V0 + a max t. Note that t is a time corresponding to a control cycle for calculating the hand speed. As described above, the hand speed calculation unit 33 sets the speed at the time of acceleration at the predetermined maximum acceleration a max from the current speed V0 as the hand speed V. The hand speed calculator 33 calculates the hand speed V for each control period and outputs the calculated hand speed V to the drive speed calculator 34.

手先速度演算部33で演算された手先速度Vは、駆動速度算出部34に入力される。駆動速度算出部34は、手先速度Vに基づいて、各関節の駆動速度を算出する。具体的には、逆ヤコビアンなどの変換行列を用いて、手先速度Vに到達するために必要な駆動速度を各関節毎に算出する。逆ヤコビ行列を用いて、手先速度Vを各関節の駆動速度v1、v2に分解する。これにより、1制御周期で、手先の現在速度V0から手先速度Vに到達するための駆動速度v1、v2を求めることができる。もちろん、これ以外の方法で関節の駆動速度を求めてもよい。   The hand speed V calculated by the hand speed calculator 33 is input to the drive speed calculator 34. The drive speed calculation unit 34 calculates the drive speed of each joint based on the hand speed V. Specifically, a driving speed necessary to reach the hand speed V is calculated for each joint using a transformation matrix such as an inverse Jacobian. Using the inverse Jacobian matrix, the hand speed V is decomposed into driving speeds v1 and v2 of each joint. Thereby, the driving speeds v1 and v2 for reaching the hand speed V from the current hand speed V0 can be obtained in one control cycle. Of course, the driving speed of the joint may be obtained by other methods.

駆動速度算出部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 speed calculation unit 34 are output to the drive speed evaluation unit 35. The drive speed evaluation unit 35 evaluates whether or not the drive speeds v1 and v2 exceed the limit value of the drive speed. Here, limit values of the drive speeds of the first joint 21 and the second joint 23 are defined as limit drive speeds v1_limit and v2_limit, respectively. Therefore, the drive speed calculation unit 34 compares the drive speed v1 of the first joint 21 with the limit drive speed v1_limit, and compares the drive speed v2 of the second joint 23 with the limit drive speed v2_limit of the second joint 23. The limit drive speed is set for both rotation directions. That is, positive and negative limit drive speeds are set. Here, the limit drive speed set with respect to both rotation directions is made the same magnitude. Therefore, it is determined whether the absolute values | v1 | and | v2 | of the drive speeds v1 and v2 are equal to or higher than the limit drive speeds v1_limit and v2_limit, respectively.

なお、限界駆動速度は、モータ仕様やギア比などに基づいて動力学から計算することができる。この場合、限界駆動速度は、一定の値となる。さらに、限界駆動速度をモータ仕様、ギア比、アーム部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 arm unit 20, the speed, and the like. In this case, the limit drive speed changes according to the posture and speed of the arm unit 20. The drive speed evaluation unit 35 determines whether all joints exceed the limit drive speed.

関節の駆動速度が限界駆動速度を超えていない場合、駆動速度評価部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 speed evaluation unit 35 outputs the drive speeds v1 and v2 to the deceleration processing determination unit 38 as they are. That is, the driving speed based on the hand speed V calculated by the hand speed calculating unit 33 is output. When the joint drive speed exceeds the limit drive speed, the drive speed evaluation unit 35 outputs an evaluation signal indicating that the joint drive speed exceeds the limit drive speed to the hand speed correction unit 37. When the evaluation signal is input to the hand speed correcting unit 37, the hand speed correcting unit 37 corrects the hand speed. That is, the hand speed correcting unit 37 corrects the hand speed V calculated by the hand speed calculating unit 33 according to the evaluation result in the drive speed evaluating unit 35. Here, the corrected hand speed is defined as a corrected speed Vmod. The correction speed Vmod is lower than the hand speed V.

修正速度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 acceleration storage unit 36. For example, it is assumed that three accelerations a = a max , 0, and −a max are stored in the acceleration storage unit 36. If the driving speed obtained based on the hand speed V when accelerating at the maximum acceleration a max exceeds the limit driving speed, the hand speed when accelerating with the acceleration a = 0 from V0 is set as the corrected speed Vmod. That is, since the hand moves at a constant speed, Vmod = V0. Then, the drive speed calculation unit 34 calculates the drive speed of each joint based on the correction speed Vmod. Since the calculation of the driving speed here is the same process as described above, the description thereof is omitted.

そして、駆動速度評価部35は、修正速度Vmodに基づいて算出された駆動速度v1、及びv2を評価する。すなわち、修正速度Vmodに基づいて算出された駆動速度が限界駆動速度を越えているか否かを判定する。そして、上記と同様に、修正速度Vmodに基づいて算出された駆動速度が限界駆動速度を越えている場合は、手先速度を修正する。ここでは、加速度a=−amaxとしたとき、すなわち最大加速度amaxで減速したときの速度が修正速度Vmodとなる。したがって、修正速度Vmod=V0−amaxtとなる。このように、加速度記憶部36に記憶されている加速度のうち、手先をより加速するものから順番に用いられていく。 Then, the drive speed evaluation unit 35 evaluates the drive speeds v1 and v2 calculated based on the correction speed Vmod. That is, it is determined whether or not the drive speed calculated based on the correction speed Vmod exceeds the limit drive speed. Similarly to the above, when the drive speed calculated based on the correction speed Vmod exceeds the limit drive speed, the hand speed is corrected. Here, the speed when acceleration a = −a max , that is, when the vehicle is decelerated at the maximum acceleration a max is the corrected speed Vmod. Therefore, the correction speed Vmod = V0−a max t. In this way, the accelerations stored in the acceleration storage unit 36 are used in order from the one that further accelerates the hand.

このように、修正速度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 processing determination unit 38. Therefore, the drive speed evaluation unit 35 outputs a drive speed that does not exceed the limit drive speed to the deceleration process determination unit. That is, when the drive speed calculated based on the correction speed Vmod exceeds the limit drive speed, the drive speed evaluation unit 35, the hand speed correction unit 37, and the drive speed calculation until the drive speed does not exceed the limit drive speed. The processing in the unit 34 is repeated.

減速処理判定部38は、目標位置で手先を停止させるための減速処理が必要か否かを判定する。すなわち、減速処理判定部38は、手先の現在位置が目標位置に対して十分近くなっている場合、目標位置で停止させるための減速処理を行う。これにより、各関節の駆動速度が減速し始め、目標位置で手先が停止する。このように、現在位置から減速を開始することによって、目標位置で各関節の駆動速度を0にできる。具体的には、減速処理判定部38は、例えば、現在位置から目標位置までの間の距離を求める。そして、現在位置から最大加速度で減速を開始することによって、目標位置で手先速度が0になるかを判定する。目標位置が十分離れている場合、目標位置までの間に駆動速度を0にすることができる。従って、減速処理判定部38は、減速処理が不要であると判定し、駆動速度評価部35から入力された駆動速度v1、v2をそのまま関節駆動部39に出力する。関節駆動部39は、例えば、モータのアンプである。駆動速度に応じた駆動信号をモータであるアクチュエータ28に出力する。   The deceleration processing determination unit 38 determines whether deceleration processing for stopping the hand at the target position is necessary. That is, the deceleration process determination unit 38 performs a deceleration process for stopping at the target position when the current position of the hand is sufficiently close to the target position. As a result, the driving speed of each joint begins to decelerate, and the hand stops at the target position. In this way, by starting deceleration from the current position, the driving speed of each joint can be made zero at the target position. Specifically, the deceleration process determination unit 38 obtains a distance from the current position to the target position, for example. Then, by decelerating at the maximum acceleration from the current position, it is determined whether the hand speed becomes 0 at the target position. When the target position is sufficiently far away, the driving speed can be reduced to zero before reaching the target position. Accordingly, the deceleration process determination unit 38 determines that the deceleration process is unnecessary, and outputs the drive speeds v1 and v2 input from the drive speed evaluation unit 35 to the joint drive unit 39 as they are. The joint drive unit 39 is, for example, a motor amplifier. A drive signal corresponding to the drive speed is output to the actuator 28 which is a motor.

目標位置に接近している場合、減速を開始しないと、目標位置までの間に駆動速度を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 processing determination unit 38 determines that deceleration processing is necessary. Thereby, the driving speed when the driving speed of each joint is decelerated at the maximum acceleration is output to the joint driving unit 39. The joint drive unit 39 then outputs a drive signal corresponding to the drive speed when the deceleration process is performed to the actuator 28. This accelerates at the maximum acceleration in the direction opposite to the rotational direction in which each joint is driven. That is, the driving speed starts to decrease at the maximum acceleration, and the driving speed at the target position can be made zero.

このように、減速処理判定部38は、減速処理を開始しないと目標位置で手先が止まれないか否かを判定する。目標位置で手先が停止できなくなってしまう場合は、即座に減速処理を開始する。すなわち、目標位置で駆動速度を停止できない程度に、手先の現在位置が目標位置に対して十分近くなると、減速処理を開始する。そして、手先が目標位置に到達するまでの間、現在速度を最大加速度で減速した場合の駆動速度を出力する。よって、現在速度から最大加速度で減速していく。これにより、目標位置での駆動速度が0となり、手先を停止することができる。すなわち、減速を開始することによって、目標位置で手先の速度を0にできる。   In this way, the deceleration process determination unit 38 determines whether or not the hand cannot be stopped at the target position unless the deceleration process is started. If the hand cannot stop at the target position, the deceleration process is immediately started. That is, when the current position of the hand is sufficiently close to the target position to such an extent that the driving speed cannot be stopped at the target position, the deceleration process is started. Then, the drive speed when the current speed is decelerated at the maximum acceleration until the hand reaches the target position is output. Therefore, the vehicle decelerates at the maximum acceleration from the current speed. As a result, the driving speed at the target position becomes zero, and the hand can be stopped. That is, the speed of the hand can be reduced to zero at the target position by starting deceleration.

関節駆動部39は、駆動速度に基づいた駆動信号を、アクチュエータ28に出力する。アクチュエータ28は、駆動信号に基づいて各関節を駆動する。これにより、各関節が制御部11で算出された駆動速度で駆動する。そして、制御部11は一定の制御周期で上記の処理を繰り返し実行して、駆動信号を出力する。例えば、手先軌道生成部32で生成された手先軌道上の次の軌道位置の座標が手先速度演算部33に入力される。そして、手先速度演算部33は、次の軌道位置に対しての手先速度を同様に演算する。そして、駆動速度算出部34、駆動速度評価部35、手先速度修正部37、減速処理判定部38での処理を同様に実行する。このようにして、次の軌道位置に対しての駆動速度を算出し、駆動速度に応じた駆動信号をアクチュエータ28に出力する。従って、駆動速度は、制御周期で更新されていく。このようにして、各関節の駆動速度が制御されている。   The joint drive unit 39 outputs a drive signal based on the drive speed to the actuator 28. The actuator 28 drives each joint based on the drive signal. As a result, each joint is driven at the driving speed calculated by the control unit 11. And the control part 11 repeatedly performs said process with a fixed control period, and outputs a drive signal. For example, the coordinates of the next trajectory position on the hand trajectory generated by the hand trajectory generating unit 32 are input to the hand speed calculating unit 33. The hand speed calculator 33 similarly calculates the hand speed for the next trajectory position. And the process in the drive speed calculation part 34, the drive speed evaluation part 35, the hand speed correction part 37, and the deceleration process determination part 38 is performed similarly. In this way, the driving speed for the next orbital position is calculated, and a driving signal corresponding to the driving speed is output to the actuator 28. Therefore, the driving speed is updated at the control cycle. In this way, the driving speed of each joint is controlled.

ここで、減速処理が必要ないと判定された場合、駆動速度評価部35からの駆動速度が関節駆動部39に出力されている。従って、各関節には、限界駆動速度を超えない駆動速度が入力される。これにより、アクチュエータ28は各関節を適切な駆動速度で駆動する。すなわち、さらに、限界駆動速度は、各関節に対して個別に設定することができるため、それぞれの関節に適切な限界駆動速度を設定することができる。よって、限界駆動速度を高くすることができる。各関節の駆動速度を高くすることができ、駆動時間を短縮することができる。   Here, when it is determined that the deceleration process is not necessary, the drive speed from the drive speed evaluation unit 35 is output to the joint drive unit 39. Accordingly, a driving speed that does not exceed the limit driving speed is input to each joint. As a result, the actuator 28 drives each joint at an appropriate driving speed. That is, since the limit drive speed can be set individually for each joint, an appropriate limit drive speed can be set for each joint. Therefore, the limit drive speed can be increased. The driving speed of each joint can be increased, and the driving time can be shortened.

次に、図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 arm unit 20. In this case, there are postures in which the hand speed can be increased and postures incapable of being on the hand trajectory. When moving on a trajectory in a posture where the hand speed cannot be increased, it is necessary to set the limit value of the hand speed low. When a limit value is set for the hand speed, a low limit value must be set for the entire track. In this case, since the hand speed cannot be increased, the hand cannot be moved in a short time. On the other hand, in the present embodiment, it is possible to set an appropriate limit driving speed (limit value) for each driving speed. For this reason, a hand can be moved at high speed. Thereby, drive time can be shortened.

次に、本実施の形態にかかる制御方法について、図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 hand speed calculator 33. First, in order to calculate the hand speed, the current speed, the trajectory position, and the acceleration are obtained (step S101). The current speed of the hand can be obtained from the detection signal of the encoder 27, for example. The trajectory position corresponds to the coordinates of a point on the trajectory generated by the hand trajectory generator 32. The trajectory positions on the hand trajectory are sequentially output from the hand trajectory generation unit 32. That is, the trajectory position from the movement start position to the target position is sequentially output from the movement start position side to the target position side. The maximum acceleration a max is used as the acceleration. That is, the maximum acceleration among the accelerations stored in the acceleration storage unit 36 is output so that the hand speed is the fastest. The acceleration direction of the maximum acceleration is the same direction as the current speed direction.

次に、手先速度を演算する(ステップS102)。すなわち、手先速度演算部33が、現在速度、軌道位置、及び加速度に基づいて手先速度Vを演算する。具体的には、現在速度から軌道位置に向かって、最大加速度amaxで加速したときの手先速度Vを演算する。そして、各関節の駆動速度を算出する(ステップS103)。すなわち、駆動速度算出部34が駆動速度を関節毎に算出する。ここでは、上記のように、逆ヤコビアンを用いて、各関節の駆動速度を求めることができる。 Next, the hand speed is calculated (step S102). That is, the hand speed calculator 33 calculates the hand speed V based on the current speed, the trajectory position, and the acceleration. Specifically, the hand speed V when the vehicle is accelerated at the maximum acceleration a max from the current speed toward the orbit position is calculated. Then, the driving speed of each joint is calculated (step S103). That is, the drive speed calculation unit 34 calculates the drive speed for each joint. Here, as described above, the driving speed of each joint can be obtained using the inverse Jacobian.

そして、各関節の駆動速度がリミットをオーバーしているか否かを判定する(ステップ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 speed evaluation unit 35 compares the drive speed with the limit drive speed and evaluates whether the drive speed exceeds the limit drive speed. If the limit drive speed is exceeded, the hand speed is corrected (step S105). That is, the hand speed correction unit 37 changes the acceleration to obtain the correction speed Vmod. Here, the acceleration next to the maximum acceleration among the accelerations stored in the acceleration storage unit 36 is used. Accordingly, the hand speed when the acceleration a = 0 is set as the correction speed Vmod. Based on the correction speed Vmod, the drive speed of each joint is calculated (S104). Then, the hand speed is corrected until the drive speed does not exceed the limit (steps S104 and S105).

限界駆動速度を越えない駆動速度が得られたら、減速処理を開始するか否かを判定する(ステップ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よりも低い加速度aで加速する。このようにすることによって、手先速度をより細かく設定することが可能になる。よって、移動時間をより短縮することができる。なお、設定する加速度の数を増やすことにより計算時間が増加する。すなわち、ステップ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 acceleration storage unit 36, finer control can be performed. That is, an appropriate acceleration can be selected from a plurality of accelerations stored in the acceleration storage unit 36. In this case, the drive speed at the maximum acceleration a max is Once beyond the limit driving speed, accelerates at a maximum acceleration a max low acceleration a 1 than. In this way, the hand speed can be set more finely. Therefore, the travel time can be further shortened. The calculation time increases by increasing the number of accelerations to be set. That is, there is a possibility that the number of executions of step S104, step S105, and step S103 increases. For this reason, it is preferable to increase the number of accelerations set to such an extent that the processing can be completed within an assumed control cycle.

発明の実施の形態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 robot 1 shown in FIG. 1, a joint that changes the posture of the hand such as a wrist joint is added. For example, a wrist joint that drives the hand 26 is provided between the second link 24 and the hand 26. Thereby, the posture (rolling, pitching, yawing) around the axis of the hand 26 can be changed. That is, the hand 26 rotates around the axis. For example, the hand 26 rotates with the direction in which the second link 24 is provided as the rotation axis. As a result, the axis around the hand 26 becomes the driving direction, and the hand posture changes. The control according to the present embodiment can also be applied to a manipulator having 6 degrees of freedom or 7 degrees of freedom. In such a manipulator, the position of the hand and the posture of the hand are changed by a plurality of joints. Further, the position and posture of the hand are changed by one joint.

図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 control unit 11 of the robot 1 according to the present embodiment. Note that the basic configuration of the robot 1 is the same as that of the first embodiment, and a description thereof will be omitted. In addition, since the basic configuration of the control unit 11 is the same as that of the first embodiment, the following description will mainly describe differences from the first embodiment. That is, the control of the hand position is the same as that of the first embodiment, and thus the description thereof is omitted. In the present embodiment, for example, a wrist joint for changing the hand posture is provided. As the wrist joint rotates, the posture of the hand changes. That is, the hand tip rotates around the axis, and the hand posture changes. Note that the hand posture may be changed by a joint other than the wrist joint, and the hand posture may be changed by two or more joints. In the present embodiment, in order to control the hand posture, a posture angular velocity calculation unit 40 is provided in addition to the configuration of the control unit 11 shown in FIG. Further, a correction unit 41 is provided instead of the hand speed correction unit 37.

本実施の形態では、手先軌道生成部32は手先の軌道位置だけでなく、手先軌道上での手先の姿勢を算出する。すなわち、軌道位置の座標に手先の姿勢角(手先の軸周りの回転角)を対応付けて、手先軌道を生成する。手先軌道生成部32の手先の位置の軌道は、実施の形態1と同様に、手先速度演算部33に出力される。そして、手先速度演算部33は、実施の形態1と同様に手先速度を演算する。一方、手先の姿勢の軌道は、姿勢角として姿勢角速度演算部40に出力される。従って、姿勢角速度演算部40には、停止位置での目標姿勢となる姿勢までの姿勢角が順次出力される。姿勢角速度演算部40は、現在の姿勢の角速度から、姿勢角に向けて、予め設定されている変化量だけ角速度を増加させる。これにより、手先の姿勢角速度ωを演算することができる。従って、手先軌道生成部32で生成された軌道上での手先の姿勢角に追従するように制御される。手先の現在姿勢角はエンコーダ27によって求めることができる。   In the present embodiment, the hand trajectory generating unit 32 calculates not only the hand trajectory position but also the hand posture on the hand trajectory. That is, the hand trajectory is generated by associating the hand posture angle (rotation angle around the hand axis) with the coordinates of the trajectory position. The trajectory of the hand position of the hand trajectory generating unit 32 is output to the hand speed calculating unit 33 as in the first embodiment. The hand speed calculator 33 calculates the hand speed as in the first embodiment. On the other hand, the trajectory of the hand posture is output to the posture angular velocity calculation unit 40 as a posture angle. Therefore, the posture angle up to the posture that becomes the target posture at the stop position is sequentially output to the posture angular velocity calculation unit 40. The posture angular velocity calculating unit 40 increases the angular velocity by a preset change amount from the angular velocity of the current posture toward the posture angle. As a result, the posture angular velocity ω of the hand can be calculated. Therefore, control is performed so as to follow the posture angle of the hand on the trajectory generated by the hand trajectory generating unit 32. The current posture angle of the hand can be obtained by the encoder 27.

そして、駆動速度算出部34は、手先速度と姿勢角速度を満たす駆動速度を算出する。ここでは、実施の形態1と同様に、逆ヤコビアンなどの変換行列によって、各関節の駆動速度を算出する。もちろん、手先の姿勢角を変えるための関節の駆動速度も算出される。そして、駆動速度評価部35は、各関節の駆動速度を評価する。すなわち、姿勢角を変化させる関節の駆動速度が限界駆動速度を越えていないか判定する。もちろん、手先の位置を変化させる関節の駆動速度についても評価を行なう。1つ以上の関節の駆動速度が限界駆動速度を越えている場合、限界駆動速度を超えていることを示す評価信号を出力する。   Then, the drive speed calculation unit 34 calculates a drive speed that satisfies the hand speed and the posture angular speed. Here, as in the first embodiment, the driving speed of each joint is calculated by a transformation matrix such as an inverse Jacobian. Of course, the joint drive speed for changing the posture angle of the hand is also calculated. Then, the drive speed evaluation unit 35 evaluates the drive speed of each joint. That is, it is determined whether the drive speed of the joint that changes the posture angle exceeds the limit drive speed. Of course, the driving speed of the joint that changes the position of the hand is also evaluated. When the driving speed of one or more joints exceeds the limit driving speed, an evaluation signal indicating that the driving speed exceeds the limit driving speed is output.

本実施の形態では、実施の形態1で示した手先速度修正部37の代わりに、修正部41が設けられている。修正部41は、1つ以上の関節の駆動速度が限界駆動速度を越えている場合、手先の速度、及び姿勢角速度ωを修正する。手先の姿勢角速度ωは、手先速度と同様に修正することができる。例えば、姿勢角速度ωを増加させると、駆動速度が限界駆動速度を越える場合、姿勢角速度ωを一定にする。また、姿勢角速度ωが一定としても、駆動速度が限界駆動速度を越える場合、姿勢角速度ωを減少させる。このようにして、修正角速度ωmodを求めることができる。従って、いずれか1つの駆動速度が限界駆動速度を越える場合、手先速度、及び姿勢角速度を修正する。そして、修正した手先速度、及び姿勢角速度に基づいて、各関節の駆動速度を求める。駆動速度が限界駆動速度を越えなくなるまで、この処理を行う。そして、実施の形態1と同様に、駆動速度に基づく駆動信号を出力する。上記の処理を繰り返すことにより、各関節を適切な駆動速度で駆動することができる。従って、駆動時間を短縮することができる。このように、手先位置、及び姿勢が同じ関節の駆動によって変化するマニピュレータに上記の制御を行うことにより、簡便に駆動時間を短縮することができる。 In the present embodiment, a correction unit 41 is provided instead of the hand speed correction unit 37 shown in the first embodiment. When the driving speed of one or more joints exceeds the limit driving speed, the correcting unit 41 corrects the hand speed and the posture angular speed ω. The posture angular velocity ω of the hand can be corrected similarly to the hand velocity. For example, if the posture angular velocity ω is increased, the posture angular velocity ω is made constant when the drive speed exceeds the limit drive speed. Even if the posture angular velocity ω is constant, the posture angular velocity ω is decreased when the drive speed exceeds the limit drive speed. In this way, the corrected angular velocity ω mod can be obtained. Accordingly, when any one of the drive speeds exceeds the limit drive speed, the hand speed and the posture angular speed are corrected. Then, the driving speed of each joint is obtained based on the corrected hand speed and posture angular speed. This process is performed until the drive speed does not exceed the limit drive speed. Then, as in the first embodiment, a drive signal based on the drive speed is output. By repeating the above processing, each joint can be driven at an appropriate driving speed. Therefore, driving time can be shortened. In this way, by performing the above-described control on the manipulator whose hand position and posture are changed by driving the same joint, the driving time can be easily reduced.

本発明の実施の形態1に係るロボットの全体を概略的に表した全体概略図である。1 is an overall schematic diagram schematically showing an entire robot according to a first embodiment of the present invention. 本発明の実施の形態1に係るロボットの軌道を示す図である。It is a figure which shows the track | orbit of the robot which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係るロボットに設けられた制御部を示すブロック図である。It is a block diagram which shows the control part provided in the robot which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係るロボットの制御方法における制御パターンを示す図である。It is a figure which shows the control pattern in the control method of the robot which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係るロボットの制御方法を示すフローチャートである。It is a flowchart which shows the control method of the robot which concerns on Embodiment 1 of this invention. 本発明の実施の形態2に係るロボットに設けられた制御部を示すブロック図である。It is a block diagram which shows the control part provided in the robot which concerns on Embodiment 2 of this invention.

符号の説明Explanation of symbols

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.
前記手先速度演算部が、前記手先の現在の速度から、所定の加速度で加速したときの速度を手先速度として演算することを特徴とする請求項1、又は2に記載のロボットアーム。   3. The robot arm according to claim 1, wherein the hand speed calculation unit calculates a speed when accelerating at a predetermined acceleration from the current speed of the hand as a hand speed. 4. 複数の関節を駆動して、手先を目標位置まで移動させるロボットアームの制御方法であって、
前記目標位置までの手先の軌道を生成するステップと、
前記手先軌道にしたがって移動するときの手先の速度を演算するステップと、
前記手先速度に基づいて、前記関節の駆動速度を算出するステップと、
前記関節の駆動速度が駆動速度の限界値を越えているか否かを評価するステップと、
前記駆動速度が限界値を越えている場合に、前記手先速度を修正するステップと、
前記修正された手先速度に基づいて算出された駆動速度に応じて、前記関節を駆動するステップと、を備えるロボットアームの制御方法。
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.
前記手先速度を演算するステップでは、前記手先の現在の速度から、所定の加速度で加速したときの速度を手先速度として演算されている請求項4、又は5に記載のロボットアームの制御方法。   The robot arm control method according to claim 4 or 5, wherein in the step of calculating the hand speed, a speed when accelerating at a predetermined acceleration is calculated from the current speed of the hand as a hand speed.
JP2007029135A 2007-02-08 2007-02-08 Robot arm and control method therefor Pending JP2008194760A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (10)

* Cited by examiner, † Cited by third party
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