JP6750909B2 - Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method - Google Patents

Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method Download PDF

Info

Publication number
JP6750909B2
JP6750909B2 JP2019148152A JP2019148152A JP6750909B2 JP 6750909 B2 JP6750909 B2 JP 6750909B2 JP 2019148152 A JP2019148152 A JP 2019148152A JP 2019148152 A JP2019148152 A JP 2019148152A JP 6750909 B2 JP6750909 B2 JP 6750909B2
Authority
JP
Japan
Prior art keywords
trajectory
robot
robot arm
obstacle
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019148152A
Other languages
Japanese (ja)
Other versions
JP2019193975A (en
Inventor
泰晴 前田
泰晴 前田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019148152A priority Critical patent/JP6750909B2/en
Publication of JP2019193975A publication Critical patent/JP2019193975A/en
Application granted granted Critical
Publication of JP6750909B2 publication Critical patent/JP6750909B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Description

本発明は、制御装置によって、共通の作業領域に配置されて動作する複数のロボットアームを動作させる軌道を生成するロボット軌道生成方法、ロボット軌道生成装置、および製造方法に関する。 The present invention relates to a robot trajectory generation method, a robot trajectory generation apparatus, and a manufacturing method for generating a trajectory for operating a plurality of robot arms arranged and operating in a common work area by a control device.

近年、工業製品の生産ラインなどにおいて、組み立て、加工、搬送、塗布、塗装などの作業に産業用ロボットのようなロボット装置が多用されるようになってきた。この種の生産ラインでは、生産能力の向上や省スペース化のために、複数台のロボット装置を近接して配置し、また、共通の作業領域の内部において、同時に、あるいは協働して作業を行うことがある。このように、共通の作業領域で複数のロボット装置を動作させる場合、ロボットアーム間で干渉(接触や衝突)が起きないよう制御する必要がある。 In recent years, in industrial product production lines and the like, robot devices such as industrial robots have been frequently used for operations such as assembling, processing, carrying, coating, and painting. In this type of production line, in order to improve production capacity and save space, multiple robot devices are placed close to each other, and work is performed simultaneously or in collaboration within a common work area. I have something to do. As described above, when operating a plurality of robot devices in the common work area, it is necessary to control so that interference (contact or collision) does not occur between the robot arms.

ロボット動作の教示には、ティーチングペンダントなどと呼ばれる操作装置で、実際の作業環境中でロボット装置を動かして確認しつつ、ロボットアームの位置、姿勢を変化させるロボット軌道を入力する作業が行われることがある。また、ロボット制御端末の表示装置でロボット装置の作業領域の3D仮想表示を行い、この仮想環境中でロボット装置を動作させつつ軌道入力を行うロボットプログラミング方式が用いられることもある。このような仮想環境を利用したロボット教示では、仮想環境中のロボット装置の制御、ティーチングペンダントに替えて、キーボード、ポインティングデバイス、タッチパネルなどの入力手段が教示点の入力に用いられる。 To teach robot movements, an operation device called a teaching pendant must be used to input the robot trajectory that changes the position and orientation of the robot arm while confirming by moving the robot device in the actual work environment. There is. In addition, a robot programming method may be used in which a 3D virtual display of the work area of the robot device is displayed on the display device of the robot control terminal, and a trajectory is input while operating the robot device in this virtual environment. In robot teaching using such a virtual environment, input means such as a keyboard, a pointing device, and a touch panel is used to input a teaching point, instead of controlling a robot device in the virtual environment and a teaching pendant.

上記のような教示者の手動操作過程を含む従来のロボット教示(プログラミング)では、教示者がロボットの通過する経路や軌道、各ロボットを動作させるタイミングを考え、ロボット間で干渉し合わないように試行錯誤的に教示作業を行う必要がある。従って、このような教示者の手動操作の比重が大きい従来方式ではロボットの台数や作業の総数が増加するほど、ロボット同士の干渉のない軌道を確保することが難しく、また、教示作業に多大な時間がかかるという問題がある。当然ながら、生産ライン内の周辺の設備やロボットの配置に変更が生じた場合には、同様の教示作業を再度行わなければならない。 In the conventional robot teaching (programming) including the above-mentioned teacher's manual operation process, the teacher should consider the route and trajectory of the robot and the timing of operating each robot so that the robots do not interfere with each other. It is necessary to perform teaching work by trial and error. Therefore, in such a conventional method in which the weight of manual operation by the teacher is large, it is difficult to secure a trajectory without interference between the robots as the number of robots and the total number of tasks increase, and a large amount of teaching work is required. There is a problem that it takes time. As a matter of course, when there is a change in the arrangement of peripheral equipment and robots in the production line, the same teaching work must be performed again.

そこで、近年では、ロボットが干渉を起こさない経路(軌道)を自動的に生成する技術が研究されている。このような経路生成の手法として、例えばRRT(Rapidly exploring Random Tree)やPRM(Probabilistic RoadMap Method)といった経路生成アルゴリズムなどが提案されている。このような軌道/経路生成技術を用いることにより、教示者はロボットの動作の始点と終点を指定するだけで済むため教示作業の負担を軽減できる。また、経路生成は作業環境をシミュレートする仮想空間上のコンピュータ演算によって実行できるため、生産ライン内の周辺の設備やロボットの配置の変更が発生しても、少ない時間で干渉を起こさない経路を再計算することができる。 Therefore, in recent years, techniques for automatically generating a path (trajectory) in which a robot does not interfere have been studied. As a method for generating such a route, for example, a route generating algorithm such as RRT (Rapidly exploring Random Tree) or PRM (Probabilistic Road Map Method) is proposed. By using such a trajectory/path generation technique, the instructor only has to specify the start point and the end point of the motion of the robot, so that the burden of the teaching work can be reduced. In addition, since route generation can be executed by computer calculation in a virtual space that simulates the work environment, even if the arrangement of peripheral equipment or robots in the production line changes, a route that does not cause interference in a short time can be created. Can be recalculated.

また、1台のロボットについて、作業環境中の障害物と干渉を起こさない経路を生成するのみならず、作業環境中に位置姿勢が刻々と変化する複数台のロボットが存在する場合に、各ロボット間で干渉を起こさないロボット軌道を生成する技術も提案されている。 Further, not only is it possible to generate a path that does not interfere with obstacles in the work environment for one robot, but also if there are a plurality of robots whose position and orientation change momentarily in the work environment, Techniques for generating robot trajectories that do not cause interference between them have also been proposed.

例えば、下記の特許文献1では、ロボットの動作を開始するタイミングを調整することでロボット間の干渉を回避している。特許文献1の複数台ロボットの干渉回避方法では、各ロボットの動作の優先順位を設定し、各ロボットの所定時間内の動作によるロボットの通過予定領域、またはそれを含む拡大領域である占有領域を順次演算する。そして演算された占有領域間での重なりの有無を判定し、重なりが有る場合には、上記優先順位の低い一方のロボットを待機させると共に、優先順位の高い他方のロボットを動作させる。また、他方のロボットの占有領域は、該他方のロボットの動作中に既に動作が終った部分について順次解除される。そして上記他方のロボットの占有領域の変化に基づいて、重なりが無くなって以降、一方のロボットの動作を開始する。 For example, in Patent Document 1 below, interference between robots is avoided by adjusting the timing of starting the operation of the robots. In the interference avoidance method for a plurality of robots of Patent Document 1, the priority order of the operation of each robot is set, and the planned passage area of the robot due to the operation of each robot within a predetermined time, or the occupied area that is an expanded area including the area is set. Calculate sequentially. Then, it is determined whether or not there is an overlap between the calculated occupied areas, and if there is an overlap, one of the robots having the lower priority is placed on standby and the other robot having the higher priority is operated. In addition, the occupied area of the other robot is sequentially released for the portions that have already completed their operations during the operation of the other robot. Then, based on the change in the occupation area of the other robot, the operation of one robot is started after the overlap is eliminated.

また、下記の非特許文献1では、ロボットの動作時の速度を調整することでロボット間の干渉を回避している。非特許文献1の軌道生成では、各ロボットの始点から終点までの経路を他のロボットが存在しないとみなして計算し、次に各ロボットの経路上の位置をパラメータとしたグラフを生成する。そして、生成したグラフ上で干渉のない各ロボットの経路上の位置の組み合わせを探索し、最初に求めた経路と、各ロボットの経路上の位置の組み合わせを結合し、速度を調整しながら動作する互いに干渉し合わない軌道を得ている。 Further, in Non-Patent Document 1 below, interference between robots is avoided by adjusting the speed at which the robots operate. In the trajectory generation of Non-Patent Document 1, the route from the start point to the end point of each robot is calculated assuming that no other robot exists, and then a graph with the position of each robot on the route as a parameter is generated. Then, the combination of the positions on the path of each robot that does not interfere with each other is searched for on the generated graph, and the combination of the initially found path and the position on the path of each robot is combined to operate while adjusting the speed. We have orbits that do not interfere with each other.

特開平8−166809号公報JP-A-8-166809

G. Sanchez and J.-C. Latombe, "On delaying collision checking in PRM planning: Application to multi-robot coordination" International Journal of Robotics Research, vol. 21, no. 1, pp. 5-26, 2002G. Sanchez and J.-C. Latombe, "On delaying collision checking in PRM planning: Application to multi-robot coordination" International Journal of Robotics Research, vol. 21, no. 1, pp. 5-26, 2002

上記の特許文献1および非特許文献1に記載の軌道制御は、いずれも同期的な制御を前提としている。例えば、いずれの軌道制御においても、各ロボットの経路・軌道を確定した後に、各ロボットの動作させるタイミングや各ロボットの動作の速度を同期的に制御、調整することでロボット間で干渉のない軌道を生成する。 The trajectory control described in Patent Document 1 and Non-Patent Document 1 is premised on synchronous control. For example, in any trajectory control, after determining the route/trajectory of each robot, synchronously controlling and adjusting the timing of each robot's operation and the speed of each robot's operation, the trajectory without interference between robots To generate.

しかしながら、上記のような従来の軌道制御を実施したとしても、ある時刻におけるロボットの通過領域は、他の時刻においては他のロボットの通過領域と交差している可能性がある。即ち、上記の従来技術では、時間軸上でロボット同士の干渉が起きないように制御しているために、実環境において、もしロボットの動作速度や動作タイミングにずれが生じると、ロボットアーム同士の干渉が生じる可能性がある。例えば、複数のロボットのうち片方のロボットが共通の通過領域上で異常停止していたり、ロボットの実際の動作の速度が理想の速度から大きくかけ離れていたりする場合に、ロボット同士で干渉する可能性がある。 However, even if the conventional trajectory control as described above is performed, the passage area of the robot at a certain time may intersect with the passage area of another robot at another time. That is, in the above-mentioned conventional technology, since the robots are controlled so that they do not interfere with each other on the time axis, in a real environment, if there is a deviation in the operation speed or the operation timing of the robots, the robot arms will not move. Interference may occur. For example, if one of multiple robots is abnormally stopped on a common passage area, or if the actual motion speed of the robot is far from the ideal speed, the robots may interfere with each other. There is.

また、上記の従来の軌道制御は、複数のロボットが特定の時刻において同じ空間を占めることがないよう制御する技術であり、空間軸および時間軸の双方に係わる演算が必要であり、一般に処理系の演算負荷が大きく、多大な計算資源が必要となる可能性がある。 Further, the above-mentioned conventional trajectory control is a technique for controlling so that a plurality of robots do not occupy the same space at a specific time, and it is necessary to perform calculations related to both the space axis and the time axis. There is a possibility that the calculation load of is large and requires a large amount of calculation resources.

本発明の課題は、上記の問題に鑑み、ロボット軌道の生成において、実環境のロボットアームの動作速度やタイミング制御の精度に拘らず確実に複数台のロボットアームの通過領域が互いに交差する可能性を著しく低減できるようにすることにある。また、本発明の他の課題は、低速な制御装置でも、高速に軌道生成を行えるようにすることにある。 In view of the above problems, an object of the present invention is to ensure that, in the generation of a robot trajectory, the passage areas of a plurality of robot arms may cross each other without fail regardless of the operating speed of the robot arms in the real environment and the accuracy of timing control. Is to be able to be significantly reduced. Another object of the present invention is to enable a low-speed control device to generate a trajectory at high speed.

上記課題を解決するため、本発明においては、ロボットアームの軌道を生成する制御装置におけるロボット軌道生成方法であって、前記制御装置が、軌道定義データに基づき第1のロボットアームの躯体が通過する空間であって、第2のロボットアームが通過を回避すべき空間に相当する空間データをメモリに格納する格納行程と、前記制御装置が、前記空間データに対応する空間を回避しながら、前記第2のロボットアームが動作する軌道を生成する生成行程と、を有し、前記空間データを生成後に、前記空間データに対応する空間を回避した新たな軌道を生成できない場合には、前記空間データをクリアする構成を採用した。 In order to solve the above-mentioned problems, the present invention provides a robot trajectory generation method in a controller that generates a trajectory of a robot arm, wherein the controller passes a body of a first robot arm based on trajectory definition data. A storage step of storing space data in a memory, the space corresponding to the space that should be avoided by the second robot arm; and the controller while avoiding the space corresponding to the space data. a generating step of generating a trajectory 2 of the robot arm is operated, the possess, after generating the spatial data, if it can not generate a new trajectory that avoids space corresponding to the space data, the spatial data Adopted a clear configuration.

上記構成によれば、ロボット軌道の生成において、実環境のロボットアームの動作速度やタイミング制御の精度に拘らず確実に複数台のロボットアームの通過領域が互いに交差する可能性を著しく低下させることができる。また、上記構成によれば、ロボットアームの障害物回避に時間軸に係る演算や制御を利用しないため、低速な制御装置を用いる場合でも高速な軌道生成が可能である。 According to the above configuration, in the generation of the robot trajectory, it is possible to significantly reduce the possibility that the passing regions of the plurality of robot arms may cross each other reliably regardless of the operation speed of the robot arm in the real environment and the accuracy of the timing control. it can. Further, according to the above configuration, since calculation and control related to the time axis are not used for avoiding obstacles of the robot arm, high-speed trajectory generation is possible even when a low-speed control device is used.

本発明を実施可能なロボット軌道生成システムの構成を示した説明図である。It is explanatory drawing which showed the structure of the robot trajectory generation system which can implement this invention. 実施例1に係る軌道生成装置の制御系の構成を示したブロック図である。3 is a block diagram showing a configuration of a control system of the trajectory generation device according to the first embodiment. FIG. 実施例1〜3の軌道生成制御の流れの概略を示したフローチャート図である。It is a flowchart figure which showed the outline of the flow of the orbital generation control of Examples 1-3. 実施例1に係る2つのロボットアームを示した説明図である。FIG. 5 is an explanatory diagram showing two robot arms according to the first embodiment. 実施例1に係る軌道生成制御の流れを示したフローチャート図である。6 is a flowchart showing a flow of trajectory generation control according to the first embodiment. FIG. (a)〜(c)は実施例1に係る2つのロボットアームの軌道とその通過領域を示した説明図である。(A)-(c) is explanatory drawing which showed the trajectories of the two robot arms which concerns on Example 1, and its passage area. 実施例2に係るに係る軌道生成制御の流れを示したフローチャート図である。FIG. 9 is a flowchart showing a flow of trajectory generation control according to the second embodiment. (a)〜(d)は実施例2に係る2つのロボットアームの軌道とその通過領域を示した説明図である。(A)-(d) is explanatory drawing which showed the trajectories of the two robot arms which concern on Example 2, and its passage area. (a)〜(d)は実施例2に係る2つのロボットアームの軌道とその通過領域を示した説明図である。(A)-(d) is explanatory drawing which showed the trajectories of the two robot arms which concern on Example 2, and its passage area. 実施例2に係る2つのロボットアーム動作のタイミングを示す図である。FIG. 8 is a diagram showing timings of two robot arm operations according to the second embodiment. (a)〜(f)は実施例3に係る2つのロボットアームの軌道とその通過領域を示した説明図である。(A)-(f) is explanatory drawing which showed the trajectories of the two robot arms which concern on Example 3, and its passage area. 実施例3に係る2つのロボットアーム動作のタイミングを示す図である。FIG. 10 is a diagram showing timings of two robot arm operations according to the third embodiment. 実施例3に係る軌道生成制御の流れを示したフローチャート図である。FIG. 9 is a flowchart showing a flow of trajectory generation control according to the third embodiment. 図1のロボット軌道生成システムにおいて実施可能な動作指令入力のためのユーザーインターフェースの説明図である。It is explanatory drawing of the user interface for operation command input which can be implemented in the robot trajectory generation system of FIG. (a)〜(c)は実施例1における障害物メモリ中のデータ内容の遷移を示した説明図である。(A)-(c) is explanatory drawing which showed the transition of the data content in the obstacle memory in Example 1. (a)〜(f)は実施例2における障害物メモリ中のデータ内容の遷移を示した説明図である。(A)-(f) is explanatory drawing which showed the transition of the data content in the obstacle memory in Example 2. FIG. (a)〜(f)は実施例3における障害物メモリ中のデータ内容の遷移を示した説明図である。(A)-(f) is explanatory drawing which showed the transition of the data content in the obstacle memory in Example 3. FIG. 実施例1〜3に係る軌道生成制御の要部の制御例を示したフローチャート図である。It is a flowchart figure which showed the control example of the principal part of the trajectory generation control which concerns on Examples 1-3.

以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、以下の実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。 Embodiments for carrying out the present invention will be described below with reference to the embodiments shown in the accompanying drawings. It should be noted that the following embodiments are merely examples, and for example, the detailed configuration can be appropriately changed by those skilled in the art without departing from the spirit of the present invention. The numerical values taken in the following embodiments are reference numerical values and do not limit the present invention.

なお、本明細書でいう「ロボット」とは、モータ等の動力源によって動作し、制御されるものであればその構成はどのようなものであってもよく、その基本構成によって本発明は限定されるものではない。以下の実施例では、回転関節を有する垂直シリアルリンク型の多関節ロボットアームを例に本発明に係るロボットの軌道生成方法および軌道生成装置につき説明する。しかしながら、例えば、パラレルリンク側の多関節ロボットや、平面上を移動するロボットなどを複数、作業環境に配置してその軌道生成を行う場合などにおいても、本発明は実施できる。 The "robot" referred to in the present specification may have any configuration as long as it is operated and controlled by a power source such as a motor, and the present invention is limited by its basic configuration. It is not something that will be done. In the following embodiments, a trajectory generating method and a trajectory generating apparatus for a robot according to the present invention will be described by taking a vertical serial link type multi-joint robot arm having a rotary joint as an example. However, the present invention can be implemented, for example, even when a plurality of articulated robots on the parallel link side, robots that move on a plane, and the like are arranged in a work environment to generate their trajectories.

<実施例1>
図1、図2は本発明の実施例1に係るロボット軌道生成システムの構成を示している。図1は、ロボット軌道生成システム全体の構成を示している。図1において、例えば演算処理部1はPC(パーソナルコンピュータ)のようなハードウェアを利用して構成することができる。演算処理部1には、作業者(ロボット教示者)が動作指令を入力するための入力部としてキーボード11、マウス12(あるいはトラックパッドのようなポインティングデバイス)が接続されている。また、作業者が入力操作した動作指令や、それに基づき生成されたロボット軌道などを確認するための表示装置としてディスプレイ13が接続されている。
<Example 1>
1 and 2 show the configuration of a robot trajectory generation system according to a first embodiment of the present invention. FIG. 1 shows the configuration of the entire robot trajectory generation system. In FIG. 1, for example, the arithmetic processing unit 1 can be configured using hardware such as a PC (personal computer). A keyboard 11 and a mouse 12 (or a pointing device such as a trackpad) are connected to the arithmetic processing unit 1 as input units for an operator (robot teacher) to input an operation command. Further, a display 13 is connected as a display device for confirming an operation command input by an operator and a robot trajectory generated based on the operation command.

演算処理部1には、外部記憶装置14と、ネットワークインターフェース31などを接続することができる。図1の外部記憶装置14は、主に外付けのHDDやSSDのようなディスク装置、あるいは各種の光ディスク装置などから構成される。ネットワークインターフェース31は、実機のロボットアームに対して動作指令データなどを転送するために用いられる。 The external storage device 14 and the network interface 31 can be connected to the arithmetic processing unit 1. The external storage device 14 of FIG. 1 is mainly configured by an external disk device such as an HDD or SSD, or various optical disk devices. The network interface 31 is used to transfer operation command data and the like to an actual robot arm.

また、外部記憶装置14、ネットワークインターフェース31は、後述のロボット軌道生成プログラムを演算処理部1にインストールしたり、あるいはインストール済みの同プログラムを更新したりするためのインストール/更新手段として利用できる。その場合、例えば外部記憶装置14は、メディア交換の可能は光ディスク装置などから構成することができる。本発明を実施するための制御プログラムは、上記の光ディスクを介して演算処理部1にインストールでき、またその更新が可能である。同様に、本発明を実施するための制御プログラムは、ネットワークインターフェース31を介して、所定のネットワークプロトコルを利用して演算処理部1にインストールでき、またその更新が可能である。 Further, the external storage device 14 and the network interface 31 can be used as an install/update unit for installing a robot trajectory generation program, which will be described later, in the arithmetic processing unit 1 or updating the installed program. In that case, for example, the external storage device 14 can be configured by an optical disk device capable of exchanging media. The control program for implementing the present invention can be installed in the arithmetic processing unit 1 via the above-mentioned optical disk, and can be updated. Similarly, the control program for implementing the present invention can be installed in the arithmetic processing unit 1 via the network interface 31 using a predetermined network protocol, and can be updated.

図1のロボット軌道生成装置では、例えば、同じ作業環境に配置された複数(この場合2台)のロボットアーム5、6のための軌道生成を行う。ロボットアーム5、6の作業環境中には、ロボットアーム5、6との干渉や衝突を回避すべき障害物7が配置される場合がある。この障害物7は、他の部品供給装置、換気ダクト、あるいは演算処理部1の筐体など、各々のロボットアーム5、6以外に作業環境中に配置されたあらゆる物体が対象となる。そして、後述の軌道生成制御では、ロボットアーム5、6が障害物7と干渉しないように、またロボットアーム5、6同士が相互に干渉しないように、ロボット軌道を生成する。 In the robot trajectory generation device of FIG. 1, for example, trajectory generation is performed for a plurality of (two in this case) robot arms 5 and 6 arranged in the same work environment. In the working environment of the robot arms 5 and 6, there are cases where an obstacle 7 that should avoid interference or collision with the robot arms 5 and 6 is arranged. The obstacle 7 is any object placed in the work environment other than the robot arms 5 and 6, such as another component supply device, a ventilation duct, or a housing of the arithmetic processing unit 1. In the trajectory generation control described later, the robot trajectory is generated so that the robot arms 5 and 6 do not interfere with the obstacle 7 and the robot arms 5 and 6 do not interfere with each other.

作業者(ロボット管理者、ロボットプログラマなど)は、キーボード11、マウス12などを用いて、ディスプレイ13上に表示されるユーザーインターフェースを介してロボットアーム5、6のための動作指令を入力する(軌道定義データ入力)。ディスプレイ13上のグラフィックス表示によって構成されるユーザーインターフェースとしては例えば後述の図14のようなダイアログ表示、あるいは下記の3D仮想表示によるGUIが含まれる。本実施例の動作指令入力では、作業者が、例えば生成すべき軌道の始点、および終点(の3次元座標)を含む軌道定義データを入力する。 An operator (robot administrator, robot programmer, etc.) inputs a motion command for the robot arms 5 and 6 via the user interface displayed on the display 13 using the keyboard 11, the mouse 12, etc. (trajectory). Definition data input). The user interface configured by the graphic display on the display 13 includes, for example, a dialog display as shown in FIG. 14 described later, or a GUI by the 3D virtual display described below. In the operation command input of the present embodiment, the operator inputs the trajectory definition data including, for example, the starting point and the ending point (three-dimensional coordinates) of the trajectory to be generated.

