JP2023135808A - Route generation method for robot system and control method of robot system - Google Patents

Route generation method for robot system and control method of robot system Download PDF

Info

Publication number
JP2023135808A
JP2023135808A JP2022041088A JP2022041088A JP2023135808A JP 2023135808 A JP2023135808 A JP 2023135808A JP 2022041088 A JP2022041088 A JP 2022041088A JP 2022041088 A JP2022041088 A JP 2022041088A JP 2023135808 A JP2023135808 A JP 2023135808A
Authority
JP
Japan
Prior art keywords
interpolation
robot
threshold
operation commands
commands
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022041088A
Other languages
Japanese (ja)
Inventor
勇貴 清澤
Yuki Kiyosawa
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2022041088A priority Critical patent/JP2023135808A/en
Publication of JP2023135808A publication Critical patent/JP2023135808A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

To avoid operation stopping of a robot because the number of operation commands is insufficient.SOLUTION: A route generation method includes: a step of storing in a storing part operation commands to designate target positions of a robot received from an external instrument; a step in which when the number of operation commands stored in the storing part is a first threshold Th1 or more, a first interpolation process using Th1-operation commands is executed to interpolate a route including a space between a target position designated at least by the first operation command and a target position designated by the next operation command, of the Th1-operation commands; and a step in which when the number of operation commands stored in the storing part is a second threshold Th2 or more that is smaller than the first threshold Th1 and is less than the first threshold Th1, a second interpolation process using Th2-operation commands is executed to interpolate a route between the target position designated by the first operation command and the target position designated by the next operation command, of the Th2-operation commands.SELECTED DRAWING: Figure 3

Description

本開示は、ロボットシステムの経路生成方法、および、ロボットシステムの制御方法に関する。 The present disclosure relates to a route generation method for a robot system and a method for controlling the robot system.

特許文献1には、ロボットシステムを遠隔で制御するために、外部コンピューターが、動作指令を生成し、ロボットの決められた部位の目標位置を示す情報を含む動作指令を、通信を介してロボットシステムに順次出力することが記載されている。 Patent Document 1 discloses that in order to remotely control a robot system, an external computer generates a motion command, and transmits the motion command including information indicating the target position of a predetermined part of the robot to the robot system via communication. It is stated that the files should be output sequentially.

特許文献1に記載された技術のように、遠隔のコンピューターから、ロボットの決められた部位の目標位置を示す動作指令が送られてくる場合、ロボットシステムのロボットコントローラーは、受信した複数の目標位置を示す情報から、複数の目標位置の間の経路を補間して軌道を生成し、生成した軌道に沿ってロボットを動作させる。 As in the technology described in Patent Document 1, when a remote computer sends an operation command indicating the target position of a determined part of the robot, the robot controller of the robot system A trajectory is generated by interpolating paths between multiple target positions based on information indicating the target position, and the robot is operated along the generated trajectory.

精度の高い補間の処理のためには、複数の動作指令を使用する必要がある。このため、ロボットシステムは、外部コンピューターから受信した動作指令をバッファリングしておき、バッファリングした動作指令を使用して補間処理を行うことが一般的である。例えば、ロボットシステムは、指定された目標位置に到達するたびに、現在位置より先の目標位置のデータについて、決められた数の目標位置のデータをバッファから読み出し、補間処理を行う。 For highly accurate interpolation processing, it is necessary to use multiple motion commands. For this reason, the robot system generally buffers motion commands received from an external computer and performs interpolation processing using the buffered motion commands. For example, each time a robot system reaches a specified target position, it reads out a predetermined number of target position data from a buffer and performs interpolation processing on data for target positions beyond the current position.

特開2021-154444号公報Japanese Patent Application Publication No. 2021-154444

通信不良により、ロボットシステムが動作指令を受信できない期間が続いた場合には、補間処理が実行されるタイミングで、バッファリングされている動作指令の数が、補間処理に必要な数に対して不足することがある。そのような場合、ロボットシステムは補間処理を実行することができないため、ロボットの動作を継続することができなかった。 If the robot system is unable to receive movement commands due to communication failure, the number of buffered movement commands may be insufficient for the number required for interpolation processing at the timing when interpolation processing is executed. There are things to do. In such a case, the robot system could not perform interpolation processing, so the robot could not continue operating.

本開示の一形態によれば、ロボットシステムの経路生成方法が提供される。このロボットシステムの経路生成方法は、外部機器から、ロボットの目標位置を指定する動作指令を受信して、前記動作指令を記憶部に格納する受信ステップと、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が第1閾値Th1以上である場合に、Th1個の前記動作指令を使用した第1補間処理を実行することにより、Th1個の前記動作指令のうち、少なくとも最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間を含む経路を、補間する第1補間ステップと、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が前記第1閾値Th1より小さい第2閾値Th2以上であり、かつ前記第1閾値Th1未満である場合に、Th2個の前記動作指令を使用した第2補間処理を実行することにより、Th2個の前記動作指令のうち、最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間の経路を補間する第2補間ステップと、を含む。 According to one aspect of the present disclosure, a route generation method for a robot system is provided. This route generation method for a robot system includes a receiving step of receiving a motion command specifying a target position of the robot from an external device and storing the motion command in a storage section; When the number of the plurality of operation commands specifying the target position further ahead and in which the order of execution of the operation commands is consecutive is greater than or equal to the first threshold Th1, By executing the first interpolation process using the movement commands, the target position specified by at least the first movement command among the Th1 movement commands and the target position specified by the next movement command are determined. a first interpolation step of interpolating a route including a route between the target position and the target position; and a first interpolation step that specifies the target position beyond the current position stored in the storage unit, the operation command being executed. If the number of the plurality of operation commands whose order of execution is consecutive is greater than or equal to a second threshold Th2 smaller than the first threshold Th1, and less than the first threshold Th1, Th2 of the operation commands are By executing the used second interpolation process, the difference between the target position specified by the first movement command and the target position specified by the next movement command among the Th2 movement commands is determined. a second interpolation step of interpolating a path between the two.

本開示の他の形態によれば、ロボットシステムの制御方法が提供される。このロボットシステムの制御方法は、外部機器から、ロボットの目標位置を指定する動作指令を受信して、前記動作指令を記憶部に格納する受信ステップと、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が第1閾値Th1以上である場合に、Th1個の前記動作指令を使用した第1補間処理を実行することにより、Th1個の前記動作指令のうち、少なくとも最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間を含む経路を、補間する第1補間ステップと、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が前記第1閾値Th1より小さい第2閾値Th2以上であり、かつ前記第1閾値Th1未満である場合に、Th2個の前記動作指令を使用した第2補間処理を実行することにより、Th2個の前記動作指令のうち、最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間の経路を補間する第2補間ステップと、補完された経路に沿って、前記ロボットを動作させる動作ステップと、を含む。 According to another aspect of the present disclosure, a method of controlling a robot system is provided. This robot system control method includes a receiving step of receiving a motion command specifying a target position of the robot from an external device and storing the motion command in a storage section; When the number of the plurality of motion commands specifying the previous target position and in which the order of execution of the motion commands is consecutive is greater than or equal to the first threshold Th1, By executing the first interpolation process using the movement commands, the target position specified by at least the first movement command and the target position specified by the next movement command among the Th1 movement commands are determined. a first interpolation step for interpolating a route including a path to and from a target position; and the operation command, which is stored in the storage unit and specifies the target position beyond the current position, and the operation command is executed. If the number of the plurality of operation commands whose order is consecutive is equal to or greater than a second threshold Th2 smaller than the first threshold Th1, and less than the first threshold Th1, Th2 of the operation commands are used. By executing the second interpolation process, the distance between the target position specified by the first movement command and the target position specified by the next movement command among the Th2 movement commands is determined. a second interpolation step of interpolating the path of the robot; and an operation step of operating the robot along the interpolated path.

ロボットシステムの全体構成を示す概略図である。1 is a schematic diagram showing the overall configuration of a robot system. ロボットコントローラーの機能構成を示すブロック図である。FIG. 2 is a block diagram showing the functional configuration of a robot controller. 目標地点の間の経路を補間する方法を説明するための図である。FIG. 3 is a diagram for explaining a method of interpolating a route between target points. 目標地点の間の経路を補間する他の方法を説明するための図である。FIG. 7 is a diagram for explaining another method of interpolating a route between target points. 補間経路の生成処理のフローチャートである。7 is a flowchart of interpolation route generation processing. 他の実施形態1における補間方法を説明するための図である。FIG. 7 is a diagram for explaining an interpolation method in another embodiment 1. FIG.

A1.実施形態:
図1は、本実施形態に係るロボットシステム10の全体構成を示す概略図である。ロボットシステム10は、ロボット100と、ロボットコントローラー200と、を備える。
A1. Embodiment:
FIG. 1 is a schematic diagram showing the overall configuration of a robot system 10 according to this embodiment. The robot system 10 includes a robot 100 and a robot controller 200.

ロボット100は、6個の関節J1~J6を備えている。ロボット100は、関節J1~J6それぞれをサーボモーターで回転または直進させることにより、アーム50の先端部に取りつけられたエンドエフェクター80を、3次元空間中の指定された位置に指定された姿勢で配することができる。ロボット100は、アーム50と、サーボモーター60と、角度センサー65と、減速機70と、エンドエフェクター80と、力覚センサー85と、基台90とを備える。 The robot 100 includes six joints J1 to J6. The robot 100 places the end effector 80 attached to the tip of the arm 50 at a specified position in a three-dimensional space in a specified posture by rotating or moving straight joints J1 to J6 using servo motors. can do. The robot 100 includes an arm 50, a servo motor 60, an angle sensor 65, a reduction gear 70, an end effector 80, a force sensor 85, and a base 90.

アーム50は、6個の関節J1~J6を備える。関節J1~J6は回転関節である。また、アーム50は、アーム要素54、55、56、57、58、59を含む。関節J1~J5それぞれには、サーボモーター60と、角度センサー65と、減速機70とが備えられている。図1においては、技術の理解を容易にするため、関節J1にのみ、サーボモーター60と、角度センサー65と、減速機70とを図示している。 Arm 50 includes six joints J1 to J6. Joints J1 to J6 are rotational joints. Arm 50 also includes arm elements 54, 55, 56, 57, 58, 59. Each of the joints J1 to J5 is equipped with a servo motor 60, an angle sensor 65, and a speed reducer 70. In FIG. 1, the servo motor 60, the angle sensor 65, and the speed reducer 70 are illustrated only at the joint J1 to facilitate understanding of the technology.

アーム要素54は、一方の端において、減速機70に支持されている。アーム要素54と減速機70との接続部分は、関節J1を構成している。関節J1は、ねじり関節である。アーム要素55は、一方の端において、アーム要素54に接続されている。アーム要素55とアーム要素54との接続部分は、関節J2を構成している。関節J2は、曲げ関節である。アーム要素56は、一方の端において、アーム要素55に接続されている。アーム要素56とアーム要素55との接続部分は、関節J3を構成している。関節J3は、曲げ関節である。 The arm element 54 is supported at one end by a speed reducer 70. The connecting portion between the arm element 54 and the reducer 70 constitutes a joint J1. Joint J1 is a torsion joint. Arm element 55 is connected to arm element 54 at one end. A connecting portion between arm element 55 and arm element 54 constitutes a joint J2. Joint J2 is a bending joint. Arm element 56 is connected to arm element 55 at one end. The connecting portion between arm element 56 and arm element 55 constitutes joint J3. Joint J3 is a bending joint.

