JP6501470B2 - Track generation method, track generation apparatus, robot apparatus, program and recording medium - Google Patents

Track generation method, track generation apparatus, robot apparatus, program and recording medium Download PDF

Info

Publication number
JP6501470B2
JP6501470B2 JP2014185867A JP2014185867A JP6501470B2 JP 6501470 B2 JP6501470 B2 JP 6501470B2 JP 2014185867 A JP2014185867 A JP 2014185867A JP 2014185867 A JP2014185867 A JP 2014185867A JP 6501470 B2 JP6501470 B2 JP 6501470B2
Authority
JP
Japan
Prior art keywords
interpolation
path
point
robot
joint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014185867A
Other languages
Japanese (ja)
Other versions
JP2016055404A (en
Inventor
弦 木村
弦 木村
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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014185867A priority Critical patent/JP6501470B2/en
Publication of JP2016055404A publication Critical patent/JP2016055404A/en
Application granted granted Critical
Publication of JP6501470B2 publication Critical patent/JP6501470B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Description

本発明は、ロボットの軌道を生成する軌道生成方法、軌道生成装置、ロボット装置、プログラム及び記録媒体に関する。   The present invention relates to a trajectory generation method for generating a trajectory of a robot, a trajectory generation device, a robot device, a program, and a recording medium.

ロボットの補間動作には、主に直線補間、円弧補間及び関節補間の3種が知られている。直線補間は、目標点にツールセンターポイント(TCP)を直進させる補間方法である。円弧補間は、意図的に2点間の直路から外れた位置に参照ポイントを与え、3点を通る一義的な円弧に沿ってTCPを移動させる補間方法である。この円弧補間と直線補間はタスク空間で補間を行うので、本質的には同じものである。   There are mainly three known types of interpolation operation of a robot: linear interpolation, circular interpolation and joint interpolation. Linear interpolation is an interpolation method that makes the tool center point (TCP) go straight to the target point. Arc interpolation is an interpolation method in which a reference point is intentionally provided at a position deviated from a straight path between two points, and TCP is moved along a unique arc passing through three points. The circular interpolation and the linear interpolation are essentially the same because they interpolate in the task space.

関節補間は、TCPの直線性や円弧性は問わず、目標の関節角度に向かって各軸が原則的に同時に動き出し、同時に目標点に到達する補間方法である。すなわち、関節補間は、関節空間(コンフィグレーション空間ともいう)で経路を生成する手法である。関節補間によれば、各関節の100%の動作性能を発揮する制御が容易であり、また、直線補間や円弧補間で問題となる、特異点問題が起きないので、高速動作が必要な移動区間で多用される。ただし、関節ごとの速度制御となるために、TCPの経路や速度はユーザが簡単に予測できるものでない。   Joint interpolation is an interpolation method in which each axis basically simultaneously starts moving toward the target joint angle and reaches the target point at the same time regardless of the linearity or circularity of TCP. That is, joint interpolation is a method of generating a path in joint space (also referred to as configuration space). According to the joint interpolation, it is easy to perform control to exhibit 100% operation performance of each joint, and there is no singular point problem which becomes a problem in linear interpolation or circular interpolation, so a moving section requiring high speed operation Often used. However, the path and speed of TCP can not be easily predicted by the user because of the speed control for each joint.

ロボットの動作は、その移動の都度、その間の動作や目的にふさわしい補間方式が採択される。例えば、円筒部品をロボットが把持し、円筒部品を円筒状の穴の上まで移動させ、円筒部品をその穴に嵌め込む場合がある。この場合、把持した後のロボットの移動は、関節補間で高速に動作し、円筒状の穴の上から円筒部品を穴に嵌め込む動作は直線補間を用いて、真っ直ぐに嵌め込むことが望まれる。   Each time the robot moves, an interpolation method appropriate to the movement and purpose is adopted. For example, a robot may grip a cylindrical part, move the cylindrical part over a cylindrical hole, and fit the cylindrical part into the hole. In this case, it is desirable that the movement of the robot after gripping be operated at high speed by joint interpolation, and the operation of inserting the cylindrical part into the hole from above the cylindrical hole be fitted straight using linear interpolation. .

ところで、各移動区間における補間動作は、補間経路上をどのような速度で移動するかを決める速度関数で与えられる。移動開始時と移動終了時にロボットが停止しているとすると、移動開始後は、加速をして移動速度を上げ、移動終了前には減速をして停止するという動作となる。   By the way, the interpolation operation in each movement section is given by a speed function which determines at what speed to move on the interpolation path. Assuming that the robot is stopped at the start of movement and at the end of movement, the movement is accelerated to increase the moving speed after the start of movement, and decelerated to stop before the end of movement.

ここで、2つの異なる経路を連続して動かす方法として、経路のつなぎ目で停止することが考えられる。例えば、円筒部品を穴に嵌め込む例の場合、関節補間経路で加速をして移動を行い、関節補間経路の終了前に減速して経路のつなぎ目で停止し、直線補間経路で徐々に速度を上げるようにしておけば、2つの補間経路上を連続して動作させることができる。しかし、2つの補間経路の間でのロボットの厳格な停止は、無用であるだけでなく、この部分での停滞気味の挙動がロボットの動作の時間を長引かせることになる。もちろん、作業時間節約のために急減速や急加速させるとすれば、それはロボットの振動を助長させるもとになり好ましいことではない。   Here, as a method of moving two different paths in succession, it is conceivable to stop at the joint of the paths. For example, in the case of inserting a cylindrical part into a hole, acceleration is performed in the joint interpolation path to move, deceleration is performed before the end of the joint interpolation path, and stops at the joint of the path, and speed is gradually increased in the linear interpolation path. If it is raised, it is possible to operate continuously on two interpolation paths. However, not only is the robot strictly stopping between the two interpolation paths not only useless, but stagnant behavior in this part will prolong the robot's operation time. Of course, if rapid deceleration or rapid acceleration is performed to save working time, it is not preferable because it promotes the vibration of the robot.

そこで、例えば、直線補間と直線補間とを連続して動作させる場合、それぞれの直線補間経路上での速度関数を先に導きだした後に、先の移動区間の減速域と後の移動区間の加速域とを繋ぎ合せる。そして、両区間の繋ぎ点もしくはその近傍を先の移動区間の減速中の速度と後の移動区間の加速中の速度との和で通過させればよい。これにより、次の教示点に到達させる時間を縮めることができる。このような速度の重ね処理は、先の移動区間の補間方法と後の移動区間の補間方法とが同種である場合、その速度関数自体を繋ぎ合せることによってある意味では容易に達成される。直線補間と直線補間の場合には、タスク空間上で、先の並進速度関数と後の並進速度関数とを、先の回転速度関数と後の回転速度関数とを、それぞれ減速域と加速域とでそれぞれの全部もしくは一部を重ねればよい。   Therefore, for example, in the case where linear interpolation and linear interpolation are continuously operated, the velocity function on each linear interpolation path is first derived, and then acceleration of the deceleration zone of the previous movement zone and acceleration of the later movement zone Connect with the area. Then, the connection point between both sections or the vicinity thereof may be passed by the sum of the speed during deceleration of the previous movement section and the speed during acceleration of the subsequent movement section. This can reduce the time to reach the next teaching point. Such speed overlapping processing can be achieved in a sense in a sense by combining the speed functions themselves if the interpolation method of the previous movement section and the interpolation method of the later movement section are the same. In the case of linear interpolation and linear interpolation, in the task space, the preceding translational velocity function and the later translational velocity function are compared with the preceding rotational velocity function and the later rotational velocity function, respectively. All or part of each may be overlapped.

関節補間で動作させる場合は、6軸ロボットであれば関節(軸)ごとに速度関数が与えられる。この場合でも関節補間同士の速度の重ね処理は、それぞれの関節補間経路上での速度関数を求めた後に、第1関節の先の速度関数の減速域と後の速度関数の加速域とを、第2関節の先の速度関数と後の速度関数とをといったように関節ごとを対象にして行えばよい。従って、6自由度のマニピュレータであれば、6つの組合せ全部で重ねられることになる。   In the case of operation by joint interpolation, in the case of a six-axis robot, a velocity function is given for each joint (axis). Even in this case, the overlapping process of the velocity between the joint interpolations obtains the velocity function on each joint interpolation path, and then the deceleration region of the first velocity function of the first joint and the acceleration region of the later velocity function, It may be performed for each joint as in the velocity function of the second joint and the velocity function of the second joint. Therefore, if it is a manipulator with six degrees of freedom, all six combinations will be superimposed.

しかし、ロボットの動作が関節補間から直線補間に移る場合は、補間をする空間がそれぞれ、関節空間とタスク空間とで異なり、関節補間の関節角速度と、直線補間のTCPの並進速度及び回転速度の繋ぎ合せ処理がそのままではできない。   However, when the motion of the robot shifts from joint interpolation to linear interpolation, the space to be interpolated differs between the joint space and the task space, and the joint angular velocity of the joint interpolation and the translational velocity and rotational velocity of the linear interpolation TCP are different. The joining process can not be done as it is.

そこで、特許文献1では、関節補間から直線補間に移る場合、直線補間をしてTCPの並進速度及び回転速度を出した後、逆キネマティクス計算を行い各軸の関節の角速度に直してから、関節補間軌道との速度の繋ぎ合せを行っている。直線補間の速度を関節の角速度に直して速度を繋ぎ合せるため、関節角速度の繋ぎ合せが可能となる。   Therefore, in Patent Document 1, when moving from joint interpolation to linear interpolation, linear interpolation is performed to obtain translational speed and rotational speed of TCP, and then inverse kinematics calculation is performed to convert to angular velocity of joint of each axis, The connection with the joint interpolation trajectory is performed. Since the speed of linear interpolation is converted to the joint angular velocity and the speeds are joined, joint angular velocity can be joined.

一方、非特許文献1では、与えられた経路上で、各種物理的制約を守り、動作時間を最短にするロボットの最適な動作速度を計算する最適速度の計算方法が述べられている。与えられた経路で、ロボットの動作速度を調整し動作軌道を作成するには、通常、各種物理的制約を守りつつ、ロボットの動作時間が短くなるように、ユーザが速度値を何度も調整する必要があった。しかし、人間が速度値の調整をすると、軌道が最適にならず、動作時間が長くなってしまうと同時に、軌道開発工数がかかってしまう。そこで、各種物理的制約を守り、動作時間を最短にするロボットの最適な動作速度の計算を自動で行うことが望まれる。   On the other hand, Non-Patent Document 1 describes a method of calculating an optimum speed for calculating an optimum operating speed of a robot which obeys various physical constraints and minimizes the operation time on a given route. In order to adjust the motion speed of the robot and create the motion trajectory on a given route, the user usually adjusts the speed value many times so that the motion time of the robot is shortened while observing various physical constraints. I needed to. However, if a human adjusts the velocity value, the trajectory will not be optimal, and the operation time will be long, and at the same time, the number of trajectory development steps will be increased. Therefore, it is desirable to automatically calculate the optimum operating speed of the robot which obeys various physical constraints and minimizes the operating time.

ロボットの関節トルク制約を守りつつ、与えられた経路に対し、できる限り動作時間の短い軌道を生成する最適速度計算方法について非特許文献1に記載されている。   Non-Patent Document 1 describes an optimal velocity calculation method for generating a trajectory with a short operation time as much as possible for a given route while maintaining robot joint torque constraints.

特開2004−252814号公報Unexamined-Japanese-Patent No. 2004-252814

Verscheure,Diederik,et al. “Time−optimal path tracking for robots: a convex optimization approach.” Automatic Control, IEEE Transactions on 54.10 (2009): 2318−2327.Verscheure, Diederik, et al. "Time-optimal path tracking for robots: a convex optimization approach." Automatic Control, IEEE Transactions on 54.10 (2009): 2318-2327.

しかしながら、上記特許文献1及び上記非特許文献1によっても、2つの補間経路を繋ぎ合せたときに物理的制約を考慮にいれた最適な軌道を生成することができなかった。   However, even according to Patent Document 1 and Non-Patent Document 1 described above, it is not possible to generate an optimal trajectory taking physical constraints into consideration when joining two interpolation paths.

非特許文献1には、生成した2つの補間経路を、媒介変数に関して滑らかさを保って繋ぐ方法については記載されていない。また、引用文献1でも、2つの補間経路を繋げる方法は開示されているが、2つの補間経路を媒介変数sに関して滑らかさ(所定の階数まで微分した微分値の変化が連続な滑らかさ)をもたせたまま繋げることについては、記載されていない。   Non-Patent Document 1 does not describe a method of connecting two generated interpolation paths with smoothness with respect to parameters. Further, in the reference document 1 as well, although a method of connecting two interpolation paths is disclosed, the smoothness of the two interpolation paths with respect to the parameter s (smoothness in which the change of differential value differentiated to a predetermined rank is continuous) There is no mention of linking while leaving it in place.

つまり、従来、第1補間方法で生成した第1補間経路と第2補間方法で生成した第2補間経路とを媒介変数sに関して滑らかさ(所定の階数まで微分した微分値の変化が連続な滑らかさ)をもたせたまま繋げることは、これまで行われていなかった。例えば、関節補間と直線補間という経路を補間する空間がそれぞれ違う2つの補間経路や、円弧補間と直線補間といった形状が違う2つの補間経路を媒介変数sに関して滑らかさをもたせたまま繋げることは、行われていなかった。   That is, conventionally, the first interpolation path generated by the first interpolation method and the second interpolation path generated by the second interpolation method are smoothed with respect to the parameter s (smoothness in which changes in derivative values differentiated to a predetermined rank are continuous) It has not been done until now while connecting them. For example, it is possible to connect two interpolation paths having different spaces for interpolating a path such as joint interpolation and linear interpolation, or two interpolation paths having different shapes such as arc interpolation and linear interpolation while maintaining smoothness with respect to the parameter s It was not done.

従来、2つの補間経路を媒介変数sに関して滑らかさをもたせたまま繋げていなかったので、ロボットへの時刻毎の関節角度の指令値を生成する、つまりロボットの軌道を生成する際に、軌道の最適性に大きな誤差を生む原因となっていた。   Conventionally, since two interpolation paths are not connected with smoothness with respect to the parameter s, the command value of the joint angle for each time to the robot is generated, that is, when generating the robot trajectory, It has caused a large error in the optimality.

例えば、関節i軸の関節加加速度は、sを用いて、   For example, the joint acceleration of the joint i axis is expressed by using s

Figure 0006501470
と書ける。もしq(s)がsに関して滑らかでなく、単に連続である場合、q’(s)、q’’(s)、q’’’(s)は不連続になるため、q(…)(s)は、媒介変数sに関して不連続になる。
Figure 0006501470
I can write. If q i (s) is not smooth with respect to s, but is simply continuous, then q i ′ (s), q i ′ ′ (s), q i ′ ′ ′ (s) are discontinuous, so q i (...) (s) becomes discontinuous with respect to parameter s.

このような滑らかでない(所定の階数まで微分した微分値の変化が不連続である)経路で、速度の最適化計算を行った場合、一定周期毎のロボットへの関節角度の指令値を生成する際に大きな誤差が生じていた。これにより、例えば関節加加速度が制約から大幅に外れる原因となっていた。また、これは、関節加加速度だけに限定されるものではなく、関節トルク制約、関節角速度制約、関節角加速度制約、TCP速度制約又はTCP加速度制約等の物理的制約も同様に大きな誤差を生み、制約から大幅に外れる原因となっていた。   When speed optimization calculation is performed on a path that is not smooth (the change in derivative value differentiated to a predetermined rank is discontinuous), a command value of joint angles to the robot for each fixed cycle is generated At the time, a big error occurred. This causes, for example, the joint acceleration to be largely deviated from the constraint. Also, this is not limited to only joint acceleration, and physical constraints such as joint torque constraint, joint angular velocity constraint, joint angular acceleration constraint, TCP velocity constraint or TCP acceleration constraint also produce large errors as well. It has become a cause of being largely out of the constraints.

そこで、本発明は、2つの補間経路を繋ぎ合せた経路を辿るロボットが停止しない、物理的制約を守った最適な軌道を生成することを目的とする。   Therefore, an object of the present invention is to generate an optimal trajectory in accordance with physical constraints, in which a robot following a path obtained by combining two interpolation paths does not stop.

本発明は、演算部が、多関節のロボットの軌道を生成する軌道生成方法であって、前記演算部が、媒介変数の関数であって、所定の階数まで前記媒介変数で微分した微分値の変化が連続な、第1教示点から第1補助点に向かう第1補間経路を、第1補間方法により生成する第1補間経路生成工程と、前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数で微分した微分値の変化が連続な、第2補助点から第2教示点に向かう第2補間経路を、第2補間方法により生成する第2補間経路生成工程と、前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数で微分した微分値の変化が連続な、前記第1補間経路上の第1途中点から前記第2補間経路上の第2途中点に向かう繋ぎ合せ経路を生成する繋ぎ合せ工程と、前記演算部が、前記第1補間経路における前記第1教示点と前記第1途中点との間の第1局所経路と、前記第2補間経路における前記第2途中点と前記第2教示点との間の第2局所経路とを、前記繋ぎ合せ経路で繋ぎ合せた経路に対し、所定の物理的制約を守るよう前記ロボットの動作時間を最適化する最適化計算によって、前記ロボットの前記軌道を求める最適化計算工程と、を備え、前記繋ぎ合せ工程では、前記演算部が、前記第1途中点から前記第1補助点までの各第1補間点に対して、前記第1教示点に近い側の第1補間点から順に、1から0に順次遷移する第1重み係数をかけ、前記第2補助点から前記第2途中点までの各第2補間点に対して、前記第2補助点に近い側の第2補間点から順に、1から前記第1重み係数を引いた値となるよう0から1に順次遷移する第2重み係数をかけ、前記第1補間点に前記第1重み係数をかけて求めた点と、前記第2補間点に前記第2重み係数をかけて求めた点とを足し合わせて、前記繋ぎ合せ経路を生成し、前記繋ぎ合せ工程では、前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数による微分値の変化が連続な、第1重み関数を用いて、前記第1重み係数を求め、前記所定の階数まで前記媒介変数による微分値の変化が連続な、第2重み関数を用いて、前記第2重み係数を求めることを特徴とする。
また、本発明は、演算部が、多関節のロボットの軌道を生成する軌道生成方法であって、前記演算部が、媒介変数の関数であって、所定の階数まで前記媒介変数で微分した微分値の変化が連続な、第1教示点から第1補助点に向かう第1補間経路を、第1補間方法により生成する第1補間経路生成工程と、前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数で微分した微分値の変化が連続な、第2補助点から第2教示点に向かう第2補間経路を、第2補間方法により生成する第2補間経路生成工程と、前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数で微分した微分値の変化が連続な、前記第1補間経路上の第1途中点から前記第2補間経路上の第2途中点に向かう繋ぎ合せ経路を生成する繋ぎ合せ工程と、前記演算部が、前記第1補間経路における前記第1教示点と前記第1途中点との間の第1局所経路と、前記第2補間経路における前記第2途中点と前記第2教示点との間の第2局所経路とを、前記繋ぎ合せ経路で繋ぎ合せた経路に対し、所定の物理的制約を守るよう前記ロボットの動作時間を最適化する最適化計算によって、前記ロボットの前記軌道を求める最適化計算工程と、を備え、前記第1補間方法及び前記第2補間方法がそれぞれタスク空間で補間経路を生成する方法及び関節空間で補間経路を生成する方法のうちいずれかであり、前記繋ぎ合せ工程では、前記演算部が、前記第1補間経路及び前記第2補間経路を、前記タスク空間及び前記関節空間のうちいずれかの空間における経路に統一して、前記統一した空間において繋ぎ合せ経路の生成を行うことを特徴とする。
The present invention is the trajectory generation method in which the operation unit generates the trajectory of an articulated robot, and the operation unit is a function of a parameter, and is a derivative value differentiated with the parameter to a predetermined rank. A first interpolation path generation step of generating a first interpolation path from the first teaching point to the first auxiliary point, the change being continuous, by the first interpolation method, and the operation unit is a function of the parameter; A second interpolation path generation step of generating a second interpolation path from the second auxiliary point to the second teaching point, in which the change of the differential value differentiated by the parameter to the predetermined rank is continuous, by the second interpolation method And the calculation unit is a function of the parameter, the change of the differentiated value differentiated by the parameter to the predetermined rank being continuous, from the first halfway point on the first interpolation path, the second Generate a spliced path towards the second waypoint on the interpolated path Connecting step, the operation unit, a first local path between the first teaching point and the first halfway point in the first interpolation path, the second halfway point in the second interpolation path, and the second intermediate point The optimization calculation which optimizes the operation time of the robot to meet a predetermined physical constraint with respect to a path where a second local path to a second teaching point and a second local path with the second path are connected. And an optimization calculation step of obtaining the trajectory of the robot, and in the connection step, the operation unit is configured to calculate the first interpolation point from the first halfway point to the first auxiliary point. Applying a first weighting coefficient sequentially transitioning from 1 to 0 sequentially from a first interpolation point closer to one teaching point, and for each second interpolation point from the second auxiliary point to the second halfway point, From the first to the first in order from the second interpolation point closer to the second auxiliary point A second weighting coefficient that sequentially transitions from 0 to 1 so as to be a value obtained by subtracting the weighting coefficient, and a point obtained by multiplying the first interpolation point by the first weighting coefficient, and the second interpolation point to the second The connection path is generated by adding points obtained by multiplying two weighting factors to generate the connection path, and in the connection step, the operation unit is a function of the parameter, and the intermediate to the predetermined rank The first weighting coefficient is determined using a first weighting function in which the change in derivative value due to the variable is continuous, and the second weighting function using a second change in derivative value due to the parameter is continuous up to the predetermined rank And calculating the second weighting factor .
Further, according to the present invention, there is provided a trajectory generation method in which an operation unit generates a trajectory of a multijoint robot, wherein the operation unit is a function of a parameter and the derivative is differentiated by the parameter to a predetermined rank. A first interpolation path generation step of generating a first interpolation path from the first teaching point to the first auxiliary point where the change in value is continuous by the first interpolation method; and the operation unit is a function of the parameter A second interpolation route for generating a second interpolation route from the second auxiliary point to the second teaching point, in which the change of the differentiated value differentiated by the parameter to the predetermined rank is continuous, by the second interpolation method A generation step, and the calculation unit is a function of the parameter, the change of the differentiated value differentiated by the parameter to the predetermined rank being continuous from a first halfway point on the first interpolation path The connection route toward the second halfway point on the second interpolation route is Connecting step, the operation unit generates a first local path between the first teaching point and the first waypoint in the first interpolation path, and the second waypoint in the second interpolation path And the second local path between the second teaching point and the connection path by the optimization calculation which optimizes the operation time of the robot so as to keep a predetermined physical constraint with respect to the path connected by the connection path. And an optimization calculation step of determining the trajectory of the robot, wherein the first interpolation method and the second interpolation method respectively generate an interpolation path in a task space and a method of generating an interpolation path in a joint space In the connection step, the operation unit unifies the first interpolation path and the second interpolation path into paths in any one of the task space and the joint space, Said line And performing the generation of stitching combined path in the space.

本発明によれば、媒介変数に関して滑らかな(所定の階数まで微分した微分値の変化が連続である)ロボットの経路を生成しているので、2つの補間経路を繋げ合せた経路を辿るロボットが停止することのない、物理的制約を守った軌道を生成することができる。   According to the present invention, since a robot path that is smooth with respect to a parameter (a change in differential value differentiated to a predetermined rank is continuous) is generated, a robot that traces a path combining two interpolation paths is It is possible to generate trajectories that do not stop and follow physical constraints.

本発明の第1実施形態に係るロボット装置の概略構成を示す説明図である。It is an explanatory view showing a schematic structure of a robot apparatus concerning a 1st embodiment of the present invention. 本発明の第1実施形態に係るロボット装置のロボットを示す模式図である。It is a schematic diagram which shows the robot of the robot apparatus which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係る軌道生成装置の構成を示すブロック図である。It is a block diagram showing composition of a trajectory generating device concerning a 1st embodiment of the present invention. 本発明の第1実施形態における重み関数を示すグラフである。It is a graph which shows the weighting function in 1st Embodiment of this invention. 本発明の第1実施形態におけるタスク空間でのロボットの経路を示す説明図である。It is explanatory drawing which shows the path | route of the robot in the task space in 1st Embodiment of this invention. 本発明の第1実施形態における関節空間でのロボットの経路を示す説明図である。It is an explanatory view showing a course of a robot in joint space in a 1st embodiment of the present invention. 本発明の第1実施形態に係る軌道生成方法の主要なステップを示すフローチャートである。It is a flowchart which shows the main steps of the track | orbit production | generation method which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係る軌道生成方法の経路生成処理を示すフローチャートである。It is a flowchart which shows the path | route production | generation process of the track | orbit production | generation method which concerns on 1st Embodiment of this invention. 本発明の第2実施形態におけるタスク空間でのロボットの経路を示す説明図である。It is an explanatory view showing a course of a robot in task space in a 2nd embodiment of the present invention. 本発明の第2実施形態における関節空間でのロボットの経路を示す説明図である。It is an explanatory view showing a course of a robot in joint space in a 2nd embodiment of the present invention. 本発明の第2実施形態に係る軌道生成方法の経路生成処理を示すフローチャートである。It is a flowchart which shows the path | route production | generation process of the track | orbit production | generation method which concerns on 2nd Embodiment of this invention. 本発明の第3実施形態におけるタスク空間でのロボットの経路を示す説明図である。It is explanatory drawing which shows the path | route of the robot in the task space in 3rd Embodiment of this invention. 本発明の第3実施形態における関節空間でのロボットの経路を示す説明図である。It is explanatory drawing which shows the path | route of the robot in the joint space in 3rd Embodiment of this invention. 本発明の第3実施形態に係る軌道生成方法の経路生成処理を示すフローチャートである。It is a flowchart which shows the path | route production | generation process of the track | orbit production | generation method which concerns on 3rd Embodiment of this invention. 本発明の第4実施形態におけるタスク空間でのロボットの経路を示す説明図である。It is explanatory drawing which shows the path | route of the robot in the task space in 4th Embodiment of this invention. 本発明の第4実施形態における関節空間でのロボットの経路を示す説明図である。It is explanatory drawing which shows the path | route of the robot in the joint space in 4th Embodiment of this invention. 本発明の第4実施形態に係る軌道生成方法の経路生成処理を示すフローチャートである。It is a flowchart which shows the path | route production | generation process of the track | orbit production | generation method which concerns on 4th Embodiment of this invention.

以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

[第1実施形態]
図1は、本発明の第1実施形態に係るロボット装置の概略構成を示す説明図である。ロボット装置500は、多関節(2関節以上)のロボット200と、ロボット200の軌道を生成する軌道生成装置100と、生成された軌道に基づきロボット200の動作を制御するロボットコントローラ300と、を備えている。また、ロボット装置500は、作業者(ユーザ)の操作により軌道生成装置100にデータ入力等を行う操作部410と、軌道生成装置100から表示データを入力して画像表示を行う表示部420とを有する操作装置400を備えている。
First Embodiment
FIG. 1 is an explanatory view showing a schematic configuration of a robot apparatus according to a first embodiment of the present invention. The robot apparatus 500 includes a multi-joint (two or more joints) robot 200, a trajectory generation apparatus 100 for generating a trajectory of the robot 200, and a robot controller 300 for controlling the operation of the robot 200 based on the generated trajectory. ing. In addition, the robot apparatus 500 includes an operation unit 410 that performs data input and the like to the trajectory generation apparatus 100 by an operation of a worker (user), and a display unit 420 that inputs display data from the trajectory generation apparatus 100 and performs image display. The operation device 400 is provided.

軌道生成装置100は、演算部であるCPU(Central Processing Unit)101と、種々のデータを格納する記憶部106と、を備えたコンピュータで構成されている。操作装置400の表示部420は、ディスプレイであり、ロボットアーム210や作業空間を3D(3次元)グラフィックス表示して、生成された動作軌道を作業者が視認できるよう構成されている。なお、操作部410と表示部420とが1つの操作装置400に組み込まれている場合について説明するが、操作部410と表示部420とが独立した装置で構成されていてもよい。また、操作部410と表示部420とが別々に構成されている場合について説明するが、操作部410と表示部420とがタッチパネルディスプレイ等の操作及び表示が可能な操作表示部で構成されていてもよい。   The trajectory generation device 100 is configured by a computer including a central processing unit (CPU) 101 which is an operation unit, and a storage unit 106 which stores various data. The display unit 420 of the operation device 400 is a display, and is configured to display the robot arm 210 and the work space in 3D (three-dimensional) graphics so that the operator can visually recognize the generated motion trajectory. Although the case where the operation unit 410 and the display unit 420 are incorporated in one operation device 400 will be described, the operation unit 410 and the display unit 420 may be configured as independent devices. In addition, although the case where the operation unit 410 and the display unit 420 are separately configured will be described, the operation unit 410 and the display unit 420 are configured by an operation display unit capable of operation and display such as a touch panel display. It is also good.

CPU101は、後述するプログラムを読み出して実行することにより、キネマティクス計算部31、経路生成部32、経路繋ぎ合せ部33、教示点計算部34及び最適速度計算部35として機能する。   The CPU 101 functions as a kinematics calculation unit 31, a path generation unit 32, a path connection unit 33, a teaching point calculation unit 34, and an optimum speed calculation unit 35 by reading and executing a program described later.

図2は、本発明の第1実施形態に係るロボット装置のロボットを示す模式図である。ロボット200は、多関節(2関節以上、第1実施形態では2関節)のロボットアーム210と、ロボットアーム210の先端に取り付けられたエンドエフェクタ、例えばロボットハンド220とを有している。   FIG. 2 is a schematic view showing a robot of the robot apparatus according to the first embodiment of the present invention. The robot 200 has a multijoint (two or more joints, two joints in the first embodiment) robot arm 210 and an end effector such as a robot hand 220 attached to the tip of the robot arm 210.

ロボットアーム210は、例えば2つの関節(軸)J,Jとリンク201,202で構成される2自由度のロボットアームである。関節には回転関節や直動関節の他、球体関節などさまざまな種類があるが、第1実施形態では、関節J,Jは、回転(旋回)関節である。関節の動作はモータ等の動力源で能動的に動作する場合と、動力源を持たずに受動的に動作する場合があるが、第1実施形態では、関節J,Jは、動力源を有する。ロボットアームは、各関節間がリンクにより結びつけられ、関節とリンクが交互に直列されたシリアルリンク型と、関節とリンクの組合せが並列となったパラレルリンク型などがあるが、第1実施形態では、回転関節を有するシリアルリンク型とする。つまり、ロボットアーム210は、ロボットアーム自体が動作するような動作体として広く観念されるものであればよく、特に限定するものではない。例えば、6軸多関節ロボットアームや直動型のロボットアームを用いてもよい。 The robot arm 210 is, for example, a robot arm of two degrees of freedom configured by two joints (axes) J 1 and J 2 and links 201 and 202. There are various types of joints, such as a spherical joint as well as a rotary joint and a linear joint, but in the first embodiment, the joints J 1 and J 2 are rotation (turning) joints. The motion of the joints may be active with a power source such as a motor or passive with no power source, but in the first embodiment, the joints J 1 and J 2 are power sources Have. Robot arms are classified into serial link types in which joints and links are alternately connected in series, and parallel link types in which combinations of joints and links are parallel. , Serial link type with revolute joints. That is, the robot arm 210 is not particularly limited as long as it can be widely regarded as an operating body in which the robot arm itself operates. For example, a six-axis articulated robot arm or a direct acting robot arm may be used.

ロボットアーム210(ロボット200)の自由度を表すパラメータを関節角度として、ロボットアーム210の2軸J,Jの関節角度をそれぞれθ,θとする。ロボットアーム210のコンフィグレーションは(θ,θ)で表され、関節空間上では、1つの点とみなすことができる。このように、ロボットアーム210の自由度を表すパラメータ(例えば、関節角度や伸縮長さ)を座標軸の値とした場合、ロボットアーム210のコンフィグレーションは関節空間上の点として表現することができる。つまり、関節空間は、ロボットアーム210(ロボット200)の関節角度を座標軸とする空間である。 The joint angle of the two axes J 1 and J 2 of the robot arm 210 is θ 1 and θ 2 , respectively, with the parameter representing the degree of freedom of the robot arm 210 (robot 200) as the joint angle. The configuration of the robot arm 210 is represented by (θ 1 , θ 2 ), and can be regarded as one point on the joint space. As described above, when a parameter (for example, joint angle or expansion / contraction length) representing the degree of freedom of the robot arm 210 is a value of the coordinate axis, the configuration of the robot arm 210 can be expressed as a point on the joint space. That is, the joint space is a space having the joint angle of the robot arm 210 (robot 200) as a coordinate axis.

また、ロボット200の先端、即ちロボットハンド220には、ツールセンターポイント(TCP)が設定されている。TCPは、位置を表す3つのパラメータ(x,y,z)と、姿勢(回転)を表す3つのパラメータ(α,β,γ)、即ち6つのパラメータ(x,y,z,α,β,γ)で表され、タスク空間上では、1つの点としてみなすことができる。つまり、タスク空間は、これら6つの座標軸で規定された空間である。   In addition, a tool center point (TCP) is set at the tip of the robot 200, that is, the robot hand 220. TCP has three parameters (x, y, z) representing position and three parameters (α, β, γ) representing posture (rotation), ie, six parameters (x, y, z, α, β, It can be represented as γ) and can be regarded as one point on the task space. That is, the task space is a space defined by these six coordinate axes.

図3は、本発明の第1実施形態に係る軌道生成装置100の構成を示すブロック図である。図3に示すように、コンピュータで構成されている軌道生成装置100は、演算部としてのCPU101を備えている。また軌道生成装置100は、記憶部106として、ROM(Read Only Memory)102、RAM(Random Access Memory)103及びHDD(Hard Disk Drive)104を備えている。また、軌道生成装置100は、記録ディスクドライブ105及び各種のインタフェース111〜113を備えている。   FIG. 3 is a block diagram showing the configuration of a trajectory generation device 100 according to the first embodiment of the present invention. As shown in FIG. 3, a trajectory generation device 100 configured by a computer includes a CPU 101 as an arithmetic unit. The trajectory generation apparatus 100 further includes a read only memory (ROM) 102, a random access memory (RAM) 103, and a hard disk drive (HDD) 104 as the storage unit 106. Further, the trajectory generating apparatus 100 is provided with a recording disk drive 105 and various interfaces 111 to 113.

CPU101には、ROM102、RAM103、HDD104、記録ディスクドライブ105及びインタフェース111〜113が、バス120を介して接続されている。   The ROM 102, the RAM 103, the HDD 104, the recording disk drive 105, and the interfaces 111 to 113 are connected to the CPU 101 via the bus 120.

ROM102には、BIOS等の起動プログラムが格納されている。RAM103は、CPU101の演算処理結果等、各種データを一時的に記憶する。HDD104には、プログラム140が格納(記録)されている。そして、CPU101は、プログラム140を読み出して実行することにより、後述する軌道生成方法の各工程を実行する。つまり、CPU101は、プログラム140を読み出して実行することにより、図1に示す各部31〜35として機能する。記録ディスクドライブ105は、記録ディスク141に記録された各種データやプログラム等を読み出すことができる。   The ROM 102 stores a boot program such as a BIOS. The RAM 103 temporarily stores various data such as the calculation processing result of the CPU 101. A program 140 is stored (recorded) in the HDD 104. Then, the CPU 101 reads out and executes the program 140 to execute each process of a trajectory generation method described later. That is, the CPU 101 functions as the units 31 to 35 shown in FIG. 1 by reading and executing the program 140. The recording disk drive 105 can read various data and programs recorded on the recording disk 141.

インタフェース111には、上述した操作装置400が接続されている。インタフェース112には、USBメモリ等の書き換え可能な不揮発性メモリ、或いは外付けHDD等の外部記憶装置600が接続されている。インタフェース113には、上述したロボットコントローラ300が接続されている。   The operating device 400 described above is connected to the interface 111. The interface 112 is connected to a rewritable non-volatile memory such as a USB memory or an external storage device 600 such as an external HDD. The robot controller 300 described above is connected to the interface 113.

図1において、キネマティクス計算部31は、ロボット200(ロボットアーム210)の各関節角度情報から、ロボット200のTCPの位置及び回転(姿勢)を求める順キネマティクスを計算する。また、キネマティクス計算部31は、ロボット200のTCPの位置及び回転(姿勢)から、ロボット200(ロボットアーム210)の各関節角度を計算する逆キネマティクスを計算する。   In FIG. 1, the kinematics calculation unit 31 calculates forward kinematics for obtaining the position and rotation (posture) of the TCP of the robot 200 from the joint angle information of the robot 200 (robot arm 210). Further, the kinematics calculation unit 31 calculates inverse kinematics for calculating each joint angle of the robot 200 (robot arm 210) from the position and rotation (posture) of the TCP of the robot 200.

キネマティクス計算部31は、例えば、教示点として、コンフィグレーション(θ,θ)を与えられ、それを基準として直線補間を行う場合、コンフィグレーションを順キネマティクスによりTCPの位置及び回転にする。逆に、キネマティクス計算部31は、教示点として、TCPの位置及び回転を与えられ、関節補間をする場合は、TCPの位置及び回転を逆キネマティクスによりコンフィグレーションにする。 For example, when performing linear interpolation on the basis of configurations (θ 1 , θ 2 ) given as teaching points, the kinematics calculation unit 31 sets the configuration to the position and rotation of TCP by forward kinematics. . Conversely, the kinematics calculation unit 31 is given the position and rotation of the TCP as the teaching point, and in the case of joint interpolation, the position and rotation of the TCP are configured by inverse kinematics.

経路生成部32は、教示点間を補間するロボット200の経路(補間経路)を生成する。ロボット200の経路とは、関節空間におけるロボット200のコンフィグレーションの軌跡、もしくはタスク空間におけるロボット200のTCPの軌跡である。換言すれば、ロボット200の経路とは、関節空間又はタスク空間の点(ポーズ)の順序集合である。ロボット200の軌道とは、時間をパラメータとしてポーズ(経路)を表したものであり、第1実施形態では、時刻毎のロボット200の関節の関節指令値(角度指令値)の集合である。ロボット200の関節は複数あるため、各関節で関節指令値の同期がとられる。   The path generation unit 32 generates a path (interpolated path) of the robot 200 that interpolates between the teaching points. The path of the robot 200 is the locus of the configuration of the robot 200 in the joint space or the locus of the TCP of the robot 200 in the task space. In other words, the path of the robot 200 is an ordered set of points (poses) in the joint space or task space. The trajectory of the robot 200 represents a pose (path) using time as a parameter. In the first embodiment, it is a set of joint command values (angle command values) of joints of the robot 200 at each time. Since there are a plurality of joints of the robot 200, the joint command values are synchronized at each joint.

教示点間を補間する補間方法としては、Spline補間、B−Spline補間、ベジェ曲線、直線補間、円弧補間、関節補間などがあり、媒介変数sの値により、ロボット200の経路上の位置を示す。つまり、媒介変数sの値にロボット200の位置(補間点)が対応付けられて、これら点の集合で一連の経路が形成される。これら補間方法により、媒介変数sをパラメータとした補間関数が、ロボット200の経路(補間経路)として求められる。   Interpolation methods to interpolate between teaching points include Spline interpolation, B-Spline interpolation, Bezier curve, linear interpolation, circular interpolation, joint interpolation and the like, and the position of robot 200 is indicated by the value of parameter s. . That is, the position (interpolation point) of the robot 200 is associated with the value of the parameter s, and a series of paths is formed by a set of these points. By these interpolation methods, an interpolation function using the parameter s as a parameter is obtained as a path (interpolation path) of the robot 200.

関節加加速度の制約を考慮に入れる場合、媒介変数sに関して経路が3階まで微分した微分値の変化が連続である必要がある。例えば、3次のB−Spline曲線の場合、媒介変数sに対しC級(3階まで微分した値が連続)になる。 When taking into account the constraint of joint acceleration, it is necessary that the change of the derivative value obtained by differentiating the path up to the third order with respect to the parameter s be continuous. For example, in the case of a cubic B-Spline curve, the C 3 class (the value differentiated to the third order becomes continuous) for the parameter s.

最適速度計算部35は、算出されたロボット200の経路に対し、所定の物理的制約を守りつつ、ロボット200の動作時間を最短にするという最適化問題を解き、ロボット200の最適速度を計算する。所定の物理的制約とは、第1実施形態では、ロボット200の関節トルクの制約、関節角速度の制約、関節角加速度の制約、関節角加加速度の制約、TCP速度の制約及びTCP加速度の制約である。ロボット200のTCP速度の制約とは、ロボット200の先端の速度の制約である。ロボット200のTCP加速度の制約とは、ロボット200の先端の加速度の制約である。   The optimal speed calculation unit 35 solves the optimization problem of minimizing the operation time of the robot 200 while keeping predetermined physical restrictions on the calculated path of the robot 200, and calculates the optimal speed of the robot 200. . In the first embodiment, the predetermined physical constraints are the constraint of joint torque of the robot 200, the constraint of joint angular velocity, the constraint of joint angular acceleration, the constraint of joint angular acceleration, the constraint of TCP velocity and the constraint of TCP acceleration. is there. The restriction of the TCP speed of the robot 200 is the restriction of the speed of the tip of the robot 200. The restriction of the TCP acceleration of the robot 200 is the restriction of the acceleration of the tip of the robot 200.

第1実施形態では、所定の物理的制約には、これら全ての制約が含まれる場合について説明するが、これに限定するものではない。所定の物理的制約には、少なくとも、関節角速度の制約及びTCP速度の制約のうち少なくとも1つの制約が含まれている。これに加え、所定の物理的制約には、関節トルクの制約、関節角加速度の制約、関節角加加速度の制約及びTCP加速度の制約のうち少なくとも1つの制約が含まれていればよい。それぞれの制約値の中で、最も高い階数以上の階数を持った経路を生成すれば、計算上の制約値を計算するモデルも連続となり、正確に制約値を計算することができる。   In the first embodiment, although a case where all of these constraints are included in the predetermined physical constraints will be described, it is not limited thereto. The predetermined physical constraints include at least at least one constraint of joint angular velocity and TCP velocity. In addition to this, the predetermined physical constraints may include at least one constraint of joint torque constraint, joint angular acceleration constraint, joint angular jerk constraint and TCP acceleration constraint. If a path having a rank higher than or equal to the highest rank among the constraint values is generated, the model for calculating the computational constraint value becomes continuous, and the constraint values can be accurately calculated.

関節トルクの制約、関節角加速度の制約、関節角加加速度の制約及びTCP加速度の制約を条件にロボット200の軌道を求める際には、媒介変数sで経路を1〜3階微分した微分値を用いる。このため、経路は媒介変数sに対し少なくともC級(3階微分した微分値の変化が連続)である必要がある例について説明する。つまり、所定の物理的制約には、経路を媒介変数sで1〜3階微分した微分値を用いて評価する制約が含まれており、第1実施形態では、関節トルクの制約、関節角加速度の制約、関節角加加速度の制約及びTCP加速度の制約が含まれている。 When obtaining the trajectory of the robot 200 on the condition of joint torque restriction, joint angular acceleration restriction, joint angular jerk restriction and TCP acceleration restriction, the derivative value obtained by differentiating the path by the first to third orders with the parameter s Use. Therefore, the path describes an example in which at least C 3 grade (change of third derivative was differentiated value continuous) needs to be to parametric s. That is, the predetermined physical constraint includes a constraint that is evaluated using a derivative value obtained by differentiating the path by the first to third orders with the parameter s, and in the first embodiment, the constraint of joint torque, joint angular acceleration Constraints, joint angle jerk constraints, and TCP acceleration constraints.

最適化問題の解き方としては、公知の方法を用いればよく、例えば、パラメータを置き換えて、問題を凸問題化し、ログバリア法とニュートン法を用いて大域的収束解に高速に収束させるといった方法を用いればよい。   As a method of solving the optimization problem, a known method may be used, for example, a method of substituting parameters to make the problem convex and using a log barrier method and a Newton method to rapidly converge on a global convergence solution is used. Just do it.

経路繋ぎ合せ部33は、2つの補間経路それぞれに繋ぎ合せ区間(重ね合せ区間)を設け、2つの補間経路の繋ぎ合せ区間上の点に重み係数を乗じて足し合せ、2つの補間経路を所定の滑らかさ(ここではC級の滑らかさ)で繋ぎ合せた経路を生成する。 The path connection unit 33 provides connection sections (overlap sections) for each of the two interpolation paths, and multiplies points of the connection sections of the two interpolation paths by the weighting factor and adds up the two interpolation paths. smoothness (in this case C 3 grade smoothness) generating a path pieced together with.

関節補間及び直線補間でそれぞれ生成された、媒介変数sに関してC級の2つの補間経路を、経路繋ぎ合せ部33が、媒介変数sに関してC級の滑らかさを保ち繋ぎ合せる例を以下に説明する。 An example of combining two interpolation paths of C 3 class with respect to the parameter s, which are respectively generated by joint interpolation and linear interpolation, while maintaining the smoothness of the C 3 class with respect to the parameter s, is described below. explain.

媒介変数sに関して滑らかに、関節空間で補間した補間経路とタスク空間で補間した補間経路とを繋ぐためには、各補間経路に繋ぎ合せ区間を設け、徐々に関節空間補間経路からタスク空間補間経路に移り変える必要がある。徐々に移り変える際に、繋ぎ合せの重みを徐々に移していくことが、滑らかに繋ぐ上で必須となる。   In order to connect the interpolation path interpolated in the joint space smoothly and the interpolation path interpolated in the joint space with respect to the parameter s, a connection section is provided in each interpolation path, and the joint space interpolation path is gradually added to the task space interpolation path Need to change to When gradually changing, gradually changing the weight of the connection is essential for connecting smoothly.

重み関数の条件として、繋ぎ合せの区間の開始点と終了点で、媒介変数sでの1〜3階の微分値が0になり(0とみなせるものも含む)、かつ媒介変数sに関して少なくともC級での滑らかさが必要になる。そこで、C級であるシグモイド関数を応用して重みづけをすることを考える。 As a condition of the weighting function, the first to third derivatives in the parameter s become 0 (including those that can be regarded as 0) at the start point and the end point of the interval of connection, and at least C of the parameter s Smoothness in grade 3 is required. Therefore, considering that the weighting by applying a sigmoid function which is a C class.

シグモイド関数は、   The sigmoid function is

Figure 0006501470
である。しかし、このままでは、定義域が−∞≦x≦∞となり扱いにくい。そこで、シグモイド関数とtan(x)との合成関数を以下のように考える。
Figure 0006501470
It is. However, as it is, the domain of definition is −− ≦ x ≦ ∞, which is difficult to handle. Therefore, the composite function of the sigmoid function and tan (x) is considered as follows.

Figure 0006501470
Figure 0006501470

更に、   Furthermore,

Figure 0006501470
とする。但し、aは0より大きい実数である。
Figure 0006501470
I assume. However, a is a real number greater than 0.

この重み関数は、aを十分大きくとれば、定義域の開始点と終了点で、1〜3階微分値がほぼ0とみなせるため、異なる補間方法で作成した補間経路を媒介変数sに関してほぼC級を保ち滑らかに繋ぐ重みづけに利用できる。 In this weighting function, assuming that a is sufficiently large, the first to third derivative values can be regarded as almost zero at the start point and the end point of the domain, so interpolation paths created by different interpolation methods are almost C It can be used for weighting that keeps grade 3 and connects smoothly.

図4は、a=5の時の第1重み関数fsig1(x)、第2重み関数fsig2(x)のグラフであり、図4(a)は第1重み関数fsig1(x)のグラフ、図4(b)は第2重み関数fsig2(x)のグラフである。 FIG. 4 is a graph of the first weighting function f sig1 (x) and the second weighting function f sig2 (x) when a = 5, and FIG. 4 (a) is a graph of the first weighting function f sig1 (x) FIG. 4B is a graph of the second weighting function f sig2 (x).

なお、第1重み関数はxの増加に応じて0から1に順次変化する関数であり、第2重み関数はxの増加に応じて1から0に順次変化する関数であって、同じx値のときの第1重み関数の第1重み係数と、第2重み関数の第2重み係数との合計が1であればよい。このような関数であれば第1重み関数及び第2重み関数は、上記の関数に限定されるものではなく、多項式やその他の関数を用いてもよい。その際、第1重み関数は、媒介変数sの関数であって、所定の階数(例えば3階)まで媒介変数sによる微分で連続な関数であってもよい。また、第2重み関数は、媒介変数sの関数であって、所定の階数(例えば3階)まで媒介変数sによる微分で連続な関数であってもよい。   The first weighting function is a function that changes sequentially from 0 to 1 according to the increase of x, and the second weighting function is a function that changes sequentially from 1 to 0 according to the increase of x, and the same x value The sum of the first weighting factor of the first weighting function and the second weighting factor of the second weighting function may be 1. If it is such a function, the first weight function and the second weight function are not limited to the above functions, and polynomials or other functions may be used. In this case, the first weight function may be a function of the parameter s, and may be a continuous function differentiated by the parameter s up to a predetermined rank (for example, third rank). Also, the second weighting function may be a function of the parameter s, and may be a continuous function differentiated by the parameter s up to a predetermined rank (for example, third rank).

図5は、第1実施形態におけるタスク空間でのロボットの経路を示す説明図であり、図6は、第1実施形態における関節空間でのロボットの経路を示す説明図である。   FIG. 5 is an explanatory view showing the path of the robot in the task space in the first embodiment, and FIG. 6 is an explanatory view showing the path of the robot in the joint space in the first embodiment.

但し、図5中のP21,P22は、直線補間経路を生成するための教示点であり、図6中のQ11,Q12は、関節補間経路を生成するための教示点である。また、図6中のQ11,Q12のタスク空間上のTCPの位置及び回転をそれぞれ図5中のP11,P12とする。TCPが図5中のP21,P22の位置及び回転にあるときのロボット200(ロボットアーム210)のコンフィグレーションをそれぞれ図6中のQ21,Q22とする。 However, P 21 and P 22 in FIG. 5 are teaching points for generating a linear interpolation path, and Q 11 and Q 12 in FIG. 6 are teaching points for generating a joint interpolation path. Further, the position and rotation of the TCP on the task space of Q 11 and Q 12 in FIG. 6 are respectively P 11 and P 12 in FIG. The configuration of the robot 200 (robot arm 210) when the TCP is in the position and rotation of P 21 and P 22 in FIG. 5 is denoted by Q 21 and Q 22 in FIG. 6, respectively.

また、関節空間上の教示点Q11,Q12により関節補間をした、関節補間経路上のロボット200のコンフィグレーションを図6中のq(s)(0≦s≦1)とする。タスク空間上の教示点P21,P22により直線補間をした、直線補間経路上にTCPを位置付けるロボット200のコンフィグレーションを図6中のq(s)(0≦s≦1)とする。但し、s、sは、それぞれ関節補間経路、直線補間経路の媒介変数とする。 Also, let q 1 (s 1 ) (0 ≦ s 1 ≦ 1) in FIG. 6 be the configuration of the robot 200 on the joint interpolation path that is subjected to joint interpolation by the teaching points Q 11 and Q 12 on the joint space. . The configuration of the robot 200 for positioning the TCP on the linear interpolation path linearly interpolated by the teaching points P 21 and P 22 in the task space is q 2 (s 2 ) (0 ≦ s 2 ≦ 1) in FIG. Do. However, s 1 and s 2 are parameters of the joint interpolation path and the linear interpolation path, respectively.

また、ロボット200のコンフィグレーションがq(s)の時のTCPの位置及び回転を表すベクトルを図5中のp(s)とする。ロボット200のコンフィグレーションがq(s)の時のTCPの位置及び回転を表すベクトルを図5中のp(s)とする。 Further, a vector representing the position and rotation of the TCP when the configuration of the robot 200 is q 1 (s 1 ) is p 1 (s 1 ) in FIG. A vector representing the position and rotation of TCP when the configuration of the robot 200 is q 2 (s 2 ) is p 2 (s 2 ) in FIG.

第1教示点である教示点P11(又は教示点Q11)及び第2教示点である教示点P22(又は教示点Q22)は、ロボット200を通過させる点である。これら2つの教示点P11,P22(又は教示点Q11,Q22)は、ユーザが操作部410を操作して直接、又はユーザが操作部410を操作して記憶部106に記憶させて、CPU101に指定(設定)する。 A teaching point P 11 (or teaching point Q 11 ) which is a first teaching point and a teaching point P 22 (or teaching point Q 22 ) which is a second teaching point are points which pass the robot 200. These two teaching points P 11 and P 22 (or teaching points Q 11 and Q 22 ) are stored directly in the storage unit 106 by the user operating the operation unit 410 or by the user operating the operation unit 410. Designate (set) the CPU 101.

一方、第1補助点である教示点P12(又は教示点Q12)及び第2補助点である教示点P21(又は教示点Q21)は、ロボット200が通過しない点であって、補助的な点である。第1実施形態では、教示点P12(又は教示点Q12)は、予め設定される点であり、教示点P21(又は教示点Q21)は、演算により求める点である。 On the other hand, the teaching point P 12 (or teaching point Q 12 ) which is the first auxiliary point and the teaching point P 21 (or teaching point Q 21 ) which is the second auxiliary point are points at which the robot 200 does not pass It is an important point. In the first embodiment, the teaching point P 12 (or teaching point Q 12 ) is a point set in advance, and the teaching point P 21 (or teaching point Q 21 ) is a point obtained by calculation.

今、関節補間により求めた第1補間経路である関節補間経路を、直線補間により求めた第2補間経路である直線補間経路に繋ぎ合せることを考える。そこで、関節補間経路(第1補間経路)上のs=s1sを繋ぎ合せ区間の開始点とする。このs=s1sのとき点は、関節補間経路上の途中点(第1途中点)である。また、関節補間経路上のs=s1eを繋ぎ合せ区間の終了点とする。 Now, it is assumed that a joint interpolation path which is a first interpolation path obtained by joint interpolation is connected to a linear interpolation path which is a second interpolation path obtained by linear interpolation. Therefore, let s 1 = s 1s on the joint interpolation path (first interpolation path) be the start point of the joining section. When s 1 = s 1 s, the point is a halfway point (first halfway point) on the joint interpolation path. Also, let s 1 = s 1 e on the joint interpolation path be the end point of the joining section.

また、直線補間経路(第2補間経路)上のs=s2sを繋ぎ合せ区間の開始点とし、直線補間経路上のs=s2eを繋ぎ合せ区間の終了点とする。s=s2eのとき点は、直線補間経路上の途中点(第2途中点)である。今簡単のために各定数を、s1e=1、s2s=0、s2e−s2s=s1e−s1sつまりs2e=1−s1sとする。 Also, let s 2 = s 2s on the linear interpolation path (second interpolation path) be the start point of the joining section, and let s 2 = s 2e on the linear interpolation path be the end point of the joining section. When s 2 = s 2 e, the point is a halfway point (second halfway point) on the linear interpolation path. The constants for simplicity now, and s 1e = 1, s 2s = 0, s 2e -s 2s = s 1e -s 1s clogging s 2e = 1s 1s.

ユーザは、各補間経路の繋ぎ合せ区間とそうでない区間の境目となる第1途中点及び第2途中点である教示点P1a,P2a(又は教示点Q1a,Q2a)のうち少なくとも1つの途中点のパラメータ値を設定(指定)する。教示点計算部34は、その点を基に、経路補間に用いる教示点と繋ぎ合せ区間を逆算する。 The user selects at least one of teaching points P 1a and P 2a (or teaching points Q 1a and Q 2a ) which are first and second waypoints which are boundaries between joining sections of the interpolation paths and sections other than the interpolation paths. Set (specify) parameter values of two halfway points. Based on the point, the teaching point calculation unit 34 backcalculates the teaching point and the connection interval used for path interpolation.

第1実施形態の繋ぎ合せ区間は、関節補間と直線補間とが繋ぎ合さった繋ぎ合せ経路となるため、直線にはならず、ユーザの意図した動きにならない可能性がある。   The joint section in the first embodiment is a joint path in which joint interpolation and linear interpolation are jointed, and therefore it may not be a straight line and may not be a movement intended by the user.

そこで、ユーザが、直線補間経路のここからは直進性を確保したいという点を、直線補間経路上から指定(設定)する。その点から、教示点計算部34により、経路補間に用いる適切な教示点と、繋ぎ合せ区間を算出する。   Therefore, the user designates (sets) a point on the linear interpolation path from which the user desires to secure straightness from here on the linear interpolation path. From that point, the teaching point calculation unit 34 calculates an appropriate teaching point used for path interpolation and a joining section.

第1実施形態では、直進性を確保できる図5中の教示点P2aをユーザが指示(設定)し、そこから逆算して、教示点P21と、定数s2eを教示点計算部34により逆算を行う。具体的には、直線補間が媒介変数s=s2eの時のTCPの位置及び回転p(s)が教示点P2aと重なるように、教示点P21と、定数s2eを逆算する。 In the first embodiment, the user designates (sets) the teaching point P 2 a in FIG. 5 which can ensure the straightness, and performs back calculation from that point to calculate the teaching point P 21 and the constant s 2 e by the teaching point calculation unit 34. Invert. Specifically, the teaching point P 21 and the constant s 2 e are back-calculated so that the position and rotation p 1 (s) of the TCP when the linear interpolation is the parameter s = s 2 e overlap the teaching point P 2 a.

なお、定数s2eが求まれば、s2e=1−s1sであるので、定数s1sが求まる。 If the constant s 2 e is obtained, s 2 e = 1-s 1 s, so the constant s 1 s can be obtained.

第1実施形態では、直線補間経路の教示点及び繋ぎ合せ区間の調整のみを説明したが、それに限定するものではない。関節補間部分も、ユーザが同様に繋ぎ合せ区間とそうでない区間の境目である教示点P1a(教示点Q1a)を指定(設定)して、関節補間の特性が欲しい区間をユーザが指示できるようにしても良い。 In the first embodiment, only the adjustment of the teaching point and the joining section of the linear interpolation path has been described, but it is not limited thereto. Similarly, in the joint interpolation portion, the user can designate (set) the teaching point P 1a (teaching point Q 1a ) which is the boundary between the joining section and the section that is not so, and the user can designate the section for which the characteristic of joint interpolation is desired. You may do so.

sは、2つの補間経路を繋ぎ合せたロボット200の経路の媒介変数である。この媒介変数sの値にロボット200の経路上の点が対応している。つまり、媒介変数sの値を決めると、その値に対応するロボット200の経路上の点が決まる。第1実施形態では、媒介変数sは、0から1+sまでの範囲の値である。s=0からs=1+sまで時刻に応じて媒介変数sの値が増加するように変化させることにより、ロボット200のTCPは、教示点P11から教示点P22まで経路上を移動することとなる。 s is a parameter of the path of the robot 200 in which two interpolation paths are connected. A point on the path of the robot 200 corresponds to the value of the parameter s. That is, when the value of the parameter s is determined, a point on the path of the robot 200 corresponding to the value is determined. In a first embodiment, the parameter s is a value ranging from 0 to 1 + s 1 . By changing the value of the parameter s to increase according to the time from s = 0 to s = 1 + s 1 , the TCP of the robot 200 moves on the path from the teaching point P 11 to the teaching point P 22 It becomes.

0≦s<s1sの局所区間を関節補間区間、s1s≦s<1の区間を繋ぎ合せ区間、1≦s<1+s1sの局所区間を直線補間区間とする。このときの2つの補間経路を繋ぎ合せたときの関節空間上の経路q(s)は以下のようになる。 A local interval of 0 ≦ s <s 1s is a joint interpolation interval, a section of s 1s ≦ s <1 is a joining interval, and a local interval of 1 ≦ s <1 + s 1s is a linear interpolation interval. The path q (s) on the joint space when two interpolation paths at this time are connected is as follows.

Figure 0006501470
Figure 0006501470

ここで、fsig1((s−s1s)/(1−s1s))は第1重み関数、fsig2((s−s1s)/s2e)は第2重み関数である。これら関数のsに数値を代入することで、第1重み係数及び第2重み係数が求まる。 Here, f sig1 ((s−s 1s ) / (1−s 1s )) is a first weighting function, and f sig2 ((s−s 1s ) / s 2e ) is a second weighting function. By substituting numerical values into s of these functions, the first weighting factor and the second weighting factor can be obtained.

媒介変数sに関してC級で滑らかさを保つq(s)を用いれば、連続なq’(s),q’’(s),q’’’(s)を求めることが可能となる。また、q(s)を用いれば、最適速度計算(ロボット200の動作時間を最適にする最適化計算)をした後に、それに基づき、一定時間ごとの関節指令値(つまり軌道)を生成することが可能となる。 By using q (s) which maintains smoothness in C 3 class with respect to the parameter s, it is possible to obtain continuous q ′ (s), q ′ ′ (s), q ′ ′ ′ (s). In addition, using q (s), after performing an optimal velocity calculation (optimization calculation to optimize the operation time of the robot 200), based on it, a joint command value (that is, a trajectory) for each fixed time can be generated It becomes possible.

式(5)に則り、図6における、繋ぎ合せ区間での繋ぎ合せ経路上の点を算出する式は図4のグラフ上の値を用いて以下のように書ける。   According to the equation (5), the equation for calculating the point on the joining route in the joining section in FIG. 6 can be written as follows using the value on the graph of FIG.

Figure 0006501470
Figure 0006501470

ここで、q11,q12,q13,q14,q15は、図6中、第1補間経路である関節補間経路q(s)上の教示点Q1aから教示点Q12までの複数の補間点(第1補間点)である。また、q21,q22,q23,q24,q25は、図6中、第2補間経路である直線補間経路q(s)上の教示点Q21から教示点Q2aまでの複数の補間点(第2補間点)である。 Here, q 11 , q 12 , q 13 , q 14 and q 15 are from teaching point Q 1 a to teaching point Q 12 on the joint interpolation path q 1 (s 1 ) which is the first interpolation path in FIG. Of the plurality of interpolation points (first interpolation points). Further, q 21 , q 22 , q 23 , q 24 and q 25 are the second interpolation path from the teaching point Q 21 on the linear interpolation path q 2 (s 2 ) to the teaching point Q 2 a in FIG. It is a plurality of interpolation points (second interpolation points).

図7は、第1実施形態に係る軌道生成方法の主要なステップを示すフローチャートである。以下、軌道生成装置100のCPU101により行われるロボット200の軌道生成方法の各工程について説明する。   FIG. 7 is a flowchart showing main steps of the trajectory generation method according to the first embodiment. Hereinafter, each process of the trajectory generation method of the robot 200 performed by the CPU 101 of the trajectory generation apparatus 100 will be described.

まず、CPU101は、ロボット200が作業を行う作業空間での、ロボット200のモデル及び制約条件(所定の物理的制約)を記憶部106(例えばHDD104)から読み込む(S101)。   First, the CPU 101 reads from the storage unit 106 (for example, the HDD 104) a model of the robot 200 and constraint conditions (predetermined physical constraints) in a work space in which the robot 200 performs work (S101).

ロボット200のモデルは、ロボット200を構成する部品の設計情報であり、各リンクの慣性モーメント、質量、位置、回転、軸数等である。制約条件は、ロボット200の物理的制約を定義したもので、ロボット200の関節トルクの制約、関節角速度の制約、関節角加速度の制約、関節角加加速度の制約、TCP速度の制約及びTCP加速度の制約である。   The model of the robot 200 is design information of parts constituting the robot 200, and includes the moment of inertia, mass, position, rotation, number of axes, etc. of each link. Constraint conditions define physical constraints of the robot 200, such as constraint of joint torque of the robot 200, constraint of joint angular velocity, constraint of joint angular acceleration, constraint of joint angular acceleration, constraint of TCP velocity, and TCP acceleration. It is a constraint.

次に、CPU101は、ロボット200の教示点及び補間方法を取得する(S102)。例えば、ロボット200の教示点は、TCPの位置及び回転、又は関節角度により決定することができる。教示点と同時に、どういった補間方法で、その教示点まで移動するかの情報を読み込む。   Next, the CPU 101 acquires the teaching point of the robot 200 and the interpolation method (S102). For example, the teaching point of the robot 200 can be determined by the position and rotation of the TCP, or the joint angle. At the same time as the teaching point, information on how to move to the teaching point is read by what interpolation method.

第1実施形態でCPU101が取得する教示点は、第1教示点である教示点P11(又は教示点Q11)、第1補助点である教示点P12(又は教示点Q12)、第2教示点である教示点P22(又は教示点Q22)である。 The teaching points acquired by the CPU 101 in the first embodiment are a teaching point P 11 (or teaching point Q 11 ) which is a first teaching point, a teaching point P 12 (or teaching point Q 12 ) which is a first auxiliary point, a first 2 teaching point P 22 (or teaching point Q 22 ) which is a teaching point.

また、第1実施形態では、ユーザが関節補間と直線補間を指定するので、第1実施形態でCPU101が取得する補間方法は、第1補間方法である関節補間、第2補間方法である直線補間である。これら教示点及び補間方法は、記憶部106(例えばHDD104)に記憶されたロボットプログラムにて指定(設定)されている。   In the first embodiment, since the user designates joint interpolation and linear interpolation, the interpolation method acquired by the CPU 101 in the first embodiment is joint interpolation as the first interpolation method, and linear interpolation as the second interpolation method. It is. The teaching points and the interpolation method are designated (set) by a robot program stored in the storage unit 106 (for example, the HDD 104).

次に、CPU101は、途中点である教示点P1a,P2aのうち、少なくとも一方、第1実施形態では教示点P2aがユーザにより設定(指定)され、繋ぎ合せ区間を設定する(S103:設定工程)。第1実施形態では、関節補間のs1s≦s<1の区間と、直線補間の0<s<s2eの区間を繋ぎ合せ区間とする。繋ぎ合せ区間は、任意であるが、ユーザが指定した教示点から直進性を確保する場合、教示点計算部34により、それに合わせて直線補間の経路生成に用いる教示点と繋ぎ合せ区間を調整する。 Next, the CPU 101 sets (designates) at least one of the teaching points P 1a and P 2a , which are halfway points, in the first embodiment, the teaching point P 2a in the first embodiment, and sets a joining section (S103: Setting process). In the first embodiment, a section of s 1 s s 11 of joint interpolation and a section of 0 <s 2 <s 2 e of linear interpolation are combined sections. The joining section is optional, but if straightness is ensured from the teaching point specified by the user, the teaching point calculation unit 34 adjusts the teaching point and the joining section used for linear interpolation path generation accordingly .

具体的に説明すると、定数s1eは1に、定数s2sは0に設定される。つまり、これら定数s1e,s2sは、予め記憶部106に記憶されており、CPU101が記憶部106から読み出して設定する。 Specifically, the constant s 1 e is set to 1, and the constant s 2 s is set to 0. That is, the constants s 1 e and s 2 s are stored in advance in the storage unit 106, and the CPU 101 reads out the settings from the storage unit 106.

第2補助点から第2教示点に向かう第2補間経路上の第2途中点である教示点P2a(パラメータ値)は、ユーザが設定(指定)する。これにより、CPU101は、第2補助点である教示点P21及び定数s2e,s1sを演算する。なお、第1実施形態では、第1教示点から第1補助点に向かう第1補間経路上の第1途中点である教示点P1aは、予め記憶部106に記憶されており、CPU101が記憶部106から読み出して設定する。 The user sets (designates) a teaching point P 2a (parameter value) which is a second halfway point on the second interpolation path from the second auxiliary point to the second teaching point. Thus, the CPU 101 calculates the teaching point P 21 which is the second auxiliary point and the constants s 2 e and s 1 s. In the first embodiment, the teaching point P 1 a, which is the first halfway point on the first interpolation route from the first teaching point to the first auxiliary point, is stored in advance in the storage unit 106 and stored by the CPU 101. Read from the unit 106 and set.

以上、ステップS103により、繋ぎ合せ区間、つまり定数s1s,s2eが設定(初期化)される。 As described above, in step S103, connection sections, that is, constants s 1s and s 2e are set (initialized).

次に、CPU101は、第1補間経路である関節補間経路と第2補間経路である直線補間経路とを繋ぎ合せたロボット200の経路q(s)を生成する経路生成処理を実行する(S104)。具体的には、図6において、関節補間経路における教示点Q11と教示点Q1aとの間の第1局所経路と、直線補間経路における教示点Q2aと教示点Q22との間の第2局所経路とを、繋ぎ合せ区間の繋ぎ合せ経路で繋ぎ合せた経路q(s)を生成する。ここで、第1局所経路は、q(s)(但し0≦s<s1s)である。第2局所経路は、q(s−s1s)(但し1≦s<1+s1s)である。繋ぎ合せ経路は、q(s)×fsig1((s−s1s)/(1−s1s))+q(s−s1s)×fsig2((s−s1s)/s2e)(但しs1s≦s<1)である(式(5)参照)。 Next, the CPU 101 executes path generation processing for generating a path q (s) of the robot 200 in which the joint interpolation path, which is the first interpolation path, and the linear interpolation path, which is the second interpolation path, are joined (S104) . Specifically, in FIG. 6, first between the teaching points Q 11 in the joint interpolation path and the first local path between teaching points Q 1a, the teaching point Q 2a in the linear interpolation path and teaching point Q 22 A path q (s) is generated in which two local paths are connected by a connection path of connection sections. Here, the first local path is q 1 (s) (where 0 ≦ s <s 1s ). The second local path is q 2 (s−s 1s ), where 1 ≦ s <1 + s 1s . The connection path is q 1 (s) × f sig 1 ((s−s 1s ) / (1−s 1s )) + q 2 (s−s 1s ) × f sig 2 ((s−s 1s ) / s 2e ) (However, s 1 s ≦ s <1) (refer to equation (5)).

次に、CPU101は、速度の最適化の対象となる2つの補間経路を繋いだ経路q(s)上の評価点を決定する(S105)。例えば、s=0からs=1+s1sまで、ある一定のΔsずつ等分割したsの列を評価点とする。 Next, the CPU 101 determines an evaluation point on a path q (s) connecting two interpolation paths to be subjected to speed optimization (S105). For example, a row of s equally divided by a predetermined Δs from s = 0 to s = 1 + s 1s is used as an evaluation point.

次に、CPU101は、補間関数、つまり経路q(s)を使って、媒介変数sに関する数値微分により、評価点におけるq’(s),q’’(s),q’’’(s)を求める(S106)。   Next, the CPU 101 uses the interpolation function, that is, the path q (s) to perform q '(s), q' '(s), q' '' (s) at the evaluation point by numerical differentiation with respect to the parameter s. (S106).

Figure 0006501470
Figure 0006501470

次にCPU101は、q’(s),q’’(s),q’’’(s)を用い、関節トルク制約、関節角速度制約、関節角加速度制約、関節角加加速度制約、TCP速度制約及びTCP加速度制約の制約を条件に最短時間で移動する最適速度を計算する(S107)。   Next, the CPU 101 uses q '(s), q' '(s), q' '' (s) to perform joint torque constraint, joint angular velocity constraint, joint angular acceleration constraint, joint angular jerk constraint, TCP velocity constraint And the optimum speed for moving in the shortest time on the condition of the constraints of the TCP acceleration constraint (S107).

次に、CPU101は、式(14)のように、最適速度計算により計算したs(・)(s)から、s(t)を計算し、q(s)から一定時間Δt毎の関節指令値(角度指令値)を求める(S108)。但し、s(0)=0とする。   Next, the CPU 101 calculates s (t) from s (·) (s) calculated by the optimum velocity calculation as in equation (14), and calculates a joint command value for every constant time Δt from q (s) The (angle command value) is determined (S108). However, s (0) = 0.

Figure 0006501470
Figure 0006501470

以上のステップS105〜S108が最適化計算工程である。つまり、ステップS105〜S108により、経路q(s)に対し、所定の物理的制約を守るようロボット200の動作時間を最適化する最適化計算によって、時刻に対応する媒介変数sの値(つまりs(t))を求めて、ロボット200の軌道を求める。   The above steps S105 to S108 are the optimization calculation process. That is, the value of the parameter s corresponding to the time (ie, s) is calculated by the optimization calculation in which the operation time of the robot 200 is optimized to keep the predetermined physical constraints on the route q (s) in steps S105 to S108. The trajectory of the robot 200 is obtained by obtaining (t).

媒介変数sに関してC級の滑らかさをもつq(s)を用いれば、q’(s)、q’’(s)、q’’’(s)が連続となり、ロボット200への関節指令値を生成する際の誤差を大幅に減らすことができる。 If q (s) having C 3 class smoothness with respect to parameter s is used, q ′ (s), q ′ ′ (s), q ′ ′ ′ (s) become continuous, and the joint command to the robot 200 Errors in generating values can be significantly reduced.

次に、ステップS104の経路生成処理について具体的に説明する。図8は、媒介変数sを入力してコンフィグレーションq(s)を出力する、図7のステップS104における経路生成処理を示すフローチャートである。   Next, the route generation process of step S104 will be specifically described. FIG. 8 is a flow chart showing a route generation process in step S104 of FIG. 7 for inputting the parameter s and outputting the configuration q (s).

まずCPU101は、媒介変数sの数値を取得(入力)する(S201)。CPU101は、入力した媒介変数sの数値で場合分けを行う(S202)。つまり、CPU201は、このステップS202で、媒介変数sの数値の判別を行う。0≦s<s1sの場合は、関節補間区間、s1s≦s<1の場合は、関節補間と直線補間の繋ぎ合せ区間、1≦s<1+s1sの場合は、直線補間区間である。 First, the CPU 101 acquires (inputs) the numerical value of the parameter s (S201). The CPU 101 carries out the classification by the numerical value of the input parameter s (S202). That is, the CPU 201 determines the numerical value of the parameter s in this step S202. In the case of 0 ≦ s <s 1s , it is a joint interpolation interval, in the case of s 1s ≦ s <1, it is a joint interval of joint interpolation and linear interpolation, and in the case of 1 ≦ s <1 + s 1s , it is a linear interpolation interval.

CPU101は、ステップS202の判別で0≦s<s1sの場合(補間方法が関節補間の場合)、教示点Q11,Q12により関節補間を行い、媒介変数sの関数となる関節補間経路であるq(s)を求める(S203)。つまりCPU101は、媒介変数sの関数であり、所定の階数(例えば3階)微分した微分値の変化が連続な、教示点Q11から教示点Q12に向かう関節補間経路q(s)を、関節補間により生成する(第1補間経路生成工程)。0≦s<s1sの区間では、第1補間経路中の教示点Q11と教示点Q1aとの間の第1局所経路q(s)が、ロボット200の経路であり、q(s)=q(s)となる。CPU101は、コンフィグレーションq(s)を出力する(S204)。 In the case where 0 ≦ s <s 1s in the determination of step S202 (when the interpolation method is joint interpolation), the CPU 101 performs joint interpolation with the teaching points Q 11 and Q 12 and uses a joint interpolation path as a function of the parameter s. A certain q 1 (s) is obtained (S203). That is, the CPU 101 is a function of the parameter s, and the joint interpolation path q 1 (s) from the teaching point Q 11 to the teaching point Q 12 is continuous, with the change of the differentiated value differentiated by a predetermined order (for example, third order) being continuous. , And by joint interpolation (first interpolation path generation step). In the section of 0 ≦ s <s 1s , the first local path q 1 (s) between the teaching point Q 11 and the teaching point Q 1a in the first interpolation path is the path of the robot 200, and q (s) ) = Q 1 (s). The CPU 101 outputs the configuration q (s) (S204).