演算処理部1は、入力された動作指令入力に基づき、軌道定義データから成る動作指令リストを生成し、この動作指令リストに基づき、ロボットアーム5、6の軌道生成を行う。 The arithmetic processing unit 1 generates an operation command list including trajectory definition data based on the input operation command, and generates a trajectory of the robot arms 5 and 6 based on this operation command list.

なお、図1のロボット軌道生成装置は、軌道生成の対象となる実機のロボットアームと接続されていてもよく、また、ロボットアームとの接続の無いオフライン環境においてもロボット軌道を生成することができるよう構成される。オフライン環境のロボット軌道生成では、ディスプレイ13にプログラム対象であるロボットアーム5、6の3D仮想表示を行う。このような3D仮想表示GUIは、キーボード11、マウス12などを用いて、ディスプレイ13上に仮想表示されたアームやその関節を操作できるよう構成することができる。 The robot trajectory generation device in FIG. 1 may be connected to an actual robot arm that is the target of trajectory generation, and can generate a robot trajectory even in an offline environment where there is no connection with the robot arm. Is configured as follows. In the robot trajectory generation in the off-line environment, the display 13 displays 3D virtual images of the robot arms 5 and 6 to be programmed. Such a 3D virtual display GUI can be configured so that the arm and its joints virtually displayed on the display 13 can be operated using the keyboard 11, the mouse 12, and the like.

このような仮想環境を用いることにより、後述のようなダイアログ表示(例えば後述の図14)の他、仮想表示されたロボットアーム5、6を操作することによっても、ロボット軌道の始点や終点(における位置、姿勢)を入力することができる。また、このような仮想環境によれば、必要に応じて、仮想空間上のロボットアームや障害物の配置の変更、といった操作も可能である。 By using such a virtual environment, the start point and the end point of the robot trajectory can be displayed by operating the robot arms 5 and 6 that are virtually displayed, in addition to the dialog display described later (for example, FIG. 14 described later). (Position, posture) can be input. Further, according to such a virtual environment, it is possible to perform an operation such as changing the arrangement of the robot arm or the obstacle in the virtual space, if necessary.

図2は、演算処理部1の制御系の構成の一例をブロック図として示している。図示の構成はシステムバス29上に、CPU20、ROM21、RAM22、HDD23(例えば演算処理部1の筐体内に内蔵のもの)などの各部を接続して成る。 FIG. 2 is a block diagram showing an example of the configuration of the control system of the arithmetic processing unit 1. In the configuration shown in the figure, each unit such as the CPU 20, the ROM 21, the RAM 22, the HDD 23 (for example, one built in the casing of the arithmetic processing unit 1) is connected to the system bus 29.

図1の外部記憶装置14はインターフェース28を介してシステムバス29に接続されている。図1では、特に外部記憶装置14を構成する部材として光ディスク装置を例示したが、このようなディスクデバイスは、図2では記録ディスクドライブ24として示してある。記録ディスクドライブ24は、各種の光ディスクなどフォーマットで構成された記録ディスク15のデータを読み取り、あるいはさらに記録ディスク15に対してデータを書き込むことができる。従って、記録ディスク15は、例えば本発明を実施するための制御プログラムの入出力に利用できる。その場合、記録ディスク15は同制御プログラムのコンピュータ読み取り可能な記録媒体を構成する。 The external storage device 14 of FIG. 1 is connected to a system bus 29 via an interface 28. In FIG. 1, an optical disk device is illustrated as a member that particularly constitutes the external storage device 14, but such a disk device is shown as a recording disk drive 24 in FIG. 2. The recording disk drive 24 can read data from the recording disk 15 configured in various formats such as optical disks, or write data to the recording disk 15. Therefore, the recording disk 15 can be used, for example, for inputting and outputting a control program for implementing the present invention. In that case, the recording disk 15 constitutes a computer-readable recording medium of the control program.

図1のキーボード11、マウス12、ディスプレイ13は、それぞれインターフェース25、26、27を介してシステムバス29に接続されている。また、ネットワークインターフェース31は、外部のネットワーク32とシステムバス29の間の通信を制御する。この通信には、TCP/IP、あるいはその上で実行される各種の通信プロトコルを利用することができる。 The keyboard 11, mouse 12, and display 13 of FIG. 1 are connected to the system bus 29 via interfaces 25, 26, and 27, respectively. Further, the network interface 31 controls communication between the external network 32 and the system bus 29. For this communication, TCP/IP or various communication protocols executed on it can be used.

後述の軌道生成プログラムは、例えば上記の演算処理部1で動作するOS上で実行することができる。このOS(オペレーティングシステム)の構成によっては、HDD23などの記憶領域を利用した仮想記憶部を利用することができる。その場合、後述の障害物メモリのような領域は、RAMのような主記憶デバイスのみならず、このような(HDD23などによる)仮想記憶部上に確保される可能性がある。 The trajectory generation program described below can be executed, for example, on the OS operating in the arithmetic processing unit 1. Depending on the configuration of this OS (operating system), a virtual storage unit that uses a storage area such as the HDD 23 can be used. In that case, an area such as an obstacle memory to be described later may be secured not only on a main storage device such as a RAM but also on such a virtual storage unit (by the HDD 23 or the like).

図4は、本実施例の軌道生成対象であるロボットアーム5、6と、障害物7から含む作業環境の概略構成を示している。ここでは説明を容易にするため、ロボットアームの構成として、ごく簡略化された構成を示している。例えば、図4のロボットアーム5、6は3関節のロボットアームである。なお、以下では、制御の説明の都合上、ロボットアーム5、6をそれぞれA、Bのアルファベットによって参照することがある。 FIG. 4 shows a schematic configuration of a work environment including the robot arms 5 and 6 which are the trajectory generation targets of this embodiment and the obstacle 7. Here, in order to facilitate the description, a very simplified configuration is shown as the configuration of the robot arm. For example, the robot arms 5 and 6 in FIG. 4 are three-joint robot arms. In the following, for convenience of explanation of control, the robot arms 5 and 6 may be referred to by alphabets A and B, respectively.

ロボットアーム5は、3つのリンク55、56、57と、それらを連結する関節軸51、52、53を備え、リンク57の先端には、例えばロボットハンドのようなエンドエフェクタ54が設けられている。また、ロボットアーム6は、リンク65、66、67と、関節軸61、62、63と、エンドエフェクタ64を備える。各ロボットアーム5、6の3つの関節軸は回転駆動機構を持ち、回転の角度によってロボットアーム5、6の先端に位置するエンドエフェクタ54、64の位置が決定される。 The robot arm 5 includes three links 55, 56, 57 and joint shafts 51, 52, 53 connecting them, and an end effector 54 such as a robot hand is provided at the tip of the link 57. .. The robot arm 6 also includes links 65, 66 and 67, joint shafts 61, 62 and 63, and an end effector 64. The three joint axes of each robot arm 5 and 6 have a rotation drive mechanism, and the position of the end effectors 54 and 64 located at the tip of the robot arm 5 and 6 is determined by the angle of rotation.

各ロボットアーム5、6の関節軸の回転駆動機構は、不図示のサーボモータや減速機などの駆動系を備え、ロボット制御データに基づく回転角度に制御できるものとする。例えばロボットハンドのようなエンドエフェクタ54、64についても、同様のサーボモータや減速機などの駆動系を介してフィンガの開度のような制御条件を制御することができる。このような構成によって、各ロボットアーム5、6にロボット制御データを送信することにより、各アームを特定の位置姿勢に制御し、またエンドエフェクタ54、64で特定の操作を行わせることができる。なお、以上ではサーボモータのような駆動源を例示したが、関節やエンドエフェクタは必ずしも電気的に駆動制御されるものである必要はない。例えば、ロボットアーム5、6の関節やエンドエフェクタは、ロボット制御データによって制御される空気圧、油圧アクチュエータの空気圧や油圧によって駆動されるものであってよい。 The rotary drive mechanism for the joint shaft of each robot arm 5 and 6 is provided with a drive system such as a servo motor and a speed reducer (not shown), and can be controlled to a rotation angle based on the robot control data. For the end effectors 54 and 64 such as robot hands, for example, control conditions such as the opening degree of fingers can be controlled via the same drive system such as a servo motor and a speed reducer. With such a configuration, by transmitting the robot control data to each of the robot arms 5 and 6, it is possible to control each arm to a specific position and orientation and to make the end effectors 54 and 64 perform a specific operation. Although a drive source such as a servo motor has been illustrated above, joints and end effectors do not necessarily have to be electrically driven and controlled. For example, the joints and end effectors of the robot arms 5 and 6 may be driven by pneumatic pressure controlled by robot control data, pneumatic pressure or hydraulic pressure of a hydraulic actuator.

図4に示すように、作業環境中においてロボットアーム5とロボットアーム6が近接して配置され、また、作業環境中には障害物7が存在する。このため、2つのロボットアームの関節軸の角度によっては、ロボットアームのリンクや関節軸、エンドエフェクタの間で干渉が発生する可能性がある。後述の軌道生成制御では、ロボットアーム5、6同士が相互に干渉しないように、ロボット軌道を生成する。その場合、もちろん、ロボットアーム5、6は、障害物7と干渉しないように、ロボット軌道が生成される。 As shown in FIG. 4, the robot arm 5 and the robot arm 6 are arranged close to each other in the work environment, and the obstacle 7 exists in the work environment. Therefore, depending on the angles of the joint axes of the two robot arms, interference may occur between the links and joint axes of the robot arms and the end effector. In the trajectory generation control described below, the robot trajectory is generated so that the robot arms 5 and 6 do not interfere with each other. In that case, of course, a robot trajectory is generated so that the robot arms 5 and 6 do not interfere with the obstacle 7.

以下、図3、図5、図6、図14、図15を参照して、本実施例のロボット軌道生成、特に複数台のロボットの通過領域が互いに交差しないようにロボット軌道を生成する手法につき説明する。 Hereinafter, with reference to FIG. 3, FIG. 5, FIG. 6, FIG. 14, and FIG. 15, a method for generating a robot trajectory according to the present embodiment, in particular, a method for generating a robot trajectory so that passage areas of a plurality of robots do not intersect each other will be described. explain.

図3は、ロボット軌道生成制御の全体の流れを、図5は本実施例の複数台のロボットの通過領域が互いに交差しないようにロボット軌道を生成する制御手順を示している。図6(a)〜(c)は図4の様式に基づき軌道生成の様子を示している。また、図14は、動作指令入力のためにディスプレイ13に表示するダイアログを、図15(a)〜(c)は実施例1における障害物メモリ中のデータ内容の遷移を示している。 FIG. 3 shows the overall flow of the robot trajectory generation control, and FIG. 5 shows the control procedure for generating the robot trajectory so that the passage areas of the plurality of robots of this embodiment do not intersect each other. FIGS. 6A to 6C show how the trajectory is generated based on the style of FIG. Further, FIG. 14 shows a dialog displayed on the display 13 for inputting an operation command, and FIGS. 15A to 15C show transition of data contents in the obstacle memory in the first embodiment.

図3のステップS100では、作業者がキーボード11、マウス12などを用いて、ディスプレイ13上に表示されるユーザーインターフェースを介してロボットアーム5、6のための動作指令を入力する。例えば、図14に示すようなダイアログ131をディスプレイ13に表示し、作業者にこのダイアログを介して動作指令を入力させる。 In step S100 of FIG. 3, the operator inputs an operation command for the robot arms 5 and 6 via the user interface displayed on the display 13 using the keyboard 11, the mouse 12, and the like. For example, a dialog 131 as shown in FIG. 14 is displayed on the display 13, and the operator is prompted to input an operation command through this dialog.

図14のダイアログ131の上部には、例えばタイトル表示(この例では「動作指令の入力」)を含むタイトルバー1311を表示する。ダイアログ131は、ロボットアーム5(A)のための入力を行うセクション1315とロボットアーム6(B)のための入力を行うセクション1316に分割されている。 A title bar 1311 including, for example, a title display (“input operation command” in this example) is displayed at the top of the dialog 131 in FIG. The dialog 131 is divided into a section 1315 for inputting for the robot arm 5(A) and a section 1316 for inputting for the robot arm 6(B).

各セクション1315、1316の上部は、各1行を1つの動作指令に対応する1レコードに対応させた入力部となっており、例えば1321〜1324の各入力フィールドに区画されている。フィールド1321は、当該の動作指令の名称のフィールドで、このフィールドには作業者に任意の動作指令の名称を入力しても良く、また、この動作指令の名称はCPU20によって自動的に順次、生成してもよい。この例では、ロボットアーム5(A)側では動作指令Ma1、Ma2、Ma3が、ロボットアーム5(B)側では動作指令Mb1、Mb2が入力されている。 The upper part of each of the sections 1315 and 1316 is an input section in which each row is associated with one record corresponding to one operation command, and is divided into input fields 1321 to 1324, for example. A field 1321 is a field of the name of the operation command in question, and the name of the operation command may be input to the operator in this field, and the name of this operation command is automatically and sequentially generated by the CPU 20. You may. In this example, operation commands Ma1, Ma2, Ma3 are input on the robot arm 5(A) side, and operation commands Mb1, Mb2 are input on the robot arm 5(B) side.

本実施例では、これら動作指令は軌道定義データとして、動作指令に対応する軌道の始点、および終点のデータを入力する。これら始点、および終点は、ロボットアーム5、6の先端、例えばエンドエフェクタ54、64の基部周辺などの位置に設定される各アームの基準部位を移動させる3次元(XYZ)座標である。 In the present embodiment, as the motion command, as the trajectory definition data, the data of the start point and the end point of the trajectory corresponding to the motion command are input. The start point and the end point are three-dimensional (XYZ) coordinates for moving the reference part of each arm which is set at the tip of the robot arms 5 and 6, for example, around the bases of the end effectors 54 and 64.

これらの軌道の始点、および終点のデータは、フィールド1322、1323にそれぞれ入力される。図14中では、ロボットアーム5(a)の動作指令Ma1、Ma2、Ma3に対応する始点、終点データとして、Sa1とGa1、Sa2とGa2、Sa3とGa3が入力されている。また、ロボットアーム6(b)の動作指令Mb1、Mb2に対応する始点、終点データとして、Sb1とGb1、Sb2とGb2が入力されている。 The data of the starting point and the ending point of these trajectories are input to fields 1322 and 1323, respectively. In FIG. 14, Sa1 and Ga1, Sa2 and Ga2, Sa3 and Ga3 are input as start point and end point data corresponding to the operation commands Ma1, Ma2, Ma3 of the robot arm 5(a). Further, Sb1 and Gb1 and Sb2 and Gb2 are input as start point and end point data corresponding to the operation commands Mb1 and Mb2 of the robot arm 6(b).