アーム要素57は、一方の端において、アーム要素56に接続されている。アーム要素57とアーム要素56との接続部分は、関節J4を構成している。関節J4は、ねじり関節である。アーム要素58は、一方の端において、アーム要素57に接続されている。アーム要素58とアーム要素57との接続部分は、関節J5を構成している。関節J5は、曲げ関節である。アーム要素59は、一方の端において、アーム要素58に接続されている。アーム要素59とアーム要素58との接続部分は、関節J6を構成している。関節J6は、ねじり関節である。アーム要素59の他端には、力覚センサー85を介して、エンドエフェクター80が取り付けられる。 Arm element 57 is connected to arm element 56 at one end. The connecting portion between arm element 57 and arm element 56 constitutes joint J4. Joint J4 is a torsion joint. Arm element 58 is connected to arm element 57 at one end. The connecting portion between arm element 58 and arm element 57 constitutes joint J5. Joint J5 is a bending joint. Arm element 59 is connected to arm element 58 at one end. The connecting portion between arm element 59 and arm element 58 constitutes joint J6. Joint J6 is a torsion joint. An end effector 80 is attached to the other end of the arm element 59 via a force sensor 85.

サーボモーター60は、関節J1を駆動するため、ロボットコントローラー200から電流を供給されて、出力軸60oを回転させる。サーボモーター60の出力軸60oは、減速機70の入力軸70iに接続されている。関節J2~J6それぞれに設けられているサーボモーター60も、対応する関節を同様に駆動する。 The servo motor 60 is supplied with current from the robot controller 200 to rotate the output shaft 60o in order to drive the joint J1. An output shaft 60o of the servo motor 60 is connected to an input shaft 70i of the reducer 70. The servo motors 60 provided in each of the joints J2 to J6 similarly drive the corresponding joints.

角度センサー65は、関節J1の回転角度として、サーボモーター60の出力軸60oの角度位置を検出し、検出値をロボットコントローラー200に出力する。角度センサー65は、ロータリエンコーダーである。関節J2~J6それぞれに設けられている角度センサー65も、対応する関節の回転角度を同様に検出する。 The angle sensor 65 detects the angular position of the output shaft 60o of the servo motor 60 as the rotation angle of the joint J1, and outputs the detected value to the robot controller 200. Angle sensor 65 is a rotary encoder. The angle sensors 65 provided in each of the joints J2 to J6 similarly detect the rotation angle of the corresponding joint.

減速機70は、その入力軸70iに対する回転入力を、回転入力より回転速度が低い回転出力に変換して、出力軸から出力する。減速機70の出力軸には、アーム要素54が固定されている。なお、図1においては、減速機70の出力軸の図示を省略している。関節J1を構成するアーム要素54には、減速機70を介して、サーボモーター60の出力軸60oの回転が伝えられる。この結果、関節J1が回転される。関節J1が回転することにより、アーム要素54が動かされる。関節J2~J6それぞれに設けられている減速機70も、対応するサーボモーター60の回転出力を、接続されているアーム要素に伝達するように機能する。 The speed reducer 70 converts the rotational input to the input shaft 70i into a rotational output having a lower rotational speed than the rotational input, and outputs the rotational output from the output shaft. An arm element 54 is fixed to the output shaft of the speed reducer 70. Note that in FIG. 1, illustration of the output shaft of the reduction gear 70 is omitted. Rotation of the output shaft 60o of the servo motor 60 is transmitted to the arm element 54 constituting the joint J1 via the reduction gear 70. As a result, joint J1 is rotated. The arm element 54 is moved by rotation of the joint J1. The reducers 70 provided in each of the joints J2 to J6 also function to transmit the rotational output of the corresponding servo motor 60 to the connected arm element.

ロボット100においては、関節J1~J6それぞれが回転可能である。各関節の回転により、関節を介して接続されている2つのアーム要素の相対角度が変化する。従って、アーム要素59に取り付けられたエンドエフェクター80が、任意の位置に任意の姿勢で配される。 In the robot 100, each of the joints J1 to J6 is rotatable. Rotation of each joint changes the relative angle of the two arm elements connected via the joint. Therefore, the end effector 80 attached to the arm element 59 can be placed at any position and in any orientation.

エンドエフェクター80は、力覚センサー85を介して、アーム要素59に取り付けられている。エンドエフェクター80は、例えば、不図示のワークを把持するための装置である。技術の理解を容易にするために、図1において、エンドエフェクター80を筒状部材として表示している。ロボット100の制御点は、例えば、アーム要素59の回転軸上であってアーム要素59から予め決められたの距離にある位置に設定される。制御点は、3次元空間におけるエンドエフェクター80の位置を代表する地点のことである。制御点を、TCP(Tool Center Point)とよぶことがある。実施形態においては、ロボットコントローラー200は、ロボット100を駆動することによって、ロボット座標系RCにおいて制御点の位置を制御する。 The end effector 80 is attached to the arm element 59 via a force sensor 85. The end effector 80 is, for example, a device for gripping a workpiece (not shown). To facilitate understanding of the technology, the end effector 80 is shown as a cylindrical member in FIG. 1 . The control point of the robot 100 is set, for example, at a position on the rotation axis of the arm element 59 and at a predetermined distance from the arm element 59. The control point is a point representing the position of the end effector 80 in three-dimensional space. A control point is sometimes called a TCP (Tool Center Point). In the embodiment, the robot controller 200 controls the position of a control point in the robot coordinate system RC by driving the robot 100.

力覚センサー85は、アーム要素59に取り付けられている。力覚センサー85は、ロボット座標系とは異なるセンサー座標系において、エンドエフェクター80に作用するX軸、Y軸、Z軸の検出軸に平行な力の大きさと、各検出軸回りのトルクの大きさとを検出し、検出値をロボットコントローラー200に出力する。センサー座標系は、力覚センサー85上の点を原点とした三次元直交座標系である。なお、ロボットコントローラー200は、センサー座標系と、ロボット座標系とを対応付けた対応関係データを有しており、センサー座標系の座標値を、ロボット座標系の座標値に変換できるものとする。 Force sensor 85 is attached to arm element 59. The force sensor 85 detects the magnitude of force acting on the end effector 80 parallel to the detection axes of the X, Y, and Z axes and the magnitude of torque around each detection axis in a sensor coordinate system different from the robot coordinate system. and outputs the detected value to the robot controller 200. The sensor coordinate system is a three-dimensional orthogonal coordinate system with the point on the force sensor 85 as the origin. Note that the robot controller 200 has correspondence data that associates the sensor coordinate system with the robot coordinate system, and can convert the coordinate values of the sensor coordinate system into the coordinate values of the robot coordinate system.

基台90は、ロボット100を構成する部材を支持している。基台90を床に固定することで、ロボット100が床の上に設置される。 The base 90 supports members that make up the robot 100. By fixing the base 90 to the floor, the robot 100 is installed on the floor.

ロボットコントローラー200は、制御装置500から受信した動作指令に従って、ロボット100およびエンドエフェクター80を制御する。ロボットコントローラー200は、ロボット100と通信可能に接続されている。また、ロボットコントローラー200は、制御装置500と通信可能に接続されている。制御装置500を外部機器ともよぶ。 Robot controller 200 controls robot 100 and end effector 80 according to operation commands received from control device 500. The robot controller 200 is communicably connected to the robot 100. Further, the robot controller 200 is communicably connected to the control device 500. The control device 500 is also referred to as an external device.

実施形態においては、基台90の位置を基準として、ロボット100が設置された空間を規定する座標系をロボット座標系RCと表す。ロボット座標系RCは、水平面上において、互いに直交するX軸およびY軸と、鉛直上向きを正方向とするZ軸と、によって規定される三次元直交座標系である。以下、ロボット座標系RCにおけるX軸のことを、単にX軸と表す。ロボット座標系RCにおけるY軸のことを、単にY軸と表す。ロボット座標系RCにおけるZ軸のことを、単にZ軸と表す。ロボット座標系RCにおける位置は、X軸方向の位置と、Y軸方向の位置と、Z軸方向の位置とにより特定することができる。また、X軸回りの回転の角度位置RX、Y軸回りの回転の角度位置RY、Z軸回りの回転の角度位置RZにより、ロボット座標系RCにおける任意の姿勢を表すことができる。以下、「位置」と表記した場合、狭義の位置に加えて姿勢をも意味する。 In the embodiment, a coordinate system that defines a space in which the robot 100 is installed with reference to the position of the base 90 is referred to as a robot coordinate system RC. The robot coordinate system RC is a three-dimensional orthogonal coordinate system defined on a horizontal plane by an X-axis and a Y-axis that are orthogonal to each other, and a Z-axis whose positive direction is vertically upward. Hereinafter, the X axis in the robot coordinate system RC will be simply referred to as the X axis. The Y-axis in the robot coordinate system RC is simply referred to as the Y-axis. The Z axis in the robot coordinate system RC is simply referred to as the Z axis. The position in the robot coordinate system RC can be specified by the position in the X-axis direction, the position in the Y-axis direction, and the position in the Z-axis direction. Further, an arbitrary posture in the robot coordinate system RC can be expressed by the angular position RX of rotation around the X axis, the angular position RY of rotation around the Y axis, and the angular position RZ of rotation around the Z axis. Hereinafter, when the term "position" is used, it means not only position in a narrow sense but also posture.

また、ロボットコントローラー200は、ロボット100の制御点の制御について、PTP制御(Point To Point control)と、CP制御(Continuous Path control)とを行うことができる。PTP制御は、目標とする位置と姿勢のみを指定され、目標とする位置に至るまでの動作経路を指定されない制御である。CP制御は、動作経路に沿って、位置と姿勢を指定される制御である。実施形態においては、ロボット100は、CP制御により制御される。 Further, the robot controller 200 can perform PTP control (Point To Point control) and CP control (Continuous Path control) regarding control of control points of the robot 100. PTP control is control in which only the target position and orientation are specified, and the movement path to reach the target position is not specified. CP control is control in which the position and orientation are specified along the motion path. In the embodiment, the robot 100 is controlled by CP control.

図2は、ロボットコントローラー200の機能構成を示すブロック図である。ロボットコントローラー200は、メモリー201と、CPU(Central Processing Unit)202とを備える。メモリー201は、ロボットコントローラー200が実行する各種処理に使用されるプログラムおよびデータを記憶する。また、メモリー201は、CPU202のワークメモリとして使用される。すなわち、メモリー201は記憶部として機能する。CPU202は、メモリー201に記憶されたプログラムを実行することにより、様々な機能を実現する。 FIG. 2 is a block diagram showing the functional configuration of the robot controller 200. The robot controller 200 includes a memory 201 and a CPU (Central Processing Unit) 202. The memory 201 stores programs and data used for various processes executed by the robot controller 200. Furthermore, the memory 201 is used as a work memory for the CPU 202. That is, the memory 201 functions as a storage section. The CPU 202 implements various functions by executing programs stored in the memory 201.

ロボットコントローラー200は、機能的には、位置演算部210と、指令出力部220と、動作制御部230とを有する。位置演算部210、指令出力部220、動作制御部230それぞれの機能はCPU202により実現される。 Functionally, the robot controller 200 includes a position calculation section 210, a command output section 220, and an operation control section 230. The functions of the position calculation section 210, command output section 220, and operation control section 230 are realized by the CPU 202.