CPU101は、ステップS202の判別でs1s≦s<1の場合(関節補間と直線補間の繋ぎ合せ区間の場合)、教示点Q11,Q12により関節補間を行い、q(s)を求める(S205:第1補間経路生成工程)。 If it is determined in step S202 that s 1 s ≦ s <1 (in the case of a joint section of joint interpolation and linear interpolation), the CPU 101 performs joint interpolation using the teaching points Q 11 and Q 12 to obtain q 1 (s) (S205: first interpolation path generation step).

CPU101は、教示点P21,P22によりTCPを直線補間し、p(s−s1s)を求める(S206)。つまりCPU101は、媒介変数sの関数であり、教示点P21から教示点P22に向かう第2補間経路である直線補間経路p(s−s1s)を、関節補間により生成する(第2補間経路生成工程)。このステップS206で生成する直線補間経路p(s−s1s)は、所定の階数(例えば3階)まで媒介変数sにより微分した微分値の変化が連続な、媒介変数sの関数である。 The CPU 101 linearly interpolates TCP using the teaching points P 21 and P 22 to obtain p 2 (s−s 1s ) (S 206). That is, the CPU 101 generates a linear interpolation path p 2 (s-s 1s ) which is a function of the parameter s and is a second interpolation path from the teaching point P 21 to the teaching point P 22 by joint interpolation (second Interpolation path generation process). The linear interpolation path p 2 (s-s 1s ) generated in this step S206 is a function of the parameter s in which the change of the derivative value differentiated by the parameter s is continuous up to a predetermined rank (for example, third rank).