なお、ここでは、始点、終点データの各フィールド中には上記のSa1、Ga1…のような文字列表現を図示しているが、実際には3次元座標データのような数値データ表現を用いることができる。その場合、始点、終点データの各数値は、キーボード11などから手動入力する他、仮想表示中のロボットアーム5、6を操作して決定させるようにしてもよい。例えば、作業者がディスプレイ13の仮想表示中の空間をマウス12でポイントして所望のアームの基準部位の座標を入力する。あるいは、ディスプレイ13の仮想表示中のロボットアーム5、6をマウス12などにより操作し、所望のアームの基準部位の座標に対応する位置、姿勢を取らせ、不図示のダイアログを用いて基準部位の座標を確定してもよい。いずれの場合も、確定された基準部位の座標に対応する数値データを始点、終点データとしてフィールド1322、1323に入力、表示する。 Here, the character string representations such as Sa1, Ga1... Are shown in each field of the start point and end point data, but in practice, the numerical data representation such as three-dimensional coordinate data is used. You can In that case, the numerical values of the start point and end point data may be manually input from the keyboard 11 or the like, or may be determined by operating the robot arms 5 and 6 in virtual display. For example, the operator points the space in the virtual display of the display 13 with the mouse 12 and inputs the coordinates of the desired reference portion of the arm. Alternatively, the robot arms 5 and 6 that are virtually displayed on the display 13 are operated by the mouse 12 or the like so that the position and posture corresponding to the coordinates of the reference portion of the desired arm are taken, and the reference portion of the reference portion is displayed using a dialog (not shown). The coordinates may be fixed. In either case, numerical data corresponding to the determined coordinates of the reference part are input and displayed in the fields 1322 and 1323 as start point and end point data.

また、ロボットアーム5、6に対応する各セクション1315、1316には、直前の動作に対応する動作指令を指定できるようフィールド1324が配置されている。フィールド1324は、当該の動作指令の直前の動作指令(例えばフィールド1321の名称により参照される)を指定するのに用いられる。このフィールド1324を設けることにより、ロボットアーム5、6に対応する各セクション1315、1316は、各動作指令の前後の関係を関係づけたリンクトリストのような構造となる。図14のように、ユーザーインターフェースにおいて、フィールド1324のような動作指令の前後関係を関係付け可能な入力手段を配置することにより、作業者は、入力済みの動作指令の前後を交換するような操作を行える。 Further, a field 1324 is arranged in each of the sections 1315 and 1316 corresponding to the robot arms 5 and 6 so that an operation command corresponding to the immediately previous operation can be designated. The field 1324 is used to specify an operation command immediately before the operation command (for example, referred to by the name of the field 1321). By providing this field 1324, the sections 1315 and 1316 corresponding to the robot arms 5 and 6 have a structure like a linked list in which the relationship before and after each operation command is related. As shown in FIG. 14, in the user interface, by arranging an input means such as a field 1324 that can relate the front-back relationship of the operation command, the operator performs an operation such as exchanging before and after the input operation command. Can be done.

実際に、図14のように動作指令が入力された場合、CPU20は、CPU20が管理する主記憶ないし仮想記憶上に、入力された動作指令に対応する動作指令データを動作指令リストとして格納する。従って、図14はユーザーインターフェースの画面表示と考えてもいいが、演算処理部1の主記憶ないし仮想記憶上の動作指令リストの構成に対応するメモリマップと考えてもよい。その場合、動作指令データは例えばリンクトリストのような記憶形式で主記憶ないし仮想記憶上の動作指令リストに格納され、上記のフィールド1324と同様のポインタデータによって、各動作指令の前後関係が関係づけられる。 Actually, when an operation command is input as shown in FIG. 14, the CPU 20 stores the operation command data corresponding to the input operation command as an operation command list in the main memory or virtual memory managed by the CPU 20. Therefore, although FIG. 14 may be considered as a screen display of the user interface, it may be considered as a memory map corresponding to the configuration of the operation command list in the main memory or virtual memory of the arithmetic processing unit 1. In that case, the operation command data is stored in the operation command list on the main memory or the virtual memory in a storage format such as a linked list, and the context of each operation command is related by the pointer data similar to the above field 1324. Be attached.

各セクション1315、1316の下部には、その上部で入力された各アーム(A、B)の軌道定義を確定するため、マウス12などにより操作されるボタン1317、1317が配置される。 Below the sections 1315 and 1316, buttons 1317 and 1317 operated by the mouse 12 or the like are arranged in order to determine the trajectory definition of each arm (A, B) input at the upper portion thereof.

図3のステップS100では、例えば上述のようなユーザーインターフェースを用いて、作業者が各ロボットアーム5、6(A、B)に対して所望の動作指令を入力する。これに応じて、CPU20は動作指令の入力に対応する動作指令リストのデータ構造を主記憶ないし仮想記憶上に生成する。 In step S100 of FIG. 3, the operator inputs a desired operation command to each of the robot arms 5 and 6 (A, B) using the above-described user interface, for example. In response to this, the CPU 20 generates the data structure of the operation command list corresponding to the input of the operation command in the main memory or the virtual memory.

図3のステップS101では、動作の軌道生成する順番を決定する優先度設定を行う。この優先度には、例えばロボットアーム5、6(A、B)のいずれを優先するか、というロボットアーム単位の優先度が考えられる。また、図14のように入力された動作指令Ma1、Ma2、Ma3…、Mb1、Mb2…のどの軌道定義データから順に生成する、という優先度も考えられる。このように、(単位の異なる)優先度設定をいくつか可能としておくことにより、ロボットアーム5、6(A、B)に実行させたい動作の特性に応じて好適な制御結果を得られる可能性が高くなる。このロボットアームないし動作指令を単位とする優先度に係る制御例については、図18によって後述する。 In step S101 of FIG. 3, priority setting is performed to determine the order of motion trajectory generation. The priority may be, for example, the priority of each robot arm, which of the robot arms 5 and 6 (A, B) is to be prioritized. Further, a priority may be considered in which the trajectory definition data of the operation commands Ma1, Ma2, Ma3..., Mb1, Mb2... In this way, by enabling some priority settings (in different units), it is possible to obtain a suitable control result according to the characteristics of the operation desired to be executed by the robot arms 5 and 6 (A, B). Becomes higher. A control example relating to the priority in units of the robot arm or the operation command will be described later with reference to FIG.

図3のステップS102では、ステップS101で決定された優先度に従った順番で動作指令リスト中の1つの軌道定義データである始点、終点データに基づき、ロボットアーム5(A)、ないし6(B)の軌道を1つ生成する。この場合、CPU20は、後述のように、障害物メモリに登録された障害物(の空間)を回避するように始点から終点までの軌道を計算する。この始点から終点までの軌道の計算には、上述のRRT、RPMといった公知の軌道生成アルゴリズムを利用することができる。 In step S102 of FIG. 3, the robot arms 5(A) to 6(B) are operated based on the start point and end point data which is one trajectory definition data in the motion command list in the order according to the priority determined in step S101. ) Generate one orbit. In this case, the CPU 20 calculates the trajectory from the start point to the end point so as to avoid the obstacle (the space thereof) registered in the obstacle memory, as described later. For the calculation of the trajectory from the start point to the end point, a known trajectory generation algorithm such as the above-mentioned RRT and RPM can be used.

ステップS103では、ステップS102で生成した軌道で当該のロボットアーム5(A)、ないし6(B)を動作させた場合に、そのロボットアームの躯体が掃引(通過)する空間を、他のロボットアームが進入できない障害物として障害物メモリに登録する。実際には、図3のステップS102、およびS103は、後述の図5に示すようなループによって逐一処理される。これにより、動作指令リスト中の全部の軌道定義データ(始点、終点データ)に基づき軌道生成が行われる。 In step S103, when the robot arm 5(A) or 6(B) is operated on the trajectory generated in step S102, the space in which the body of the robot arm sweeps (passes) is set to another robot arm. Is registered in the obstacle memory as an obstacle that cannot enter. Actually, steps S102 and S103 of FIG. 3 are processed one by one by a loop as shown in FIG. 5 described later. Thereby, the trajectory is generated based on all the trajectory definition data (start point and end point data) in the operation command list.

図4、図6の例では、各ロボットアーム5(A)、ないし6(B)の図示の平面内に係る動きしか図示していない。しかし、実際にロボットアームを3次元の作業領域で動作させた場合には、そのロボットアームの躯体が姿勢を変化させつつ掃引(通過)する空間は、特定の形状および体積を有する空間となる。このようなロボットアームの躯体が掃引(通過)する空間は、掃引容積(Sweep(Swept) Volume)などと呼ばれることがある。そこで、図6(a)〜(c)の例では、ロボットアームがある軌道で動作した場合にその躯体が掃引(通過)する空間をSVaのような参照符号によって示している。 In the examples of FIGS. 4 and 6, only the movements of the respective robot arms 5(A) and 6(B) within the plane shown are shown. However, when the robot arm is actually operated in a three-dimensional work area, the space in which the body of the robot arm sweeps (passes) while changing its posture is a space having a specific shape and volume. The space in which the body of the robot arm sweeps (passes) is sometimes called a sweep volume (Sweep (Swept) Volume). Therefore, in the examples of FIGS. 6A to 6C, the space in which the skeleton of the robot arm is swept (passes) when the robot arm operates on a certain trajectory is indicated by a reference symbol such as SVa.

図6(a)〜(c)は、ロボットアーム5(A)、6(B)の動作指令Ma、Mbに対応する軌道生成の様子を示している。ここで動作指令Maに対応する軌道の(始点、終点)は(Sa、Ga)、動作指令Mbに対応する軌道の(始点、終点)は(Sb、Gb)で、図6(a)のように配置されている。また、動作指令Ma、Mbに基づき、CPU20の軌道計算によって生成される軌道はTra、Trbによって示してある。 FIGS. 6A to 6C show how the trajectory is generated corresponding to the operation commands Ma and Mb of the robot arms 5(A) and 6(B). Here, the (start point, end point) of the trajectory corresponding to the operation command Ma is (Sa, Ga), and the (start point, end point) of the trajectory corresponding to the operation command Mb is (Sb, Gb), as shown in FIG. It is located in. Trajectories generated by the trajectory calculation of the CPU 20 based on the operation commands Ma and Mb are indicated by Tra and Trb.

図6の例では、設定された優先度によって、ロボットアーム5(A)の軌道が先に生成されるものとする。ここでロボットアーム5(A)の軌道Traは、既に障害物メモリに登録されている障害物7を回避するため図示のような形状で生成される。この生成軌道のロボット動作によってロボットアーム5(A)の躯体が掃引する掃引領域はSVaである。このSVaの空間は、ロボットアーム5(A)の躯体の形状および姿勢、軌道Traなどに応じた形状と(体積)を有する空間である。 In the example of FIG. 6, it is assumed that the trajectory of the robot arm 5(A) is first generated according to the set priority. Here, the trajectory Tra of the robot arm 5(A) is generated in the shape as shown in order to avoid the obstacle 7 already registered in the obstacle memory. The sweep region swept by the body of the robot arm 5(A) by the robot motion of this generation trajectory is SVa. The space of SVa is a space having a shape and (volume) according to the shape and posture of the body of the robot arm 5(A), the trajectory Tra, and the like.

本実施例では、1つのロボットアームの軌道を生成すると、その掃引空間SVを(障害物7と同様の)障害物メモリに登録する。図15(a)〜(c)は、図6(a)〜(c)の軌道生成に応じて、障害物メモリ2201に障害物(SVx)が登録されていく様子を示している。 In this embodiment, when the trajectory of one robot arm is generated, the sweep space SV is registered in the obstacle memory (similar to the obstacle 7). FIGS. 15A to 15C show how obstacles (SVx) are registered in the obstacle memory 2201 in accordance with the trajectory generation in FIGS. 6A to 6C.

図15(a)〜(c)の障害物メモリ2201には、例えばRAM22のようなCPU20の管理する主記憶上に確保され、概ね2つのフィールド2203、2204から成る。なお、図15では障害物メモリ2201の記憶先としてRAM22に相当する「22」の参照符号を記憶領域全体に対して用いている。しかしながら、これはあくまでも便宜上のもので、障害物メモリ2201は、先の動作指令リストの場合と同様にCPU20が管理する主記憶ないし仮想記憶(例えばRAM22あるいはさらにHDD23)上に確保されるものであってよい。この点は後述の図16、図17などにおいても同様である。 The obstacle memory 2201 shown in FIGS. 15A to 15C is secured in the main memory managed by the CPU 20, such as the RAM 22, and is generally composed of two fields 2203 and 2204. In FIG. 15, the reference numeral “22” corresponding to the RAM 22 is used as the storage destination of the obstacle memory 2201 for the entire storage area. However, this is for convenience only, and the obstacle memory 2201 is secured in the main memory or virtual memory (for example, the RAM 22 or further the HDD 23) managed by the CPU 20 as in the case of the operation command list described above. You may This also applies to FIGS. 16 and 17 described later.

障害物メモリ2201のフィールド2203には、障害物の識別データ(名称や識別番号など)を格納する。また、フィールド2204には障害物の立体空間を定義する形状データ(の実体データ、または別途確保された不図示の格納空間へのポインタデータ)を格納する。 Field 2203 of the obstacle memory 2201 stores obstacle identification data (name, identification number, etc.). Further, in the field 2204, shape data (substantial data thereof, or pointer data to a storage space (not shown) secured separately) that defines the three-dimensional space of the obstacle is stored.

フィールド2204の形状データの形式は任意である。たとえば作業空間を単位ヴォクセル(Voxel)の集合として考える。その場合、障害物メモリ2201に格納する障害物の形状データは、例えば単純な例では障害物の占めるヴォクセル(Voxel)の座標データへのポインタリストなどとすることが考えられる。また、参照利用の容易なデータ形式としては、作業空間に対応するヴォクセル空間に3次元ヴォクセルデータテーブル(不図示)を主記憶ないし仮想記憶上に確保してもよい。そして、このヴォクセルデータテーブル中の障害物の占めているヴォクセルに対応するメモリセルに障害物フラグ(あるいはさらに、躯体掃引によってその障害物を生成したロボットの識別データ)を配置する。ヴォクセルデータテーブルを併用することによって、作業空間中の特定の座標が障害物の領域に含まれているか、といった参照を容易に行える障害物メモリを実現することができる。 The format of the shape data of the field 2204 is arbitrary. For example, consider the work space as a set of unit voxels. In that case, the shape data of the obstacle stored in the obstacle memory 2201 may be a pointer list to the coordinate data of the voxel occupied by the obstacle in a simple example. As a data format that can be easily used for reference, a three-dimensional voxel data table (not shown) may be secured in the main memory or virtual memory in the voxel space corresponding to the work space. Then, an obstacle flag (or identification data of the robot that generated the obstacle by the body sweep) is arranged in the memory cell corresponding to the voxel occupied by the obstacle in this voxel data table. By using the voxel data table together, it is possible to realize an obstacle memory that can easily refer to whether a specific coordinate in the work space is included in the obstacle area.

図6、図15の場合、まず、障害物7を回避するように図6(b)のようにロボットアーム5(A)の軌道Traが生成される。この処理に先立ち、障害物7の形状データは、図15(a)のように既にフィールド2203、2204に登録済みである。 In the case of FIGS. 6 and 15, first, the trajectory Tra of the robot arm 5(A) is generated as shown in FIG. 6(b) so as to avoid the obstacle 7. Prior to this processing, the shape data of the obstacle 7 has already been registered in the fields 2203 and 2204 as shown in FIG.

図6(b)のようにロボットアーム5(A)の軌道Traが生成されると、その掃引空間(SVa)のデータが図15(b)に示すように障害物メモリ2201に追加登録される。この場合、フィールド2203の識別データ(図の例ではSVaのような名称)を参照することにより、対応する躯体掃引によってその障害物を生成したロボットの識別を識別できるものとする。 When the trajectory Tra of the robot arm 5(A) is generated as shown in FIG. 6(b), the data of the sweep space (SVa) is additionally registered in the obstacle memory 2201 as shown in FIG. 15(b). .. In this case, by referring to the identification data of the field 2203 (name such as SVa in the example in the figure), the identification of the robot that has generated the obstacle by the corresponding body sweep can be identified.

続いて、ロボットアーム6(B)に関して、(Sb、Gb)の始点、終点データから軌道(図6(c)のTrb)を生成する。この時、障害物メモリ2201の内容を参照すると、既にロボットアーム5(A)の掃引空間(SVa)に対応する障害物が障害物メモリ2201に登録されている(図15(b))。このため、CPU20は、図6(c)に示すように、ロボットアーム5(A)の掃引空間(SVa)を回避するよう、始点、終点データ(Sb、Gb)からロボットアーム6(B)の軌道Trbを生成する。 Then, for the robot arm 6 (B), a trajectory (Trb in FIG. 6C) is generated from the start point and end point data of (Sb, Gb). At this time, referring to the contents of the obstacle memory 2201, the obstacle corresponding to the sweep space (SVa) of the robot arm 5(A) is already registered in the obstacle memory 2201 (FIG. 15(b)). Therefore, as shown in FIG. 6C, the CPU 20 determines the robot arm 6 (B) from the start point and end point data (Sb, Gb) so as to avoid the sweep space (SVa) of the robot arm 5 (A). Generate a trajectory Trb.

このロボットアーム6(B)の軌道Trbの生成によって、ロボットアーム6(B)の躯体が掃引する空間(SVb)は、上記同様に障害物メモリ2201に追加登録される。図15(c)は、軌道Trbに対応するロボットアーム6(B)の掃引空間(SVb)が追加登録された直後の障害物メモリ2201の状態を示している。 The space (SVb) swept by the body of the robot arm 6(B) is additionally registered in the obstacle memory 2201 by the generation of the trajectory Trb of the robot arm 6(B). FIG. 15C shows a state of the obstacle memory 2201 immediately after the sweep space (SVb) of the robot arm 6(B) corresponding to the trajectory Trb is additionally registered.

以上のように、図3〜図6、図14、図15によって概略を説明した軌道生成および障害物メモリ管理によって、ロボットアーム5、6に関して、相互のアーム同士が干渉せず、また、作業環境中の障害物7とも干渉しない軌道を生成することができる。 As described above, by the trajectory generation and the obstacle memory management which are schematically described with reference to FIGS. 3 to 6, 14 and 15, the robot arms 5 and 6 do not interfere with each other, and the working environment is reduced. It is possible to generate a trajectory that does not interfere with the obstacle 7 inside.

本実施例においては、障害物の回避戦略としては、時間軸や制御タイミングを利用しない。本実施例では、特定の軌道でロボットアーム躯体が掃引する空間を、そのロボットアームが占める可能性がある障害物空間として障害物メモリ2201に登録する。このため、実機環境でロボット動作の遅延などのタイミングのずれが生じている場合でも、ロボットアーム同士あるいはロボットアームと他の障害物が確実に干渉することのない軌道を生成することができる。即ち、本実施例によれば、よりフェイルセーフなロボット軌道の生成が可能である。 In this embodiment, the time axis and control timing are not used as the obstacle avoidance strategy. In the present embodiment, the space swept by the robot arm body in a specific trajectory is registered in the obstacle memory 2201 as an obstacle space that the robot arm may occupy. Therefore, it is possible to generate a trajectory in which the robot arms or the robot arms and other obstacles do not interfere with each other with certainty even when there is a timing shift such as a delay in robot operation in the actual machine environment. That is, according to this embodiment, it is possible to generate a more fail-safe robot trajectory.