位置演算部210は、制御点の位置を演算し、求めた制御点の位置を示す値を指令出力部220に出力する。ロボットコントローラー200のメモリー201には、関節J1~J6それぞれを駆動するサーボモーター60それぞれの回転角度の組み合わせと、ロボット座標系における制御点の位置とを対応付けた位置対応データがあらかじめ記憶されている。位置演算部210は、決められた時間毎に、位置対応データと、関節J1~J6それぞれを駆動するサーボモーター60それぞれに対応する角度センサー65の検出値と、に基づいて、制御点のロボット座標系RCにおける制御点の位置を示す座標を演算する。位置演算部210は、求めた制御点の位置を示す座標の値を指令出力部220に出力する。 The position calculation unit 210 calculates the position of the control point and outputs a value indicating the determined position of the control point to the command output unit 220. The memory 201 of the robot controller 200 stores in advance position correspondence data that associates the combinations of rotation angles of the servo motors 60 that drive the joints J1 to J6 with the positions of control points in the robot coordinate system. . The position calculation unit 210 calculates the robot coordinates of the control point at predetermined time intervals based on the position correspondence data and the detected values of the angle sensors 65 corresponding to the servo motors 60 that drive the joints J1 to J6. Calculate the coordinates indicating the position of the control point in the system RC. The position calculation unit 210 outputs the coordinate values indicating the determined position of the control point to the command output unit 220.

指令出力部220は、制御装置500から、制御点の目標地点を示す座標値と、周期とを含む動作指令を受け付ける。周期は、制御点を目標地点まで遷移させる時間を指定する値である。 The command output unit 220 receives an operation command including a coordinate value indicating a target point of a control point and a cycle from the control device 500. The period is a value that specifies the time for transitioning the control point to the target point.

動作指令においては、1つの周期において、制御点の移動先である目標位置を示す目標地点が指定されるものの、目標地点までの経路については指定されていない。よって、指令出力部220は、連続する2以上の動作指令で指定された目標地点の間の経路を補間する。 In the operation command, a target point indicating a target position to which a control point is to be moved is specified in one cycle, but a route to the target point is not specified. Therefore, the command output unit 220 interpolates a route between target points specified by two or more consecutive operation commands.

指令出力部220は、例えば、2つの目標地点の間の経路を補間により求める。指令出力部220は、求めた経路を、N個に分割し、分割位置における座標値を補間点として求める。補間処理の詳細については後述する。 For example, the command output unit 220 obtains a route between two target points by interpolation. The command output unit 220 divides the determined route into N parts and determines coordinate values at the divided positions as interpolation points. Details of the interpolation process will be described later.

さらに、指令出力部220は、補間点の座標値に基づいて、モーター角度指令を生成する。モーター角度指令は、関節J1~J6それぞれを駆動するサーボモーター60の回転方向と回転量を指定する指令である。ロボットコントローラー200のメモリー201には、ロボット座標系における制御点の位置と、関節J1~J6それぞれを駆動するサーボモーター60それぞれの回転角度の組み合わせと、を対応付けた関節角対応データがあらかじめ記憶されている。指令出力部220は、各補間点の座標値と、関節角対応データと、から生成したモーター角度指令を、順次、動作制御部230に出力する。 Furthermore, the command output unit 220 generates a motor angle command based on the coordinate values of the interpolation points. The motor angle command is a command that specifies the rotation direction and amount of rotation of the servo motor 60 that drives each of the joints J1 to J6. The memory 201 of the robot controller 200 stores in advance joint angle correspondence data that associates the positions of control points in the robot coordinate system with the combinations of rotation angles of the servo motors 60 that drive each of the joints J1 to J6. ing. The command output unit 220 sequentially outputs motor angle commands generated from the coordinate values of each interpolation point and the joint angle correspondence data to the motion control unit 230.

動作制御部230は、指令出力部220から出力されたモーター角度指令に基づいて、各軸のサーボモーター60を作動させる。 The operation control section 230 operates the servo motor 60 of each axis based on the motor angle command output from the command output section 220.

制御装置500は、動作指令をロボットコントローラー200に送信する。制御装置500は遠隔地にあるコンピューターである。遠隔地とは、制御装置500を操作する作業者が、ロボットシステム10を直接視認することができない場所のことである。制御装置500は、メモリー501と、CPU502とを備える。メモリー501は、制御装置500が実行する各種処理に使用されるプログラムおよびデータを記憶する。メモリー501には、ロボットシステム10を制御するための制御プログラムが記憶されている。CPU502が、制御プログラムを実行することにより、ロボットコントローラー200に動作指令が送信される。動作指令は、実行される順で、ロボットコントローラー200に送信される。 Control device 500 transmits operation commands to robot controller 200. Control device 500 is a computer located at a remote location. A remote location is a location where the worker operating the control device 500 cannot directly view the robot system 10. The control device 500 includes a memory 501 and a CPU 502. Memory 501 stores programs and data used for various processes executed by control device 500. A control program for controlling the robot system 10 is stored in the memory 501. When the CPU 502 executes the control program, an operation command is transmitted to the robot controller 200. The operation commands are transmitted to the robot controller 200 in the order in which they are executed.

ここで、遠隔地にある制御装置500からネットワークを介して、動作指令を受信する場合には、ネットワークに発生した通信異常等により、ロボットコントローラー200が動作指令を制御装置500から受信できない状態が継続することが想定される。動作指令を受信できない状態であっても、ロボットコントローラー200は、メモリー201に格納されている動作指令の数が、通常使用される補間処理に必要な数以上である場合には、補間処理を実行し、ロボット100を動作させることができる。しかし、メモリー201に格納されている動作指令の数が、補間処理の実行に必要な数未満となった場合には、ロボットコントローラー200は、補間処理を実行することができない。 Here, when receiving operation commands from the control device 500 in a remote location via the network, the robot controller 200 continues to be unable to receive operation commands from the control device 500 due to a communication error that occurs in the network. It is assumed that Even if the robot controller 200 cannot receive movement commands, if the number of movement commands stored in the memory 201 is greater than or equal to the number required for normally used interpolation processing, the robot controller 200 executes the interpolation process. Then, the robot 100 can be operated. However, if the number of motion commands stored in the memory 201 is less than the number required to execute the interpolation process, the robot controller 200 cannot execute the interpolation process.

このため、実施形態において、ロボットコントローラー200は、メモリー201に格納されている動作指令の数に応じて、異なる補間処理を選択する。 Therefore, in the embodiment, the robot controller 200 selects different interpolation processes depending on the number of motion commands stored in the memory 201.

まず、メモリー201に格納されている動作指令の数が、決められた閾値以上であるときに実行される補間処理を説明する。メモリー201に格納されている動作指令の数が決められた閾値以上であるときを、正常状態という。このような場合、ロボットコントローラー200は、通常の補間処理として、5次のスプライン補間を使用する。通常の補間処理として使用される5次のスプライン補間を第1補間処理ともよぶ。ロボット100は、補間された経路に沿って動作するため、ロボット100の動作が急峻なものとなり、ロボット100の各関節にかかる負荷が大きくなることを回避することが望ましい。このため、通常の補間処理では、複数の目標地点の間の経路が滑らかなもとのなるように、曲線で補間する。 First, interpolation processing that is executed when the number of operation commands stored in the memory 201 is equal to or greater than a predetermined threshold will be described. A state in which the number of operation commands stored in the memory 201 is equal to or greater than a predetermined threshold is referred to as a normal state. In such a case, the robot controller 200 uses quintic spline interpolation as normal interpolation processing. The quintic spline interpolation used as normal interpolation processing is also referred to as first interpolation processing. Since the robot 100 moves along the interpolated path, it is desirable to avoid the movement of the robot 100 becoming steep and increasing the load on each joint of the robot 100. For this reason, in normal interpolation processing, curves are interpolated so that the routes between the plurality of target points become smooth.

図3は、複数の目標地点の間の経路を補間する方法を説明するための図である。制御装置500から受信した動作指令で指定されている目標地点の座標値は、受信した順に、P0、P1、・・・、P11、P12であるものとする。目標地点P0は、制御点の初期位置であるものとする。図3においては、X軸上における目標地点の座標値と、Z軸上における目標地点の座標値とを示している。技術の理解を容易にするため、Y軸上における目標地点の座標値については図3に表していない。しかしながら、制御装置500から受信する動作指令に含まれる目標地点を示す座標値は、X軸方向、Y軸方向、Z軸方向それぞれの位置が含まれているものとする。指令出力部220は、3軸の座標値を使用して、目標地点間の経路を補間するものとする。 FIG. 3 is a diagram for explaining a method of interpolating a route between a plurality of target points. It is assumed that the coordinate values of the target points specified in the operation commands received from the control device 500 are P0, P1, . . . , P11, and P12 in the order of reception. It is assumed that the target point P0 is the initial position of the control point. In FIG. 3, the coordinate values of the target point on the X-axis and the coordinate values of the target point on the Z-axis are shown. To facilitate understanding of the technology, the coordinate values of the target point on the Y-axis are not shown in FIG. However, it is assumed that the coordinate values indicating the target point included in the operation command received from the control device 500 include positions in each of the X-axis direction, Y-axis direction, and Z-axis direction. It is assumed that the command output unit 220 interpolates the route between the target points using the coordinate values of the three axes.

指令出力部220は、6つの動作指令を使用した5次のスプライン補間により、6つの目標地点の間の経路をスプライン曲線で補間する。例えば、指令出力部220は、目標地点P0、P1、・・・、P4、P5の座標値を使用して、5次のスプライン補間により、目標地点P0、P1、・・・、P4、P5の座標値で指定される地点の間の経路を補間する。初回の補正時においては、指令出力部220は、6つの動作指令それぞれで指定されている目標地点のうち、少なくとも最初の目標地点P0と最初に移動する目標地点であるP1との間における補間経路を示す補間点を求める。例えば、指令出力部220は、初期位置である目標地点P0と最初の目標地点P1との間における経路を10個に分割し、分割位置における座標値を補間点として求める。また、指令出力部220は、補間処理の後、使用した6個の動作指令のうちの最初の動作指令、即ち、6個の動作指令のうち、最も先に指令出力部220に到達した動作指令を、メモリー201から削除する。指令出力部220は、補間点の座標値に基づいたモーター角度指令を動作制御部230に出力する。 The command output unit 220 interpolates the route between the six target points using a spline curve using quintic spline interpolation using six motion commands. For example, the command output unit 220 uses the coordinate values of the target points P0, P1, . . . , P4, P5 and performs fifth-order spline interpolation to Interpolates a route between points specified by coordinate values. During the first correction, the command output unit 220 generates an interpolated path between at least the first target point P0 and P1, which is the first target point to be moved, among the target points specified by each of the six operation commands. Find the interpolation point that indicates . For example, the command output unit 220 divides the route between the target point P0, which is the initial position, and the first target point P1 into ten parts, and obtains coordinate values at the divided positions as interpolation points. After the interpolation process, the command output section 220 also outputs the first motion command among the six motion commands used, that is, the motion command that reached the command output section 220 first among the six motion commands. is deleted from the memory 201. The command output unit 220 outputs a motor angle command based on the coordinate values of the interpolation point to the operation control unit 230.

また、指令出力部220は、制御点が、目標地点P1に移動した場合に、次の補間処理を実行する。この場合、指令出力部220は、目標地点P1、P2、・・・、P5、P6の座標値を使用して、5次のスプライン補間により、目標地点P1、P2、・・・、P5、P6の座標値で指定される地点の間の経路を補間する。指令出力部220は、6つの動作指令それぞれで指定されている目標地点のうち、少なくとも制御点の現在位置である目標地点P1と次の目標地点P2との間における補間経路を示す補間点を求める。指令出力部220は、補間点の座標値に基づいたモーター角度指令を動作制御部230に出力する。これ以降、指令出力部220は、制御点が、ある目標地点に到達するたびに、その地点と、先の目標地点との間の経路を補間する処理を行う。 Further, the command output unit 220 executes the following interpolation process when the control point moves to the target point P1. In this case, the command output unit 220 uses the coordinate values of the target points P1, P2, ..., P5, P6 to perform fifth-order spline interpolation to Interpolates a route between points specified by coordinate values. The command output unit 220 obtains an interpolation point indicating an interpolation path between at least the target point P1, which is the current position of the control point, and the next target point P2, from among the target points specified by each of the six operation commands. . The command output unit 220 outputs a motor angle command based on the coordinate values of the interpolation point to the operation control unit 230. From now on, every time the control point reaches a certain target point, the command output unit 220 performs a process of interpolating the route between that point and the previous target point.