CPU101は、p(s−s1s)に対し、キネマティクス計算部31により逆キネマティクス計算を行い、コンフィグレーションq(s−s1s)を求める(S207)。つまり、CPU101は、関節補間経路及び直線補間経路を、タスク空間及び関節空間のうちいずれかの空間(第1実施形態では、関節空間)における経路に統一する。 The CPU 101 performs inverse kinematics calculation on p 2 (s−s 1s ) by the kinematics calculation unit 31 to obtain configuration q 2 (s−s 1s ) (S 207). That is, the CPU 101 unifies the joint interpolation path and the linear interpolation path into paths in one of the task space and the joint space (the joint space in the first embodiment).

次に、CPU101は、関節補間したコンフィグレーションq(s)に重みづけするための第1重み関数fsig1((s−s1s)/(1−s1s))から、第1重み係数を求める(S208)。また、CPU101は、直線補間したコンフィグレーションq(s)に重みづけするための第2重み関数fsig2((s−s1s)/s2e)から第2重み係数を求める(S209)。 Next, the CPU 101 calculates the first weighting factor from the first weighting function f sig1 ((s−s 1s ) / (1−s 1s )) for weighting the configuration q 1 (s) subjected to joint interpolation. It asks for (S208). Further, the CPU 101 obtains a second weighting factor from a second weighting function f sig2 ((s−s 1s ) / s 2e ) for weighting the configuration q 2 (s) subjected to linear interpolation (S 209).