ここで、図3のステップS102、S103で示したロボット軌道生成、および障害物の追加登録処理のより詳細な制御例を図5に示す。 Here, a more detailed control example of the robot trajectory generation and the obstacle additional registration processing shown in steps S102 and S103 of FIG. 3 is shown in FIG.

図5は、ロボットの通過領域が互いに交差しない軌道を生成する本実施例の制御手順の一例を示す。図3で説明した通り、制御手順全体の流れは、まず、動作指令の入力および動作指令リストの生成(S101)、優先度設定(S102)から始まる。その後、軌道生成(S103)、および障害物追加(S104)が行われる。図5はこの制御手順のより詳細な構成の一例を示している。 FIG. 5 shows an example of a control procedure of the present embodiment for generating trajectories in which the passage areas of the robot do not intersect each other. As described with reference to FIG. 3, the flow of the entire control procedure starts with the input of the operation command, the generation of the operation command list (S101), and the priority setting (S102). After that, trajectory generation (S103) and obstacle addition (S104) are performed. FIG. 5 shows an example of a more detailed configuration of this control procedure.

図5は次のような制御行程を含む。即ち、複数のロボットアームの軌道の始点および終点を含む動作指令リストを生成する(軌道定義データ生成行程:S200)。動作指令リストに基づき各々の軌道生成を行う順序を決定する(生成順序決定行程:S210)。動作指令リスト中の特定のロボットアームに関し、始点および終点に基づき、障害物メモリに他のロボットアームの軌道生成に関して登録された障害物空間を回避するよう、軌道生成を行う(軌道生成行程:S230)。生成軌道で当該ロボットアームを動作させた際、当該アームの躯体によって掃引される掃引空間を、他のロボットアームが回避すべき障害物空間として障害物メモリに追加する(障害物登録行程:S240、S250)。 FIG. 5 includes the following control process. That is, an operation command list including the start point and the end point of the trajectory of the plurality of robot arms is generated (trajectory definition data generation step: S200). The order in which each trajectory is generated is determined based on the operation command list (generation order determination step: S210). For a specific robot arm in the motion command list, trajectory generation is performed based on the start point and the end point so as to avoid the obstacle space registered in the obstacle memory for trajectory generation of another robot arm (trajectory generation step: S230). ). When the robot arm is operated on the generation trajectory, a sweep space swept by the body of the arm is added to the obstacle memory as an obstacle space to be avoided by another robot arm (obstacle registration step: S240, S250).

図5において、図3の動作指令の入力および動作指令リストの生成(S101)はステップS200に、また、優先度設定(S102)はステップS210に相当する。ステップS220は、ステップS230〜S250のループの初期化処理に相当する。また、図3の軌道生成(S103)はステップS230に、障害物追加(S104)はステップS250に相当する。ステップS260は、ステップS230〜S250の各処理を動作指令リストに含まれる軌道定義データ(始点、終点)につき実行させるための制御ステップである。 In FIG. 5, the operation command input and the operation command list generation (S101) in FIG. 3 correspond to step S200, and the priority setting (S102) corresponds to step S210. Step S220 corresponds to the initialization process of the loop of steps S230 to S250. Further, the trajectory generation (S103) and the obstacle addition (S104) in FIG. 3 correspond to step S230 and step S250, respectively. Step S260 is a control step for executing each process of steps S230 to S250 for the trajectory definition data (start point, end point) included in the operation command list.

図5のステップS200では、図14で説明したようなユーザーインターフェースを介して全ロボットアームに対して軌道を生成したい動作の指令を作業者(教示者)が入力する。ここで、例えばロボットアーム5について1つの動作指令Ma1が始点と終点(Sa、Ga)の軌道定義データによって与えられたものとする。また、ロボットアーム6については1つの動作指令Mb1が始点と終点(Sb、Gb)の軌道定義データ動作指令Op1として与えられたものとする。 In step S200 of FIG. 5, the operator (teacher) inputs an operation command for generating a trajectory for all the robot arms via the user interface as described in FIG. Here, for example, it is assumed that one operation command Ma1 for the robot arm 5 is given by the trajectory definition data of the start point and the end point (Sa, Ga). For the robot arm 6, one motion command Mb1 is given as the trajectory definition data motion command Op1 of the start point and the end point (Sb, Gb).

この動作指令とは、各ロボットアームに対して指定される複数の動作の集合を指し、その動作指令データは上述のような動作指令リストとして、CPU20が管理する主記憶ないし仮想記憶上に格納される。 This motion command refers to a set of a plurality of motions designated for each robot arm, and the motion command data is stored in the main memory or virtual memory managed by the CPU 20 as a motion command list as described above. It

また、動作(M)は、ロボットアーム(5、6)のエンドエフェクタ(54、64)の基部などに相当する基準部位の始点と終点の座標の組合せを含む軌道定義データによって定義される。 The motion (M) is defined by trajectory definition data including a combination of coordinates of a start point and an end point of a reference part corresponding to the base of the end effector (54, 64) of the robot arm (5, 6).

多関節ロボットのように、エンドエフェクタ(54、64)の位置について、ロボットアーム(5、6)の姿勢が複数、存在する場合は、各関節の角度の組み合わせを始点や終点として指定する。 When there are a plurality of postures of the robot arm (5, 6) with respect to the position of the end effector (54, 64) like a multi-joint robot, a combination of angles of each joint is designated as a start point or an end point.

上記のように与えられた動作指令Op1は、
Op1 = { Ma1 、 Mb1 }
から成り、各動作(Ma1、Mb1)は
Ma1 = ( Sa 、 Ga ) 、 Mb1 = ( Sb 、 Gb )
から成る。
The operation command Op1 given as described above is
Op1={Ma1, Mb1}
And each operation (Ma1, Mb1) is Ma1=(Sa, Ga), Mb1=(Sb, Gb)
Consists of.

次に、図5のステップS210では、軌道生成順序の決定、即ち、動作指令リストの中から、どの順番で動作の軌道生成を行っていくかを決定する。順番の決定方法はロボット全体での動作時間に影響するため様々な方法が考えられる。 Next, in step S210 of FIG. 5, the trajectory generation order is determined, that is, the order in which the trajectory of the motion is to be generated is determined from the motion command list. Various methods can be considered because the method of determining the order affects the operation time of the entire robot.

優先度の制御例については、後で詳細に説明するが、ここではロボットアーム5(A)の方がロボットアーム6(B)よりも動作の優先度が作業者によって高く設定されたものとする。実際、各ロボットアームに実行させる動作の重要度に差があるようなケースは稀ではないと考えられ、このようなロボットアーム単位の優先度設定をユーザ(作業者)が行えるようにしておくことで、より現実的な軌道生成が可能になる。 An example of the priority control will be described in detail later, but here it is assumed that the operator sets the operation priority of the robot arm 5(A) higher than that of the robot arm 6(B). .. Actually, it is not rare that there is a difference in the importance of the operations performed by each robot arm, and it is necessary to allow the user (worker) to set the priority for each robot arm. Then, more realistic trajectory generation becomes possible.

もし、ロボットアーム5(A)の方がロボットアーム6(B)よりも動作の優先度が高く設定されている場合には、ロボットアーム5の動作指令Ma1を先に軌道生成し、ロボットアーム6の動作指令Mb1を後に軌道生成するよう制御する。また、本実施例の軌道生成および障害物登録では時間軸に係る制御を行わないため、動作指令リスト中の動作(M)は、例えば入力順などに関係なく、シャッフルして特定の優先順位で軌道生成(および障害物登録)するようにしてもよい。ステップS210の処理は、生成順位を格納したテーブルメモリなどを確保し、動作データ指令リスト中の動作(M)を指すポインタデータなどを上記の優先順位で格納するような処理によって実現される。 If the robot arm 5(A) is set to have a higher motion priority than the robot arm 6(B), the motion command Ma1 of the robot arm 5 is first generated to generate the trajectory, and the robot arm 6 is moved. The operation command Mb1 of 1 is controlled to generate a trajectory later. In addition, since the control relating to the time axis is not performed in the trajectory generation and the obstacle registration of the present embodiment, the movement (M) in the movement command list is shuffled in a specific priority order regardless of the input order. Orbit generation (and obstacle registration) may be performed. The process of step S210 is realized by a process of securing a table memory or the like storing the generation order and storing the pointer data or the like pointing to the operation (M) in the operation data command list in the above priority order.

図5のループ制御では、軌道生成(障害物登録)順位はポインタ(あるいはカウンタ)iによって制御される。ここでi=0は最優先の処理の優先順位に相当し、iは0、1、2…とインクリメントされて参照されるが、以後、順に優先順位が下っていくものとする。そこで、図5のステップS220では、順位はポインタ(あるいはカウンタ)iはi=0に初期化する。 In the loop control of FIG. 5, the trajectory generation (obstacle registration) order is controlled by a pointer (or counter) i. Here, i=0 corresponds to the priority of the highest-priority processing, and i is incremented and referred to as 0, 1, 2,... However, it is assumed that the priority sequentially decreases thereafter. Therefore, in step S220 of FIG. 5, the pointer (or counter) i of the rank is initialized to i=0.

以後、動作指令Miの軌道生成(S230:ロボット軌道生成処理)、動作指令Miに対応するロボットアームの通過(掃引)領域の生成(S240)、通過(掃引)領域の追加登録(S250:障害物登録行程)を繰り返し実行する。この制御ループは、ステップS260で全部の動作指令を処理することが確認されるまで続けられる。動作指令を全て処理していない間は、制御はポインタ(あるいはカウンタ)iをインクリメント(i=i+1)しつつ、ステップS260からS230にループする。 After that, the trajectory generation of the motion command Mi (S230: robot trajectory generation process), the generation (S240) of the passage (sweep) region of the robot arm corresponding to the motion command Mi, and the additional registration of the passage (sweep) region (S250: obstacle) Repeat the registration process). This control loop continues until it is determined in step S260 that all motion commands have been processed. While all the operation commands are not processed, the control loops from step S260 to step S230 while incrementing the pointer (or counter) i (i=i+1).

ステップS230では、ロボットの1動作分の軌道生成を行う。このステップS230は、例えば経路計画行程、経路短縮行程、軌道計算行程のような3ステップで実行できる。 In step S230, a trajectory for one motion of the robot is generated. This step S230 can be executed in three steps such as a route planning process, a route shortening process, and a trajectory calculation process.

このうち、経路計画行程では、始点から終点まで向かう間の障害物を回避する経路を求める。経路を求めるには、上記のRRT、PRMのような公知の各種の手法によりCPU20がランダム探索により自動で計算する方式を用いることができる。 Of these, in the route planning process, a route that avoids obstacles from the start point to the end point is obtained. In order to obtain the route, it is possible to use a method in which the CPU 20 automatically calculates by random search by various known methods such as the above-mentioned RRT and PRM.

次に、経路短縮行程で、経路計画行程により生成された経路の修正を行うことができる。経路計画行程でランダム探索を用いた方法を選択した場合、生成される経路が回り道をしていたり、角度変化が急になっていたりするため、経路の修正を行う必要がある。この経路短縮行程で、経路の短縮も、経路中の点同士で干渉なく結べる点を探す方法や、スプライン曲線で近似することにより経路を滑らかにする方法など多くの方法が考えられるが、ここではどのような方法を用いてもよい。 Next, in the route shortening process, the route generated by the route planning process can be corrected. When the method using random search is selected in the route planning process, the generated route may be a detour or the angle change may be abrupt, so it is necessary to correct the route. In this route shortening process, there are many ways to shorten the route, such as searching for points that can connect without interference between points in the route and smoothing the route by approximating with a spline curve. Any method may be used.

また、経路計画行程と、経路短縮行程では、3Dの仮想空間上で、ロボットアーム(5、6)同士や障害物(7)の干渉がないか確認する処理を行う。ここでは、ロボットアーム(5、6)の形状データと、障害物メモリ2201に保持された障害物データ(SV)は、例えば上述のヴォクセル(やポリゴン)の集合として取り扱うことができる。そして、ヴォクセル(ポリゴン)の集合同士が幾何学的に接触しているかを判定することによりロボットアーム(5、6)同士や障害物(7)の干渉状態がないかを判断する。 Further, in the route planning process and the route shortening process, a process is performed in the 3D virtual space to confirm whether or not there is interference between the robot arms (5, 6) and the obstacle (7). Here, the shape data of the robot arm (5, 6) and the obstacle data (SV) held in the obstacle memory 2201 can be handled as a set of the above-mentioned voxels (or polygons), for example. Then, it is determined whether or not there is an interference state between the robot arms (5, 6) and the obstacle (7) by determining whether or not the set of voxels (polygons) geometrically contact each other.

なお、障害物メモリ2201には、軌道生成に伴なうアームの通過(掃引)領域が障害物データ(SV)として格納されるが、一般には(当然ながら)、自身のアームの通過(掃引)によって生成された障害物データ(SV)は回避しなくてもよい。例えば、上記構成におけるロボットアーム5(A)の動作(Ma)の軌道(経路)生成においては、ロボットアーム5(B)の動作(Mb)によって通過(掃引)によって生成された障害物(SVb)を回避する。しかしながら、ロボットアーム5(A)の動作(Ma)の軌道(経路)生成においては、ロボットアーム5(A)の動作(Ma)によって通過(掃引)によって生成された障害物(SVa)は回避する必要はない。 The obstacle memory 2201 stores an arm passage (sweep) area associated with trajectory generation as obstacle data (SV), but generally (obviously) the arm passage (sweep). The obstacle data (SV) generated by does not have to be avoided. For example, in the trajectory (path) generation of the motion (Ma) of the robot arm 5 (A) in the above configuration, the obstacle (SVb) generated by the passage (sweep) by the motion (Mb) of the robot arm 5 (B). To avoid. However, in the trajectory (path) generation of the motion (Ma) of the robot arm 5(A), the obstacle (SVa) generated by the passage (sweep) by the motion (Ma) of the robot arm 5(A) is avoided. No need.

ステップS240の軌道計算行程では、上記の経路計画/経路短縮行程によって生成された経路(軌道)を、最短の時間で動作できるように、ロボットアーム(5、6)の各関節の回転速度や加速度などを計算する。ただし、この軌道計算行程では、各関節の回転速度や加速度は記憶部3に保持された制約条件を超えない範囲で計算する。しかしながら、本実施例の軌道計算では、最もフェイルセーフな障害物回避条件を用いるため、ロボットアーム間の同期を考慮する必要がなく、単体のロボットで最短の時間で動作できるような軌道を計算すれば良い。 In the trajectory calculation process of step S240, the rotational speed and acceleration of each joint of the robot arm (5, 6) are set so that the route (trajectory) generated by the route planning/path shortening process can be operated in the shortest time. To calculate. However, in this trajectory calculation process, the rotational speed and acceleration of each joint are calculated within the range that does not exceed the constraint conditions held in the storage unit 3. However, in the trajectory calculation of the present embodiment, since the fail-safe obstacle avoidance condition is used, it is not necessary to consider the synchronization between the robot arms, and it is possible to calculate a trajectory that allows a single robot to operate in the shortest time. Good.

なお、この軌道計算行程によって生成された軌道データ群(ロボットアームの制御データ)は、主記憶ないし仮想記憶上、あるいはHDD23などに確保された不図示の軌道データの記憶領域に格納する。 The trajectory data group (control data of the robot arm) generated by the trajectory calculation process is stored in the main memory or virtual memory, or in a storage area of the trajectory data (not shown) secured in the HDD 23 or the like.

ステップS240では、ステップで求めた軌道で動作させた場合にロボットアームの躯体(リンクや関節軸)が通過(掃引)する領域(空間)を計算する。各ロボットアーム(5、6)の形状や寸法などのジオメトリのデータをHDD23やROM21などに予め用意しておくことにより、このジオメトリに基づき、CPU20は上記の通過(掃引)領域(空間)を計算することができる。実際の演算では、公知の各種の移動物体の通過した領域を求めるSwept Volume生成手法や、通過領域を立方体や球体などの簡易な形状へ近似する手法などを用いることができる。また、形状データをポリゴンの集合として表現し、干渉の確認処理に利用するようにしてもよい。なお、ロボットアーム(5、6)の形状や寸法などのジオメトリのデータは、ディスプレイ13上の仮想表示を制御するためにも用いることができる。 In step S240, a region (space) through which the skeleton (link or joint axis) of the robot arm passes (sweep) when it is operated on the trajectory obtained in step S240 is calculated. Geometry data such as the shape and size of each robot arm (5, 6) is prepared in advance in the HDD 23, the ROM 21, etc., and the CPU 20 calculates the above-mentioned passage (sweep) area (space) based on this geometry. can do. In the actual calculation, a known Swept Volume generation method for obtaining a region through which various moving objects have passed, a technique for approximating the passing region into a simple shape such as a cube or a sphere, and the like can be used. Further, the shape data may be expressed as a set of polygons and used for the interference confirmation processing. The geometry data such as the shape and size of the robot arm (5, 6) can also be used for controlling the virtual display on the display 13.

図6(b)の例では、ロボットアーム5に対して、軌道Traが生成された場合、上記のCPU20による通過(掃引)領域の計算によって、始点Saから終点Gaまでその躯体が通過することによって、図中の通過(掃引)領域(SVa)が生成される。 In the example of FIG. 6B, when the trajectory Tra is generated with respect to the robot arm 5, the CPU 20 calculates the passing (sweep) area to cause the body to pass from the start point Sa to the end point Ga. , A passage (sweep) area (SVa) in the figure is generated.

そして、ステップS250で、ステップS230の軌道生成に基づき生成された通過(掃引)領域(SV)を障害物メモリ2201に登録する。障害物メモリ2201に登録された障害物は領域を仮想空間上の新たな障害物として追加され、続くロボットアーム(6)の軌道生成では、障害物メモリ2201中の全部の障害物データ回避するように軌道計算が行われる。 Then, in step S250, the passing (sweep) area (SV) generated based on the trajectory generation in step S230 is registered in the obstacle memory 2201. The obstacle registered in the obstacle memory 2201 is added to the area as a new obstacle in the virtual space, and in the subsequent trajectory generation of the robot arm (6), all obstacle data in the obstacle memory 2201 is avoided. The orbit calculation is performed.

図6の例では、ロボットアーム5の動作指令Ma1の軌道生成と、通過領域の障害物追加が完了した後に、ロボットアーム6の動作指令Mb1の軌道生成(と通過領域の障害物追加)を行う。処理の流れは上述と同様であるが、ロボットアーム6の動作指令Mb1の軌道生成時には、新たな障害物として通過領域SVaが追加されている(図15(b))。このため、動作指令Mb1の軌道生成においては、図6(c)に示すように予め配置されている障害物7だけでなく、動作指令Ma1の軌道Traの通過領域SVaも回避するように実行される。 In the example of FIG. 6, after the trajectory generation of the operation command Ma1 of the robot arm 5 and the addition of the obstacle in the passage area are completed, the trajectory generation of the operation instruction Mb1 of the robot arm 6 (and the addition of the obstacle in the passage area) is performed. .. The flow of processing is the same as that described above, but when the trajectory of the operation command Mb1 of the robot arm 6 is generated, the passage area SVa is added as a new obstacle (FIG. 15(b)). Therefore, the trajectory generation of the motion command Mb1 is performed so as to avoid not only the obstacle 7 which is arranged in advance as shown in FIG. 6C, but also the passing area SVa of the trajectory Tra of the motion command Ma1. It