次に、メモリー201に格納されている動作指令の数が、決められた閾値未満であるときに実行される補間処理を説明する。メモリー201に格納されている動作指令の数が決められた閾値未満であるときを、異常状態という。このような場合、ロボットコントローラー200は、臨時の補間処理として、2点間の線形補間を使用する。臨時の補間処理として使用される2点間の線形補間を第2補間処理ともよぶ。 Next, an explanation will be given of an interpolation process that is executed when the number of operation commands stored in the memory 201 is less than a predetermined threshold. A state in which the number of operation commands stored in the memory 201 is less than a predetermined threshold is called an abnormal state. In such a case, the robot controller 200 uses linear interpolation between two points as temporary interpolation processing. Linear interpolation between two points used as temporary interpolation processing is also referred to as second interpolation processing.

図4は、複数の目標地点の間の経路を補間する他の方法を説明するための図である。制御装置500から受信した動作指令で指定されている目標地点の座標値は、受信した順に、P0、P1、・・・、P9、P10であるものとする。目標地点P0は、制御点の初期位置であるものとする。図4においては、X軸上における目標地点の座標値と、Z軸上における目標地点の座標値とを示している。技術の理解を容易にするため、Y軸上における目標地点の座標値については図4に表していない。しかしながら、制御装置500から受信する動作指令に含まれる目標地点を示す座標値は、X軸方向、Y軸方向、Z軸方向それぞれの位置が含まれているものとする。指令出力部220は、3軸の座標値を使用して、目標地点間の経路を補間するものとする。 FIG. 4 is a diagram for explaining another method of interpolating a route between a plurality of target points. It is assumed that the coordinate values of the target points specified in the operation commands received from the control device 500 are P0, P1, . . . , P9, and P10 in the order of reception. It is assumed that the target point P0 is the initial position of the control point. In FIG. 4, the coordinate values of the target point on the X-axis and the coordinate values of the target point on the Z-axis are shown. To facilitate understanding of the technology, the coordinate values of the target point on the Y-axis are not shown in FIG. However, it is assumed that the coordinate values indicating the target point included in the operation command received from the control device 500 include positions in each of the X-axis direction, Y-axis direction, and Z-axis direction. It is assumed that the command output unit 220 interpolates the route between the target points using the coordinate values of the three axes.

指令出力部220は、2つの動作指令で指定された目標地点の間の経路を線形補間で補間する。ここで、5次のスプライン補間を実行できるか否かを決める閾値は6であるとする。 The command output unit 220 interpolates a route between the target points specified by the two operation commands by linear interpolation. Here, it is assumed that the threshold value for determining whether or not quintic spline interpolation can be executed is 6.

例えば、目標地点P5までロボット100の制御点が移動した時点で、メモリー201に格納されている動作指令の数が5個であるとする。なお、目標地点P5までの経路は、通常の5次のスプライン補間により補間されている。この場合、指令出力部220は、ロボット100の制御点が現在位置する目標地点P5と、目標地点P6とを直線で結んだ経路を補間経路として求める。例えば、指令出力部220は、目標地点P5と目標地点P6との間の経路を10個に分割し、分割位置における座標値を補間点として求める。また、指令出力部220は、補間処理の後、使用した2個の動作指令のうちの最初の動作指令、即ち、2個の動作指令のうち、最も先に指令出力部220に到達した動作指令を、メモリー201から削除する。指令出力部220は、補間点の座標値に基づいたモーター角度指令を動作制御部230に出力する。 For example, assume that the number of operation commands stored in the memory 201 is five when the control point of the robot 100 moves to the target point P5. Note that the route to the target point P5 is interpolated by normal 5th-order spline interpolation. In this case, the command output unit 220 obtains a path connecting the target point P5, where the control point of the robot 100 is currently located, and the target point P6 with a straight line as an interpolated path. For example, the command output unit 220 divides the route between the target point P5 and the target point P6 into 10 parts, and obtains coordinate values at the divided positions as interpolation points. Further, after the interpolation process, the command output unit 220 outputs the first operation command of the two used operation commands, that is, the operation command that reached the command output unit 220 first among the two operation commands. is deleted from the memory 201. The command output unit 220 outputs a motor angle command based on the coordinate values of the interpolation point to the operation control unit 230.

また、指令出力部220は、制御点が、目標地点P6に移動した場合に、メモリー201に格納されている動作指令の数に応じて、5次のスプライン補間、あるいは、2点間の線形補間を実行する。 Further, when the control point moves to the target point P6, the command output unit 220 performs quintic spline interpolation or linear interpolation between two points depending on the number of operation commands stored in the memory 201. Execute.

図5は、ロボットコントローラー200が実行する補間経路の生成処理のフローチャートである。ロボットコントローラー200は、制御装置500から、動作開始を示す開始指令を受信すると、補間経路の生成処理を開始する。開始指令は、例えば、ロボット100の初期位置である目標地点P0を指定する座標値を含む。なお、補間経路の生成処理と並行して、ロボットコントローラー200は、制御装置500から動作指令を受信すると、受信した動作指令をメモリー201に順次格納しているものとする。 FIG. 5 is a flowchart of interpolation path generation processing executed by the robot controller 200. When the robot controller 200 receives a start command indicating the start of an operation from the control device 500, it starts an interpolation path generation process. The start command includes, for example, coordinate values specifying the target point P0, which is the initial position of the robot 100. Note that, in parallel with the interpolation path generation process, when the robot controller 200 receives operation commands from the control device 500, it is assumed that the robot controller 200 sequentially stores the received operation commands in the memory 201.

ステップS101において、補間処理の実行条件を満たす場合(ステップS101;YES)、ロボットコントローラー200は、ステップS102の処理を実行する。初回の補間処理の実行条件は、開始指令を受信した後、メモリー201に、あらかじめ決められた数の動作指令が格納されたことである。一方、ロボットコントローラー200は、補間処理の実行条件を満たされない場合(ステップS101;NO)、待機する。ロボットコントローラー200は、例えば、メモリー201に格納されている動作指令の数を決められた時間間隔で監視してもよい。 In step S101, if the execution conditions for the interpolation process are satisfied (step S101; YES), the robot controller 200 executes the process in step S102. The condition for executing the first interpolation process is that a predetermined number of operation commands are stored in the memory 201 after receiving the start command. On the other hand, if the execution conditions for the interpolation process are not satisfied (step S101; NO), the robot controller 200 waits. For example, the robot controller 200 may monitor the number of operation commands stored in the memory 201 at predetermined time intervals.

ステップ102において、ロボットコントローラー200は、メモリー201に格納されている動作指令の数が第1閾値Th1以上である場合に(ステップS102;YES)、ステップ103の処理を実行する。第1補間処理である5次のスプライン補間では、6つの動作指令を使用するため、第1閾値Th1は6である。一方、ステップS102において、ロボットコントローラー200は、メモリー201に格納されている動作指令の数が第1閾値Th1未満である場合に(ステップS102;NO)、ステップ106の処理を実行する。 In step 102, the robot controller 200 executes the process in step 103 if the number of motion commands stored in the memory 201 is greater than or equal to the first threshold Th1 (step S102; YES). In the fifth-order spline interpolation, which is the first interpolation process, six motion commands are used, so the first threshold Th1 is 6. On the other hand, in step S102, if the number of motion commands stored in the memory 201 is less than the first threshold Th1 (step S102; NO), the robot controller 200 executes the process of step 106.

ステップ103において、ロボットコントローラー200は、第1補間処理として、5次のスプライン補間を実行する。ロボットコントローラー200は、制御装置500から到着した時刻が最も早い6個の動作指令をメモリー201から読み出す。前述のように、動作指令は、実行される順で、制御装置500からロボットコントローラー200に送信される。よって、読み出される6個の動作指令は、実行される順番が連続している動作指令である。ロボットコントローラー200は、6個の動作指令に含まれる6点の目標地点を使用したスプライン補間により、6個の動作指令のうちの、少なくとも最初の動作指令と2番目の動作指令との間の経路を、補間する。補間処理により、最初の動作指令と次の動作指令との間の補間経路を示す補間点が求められる。補間処理が実行された後、使用された6個の動作指令のうちの最初の動作指令、即ち、使用された6個の動作指令のうち、最も先にロボットコントローラー200に到達した動作指令が、メモリー201から削除される。その後、ロボットコントローラー200は、ステップS104の処理を実行する。 In step 103, the robot controller 200 executes quintic spline interpolation as a first interpolation process. The robot controller 200 reads from the memory 201 the six operation commands that arrived earliest from the control device 500. As described above, the operation commands are transmitted from the control device 500 to the robot controller 200 in the order in which they are executed. Therefore, the six action commands that are read out are action commands that are executed in consecutive order. The robot controller 200 calculates a path between at least the first motion command and the second motion command among the six motion commands by spline interpolation using six target points included in the six motion commands. Interpolate. Through the interpolation process, interpolation points indicating an interpolation path between the first motion command and the next motion command are determined. After the interpolation process is executed, the first motion command among the six motion commands used, that is, the motion command that reached the robot controller 200 first among the six motion commands used, is It is deleted from memory 201. After that, the robot controller 200 executes the process of step S104.

ステップS104において、ロボットコントローラー200は、生成した補間経路に沿って、ロボット100を動作させる。よって、ロボット100の制御点が、補間に使用された動作指令のうち最初の動作指令と2番目の動作指令との間の補間点が示す位置を順次移動することになる。その後、ロボットコントローラー200は、ステップS105の処理を実行する。 In step S104, the robot controller 200 causes the robot 100 to operate along the generated interpolated path. Therefore, the control point of the robot 100 sequentially moves through the positions indicated by the interpolation points between the first and second movement commands among the movement commands used for interpolation. After that, the robot controller 200 executes the process of step S105.

ステップS105において、終了条件が満たされていない場合(ステップS105;NO)、再び、ステップS101の処理が再び実行される。終了条件は、例えば、ロボットコントローラー200が制御装置500から終了指令を受信したことである。一方、ステップS105において、終了条件が満たされている場合(ステップS105;YES)、補間経路の生成処理が終了される。 In step S105, if the end condition is not satisfied (step S105; NO), the process in step S101 is executed again. The termination condition is, for example, that the robot controller 200 has received a termination command from the control device 500. On the other hand, in step S105, if the termination condition is satisfied (step S105; YES), the interpolation path generation process is terminated.

ステップS106において、ロボットコントローラー200は、メモリー201に格納されている動作指令の数が第2閾値Th2以上である場合(ステップS106;YES)、ステップS107の処理を実行する。第2補間処理である2点間の線形補間では、2つの動作指令を使用するため、第2閾値Th2は2である。一方、ステップS106において、ロボットコントローラー200は、メモリー201に格納されている動作指令の数が第2閾値Th2未満である場合(ステップS106;NO)、ステップS108の処理を実行する。 In step S106, if the number of motion commands stored in the memory 201 is equal to or greater than the second threshold Th2 (step S106; YES), the robot controller 200 executes the process of step S107. In linear interpolation between two points, which is the second interpolation process, two motion commands are used, so the second threshold Th2 is 2. On the other hand, in step S106, if the number of motion commands stored in the memory 201 is less than the second threshold Th2 (step S106; NO), the robot controller 200 executes the process of step S108.