CPU101は、q(s)にfsig1((s−s1s)/(1−s1s))を掛け、q(s−s1s)にfsig2((s−s1s)/s2e)を掛けて和をとって、繋ぎ合せ経路q(s)(但しs1s≦s<1)を求める(S210)。 The CPU 101 multiplies q 1 (s) by f sig 1 ((s−s 1s ) / (1−s 1s )), and q 2 (s−s 1s ) to f sig 2 ((s−s 1s ) / s 2e ) And sums to obtain a joint path q (s) (where s 1 s s s 1 ) (S 210).

(s)(但しs1s≦s<1)は、式(6)〜式(10)に示す第1補間点q11,q12,q13,q14,q15の集合である。CPU101は、各補間点q11,q12,q13,q14,q15に各第1重み係数r11,r12,r13,r14,r15を掛け算する。 q 1 (s) (where s 1 s s <1) is a set of first interpolation points q 11 , q 12 , q 13 , q 14 and q 15 shown in equations (6) to (10). The CPU 101 multiplies the respective interpolation points q 11 , q 12 , q 13 , q 14 and q 15 by the respective first weight coefficients r 11 , r 12 , r 13 , r 14 and r 15 .

同様に、q(s−s1s)(但しs1s≦s<1)は、式(6)〜式(10)に示す第2補間点q21,q22,q23,q24,q25の集合である。CPU101は、各補間点q21,q22,q23,q24,q25に各第2重み係数r21,r22,r23,r24,r25を掛け算する。ここで、r11+r21=1,r12+r22=1,r13+r23=1,r14+r24=1,r15+r25=1である。 Similarly, q 2 (s−s 1s ) (where s 1s ≦ s <1) is the second interpolation point q 21 , q 22 , q 23 , q 24 , q shown in equations (6) to (10). It is a set of 25 . The CPU 101 multiplies the respective interpolation points q 21 , q 22 , q 23 , q 24 and q 25 by the respective second weighting factors r 21 , r 22 , r 23 , r 24 and r 25 . Here, an r 11 + r 21 = 1, r 12 + r 22 = 1, r 13 + r 23 = 1, r 14 + r 24 = 1, r 15 + r 25 = 1.