こうしてロボットアーム6に関しては、ロボットアーム5の軌道Traと交差することのない軌道Trbを得ることが出来る。以上の説明では、ロボットアーム5−>6と軌道生成を行う最も単純な例を示したが、ロボットアーム6の軌道Trbに対応する通過(掃引)領域も新たな障害物として障害物メモリ2201に追加する。これにより、後続の動作指令に基づいて(干渉状態を生じない)軌道生成を続行することができる。 In this way, with respect to the robot arm 6, a trajectory Trb that does not intersect the trajectory Tra of the robot arm 5 can be obtained. In the above description, the simplest example in which the trajectory is generated with the robot arm 5->6 is shown, but the passage (sweep) area corresponding to the trajectory Trb of the robot arm 6 is also stored in the obstacle memory 2201 as a new obstacle. to add. Thereby, the trajectory generation (without causing the interference state) can be continued based on the subsequent operation command.

なお、以上では、最も単純な2つのロボットアームの例で説明したが、3つ以上のロボットアームの軌道生成についても、上述同様の手順により軌道生成およびそれに伴なう障害物登録を行うことができる。 In the above description, the simplest example of two robot arms has been described. However, for trajectory generation of three or more robot arms, trajectory generation and obstacle registration accompanying it can be performed by the same procedure as described above. it can.

以上のように、本実施例によれば、作業環境中の障害物(7)はもちろんロボットアーム(5、6)同士で互いに交差しない軌道を生成できる。このため、干渉する恐れのない軌道で複数のロボットアームを動作させることができる。本実施例の障害物の生成および障害物メモリへの登録を基本とする回避制御は、時間軸や制御タイミングに依存しない。即ち、ロボットアームの掃引(通過)空間(領域)を、時間軸上でそのアームが取り得る位置姿勢の最大範囲として障害物メモリに登録する。このため、本実施例によれば、実環境でアーム制御の遅延などのタイミングのずれが生じても確実にロボットアーム(5、6)同士の干渉を回避可能な軌道を生成することができる。また、本実施例で示した基本的な軌道生成(+障害物登録)制御は、従来方式などで行なわれている時間軸方向の排他空間制御を利用しないため、比較的高速に実行でき、過大な計算資源を必要とせず容易に実行することができる。 As described above, according to the present embodiment, not only the obstacle (7) in the work environment but also the robot arms (5, 6) can generate trajectories that do not intersect each other. Therefore, it is possible to operate the plurality of robot arms on the trajectory without fear of interference. The avoidance control based on the generation of the obstacle and the registration in the obstacle memory according to the present embodiment does not depend on the time axis or the control timing. That is, the sweep (pass) space (region) of the robot arm is registered in the obstacle memory as the maximum range of the position and orientation that the arm can take on the time axis. For this reason, according to the present embodiment, it is possible to reliably generate a trajectory capable of avoiding interference between the robot arms (5, 6) even if a timing shift such as a delay in arm control occurs in the actual environment. Further, since the basic trajectory generation (+ obstacle registration) control shown in this embodiment does not use the exclusive space control in the time axis direction which is performed by the conventional method or the like, it can be executed at a relatively high speed and is excessive. It can be easily executed without the need for various computational resources.

なお、本実施例(以下の実施例も同様)では、説明を容易にするため、主記憶ないし仮想記憶上に1つの障害物メモリが存在するような構成を示した。その場合、障害物データにはロボットアーム(5、6…)の識別データを含み、あるアームの軌道生成では、そのアーム自身の掃引領域に相当する障害物以外の他のアームの掃引領域に相当する障害物を回避するものとした。しかしながら、主記憶ないし仮想記憶上に1つの障害物メモリの実装には種々の形態が考えられ、当業者は障害物メモリの実装、およびそれを用いた制御の一部に関して種々の設計変更を行うことができる。 In addition, in this embodiment (the same applies to the following embodiments), a configuration in which one obstacle memory exists in the main memory or the virtual memory is shown for ease of explanation. In that case, the obstacle data includes the identification data of the robot arm (5, 6,...) And in the trajectory generation of a certain arm, it corresponds to the sweep area of the arm other than the obstacle corresponding to the sweep area of the arm itself. It is supposed to avoid obstacles that do. However, various forms of implementation of one obstacle memory on the main memory or virtual memory are conceivable, and those skilled in the art make various design changes regarding implementation of the obstacle memory and a part of control using the obstacle memory. be able to.

例えば、ロボットアーム(5、6…)ごとに障害物メモリを配置して、軌道生成の際、アームの掃引領域に相当する障害物を、当該のアーム以外の障害物メモリに追加していくような制御も考えられる。このような障害物メモリ実装によっても、当該ロボットアームに関して登録された障害物空間を除く障害物空間を回避するよう、当該ロボットアームを動作させる軌道を生成する軌道生成行程を実現することができる。 For example, an obstacle memory is arranged for each robot arm (5, 6...), and an obstacle corresponding to the sweep area of the arm is added to the obstacle memory other than the relevant arm when the trajectory is generated. Various controls are also possible. Even by implementing such an obstacle memory, it is possible to realize a trajectory generation process for generating a trajectory for operating the robot arm so as to avoid an obstacle space other than the obstacle space registered for the robot arm.

<実施例2>
上記実施例1では、ロボットアーム5、6の2つの動作指令から軌道生成を行う最も単純な例で、ロボットアーム(5、6)同士の干渉のない軌道を生成する手法につき説明した。実施例1の図5に示したようなステップ構成のみによって、より多数の軌道定義データについて軌道生成および障害物登録を繰り返す場合、登録された多数の障害物によって新たな軌道を生成できなくなる可能性がある。
<Example 2>
In the above-described first embodiment, the method of generating the trajectory without interference between the robot arms (5, 6) is described as the simplest example of generating the trajectory from the two motion commands of the robot arms 5 and 6. When the trajectory generation and the obstacle registration are repeated for a larger number of trajectory definition data only by the step configuration as shown in FIG. 5 of the first embodiment, there is a possibility that a new trajectory cannot be generated due to the large number of registered obstacles. There is.

本実施形態の基本的な制御では、生成軌道によってアーム躯体が掃引(通過)する領域全体を障害物として登録するために、軌道生成すべき動作指令が多いほど早期に作業空間の多くの部分が障害物で埋め尽される可能性がある。 In the basic control of the present embodiment, in order to register the entire region in which the arm body sweeps (passes) by the generated trajectory as an obstacle, the more operation commands to generate the trajectory, the earlier many parts of the work space are registered. It may be filled with obstacles.

通常、生産ラインのような現実の環境で動作するロボットにはより多数の作業が割り当てられる。例えば、単純な搬送動作を行う場合にしても、搬送物を取りに行く動作と置きに行く動作の2つに分かれる。つまり、作業者が入力する指令には、各ロボットに複数の動作が含まれることが想定される。そして、実施例1に示した基本的な制御では、複数台のロボットの通過領域が互いに交差しないような軌道を生成するために、ロボットが行う全動作の通過領域が、他のロボットの全動作の通過領域と交差しないように制御される。しかし、そのような軌道生成は、を作ることは、ロボットに割り当てられた動作が多いほど、また作業空間が狭いほど、困難な問題となる。 Robots that operate in real-world environments such as production lines are typically assigned more work. For example, even when a simple transport operation is performed, it is divided into two operations, that is, an operation of picking up a transported object and an operation of leaving it. That is, it is assumed that the command input by the worker includes a plurality of motions for each robot. Then, in the basic control shown in the first embodiment, in order to generate trajectories in which the passage areas of the plurality of robots do not intersect with each other, the passage area of all the movements performed by the robot is the entire movements of other robots. It is controlled so that it does not cross the passage area of. However, creating such trajectories becomes a more difficult problem to make, as the number of movements assigned to the robot is large and the work space is small.

例えば図8(c)は、ロボットアーム6の軌道Trb1(始点Sb1〜終点Gb1)が生成され、対応する掃引(通過)領域に対応する障害物(SVb1)が障害物メモリ2201に登録された状態を示している。一方、それ以降、ロボットアーム5に対して生成すべき(始点、終点)が(Sa2、Ga2)の動作指令が動作指令リスト中に存在しているとする。この動作指令の軌道定義、特に終点(Ga2)は、図8(d)に示すように既に障害物(SVb1)の空間内に存在する。このままでは、動作指令中の(始点、終点)が(Sa2、Ga2)である軌道定義に対応するロボット軌道を生成することはできない。 For example, in FIG. 8C, the trajectory Trb1 (start point Sb1 to end point Gb1) of the robot arm 6 is generated, and the obstacle (SVb1) corresponding to the corresponding sweep (passage) area is registered in the obstacle memory 2201. Is shown. On the other hand, thereafter, it is assumed that an operation command whose start point and end point (Sa2, Ga2) to be generated for the robot arm 5 exists in the operation command list. The trajectory definition of this operation command, particularly the end point (Ga2), already exists in the space of the obstacle (SVb1) as shown in FIG. 8(d). As it is, it is impossible to generate the robot trajectory corresponding to the trajectory definition in which the (start point, end point) in the operation command is (Sa2, Ga2).

以下、本実施例では、より多数の動作指令に応じて軌道生成を行う際、図8(d)のような事象が生じた場合に、軌道生成および障害物登録を続行可能な制御手法を示す。また、その場合、生成した軌道によって、実環境のロボットアームを相互に干渉することなく動作させることができるような制御手法を示す。 Hereinafter, in the present embodiment, a control method capable of continuing trajectory generation and obstacle registration when an event as shown in FIG. 8D occurs when trajectory generation is performed in response to a larger number of operation commands. .. In this case, we also show a control method that allows the robot arms in the real environment to operate without interfering with each other by the generated trajectory.

本実施例2では、与えられた指令に対してロボット同士で互いに交差しない軌道を生成できない場合は、指令を2つに分割し、分割後の指令内ではロボット同士で互いに交差しないような軌道を生成する。 In the second embodiment, when the robots cannot generate trajectories that do not intersect with each other in response to a given command, the command is divided into two, and a trajectory in which the robots do not intersect with each other in the command after the division is set. To generate.

即ち、動作指令リスト中の複数の軌道定義データに基づき軌道生成を行うに際し、障害物メモリに登録された障害物空間を回避する軌道が生成不可能となる場合がある。その場合、動作指令リスト中の軌道定義データを、その時点で生成済みの軌道に対応する軌道定義データから成る第1の動作指令と、未生成の軌道に対応する軌道定義データから成る第2の動作指令と、に分割する。そして、障害物メモリに登録されている障害物空間のデータをクリアしてから第2の動作指令に含まれる軌道定義データについて軌道生成行程および障害物登録行程を繰り返し実行する。また、生成した全部の軌道データに基づき、各々のロボットアームを動作させる場合に第1の動作指令に対応するロボットアームの動作と、第2の動作指令に対応するロボットアームの動作と、を同期的に実行させるための同期指令を生成する。 That is, when a trajectory is generated based on a plurality of trajectory definition data in the motion command list, a trajectory that avoids the obstacle space registered in the obstacle memory may not be able to be generated. In that case, the trajectory definition data in the motion command list includes the first motion command including the trajectory definition data corresponding to the trajectory generated at that time and the second trajectory definition data including the trajectory definition data corresponding to the ungenerated trajectory. It is divided into motion command and. Then, after clearing the data of the obstacle space registered in the obstacle memory, the trajectory generation process and the obstacle registration process are repeatedly executed for the trajectory definition data included in the second operation command. Further, based on all the generated trajectory data, when each robot arm is operated, the operation of the robot arm corresponding to the first operation command and the operation of the robot arm corresponding to the second operation command are synchronized. To generate a synchronous command to be executed dynamically.

以下、図7〜図10、図16(a)〜(f)を参照し、本実施例の制御につき説明する。以下では、上述の実施例1の図1、図2、図4などに示した軌道生成システムの全体構成は本実施例でも同様であるものとする。ロボットアーム5、6と障害物7の配置については、図4と同様である。 Hereinafter, the control of this embodiment will be described with reference to FIGS. 7 to 10 and FIGS. 16(a) to 16(f). Hereinafter, it is assumed that the overall configuration of the trajectory generation system shown in FIG. 1, FIG. 2, FIG. The arrangement of the robot arms 5 and 6 and the obstacle 7 is the same as in FIG.

図7は、実施例1の図5と同様な詳細な形式で本実施例の軌道生成および障害物登録手順の流れを示している。図8(a)〜(d)、図9(a)〜(d)は、軌道生成の様子を図4、図6と同様な詳細な形式で示している。図10は、本実施例において軌道生成された各動作指令に対応する動作の同期的な制御の様子を示している。図16(a)〜(f)は、図15と同等の形式で本実施例の障害物メモリ2201のデータ内容の遷移を示している。以下では、実施例1で説明済みの部材や、処理ステップについては特に必要な場合を除き、重複した説明は省略するものとする。 FIG. 7 shows the flow of the trajectory generation and obstacle registration procedure of this embodiment in the same detailed format as FIG. 5 of the first embodiment. FIGS. 8A to 8D and FIGS. 9A to 9D show the state of trajectory generation in the same detailed format as FIGS. 4 and 6. FIG. 10 shows a state of synchronous control of the motion corresponding to each motion command generated by the trajectory in this embodiment. 16A to 16F show the transition of the data contents of the obstacle memory 2201 of this embodiment in the same format as that of FIG. In the following, the members already described in the first embodiment and the processing steps will not be repeated unless otherwise necessary.

本実施例において、軌道生成および障害物登録手順の全体の流れは実施例1の図3と同様で、制御手順全体の流れは、動作指令の入力および動作指令リストの生成(S101)、優先度設定(S102)から始まる。その後、軌道生成(S103)、および障害物追加(S104)を行う。 In the present embodiment, the overall flow of the trajectory generation and obstacle registration procedure is the same as that of FIG. 3 of the first embodiment, and the overall flow of the control procedure is the input of operation command and generation of operation command list (S101), priority. It starts from setting (S102). After that, trajectory generation (S103) and obstacle addition (S104) are performed.

図7のステップS300(動作指令の入力および動作指令リストの生成)、S310(優先度設定)、S320(ポインタ/カウンタの初期化)、S330(動作指令Miの軌道生成)は、図5のS200、S210、S220、S230と同じ処理である。図7のS350(動作指令Miに対応するロボットアームの通過(掃引)領域の生成)、およびS360(通過(掃引)領域の追加登録)は、図5のステップS240、S250と同じ処理である。また、図7のS370(ループ終了判定)は、図5のステップS260と同じ処理である。 Steps S300 (input of operation command and generation of operation command list), S310 (priority setting), S320 (pointer/counter initialization), and S330 (orbit generation of operation command Mi) of FIG. , S210, S220, and S230. S350 (generation of the robot arm passage (sweep) region corresponding to the operation command Mi) and S360 (additional registration of the passage (sweep) region) of FIG. 7 are the same processes as steps S240 and S250 of FIG. Further, S370 (loop end determination) in FIG. 7 is the same process as step S260 in FIG.

図7で図5と大きく異なるのは、S330(動作指令Miの軌道生成)と、S350(動作指令Miに対応するロボットアームの通過(掃引)領域の生成)の間に、ステップS340〜S380を追加している点である。 7 is substantially different from FIG. 5 in that steps S340 to S380 are performed between S330 (trajectory generation of the operation command Mi) and S350 (passage (sweep) area generation of the robot arm corresponding to the operation command Mi). This is an added point.

ステップS340では、ステップS330において動作指令Miに対応する軌道が生成できたか否かを判定する。もし、障害物メモリ2201に登録済みの障害物の掃引空間によって、動作指令に対応する軌道が生成できない場合には、ステップS380に移行する。 In step S340, it is determined whether or not the trajectory corresponding to the operation command Mi was generated in step S330. If the trajectory corresponding to the operation command cannot be generated due to the obstacle sweep space registered in the obstacle memory 2201, the process proceeds to step S380.

ステップS380では、生成済みの軌道に対応する軌道定義データから成る第1の動作指令と、未生成の軌道に対応する軌道定義データから成る第2の動作指令と、に分割する。そして、障害物メモリに登録されている障害物空間のデータをクリアしてから、ステップS300に復帰する。この場合、ステップS300、S310では、以後、動作指令リスト中の未生成の軌道に対応する軌道定義データから成る(第2の動作指令の部分を構成する)各動作指令の処理の優先順位を決定するよう制御する。 In step S380, it is divided into a first motion command including trajectory definition data corresponding to the generated trajectory and a second motion command including trajectory definition data corresponding to the ungenerated trajectory. Then, after clearing the data of the obstacle space registered in the obstacle memory, the process returns to step S300. In this case, in steps S300 and S310, the priority order of processing of each motion command, which is composed of the trajectory definition data corresponding to the ungenerated trajectory in the motion command list (which constitutes the second motion command portion), is determined. Control to do so.

以下、図8〜図10に示すような動作指令を例に図7の処理を説明する。 Hereinafter, the processing of FIG. 7 will be described by taking an operation command as shown in FIGS. 8 to 10 as an example.

図7のステップS300では、ステップS100(図3)ステップS200(図5)と同様に動作指令の入力と、動作指令リスト生成が行われる。ここでは、作業者の入力に基づき生成された動作指令リストには、ロボットアーム5については3つの動作指令Ma1、Ma2、Ma3が、ロボットアーム6については2つの動作指令Mb1、Mb2が含まれているものとする。 In step S300 of FIG. 7, as in step S100 (FIG. 3) and step S200 (FIG. 5), an operation command is input and an operation command list is generated. Here, the operation command list generated based on the operator's input includes three operation commands Ma1, Ma2, Ma3 for the robot arm 5 and two operation commands Mb1, Mb2 for the robot arm 6. Be present.

図8(a)は、上記動作指令に対応する軌道定義(始点、終点)を示している。同図において、動作指令Ma1、Ma2、Ma3は、それぞれ始点Sa1、Sa2、Sa3、終点Ga1、Ga2、Ga3の軌道定義に、また、動作指令Mb1、Mb2は、始点Sb1、Sb2、終点Gb1、Gb2の軌道定義に対応する。 FIG. 8A shows the trajectory definition (start point, end point) corresponding to the operation command. In the figure, the motion commands Ma1, Ma2, Ma3 are the trajectory definitions of the starting points Sa1, Sa2, Sa3, the end points Ga1, Ga2, Ga3, and the motion commands Mb1, Mb2 are the starting points Sb1, Sb2, the end points Gb1, Gb2. Corresponds to the orbit definition of.