ステップS107において、ロボットコントローラー200は、第2補間処理として、2点間の線形補間を実行する。ロボットコントローラー200は、制御装置500から到着した時刻が最も早い2個の動作指令をメモリー201から読み出す。ロボットコントローラー200は、2個の動作指令に含まれる2点の目標地点を使用した線形補間により、2つの動作指令で指定された目標地点の間の経路を補間する。補間処理が実行された後、使用された2個の動作指令のうちの最初の動作指令、即ち、使用された2個の動作指令のうち、最も先にロボットコントローラー200に到達した動作指令が、メモリー201から削除される。その後、ステップS104において、ロボットコントローラー200は、生成した補間経路に沿って、ロボット100を動作させる。 In step S107, the robot controller 200 executes linear interpolation between two points as a second interpolation process. The robot controller 200 reads from the memory 201 the two operation commands that arrived earliest from the control device 500. The robot controller 200 interpolates a route between the target points specified by the two movement commands by linear interpolation using the two target points included in the two movement commands. After the interpolation process is executed, the first motion command of the two motion commands used, that is, the motion command that reached the robot controller 200 first among the two motion commands used, is It is deleted from memory 201. Thereafter, in step S104, the robot controller 200 causes the robot 100 to operate along the generated interpolated path.

ステップS108において、ロボットコントローラー200はエラーを出力する。例えば、ロボットコントローラー200は、補間処理を実行できない旨を通知する画面を、ロボットコントローラー200に備えられている表示装置に出力する。その後、補間経路の生成処理が終了される。 In step S108, the robot controller 200 outputs an error. For example, the robot controller 200 outputs a screen notifying that interpolation processing cannot be executed to a display device included in the robot controller 200. After that, the interpolation route generation process is finished.

以上、説明したように、実施形態においては、ロボットコントローラー200は、メモリー201に蓄積されている動作指令の数が、第1閾値Th1以上である場合には、第1補間処理である5次のスプライン補間を使用して、目標地点の間を補間する。ロボットコントローラー200は、蓄積されている動作指令の数が、第1閾値Th1未満であり、第2閾値Th2以上である場合には、第2補間処理である2点間の線形補間を使用して、目標地点の間を補間する。 As described above, in the embodiment, when the number of motion commands stored in the memory 201 is greater than or equal to the first threshold Th1, the robot controller 200 performs the fifth-order interpolation process, which is the first interpolation process. Interpolate between target points using spline interpolation. If the number of accumulated motion commands is less than the first threshold Th1 and greater than or equal to the second threshold Th2, the robot controller 200 uses linear interpolation between two points as a second interpolation process. , interpolate between target points.

このように、メモリー201に格納されている動作指令の数が、第1閾値Th1未満であり、第1補間処理を実行することができない場合に、第1補間処理より使用する動作指令の数が少ない第2補間処理が実行される。補間された経路によっては、ロボット100の動作が急峻なものとなり、ロボット100の各関節にかかる負荷が大きくなることも想定されるが、第1補間処理だけを使用する態様に比べ、動作指令の数の不足により、ロボット100の動作が停止することを低減することができる。 In this way, when the number of motion commands stored in the memory 201 is less than the first threshold Th1 and the first interpolation process cannot be executed, the number of motion commands to be used is reduced from the first interpolation process. Less second interpolation processing is performed. Depending on the interpolated path, the movement of the robot 100 may become steep, and the load placed on each joint of the robot 100 may become large. It is possible to reduce the possibility that the operation of the robot 100 stops due to a shortage in the number of robots.

また、メモリー201に格納されている動作指令の数が、第1閾値Th1未満であり第2閾値以上の場合には、第2補間処理が実行される。さらに、メモリー201に格納されている動作指令の数が、第2閾値Th2未満となるまで、第2補間処理が実行される。従来のように、1種類の補間処理だけを使用する場合より、動作指令の数の不足により、ロボット100の動作が停止することを回避できる。 Further, when the number of operation commands stored in the memory 201 is less than the first threshold Th1 and greater than or equal to the second threshold, the second interpolation process is executed. Furthermore, the second interpolation process is executed until the number of operation commands stored in the memory 201 becomes less than the second threshold Th2. Compared to the conventional case where only one type of interpolation processing is used, it is possible to avoid stopping the operation of the robot 100 due to an insufficient number of operation commands.

また、例えば、第1補間処理ではなく、第1補間処理より使用する動作指令の数が少ない第2補間処理を常時実行することも考えられる。しかし、第2補間処理を常時実行する場合には、補間処理の精度が低下することが想定される。実施形態では、メモリー201に格納されている動作指令の数に応じて補間処理を選択するので、第2補間処理を常時実行する場合に比べて、ロボット100の動作の停止を回避しつつ、補間処理の精度の低下を抑制することができる。 Furthermore, for example, instead of the first interpolation process, a second interpolation process that uses fewer operation commands than the first interpolation process may be constantly executed. However, if the second interpolation process is always executed, it is assumed that the accuracy of the interpolation process will decrease. In the embodiment, since the interpolation process is selected according to the number of motion commands stored in the memory 201, the interpolation process can be performed while avoiding stopping the operation of the robot 100, compared to the case where the second interpolation process is always executed. Decrease in processing accuracy can be suppressed.

また、図5に示すように、例えば、ステップS107において、第2補間処理が実行された後、ステップS102で、メモリー201に格納されている動作指令の数が第1閾値Th1以上となると、ステップS103で、第1補間処理が再び実行される。メモリー201に格納されている動作指令の数が、第1閾値Th1以上となるまで、第1補間処理ではなく、第2補間処理を実行することにより、ロボット100の動作を継続させることができる。さらに、メモリー201に格納されている動作指令の数が第1閾値Th1以上となった場合には、再び、精度の高い補間処理を使用して、補間経路を生成することができる。 Further, as shown in FIG. 5, for example, after the second interpolation process is executed in step S107, when the number of operation commands stored in the memory 201 becomes equal to or greater than the first threshold Th1 in step S102, the step In S103, the first interpolation process is executed again. By performing the second interpolation process instead of the first interpolation process until the number of movement commands stored in the memory 201 reaches or exceeds the first threshold Th1, the robot 100 can continue to operate. Furthermore, when the number of operation commands stored in the memory 201 becomes equal to or greater than the first threshold Th1, the interpolation path can be generated again using highly accurate interpolation processing.

B1.他の実施形態1
実施形態においては、図5に示すように、第2補間処理が実行された後、メモリー201に格納されている動作指令の数が第1閾値Th1以上となると、第1補間処理が再び実行される。例えば、直前に実行された動作指令に基づいて補間された経路が2点間の線形補間により生成された経路であり、次の動作指令に基づいて補間される経路が5次のスプライン補間で生成された経路であるとする。この場合、補間処理が切り替えられることにより、ロボット100の動作が急激に変化することが予想される。よって、メモリー201に格納されている動作指令の数が第1閾値Th1以上となった後、最初に生成する補間経路については、第1補間処理の5次のスプライン補間以外の補間処理によって生成してもよい。メモリー201に格納されている動作指令の数が、再び第1閾値Th1以上となった後、最初に生成する補間経路について、ロボットコントローラー200は以下のように補間経路を生成する。
B1. Other embodiment 1
In the embodiment, as shown in FIG. 5, after the second interpolation process is executed, when the number of operation commands stored in the memory 201 becomes equal to or greater than the first threshold Th1, the first interpolation process is executed again. Ru. For example, the path interpolated based on the previously executed movement command is a path generated by linear interpolation between two points, and the path interpolated based on the next movement command is generated by quintic spline interpolation. Assume that the route is In this case, it is expected that the motion of the robot 100 will change rapidly due to switching of the interpolation process. Therefore, after the number of operation commands stored in the memory 201 reaches or exceeds the first threshold Th1, the first interpolation path to be generated is generated by an interpolation process other than the quintic spline interpolation in the first interpolation process. It's okay. After the number of motion commands stored in the memory 201 becomes equal to or greater than the first threshold value Th1 again, the robot controller 200 generates an interpolation path as follows for the first interpolation path to be generated.

図6は、他の実施形態1における補間方法を説明するための図である。例えば、目標地点P1からP4までの間、線形補間により経路が補間されていたとする。ロボット100の制御点が目標地点P4に到達した時点で、メモリー201に格納されている動作指令の数が、第1閾値Th1以上であったとする。この場合、まず、ロボットコントローラー200は、6個の動作指令に含まれる6点の目標地点を使用して5次のスプライン補間により、補間経路RSを生成する。図6に示す例では、目標地点P4~P9までの間の補間経路RSを破線で表している。 FIG. 6 is a diagram for explaining an interpolation method in another embodiment 1. For example, assume that the route is interpolated by linear interpolation between the target points P1 and P4. It is assumed that the number of operation commands stored in the memory 201 is equal to or greater than the first threshold Th1 at the time when the control point of the robot 100 reaches the target point P4. In this case, first, the robot controller 200 generates an interpolated route RS by quintic spline interpolation using the six target points included in the six motion commands. In the example shown in FIG. 6, the interpolated route RS from target points P4 to P9 is represented by a broken line.

また、補間経路RSのうち、使用された動作指令のうち、最初の動作指令で指定された目標地点と次の動作指令で指定された目標地点との間の経路を補間経路R1とする。補間経路R1を第1経路ともよぶ。図6に示す例では、補間経路RSのうち、目標地点P4~P5までの間の経路を補間経路R1とする。ロボットコントローラー200は、使用された動作指令のうち、最初の動作指令で指定された目標地点と2番目の動作指令で指定された目標地点との間の補間経路R1を示す補間点を求める。例えば、ロボットコントローラー200は、補間経路R1を10個に分割し、分割位置における座標値を補間点として求める。 Further, among the interpolated routes RS, a route between the target point designated by the first motion command and the target point designated by the next motion command among the used motion commands is defined as an interpolated route R1. The interpolated route R1 is also referred to as a first route. In the example shown in FIG. 6, of the interpolated route RS, the route between target points P4 and P5 is set as the interpolated route R1. The robot controller 200 determines an interpolation point indicating an interpolation path R1 between the target point designated by the first motion command and the target point designated by the second motion command from among the used motion commands. For example, the robot controller 200 divides the interpolation route R1 into 10 parts and determines the coordinate values at the divided positions as interpolation points.

さらに、ロボットコントローラー200は、5次のスプライン補間で使用した6個の動作指令のうち、最初の動作指令と2番目の動作指令とを使用して、2点間の線形補間により補間経路R2を生成する。補間経路R2を第2経路ともよぶ。図6に示す例では、目標地点P4~P5までの間の、補間経路R2を一点鎖線で表している。ロボットコントローラー200は、使用された動作指令で指定された目標地点との間の補間経路R2を示す補間点を求める。例えば、補間経路R2を10個に分割し、分割位置における座標値を補間点として求める。 Furthermore, the robot controller 200 uses the first motion command and the second motion command among the six motion commands used in the fifth-order spline interpolation to create the interpolation path R2 by linear interpolation between two points. generate. The interpolated route R2 is also referred to as a second route. In the example shown in FIG. 6, the interpolated route R2 between the target points P4 and P5 is represented by a chain line. The robot controller 200 finds an interpolation point indicating an interpolation route R2 to the target point specified by the used motion command. For example, the interpolation route R2 is divided into 10 parts, and the coordinate values at the divided positions are determined as interpolation points.