各第1重み係数r11,r12,r13,r14,r15は、媒介変数sが大きくなるに従って1から0に順次遷移する。つまり、r11(=1)>r12>r13>r14>r15(=0)である。 The first weight coefficients r 11 , r 12 , r 13 , r 14 and r 15 sequentially transition from 1 to 0 as the parameter s increases. That is, r 11 (= 1)> r 12 > r 13 > r 14 > r 15 (= 0).

また、各第2重み係数r21,r22,r23,r24,r25は、1から各第1重み係数r11,r12,r13,r14,r15を引いた値となるよう媒介変数sが大きくなるに従って0から1に順次遷移する。つまり、r21(=0)<r22<r23<r24<r25(=1)である。 In addition, each second weighting factor r 21 , r 22 , r 23 , r 24 , r 25 is a value obtained by subtracting one first weighting factor r 11 , r 12 , r 13 , r 14 , r 15 from one. As the parameter s increases, the transition from 0 to 1 sequentially occurs. That is, r 21 (= 0) <r 22 <r 23 <r 24 <r 25 (= 1).

即ち、CPU101は、ステップS210では、補間点q11,q12,q13,q14,q15に対して、教示点Q11に近い側の補間点から順に、1から0に順次遷移する重み係数r11,r12,r13,r14,r15をかける。また、CPU101は、補間点q21,q22,q23,q24,q25に対して、教示点Q21に近い側の補間点から順に、0から1に順次遷移する重み係数r21,r22,r23,r24,r25をかける。CPU101は、補間点q1n(n=1〜5、以下同じ)に重み係数r1nをかけて求めた点と、補間点q2nに重み係数r2nをかけて求めた点とを足し合わせて、繋ぎ合せ経路q,q,q,q,qを生成する(図7、式(6)〜式(10))。 That is, the weight CPU101, in step S210, the relative interpolation point q 11, q 12, q 13 , q 14, q 15, in this order from the side of the interpolation point close to the teaching point Q 11, sequentially changes from 1 to 0 The coefficients r 11 , r 12 , r 13 , r 14 and r 15 are multiplied. In addition, the CPU 101 changes the weighting factor r 21 , which sequentially transitions from 0 to 1 sequentially from the interpolation point closer to the teaching point Q 21 with respect to the interpolation points q 21 , q 22 , q 23 , q 24 , and q 25 . Multiply r 22 , r 23 , r 24 and r 25 . The CPU 101 adds the point obtained by multiplying the interpolation point q 1n (n = 1 to 5, the same applies hereinafter) by the weighting factor r 1n and the point obtained by multiplying the interpolation point q 2n by the weighting factor r 2n , And generates a connection path q 1 , q 2 , q 3 , q 4 , q 5 (FIG. 7, formulas (6) to (10)).

以上のステップS206〜S210により、CPU101は、媒介変数sの関数であって、所定の階数(例えば3階)まで媒介変数sにより微分した微分値の変化が連続な、教示点Q1aから教示点Q2aに向かう繋ぎ合せ経路を生成する(繋ぎ合せ工程)。CPU101は、コンフィグレーションq(s)を出力する(S211)。 By the above steps S206 to S210, the CPU 101 is a function of the parameter s, and from the teaching point Q 1a , the change of the differentiated value differentiated by the parameter s to the predetermined rank (for example, third rank) is continuous Create a joining route towards Q 2a (joining process). The CPU 101 outputs the configuration q (s) (S211).

なお、重み係数r1n,r2nは、ステップS208,S209で重み関数から求める場合について説明したが、これに限定するものではなく、予め重み係数r1n,r2nを計算しておいて記憶部106に記憶させておいてもよい。その際、CPU101は、ステップS208,S209では、演算を行わずに記憶部106から重み係数r1n,r2nのデータを読み出すだけでよい。 Incidentally, the weighting coefficient r 1n, r 2n, the step S208, the description has been given of the case of obtaining the weighting function at S209, is not limited to this, pre-weighting factors r 1n, sure you calculate the r 2n storage unit It may be stored in 106. At that time, the CPU 101 only needs to read out the data of the weight coefficients r 1n and r 2n from the storage unit 106 without performing the calculation in steps S 208 and S 209.

次に、CPU101は、ステップS202の判別で1≦s<1+s1sの場合(補間方法が直線補間の場合)、教示点P21,P22によりTCPを直線補間し、p(s−s1s)を求める(S212:第2補間経路生成工程)。 Next, in the case where 1 ≦ s <1 + s 1s in the determination of step S202 (in the case where the interpolation method is linear interpolation), the CPU 101 linearly interpolates TCP by the teaching points P 21 and P 22 and p 2 (s−s 1s ) (S212: second interpolation path generation step).

CPU101は、p(s−s1s)に対し、逆キネマティクス計算を行い、関節空間上のコンフィグレーションであるq(s−s1s)を求める(S213)。1≦s<1+s1sの区間では、第2補間経路中の教示点Q2aと教示点Q22との間の第2局所経路q(s−s1s)が、ロボット200の経路であり、q(s)=q(s−s1s)である。CPU101は、コンフィグレーションq(s)を出力する(S214)。 CPU101 is, p 2 to (s-s 1s), performs an inverse kinematics calculation, obtaining a q 2 (s-s 1s) is a configuration of the joint space (S213). In the section of 1 ≦ s <1 + s 1s , the second local path q 2 (s−s 1s ) between the teaching point Q 2 a and the teaching point Q 22 in the second interpolation path is the path of the robot 200, a q (s) = q 2 ( s-s 1s). The CPU 101 outputs the configuration q (s) (S214).

以上のステップS201〜S214は、媒介変数sの数値を、0から1+s1sまで変化させて繰り返し行う。これらステップS201〜S214により、式(5)に示す、ロボット200の関節空間においてC級の経路q(s)が求まる。 The above steps S201 to S214 are repeatedly performed while changing the numerical value of the parameter s from 0 to 1 + s 1s . These steps S201~S214, shown in Equation (5), C 3 class path q (s) is obtained in the joint space of the robot 200.

以上、第1実施形態によれば、ロボット200が関節補間と直線補間という異なる2つの補間経路を繋げ合せた際に、媒介変数sに関してC級で滑らかなロボット200の関節空間における経路q(s)を生成している。これにより、2つの補間経路を繋げ合せた経路q(s)を辿るロボット200が停止することのない、物理的制約を守った軌道を生成することができる。 As described above, according to the first embodiment, when the robot 200 is combined connecting the two interpolation paths differ extensively joint interpolation and linear interpolation path in a smooth joint space of the robot 200 in C 3 tertiary respect parametric s q ( s) is generated. As a result, it is possible to generate a trajectory that complies with a physical constraint without the robot 200 stopping following a route q (s) obtained by combining two interpolation routes.

特に、ステップS210では、CPU101が、q1n×r1n+q2n×r2n(n=1〜5)を計算して、繋ぎ合せ経路qを生成している。これにより、繋ぎ合せ経路は、媒介変数sに関してC級で滑らかな経路として生成される。なお、第1実施形態では、説明の都合上、n=1〜5としたが、これに限定するものではない。nの数は、多ければ多いほど精度が向上するため、繋ぎ合せ経路として、多数の点を生成するのがよい。第1実施形態では、第1及び第2重み関数に基づいて第1及び第2重み係数を計算しているので、予め大量の重み係数のデータを記憶部106に記憶させておく必要がない。よって、記憶部106のメモリ領域が圧迫されることがなく、メモリ領域を有効活用できる。 In particular, in step S210, CPU 101 may calculate the q 1n × r 1n + q 2n × r 2n (n = 1~5), and generates a tie combined path q n. By this, the connection path is generated as a smooth path of C 3 class with respect to the parameter s. In the first embodiment, n is set to 1 to 5 for convenience of explanation, but the present invention is not limited to this. The greater the number of n, the better the accuracy, so it is better to generate as many points as joining paths. In the first embodiment, since the first and second weighting factors are calculated based on the first and second weighting functions, it is not necessary to store a large amount of weighting factor data in the storage unit 106 in advance. Therefore, the memory area of the storage unit 106 is not compressed, and the memory area can be effectively used.

また、第1実施形態によれば、ユーザが教示点P2a(Q2a)を設定(指定)しているため、経路の繋ぎ合せ区間を意識せずに、直進性が必要な区間をユーザが指定でき、使用性が上がるという効果がある。 Further, according to the first embodiment, since the user sets (designates) the teaching point P 2a (Q 2a ), the user needs a section that requires straightness without being aware of the connection section of the route. It can be specified and has the effect of improving usability.