即ち、この軌道定義のうち、動作指令Ma1は図8(a)の始点Sa1から終点Ga1(Sa2)へ、Ma2は始点Sa2から終点Ga2(Sa3)へ、Ma3は始点Sa3から終点Ga3へアームの基準部位を移動させるものである。ロボットアーム5はSa1の位置からスタートし、Ga1、Ga2の各位置を経由して、Ga3の位置に向かう。 That is, in this trajectory definition, the operation command Ma1 is from the start point Sa1 to the end point Ga1 (Sa2) in FIG. 8A, Ma2 is from the start point Sa2 to the end point Ga2 (Sa3), and Ma3 is from the start point Sa3 to the end point Ga3. The reference part is moved. The robot arm 5 starts from the position of Sa1 and goes toward the position of Ga3 via the positions of Ga1 and Ga2.

また、ロボットアーム6の動作指令Mb1は図8の(a)の始点Sb1から終点Gb1へ、また、Mb2は始点Sb2から終点Gb2へアームの基準部位を移動させる動作指令である。この場合、ロボットアーム6はSb1の位置からスタートし、Gb1の位置を経由して、Gb2の位置に向かう。この指令Op1に対応する動作指令リストは、以下のような構成となる。
Op1 = { Ma1 、 Ma2 、 Ma3 、 Mb1 、 Mb2 }
Ma1 = ( Sa1、 Ga1 )、 Mb1 = ( Sb1 、 Gb1 )
Ma2 = ( Sa2、 Ga2 )、 Mb2 = ( Sb2 、 Gb2 )
Ma3 = ( Sa3 、 Ga3 )
図7のステップS310では、設定されている優先順位に基づき、軌道生成の順位を決定する。この軌道生成の優先順位(ロボット単位あるいは動作指令単位)の制御に関しては、上述のように種々の方式が考えられ、例えば、作業者の優先順位指定を許容することが考えられる。
Further, the operation command Mb1 of the robot arm 6 is an operation command for moving the reference part of the arm from the starting point Sb1 to the end point Gb1 in FIG. 8A, and Mb2 is moving from the starting point Sb2 to the end point Gb2. In this case, the robot arm 6 starts from the position of Sb1 and moves toward the position of Gb2 via the position of Gb1. The operation command list corresponding to this command Op1 has the following configuration.
Op1={Ma1, Ma2, Ma3, Mb1, Mb2}
Ma1=(Sa1, Ga1), Mb1=(Sb1, Gb1)
Ma2 = (Sa2, Ga2), Mb2 = (Sb2, Gb2)
Ma3 = (Sa3, Ga3)
In step S310 of FIG. 7, the order of trajectory generation is determined based on the set priority order. Regarding the control of the priority order of the trajectory generation (robot unit or motion command unit), various methods can be considered as described above, and for example, it is conceivable to allow the operator to specify the priority order.

しかしながら、本実施例では、CPU20の自動制御によって、軌道生成の優先順位(ロボット単位あるいは動作指令単位)を設定するものとする。ここでは、動作指令リストでより多数の前記軌道定義データが含まれるロボットアームの軌道生成が、動作指令リストでより少数の前記軌道定義データが含まれるロボットアームの軌道生成よりも先に実行されるよう、優先度を設定する。この場合、上記の動作指令リストの構成では、動作数が多く、優先度の高いロボットはロボットアーム5となる。 However, in the present embodiment, it is assumed that the CPU 20 automatically controls the trajectory generation priority order (robot unit or motion command unit). Here, the trajectory generation of the robot arm including a larger number of the trajectory definition data in the operation command list is executed before the trajectory generation of the robot arm including a smaller number of the trajectory definition data in the operation command list. To set the priority. In this case, in the configuration of the operation command list described above, the robot having a large number of operations and having a high priority is the robot arm 5.

動作指令単位の優先順に関しては、例えば作業者の入力指定に応じて各動作指令の処理順を任意の順番に並べ換えることが考えられる。しかしながら、本実施例では、説明を容易にするため、上記の動作指令リストの順序(Ma1、Ma2…,あるいはMb1、Mb2…)とする。 Regarding the priority order of operation command units, for example, it is conceivable to rearrange the processing order of each operation command in an arbitrary order according to the input designation of the operator. However, in the present embodiment, in order to facilitate the description, the order of the operation command list (Ma1, Ma2..., Or Mb1, Mb2...) Is used.

ただし、本実施例では、複数のロボットアームのうち、軌道生成されていない動作指令が多数あるアームが生じないように、全てのアームを順に1つずつ軌道生成(+障害物登録)する処理順制御も適用する。これは、1つのロボットだけ集中して軌道生成し、その通過領域によって他のロボットが軌道生成できなくなる問題を回避するためである。 However, in the present embodiment, of the plurality of robot arms, the processing order of trajectory generation (+ obstacle registration) of all the arms one by one in order not to generate an arm having a large number of motion commands that have not been generated. Control is also applied. This is to avoid the problem that only one robot concentrates on trajectory generation and other robots cannot generate trajectory depending on the passage area.

なお、以上のような本実施例の軌道生成(+障害物登録)の処理順序の制御の一例は、図18のフローチャートを用いて本実施例の最後で説明する。 Note that an example of the control of the processing order of the trajectory generation (+ obstacle registration) of the present embodiment as described above will be described at the end of the present embodiment using the flowchart of FIG. 18.

以上のような本実施例の軌道生成(+障害物登録)の処理順序の制御によれば、各動作指令につき軌道生成を行う順番はMa1、Mb1、Ma2、Mb2、Ma3のような順序になる。 According to the control of the processing order of trajectory generation (+ obstacle registration) of the present embodiment as described above, the order of trajectory generation for each operation command is Ma1, Mb1, Ma2, Mb2, Ma3. ..

図7のステップS320(ポインタ/カウンタの初期化)に続き、ステップ330では、ステップS310で定めた順番に従って軌道生成を行う。ステップ330の軌道生成は図5のステップS230で説明した処理と同様である。 Subsequent to step S320 (pointer/counter initialization) in FIG. 7, in step 330, trajectory generation is performed in the order determined in step S310. The trajectory generation in step 330 is similar to the processing described in step S230 in FIG.

図7のステップ340では、ステップS330で軌道生成が成功したか否かを判定する。ここで軌道生成が成功した場合にはステップS350へ、軌道生成が生成できなかった場合にはステップS380へ進む。ここで、軌道が生成できない場合としては、例えば他のロボットアームの通過領域によって、終点までの道のりが塞がれてしまう場合や、他のロボットアームの通過領域内に始点や終点が含まれている場合がある。 In step 340 of FIG. 7, it is determined whether or not the trajectory generation is successful in step S330. If the trajectory generation is successful here, the process proceeds to step S350, and if the trajectory generation cannot be generated, the process proceeds to step S380. Here, when the trajectory cannot be generated, for example, when the path to the end point is blocked by the passing area of the other robot arm, or when the starting point and the end point are included in the passing area of the other robot arm. There is a case.

図8の例では、まず、ロボットアーム5の動作指令Ma1が処理される。この場合、始点Sa1から終点Ga1に向かい、かつ障害物7を回避する軌道Tra1が生成出来るため、処理ステップはS350となる。 In the example of FIG. 8, first, the operation command Ma1 of the robot arm 5 is processed. In this case, since the trajectory Tra1 from the start point Sa1 to the end point Ga1 and avoiding the obstacle 7 can be generated, the processing step is S350.

ステップS350、S360では、軌道による通過(掃引)領域(SVa1)から障害物データを生成し、障害物メモリ2201に登録する。これにより、障害物メモリ2201の状態は、図16(a)の障害物7のみが存在する状態から図16(b)の登録状態となる。即ち動作指令Ma1の軌道Tra1によって、ロボットアーム5の通過(掃引)領域(SVa1)が新たに障害物として追加される。 In steps S350 and S360, obstacle data is generated from the passage (sweep) area (SVa1) by the trajectory and registered in the obstacle memory 2201. As a result, the state of the obstacle memory 2201 changes from the state in which only the obstacle 7 in FIG. 16A exists to the registered state in FIG. 16B. That is, the passage (sweep) area (SVa1) of the robot arm 5 is newly added as an obstacle by the trajectory Tra1 of the operation command Ma1.

図8(c)に示すように、上記同様の手順で、次の動作指令Mb1に関しても、軌道生成と障害物追加を行うことができる。動作指令Mb1もステップS330、S340で軌道が生成可能であり、図16(c)に示すように軌道Trb1に対応する通過(掃引)領域(SVb1)が新たに障害物メモリ2201に追加される。 As shown in FIG. 8C, trajectory generation and obstacle addition can be performed for the next operation command Mb1 in the same procedure as above. The motion command Mb1 can also generate a trajectory in steps S330 and S340, and a passage (sweep) region (SVb1) corresponding to the trajectory Trb1 is newly added to the obstacle memory 2201 as shown in FIG. 16C.

さらに処理は進み、ステップS330でロボットアーム5に関して動作指令Ma2の軌道生成が試行される。この動作指令Ma2は図8(a)に示すように始点Sa2から終点Ga2へ向かう軌道定義を含む。しかしながら、図8(d)に示すように、動作指令Ma2の終点Ga2の位置は、上記の手順で追加された障害物(SVb1)の内部にあって障害物との干渉を生じるため、軌道生成を行えない。この場合、処理は図7のステップS380に進む。 The process further proceeds, and in step S330, the trajectory generation of the motion command Ma2 for the robot arm 5 is tried. This operation command Ma2 includes a trajectory definition from the start point Sa2 to the end point Ga2 as shown in FIG. However, as shown in FIG. 8D, the position of the end point Ga2 of the operation command Ma2 is inside the obstacle (SVb1) added in the above procedure and causes interference with the obstacle. Can not be done. In this case, the process proceeds to step S380 in FIG.

ステップS380で、CPU20は軌道が生成出来なかった場合の処理を行う。このステップS380では、まず、初めに、動作指令(群)を、軌道生成(+障害物登録)済みの第1の動作指令(群:前半)と、軌道生成(+障害物登録)が未処理である第2の動作指令(群:後半)に分割する。 In step S380, the CPU 20 performs processing when the trajectory cannot be generated. In this step S380, first, the motion command (group) is not processed for the first motion command (group: first half) for which trajectory generation (+ obstacle registration) has been completed and trajectory generation (+ obstacle registration). 2nd operation command (group: latter half).

即ち、現在までに軌道が生成できた全動作指令を一つの第1の動作指令(群:前半)に、軌道生成(+障害物登録)が未処理である以降の全動作を第2の動作指令(群:後半)に分割する。実施例2の例では、動作指令Ma1、Mb1を第1(前半:Op1−1)の動作指令に、動作指令Ma2、Mb2、Ma3を第2(後半:Op1−2)の動作指令として分割する。 That is, all the motion commands for which the trajectory has been generated so far are set as one first motion command (group: first half), and all the motions after the trajectory generation (+ obstacle registration) are unprocessed are the second motions. Divide into commands (group: latter half). In the example of the second embodiment, the operation commands Ma1 and Mb1 are divided into a first (first half: Op1-1) operation command, and the operation commands Ma2, Mb2 and Ma3 are divided into a second (second half: Op1-2) operation command. ..

なお、第1、第2の動作指令の分割は、1度のみならず、後半(残り)の第2の動作指令の処理で軌道生成が不可能になった場合は、さらに第2の動作指令を(処理済みの)第1の動作指令と、(未処理の)第2の動作指令に分割する。この繰り返しで、全動作指令データを処理していく。 The division of the first and second motion commands is not limited to once, but if the trajectory generation becomes impossible by the processing of the second motion command in the latter half (remaining), the second motion command is further divided. Is divided into a (processed) first motion command and a (unprocessed) second motion command. By repeating this, all operation command data are processed.

また、第1、第2の動作指令への分割が生じた場合、分割の前後で第1、第2の動作指令に対応するロボットアーム(5、6)の動作は同期的に実行する。即ち、第1の動作指令に対応する動作が全て終了するのを待って、第2の動作指令に対応する動作を開始させるような同期制御を行う。このような同期制御を行うため、動作指令の分割を行った場合、CPU20は、実環境でのロボットの動作を上記のように同期させるための同期指令(図10のSp1)を生成する。この同期指令(図10のSp1)は、例えば生成した軌道データ群の分割の起きた位置に挿入する。 Further, when the division into the first and second operation commands occurs, the operations of the robot arms (5, 6) corresponding to the first and second operation commands are executed synchronously before and after the division. That is, the synchronization control is performed such that the operation corresponding to the second operation command is started after waiting for the completion of all the operations corresponding to the first operation command. In order to perform such synchronization control, when the operation command is divided, the CPU 20 generates a synchronization command (Sp1 in FIG. 10) for synchronizing the operation of the robot in the actual environment as described above. This synchronization command (Sp1 in FIG. 10) is inserted, for example, at the position where division of the generated trajectory data group has occurred.

そして、CPU20は、図16(d)に示すように、軌道生成に伴なって生成されたロボットアームの掃引(通過)領域に対応する障害物データを障害物メモリ2201からクリアする。この場合、動作指令Ma1、Mb1の軌道生成で追加された障害物SVa1、SVb1が削除される。これにより、次の指令内の動作の軌道生成が可能になる。 Then, as shown in FIG. 16D, the CPU 20 clears the obstacle data corresponding to the sweep (passage) region of the robot arm generated by the trajectory generation from the obstacle memory 2201. In this case, the obstacles SVa1 and SVb1 added by the trajectory generation of the operation commands Ma1 and Mb1 are deleted. This makes it possible to generate the trajectory of the motion within the next command.

その後、ステップS300に復帰して、上記同様の処理を繰り返し、残りの未処理の第2の動作指令(群:後半)に関して軌道生成(+障害物登録)を実行する。なお、第2の動作指令(後半:Op1−2)に相当する軌道定義から処理するための措置として、CPU20が、ステップS380において動作指令リストの処理済みの部分を消去するような処理を行うものとしてもよい。 After that, returning to step S300, the same processing as described above is repeated, and trajectory generation (+ obstacle registration) is executed for the remaining unprocessed second motion command (group: latter half). As a measure for processing from the trajectory definition corresponding to the second motion command (latter half: Op1-2), the CPU 20 performs a process of deleting the processed part of the motion command list in step S380. May be

上記のように動作指令Op1を分割した第1の動作指令(前半:Op1−1)、第2の動作指令(後半:Op1−2)は、
Op1−1 = { Ma1 、 Mb1 } 、
Op1−2 = { Ma2 、 Mb2 、 Ma3 }
のような構成となる。なお、CPU20は、上記のような動作指令分割を行う場合、実環境において、分割した第1(前半)、第2(後半)の動作指令の各動作を同期的に制御するための同期指令(図10のSp1)を生成する。この同期指令(図10のSp1)は、例えば生成した軌道データ群の分割の起きた位置に挿入するものとする。
The first operation command (first half: Op1-1) and the second operation command (second half: Op1-2) obtained by dividing the operation command Op1 as described above are
Op1-1={Ma1, Mb1},
Op1-2={Ma2, Mb2, Ma3}
It becomes the structure like. When the operation command division as described above is performed, the CPU 20 outputs a synchronization command (a synchronization command for synchronously controlling each operation of the divided first (first half) and second (second half) operation commands in an actual environment. Sp1) of FIG. 10 is generated. This synchronization command (Sp1 in FIG. 10) is, for example, inserted at the position where the generated trajectory data group is divided.

その後の処理において、ステップS300では、ステップS380を経由したことにより、処理対象は第2の動作指令(後半:Op1−2)に相当する軌道定義となる。即ち、上記の動作指令Ma2、Mb2、Ma3を含む動作指令Op1−2が入力される。 In the subsequent processing, in step S300, the processing target becomes the trajectory definition corresponding to the second motion command (latter half: Op1-2) by passing through step S380. That is, the operation command Op1-2 including the operation commands Ma2, Mb2, Ma3 is input.

図9(a)は、第2の動作指令(後半:Op1−2)の処理の初頭における現在のロボットアームの位置と動作指令Ma2、Mb2、Ma3の始点(Sa2、Sb2、Sa3)と、終点(Ga2、Gb2、Ga3)の位置を示している。 FIG. 9A shows the current position of the robot arm at the beginning of the process of the second operation command (latter half: Op1-2) and the start points (Sa2, Sb2, Sa3) and end points of the operation commands Ma2, Mb2, Ma3. The position of (Ga2, Gb2, Ga3) is shown.

続く図7のステップ310では、上記同様に軌道生成の順序を決定する。上記同様に、例えば動作数からロボットアームの優先度を設定し、優先度から処理の順番を決定する。第2の動作指令(後半:Op1−2)の処理においても、ロボットアーム5の方が動作数が多いため優先度が高く設定される。従って、軌道生成処理の順序は、動作指令Ma2、Mb2、Ma3の順となる。 In the subsequent step 310 of FIG. 7, the order of trajectory generation is determined in the same manner as above. Similarly to the above, for example, the priority of the robot arm is set from the number of operations, and the processing order is determined from the priority. Also in the processing of the second operation command (latter half: Op1-2), the robot arm 5 has a larger number of operations, and thus the priority is set higher. Therefore, the order of the trajectory generation processing is the order of the operation commands Ma2, Mb2, Ma3.

以下、CPU20は、第2の動作指令(後半:Op1−2)に対して、上述同様に図7のステップ330〜360によって軌道生成行程と障害物登録行程を実行する。最初の動作指令Ma2は始点Sa2から終点Ga2へ向かう動作であり、図9の(b)に示すように軌道生成により、ロボットアーム6の現在位置であるSb2の点を回避するようにして、軌道Tra2が生成される。また、図16の(e)に示すように、軌道Tra2におけるロボットアーム6の通過(掃引)領域(SVa2)が障害物として障害物メモリ2201に追加される。 Thereafter, the CPU 20 executes the trajectory generation process and the obstacle registration process in response to the second operation command (latter half: Op1-2) by steps 330 to 360 of FIG. 7 as described above. The first motion command Ma2 is a motion from the start point Sa2 to the end point Ga2. As shown in FIG. 9B, the trajectory is generated by avoiding the point Sb2 which is the current position of the robot arm 6. Tra2 is generated. Further, as shown in (e) of FIG. 16, the passage (sweep) area (SVa2) of the robot arm 6 on the trajectory Tra2 is added to the obstacle memory 2201 as an obstacle.

図7のステップ330〜360によって、さらに後続の動作指令Mb2、Ma3…が処理される。動作指令Mb2の始点Sb2、終点Gb2については、追加された障害物SVa2を回避するように軌道Trb2が生成される(図9(c))。また、その軌道の通過(掃引)領域に対応する障害物(SVb2)が生成され、障害物メモリ2201に追加される(図16(f))。そして、最後に、動作指令Ma3の始点Sa3、終点Ga3から障害物SVb2を回避する軌道Tra3が生成され(図9(d))、その軌道の通過(掃引)領域に対応する障害物(SVa3)が生成される。 The subsequent operation commands Mb2, Ma3... Are further processed by steps 330 to 360 of FIG. For the start point Sb2 and the end point Gb2 of the operation command Mb2, the trajectory Trb2 is generated so as to avoid the added obstacle SVa2 (FIG. 9(c)). Further, an obstacle (SVb2) corresponding to the passage (sweep) area of the trajectory is generated and added to the obstacle memory 2201 (FIG. 16(f)). Then, finally, a trajectory Tra3 that avoids the obstacle SVb2 is generated from the start point Sa3 and the end point Ga3 of the operation command Ma3 (FIG. 9D), and the obstacle (SVa3) corresponding to the passage (sweep) area of the trajectory. Is generated.