ロボットコントローラー200は、補間経路R1の補間点と、対応する補間経路R2の補間点と、の間を取った地点を示す座標値を求め、求めた地点をつないだ経路を、補間経路R3として生成する。補間経路R3を生成する処理を第3補間処理ともよぶ。 The robot controller 200 determines coordinate values indicating a point between the interpolation point of the interpolation route R1 and the interpolation point of the corresponding interpolation route R2, and generates a route connecting the determined points as an interpolation route R3. do. The process of generating the interpolation route R3 is also referred to as third interpolation process.

ロボットコントローラー200は、生成した補間経路R3に沿って、ロボット100を動作させる。その後、補間処理を実行するタイミングとなり、メモリー201に第1閾値Th1個以上の動作指令が格納されている場合には、ロボットコントローラー200は、第1補間処理である5次のスプライン補間によって補間経路を生成する。 The robot controller 200 causes the robot 100 to operate along the generated interpolation path R3. Thereafter, when it is time to execute the interpolation process and the memory 201 stores motion commands equal to or more than the first threshold value Th, the robot controller 200 uses the first interpolation process, which is the quintic spline interpolation, to determine the interpolation path. generate.

他の実施形態1においては、第2補間処理を実行しているときに、メモリー201に格納されている動作指令の数が再び第1閾値Th1以上となった場合、第1補間処理であるスプライン補間により生成された補間経路R1と、第2補間処理である線形補間により生成された補間経路R2と、を使用した第3補間処理を実行する。その後、第1補間処理が再開される。よって、第2補間処理から第1補間処理に切り替えるときに、ロボット100の動作が急激に変化することを抑制し、第2補間処理から第1補間処理への切替をスムーズに行うことができる。 In another embodiment 1, when the number of motion commands stored in the memory 201 becomes equal to or greater than the first threshold Th1 again while executing the second interpolation process, the spline processing that is the first interpolation process is performed. A third interpolation process is performed using an interpolation route R1 generated by interpolation and an interpolation route R2 generated by linear interpolation, which is a second interpolation process. Thereafter, the first interpolation process is restarted. Therefore, when switching from the second interpolation process to the first interpolation process, sudden changes in the motion of the robot 100 can be suppressed, and the switch from the second interpolation process to the first interpolation process can be performed smoothly.

B2.他の実施形態2
また、第1補間処理を実行しているときに、メモリー201に格納されている動作指令の数が、第1閾値Th1未満で、第2閾値Th2以上である場合に、ロボットコントローラー200は以下のように補間経路を生成してもよい。ロボットコントローラー200は、スプライン補間を実行する度に、6つの動作指令で指定された目標地点間の5区間の経路を生成しているものとする。さらに、生成された補間経路の情報がメモリー201に記憶されているものとする。例えば、ロボット100の制御点が目標地点P4に到達した時点で、メモリー201に格納されている動作指令の数が、第1閾値Th1未満で、第2閾値Th2以上であるとする。目標地点P4に到達するまでの経路はスプライン補間により補間されていたとする。この場合、ロボットコントローラー200は、ロボット100の制御点が現在位置している目標地点P4と、次の目標地点P5との間の経路を線形補間により補間する。さらに、ロボットコントローラー200は、メモリー201から、直前に実行されたスプライン補間により生成された経路のうち目標地点P4とP5との間の補間点の情報を取得する。
B2. Other embodiment 2
Furthermore, while executing the first interpolation process, if the number of motion commands stored in the memory 201 is less than the first threshold Th1 and greater than or equal to the second threshold Th2, the robot controller 200 performs the following operations. An interpolated path may be generated as follows. It is assumed that the robot controller 200 generates a route of five sections between target points specified by six motion commands every time it executes spline interpolation. Furthermore, it is assumed that information on the generated interpolation route is stored in the memory 201. For example, assume that at the time when the control point of the robot 100 reaches the target point P4, the number of operation commands stored in the memory 201 is less than the first threshold Th1 and greater than or equal to the second threshold Th2. It is assumed that the route to reach the target point P4 has been interpolated by spline interpolation. In this case, the robot controller 200 uses linear interpolation to interpolate the path between the target point P4, where the control point of the robot 100 is currently located, and the next target point P5. Furthermore, the robot controller 200 acquires, from the memory 201, information on interpolation points between target points P4 and P5 of the route generated by the spline interpolation executed immediately before.

ロボットコントローラー200は、線形補間により求められた補間点と、直前に実行されたスプライン補間により求められた補間点との間を取った地点を示す座標値を求め、求めた地点をつないだ経路を、補間経路として生成する。ロボットコントローラー200は、生成した補間経路に沿って、ロボット100を動作させる。その後、補間処理を実行するタイミングとなり、メモリー201に格納されている動作指令の数が、第1閾値Th1未満で、第2閾値Th2以上である場合には、ロボットコントローラー200は、第2補間処理である線形補間によって補間経路を生成する。 The robot controller 200 determines coordinate values indicating a point between the interpolation point determined by linear interpolation and the interpolation point determined by the spline interpolation executed immediately before, and creates a route connecting the determined points. , generated as an interpolated path. The robot controller 200 operates the robot 100 along the generated interpolated path. Thereafter, when it is time to perform the interpolation process, and the number of motion commands stored in the memory 201 is less than the first threshold Th1 and greater than or equal to the second threshold Th2, the robot controller 200 performs the second interpolation process. An interpolated path is generated by linear interpolation.

このように、他の実施形態2においては、メモリー201に格納されている動作指令の数が第1閾値Th1未満となり、第2閾値Th2以上である場合、線形補間を実行する前に、線形補間により補間された経路を示す補間点と、スプライン補間により補間された経路を示す補間点との間を取った経路を補間経路として使用する。よって、5次のスプライン補間により生成された補間経路から、線形補間により生成された補間経路に直接切り替えられる場合に比べて、ロボット100の動作が急激に変化することを抑制することができる。このようにして、第1補間処理から第2補間処理への切替をスムーズに行うことができる。 In this way, in the second embodiment, when the number of operation commands stored in the memory 201 is less than the first threshold Th1 and greater than or equal to the second threshold Th2, the linear interpolation is performed before performing the linear interpolation. A route between an interpolation point indicating a route interpolated by the spline interpolation and an interpolation point indicating the route interpolated by the spline interpolation is used as the interpolation route. Therefore, compared to the case where the interpolation path generated by quintic spline interpolation is directly switched to the interpolation path generated by linear interpolation, it is possible to suppress a sudden change in the motion of the robot 100. In this way, it is possible to smoothly switch from the first interpolation process to the second interpolation process.

B3.他の実施形態3
あるいは、第2補間処理を実行しているときに、メモリー201に格納されている動作指令の数が、再び第1閾値Th1以上となった後、第1補間処理を再開する前に、ロボットコントローラー200は以下のように補間経路を生成してもよい。ロボットコントローラー200は、2個の動作指令に含まれる2点の目標地点を使用して円弧補間により、補間経路を生成する。ロボットコントローラー200は、円弧補間により生成した補間経路に沿って、ロボット100を動作させる。その後、補間処理を実行するタイミングとなり、メモリー201に第1閾値Th1個以上の動作指令が格納されている場合には、ロボットコントローラー200は、第1補間処理である5次のスプライン補間によって補間経路を生成する。
B3. Other embodiment 3
Alternatively, while executing the second interpolation process, after the number of motion commands stored in the memory 201 becomes equal to or greater than the first threshold Th1 again, the robot controller 200 may generate an interpolated path as follows. The robot controller 200 generates an interpolated path by circular interpolation using the two target points included in the two movement commands. The robot controller 200 operates the robot 100 along an interpolated path generated by circular interpolation. Thereafter, when it is time to execute the interpolation process and the memory 201 stores motion commands equal to or more than the first threshold value Th, the robot controller 200 uses the first interpolation process, which is the quintic spline interpolation, to determine the interpolation path. generate.

このように、他の実施形態3においては、メモリー201に格納されている動作指令の数が再び第1閾値Th1以上となった場合、第2補間処理から第1補間処理に切り替える前に、円弧補間により生成された補間経路に沿って、ロボット100を動作させる。よって、線形補間により生成された補間経路から、5次のスプライン補間により生成された補間経路に直接切り替えられる場合に比べて、ロボット100の動作が急激に変化することを抑制することができる。このようにして、第2補間処理から第1補間処理への切替をスムーズに行うことができる。 In this manner, in the third embodiment, when the number of motion commands stored in the memory 201 becomes equal to or greater than the first threshold value Th1 again, the arc The robot 100 is operated along the interpolated path generated by interpolation. Therefore, compared to the case where the interpolation path generated by linear interpolation is directly switched to the interpolation path generated by quintic spline interpolation, it is possible to suppress a sudden change in the motion of the robot 100. In this way, it is possible to smoothly switch from the second interpolation process to the first interpolation process.

B4.他の実施形態4
また、第2補間処理を実行しているときに、メモリー201に格納されている動作指令の数が、再び第1閾値Th1以上となった後、第1補間処理を再開する前に、ロボットコントローラー200は以下のように補間経路を生成してもよい。ロボットコントローラー200は、4個の動作指令に含まれる4点の目標地点を使用して3次のスプライン補間により、補間経路を生成する。ロボットコントローラー200は、3次のスプライン補間により生成した補間経路に沿って、ロボット100を動作させる。その後、補間処理を実行するタイミングとなり、メモリー201に第1閾値Th1個以上の動作指令が格納されている場合には、ロボットコントローラー200は、第1補間処理である5次のスプライン補間によって補間経路を生成する。
B4. Other embodiment 4
Furthermore, while executing the second interpolation process, after the number of motion commands stored in the memory 201 becomes equal to or greater than the first threshold Th1 again, the robot controller 200 may generate an interpolated path as follows. The robot controller 200 generates an interpolated path by cubic spline interpolation using the four target points included in the four movement commands. The robot controller 200 operates the robot 100 along an interpolated path generated by cubic spline interpolation. Thereafter, when it is time to execute the interpolation process and the memory 201 stores motion commands equal to or more than the first threshold value Th, the robot controller 200 uses the first interpolation process, which is the quintic spline interpolation, to determine the interpolation path. generate.

このように、他の実施形態4においては、第2補間処理を実行しているときに、メモリー201に格納されている動作指令の数が再び第1閾値Th1以上となった場合、5次のスプライン補間より精度が低い3次のスプライン補間により生成された補間経路に沿って、ロボット100を動作させる。その後、第1補間処理である5次のスプライン補間処理が再開される。よって、線形補間により生成された補間経路から、5次のスプライン補間により生成された補間経路に直接切り替えられる場合に比べて、ロボット100の動作が急激に変化することを抑制することができる。このようにして、第2補間処理から第1補間処理への切替をスムーズに行うことができる。 In this manner, in the fourth embodiment, when the number of operation commands stored in the memory 201 becomes equal to or greater than the first threshold Th1 while executing the second interpolation process, the fifth-order The robot 100 is operated along an interpolated path generated by cubic spline interpolation, which has lower accuracy than spline interpolation. Thereafter, the quintic spline interpolation process, which is the first interpolation process, is restarted. Therefore, compared to the case where the interpolation path generated by linear interpolation is directly switched to the interpolation path generated by quintic spline interpolation, it is possible to suppress a sudden change in the motion of the robot 100. In this way, it is possible to smoothly switch from the second interpolation process to the first interpolation process.