[第2実施形態]
本発明の第2実施形態に係る軌道生成方法について説明する。なお、軌道生成装置、即ちロボット装置の構成は、上記第1実施形態と同様であり、説明を省略する。第2実施形態では、上記第1実施形態と異なる補間方法の組み合わせ、即ち円弧補間と直線補間の2種類の補間方法が指定されている。
Second Embodiment
A trajectory generation method according to a second embodiment of the present invention will be described. The configuration of the trajectory generation device, that is, the robot device is the same as that of the first embodiment, and the description thereof will be omitted. In the second embodiment, a combination of interpolation methods different from the first embodiment, that is, two types of interpolation methods, arc interpolation and linear interpolation, are specified.

図9は、第2実施形態におけるタスク空間でのロボットアームの経路を示す説明図であり、図10は、第2実施形態における関節空間でのロボットアームの経路を示す説明図である。   FIG. 9 is an explanatory view showing the path of the robot arm in the task space in the second embodiment, and FIG. 10 is an explanatory view showing the path of the robot arm in the joint space in the second embodiment.

第2実施形態では、第1補間方法を円弧補間とし、第2補間方法を、上記第1実施形態と同様、直線補間としたものである。円弧補間をした時のコンフィグレーションをq(s)とすると、上記第1実施形態と同様、式(5)により、経路の滑らかさを保った繋ぎ合せが可能となる。式(5)に則り、図10における、繋ぎ合せ区間での繋ぎ合せ経路上の点q〜qを算出する式は、上記第1実施形態と同様、式(6)〜式(10)になる。 In the second embodiment, the first interpolation method is circular interpolation, and the second interpolation method is linear interpolation as in the first embodiment. Assuming that the configuration when circular interpolation is performed is q 1 (s), as in the first embodiment, connection can be performed while maintaining the smoothness of the path according to equation (5). According to the equation (5), the equation for calculating the points q 1 to q 5 on the joining route in the joining section in FIG. 10 is the same as the first embodiment, the equation (6) to the equation (10) become.

上記第1実施形態と違い、円弧補間した補間経路は、タスク空間上のTCPの経路となるため、関節空間上で繋ぎ合せるためには、逆キネマティクスを行い、コンフィグレーションを求めて円弧補間経路q(s)を求める。 Unlike the first embodiment, since the interpolation path subjected to the circular interpolation becomes the TCP path on the task space, reverse kinematics is performed in order to join them on the joint space, and the configuration is obtained to obtain the circular interpolation path. q Calculate 1 (s).

以上を考慮にいれ、媒介変数sからコンフィグレーションq(s)を求める流れを説明する。図11は、媒介変数sを入力してコンフィグレーションq(s)を出力する経路生成処理のフローチャートである。なお、第2実施形態では、第1補間方法がタスク空間で補間経路を生成する方法であるため、求めた第1補間経路である円弧補間経路を逆キネマティクス計算により関節空間における経路に変換する点で、上記第1実施形態と異なる。それ以外は、上記第1実施形態と同様であるため、以下、経路生成処理に関する各工程を簡略して説明する。   Taking the above into consideration, the flow for obtaining the configuration q (s) from the parameter s will be described. FIG. 11 is a flowchart of a path generation process which inputs the parameter s and outputs the configuration q (s). In the second embodiment, since the first interpolation method is a method of generating an interpolation path in the task space, the arc interpolation path which is the first interpolation path obtained is converted to a path in the joint space by inverse kinematics calculation. The second embodiment differs from the first embodiment in the point. Except for this point, the process is the same as that of the first embodiment, and hence the respective steps relating to the route generation process will be briefly described.

まずCPU101は、媒介変数sを取得(入力)する(S301)。CPU101は、入力された媒介変数sの区間で場合分けを行う(S302)。0≦s<s1sの場合は、円弧補間区間、s1s≦s<1の場合は、円弧補間と直線補間の繋ぎ合せ区間、1≦s<1+s1sの場合は、直線補間区間である。 First, the CPU 101 acquires (inputs) the parameter s (S301). The CPU 101 performs case division in the section of the input parameter s (S302). In the case of 0 ≦ s <s 1s , it is an arc interpolation section, in the case of s 1s ≦ s <1, it is a joining section of arc interpolation and linear interpolation, and in the case of 1 ≦ s <1 + s 1s , it is a linear interpolation section.

CPU101は、ステップS302の判別で0≦s<s1sの場合、教示点P11,P12によりTCPを円弧補間し、p(s)を求める(S303)。CPU101は、p(s)に対し、逆キネマティクス計算を行い、コンフィグレーションq(s)を求める(S304)。0≦s<s1sの区間では、第1局所経路q(s)が、ロボット200の経路であり、q(s)=q(s)となる。CPU101は、コンフィグレーションq(s)を出力する(S305)。 In the case where 0 ≦ s <s 1s in the determination of step S302, the CPU 101 performs circular interpolation of the TCP by the teaching points P 11 and P 12 to obtain p 1 (s) (S303). CPU101 is, p 1 to (s), performs an inverse kinematics calculation, obtaining the configuration q 1 (s) (S304) . In the section of 0 ≦ s <s 1s , the first local path q 1 (s) is the path of the robot 200, and q (s) = q 1 (s). The CPU 101 outputs the configuration q (s) (S305).

次に、CPU101は、ステップS302の判別でs1s≦s<1であった場合、まず教示点P11,P12によりTCPを円弧補間し、p(s)を求める(S306)。CPU101は、p(s)に対し、逆キネマティクス計算を行い、コンフィグレーションq(s)を求める(S307)。 Next, when s 1 s s ≦ 1 in the determination of step S 302, the CPU 101 first interpolates TCP by using teaching points P 11 and P 12 to obtain p 1 (s) (S 306). CPU101 is, p 1 to (s), performs an inverse kinematics calculation, obtaining the configuration q 1 (s) (S307) .

CPU101は、教示点P21,P22によりTCPを直線補間し、p(s−s1s)を求める(S308)。CPU101は、p(s−s1s)に対し、逆キネマティクス計算を行い、コンフィグレーションq(s−s1s)を求める(S309)。 The CPU 101 linearly interpolates TCP by the teaching points P 21 and P 22 to obtain p 2 (s−s 1s ) (S 308). CPU101 is, p 2 to (s-s 1s), it performs an inverse kinematics calculation, obtaining the configuration q 2 (s-s 1s) (S309).

CPU101は、円弧補間したコンフィグレーションq(s)に重みづけするための重み関数fsig1((s−s1s)/(1−s1s))を求める(S310)。CPU101は、直線補間したコンフィグレーションq(s)に重みづけするための重み関数fsig2((s−s1s)/s2e)を求める(S311)。 The CPU 101 obtains a weighting function f sig1 ((s−s 1s ) / (1−s 1s )) for weighting the circularly interpolated configuration q 1 (s) (S 310). The CPU 101 obtains a weighting function f sig2 ((s−s 1s ) / s 2 e ) for weighting the configuration q 2 (s) subjected to linear interpolation (S 311 ).

CPU101は、q(s)にfsig1((s−s1s)/(1−s1s))を掛け、q(s−s1s)にfsig2((s−s1s)/s2e)を掛けて和をとって、q(s)を求める(S312)。CPU101は、コンフィグレーションq(s)を出力する(S313)。 The CPU 101 multiplies q 1 (s) by f sig 1 ((s−s 1s ) / (1−s 1s )), and q 2 (s−s 1s ) to f sig 2 ((s−s 1s ) / s 2e ) And sum to obtain q (s) (S312). The CPU 101 outputs the configuration q (s) (S313).

CPU101は、ステップS302の判別で1≦s<1+s1sであった場合、教示点P21,P22によりTCPを直線補間し、p(s−s1s)を求める(S314)。CPU101は、p(s−s1s)に対し、逆キネマティクス計算を行い、関節空間上のコンフィグレーションであるq(s−s1s)を求める(S315)。1≦s<1+s1sの区間では、第2局所経路q(s−s1s)が、ロボット200の経路であり、q(s)=q(s−s1s)である。CPU101は、コンフィグレーションq(s)を出力する(S316)。 If 1 ≦ s <1 + s 1 s in the determination of step S302, the CPU 101 linearly interpolates TCP by the teaching points P 21 and P 22 to obtain p 2 (s−s 1s ) (S314). CPU101 is, p 2 to (s-s 1s), performs an inverse kinematics calculation, obtaining a q 2 (s-s 1s) is a configuration of the joint space (S315). In the section of 1 ≦ s <1 + s 1s , the second local path q 2 (s−s 1s ) is the path of the robot 200, and q (s) = q 2 (s−s 1s ). The CPU 101 outputs the configuration q (s) (S316).

以上、円弧補間と直線補間とをC級を保って繋ぎ合せたコンフィグレーションq(s)が求められるので、上記第1実施形態と同様、図7の流れで、最適速度を計算することができる。 As described above, since the configuration q (s) obtained by joining the circular interpolation and the linear interpolation while maintaining the C 3 class can be obtained, it is possible to calculate the optimum velocity by the flow of FIG. 7 as in the first embodiment. it can.

また、図7のステップS103において、ユーザが円弧補間経路の円弧性と、直線補間経路の直進性を確保したい点P1a,P2a(又は点Q1a,Q2a)をそれぞれ指定(設定)する。教示点計算部34として機能するCPU101は、その点P1a,P2a(又は点Q1a,Q2a)を基に、円弧補間及び直線補間の教示点及び繋ぎ合せ区間を逆算する。 Further, in step S103 in FIG. 7, the user designates (sets) points P 1a and P 2a (or points Q 1a and Q 2a ) for which it is desired to secure the arc nature of the arc interpolation path and the straightness of the linear interpolation path. . The CPU 101 functioning as the teaching point calculation unit 34 back-calculates the teaching points and joining sections of the circular arc interpolation and the linear interpolation based on the points P 1a and P 2a (or the points Q 1a and Q 2a ).

繋ぎ合せ区間は、円弧補間と直線補間が繋ぎ合わさった経路となるため、純粋な円弧もしくは直線にはならず、ユーザの意図した動きにならない可能性がある。そこで、ユーザが、ここまでは円弧性を確保し、ここからは、直進性を確保したいという点を指定し、それから、教示点計算部34により適切な教示点P12,P21(又は教示点Q12,Q21)を演算する。 Since the joining section is a path in which the circular interpolation and the linear interpolation are connected, it may not be a pure circular arc or a straight line, and may not be a movement intended by the user. Therefore, the user secures the circularity so far and designates the point that he wants to secure the straightness, and then the teaching point calculation unit 34 selects the appropriate teaching points P 12 and P 21 (or teaching points). Calculate Q 12 and Q 21 ).

つまり、第2実施形態では、円弧性を確保する図9上の点P1a、直進性を確保できる図9上の点P2aをユーザが指示する。CPU101は、そこから逆算して、それぞれ適当なP12,P21,s1s,s2eを求める。具体的には、円弧補間経路が、s=s1sのときのTCPの位置及び回転p(s)が、P1aと重なり、直線補間経路がs=s2eの時のTCPの位置及び回転p(s)が、P21と重なるようにP12,P21,s1s,s2eを逆算する。 That is, in the second embodiment, the user designates a point P 1a on FIG. 9 for securing the circularity and a point P 2a on FIG. 9 for securing the straightness. The CPU 101 performs an inverse calculation therefrom to obtain appropriate P 12 , P 21 , s 1s , s 2e . Specifically, circular interpolation path, s 1 = s position and rotation of the TCP in the case of 1s p 1 is (s), it overlaps the P 1a, the position of the TCP at the time of the linear interpolation path s 2 = s 2e and rotation p 2 (s 2) is, P 12 so as to overlap with the P 21, P 21, s 1s , calculated back to s 2e.

以上説明したように、第2実施形態によれば、上記第1実施形態の効果に加えて、教示点に付随する補間方法が、円弧補間から直線補間に切り替わる場合にも、経路の切り替え時に停止せずに、ロボット200の各種物理的制約を守った最適な軌道を生成できる。また、第2実施形態によれば、経路の繋ぎ合せ区間を意識せずに、円弧性及び直進性が必要な区間をユーザが指定できるため、使用性が上がるという効果がある。   As described above, according to the second embodiment, in addition to the effects of the first embodiment, even when the interpolation method attached to the teaching point is switched from circular interpolation to linear interpolation, it is stopped at the time of switching the route. It is possible to generate an optimal trajectory that complies with various physical constraints of the robot 200 without the need to do so. Further, according to the second embodiment, since the user can designate a section requiring arcing and rectilinearity without being aware of the connection section of the route, there is an effect that usability is improved.

[第3実施形態]
本発明の第3実施形態に係る軌道生成方法について説明する。なお、軌道生成装置、即ちロボット装置の構成は、上記第1,第2実施形態と同様であり、説明を省略する。第3実施形態では、上記第1,第2実施形態と異なる補間方法の組み合わせ、即ち円弧補間と関節補間の2種類の補間方法が指定されている。
Third Embodiment
A trajectory generation method according to a third embodiment of the present invention will be described. The configuration of the trajectory generation device, that is, the robot device is the same as that of the first and second embodiments, and the description will be omitted. In the third embodiment, a combination of interpolation methods different from the first and second embodiments, that is, two types of interpolation methods, arc interpolation and joint interpolation, are specified.

図12は、第3実施形態におけるタスク空間でのロボットアームの経路を示す説明図であり、図13は、第3実施形態における関節空間でのロボットアームの経路を示す説明図である。   FIG. 12 is an explanatory view showing the path of the robot arm in the task space in the third embodiment, and FIG. 13 is an explanatory view showing the path of the robot arm in the joint space in the third embodiment.

第3実施形態では、第1補間方法を円弧補間、第2補間方法を関節補間としたものである。円弧補間をした時のコンフィグレーション(補間経路)をq(s)とし、関節補間した時のコンフィグレーション(補間経路)をq(s)すると、上記第1実施形態と同様、式(5)により、経路の滑らかさを保った繋ぎ合せが可能となる。式(5)に則り、図13における、繋ぎ合せ区間での経路上の点q〜qを算出する式は、上記第1実施形態と同様、式(6)〜式(10)になる。 In the third embodiment, the first interpolation method is circular interpolation, and the second interpolation method is joint interpolation. Assuming that the configuration (interpolation path) when performing the circular arc interpolation is q 1 (s) and the configuration (interpolation path) when performing the joint interpolation is q 2 (s), the equation (5) is obtained as in the first embodiment. ) Enables connection that maintains the smoothness of the path. According to the equation (5), the equations for calculating the points q 1 to q 5 on the path in the joining section in FIG. 13 are the equations (6) to (10) as in the first embodiment. .

上記第2実施形態と同様、円弧補間した経路は、タスク空間上のTCPの経路となるため、関節空間上で繋ぎ合せるためには、逆キネマティクスを行い、コンフィグレーションを求めて円弧補間経路q(s)を求める。以上を考慮にいれ、媒介変数sからコンフィグレーションq(s)を求める流れを説明する。 As in the second embodiment, since the arc-interpolated path becomes a TCP path on the task space, reverse kinematics is performed in order to connect them on the joint space, and the configuration is determined to obtain the arc-interpolated path q. Ask for 1 (s). Taking the above into consideration, the flow for obtaining the configuration q (s) from the parameter s will be described.

図14は、媒介変数sを入力してコンフィグレーションq(s)を出力する経路生成処理のフローチャートである。なお、第3実施形態では、第2補間方法が関節空間で補間経路を生成する方法であるため、第2補間経路である関節補間経路を関節空間で求める点で、上記第2実施形態と異なる。それ以外は、上記第2実施形態と同様であるため、以下、経路生成処理に関する各工程を簡略して説明する。   FIG. 14 is a flowchart of a path generation process which inputs the parameter s and outputs the configuration q (s). In the third embodiment, the second interpolation method is a method of generating an interpolation path in a joint space, and thus differs from the second embodiment in that a joint interpolation path which is a second interpolation path is determined in the joint space. . Other than that is the same as that of the second embodiment, and therefore, the respective steps relating to the route generation processing will be briefly described below.

まずCPU101は、媒介変数sを取得(入力)する(S401)。CPU101は、入力された媒介変数sの区間で場合分けを行う(S402)。0≦s<s1sの場合は、円弧補間区間、s1s≦s<1の場合は、円弧補間と関節補間の繋ぎ合せ区間、1≦s<1+s1sの場合は、関節補間区間である。 First, the CPU 101 acquires (inputs) the parameter s (S401). The CPU 101 performs case division in the section of the input parameter s (S402). In the case of 0 ≦ s <s 1s , it is an arc interpolation interval, in the case of s 1s ≦ s <1, it is a joint interval of arc interpolation and joint interpolation, and in the case of 1 ≦ s <1 + s 1s , it is a joint interpolation interval.

CPU101は、ステップS402の判別で0≦s<s1sの場合、教示点P11,P12によりTCPを円弧補間し、p(s)を求める(S403)。CPU101は、p(s)に対し、逆キネマティクス計算を行い、コンフィグレーションq(s)を求める(S404)。0≦s<s1sの区間では、第1局所経路q(s)が、ロボット200の経路であり、q(s)=q(s)となる。CPU101は、コンフィグレーションq(s)を出力する(S405)。 In the case where 0 ≦ s <s 1s in the determination of step S402, the CPU 101 performs circular interpolation of the TCP by the teaching points P 11 and P 12 to obtain p 1 (s) (S403). CPU101 is, p 1 to (s), performs an inverse kinematics calculation, obtaining the configuration q 1 (s) (S404) . In the section of 0 ≦ s <s 1s , the first local path q 1 (s) is the path of the robot 200, and q (s) = q 1 (s). The CPU 101 outputs the configuration q (s) (S405).

次に、CPU101は、ステップS402の判別でs1s≦s<1の場合、まず教示点P11,P12によりTCPを円弧補間し、p(s)を求める(S406)。CPU101は、p(s)に対し、逆キネマティクス計算を行い、コンフィグレーションq(s)を求める(S407)。 Next, in the case where s 1 s s ≦ 1 in the determination of step S 402, the CPU 101 first interpolates TCP by using teaching points P 11 and P 12 to obtain p 1 (s) (S 406). CPU101 is, p 1 to (s), performs an inverse kinematics calculation, obtaining the configuration q 1 (s) (S407) .