以上のようにして、作業者が最初に入力した動作指令リスト中の全動作指令に対応する全軌道の生成が完了する。本実施例の軌道生成方法によれば、アームの通過(掃引)領域に対応する障害物によって軌道生成が不可能となった場合、処理済みの動作指令を含む第1の動作指令と、未処理の動作指令を含む第2の動作指令とに動作指令リストを分割する。その際、障害物メモリの障害物データをクリアして残りの第2の動作指令を処理するため、軌道生成(+障害物登録)を続行することができる。 As described above, the generation of all trajectories corresponding to all motion commands in the motion command list first input by the operator is completed. According to the trajectory generating method of the present embodiment, when the trajectory cannot be generated due to the obstacle corresponding to the passing (sweep) area of the arm, the first motion command including the processed motion command and the unprocessed motion command. The operation command list is divided into a second operation command including the operation command of. At that time, since the obstacle data in the obstacle memory is cleared and the remaining second operation command is processed, the trajectory generation (+ obstacle registration) can be continued.

一方、上記のような軌道生成によると、実環境の動作では、分割した動作指令Op1−1とOp1−2の間ではロボットアーム同士の干渉の可能性があるため、同期的な実行制御を行う必要がある。例えば、第1の動作指令Op1−1内の全動作が終了した後に、第2の動作指令Op1−2内の動作を実行する制御を行う。このために、上記のように、動作指令の分割を行った場合、CPU20は同期指令(図10のSp1)を軌道データ中の同期制御が必要な位置に挿入していく。 On the other hand, according to the trajectory generation as described above, in the operation in the real environment, there is a possibility that the robot arms may interfere with each other between the divided operation commands Op1-1 and Op1-2, so that synchronous execution control is performed. There is a need. For example, control is performed to execute the operation within the second operation command Op1-2 after all the operations within the first operation command Op1-1 are completed. For this reason, when the operation command is divided as described above, the CPU 20 inserts the synchronization command (Sp1 in FIG. 10) into the orbital data at the position requiring the synchronization control.

図10は、上記のように分割した(第1の)動作指令Op1−1と、(第2の)Op1−2に対応するロボット動作をロボットアーム5、6で同期的に実行させた時のタイミングを示している。この例は、図8、図9で説明した(第1の)動作指令Op1−1と(第2の)動作指令Op1−2に対応している。このように(第1の)動作指令Op1−1と(第2の)動作指令Op1−2との分割を行なった場合、CPU20は軌道データ中に同期指令(Sp1)を挿入する。これにより、(第2の)動作指令Op1−2に対応する動作が(第1の)動作指令Op1−1の動作が全て終了するのを待って開始されるよう、同期的な制御を行うことができる。 FIG. 10 shows a case where the robot operations corresponding to the (first) operation command Op1-1 and the (second) Op1-2 divided as described above are synchronously executed by the robot arms 5 and 6. The timing is shown. This example corresponds to the (first) operation command Op1-1 and the (second) operation command Op1-2 described with reference to FIGS. When the (first) operation command Op1-1 and the (second) operation command Op1-2 are divided in this way, the CPU 20 inserts the synchronization command (Sp1) into the trajectory data. Thus, synchronous control is performed so that the operation corresponding to the (second) operation command Op1-2 is started after all the operations of the (first) operation command Op1-1 are completed. You can

図10では、最初に2つのロボットアーム5、6が同時にそれぞれの動作を開始する。この場合、どちらかのロボットアームが先に動作を終了するが、同期指令(Sp1)が挿入されている場合には、その次の指令の動作は実行せず、もう片方のロボットアームの動作が完了するまで待機する。図10の例では、ロボットアーム6が先に動作(Mb1)を完了するが、待機時間80の間だけ待機し、ロボットアーム5の動作指令Ma1が完了するのを待つよう、同期制御が行われている。そして、動作指令Op1−1内の全動作が完了した後に、次の動作指令Op1−2に移り、それぞれの動作(Ma2、Mb2、Ma3…)を同時に実行開始する。 In FIG. 10, first, the two robot arms 5 and 6 simultaneously start their respective operations. In this case, one of the robot arms ends its operation first, but if the synchronization command (Sp1) is inserted, the operation of the next command is not executed, and the operation of the other robot arm Wait for completion. In the example of FIG. 10, the robot arm 6 completes the operation (Mb1) first, but the synchronous control is performed so that the robot arm 6 waits only for the waiting time 80 and waits for the operation command Ma1 of the robot arm 5 to complete. ing. Then, after all the operations in the operation command Op1-1 are completed, the operation moves to the next operation command Op1-2, and the respective operations (Ma2, Mb2, Ma3...) Are started simultaneously.

なお、動作指令Op1−2と後続の動作指令(不図示)との間でも動作指令の分割(および障害物メモリ2201のクリア)が生じている場合には、図10に示すように同期指令(Sp2)が挿入される。ここでは、ロボットアーム6が先に全動作を完了するが、ここでも待機時間90の間だけロボットアーム5を待つ同期制御が行われる。 Note that if the operation command is divided (and the obstacle memory 2201 is cleared) between the operation command Op1-2 and the subsequent operation command (not shown), as shown in FIG. Sp2) is inserted. Here, the robot arm 6 completes all operations first, but here again, the synchronous control of waiting for the robot arm 5 for the waiting time 90 is performed.

以上のように、本実施例では、分割後の指令の中では複数のロボットアームが干渉し合わない軌道を保証し、指令間の干渉はロボットアームを同期指令に基づき同期的に動作させる。これにより、本実施例の方法によれば、ロボットアームに多数の動作を割り当てられた場合においても、同期指令を発生して実環境における簡易な同期制御を行うことにより、ロボット同士の干渉の生じない軌道を自動的に生成することができる。 As described above, in the present embodiment, in the command after the division, the trajectory in which the plurality of robot arms do not interfere with each other is guaranteed, and the interference between the commands causes the robot arms to operate synchronously based on the synchronization command. Thus, according to the method of the present embodiment, even when a large number of movements are assigned to the robot arm, the synchronization command is generated and the simple synchronization control in the actual environment is performed, thereby causing the interference between the robots. No trajectories can be generated automatically.

ここで、図18に図7のステップS310(図3のステップS210でも同様)に関して述べた、ロボットアーム単位および動作指令単位の優先度を用いて、軌道生成(+障害物登録)の処理順を制御するアルゴリズムの一例を示しておく。 Here, the processing order of trajectory generation (+ obstacle registration) is set by using the priority of the robot arm unit and the motion command unit described in step S310 of FIG. 7 (the same applies to step S210 of FIG. 3) in FIG. An example of the controlling algorithm will be shown.

ここでは、ロボットアーム単位の優先度を指すポインタ(カウンタ)Rを用いる。このRは、最大優先度に対応する値0から最大(全)ロボットアーム数に相当するRまで1ずつインクリメントされる。一方、ポインタ(カウンタ)Rにより指示される主記憶ないし仮想記憶上に確保されたロボットアーム順位リストには、ユーザ(作業者)指定(あるいはCPU20が自動決定)に基づき、各ロボットアームの識別データを優先順位が高い方から順に格納しておく。このロボットアーム順位リストを、ポインタ(カウンタ)Rの値に基づき先頭(0)から参照していくことで、CPU20はロボットアーム順位リストに定義されたアームの順で軌道生成(+障害物登録)を実行できる。なお、ポインタ(カウンタ)Rは、図18の例では循環的に使用され、その値が最大(全)ロボットアーム数に相当するRに達すると、その値は0にリセットされる。 Here, a pointer (counter) R indicating the priority of each robot arm is used. This R is incremented by 1 from the value 0 corresponding to the maximum priority to R M corresponding to the maximum (total) robot arm number. On the other hand, in the robot arm order list secured in the main memory or virtual memory pointed by the pointer (counter) R, the identification data of each robot arm is specified based on the user (worker) designation (or automatically determined by the CPU 20). Are stored in descending order of priority. By referring to this robot arm order list from the beginning (0) based on the value of the pointer (counter) R, the CPU 20 generates a trajectory in the order of the arms defined in the robot arm order list (+ obstacle registration). Can be executed. The pointer (counter) R is cyclically used in the example of FIG. 18, and when the value reaches R M corresponding to the maximum (total) number of robot arms, the value is reset to 0.

また、以上では、ポインタ(カウンタ)iを用いた動作指令単位の優先度制御については詳細に述べなかったが、この動作指令単位の優先度制御についても、上記と同様の構成を用いることができる。例えばポインタ(カウンタ)iにより指示される主記憶ないし仮想記憶上に確保された動作指令順位リストに、ユーザ(作業者)指定(あるいはCPU20が自動決定)に基づき、各動作指令の識別データを優先順位が高い方から順に格納しておく。この動作指令順位リストを、ポインタ(カウンタ)i(最も高い優先度は0)の値に基づき参照していくことで、動作指令順位リストの定義順で動作指令を処理していくことができる。 Further, in the above, the priority control in units of operation commands using the pointer (counter) i has not been described in detail, but the same configuration as above can be used for the priority control in units of operation commands. .. For example, priority is given to the identification data of each operation command based on the user (worker) designation (or automatically determined by the CPU 20) in the operation command order list secured in the main memory or virtual memory indicated by the pointer (counter) i. Store in order from the highest ranking. By referring to this operation command order list based on the value of the pointer (counter) i (the highest priority is 0), the operation commands can be processed in the definition order of the operation command order list.

図18は図7のステップS320〜S370の部分をより詳細に示す形式のフローチャートで、ステップS320は図7のものと同じポインタ(カウンタ)iの初期化(i=0)処理である。また、それに続くステップS520は、上記のポインタ(カウンタ)Rの初期化(R=0)処理である。 FIG. 18 is a flowchart showing the details of steps S320 to S370 of FIG. 7. Step S320 is the same pointer (counter) i initialization (i=0) processing as that of FIG. Further, the subsequent step S520 is initialization (R=0) processing of the pointer (counter) R described above.

ステップS530では、Mi=Mi(R)のようなポインタ(カウンタ)演算によって、今回の処理対象の動作指令を決定する。つまり、このポインタ(カウンタ)操作は、ポインタ(カウンタ)Rの指すロボットアームに関する、現時点で最も優先度の高い(未処理)の動作指令を特定する処理である。 In step S530, the operation command to be processed this time is determined by a pointer (counter) operation such as Mi=Mi(R). That is, this pointer (counter) operation is a process for specifying the highest priority (unprocessed) operation command at the present time regarding the robot arm pointed to by the pointer (counter) R.

ステップS540では、図7のステップS330〜S360の処理に相当する軌道生成および障害物登録処理を行う。ここでは詳細不図示であるが、軌道生成不可能となった場合のステップS340〜S380の動作指令分割処理も同様に実行することができる。 In step S540, trajectory generation and obstacle registration processing corresponding to the processing of steps S330 to S360 of FIG. 7 is performed. Although not shown in detail here, the operation command division processing of steps S340 to S380 when the trajectory cannot be generated can be similarly executed.

ステップS550では、ポインタ(カウンタ)R、およびポインタ(カウンタ)iを1ずつインクリメントする(R=R+1,i=i+1)。これによりロボット指定、および動作指令は、次のロボットアーム、次の動作指令をそれぞれ指すようポインタ(カウンタ)R、iがそれぞれインクリメントされる。 In step S550, the pointer (counter) R and the pointer (counter) i are incremented by 1 (R=R+1, i=i+1). As a result, the pointers (counters) R and i are incremented so that the robot designation and the motion command point to the next robot arm and the next motion command, respectively.

ステップS560では、ポインタ(カウンタ)Rが一巡したか、即ち、最大(全)ロボットアーム数に相当するRに達したか否かを判定する。ステップS560が肯定された場合にはポインタ(カウンタ)Rは最初の最も優先度の高いアームを指すように0にリセットされる。 In step S560, it is determined whether or not the pointer (counter) R has made one round, that is, whether or not it has reached R M corresponding to the maximum (total) number of robot arms. If step S560 is positive, the pointer (counter) R is reset to 0 to point to the first highest priority arm.

ステップS580は、図7のステップS370と同じ処理で、ここではポインタ(カウンタ)iの値の判定によって、動作指令リスト中の全ての動作指令を処理したか否かを判定している。ここで全動作指令を処理していない間はステップS530に復帰して上記の動作を繰り返す。 Step S580 is the same process as step S370 of FIG. 7, and here it is determined whether all the operation commands in the operation command list have been processed by the determination of the value of the pointer (counter) i. Here, while all the operation commands are not processed, it returns to step S530 and repeats the above operation.

図18のような優先度処理によって、ポインタ(カウンタ)Rをインクリメントすることによって、全部のロボットアームを設定された優先度の順に1つずつ指定し、またポインタ(カウンタ)iによって動作指令を優先度の順に取り出して処理できる。従って、ロボットアーム単位の優先順位制御については、優先順位に基づき、まんべんなく全部のロボットアームの動作指令を設定された優先度の順で処理できる。このため、例えばユーザ(作業者)のロボット優先順位の指定に偏りがあって、あるロボットアームの動作ばかり先に処理され、後続のロボットアームの動作の処理で軌道生成が進まないような事態を回避することができる。 By incrementing the pointer (counter) R by the priority processing as shown in FIG. 18, all robot arms are designated one by one in the order of the set priority, and the operation command is prioritized by the pointer (counter) i. It can be taken out and processed in order of degree. Therefore, with respect to the priority control for each robot arm, it is possible to uniformly process the operation commands of all the robot arms based on the priority order in the set priority order. Therefore, for example, there is a bias in the specification of the robot priority of the user (worker), and the operation of a certain robot arm is processed earlier, and the trajectory generation does not proceed in the processing of the operation of the subsequent robot arm. It can be avoided.

<実施例3>
実施例2で軌道生成が不可能となる事態として、例えば図8(d)のように、軌道生成の終点Ga2(始点の場合も同様である)が、他のロボットアームの軌道生成によって生成された障害物(SVb1)に最初から干渉している例を示した。本実施例3では、このような事態を回避できるような処理手法につき説明する。本実施例でも、図1〜図4、図14などに示した軌道生成システムの基本構成は上述の実施例1、2と同様であるものとし、既に説明済みの部材や制御については可能な限り重複した説明は省略するものとする。
<Example 3>
As a situation in which the trajectory generation is impossible in the second embodiment, for example, as shown in FIG. 8D, the end point Ga2 of the trajectory generation (the same applies to the start point) is generated by the trajectory generation of another robot arm. An example is shown in which an obstacle (SVb1) is interfered with from the beginning. In the third embodiment, a processing method that can avoid such a situation will be described. Also in this embodiment, the basic configuration of the trajectory generation system shown in FIGS. 1 to 4 and 14 is similar to that of the above-described first and second embodiments, and the members and controls already described are as far as possible. The duplicate description will be omitted.

本実施例3では、各ロボットアームが動作指令中の軌道定義である始点および終点の位置にいる時の姿勢において各アームの躯体が占める空間を障害物として登録しておくことにより上記の問題を回避する。これにより、動作指令の始点または終点が最初から他のロボットアームの通過領域内に含まれてしまうような状態を回避することができる。 In the third embodiment, the above problem is solved by registering the space occupied by the skeleton of each robot arm as an obstacle in the posture when the robot arm is at the starting point and the ending point, which are the trajectory definitions in the motion command. To avoid. As a result, it is possible to avoid a situation in which the start point or the end point of the operation command is included in the passage area of another robot arm from the beginning.

以下、実施例3での複数台のロボットの通過領域が互いに交差しない軌道を生成する方法について、図11〜図13、図17を用いて、本実施例の処理手法につき説明する。図11(a)〜(f)は実施例2の図8と同様の形式で各ロボットアーム(5、6)の姿勢および対応する軌道生成(+障害物登録)の様子を示している。図12は、実施例2の図10に相当する実環境における同期的なロボット制御の様子を示し、図13は、図7と同様の形式で本実施例における軌道生成(+障害物登録)の制御手順を示している。また、図17(a)〜(f)は、図15、図16と同等の形式で本実施例の障害物メモリ2201のデータ内容の遷移を示している。 Hereinafter, the processing method of this embodiment will be described with reference to FIGS. 11 to 13 and 17 for a method of generating a trajectory in which the passage areas of a plurality of robots do not intersect each other in the third embodiment. 11A to 11F show the posture of each robot arm (5, 6) and the corresponding trajectory generation (+ obstacle registration) in the same format as FIG. 8 of the second embodiment. FIG. 12 shows a state of synchronous robot control in a real environment corresponding to FIG. 10 of the second embodiment, and FIG. 13 shows the trajectory generation (+ obstacle registration) in the present embodiment in the same format as FIG. The control procedure is shown. Further, FIGS. 17A to 17F show the transition of the data contents of the obstacle memory 2201 of the present embodiment in the same format as FIGS. 15 and 16.

以下では、実施例3の構成や、処理対象の動作指令リスト中の動作指令は実施例2と同様であるものとする。このため、以下では特に実施例2と異なる点に重点を置いて説明する。 Hereinafter, the configuration of the third embodiment and the operation command in the operation command list to be processed are the same as those of the second embodiment. Therefore, in the following description, the points different from the second embodiment will be particularly emphasized.

本実施例において、作業者の入力に応じて生成された動作指令リストは、実施例2と同様であり、
Op1 = { Ma1 、 Ma2 、 Ma3 、 Mb1 、 Mb2 }
Ma1 = ( Sa1 、 Ga1 )、Mb1 = ( Sb1 、 Gb1 )
Ma2 = ( Sa2 、 Ga2 )、Mb2 = ( Sb2 、 Gb2 )
Ma3 = ( Sa3 、 Ga3 )
のような動作指令によって構成されている。上記の各始点と終点の位置は図11(a)に示す通りである。
In this embodiment, the operation command list generated in response to the operator's input is the same as that in the second embodiment,
Op1={Ma1, Ma2, Ma3, Mb1, Mb2}
Ma1 = (Sa1, Ga1), Mb1 = (Sb1, Gb1)
Ma2 = (Sa2, Ga2), Mb2 = (Sb2, Gb2)
Ma3 = (Sa3, Ga3)
It is composed of operation commands such as. The positions of the start point and the end point are as shown in FIG.

図13は本実施例における軌道生成(+障害物登録)処理の流れを示しており、ここでは実施例2の図7と同一の処理ステップには図7と同一のステップ番号を用いている。図13で図7と異なるのは、ステップS300とS310の間にステップS410を挿入してある点である。それ以外のステップの処理は、図7で説明したものと同様である。 FIG. 13 shows the flow of the trajectory generation (+ obstacle registration) processing in this embodiment. Here, the same processing steps as those in FIG. 7 of the second embodiment use the same step numbers as in FIG. 13 differs from FIG. 7 in that step S410 is inserted between steps S300 and S310. The processing of the other steps is similar to that described with reference to FIG. 7.