B5.他の実施形態5
また、第1補間処理は、5次のスプライン補間でなくてもよい。例えば、第1補間処理として、3次のスプライン補間を使用してもよい。また、第2補間処理は、線形補間でなくてもよい。例えば、第2補間処理として、2点間の円弧補間を使用してもよい。
B5. Other embodiment 5
Furthermore, the first interpolation process does not need to be quintic spline interpolation. For example, cubic spline interpolation may be used as the first interpolation process. Furthermore, the second interpolation process does not need to be linear interpolation. For example, circular interpolation between two points may be used as the second interpolation process.

実施形態においては、ロボットコントローラー200が、6つの動作指令それぞれで指定されている目標地点のうち、少なくとも制御点の現在位置である目標地点P1と次の目標地点P2との間における補間経路を示す補間点を求める例を説明した。しかしながら、ロボットコントローラー200は、6つの動作指令それぞれで指定されている目標地点の間のすべての補間経路を求めてもよい。 In the embodiment, the robot controller 200 indicates an interpolated path between at least the target point P1, which is the current position of the control point, and the next target point P2, among the target points specified by each of the six movement commands. An example of finding interpolation points has been explained. However, the robot controller 200 may obtain all interpolated paths between the target points specified by each of the six motion commands.

実施形態においては、目標地点の間の経路を補間する方法を中心に説明したが、実施形態にかかる構成は、ロボット100の制御点の移動の速度または加速度の補間にも採用することができる。 In the embodiment, a method of interpolating a route between target points has been mainly described, but the configuration according to the embodiment can also be adopted for interpolating the speed or acceleration of movement of a control point of the robot 100.

本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替え、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。 The present disclosure is not limited to the embodiments described above, and can be implemented in various configurations without departing from the spirit thereof. For example, the technical features in the embodiments corresponding to the technical features in each form described in the summary column of the invention may be used to solve some or all of the above-mentioned problems, or to achieve one of the above-mentioned effects. In order to achieve some or all of the above, it is possible to perform appropriate substitutions and combinations. Further, unless the technical feature is described as essential in this specification, it can be deleted as appropriate.

C.他の形態:
(1)本開示の一形態によれば、ロボットシステムの経路生成方法が提供される。このロボットシステムの経路生成方法は、外部機器から、ロボットの目標位置を指定する動作指令を受信して、前記動作指令を記憶部に格納する受信ステップと、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が第1閾値Th1以上である場合に、Th1個の前記動作指令を使用した第1補間処理を実行することにより、Th1個の前記動作指令のうち、少なくとも最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間を、含む経路を、補間する第1補間ステップと、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が前記第1閾値Th1より小さい第2閾値Th2以上であり、かつ前記第1閾値Th1未満である場合に、Th2個の前記動作指令を使用した第2補間処理を実行することにより、Th2個の前記動作指令のうち、最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間の経路を補間する第2補間ステップと、を含む。
上記の形態によれば、記憶部に格納されている動作指令の数が第1閾値Th1未満であり、第1補間処理を実行することができない場合に、第1補間処理より使用する動作指令の数が少ない第2補間処理を実行することにより、動作指令の数の不足により、ロボットの動作が停止することを回避できる。また、第1補間処理より使用する動作指令の数が少ない第2補間処理を常時実行する態様に比べて、補間処理の精度の低下を抑制することができる。
C. Other forms:
(1) According to one embodiment of the present disclosure, a route generation method for a robot system is provided. This route generation method for a robot system includes a receiving step of receiving a motion command specifying a target position of the robot from an external device and storing the motion command in a storage section; When the number of the plurality of operation commands specifying the target position further ahead and in which the order of execution of the operation commands is consecutive is greater than or equal to the first threshold Th1, By executing the first interpolation process using the movement commands, the target position specified by at least the first movement command among the Th1 movement commands and the target position specified by the next movement command are determined. a first interpolation step of interpolating a route including a path between the target position and the operation command, which is stored in the storage unit and specifies the target position beyond the current position; When the number of the plurality of operation commands whose execution order is consecutive is greater than or equal to a second threshold Th2 smaller than the first threshold Th1 and less than the first threshold Th1, Th2 of the operation commands are executed. By executing the second interpolation process using and a second interpolation step of interpolating a path between.
According to the above embodiment, when the number of motion commands stored in the storage unit is less than the first threshold Th1 and the first interpolation process cannot be executed, the number of motion commands to be used from the first interpolation process is By executing a small number of second interpolation processes, it is possible to avoid stopping the robot's motion due to an insufficient number of motion commands. Further, compared to a mode in which the second interpolation process, which uses fewer operation commands than the first interpolation process, is always executed, it is possible to suppress a decrease in the accuracy of the interpolation process.

(2)上記形態のロボットシステムの経路生成方法において、前記記憶部に格納されている前記動作指令の数が、前記第2閾値Th2未満である場合、前記第2補間処理を実行することができないことを通知するエラーを出力するステップ、を含む。
上記の形態によれば、記憶部に格納されている動作指令の数が、第2閾値Th2未満である場合には、第2補間処理を実行できないことを通知するエラーを出力するが、記憶部に格納されている動作指令の数が、第1閾値Th1未満であり第2閾値Th2以上の場合には、第2補間処理が実行される。上記の形態によれば、従来のように、1種類の補間処理だけを使用する場合より、動作指令の数の不足により、ロボットの動作が停止することを回避できる。
(2) In the route generation method for a robot system according to the above aspect, if the number of the movement commands stored in the storage unit is less than the second threshold Th2, the second interpolation process cannot be executed. The method includes a step of outputting an error to notify the user of the error.
According to the above embodiment, if the number of operation commands stored in the storage unit is less than the second threshold Th2, an error is output to notify that the second interpolation process cannot be executed. If the number of operation commands stored in the ``second'' threshold Th1 is less than the first threshold Th1 and greater than the second threshold Th2, the second interpolation process is executed. According to the above embodiment, it is possible to avoid stopping the robot's motion due to an insufficient number of motion commands, compared to the conventional case where only one type of interpolation processing is used.

(3)上記形態のロボットシステムの経路生成方法において、前記記憶部に格納されている前記動作指令の数が前記第1閾値Th1未満となった場合、前記記憶部に格納されている前記動作指令の数が前記第1閾値Th1以上となるまでの間、前記第2補間処理の実行が継続される。
上記の形態によれば、記憶部に格納されている動作指令の数が、第1閾値Th1以上となるまで、第1補間処理ではなく、第2補間処理を実行することにより、ロボットの動作を継続させることができる。
(3) In the route generation method for a robot system according to the above aspect, when the number of the motion commands stored in the storage section is less than the first threshold Th1, the motion commands stored in the storage section The execution of the second interpolation process is continued until the number becomes equal to or greater than the first threshold Th1.
According to the above embodiment, the robot's motion is controlled by executing the second interpolation process instead of the first interpolation process until the number of movement commands stored in the storage unit reaches or exceeds the first threshold Th1. It can be continued.

(4)上記形態のロボットシステムの経路生成方法において、前記第2補間処理の実行が継続されているときに前記記憶部に格納されている前記動作指令の数が前記第1閾値Th1以上となった場合、前記第1補間処理を実行する。
上記の形態によれば、第2補間処理の実行が継続されているときに記憶部に格納されている動作指令の数が第1閾値Th1以上となった場合には、第2補間処理より精度の高い第1補間処理が再び実行されるので、複数の目標位置の間の経路を精度よく補間することができる。
(4) In the route generation method for a robot system according to the above aspect, when the second interpolation process continues to be executed, the number of operation commands stored in the storage unit becomes equal to or greater than the first threshold Th1. If so, the first interpolation process is executed.
According to the above embodiment, if the number of operation commands stored in the storage unit becomes equal to or greater than the first threshold Th1 while the execution of the second interpolation process is continued, the accuracy of the second interpolation process is higher than that of the second interpolation process. Since the first interpolation process with a high value is executed again, it is possible to accurately interpolate routes between a plurality of target positions.

(5)上記形態のロボットシステムの経路生成方法において、前記第2補間処理の実行が継続されているときに前記記憶部に格納されている前記動作指令の数が前記第1閾値Th1以上となった場合、前記第1補間処理を実行する前に、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続しているTh1個の前記動作指令を使用した前記第1補間処理を実行することにより生成した第1経路の情報と、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続しているTh2個の前記動作指令を使用した前記第2補間処理を実行することにより生成した第2経路の情報と、を使用した第3補間処理を実行する。
上記の形態によれば、第2補間処理から第1補間処理に切り替える前に、直前に第2補間処理により補間された第1経路の情報と、1補間処理により補間された第2経路の情報とを使用した第3補間処理を実行することにより、第2補間処理から第1補間処理への切替をスムーズに行うことができる。
(5) In the route generation method for a robot system according to the above aspect, when the second interpolation process continues to be executed, the number of operation commands stored in the storage unit becomes equal to or greater than the first threshold Th1. In this case, before executing the first interpolation process, the operation commands specifying the target position beyond the current position are stored in the storage unit, and the order in which the operation commands are executed is consecutive. specifying the first route information generated by executing the first interpolation process using the Th1 movement commands and the target position beyond the current one stored in the storage unit; using second path information generated by executing the second interpolation process using Th2 of the operation commands in which the order of execution of the operation commands is consecutive; Then, the third interpolation process is executed.
According to the above embodiment, before switching from the second interpolation process to the first interpolation process, the information on the first route interpolated by the second interpolation process immediately before, and the information about the second route interpolated by the first interpolation process. By executing the third interpolation process using the above, it is possible to smoothly switch from the second interpolation process to the first interpolation process.

(6)本開示の他の形態によれば、ロボットシステムの制御方法が提供される。このロボットシステムの制御方法は、外部機器から、ロボットの目標位置を指定する動作指令を受信して、前記動作指令を記憶部に格納する受信ステップと、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が第1閾値Th1以上である場合に、Th1個の前記動作指令を使用した第1補間処理を実行することにより、Th1個の前記動作指令のうち、少なくとも最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間を含む経路を、補間する第1補間ステップと、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が前記第1閾値Th1より小さい第2閾値Th2以上であり、かつ前記第1閾値Th1未満である場合に、Th2個の前記動作指令を使用した第2補間処理を実行することにより、Th2個の前記動作指令のうち、最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間の経路を補間する第2補間ステップと、補完された経路に沿って、前記ロボットを動作させる動作ステップと、を含む。
上記の形態によれば、記憶部に格納されている動作指令の数が第1閾値Th1未満であり、第1補間処理より使用する動作指令の数が少ない第2補間処理を実行して補間した経路に沿ってロボットを動作させるので、動作指令の数の不足により、ロボットの動作が停止することを回避できる。また、第1補間処理より使用する動作指令の数が少ない第2補間処理を常時実行する場合には、補間処理の精度が低下することが想定される。しかし、記憶部に格納されている動作指令の数に応じて補間処理を選択するので、第2補間処理を常時実行する場合に比べて、ロボットの動作の停止を回避しつつ、補間処理の精度の低下を抑制することができる。
(6) According to another aspect of the present disclosure, a method of controlling a robot system is provided. This robot system control method includes a receiving step of receiving a motion command specifying a target position of the robot from an external device and storing the motion command in a storage section; When the number of the plurality of motion commands specifying the previous target position and in which the order of execution of the motion commands is consecutive is greater than or equal to the first threshold Th1, By executing the first interpolation process using the movement commands, the target position specified by at least the first movement command and the target position specified by the next movement command among the Th1 movement commands are determined. a first interpolation step for interpolating a route including a path to and from a target position; and the operation command, which is stored in the storage unit and specifies the target position beyond the current position, and the operation command is executed. If the number of the plurality of operation commands whose order is consecutive is equal to or greater than a second threshold Th2 smaller than the first threshold Th1, and less than the first threshold Th1, Th2 of the operation commands are used. By executing the second interpolation process, the distance between the target position specified by the first movement command and the target position specified by the next movement command among the Th2 movement commands is determined. a second interpolation step of interpolating the path of the robot; and an operation step of operating the robot along the interpolated path.
According to the above embodiment, the number of motion commands stored in the storage unit is less than the first threshold Th1, and the second interpolation process, which uses fewer motion commands than the first interpolation process, is performed to perform interpolation. Since the robot is operated along the route, it is possible to avoid stopping the robot's operation due to an insufficient number of operation commands. Furthermore, if the second interpolation process, which uses fewer operation commands than the first interpolation process, is constantly executed, it is assumed that the accuracy of the interpolation process will decrease. However, since the interpolation process is selected according to the number of movement commands stored in the storage unit, the accuracy of the interpolation process can be improved while avoiding stopping the robot's movement compared to when the second interpolation process is constantly executed. It is possible to suppress the decrease in