CPU101は、教示点Q21,Q22により関節補間し、q(s−s1s)を求める(S408)。 The CPU 101 performs joint interpolation based on the teaching points Q 21 and Q 22 to obtain q 2 (s−s 1s ) (S 408).

CPU101は、円弧補間したコンフィグレーションq(s)に重みづけするための重み関数fsig1((s−s1s)/(1−s1s))を求める(S409)。CPU101は、直線補間したコンフィグレーションq(s)に重みづけするための重み関数fsig2((s−s1s)/s2e)を求める(S410)。 The CPU 101 obtains a weighting function f sig1 ((s−s 1s ) / (1−s 1s )) for weighting the circularly interpolated configuration q 1 (s) (S 409). The CPU 101 obtains a weighting function f sig2 ((s−s 1s ) / s 2 e ) for weighting the configuration q 2 (s) subjected to linear interpolation (S 410).

CPU101は、q(s)にfsig1((s−s1s)/(1−s1s))を掛け、q(s−s1s)にfsig2((s−s1s)/s2e)を掛けて和をとって、q(s)を求める(S411)。CPU101は、コンフィグレーションq(s)を出力する(S412)。 The CPU 101 multiplies q 1 (s) by f sig 1 ((s−s 1s ) / (1−s 1s )), and q 2 (s−s 1s ) to f sig 2 ((s−s 1s ) / s 2e ) And sum to obtain q (s) (S411). The CPU 101 outputs the configuration q (s) (S412).

CPU101は、ステップS402の判別で1≦s<1+s1sの場合、教示点Q21,Q22により関節補間し、q(s−s1s)を求める(S413)。1≦s<1+s1sの区間では、第2局所経路q(s−s1s)が、ロボット200の経路であり、q(s)=q(s−s1s)である。CPU101は、コンフィグレーションq(s)を出力する(S414)。 In the case where 1 ≦ s <1 + s 1 s in the determination of step S402, the CPU 101 performs joint interpolation based on the teaching points Q 21 and Q 22 to obtain q 2 (s−s 1s ) (S413). In the section of 1 ≦ s <1 + s 1s , the second local path q 2 (s−s 1s ) is the path of the robot 200, and q (s) = q 2 (s−s 1s ). The CPU 101 outputs the configuration q (s) (S414).

以上、円弧補間と関節補間とをC級を保って繋ぎ合せたコンフィグレーションq(s)を求められるので、上記第1実施形態と同様、図7の流れで、最適速度を計算することができる。 As described above, since the configuration q (s) obtained by joining the circular interpolation and the joint interpolation while maintaining the C 3 class can be obtained, it is possible to calculate the optimum velocity by the flow of FIG. 7 as in the first embodiment. it can.

また、図7のステップS103において、ユーザが円弧補間経路の円弧性を確保したい点P1a(又は点Q1a)をそれぞれ指定(設定)する。教示点計算部34として機能するCPU101は、その点P1a(又は点Q1a)を基に、円弧補間及び関節補間の教示点及び繋ぎ合せ区間を逆算する。 Further, in step S103 of FIG. 7, the user designates (sets) the point P 1a (or the point Q 1a ) for which it is desired to secure the circularity of the circular arc interpolation path. The CPU 101 functioning as the teaching point calculation unit 34 performs back calculation on the teaching point and the joining section of the arc interpolation and the joint interpolation based on the point P 1a (or the point Q 1a ).

繋ぎ合せ区間は、円弧補間と関節補間が繋ぎ合わさった経路となるため、純粋な円弧にはならず、ユーザの意図した動きにならない可能性がある。そこで、ユーザが、ここまでは円弧性を確保したいという点を指定する。そこから教示点計算部34により適切な教示点P12(又は教示点Q12)を演算する。 Since the joining section is a path in which the arc interpolation and the joint interpolation are joined, it may not be a pure arc and may not be the movement intended by the user. Therefore, the user specifies that the user wants to secure circularity so far. From there, the teaching point calculation unit 34 calculates an appropriate teaching point P 12 (or teaching point Q 12 ).

つまり、第3実施形態では、円弧性を確保する図12上の点P1aをユーザが指示する。CPU101は、そこから逆算して、適当なP12とs1sを求める。具体的には、円弧補間経路が、s=s1sのときのTCPの位置及び回転p(s)が、P1aと重なるようにP12、s1sを逆算する。 That is, in the third embodiment, the user designates a point P 1 a on FIG. 12 for securing the circularity. The CPU 101 performs an inverse operation to obtain appropriate P 12 and s 1s . Specifically, P 12 and s 1s are back-calculated so that the position and rotation p 1 (s 1 ) of the TCP when s 1 = s 1s overlap the circular interpolation path with P 1a .

以上説明したように、第3実施形態によれば、上記第1実施形態の効果に加えて、教示点に付随する補間方法が、円弧補間から関節補間に切り替わる場合にも、経路の切り替え時に停止せずに、ロボット200の各種物理的制約を守った最適な軌道を生成できる。また、第3実施形態によれば、経路の繋ぎ合せ区間を意識せずに、円弧性が必要な区間をユーザが指定できるため、使用性が上がるという効果がある。   As described above, according to the third embodiment, in addition to the effects of the first embodiment, even when the interpolation method attached to the teaching point switches from arc interpolation to joint interpolation, stopping at the time of path switching is halted. It is possible to generate an optimal trajectory that complies with various physical constraints of the robot 200 without the need to do so. Further, according to the third embodiment, since the user can specify a section requiring the circularity without being aware of the connection section of the route, there is an effect that usability is enhanced.

[第4実施形態]
本発明の第4実施形態に係る軌道生成方法について説明する。なお、軌道生成装置、即ちロボット装置の構成は、上記第1,第2及び第3実施形態と同様であり、説明を省略する。第4実施形態では、上記第1,第2,第3実施形態と異なる補間方法の組み合わせ、即ち直線補間と直線補間の補間方法が指定されている。
Fourth Embodiment
A trajectory generation method according to a fourth embodiment of the present invention will be described. The configuration of the trajectory generation device, that is, the robot device is the same as that of the first, second, and third embodiments, and the description thereof will be omitted. In the fourth embodiment, a combination of interpolation methods different from the first, second, and third embodiments, that is, linear interpolation and an interpolation method of linear interpolation are specified.

図15は、第4実施形態におけるタスク空間でのロボットアームの経路を示す説明図であり、図16は、第4実施形態における関節空間でのロボットアームの経路を示す説明図である。   FIG. 15 is an explanatory view showing the path of the robot arm in the task space in the fourth embodiment, and FIG. 16 is an explanatory view showing the path of the robot arm in the joint space in the fourth embodiment.

第4実施形態では、第1補間方法を第1直線補間、第2補間方法を第2直線補間としたものである。第1直線補間をした時のコンフィグレーションをq(s)とし、第2直線補間をした時のコンフィグレーションをq(s)すると、上記第1実施形態と同様、式(5)により、経路の滑らかさを保った繋ぎ合せが可能となる。式(5)に則り、図16における、繋ぎ合せ区間での経路上の点q〜qを算出する式は、上記第1実施形態と同様、式(6)〜式(10)になる。 In the fourth embodiment, the first interpolation method is a first linear interpolation, and the second interpolation method is a second linear interpolation. Assuming that the configuration when the first linear interpolation is performed is q 1 (s) and the configuration when the second linear interpolation is performed is q 2 (s), as in the first embodiment, according to Equation (5), It is possible to perform connection while maintaining the smoothness of the path. According to the equation (5), the equations for calculating the points q 1 to q 5 on the path in the joining section in FIG. 16 are the equations (6) to (10) as in the first embodiment. .

上記第1実施形態と同様、直線補間した経路は、タスク空間上のTCPの経路となるため、関節空間上で繋ぎ合せるためには、逆キネマティクスを行い、コンフィグレーションを求めて直線補間経路q(s),q(s−s1s)を求める。 As in the first embodiment, since the linearly interpolated route is the TCP route in the task space, reverse kinematics is performed in order to join them in the joint space, and the configuration is determined to obtain the linear interpolated route q. Find 1 (s), q 2 (s−s 1s ).

以上を考慮にいれ、媒介変数sからコンフィグレーションq(s)を求める流れを説明する。図17は、媒介変数sを入力してコンフィグレーションq(s)を出力する経路生成処理のフローチャートである。なお、第4実施形態では、第1補間方法がタスク空間で補間経路を生成する方法であるため、求めた第1補間経路である直線補間経路を逆キネマティクス計算により関節空間における経路に変換する点で、上記第1実施形態と異なる。それ以外は、上記第1実施形態と同様であるため、以下、経路生成処理に関する各工程を簡略して説明する。   Taking the above into consideration, the flow for obtaining the configuration q (s) from the parameter s will be described. FIG. 17 is a flowchart of a path generation process which inputs the parameter s and outputs the configuration q (s). In the fourth embodiment, since the first interpolation method is a method of generating an interpolation path in task space, the linear interpolation path which is the first interpolation path obtained is converted to a path in joint space by inverse kinematics calculation. The second embodiment differs from the first embodiment in the point. Except for this point, the process is the same as that of the first embodiment, and hence the respective steps relating to the route generation process will be briefly described.

まずCPU101は、媒介変数sを取得(入力)する(S501)。CPU101は、入力された媒介変数sの区間で場合分けを行う(S502)。0≦s<s1sの場合は、第1直線補間区間、s1s≦s<1の場合は、第1直線補間と第2直線補間の繋ぎ合せ区間、1≦s<1+s1sの場合は、第2直線補間区間である。 First, the CPU 101 acquires (inputs) the parameter s (S501). The CPU 101 performs case division in the section of the input parameter s (S502). In the case of 0 ≦ s <s 1s , the first linear interpolation section, in the case of s 1s ≦ s <1, the joining section of the first linear interpolation and the second linear interpolation, in the case of 1 ≦ s <1 + s 1s This is a second linear interpolation interval.

CPU101は、ステップS502の判別で0≦s<s1sの場合、教示点P11,P12によりTCPを直線補間し、p(s)を求める(S503)。CPU101は、p(s)に対し、逆キネマティクス計算を行い、コンフィグレーションq(s)を求める(S504)。0≦s<s1sの区間では、第1局所経路q(s)が、ロボット200の経路であり、q(s)=q(s)となる。CPU101は、コンフィグレーションq(s)を出力する(S505)。 In the case where 0 ≦ s <s 1s in the determination of step S502, the CPU 101 linearly interpolates TCP by the teaching points P 11 and P 12 to obtain p 1 (s) (S503). CPU101 is, p 1 to (s), performs an inverse kinematics calculation, obtaining the configuration q 1 (s) (S504) . In the section of 0 ≦ s <s 1s , the first local path q 1 (s) is the path of the robot 200, and q (s) = q 1 (s). The CPU 101 outputs the configuration q (s) (S505).

次に、CPU101は、ステップS502の判別でs1s≦s<1の場合、まず教示点P11,P12によりTCPを直線補間し、p(s)を求める(S506)。CPU101は、p(s)に対し、逆キネマティクス計算を行い、コンフィグレーションq(s)を求める(S507)。 Next, in the case where s 1 s ≦ s <1 in the determination of step S 502, the CPU 101 first interpolates TCP by teaching points P 11 and P 12 linearly to obtain p 1 (s) (S 506). CPU101 is, p 1 to (s), performs an inverse kinematics calculation, obtaining the configuration q 1 (s) (S507) .

CPU101は、教示点P21,P22によりTCPを直線補間し、p(s−s1s)を求める(S508)。CPU101は、p(s−s1s)に対し、逆キネマティクス計算を行い、コンフィグレーションq(s−s1s)を求める(S509)。 The CPU 101 linearly interpolates TCP using the teaching points P 21 and P 22 to obtain p 2 (s−s 1s ) (S 508). CPU101 is, p 2 to (s-s 1s), it performs an inverse kinematics calculation, obtaining the configuration q 2 (s-s 1s) (S509).

CPU101は、直線補間したコンフィグレーションq(s)に重みづけするための重み関数fsig1((s−s1s)/(1−s1s))を求める(S510)。CPU101は、直線補間したコンフィグレーションq(s)に重みづけするための重み関数fsig2((s−s1s)/s2e)を求める(S511)。 The CPU 101 obtains a weighting function f sig1 ((s−s 1s ) / (1−s 1s )) for weighting the linearly interpolated configuration q 1 (s) (S 510). The CPU 101 obtains a weighting function f sig2 ((s−s 1s ) / s 2 e ) for weighting the configuration q 2 (s) linearly interpolated (S 511).

CPU101は、q(s)にfsig1((s−s1s)/(1−s1s))を掛け、q(s−s1s)にfsig2((s−s1s)/s2e)を掛けて和をとって、q(s)を求める(S512)。CPU101は、コンフィグレーションq(s)を出力する(S513)。 The CPU 101 multiplies q 1 (s) by f sig 1 ((s−s 1s ) / (1−s 1s )), and q 2 (s−s 1s ) to f sig 2 ((s−s 1s ) / s 2e ) And sum to obtain q (s) (S512). The CPU 101 outputs the configuration q (s) (S513).

CPU101は、ステップS502の判別で1≦s<1+s1sの場合、教示点P21,P22によりTCPを直線補間し、p(s−s1s)を求める(S514)。CPU101は、p(s−s1s)に対し、逆キネマティクス計算を行い、関節空間上のコンフィグレーションであるq(s−s1s)を求める(S515)。1≦s<1+s1sの区間では、第2局所経路q(s−s1s)が、ロボット200の経路であり、q(s)=q(s−s1s)である。CPU101は、コンフィグレーションq(s)を出力する(S516)。 If 1 ≦ s <1 + s 1 s in the determination of step S502, the CPU 101 linearly interpolates TCP by the teaching points P 21 and P 22 to obtain p 2 (s−s 1s ) (S514). CPU101 is, p 2 to (s-s 1s), performs an inverse kinematics calculation, obtaining a q 2 (s-s 1s) is a configuration of the joint space (S515). In the section of 1 ≦ s <1 + s 1s , the second local path q 2 (s−s 1s ) is the path of the robot 200, and q (s) = q 2 (s−s 1s ). The CPU 101 outputs the configuration q (s) (S516).

第4実施形態によれば、上記第1実施形態の効果に加えて、教示点に付随する補間方法が、第1直線補間から第2直線補間に切り替わる場合にも、経路の切り替え時に停止せずに、ロボット200の各種物理的制約を守った最適な軌道を生成できる。これは、背景技術で述べた直線補間から直線補間に移る手法と比較して、各種物理的制約を守った最適な軌道を生成できるという点で有利である。また、第4実施形態によれば、経路の繋ぎ合せ区間を意識せずに、直進性が必要な区間をユーザが指定できるため、使用性が上がるという効果がある。   According to the fourth embodiment, in addition to the effect of the first embodiment, even when the interpolation method attached to the teaching point is switched from the first linear interpolation to the second linear interpolation, it is not stopped at the switching of the path. In addition, it is possible to generate an optimal trajectory that complies with various physical constraints of the robot 200. This is advantageous in that optimal trajectories can be generated that comply with various physical constraints, as compared to the linear interpolation to linear interpolation method described in the background art. Further, according to the fourth embodiment, since the user can specify a section requiring straightness without being aware of the connection section of the route, there is an effect that usability is increased.

なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。   The present invention is not limited to the embodiments described above, and many modifications can be made within the technical concept of the present invention.

なお、上記実施形態では、関節空間での繋ぎ合せで説明したが、それに限定されるものではなく、タスク空間で同様の繋ぎ合せを行ってもよい。例えば、TCPの位置及び回転に対し、同様の重み関数を用いて経路の繋ぎ合せを行ってもよい。この場合、最終的には、タスク空間上の経路を、関節空間上の経路に変換して、軌道を生成すればよい。   In the above embodiment, although the connection in the joint space has been described, the present invention is not limited thereto, and the same connection may be performed in the task space. For example, similar weighting functions may be used to join the paths for TCP positions and rotations. In this case, finally, the path on the task space may be converted into a path on the joint space to generate a trajectory.

また、上記実施形態においては、軌道生成装置100が1つのコンピュータにより構成される場合について説明したが、複数のコンピュータにより構成される場合についても本発明は適用可能である。この場合、複数のCPUで本発明の演算部が構成されていてもよい。また、軌道生成装置100とロボットコントローラ300とが別のコンピュータで構成される場合について説明したが、1つのコンピュータで構成されていてもよい。この場合、該コンピュータのCPUが、ロボットの経路を生成して、生成した経路に従ってロボットの動作を制御することとなる。   Moreover, although the case where the track | orbit production | generation apparatus 100 was comprised by one computer was demonstrated in the said embodiment, this invention is applicable also when it is comprised by several computer. In this case, the computing unit of the present invention may be configured by a plurality of CPUs. Moreover, although the case where the track | orbit production | generation apparatus 100 and the robot controller 300 were comprised by another computer was demonstrated, you may be comprised by one computer. In this case, the CPU of the computer generates a path of the robot and controls the operation of the robot according to the generated path.

上記実施形態の各処理動作は具体的にはCPU101により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を軌道生成装置100に供給し、軌道生成装置100を構成するコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。   Specifically, each processing operation of the above embodiment is executed by the CPU 101. Therefore, the recording medium recording the program for realizing the functions described above is supplied to the track generation device 100, and the computer (CPU or MPU) that configures the track generation device 100 reads out and executes the program stored in the recording medium. It may be done. In this case, the program itself read from the recording medium implements the functions of the above-described embodiments, and the program itself and the recording medium recording the program constitute the present invention.