この図13のステップS410では、全ての軌道生成を開始する前に、各ロボットアームが動作指令中の始点および終点の位置にいる時の姿勢で各アームの躯体が占める空間を障害物として障害物メモリ2201に登録する。図17(a)は、このステップS410が実行された後の状態を示している。即ち、図17(a)では、上記の各動作指令の始点(Sa1、Sa2…、Sb1、Sb2…)および終点(Ga1、Ga2…、Gb1、Gb2…)における姿勢において各アームの躯体が占有する領域が障害物として障害物メモリ2201に登録されている。 In step S410 of FIG. 13, before starting the generation of all trajectories, the robot occupies the space occupied by the skeleton of each arm in the posture when the robot arm is at the start point and the end point in the operation command as an obstacle. Register in the memory 2201. FIG. 17A shows the state after step S410 is executed. That is, in FIG. 17A, the skeleton of each arm occupies the posture at the start point (Sa1, Sa2..., Sb1, Sb2...) And the end point (Ga1, Ga2..., Gb1, Gb2...) Of each operation command. The area is registered in the obstacle memory 2201 as an obstacle.

これ以降の処理の流れは、図7で説明したものと同様である。例えばステップS310の処理の優先順序の決定方法も実施例2と同様に行われ、ここでは上記の動作指令Op1の処理順序はMa1、Ma2、Ma3、Mb1、Mb2であるものとする。 The subsequent process flow is the same as that described with reference to FIG. 7. For example, the method of determining the priority order of the processing in step S310 is performed in the same manner as in the second embodiment, and here, it is assumed that the processing order of the operation command Op1 is Ma1, Ma2, Ma3, Mb1, Mb2.

次に、ステップS320の初期化に続き、ステップS330〜S370(およびS380)のループによって、設定された順位に従って、軌道生成および障害物追加処理を行う。この時、図17(a)のような障害物の初期登録状態によって、本実施例の軌道生成(ステップS330)では、処理対象のアーム以外の他のアームの始点と終点の位置を回避するよう軌道が生成されることになる。 Next, following the initialization in step S320, the loop of steps S330 to S370 (and S380) performs trajectory generation and obstacle addition processing in accordance with the set order. At this time, according to the initial registration state of the obstacle as shown in FIG. 17A, in the trajectory generation (step S330) of the present embodiment, the positions of the start point and the end point of the arm other than the arm to be processed are avoided. A trajectory will be generated.

この軌道生成および障害物の追加登録の様子は、例えば図11(a)〜(f)、図17(b)〜(f)に示す通りである。ここでは、まず動作指令Ma1の軌道生成時は予め配置されている障害物7を避けるようにして軌道Tra1が生成され、その掃引(通過)領域が障害物(SVa1)として障害物メモリ2201に追加される(図11(b)、図17(b))。 The state of the trajectory generation and the additional registration of the obstacle is as shown in FIGS. 11A to 11F and FIGS. 17B to 17F, for example. Here, first, when the trajectory of the operation command Ma1 is generated, the trajectory Tra1 is generated so as to avoid the obstacle 7 arranged in advance, and the sweep (passage) region thereof is added to the obstacle memory 2201 as the obstacle (SVa1). (FIG. 11(b), FIG. 17(b)).

続いて、動作指令Ma2の軌道生成時は、既に障害物登録されているロボットアーム6の終点Gb1(始点Sb2)の位置を回避するように軌道Tra2が生成される(図11の(c))。また、その軌道Tra2によるロボットアーム6の掃引(通過)領域が障害物(SVa2)として障害物メモリ2201に追加される(図17(c))。これにより、実施例2の制御による場合と異なり、後続の動作指令Mb1の軌道が生成不可能となることが防止される。 Then, when the trajectory of the operation command Ma2 is generated, the trajectory Tra2 is generated so as to avoid the position of the end point Gb1 (start point Sb2) of the robot arm 6 that has already been registered as an obstacle ((c) of FIG. 11). .. Further, the sweep (passage) area of the robot arm 6 by the trajectory Tra2 is added to the obstacle memory 2201 as an obstacle (SVa2) (FIG. 17(c)). As a result, unlike the case of the control of the second embodiment, it becomes possible to prevent the trajectory of the subsequent operation command Mb1 from becoming unusable.

さらに、同様にして動作指令Ma3の軌道Tra3がロボットアーム6の終点Gb1(始点Sb2)の位置を回避するように生成されその通過(掃引)領域が障害物(SVa3)として障害物メモリ2201に追加される(図11(d)、図17(d))。 Similarly, the trajectory Tra3 of the operation command Ma3 is generated so as to avoid the position of the end point Gb1 (start point Sb2) of the robot arm 6, and its passage (sweep) area is added to the obstacle memory 2201 as an obstacle (SVa3). (FIG. 11(d), FIG. 17(d)).

また、それに続くロボットアーム6の軌道生成時は、実施例2と同様に、先の手順で追加された通過領域を回避するように軌道生成が行われる。これは通過領域内に他のロボットアームの始点と終点が含まれるためである。従って、ロボットアーム6の軌道生成では、まず動作指令Mb1の軌道Trb1が生成され、その通過(掃引)領域が障害物(SVb1)として障害物メモリ2201に追加される(図11(e)、図17(e))。そして、動作指令Mb2については、軌道Trb2(図11の(f))が生成され、対応する通過領域が障害物(SVb2)障害物メモリ2201に追加される(図17(f))。 Further, when the trajectory of the robot arm 6 is generated subsequently, the trajectory is generated so as to avoid the passage area added in the previous procedure, as in the second embodiment. This is because the start and end points of other robot arms are included in the passage area. Therefore, in the trajectory generation of the robot arm 6, the trajectory Trb1 of the operation command Mb1 is first generated, and the passage (sweep) area thereof is added to the obstacle memory 2201 as the obstacle (SVb1) (FIG. 11(e), FIG. 17(e)). Then, for the operation command Mb2, the trajectory Trb2 ((f) in FIG. 11) is generated, and the corresponding passage area is added to the obstacle (SVb2) obstacle memory 2201 (FIG. 17(f)).

以上により、動作指令Op1として与えられた全動作の軌道生成が完了する。図12は、以上のようにして軌道生成を行った2つのロボットアーム5、6を動作させた時のタイムチャートである。上記の動作指令Op1の場合、本実施例では、動作指令の始点および終点のアーム躯体の姿勢に相当する空間を障害物として予め軌道開始前に登録しているため、図13のステップS340〜S380の分岐が生じていない。このため、図10に示したような同期制御を行う必要がなく、同図に示すように、各ロボットアーム5、6が同時に各々の動作を開始し、他のロボットアームの動作に拘らず与えられた動作の軌道を実行してもアーム同士の干渉を生じない。 By the above, the trajectory generation of all the motions given as the motion command Op1 is completed. FIG. 12 is a time chart when the two robot arms 5 and 6 that have generated trajectories as described above are operated. In the case of the above operation command Op1, in the present embodiment, the spaces corresponding to the postures of the arm body at the start point and the end point of the operation command are registered as obstacles in advance before the start of the trajectory, so steps S340 to S380 in FIG. Has not branched. Therefore, it is not necessary to perform the synchronous control as shown in FIG. 10, and as shown in FIG. 10, the robot arms 5 and 6 start their respective operations at the same time, and the robot arms 5 and 6 give the same regardless of the operations of other robot arms. Interference between the arms does not occur even if the trajectory of the specified movement is executed.

即ち、本実施例3によれば、(いわば確定済みの障害物として)動作指令の始点および終点のアーム躯体の姿勢に相当する空間を、予め(先に)障害物登録してしまい、それを回避するように軌道修正を行う。このため、実施例2で説明した動作指令の分割、障害物データのクリアおよび実環境においてアーム動作を同期的に制御するための同期指令の生成、の各過程を発動させる確率が下がり、アーム同士の干渉のない軌道生成をスムーズに行うことができる。そして実環境で生成した軌道データによりロボットアームを動作させた場合でも、実施例2で示したような同期制御が必要となる確率が下がり、高速にロボットアームを動作させることができる。 That is, according to the third embodiment, the spaces corresponding to the postures of the arm skeletons at the start point and the end point of the motion command (in a sense, as an established obstacle) are registered in advance (in advance) as obstacles, and Correct the trajectory to avoid it. For this reason, the probability of activating each process of dividing the operation command described in the second embodiment, clearing obstacle data, and generating a synchronization command for synchronously controlling the arm operation in the actual environment is lowered, and the arms are not connected to each other. It is possible to smoothly generate a trajectory without interference of. Then, even when the robot arm is operated by the trajectory data generated in the actual environment, the probability that the synchronous control as shown in the second embodiment is required is reduced, and the robot arm can be operated at high speed.

以上に示した実施例中の具体的な構成はあくまでも一例に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれ、当業者は特許請求の範囲内で様々な設計変更を行うことができるのはいうまでもない。 The specific configurations in the above-described embodiments are merely examples, and do not limit the scope of the claims. The technology described in the claims includes various modifications and changes of the specific examples illustrated above, and it is understood that those skilled in the art can make various design changes within the scope of the claims. Not too long.

本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。 The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program. It can also be realized by the processing. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

1…演算処理部、11…軌道生成部、2…入力部、3…記憶部、5…ロボットアーム(A)、6…ロボットアーム(B)、11…キーボード、12…マウス、13…ディスプレイ、51、52、53、61、62、63…関節軸、54、64…エンドエフェクタ、55、56、57、65、66、67…リンク、7…障害物、80、90…待機時間。 DESCRIPTION OF SYMBOLS 1... Arithmetic processing part, 11... Orbit generation part, 2... Input part, 3... Storage part, 5... Robot arm (A), 6... Robot arm (B), 11... Keyboard, 12... Mouse, 13... Display, 51, 52, 53, 61, 62, 63... Joint axis, 54, 64... End effector, 55, 56, 57, 65, 66, 67... Link, 7... Obstacle, 80, 90... Standby time.

Claims (15)

ロボットアームの軌道を生成する制御装置におけるロボット軌道生成方法であって、
前記制御装置が、軌道定義データに基づき第1のロボットアームの躯体が通過する空間であって、第2のロボットアームが通過を回避すべき空間に相当する空間データをメモリに格納する格納行程と、
前記制御装置が、前記空間データに対応する空間を回避しながら、前記第2のロボットアームが動作する軌道を生成する生成行程と、を有し、
前記空間データを生成後に、前記空間データに対応する空間を回避した新たな軌道を生成できない場合には、前記空間データをクリアすることを特徴とするロボット軌道生成方法。
A robot trajectory generation method in a controller for generating a trajectory of a robot arm, comprising:
A storage process in which the control device stores in the memory space data corresponding to a space through which the body of the first robot arm passes based on the trajectory definition data and which the second robot arm should avoid passing; ,
Wherein the controller, while avoiding space corresponding to the space data, have a, a generating step of generating the trajectory second robot arm is operated,
A robot trajectory generation method characterized in that, after generating the spatial data, if a new trajectory that avoids a space corresponding to the spatial data cannot be generated, the spatial data is cleared .
前記生成行程で生成した軌道を前記第2のロボットアームに送信する送信行程を有することを特徴とする請求項1に記載のロボット軌道生成方法。 The robot trajectory generation method according to claim 1 , further comprising a transmission step of transmitting the trajectory generated in the generation step to the second robot arm. 前記空間データに、前記ロボットアームの動作可能領域に配置される障害物に関する情報を含むことを特徴とする請求項1または2に記載のロボット軌道生成方法。 The robot trajectory generation method according to claim 1, wherein the space data includes information about an obstacle arranged in an operable area of the robot arm. 複数のロボットアームの動作順序を設定する設定行程をさらに有することを特徴とする請求項1ないしのいずれか1項に記載のロボット軌道生成方法。 Robot path generation method according to any one of claims 1 to 3, further comprising a setting step for setting an operation sequence of the plurality of robotic arms. 仮想空間上に配置された複数のロボットアームに対応する画像を表示装置に表示する表示行程をさらに有することを特徴とする請求項1ないしのいずれか1項に記載のロボット軌道生成方法。 Robot path generation method according to any one of claims 1 to 4, further comprising a display step for displaying the images corresponding to a plurality of robot arms which are arranged in a virtual space on the display device. 仮想空間上で表示されたロボットアームを操作することにより、前記軌道の始点及び終点を設定可能とする操作行程をさらに有することを特徴とする請求項1ないしのいずれか1項に記載のロボット軌道生成方法。 The robot according to any one of claims 1 to 5 , further comprising an operation stroke that enables a start point and an end point of the trajectory to be set by operating a robot arm displayed in a virtual space. Orbit generation method. 前記制御装置に、請求項1からのいずれか1項に記載の各行程を実行させるロボット軌道生成プログラム。 A robot trajectory generation program for causing the control device to execute each stroke according to any one of claims 1 to 6 . 請求項に記載のロボット軌道生成プログラムを格納したコンピュータ読み取り可能な記録媒体。 A computer-readable recording medium that stores the robot trajectory generation program according to claim 7 . ロボットアームの軌道を生成するロボット軌道生成装置であって、
軌道定義データに基づき第1のロボットアームの躯体が通過する空間であって、第2のロボットアームが通過を回避すべき空間に相当する空間データを格納するメモリと、
前記空間データに対応する空間を回避しながら、前記第2のロボットアームが動作する軌道を生成する生成手段と、を有し、
前記空間データを生成後に、前記空間データに対応する空間を回避した新たな軌道を生成できない場合には、前記空間データをクリアすることを特徴とするロボット軌道生成装置。
A robot trajectory generating device for generating a trajectory of a robot arm,
A memory that stores space data corresponding to a space through which the body of the first robot arm passes based on the trajectory definition data and the second robot arm should avoid passing;
Generating means for generating a trajectory along which the second robot arm operates while avoiding a space corresponding to the space data ,
A robot trajectory generation device characterized by clearing the spatial data when a new trajectory avoiding a space corresponding to the spatial data cannot be generated after the spatial data is generated .
生成した軌道を前記第2のロボットアームに送信する送信手段、を有することを特徴とする請求項に記載のロボット軌道生成装置。 The robot trajectory generation device according to claim 9 , further comprising a transmission unit that transmits the generated trajectory to the second robot arm. 前記空間データには、前記ロボットアームの動作可能領域に配置される障害物に関する情報を含むことを特徴とする請求項9または10に記載のロボット軌道生成装置。 The robot trajectory generation device according to claim 9 or 10 , wherein the space data includes information about an obstacle arranged in an operable area of the robot arm. 複数のロボットアームの動作順序を設定する設定手段をさらに有することを特徴とする請求項9ないし11のいずれか1項に記載のロボット軌道生成装置。 12. The robot trajectory generation device according to claim 9 , further comprising setting means for setting the operation order of the plurality of robot arms. 仮想空間上に配置された複数のロボットアームに対応する画像を表示する表示手段をさらに有することを特徴とする請求項9ないし12のいずれか1項に記載のロボット軌道生成装置。 13. The robot trajectory generation device according to claim 9 , further comprising display means for displaying images corresponding to a plurality of robot arms arranged in a virtual space. 仮想空間上で表示されたロボットアームを操作することにより、前記軌道の始点及び終点を設定可能とする操作手段をさらに有することを特徴とする請求項9ないし13のいずれか1項に記載のロボット軌道生成装置。 The robot according to any one of claims 9 to 13 , further comprising operating means for setting a start point and an end point of the trajectory by operating a robot arm displayed in a virtual space. Orbit generator. 前記制御装置が、請求項1からのいずれか1項に記載のロボット軌道生成方法によって生成した軌道に基づき前記ロボットアームを動作させ、前記ロボットアームによって物品の製造を行うことを特徴とする製造方法。 The manufacturing method according to claim 1, wherein the control device operates the robot arm based on a trajectory generated by the robot trajectory generation method according to any one of claims 1 to 6 , and manufactures an article by the robot arm. Method.
JP2019148152A 2019-08-09 2019-08-09 Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method Active JP6750909B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019148152A JP6750909B2 (en) 2019-08-09 2019-08-09 Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019148152A JP6750909B2 (en) 2019-08-09 2019-08-09 Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016011688A Division JP6576255B2 (en) 2016-01-25 2016-01-25 Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method

Publications (2)

Publication Number Publication Date
JP2019193975A JP2019193975A (en) 2019-11-07
JP6750909B2 true JP6750909B2 (en) 2020-09-02

Family

ID=68469167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019148152A Active JP6750909B2 (en) 2019-08-09 2019-08-09 Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method

Country Status (1)

Country Link
JP (1) JP6750909B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7260405B2 (en) * 2019-06-07 2023-04-18 ファナック株式会社 Offline programming devices, robot controllers and augmented reality systems
JP2022007292A (en) * 2020-06-26 2022-01-13 川崎重工業株式会社 Teaching device for robot and teaching program for robot
JP2022007291A (en) * 2020-06-26 2022-01-13 川崎重工業株式会社 Teaching device for robot and teaching program for robot
CN111958589A (en) * 2020-07-06 2020-11-20 佛山科学技术学院 Multi-mechanical-arm track anti-collision method and system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05119814A (en) * 1991-05-20 1993-05-18 Brother Ind Ltd Non-interference controller for robot arm
JPH0836410A (en) * 1994-07-21 1996-02-06 Nissan Motor Co Ltd Method and device for preventing interfernece between robots

Also Published As

Publication number Publication date
JP2019193975A (en) 2019-11-07

Similar Documents

Publication Publication Date Title
JP6576255B2 (en) Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method
JP6750909B2 (en) Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method
US11458626B2 (en) Trajectory generating method, and trajectory generating apparatus
JP7222803B2 (en) Trajectory planning device, trajectory planning method and program
JP7439206B2 (en) Information processing methods, information processing devices, programs, recording media, production systems, robot systems, article manufacturing methods
US11007646B2 (en) Programming assistance apparatus, robot system, and method for generating program
US20180036882A1 (en) Layout setting method and layout setting apparatus
US20150151431A1 (en) Robot simulator, robot teaching device, and robot teaching method
JP2014161921A (en) Robot simulator, robot teaching device and robot teaching method
CN110856934B (en) Method for planning a movement for lifting a weight using a robotic system
US11975451B2 (en) Simulation-in-the-loop tuning of robot parameters for system modeling and control
JP7210201B2 (en) Information processing method, program, recording medium, information processing device, robot system, article manufacturing method
JPS6179589A (en) Operating device for robot
JP2019089201A (en) Teaching data creation device, method for controlling teaching data creation device, and robot system
JP7475841B2 (en) Information processing method, robot system, article manufacturing method, and information processing device
JP5272447B2 (en) Numerical control machine operation simulator
JP6862849B2 (en) Arithmetic logic units, arithmetic methods, arithmetic programs and robot systems
CN114683288A (en) Robot display and control method and device and electronic equipment
JP7424122B2 (en) Simulation equipment and programs
JP7314215B2 (en) Simulator, robot teaching device, robot system, article manufacturing method, simulation method, program and recording medium
JP7276359B2 (en) Motion command generation device, mechanism control system, computer program, motion command generation method, and mechanism control method
JP7232704B2 (en) ROBOT PROGRAM EVALUATION DEVICE, ROBOT PROGRAM EVALUATION METHOD AND ROBOT PROGRAM EVALUATION PROGRAM
WO2023276149A1 (en) Optimization assistance device
JP7081284B2 (en) Arithmetic logic unit, operational method, and arithmetic program
JP2023084182A (en) Information processor, system, information processing method, article manufacturing method, program, and recording medium

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190822

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190822

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200618

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200714

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200807

R151 Written notification of patent or utility model registration

Ref document number: 6750909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151