本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替え、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。 The present disclosure is not limited to the embodiments described above, and can be implemented in various configurations without departing from the spirit thereof. For example, the technical features in the embodiments corresponding to the technical features in each form described in the summary column of the invention may be used to solve some or all of the above-mentioned problems, or to achieve one of the above-mentioned effects. In order to achieve some or all of the above, it is possible to perform appropriate substitutions and combinations. Further, unless the technical feature is described as essential in this specification, it can be deleted as appropriate.

10…ロボットシステム、50…アーム、54…アーム要素、55…アーム要素、56…アーム要素、57…アーム要素、58…アーム要素、59…アーム要素、60…サーボモーター、60o…出力軸、65…角度センサー、70…減速機、70i…入力軸、80…エンドエフェクター、85…力覚センサー、90…基台、100…ロボット、200…ロボットコントローラー、201…メモリー、202…CPU、210…位置演算部、220…指令出力部、230…動作制御部、500…制御装置、501…メモリー、502…CPU、J1…関節、J2…関節、J3…関節、J4…関節、J5…関節、J6…関節、P1…プログラム、Th1…第1閾値、Th2…第2閾値 DESCRIPTION OF SYMBOLS 10... Robot system, 50... Arm, 54... Arm element, 55... Arm element, 56... Arm element, 57... Arm element, 58... Arm element, 59... Arm element, 60... Servo motor, 60o... Output shaft, 65 ...Angle sensor, 70...Reducer, 70i...Input shaft, 80...End effector, 85...Force sensor, 90...Base, 100...Robot, 200...Robot controller, 201...Memory, 202...CPU, 210...Position Arithmetic unit, 220...Command output unit, 230...Movement control unit, 500...Control device, 501...Memory, 502...CPU, J1...Joint, J2...Joint, J3...Joint, J4...Joint, J5...Joint, J6... Joint, P1...program, Th1...first threshold, Th2...second threshold

Claims (6)

ロボットシステムの経路生成方法であって、
外部機器から、ロボットの目標位置を指定する動作指令を受信して、前記動作指令を記憶部に格納する受信ステップと、
前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が第1閾値Th1以上である場合に、Th1個の前記動作指令を使用した第1補間処理を実行することにより、Th1個の前記動作指令のうち、少なくとも最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間を、含む経路を補間する第1補間ステップと、
前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が前記第1閾値Th1より小さい第2閾値Th2以上であり、かつ前記第1閾値Th1未満である場合に、Th2個の前記動作指令を使用した第2補間処理を実行することにより、Th2個の前記動作指令のうち、最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間の経路を補間する第2補間ステップと、
を含む、
ロボットシステムの経路生成方法。
A path generation method for a robot system, the method comprising:
a receiving step of receiving a motion command specifying a target position of the robot from an external device and storing the motion command in a storage unit;
A first threshold value is the number of the plurality of operation commands that are stored in the storage unit and specify the target position beyond the current position, and the order in which the operation commands are executed is consecutive. If it is equal to or greater than Th1, by executing a first interpolation process using the Th1 movement commands, the target position specified by at least the first movement command among the Th1 movement commands is determined. a first interpolation step of interpolating a path including the target position specified by the next operation command;
The number of the plurality of operation commands, which are stored in the storage unit and which designate the target position beyond the current position, are consecutive in the order in which the operation commands are executed. When the second threshold Th2 is smaller than the threshold Th1 and is less than the first threshold Th1, by executing a second interpolation process using the Th2 operation commands, the number of Th2 operation commands is a second interpolation step of interpolating a path between the target position specified by the first movement command and the target position specified by the next movement command;
including,
Path generation method for robot system.
請求項1に記載のロボットシステムの経路生成方法であって、
前記記憶部に格納されている前記動作指令の数が、前記第2閾値Th2未満である場合、前記第2補間処理を実行することができないことを通知するエラーを出力するステップ、
を含む、
ロボットシステムの経路生成方法。
A path generation method for a robot system according to claim 1, comprising:
If the number of the operation commands stored in the storage unit is less than the second threshold Th2, outputting an error notifying that the second interpolation process cannot be executed;
including,
Path generation method for robot system.
請求項1または2に記載のロボットシステムの経路生成方法であって、
前記記憶部に格納されている前記動作指令の数が前記第1閾値Th1未満となった場合、前記記憶部に格納されている前記動作指令の数が前記第1閾値Th1以上となるまでの間、前記第2補間処理の実行が継続される、
ロボットシステムの経路生成方法。
A route generation method for a robot system according to claim 1 or 2, comprising:
When the number of the operation commands stored in the storage section becomes less than the first threshold Th1, until the number of the operation commands stored in the storage section becomes equal to or more than the first threshold Th1. , execution of the second interpolation process is continued;
Path generation method for robot system.
請求項3に記載のロボットシステムの経路生成方法であって、
前記第2補間処理の実行が継続されているときに前記記憶部に格納されている前記動作指令の数が前記第1閾値Th1以上となった場合、前記第1補間処理を実行する、
ロボットシステムの経路生成方法。
A route generation method for a robot system according to claim 3, comprising:
performing the first interpolation process when the number of the operation commands stored in the storage unit becomes equal to or greater than the first threshold Th1 while the execution of the second interpolation process is continued;
Path generation method for robot system.
請求項4に記載のロボットシステムの経路生成方法であって、
前記第2補間処理の実行が継続されているときに前記記憶部に格納されている前記動作指令の数が前記第1閾値Th1以上となった場合、
前記第1補間処理を実行する前に、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続しているTh1個の前記動作指令を使用した前記第1補間処理を実行することにより生成した第1経路の情報と、前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続しているTh2個の前記動作指令を使用した前記第2補間処理を実行することにより生成した第2経路の情報と、を使用した第3補間処理を実行する、
ロボットシステムの経路生成方法。
A route generation method for a robot system according to claim 4,
When the number of the operation commands stored in the storage unit becomes equal to or greater than the first threshold Th1 while the execution of the second interpolation process is continued;
Before executing the first interpolation process, the operation commands specifying the target position beyond the current position are stored in the storage unit, and the order in which the operation commands are executed is consecutive. Information on the first route generated by executing the first interpolation process using Th1 movement commands, and the movement command that specifies the target position beyond the current position, which is stored in the storage unit. and a third path using the second path information generated by executing the second interpolation process using Th2 operation commands in which the order of execution of the operation commands is consecutive. perform interpolation processing,
Path generation method for robot system.
ロボットシステムの制御方法であって、
外部機器から、ロボットの目標位置を指定する動作指令を受信して、前記動作指令を記憶部に格納する受信ステップと、
前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が第1閾値Th1以上である場合に、Th1個の前記動作指令を使用した第1補間処理を実行することにより、Th1個の前記動作指令のうち、少なくとも最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間を含む経路を、補間する第1補間ステップと、
前記記憶部に格納されている、現在より先の前記目標位置を指定する前記動作指令であって、前記動作指令が実行される順番が連続している複数の前記動作指令の数が前記第1閾値Th1より小さい第2閾値Th2以上であり、かつ前記第1閾値Th1未満である場合に、Th2個の前記動作指令を使用した第2補間処理を実行することにより、Th2個の前記動作指令のうち、最初の前記動作指令により指定されている前記目標位置と次の前記動作指令により指定されている前記目標位置との間の経路を補間する第2補間ステップと、
補完された経路に沿って、前記ロボットを動作させる動作ステップと、
を含む、
ロボットシステムの制御方法。
A method for controlling a robot system, the method comprising:
a receiving step of receiving a motion command specifying a target position of the robot from an external device and storing the motion command in a storage unit;
A first threshold value is the number of the plurality of operation commands that are stored in the storage unit and specify the target position beyond the current position, and the order in which the operation commands are executed is consecutive. If it is equal to or greater than Th1, by executing a first interpolation process using the Th1 movement commands, the target position specified by at least the first movement command among the Th1 movement commands is determined. a first interpolation step of interpolating a route including the target position specified by the next operation command;
The number of the plurality of operation commands, which are stored in the storage unit and which designate the target position beyond the current position, are consecutive in the order in which the operation commands are executed. When the second threshold Th2 is smaller than the threshold Th1 and is less than the first threshold Th1, by executing a second interpolation process using the Th2 operation commands, the number of Th2 operation commands is a second interpolation step of interpolating a path between the target position specified by the first movement command and the target position specified by the next movement command;
an operation step of operating the robot along the complemented path;
including,
How to control a robot system.
JP2022041088A 2022-03-16 2022-03-16 Route generation method for robot system and control method of robot system Pending JP2023135808A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022041088A JP2023135808A (en) 2022-03-16 2022-03-16 Route generation method for robot system and control method of robot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022041088A JP2023135808A (en) 2022-03-16 2022-03-16 Route generation method for robot system and control method of robot system

Publications (1)

Publication Number Publication Date
JP2023135808A true JP2023135808A (en) 2023-09-29

Family

ID=88145270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022041088A Pending JP2023135808A (en) 2022-03-16 2022-03-16 Route generation method for robot system and control method of robot system

Country Status (1)

Country Link
JP (1) JP2023135808A (en)

Similar Documents

Publication Publication Date Title
JP6392825B2 (en) Robot controller with learning control function
JP6268819B2 (en) Trajectory generation method for multi-axis robot
JP6167770B2 (en) Multi-axis robot trajectory generation method and multi-axis robot controller
JP6472214B2 (en) Robot apparatus control method and robot apparatus
JP6584102B2 (en) Robot apparatus, robot control method, program, recording medium, and article manufacturing method
WO2016021130A1 (en) Offline teaching device
JP5849451B2 (en) Robot failure detection method, control device, and robot
JP5458769B2 (en) Robot control device
JP5144035B2 (en) Industrial robot tool position / posture control method and control system
JP7336215B2 (en) Robot system, control method, article manufacturing method, program, and recording medium
US9676100B2 (en) Control apparatus of robot, robot, and program thereof
JP7144754B2 (en) Articulated robots and articulated robot systems
JP2019055440A (en) Robot system and work-piece manufacturing method
JP4842656B2 (en) Welding robot controller
JP2012051043A (en) Robot system or robot control device
JP6123595B2 (en) Speed control method for 2-axis robot
JP6165322B2 (en) Robot control apparatus and robot control method
JP6712724B2 (en) Robot control method and welding method
JP2023135808A (en) Route generation method for robot system and control method of robot system
JP2010110878A (en) Articulated robot device and method for controlling the same
JP2013223895A (en) Robot control method and robot control device
JP6036476B2 (en) robot
JP7384005B2 (en) Control method and robot system
JP2019104091A (en) Robot apparatus and control method for robot apparatus
JP2024024201A (en) Robot control method and robot system