また、上記実施形態では、コンピュータ読み取り可能な記録媒体がHDD104であり、HDD104にプログラム140が格納される場合について説明したが、これに限定するものではない。プログラム140は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図3に示すROM102や外部記憶装置600、記録ディスク141等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。   In the above embodiment, the case where the computer readable recording medium is the HDD 104 and the program 140 is stored in the HDD 104 has been described. However, the present invention is not limited to this. The program 140 may be recorded on any recording medium as long as it is a computer readable recording medium. For example, as a recording medium for supplying a program, the ROM 102, the external storage device 600, the recording disk 141, etc. shown in FIG. 3 may be used. A specific example will be described. A flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a non-volatile memory card, a ROM or the like can be used as a recording medium. Further, the program in the above embodiment may be downloaded via a network and executed by a computer.

また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。   Further, the present invention is not limited to the implementation of the functions of the above embodiments by executing the program code read by the computer. The case where the OS (Operating System) or the like operating on the computer performs a part or all of the actual processing based on the instruction of the program code and the processing of the above-described embodiment is realized by the processing is also included. .

さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。   Furthermore, the program code read out from the recording medium may be written to a memory provided to a function expansion board inserted into the computer or a function expansion unit connected to the computer. Based on the instruction of the program code, the CPU included in the function expansion board or the function expansion unit performs a part or all of the actual processing, and the processing of the above embodiment is realized.

また、上記実施形態では、コンピュータが記録媒体や記憶装置に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をASICやFPGA等の専用LSIで構成してもよい。なお、ASICはApplication Specific Integrated Circuit、FPGAはField-Programmable Gate Arrayの頭字語である。   In the above embodiment, the computer executes the program recorded in the recording medium or the storage device to perform the processing. However, the present invention is not limited to this. Some or all of the functions of the operation unit that operates based on a program may be configured by a dedicated LSI such as an ASIC or an FPGA. ASIC is an acronym of Application Specific Integrated Circuit, and FPGA is an acronym of Field-Programmable Gate Array.

100…軌道生成装置、101…CPU(演算部)、140…プログラム、200…ロボット、500…ロボット装置、P11,Q11…第1教示点、P12,Q12…第1補助点、P1a,Q1a…第1途中点、P21,Q21…第2補助点、P22,Q22…第2教示点、P2a,Q2a…第2途中点、s…媒介変数 100 ... trajectory generation unit, 101 ... CPU (arithmetic unit), 140 ... program, 200 ... robot, 500 ... robot apparatus, P 11, Q 11 ... first taught point, P 12, Q 12 ... first auxiliary point, P 1a , Q 1a ... 1st halfway point, P 21 , Q 21 ... 2nd auxiliary point, P 22 , Q 22 ... 2nd teaching point, P 2a , Q 2a ... 2nd halfway point, s ... parameter variable

Claims (11)

演算部が、多関節のロボットの軌道を生成する軌道生成方法であって、
前記演算部が、媒介変数の関数であって、所定の階数まで前記媒介変数で微分した微分値の変化が連続な、第1教示点から第1補助点に向かう第1補間経路を、第1補間方法により生成する第1補間経路生成工程と、
前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数で微分した微分値の変化が連続な、第2補助点から第2教示点に向かう第2補間経路を、第2補間方法により生成する第2補間経路生成工程と、
前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数で微分した微分値の変化が連続な、前記第1補間経路上の第1途中点から前記第2補間経路上の第2途中点に向かう繋ぎ合せ経路を生成する繋ぎ合せ工程と、
前記演算部が、前記第1補間経路における前記第1教示点と前記第1途中点との間の第1局所経路と、前記第2補間経路における前記第2途中点と前記第2教示点との間の第2局所経路とを、前記繋ぎ合せ経路で繋ぎ合せた経路に対し、所定の物理的制約を守るよう前記ロボットの動作時間を最適化する最適化計算によって、前記ロボットの前記軌道を求める最適化計算工程と、を備え、
前記繋ぎ合せ工程では、前記演算部が、前記第1途中点から前記第1補助点までの各第1補間点に対して、前記第1教示点に近い側の第1補間点から順に、1から0に順次遷移する第1重み係数をかけ、前記第2補助点から前記第2途中点までの各第2補間点に対して、前記第2補助点に近い側の第2補間点から順に、1から前記第1重み係数を引いた値となるよう0から1に順次遷移する第2重み係数をかけ、前記第1補間点に前記第1重み係数をかけて求めた点と、前記第2補間点に前記第2重み係数をかけて求めた点とを足し合わせて、前記繋ぎ合せ経路を生成し、
前記繋ぎ合せ工程では、前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数による微分値の変化が連続な、第1重み関数を用いて、前記第1重み係数を求め、前記所定の階数まで前記媒介変数による微分値の変化が連続な、第2重み関数を用いて、前記第2重み係数を求めることを特徴とする軌道生成方法。
The operation unit is a trajectory generation method for generating a trajectory of an articulated robot,
The first interpolation path from the first teaching point to the first auxiliary point, in which the operation unit is a function of a parameter and the change of the derivative differentiated with the parameter to a predetermined rank is continuous, A first interpolation path generation step of generating by an interpolation method;
The second interpolation path from the second auxiliary point to the second teaching point, in which the operation unit is a function of the parameter and the change of the differentiated value differentiated by the parameter to the predetermined rank is continuous, A second interpolation path generation step of generating by a second interpolation method;
The calculation unit is a function of the parameter, and the change of the differentiated value differentiated by the parameter to the predetermined rank is continuous, the first interpolation point on the first interpolation path from the first interpolation point to the second interpolation path A joining step of creating a joining path towards the second halfway point above;
The calculation unit is configured to calculate a first local path between the first teaching point and the first halfway point in the first interpolation path, the second halfway point in the second interpolation path, and the second teaching point. The trajectory of the robot is determined by optimization calculation that optimizes the operation time of the robot so as to meet predetermined physical constraints with respect to a path connecting the second local path between Optimization calculation process to be determined;
In the joining step, the computing unit is configured to, for each first interpolation point from the first halfway point to the first auxiliary point, sequentially from the first interpolation point closer to the first teaching point, to the first interpolation point. The first weighting coefficient, which sequentially transitions from 0 to 0, is applied to each second interpolation point from the second auxiliary point to the second halfway point in order from the second interpolation point closer to the second auxiliary point A point obtained by multiplying a second weighting factor sequentially transitioning from 0 to 1 so as to be a value obtained by subtracting the first weighting factor from 1, and the first interpolation point being multiplied by the first weighting factor; (2) adding the points obtained by multiplying the two interpolation points by the second weighting factor to generate the connection path;
In the joining step, the first weight coefficient is a function of the parameter, and the first weighting function is used to continuously change the derivative value due to the parameter up to the predetermined rank. And determining the second weighting factor by using a second weighting function in which changes of differential values due to the parameters are continuous up to the predetermined rank.
前記第1補間方法及び前記第2補間方法がそれぞれタスク空間で補間経路を生成する方法及び関節空間で補間経路を生成する方法のうちいずれかであり、
前記繋ぎ合せ工程では、前記演算部が、前記第1補間経路及び前記第2補間経路を、前記タスク空間及び前記関節空間のうちいずれかの空間における経路に統一して、前記統一した空間において繋ぎ合せ経路の生成を行うことを特徴とする請求項1記載の軌道生成方法。
The first interpolation method and the second interpolation method are respectively one of a method of generating an interpolation path in a task space and a method of generating an interpolation path in a joint space,
In the connection step, the operation unit unifies the first interpolation path and the second interpolation path into a path in any one of the task space and the joint space, and connects them in the unified space. The trajectory generation method according to claim 1, wherein generation of a combined route is performed.
演算部が、多関節のロボットの軌道を生成する軌道生成方法であって、
前記演算部が、媒介変数の関数であって、所定の階数まで前記媒介変数で微分した微分値の変化が連続な、第1教示点から第1補助点に向かう第1補間経路を、第1補間方法により生成する第1補間経路生成工程と、
前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数で微分した微分値の変化が連続な、第2補助点から第2教示点に向かう第2補間経路を、第2補間方法により生成する第2補間経路生成工程と、
前記演算部が、前記媒介変数の関数であって、前記所定の階数まで前記媒介変数で微分した微分値の変化が連続な、前記第1補間経路上の第1途中点から前記第2補間経路上の第2途中点に向かう繋ぎ合せ経路を生成する繋ぎ合せ工程と、
前記演算部が、前記第1補間経路における前記第1教示点と前記第1途中点との間の第1局所経路と、前記第2補間経路における前記第2途中点と前記第2教示点との間の第2局所経路とを、前記繋ぎ合せ経路で繋ぎ合せた経路に対し、所定の物理的制約を守るよう前記ロボットの動作時間を最適化する最適化計算によって、前記ロボットの前記軌道を求める最適化計算工程と、を備え、
前記第1補間方法及び前記第2補間方法がそれぞれタスク空間で補間経路を生成する方法及び関節空間で補間経路を生成する方法のうちいずれかであり、
前記繋ぎ合せ工程では、前記演算部が、前記第1補間経路及び前記第2補間経路を、前記タスク空間及び前記関節空間のうちいずれかの空間における経路に統一して、前記統一した空間において繋ぎ合せ経路の生成を行うことを特徴とする軌道生成方法。
The operation unit is a trajectory generation method for generating a trajectory of an articulated robot,
The first interpolation path from the first teaching point to the first auxiliary point, in which the operation unit is a function of a parameter and the change of the derivative differentiated with the parameter to a predetermined rank is continuous, A first interpolation path generation step of generating by an interpolation method;
The second interpolation path from the second auxiliary point to the second teaching point, in which the operation unit is a function of the parameter and the change of the differentiated value differentiated by the parameter to the predetermined rank is continuous, A second interpolation path generation step of generating by a second interpolation method;
The calculation unit is a function of the parameter, and the change of the differentiated value differentiated by the parameter to the predetermined rank is continuous, the first interpolation point on the first interpolation path from the first interpolation point to the second interpolation path A joining step of creating a joining path towards the second halfway point above;
The calculation unit is configured to calculate a first local path between the first teaching point and the first halfway point in the first interpolation path, the second halfway point in the second interpolation path, and the second teaching point. The trajectory of the robot is determined by optimization calculation that optimizes the operation time of the robot so as to meet predetermined physical constraints with respect to a path connecting the second local path between Optimization calculation process to be determined;
The first interpolation method and the second interpolation method are respectively one of a method of generating an interpolation path in a task space and a method of generating an interpolation path in a joint space,
In the connection step, the operation unit unifies the first interpolation path and the second interpolation path into a path in any one of the task space and the joint space, and connects them in the unified space. A trajectory generation method characterized in that a combined route is generated.
前記所定の階数は、3であることを特徴とする請求項1乃至3のいずれか1項に記載の軌道生成方法。   The trajectory generation method according to any one of claims 1 to 3, wherein the predetermined rank is three. 前記繋ぎ合せ工程では、前記演算部が、シグモイド関数を用いて、前記第1重み係数を求め、シグモイド関数を用いて、前記第2重み係数を求めることを特徴とする請求項1又は2に記載の軌道生成方法。 In the joining together process, the calculation unit, by using a sigmoid function, obtains a first weight factor, using a sigmoid function, according to claim 1 or 2, characterized in that determining said second weighting factor Trajectory generation method. 前記演算部が、前記第1途中点及び前記第2途中点のうち、少なくとも一方の途中点がユーザにより設定される設定工程を更に備えたことを特徴とする請求項1乃至5のいずれか1項に記載の軌道生成方法。   The said operation part was further provided with the setting process by which the at least one waypoint is set by the user among the said 1st waypoint and the said 2nd waypoint, It is characterized by the above-mentioned. The trajectory generation method described in the section. 前記所定の物理的制約は、前記ロボットの関節角速度の制約及び前記ロボットの先端の速度の制約のうち少なくとも1つを含むほか、前記ロボットの関節トルクの制約、前記ロボットの関節角加速度の制約、前記ロボットの関節角加加速度の制約及び前記ロボットの先端の加速度の制約のうち少なくとも1つを含むことを特徴とする請求項1乃至6のいずれか1項に記載の軌道生成方法。   The predetermined physical constraint includes at least one of a constraint on joint angular velocity of the robot and a constraint on velocity of a tip of the robot, a constraint on joint torque of the robot, a constraint on joint angular acceleration of the robot, The trajectory generation method according to any one of claims 1 to 6, further comprising at least one of a constraint on joint angle jerk of the robot and a constraint on acceleration on a tip of the robot. 請求項1乃至7のいずれか1項に記載の軌道生成方法の各工程を実行する前記演算部を備えた軌道生成装置。   A trajectory generation device comprising the operation unit that executes each step of the trajectory generation method according to any one of claims 1 to 7. 前記多関節のロボットと、請求項8に記載の軌道生成装置と、を備え、前記軌道生成装置により生成した軌道に基づき、前記ロボットの動作を制御することを特徴とするロボット装置。   A robot apparatus comprising: the articulated robot; and a trajectory generation device according to claim 8, wherein an operation of the robot is controlled based on a trajectory generated by the trajectory generation device. コンピュータに、請求項1乃至7のいずれか1項に記載の軌道生成方法の各工程を実行させるためのプログラム。   The program for making a computer perform each process of the track | orbit production | generation method of any one of Claims 1 thru | or 7. 請求項10に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。   The computer-readable recording medium which recorded the program of Claim 10.
JP2014185867A 2014-09-12 2014-09-12 Track generation method, track generation apparatus, robot apparatus, program and recording medium Active JP6501470B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014185867A JP6501470B2 (en) 2014-09-12 2014-09-12 Track generation method, track generation apparatus, robot apparatus, program and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014185867A JP6501470B2 (en) 2014-09-12 2014-09-12 Track generation method, track generation apparatus, robot apparatus, program and recording medium

Publications (2)

Publication Number Publication Date
JP2016055404A JP2016055404A (en) 2016-04-21
JP6501470B2 true JP6501470B2 (en) 2019-04-17

Family

ID=55756939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014185867A Active JP6501470B2 (en) 2014-09-12 2014-09-12 Track generation method, track generation apparatus, robot apparatus, program and recording medium

Country Status (1)

Country Link
JP (1) JP6501470B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111390902A (en) * 2020-01-06 2020-07-10 广州视源电子科技股份有限公司 Trajectory planning method, trajectory planning device, equipment and storage medium

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7024215B2 (en) * 2017-06-08 2022-02-24 株式会社デンソー Mobile control device and control system
JP7444588B2 (en) 2019-11-25 2024-03-06 ファナック株式会社 Trajectory generation device, automatic position control device, and trajectory generation method
CN112666949B (en) * 2020-12-24 2023-03-17 武汉理工大学 Ship path planning method, system and storage medium
CN113534743B (en) * 2021-06-23 2023-02-07 广东安达智能装备股份有限公司 Continuous motion track control and optimization method of glue dispenser by combining space curve interpolation algorithm
CN113561186B (en) * 2021-09-24 2021-12-07 季华实验室 Evaluation method for manipulator path planning result
CN115026842B (en) * 2022-08-11 2022-12-02 深圳市创智机器人有限公司 Teaching track processing method and device, terminal device and storage medium
CN117406669B (en) * 2023-12-14 2024-04-12 法奥意威(苏州)机器人系统有限公司 Interpolation method, interpolation device, electronic equipment and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04116704A (en) * 1990-09-07 1992-04-17 Mitsubishi Heavy Ind Ltd Reproduction control method for position of robot and the like
JPH09146622A (en) * 1995-11-16 1997-06-06 Matsushita Electric Ind Co Ltd Method and device for generating track of robot
JP4518033B2 (en) * 2006-03-22 2010-08-04 トヨタ自動車株式会社 Route creation method, moving body, and moving body control system
US9517558B2 (en) * 2011-09-02 2016-12-13 Brooks Automation Inc. Time-optimal trajectories for robotic transfer devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111390902A (en) * 2020-01-06 2020-07-10 广州视源电子科技股份有限公司 Trajectory planning method, trajectory planning device, equipment and storage medium
CN111390902B (en) * 2020-01-06 2022-09-06 广州视源电子科技股份有限公司 Trajectory planning method, trajectory planning device, apparatus, and storage medium

Also Published As

Publication number Publication date
JP2016055404A (en) 2016-04-21

Similar Documents

Publication Publication Date Title
JP6501470B2 (en) Track generation method, track generation apparatus, robot apparatus, program and recording medium
JP7222803B2 (en) Trajectory planning device, trajectory planning method and program
EP2835228B1 (en) Robot apparatus and robot controlling method
Beudaert et al. 5-Axis tool path smoothing based on drive constraints
KR101798652B1 (en) Method and device to control a manipulator
JP2019517929A (en) Trajectory planning method of point-to-point movement in robot joint space
CN109551485B (en) Motion control method, device and system and storage medium
JP2015202523A (en) Teaching system, robot system and teaching method
JP7237447B2 (en) Information processing method, program, recording medium, information processing device, robot system, and article manufacturing method
JP5452788B1 (en) Numerical controller
JP2019135076A (en) Locus generation method and device
JP2007000954A (en) Robot teaching device and method
JP2009134352A (en) Robot motion path creating device, and robot motion path creating method
JP2015051469A (en) Robot controller, robot apparatus, robot control method, program and recording medium
JP6360301B2 (en) Operation program creation method and robot control method
JP2874238B2 (en) Control method of articulated robot
JP5858168B2 (en) Real-time weaving motion control apparatus and method
JP4842656B2 (en) Welding robot controller
JP2022061010A (en) Motion parameterization with no significant point of soft robot manipulator
JP6057284B2 (en) Articulated robot and semiconductor wafer transfer device
JP6123595B2 (en) Speed control method for 2-axis robot
KR20160003774A (en) Inverse kinematic solution for multi-joint link mechanism, and device for creating instructional data by using inverse kinematic solution
JP5474739B2 (en) Interference detection method and interference detection apparatus
Sun et al. A novel tool path smoothing algorithm of 6R manipulator considering pose-dependent dynamics by designing asymmetrical FIR filters
JP2015058493A (en) Control device, robot system, robot, robot operation information generation method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190319

R151 Written notification of patent or utility model registration

Ref document number: 6501470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151