JP2019193975A - Robot track generation method, robot track generation device, and manufacturing method - Google Patents

Robot track generation method, robot track generation device, and manufacturing method Download PDF

Info

Publication number
JP2019193975A
JP2019193975A JP2019148152A JP2019148152A JP2019193975A JP 2019193975 A JP2019193975 A JP 2019193975A JP 2019148152 A JP2019148152 A JP 2019148152A JP 2019148152 A JP2019148152 A JP 2019148152A JP 2019193975 A JP2019193975 A JP 2019193975A
Authority
JP
Japan
Prior art keywords
trajectory
robot
robot arm
obstacle
space
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.)
Granted
Application number
JP2019148152A
Other languages
Japanese (ja)
Other versions
JP6750909B2 (en
Inventor
泰晴 前田
Yasuharu Maeda
泰晴 前田
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)

Abstract

To generate robot tracks such that, when operating a plurality of robot arms in an actual environment, the risk of crossing each other is markedly reduced in a passage area of the robot arms.SOLUTION: An operation command list including a start point and an end point of a track of a plurality of robot arms is generated (a track definition data generation step: S200). A sequence of generating each of the tracks is determined on the basis of the operation command list (a generation sequence determination step: S210). Relating to a specific robot arm in the operation command list, a track is generated so as to avoid obstacle spaces registered in an obstacle memory when generating tracks of other robot arms, on the basis of the start point and the end point (a track generation step: S230). When the robot arm is operated on the generated track, a sweeping space to be swept by a skeleton of the arm is added to the obstacle memory as an obstacle space that should be avoided by other robot arms (obstacle registration steps; S240 and S250).SELECTED DRAWING: Figure 5

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 that are arranged and operated in a common work area by a control device.

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

ロボット動作の教示には、ティーチングペンダントなどと呼ばれる操作装置で、実際の作業環境中でロボット装置を動かして確認しつつ、ロボットアームの位置、姿勢を変化させるロボット軌道を入力する作業が行われることがある。また、ロボット制御端末の表示装置でロボット装置の作業領域の3D仮想表示を行い、この仮想環境中でロボット装置を動作させつつ軌道入力を行うロボットプログラミング方式が用いられることもある。このような仮想環境を利用したロボット教示では、仮想環境中のロボット装置の制御、ティーチングペンダントに替えて、キーボード、ポインティングデバイス、タッチパネルなどの入力手段が教示点の入力に用いられる。   To teach robot motion, 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 checking the robot device by moving it in the actual work environment. There is. Also, a robot programming method may be used in which a 3D virtual display of the work area of the robot apparatus is performed on the display device of the robot control terminal, and trajectory input is performed while operating the robot apparatus 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 are used for inputting teaching points, instead of controlling the robot apparatus in the virtual environment and teaching pendant.

上記のような教示者の手動操作過程を含む従来のロボット教示(プログラミング)では、教示者がロボットの通過する経路や軌道、各ロボットを動作させるタイミングを考え、ロボット間で干渉し合わないように試行錯誤的に教示作業を行う必要がある。従って、このような教示者の手動操作の比重が大きい従来方式ではロボットの台数や作業の総数が増加するほど、ロボット同士の干渉のない軌道を確保することが難しく、また、教示作業に多大な時間がかかるという問題がある。当然ながら、生産ライン内の周辺の設備やロボットの配置に変更が生じた場合には、同様の教示作業を再度行わなければならない。   In the conventional robot teaching (programming) including the manual operation process of the instructor as described above, the instructor considers the path and trajectory through which the robot passes, and the timing for 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 the conventional method in which the specific gravity of the manual operation of the teacher is large, as the number of robots and the total number of operations increase, it is difficult to secure a trajectory without interference between the robots, There is a problem that it takes time. Of course, if 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, a technique for automatically generating a path (orbit) in which a robot does not cause interference has been studied. As such route generation methods, for example, route generation algorithms such as RRT (Rapidly Exploring Random Tree) and PRM (Probabilistic LoadMap Method) have been proposed. By using such a trajectory / path generation technique, the teacher only needs to specify the start point and end point of the robot operation, so the burden of teaching work can be reduced. In addition, since route generation can be performed by computer computation in a virtual space that simulates the work environment, a route that does not cause interference in a short amount of time even if changes in the arrangement of peripheral equipment and robots in the production line occur. Can be recalculated.

また、1台のロボットについて、作業環境中の障害物と干渉を起こさない経路を生成するのみならず、作業環境中に位置姿勢が刻々と変化する複数台のロボットが存在する場合に、各ロボット間で干渉を起こさないロボット軌道を生成する技術も提案されている。   Each robot not only generates a path that does not interfere with obstacles in the work environment, but also includes a plurality of robots whose position and orientation changes every moment in the work environment. A technique for generating a robot trajectory that does not cause interference between the two has also been proposed.

例えば、下記の特許文献1では、ロボットの動作を開始するタイミングを調整することでロボット間の干渉を回避している。特許文献1の複数台ロボットの干渉回避方法では、各ロボットの動作の優先順位を設定し、各ロボットの所定時間内の動作によるロボットの通過予定領域、またはそれを含む拡大領域である占有領域を順次演算する。そして演算された占有領域間での重なりの有無を判定し、重なりが有る場合には、上記優先順位の低い一方のロボットを待機させると共に、優先順位の高い他方のロボットを動作させる。また、他方のロボットの占有領域は、該他方のロボットの動作中に既に動作が終った部分について順次解除される。そして上記他方のロボットの占有領域の変化に基づいて、重なりが無くなって以降、一方のロボットの動作を開始する。   For example, in Patent Document 1 below, interference between robots is avoided by adjusting the timing of starting the robot operation. In the interference avoidance method for a plurality of robots disclosed in Patent Document 1, the priority order of the operation of each robot is set, and the planned passing region of the robot by the operation of each robot within a predetermined time, or an occupied region that is an enlarged region including the region 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, the one robot with the lower priority is made to stand by and the other robot with the higher priority is operated. In addition, the occupied area of the other robot is sequentially released for portions that have already been operated 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の軌道生成では、各ロボットの始点から終点までの経路を他のロボットが存在しないとみなして計算し、次に各ロボットの経路上の位置をパラメータとしたグラフを生成する。そして、生成したグラフ上で干渉のない各ロボットの経路上の位置の組み合わせを探索し、最初に求めた経路と、各ロボットの経路上の位置の組み合わせを結合し、速度を調整しながら動作する互いに干渉し合わない軌道を得ている。   In the following Non-Patent Document 1, interference between robots is avoided by adjusting the speed at the time of robot operation. In the trajectory generation of Non-Patent Document 1, the path from the start point to the end point of each robot is calculated assuming that no other robot exists, and then a graph is generated using the position of each robot on the path as a parameter. Then, on the generated graph, a search is made for a combination of positions on the path of each robot that does not interfere, and the combination of the first obtained path and the position on the path of each robot is combined to operate while adjusting the speed. We have obtained trajectories 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 path and trajectory of each robot, the trajectory without interference between the robots can be controlled and adjusted synchronously with the timing of operating each robot and the speed of each robot's operation. Is generated.

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

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

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

上記課題を解決するため、本発明においては、制御装置によって、近接して配置されている複数のロボットアームを動作させる軌道を生成するロボット軌道生成方法において、前記制御装置が、前記ロボットアームが通過を回避すべき空間としての第1空間データをメモリに格納する格納行程と、前記制御装置が、始点および終点を含む軌道定義データに基づき、前記第1空間データに対応する空間を回避しながら第1のロボットアームが動作する軌道を生成する第1生成行程と、前記第1生成行程で生成した軌道に基づき、前記第1のロボットアームの躯体が通過する空間を、第2のロボットアームが通過を回避すべき空間としての第2空間データを生成する第2生成行程と、始点および終点を含む軌道定義データに基づき、前記第1空間データ及び前記第2空間データに対応する空間を回避しながら、前記第2のロボットアームが動作する軌道を生成する第3生成行程と、を有する構成を採用した。   In order to solve the above problems, in the present invention, in a robot trajectory generation method for generating a trajectory for operating a plurality of robot arms arranged close to each other by a control device, the control device passes the robot arm. The storage process for storing the first spatial data as a space to avoid in the memory, and the control device avoids the space corresponding to the first spatial data based on the trajectory definition data including the start point and the end point. Based on the first generation process for generating a trajectory in which one robot arm operates and the trajectory generated in the first generation process, the second robot arm passes through the space through which the housing of the first robot arm passes. Based on trajectory definition data including a second generation process for generating second spatial data as a space to avoid and a start point and an end point. While avoiding space corresponding to the over data and the second space data, said second robot arm is adopted a construction having a third generation step of generating a trajectory to operate.

上記構成によれば、ロボット軌道の生成において、実環境のロボットアームの動作速度やタイミング制御の精度に拘らず確実に複数台のロボットアームの通過領域が互いに交差する可能性を著しく低下させることができる。また、上記構成によれば、ロボットアームの障害物回避に時間軸に係る演算や制御を利用しないため、低速な制御装置を用いる場合でも高速な軌道生成が可能である。   According to the above configuration, in the generation of the robot trajectory, it is possible to significantly reduce the possibility that the passing areas of the plurality of robot arms intersect each other regardless of the operation speed of the robot arm in the actual 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 obstacle avoidance 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 track | orbit production | generation system which can implement this invention. 実施例1に係る軌道生成装置の制御系の構成を示したブロック図である。FIG. 3 is a block diagram illustrating a configuration of a control system of the trajectory generation device according to the first embodiment. 実施例1〜3の軌道生成制御の流れの概略を示したフローチャート図である。It is the flowchart figure which showed the outline of the flow of the track | orbit production | generation control of Examples 1-3. 実施例1に係る2つのロボットアームを示した説明図である。FIG. 3 is an explanatory diagram illustrating two robot arms according to the first embodiment. 実施例1に係る軌道生成制御の流れを示したフローチャート図である。FIG. 3 is a flowchart illustrating a flow of trajectory generation control according to the first embodiment. (a)〜(c)は実施例1に係る2つのロボットアームの軌道とその通過領域を示した説明図である。(A)-(c) is explanatory drawing which showed the track | orbit of two robot arms which concern on Example 1, and its passage area | region. 実施例2に係るに係る軌道生成制御の流れを示したフローチャート図である。FIG. 10 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 track | orbit of two robot arms which concern on Example 2, and its passage area | region. (a)〜(d)は実施例2に係る2つのロボットアームの軌道とその通過領域を示した説明図である。(A)-(d) is explanatory drawing which showed the track | orbit of two robot arms which concern on Example 2, and its passage area | region. 実施例2に係る2つのロボットアーム動作のタイミングを示す図である。FIG. 10 is a diagram illustrating timings of two robot arm operations according to the second embodiment. (a)〜(f)は実施例3に係る2つのロボットアームの軌道とその通過領域を示した説明図である。(A)-(f) is explanatory drawing which showed the track | orbit of two robot arms which concern on Example 3, and its passage area | region. 実施例3に係る2つのロボットアーム動作のタイミングを示す図である。FIG. 10 is a diagram illustrating timings of two robot arm operations according to the third embodiment. 実施例3に係る軌道生成制御の流れを示したフローチャート図である。FIG. 10 is a flowchart illustrating a flow of trajectory generation control according to the third embodiment. 図1のロボット軌道生成システムにおいて実施可能な動作指令入力のためのユーザーインターフェースの説明図である。It is explanatory drawing of the user interface for the operation command input which can be implemented in the robot track 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. FIG. (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 the flowchart figure which showed the example of control of the principal part of the trajectory generation control which concerns on Examples 1-3.

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

なお、本明細書でいう「ロボット」とは、モータ等の動力源によって動作し、制御されるものであればその構成はどのようなものであってもよく、その基本構成によって本発明は限定されるものではない。以下の実施例では、回転関節を有する垂直シリアルリンク型の多関節ロボットアームを例に本発明に係るロボットの軌道生成方法および軌道生成装置につき説明する。しかしながら、例えば、パラレルリンク側の多関節ロボットや、平面上を移動するロボットなどを複数、作業環境に配置してその軌道生成を行う場合などにおいても、本発明は実施できる。   The “robot” referred to in this 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 the basic configuration. Is not to be done. In the following embodiments, a robot trajectory generation method and a trajectory generation apparatus according to the present invention will be described taking a vertical serial link type multi-joint robot arm having a rotating joint as an example. However, the present invention can also be implemented when, for example, a plurality of articulated robots on the parallel link side or a plurality of robots moving on a plane are arranged in the work environment to generate the trajectory.

<実施例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 Embodiment 1 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). The arithmetic processing unit 1 is connected with a keyboard 11 and a mouse 12 (or a pointing device such as a track pad) as an input unit 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 the operator and a robot trajectory generated based on the operation command.

演算処理部1には、外部記憶装置14と、ネットワークインターフェース31などを接続することができる。図1の外部記憶装置14は、主に外付けのHDDやSSDのようなディスク装置、あるいは各種の光ディスク装置などから構成される。ネットワークインターフェース31は、実機のロボットアームに対して動作指令データなどを転送するために用いられる。   An external storage device 14 and a network interface 31 can be connected to the arithmetic processing unit 1. The external storage device 14 in FIG. 1 is mainly composed of a disk device such as an external HDD or SSD, or various optical disk devices. The network interface 31 is used to transfer operation command data and the like to the 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 installation / updating unit for installing a robot trajectory generation program described later in the arithmetic processing unit 1 or updating the installed program. In this case, for example, the external storage device 14 can be constituted by an optical disk device or the like that can exchange media. A control program for carrying out the present invention can be installed in the arithmetic processing unit 1 via the optical disk and can be updated. Similarly, a control program for carrying out the present invention can be installed in the arithmetic processing unit 1 by using a predetermined network protocol via the network interface 31 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, trajectories are generated for a plurality (in this case, two) of robot arms 5 and 6 arranged in the same work environment. In the work environment of the robot arms 5 and 6, there may be an obstacle 7 that should avoid interference and collision with the robot arms 5 and 6. The obstacle 7 is an object other than the robot arms 5 and 6 such as another component supply device, a ventilation duct, or the casing 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 an operation command for the robot arms 5 and 6 via the user interface displayed on the display 13 using the keyboard 11 and the mouse 12 (orbits). 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 based on the following 3D virtual display. In the operation command input of the present embodiment, the worker inputs trajectory definition data including, for example, the start point and end point (three-dimensional coordinates) of the trajectory to be generated.

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

なお、図1のロボット軌道生成装置は、軌道生成の対象となる実機のロボットアームと接続されていてもよく、また、ロボットアームとの接続の無いオフライン環境においてもロボット軌道を生成することができるよう構成される。オフライン環境のロボット軌道生成では、ディスプレイ13にプログラム対象であるロボットアーム5、6の3D仮想表示を行う。このような3D仮想表示GUIは、キーボード11、マウス12などを用いて、ディスプレイ13上に仮想表示されたアームやその関節を操作できるよう構成することができる。   Note that the robot trajectory generation apparatus 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 without connection to the robot arm. It is configured as follows. In the robot trajectory generation in the offline environment, 3D virtual display of the robot arms 5 and 6 to be programmed is performed on the display 13. Such a 3D virtual display GUI can be configured such that an arm or a joint thereof virtually displayed on the display 13 can be operated using the keyboard 11, the mouse 12, or the like.

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

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

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

後述の軌道生成プログラムは、例えば上記の演算処理部1で動作するOS上で実行することができる。このOS(オペレーティングシステム)の構成によっては、HDD23などの記憶領域を利用した仮想記憶部を利用することができる。その場合、後述の障害物メモリのような領域は、RAMのような主記憶デバイスのみならず、このような(HDD23などによる)仮想記憶部上に確保される可能性がある。   A trajectory generation program to be described later can be executed on, for example, an OS that operates on the arithmetic processing unit 1 described above. Depending on the configuration of the OS (operating system), a virtual storage unit using a storage area such as the HDD 23 can be used. In that case, an area such as an obstacle memory 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 robot arms 5 and 6 that are trajectory generation targets of the present embodiment and an obstacle 7. Here, for ease of explanation, 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 the 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, and 57 and joint shafts 51, 52, and 53 that connect them, and an end effector 54 such as a robot hand is provided at the tip of the link 57. . The robot arm 6 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 positions of the end effectors 54 and 64 positioned at the tips of the robot arms 5 and 6 are determined by the rotation angle.

各ロボットアーム5、6の関節軸の回転駆動機構は、不図示のサーボモータや減速機などの駆動系を備え、ロボット制御データに基づく回転角度に制御できるものとする。例えばロボットハンドのようなエンドエフェクタ54、64についても、同様のサーボモータや減速機などの駆動系を介してフィンガの開度のような制御条件を制御することができる。このような構成によって、各ロボットアーム5、6にロボット制御データを送信することにより、各アームを特定の位置姿勢に制御し、またエンドエフェクタ54、64で特定の操作を行わせることができる。なお、以上ではサーボモータのような駆動源を例示したが、関節やエンドエフェクタは必ずしも電気的に駆動制御されるものである必要はない。例えば、ロボットアーム5、6の関節やエンドエフェクタは、ロボット制御データによって制御される空気圧、油圧アクチュエータの空気圧や油圧によって駆動されるものであってよい。   The rotation drive mechanism for the joint shafts of the robot arms 5 and 6 includes a drive system such as a servo motor (not shown) or a speed reducer, and can control the rotation angle based on the robot control data. For example, the end effectors 54 and 64 such as a robot hand can control the control conditions such as the opening degree of the finger via a drive system such as a similar servo motor or speed reducer. With such a configuration, by transmitting robot control data to the robot arms 5 and 6, each arm can be controlled to a specific position and orientation, and a specific operation can be performed by the end effectors 54 and 64. In addition, although the drive source like a servomotor was illustrated above, the joint and the end effector do not necessarily need to be electrically driven and controlled. For example, the joints and end effectors of the robot arms 5 and 6 may be driven by air pressure controlled by robot control data, air 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 an obstacle 7 exists in the work environment. For this reason, depending on the angles of the joint axes of the two robot arms, there is a possibility that interference occurs between the links, joint axes, and end effectors of the robot arms. In the trajectory generation control described later, the robot trajectory is generated so that the robot arms 5 and 6 do not interfere with each other. In that case, of course, the 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, referring to FIG. 3, FIG. 5, FIG. 6, FIG. 14, and FIG. 15, the robot trajectory generation according to the present embodiment, particularly the method for generating the robot trajectory so that the passing areas of a plurality of robots do not cross each other. 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 format shown in FIG. 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 in FIG. 3, the operator inputs an operation command for the robot arms 5 and 6 through the user interface displayed on the display 13 using the keyboard 11 and the mouse 12. For example, a dialog 131 as shown in FIG. 14 is displayed on the display 13, and the operator is made to input an operation command via this dialog.

図14のダイアログ131の上部には、例えばタイトル表示(この例では「動作指令の入力」)を含むタイトルバー1311を表示する。ダイアログ131は、ロボットアーム5(A)のための入力を行うセクション1315とロボットアーム6(B)のための入力を行うセクション1316に分割されている。   For example, a title bar 1311 including a title display (in this example, “input of operation command”) is displayed at the top of the dialog 131 in FIG. The dialog 131 is divided into a section 1315 for input for the robot arm 5 (A) and a section 1316 for input 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 section 1315 and 1316 is an input unit in which each row corresponds to one record corresponding to one operation command, and is divided into input fields 1321 to 1324, for example. The field 1321 is a field for the name of the operation command. In this field, the name of an arbitrary operation command may be input to the worker, and the name of the operation command is automatically and sequentially generated by the CPU 20. May be. In this example, operation commands Ma1, Ma2, and Ma3 are input on the robot arm 5 (A) side, and operation commands Mb1 and Mb2 are input on the robot arm 5 (B) side.

本実施例では、これら動作指令は軌道定義データとして、動作指令に対応する軌道の始点、および終点のデータを入力する。これら始点、および終点は、ロボットアーム5、6の先端、例えばエンドエフェクタ54、64の基部周辺などの位置に設定される各アームの基準部位を移動させる3次元(XYZ)座標である。   In the present embodiment, these motion commands are input as trajectory definition data, the trajectory start point and end point data corresponding to the motion command. The start point and the end point are three-dimensional (XYZ) coordinates for moving the reference portion of each arm set at a position such as the tip of the robot arm 5 or 6, for example, the vicinity of the base of the end effector 54 or 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 start point and end point of these trajectories are input in fields 1322 and 1323, respectively. In FIG. 14, Sa1 and Ga1, Sa2 and Ga2, and Sa3 and Ga3 are input as start point and end point data corresponding to the operation commands Ma1, Ma2, and Ma3 of the robot arm 5 (a). In addition, 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, in each field of the start point and end point data, the character string representations such as Sa1, Ga1,... Are illustrated, but actually, numerical data representations such as three-dimensional coordinate data are used. Can do. In this 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 during virtual display. For example, the worker points the space in the virtual display on the display 13 with the mouse 12 and inputs the coordinates of the reference portion of the desired arm. Alternatively, the robot arms 5 and 6 displayed on the display 13 are operated with the mouse 12 and the like, and the position and posture corresponding to the coordinates of the reference part of the desired arm are taken, and the reference part 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 is 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のような動作指令の前後関係を関係付け可能な入力手段を配置することにより、作業者は、入力済みの動作指令の前後を交換するような操作を行える。   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 preceding operation can be designated. The field 1324 is used to specify an operation command (for example, referred to by the name of the field 1321) immediately before the operation command. By providing the 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 relations before and after each operation command are related. As shown in FIG. 14, in the user interface, by arranging an input unit that can relate the order of operation commands such as the field 1324, the operator can perform an operation for exchanging before and after the input operation commands. 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 in the main memory or virtual memory managed by the CPU 20 as an operation command list. Accordingly, FIG. 14 may be considered as a screen display of the user interface, but 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 in the main memory or 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 field 1324 described above. It is attached.

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

図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, 6 (A, B) using, for example, the user interface as described above. In response to this, the CPU 20 generates a 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 for determining the order of motion trajectory generation is performed. As this priority, for example, the priority of each robot arm, which one of the robot arms 5 and 6 (A, B) is given priority, can be considered. Moreover, the priority of generating in order from which trajectory definition data of the operation commands Ma1, Ma2, Ma3..., Mb1, Mb2. In this way, by making several priority settings (different units) possible, it is possible to obtain a suitable control result according to the characteristics of the operation that the robot arms 5 and 6 (A, B) want to execute. Becomes higher. A control example related to the priority in units of the robot arm or 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 based on the start point and end point data as one trajectory definition data in the motion command list in the order according to the priority determined in step S101. ) Is generated. In this case, as will be described later, the CPU 20 calculates a trajectory from the start point to the end point so as to avoid the obstacle (the space) registered in the obstacle memory. For the calculation of the trajectory from the start point to the end point, a known trajectory generation algorithm such as RRT or RPM described above 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, a space in which the robot arm's housing is swept (passed) is transferred to another robot arm. Is registered in the obstacle memory as an obstacle that cannot enter. Actually, steps S102 and S103 in FIG. 3 are processed step by step by a loop as shown in FIG. Thereby, a trajectory is generated based on all trajectory definition data (start point, end point data) in the operation command list.

図4、図6の例では、各ロボットアーム5(A)、ないし6(B)の図示の平面内に係る動きしか図示していない。しかし、実際にロボットアームを3次元の作業領域で動作させた場合には、そのロボットアームの躯体が姿勢を変化させつつ掃引(通過)する空間は、特定の形状および体積を有する空間となる。このようなロボットアームの躯体が掃引(通過)する空間は、掃引容積(Sweep(Swept) Volume)などと呼ばれることがある。そこで、図6(a)〜(c)の例では、ロボットアームがある軌道で動作した場合にその躯体が掃引(通過)する空間をSVaのような参照符号によって示している。   In the example of FIGS. 4 and 6, only the movement of each robot arm 5 (A) to 6 (B) in the illustrated plane is shown. However, when the robot arm is actually operated in a three-dimensional work area, a space in which the housing of the robot arm sweeps (passes) while changing its posture is a space having a specific shape and volume. Such a space in which the robot arm's housing is swept (passed) may be called a sweep volume (Sweep (Swept) Volume). Therefore, in the examples of FIGS. 6A to 6C, a space in which the housing is swept (passed) when the robot arm moves in a certain path 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 the state of trajectory generation 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 motion command Ma is (Sa, Ga), and the (start point, end point) of the trajectory corresponding to the motion command Mb is (Sb, Gb), as shown in FIG. Is arranged. 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 generated first according to the set priority. Here, the trajectory Tra of the robot arm 5 (A) is generated in a shape as illustrated in order to avoid the obstacle 7 that is already registered in the obstacle memory. The sweep area in which the housing of the robot arm 5 (A) is swept by the robot movement of the generated trajectory is SVa. The space of SVa is a space having a shape and (volume) corresponding to the shape and posture 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 a trajectory of one robot arm is generated, the sweep space SV is registered in an 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 of 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 on the main memory managed by the CPU 20 such as the RAM 22, and generally includes two fields 2203 and 2204. In FIG. 15, the reference numeral “22” corresponding to the RAM 22 is used for the entire storage area as the storage destination of the obstacle memory 2201. However, this is merely for convenience, and the obstacle memory 2201 is secured on 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 previous operation command list. It's okay. This also applies to FIGS. 16 and 17 described later.

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

フィールド2204の形状データの形式は任意である。たとえば作業空間を単位ヴォクセル(Voxel)の集合として考える。その場合、障害物メモリ2201に格納する障害物の形状データは、例えば単純な例では障害物の占めるヴォクセル(Voxel)の座標データへのポインタリストなどとすることが考えられる。また、参照利用の容易なデータ形式としては、作業空間に対応するヴォクセル空間に3次元ヴォクセルデータテーブル(不図示)を主記憶ないし仮想記憶上に確保してもよい。そして、このヴォクセルデータテーブル中の障害物の占めているヴォクセルに対応するメモリセルに障害物フラグ(あるいはさらに、躯体掃引によってその障害物を生成したロボットの識別データ)を配置する。ヴォクセルデータテーブルを併用することによって、作業空間中の特定の座標が障害物の領域に含まれているか、といった参照を容易に行える障害物メモリを実現することができる。   The format of the shape data in the field 2204 is arbitrary. For example, a work space is considered as a set of unit voxels. In this case, the obstacle shape data stored in the obstacle memory 2201 may be, for example, a pointer list to the coordinate data of the voxel (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 the voxel data table. By using the voxel data table in combination, 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 area of the obstacle.

図6、図15の場合、まず、障害物7を回避するように図6(b)のようにロボットアーム5(A)の軌道Traが生成される。この処理に先立ち、障害物7の形状データは、図15(a)のように既にフィールド2203、2204に登録済みである。   6 and 15, first, a 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, it is assumed that the identification of the robot that generated the obstacle by the corresponding body sweeping can be identified by referring to the identification data in the field 2203 (name such as SVa in the example in the figure).

続いて、ロボットアーム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を生成する。   Subsequently, 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, an obstacle corresponding to the sweep space (SVa) of the robot arm 5 (A) is already registered in the obstacle memory 2201 (FIG. 15B). 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). A trajectory Trb is generated.

このロボットアーム6(B)の軌道Trbの生成によって、ロボットアーム6(B)の躯体が掃引する空間(SVb)は、上記同様に障害物メモリ2201に追加登録される。図15(c)は、軌道Trbに対応するロボットアーム6(B)の掃引空間(SVb)が追加登録された直後の障害物メモリ2201の状態を示している。   As a result of the generation of the trajectory Trb of the robot arm 6 (B), the space (SVb) swept by the housing of the robot arm 6 (B) is additionally registered in the obstacle memory 2201 as described above. FIG. 15C shows the 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, with the trajectory generation and obstacle memory management 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 work environment A trajectory that does not interfere with the obstacle 7 inside can be generated.

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

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

図5は、ロボットの通過領域が互いに交差しない軌道を生成する本実施例の制御手順の一例を示す。図3で説明した通り、制御手順全体の流れは、まず、動作指令の入力および動作指令リストの生成(S101)、優先度設定(S102)から始まる。その後、軌道生成(S103)、および障害物追加(S104)が行われる。図5はこの制御手順のより詳細な構成の一例を示している。   FIG. 5 shows an example of a control procedure of this embodiment for generating a trajectory in which the passing 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 input of an operation command, generation of an operation command list (S101), and priority setting (S102). Thereafter, 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 start points and end points of trajectories of a plurality of robot arms is generated (trajectory definition data generation process: 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 operation command list, a trajectory is generated based on the start point and the end point so as to avoid the obstacle space registered for the trajectory generation of other robot arms in the obstacle memory (trajectory generation process: S230). ). When the robot arm is operated in the generation trajectory, the sweep space swept by the casing of the arm is added to the obstacle memory as an obstacle space to be avoided by another robot arm (obstacle registration process: S240, S250).

図5において、図3の動作指令の入力および動作指令リストの生成(S101)はステップS200に、また、優先度設定(S102)はステップS210に相当する。ステップS220は、ステップS230〜S250のループの初期化処理に相当する。また、図3の軌道生成(S103)はステップS230に、障害物追加(S104)はステップS250に相当する。ステップS260は、ステップS230〜S250の各処理を動作指令リストに含まれる軌道定義データ(始点、終点)につき実行させるための制御ステップである。   5, the input of the operation command and the generation of the operation command list (S101) in FIG. 3 correspond to step S200, and the priority setting (S102) corresponds to step S210. Step S220 corresponds to the loop initialization process of steps S230 to S250. Further, the trajectory generation (S103) in FIG. 3 corresponds to step S230, and the obstacle addition (S104) corresponds to step S250. Step S260 is a control step for causing each process of steps S230 to S250 to be executed 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, an operator (teacher) inputs an operation command for generating a trajectory for all the robot arms via the user interface described with reference to 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). Further, for the robot arm 6, it is assumed that one operation command Mb1 is given as the trajectory definition data operation command Op1 of the start point and end point (Sb, Gb).

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

また、動作(M)は、ロボットアーム(5、6)のエンドエフェクタ(54、64)の基部などに相当する基準部位の始点と終点の座標の組合せを含む軌道定義データによって定義される。   Further, the motion (M) is defined by trajectory definition data including a combination of the coordinates of the start point and end point of the reference portion 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) as in the articulated robot, a combination of angles of the joints is designated as a start point and 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}
Each operation (Ma1, Mb1) consists of Ma1 = (Sa, Ga), Mb1 = (Sb, Gb)
Consists of.

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

優先度の制御例については、後で詳細に説明するが、ここではロボットアーム5(A)の方がロボットアーム6(B)よりも動作の優先度が作業者によって高く設定されたものとする。実際、各ロボットアームに実行させる動作の重要度に差があるようなケースは稀ではないと考えられ、このようなロボットアーム単位の優先度設定をユーザ(作業者)が行えるようにしておくことで、より現実的な軌道生成が可能になる。   An example of priority control will be described later in detail. Here, it is assumed that the robot arm 5 (A) has a higher priority of operation than the robot arm 6 (B). . In fact, it is not rare that there is a difference in the importance of the actions to be executed by each robot arm, so that the priority setting for each robot arm can be performed by the user (operator). Thus, 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 priority of motion than the robot arm 6 (B), the robot arm 5 generates the trajectory first, and the robot arm 6 The operation command Mb1 is controlled to generate a trajectory later. In addition, since trajectory generation and obstacle registration according to the present embodiment do not perform control related to the time axis, the operation (M) in the operation command list is shuffled with a specific priority regardless of the input order, for example. Orbit generation (and obstacle registration) may be performed. The processing in step S210 is realized by processing such as securing a table memory storing the generation order and storing pointer data indicating 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 process, and i is incremented and referred to as 0, 1, 2,... Therefore, in step S220 in FIG. 5, the order is initialized to i = 0 for the pointer (or counter) i.

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

ステップS230では、ロボットの1動作分の軌道生成を行う。このステップS230は、例えば経路計画行程、経路短縮行程、軌道計算行程のような3ステップで実行できる。   In step S230, a trajectory is generated for one operation of the robot. 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がランダム探索により自動で計算する方式を用いることができる。   Among these, in the route planning process, a route that avoids an obstacle from the start point to the end point is obtained. In order to obtain the route, a method in which the CPU 20 automatically calculates by a random search by various known methods such as RRT and PRM described above can be used.

次に、経路短縮行程で、経路計画行程により生成された経路の修正を行うことができる。経路計画行程でランダム探索を用いた方法を選択した場合、生成される経路が回り道をしていたり、角度変化が急になっていたりするため、経路の修正を行う必要がある。この経路短縮行程で、経路の短縮も、経路中の点同士で干渉なく結べる点を探す方法や、スプライン曲線で近似することにより経路を滑らかにする方法など多くの方法が考えられるが、ここではどのような方法を用いてもよい。   Next, in the route shortening process, the route generated by the route planning process can be corrected. When a method using a random search is selected in the route planning process, it is necessary to correct the route because the generated route has a detour or a sharp change in angle. In this route shortening process, there are many ways to shorten the route, such as searching for points that can be connected 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, processing is performed to check whether there is interference between the robot arms (5, 6) and the obstacle (7) in the 3D virtual space. 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 there is an interference state between the robot arms (5, 6) or the obstacle (7) by determining whether a set of voxels (polygons) is in geometric contact.

なお、障害物メモリ2201には、軌道生成に伴なうアームの通過(掃引)領域が障害物データ(SV)として格納されるが、一般には(当然ながら)、自身のアームの通過(掃引)によって生成された障害物データ(SV)は回避しなくてもよい。例えば、上記構成におけるロボットアーム5(A)の動作(Ma)の軌道(経路)生成においては、ロボットアーム5(B)の動作(Mb)によって通過(掃引)によって生成された障害物(SVb)を回避する。しかしながら、ロボットアーム5(A)の動作(Ma)の軌道(経路)生成においては、ロボットアーム5(A)の動作(Ma)によって通過(掃引)によって生成された障害物(SVa)は回避する必要はない。   The obstacle memory 2201 stores the passage (sweep) area of the arm accompanying the trajectory generation as obstacle data (SV), but generally (of course) the passage (sweep) of its own arm. It is not necessary to avoid the obstacle data (SV) generated by. For example, in the generation of the trajectory (path) of the operation (Ma) of the robot arm 5 (A) in the above configuration, the obstacle (SVb) generated by passing (sweep) by the operation (Mb) of the robot arm 5 (B). To avoid. However, in the generation of the trajectory (path) of the operation (Ma) of the robot arm 5 (A), the obstacle (SVa) generated by the passage (sweep) by the operation (Ma) of the robot arm 5 (A) is avoided. There is 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) so that the path (trajectory) generated by the above path planning / path shortening process can be operated in the shortest time. And so on. However, in this trajectory calculation process, the rotational speed and acceleration of each joint are calculated within a range that does not exceed the constraint conditions held in the storage unit 3. However, the trajectory calculation of this embodiment uses the most fail-safe obstacle avoidance condition, so there is no need to consider synchronization between robot arms, and a trajectory that can be operated in the shortest time by a single robot can be calculated. It ’s fine.

なお、この軌道計算行程によって生成された軌道データ群(ロボットアームの制御データ)は、主記憶ないし仮想記憶上、あるいはHDD23などに確保された不図示の軌道データの記憶領域に格納する。   The trajectory data group (robot arm control data) generated by this trajectory calculation process is stored in main memory or virtual storage, or in a trajectory data storage area (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 robot arm housing (link or joint axis) passes (sweep) when operated in the trajectory obtained in step is calculated. Geometry data such as the shape and dimensions of each robot arm (5, 6) is prepared in advance in the HDD 23, ROM 21, etc., and based on this geometry, the CPU 20 calculates the above passing (sweep) area (space). can do. In the actual calculation, a known method for generating a sweep volume for obtaining a region through which various moving objects have passed, a method for approximating the passage region to 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 interference confirmation processing. The geometry data such as the shape and dimensions of the robot arms (5, 6) can also be used to control 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 for the robot arm 5, the housing passes from the start point Sa to the end point Ga by the calculation of the passing (sweep) region by the CPU 20 described above. A passing (sweep) region (SVa) in the figure is generated.

そして、ステップS250で、ステップS230の軌道生成に基づき生成された通過(掃引)領域(SV)を障害物メモリ2201に登録する。障害物メモリ2201に登録された障害物は領域を仮想空間上の新たな障害物として追加され、続くロボットアーム(6)の軌道生成では、障害物メモリ2201中の全部の障害物データ回避するように軌道計算が行われる。   In step S250, the passage (sweep) region (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 as a new obstacle in the virtual space, and in the subsequent generation of the trajectory of the robot arm (6), all obstacle data in the obstacle memory 2201 is avoided. Orbital 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 generation of the trajectory of the motion command Ma1 of the robot arm 5 and the addition of the obstacle in the passage region are completed, the trajectory of the motion command Mb1 of the robot arm 6 (and the addition of the obstacle in the passage region) is performed. . The flow of processing is the same as described above, but when the trajectory of the operation command Mb1 of the robot arm 6 is generated, a passage area SVa is added as a new obstacle (FIG. 15B). Therefore, the trajectory generation of the motion command Mb1 is executed so as to avoid not only the obstacle 7 arranged in advance as shown in FIG. 6C but also the passing area SVa of the trajectory Tra of the motion command Ma1. The

こうしてロボットアーム6に関しては、ロボットアーム5の軌道Traと交差することのない軌道Trbを得ることが出来る。以上の説明では、ロボットアーム5−>6と軌道生成を行う最も単純な例を示したが、ロボットアーム6の軌道Trbに対応する通過(掃引)領域も新たな障害物として障害物メモリ2201に追加する。これにより、後続の動作指令に基づいて(干渉状態を生じない)軌道生成を続行することができる。   Thus, with respect to the robot arm 6, it is possible to obtain a trajectory Trb that does not intersect the trajectory Tra of the robot arm 5. In the above description, the simplest example of generating a trajectory with the robot arm 5> 6 has been shown. However, a passing (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 can be continued based on the subsequent operation command (which does not cause an interference state).

なお、以上では、最も単純な2つのロボットアームの例で説明したが、3つ以上のロボットアームの軌道生成についても、上述同様の手順により軌道生成およびそれに伴なう障害物登録を行うことができる。   In the above, the example of the two simplest robot arms has been described. However, for the generation of the trajectories of three or more robot arms, the trajectory generation and the accompanying obstacle registration 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, it is possible to generate a trajectory that does not intersect each other between the robot arms (5, 6) as well as the obstacle (7) in the work environment. For this reason, a plurality of robot arms can be operated in a trajectory that does not cause 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 (passage) space (area) of the robot arm is registered in the obstacle memory as the maximum range of positions and orientations 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 that can avoid interference between the robot arms (5, 6) even if a timing shift such as a delay in arm control occurs in an actual environment. In addition, the basic trajectory generation (+ obstacle registration) control shown in the present embodiment does not use the exclusive space control in the time axis direction, which is performed in the conventional method or the like. Can be easily executed without the need for complex computing resources.

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

<実施例2>
上記実施例1では、ロボットアーム5、6の2つの動作指令から軌道生成を行う最も単純な例で、ロボットアーム(5、6)同士の干渉のない軌道を生成する手法につき説明した。実施例1の図5に示したようなステップ構成のみによって、より多数の軌道定義データについて軌道生成および障害物登録を繰り返す場合、登録された多数の障害物によって新たな軌道を生成できなくなる可能性がある。
<Example 2>
In the first embodiment, the method of generating a trajectory without interference between the robot arms (5, 6) is described as the simplest example in which the trajectory is generated from the two motion commands of the robot arms 5, 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 by the many registered obstacles. There is.

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

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

例えば図8(c)は、ロボットアーム6の軌道Trb1(始点Sb1〜終点Gb1)が生成され、対応する掃引(通過)領域に対応する障害物(SVb1)が障害物メモリ2201に登録された状態を示している。一方、それ以降、ロボットアーム5に対して生成すべき(始点、終点)が(Sa2、Ga2)の動作指令が動作指令リスト中に存在しているとする。この動作指令の軌道定義、特に終点(Ga2)は、図8(d)に示すように既に障害物(SVb1)の空間内に存在する。このままでは、動作指令中の(始点、終点)が(Sa2、Ga2)である軌道定義に対応するロボット軌道を生成することはできない。   For example, FIG. 8C shows a state in which 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 (passing) area is registered in the obstacle memory 2201. Is shown. On the other hand, it is assumed that an operation command with (Sa2, Ga2) (Sa2, Ga2) to be generated for the robot arm 5 thereafter 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. In this state, it is impossible to generate a robot trajectory corresponding to the trajectory definition whose (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 generating a trajectory in response to a larger number of operation commands will be described. . In such a case, a control method is shown in which the generated robot trajectory can operate the robot arms in the actual environment without interfering with each other.

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

即ち、動作指令リスト中の複数の軌道定義データに基づき軌道生成を行うに際し、障害物メモリに登録された障害物空間を回避する軌道が生成不可能となる場合がある。その場合、動作指令リスト中の軌道定義データを、その時点で生成済みの軌道に対応する軌道定義データから成る第1の動作指令と、未生成の軌道に対応する軌道定義データから成る第2の動作指令と、に分割する。そして、障害物メモリに登録されている障害物空間のデータをクリアしてから第2の動作指令に含まれる軌道定義データについて軌道生成行程および障害物登録行程を繰り返し実行する。また、生成した全部の軌道データに基づき、各々のロボットアームを動作させる場合に第1の動作指令に対応するロボットアームの動作と、第2の動作指令に対応するロボットアームの動作と、を同期的に実行させるための同期指令を生成する。   That is, when generating a trajectory based on a plurality of trajectory definition data in the operation command list, a trajectory that avoids the obstacle space registered in the obstacle memory may not 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 already generated at that time and the second trajectory defining data corresponding to the trajectory not generated. It is divided into operation commands. Then, after clearing the obstacle space data 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. Also, 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. Generate a synchronization command to execute automatically.

以下、図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. In the following, it is assumed that the entire 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 the present 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 in FIGS. FIG. 10 shows a state of synchronous control of the operation corresponding to each operation command generated in the trajectory in the present embodiment. FIGS. 16A to 16F show transition of data contents of the obstacle memory 2201 of the present embodiment in the same format as FIG. In the following description, redundant description of members and processing steps described in the first embodiment is omitted unless particularly necessary.

本実施例において、軌道生成および障害物登録手順の全体の流れは実施例1の図3と同様で、制御手順全体の流れは、動作指令の入力および動作指令リストの生成(S101)、優先度設定(S102)から始まる。その後、軌道生成(S103)、および障害物追加(S104)を行う。   In this embodiment, the entire flow of the trajectory generation and obstacle registration procedure is the same as that in FIG. 3 of the first embodiment, and the flow of the entire control procedure is the input of the operation command, the generation of the operation command list (S101), and the priority. It starts from setting (S102). Thereafter, 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 (initialization of pointer / counter), and S330 (generation of trajectory of operation command Mi) in FIG. 7 are performed in S200 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) in FIG. 7 are the same processes as steps S240 and S250 in FIG. Also, 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 significantly different from FIG. 5 in that steps S340 to S380 are performed between S330 (generation of the trajectory of the motion command Mi) and S350 (generation of the passage (sweep) region of the robot arm corresponding to the motion 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 has been generated in step S330. If the trajectory corresponding to the operation command cannot be generated by 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, the operation is divided into a first operation command composed of trajectory definition data corresponding to a generated trajectory and a second operation command composed of trajectory definition data corresponding to an ungenerated trajectory. Then, after clearing the obstacle space data registered in the obstacle memory, the process returns to step S300. In this case, in steps S300 and S310, the priority of the processing of each operation command (which constitutes the second operation command portion) consisting of the track definition data corresponding to the ungenerated track in the operation command list is determined thereafter. Control to do.

以下、図8〜図10に示すような動作指令を例に図7の処理を説明する。   In the following, the process of FIG. 7 will be described using 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, an operation command is input and an operation command list is generated in the same manner as in step S100 (FIG. 3) and step S200 (FIG. 5). Here, the operation command list generated based on the operator's input includes three operation commands Ma1, Ma2, and Ma3 for the robot arm 5 and two operation commands Mb1 and Mb2 for the robot arm 6. It shall be.

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

即ち、この軌道定義のうち、動作指令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 motion 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 Sa1 and goes to the position Ga3 via the positions 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 for the robot arm 6 is an operation command for moving the reference portion of the arm from the start point Sb1 to the end point Gb1 in FIG. 8A and Mb2 from the start point Sb2 to the end point Gb2. In this case, the robot arm 6 starts from the position Sb1 and moves toward the position Gb2 via the position 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. As described above, various methods are conceivable for the control of the priority order of the trajectory generation (robot unit or operation command unit). For example, it is possible to allow the operator to specify the priority order.

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

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

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

なお、以上のような本実施例の軌道生成(+障害物登録)の処理順序の制御の一例は、図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 with reference to the flowchart of FIG.

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

図7のステップS320(ポインタ/カウンタの初期化)に続き、ステップ330では、ステップS310で定めた順番に従って軌道生成を行う。ステップ330の軌道生成は図5のステップS230で説明した処理と同様である。   Following step S320 (pointer / counter initialization) in FIG. 7, in step 330, a trajectory is generated in the order determined in step S310. The trajectory generation in step 330 is the same as the processing described in step S230 of 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, the process proceeds to step S350. If the trajectory generation cannot be generated, the process proceeds to step S380. Here, as a case where the trajectory cannot be generated, for example, the path to the end point is blocked by the passing area of another robot arm, or the starting point or the end point is included in the passing area of the other robot arm. There may be.

図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 that goes from the start point Sa1 to the end point Ga1 and avoids 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 passing (sweep) region (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 registration state in FIG. 16B. That is, the passage (sweep) region (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 described above. The motion command Mb1 can also generate a trajectory in steps S330 and S340, and a passing (sweep) region (SVb1) corresponding to the trajectory Trb1 is newly added to the obstacle memory 2201 as shown in FIG.

さらに処理は進み、ステップS330でロボットアーム5に関して動作指令Ma2の軌道生成が試行される。この動作指令Ma2は図8(a)に示すように始点Sa2から終点Ga2へ向かう軌道定義を含む。しかしながら、図8(d)に示すように、動作指令Ma2の終点Ga2の位置は、上記の手順で追加された障害物(SVb1)の内部にあって障害物との干渉を生じるため、軌道生成を行えない。この場合、処理は図7のステップS380に進む。   The processing further proceeds, and a trajectory generation of the operation command Ma2 is attempted for the robot arm 5 in step S330. 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. Cannot be performed. 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 a trajectory cannot be generated. In this step S380, first, the motion command (group) is first processed with the first motion command (group: first half) already subjected to trajectory generation (+ obstacle registration) and the trajectory generation (+ obstacle registration) unprocessed. Are divided into second operation commands (group: second half).

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

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

また、第1、第2の動作指令への分割が生じた場合、分割の前後で第1、第2の動作指令に対応するロボットアーム(5、6)の動作は同期的に実行する。即ち、第1の動作指令に対応する動作が全て終了するのを待って、第2の動作指令に対応する動作を開始させるような同期制御を行う。このような同期制御を行うため、動作指令の分割を行った場合、CPU20は、実環境でのロボットの動作を上記のように同期させるための同期指令(図10のSp1)を生成する。この同期指令(図10のSp1)は、例えば生成した軌道データ群の分割の起きた位置に挿入する。   When the division into the first and second operation commands occurs, 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 so that the operation corresponding to the second operation command is started after all the operations corresponding to the first operation command are completed. 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 robot operation in the actual environment as described above. This synchronization command (Sp1 in FIG. 10) is inserted, for example, at a position where the generated orbit data group is divided.

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

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

上記のように動作指令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 as follows.
Op1-1 = {Ma1, Mb1},
Op1-2 = {Ma2, Mb2, Ma3}
The configuration is as follows. In addition, when performing the operation command division as described above, the CPU 20 performs a synchronization command (in order to synchronously control 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 inserted, for example, at a position where the division of the generated trajectory data group has occurred.

その後の処理において、ステップS300では、ステップS380を経由したことにより、処理対象は第2の動作指令(後半:Op1−2)に相当する軌道定義となる。即ち、上記の動作指令Ma2、Mb2、Ma3を含む動作指令Op1−2が入力される。   In the subsequent processing, in step S300, the process target is a trajectory definition corresponding to the second operation command (second half: Op1-2) by passing through step S380. That is, the operation command Op1-2 including the operation commands Ma2, Mb2, and 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 and the start points (Sa2, Sb2, Sa3) and end points of the operation commands Ma2, Mb2, and Ma3 at the beginning of the processing of the second operation command (second half: Op1-2). The positions of (Ga2, Gb2, Ga3) are 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 described 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. Even in the processing of the second operation command (second half: Op1-2), the robot arm 5 has a higher priority because it has a larger number of operations. Accordingly, the order of the trajectory generation processing is the order of the operation commands Ma2, Mb2, and 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 steps 330 to 360 in FIG. 7 in the same manner as described above with respect to the second operation command (second half: Op1-2). The first operation command Ma2 is an operation from the start point Sa2 to the end point Ga2, and as shown in FIG. 9B, the trajectory is generated so as to avoid the point Sb2 which is the current position of the robot arm 6. Tra2 is generated. Further, as shown in FIG. 16E, the passage (sweep) region (SVa2) of the robot arm 6 in 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)が生成される。   Subsequent operation commands Mb2, Ma3... Are further processed by steps 330 to 360 in FIG. For the start point Sb2 and the end point Gb2 of the operation command Mb2, a trajectory Trb2 is generated so as to avoid the added obstacle SVa2 (FIG. 9C). Also, an obstacle (SVb2) corresponding to the trajectory passing (sweep) region is generated and added to the obstacle memory 2201 (FIG. 16 (f)). 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. 9 (d)), and the obstacle (SVa3) corresponding to the passage (sweep) region of the trajectory Is generated.

以上のようにして、作業者が最初に入力した動作指令リスト中の全動作指令に対応する全軌道の生成が完了する。本実施例の軌道生成方法によれば、アームの通過(掃引)領域に対応する障害物によって軌道生成が不可能となった場合、処理済みの動作指令を含む第1の動作指令と、未処理の動作指令を含む第2の動作指令とに動作指令リストを分割する。その際、障害物メモリの障害物データをクリアして残りの第2の動作指令を処理するため、軌道生成(+障害物登録)を続行することができる。   As described above, the generation of all the trajectories corresponding to all the operation commands in the operation command list first input by the operator is completed. According to the trajectory generation method of the present embodiment, when trajectory generation becomes impossible due to an obstacle corresponding to the passage (sweep) region of the arm, the first motion command including the processed motion command and unprocessed The operation command list is divided into second operation commands including the operation commands. 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, since there is a possibility that the robot arms interfere with each other between the divided operation commands Op1-1 and Op1-2 in the operation in the real environment, synchronous execution control is performed. There is a need. For example, after all the operations in the first operation command Op1-1 are completed, the control for executing the operations in the second operation command Op1-2 is performed. Therefore, when the operation command is divided as described above, the CPU 20 inserts the synchronization command (Sp1 in FIG. 10) at a position where the synchronization control is necessary in the trajectory data.

図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 robot arms 5 and 6 synchronously execute robot operations corresponding to the (first) operation command Op1-1 and the (second) Op1-2 divided as described above. 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 division of the (first) operation command Op1-1 and the (second) operation command Op1-2 is performed 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. Can do.

図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 start their respective operations simultaneously. In this case, one of the robot arms finishes the 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 is not performed. Wait for completion. In the example of FIG. 10, the robot arm 6 completes the operation (Mb1) first, but the synchronization control is performed so that the robot arm 6 waits for the waiting time 80 and waits for the robot arm 5 operation command Ma1 to be completed. ing. Then, after all the operations in the operation command Op1-1 are completed, the process proceeds to the next operation command Op1-2, and the respective operations (Ma2, Mb2, Ma3...) Are started to be executed simultaneously.

なお、動作指令Op1−2と後続の動作指令(不図示)との間でも動作指令の分割(および障害物メモリ2201のクリア)が生じている場合には、図10に示すように同期指令(Sp2)が挿入される。ここでは、ロボットアーム6が先に全動作を完了するが、ここでも待機時間90の間だけロボットアーム5を待つ同期制御が行われる。   In addition, when 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), the synchronization command (as shown in FIG. Sp2) is inserted. Here, the robot arm 6 completes all operations first, but here, synchronous control is also performed in which the robot arm 5 is waited for the waiting time 90.

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

ここで、図18に図7のステップS310(図3のステップS210でも同様)に関して述べた、ロボットアーム単位および動作指令単位の優先度を用いて、軌道生成(+障害物登録)の処理順を制御するアルゴリズムの一例を示しておく。   Here, the processing order of trajectory generation (+ obstacle registration) is described using the priority of the robot arm unit and the operation command unit described in FIG. 18 regarding step S310 in FIG. 7 (also in step S210 in FIG. 3). An example of the algorithm to control is 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) number of the robot arm. On the other hand, in the robot arm ranking list secured in the main memory or virtual memory pointed to by the pointer (counter) R, the identification data of each robot arm is based on the user (worker) designation (or automatically determined by the CPU 20). Are stored in order from the highest priority. By referencing this robot arm ranking list from the top (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 ranking list (+ obstacle registration). Can be executed. Incidentally, the pointer (counter) R, in the example of FIG. 18 are used cyclically reaches the R M whose value corresponds to the maximum (total) number of robot arm, its value is reset to 0.

また、以上では、ポインタ(カウンタ)iを用いた動作指令単位の優先度制御については詳細に述べなかったが、この動作指令単位の優先度制御についても、上記と同様の構成を用いることができる。例えばポインタ(カウンタ)iにより指示される主記憶ないし仮想記憶上に確保された動作指令順位リストに、ユーザ(作業者)指定(あるいはCPU20が自動決定)に基づき、各動作指令の識別データを優先順位が高い方から順に格納しておく。この動作指令順位リストを、ポインタ(カウンタ)i(最も高い優先度は0)の値に基づき参照していくことで、動作指令順位リストの定義順で動作指令を処理していくことができる。   In the above description, the priority control for each operation command using the pointer (counter) i has not been described in detail, but the same configuration as described above can be used for the priority control for each operation command. . 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 descending order. 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 order of definition 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 in FIG. 7. Step S320 is the same pointer (counter) i initialization (i = 0) process as in FIG. The subsequent step S520 is the 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) calculation such as Mi = Mi (R). That is, this pointer (counter) operation is a process for specifying the operation command with the highest priority (unprocessed) 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 in steps S330 to S360 in FIG. 7 is performed. Although not shown in detail here, the operation command dividing process in 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, pointers (counters) R and i are incremented so that the robot designation and the operation command indicate the next robot arm and the next operation command, respectively.

ステップS560では、ポインタ(カウンタ)Rが一巡したか、即ち、最大(全)ロボットアーム数に相当するRに達したか否かを判定する。ステップS560が肯定された場合にはポインタ(カウンタ)Rは最初の最も優先度の高いアームを指すように0にリセットされる。 In step S560, the pointer (counter) or R is round, i.e., whether or not reached R M corresponding to the maximum (total) number of the robot arm is determined. 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 processing as step S370 in FIG. 7, and here, it is determined whether or not all the operation commands in the operation command list have been processed by determining the value of the pointer (counter) i. Here, while all the operation commands are not processed, the process returns to step S530 and the above operation is repeated.

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

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

本実施例3では、各ロボットアームが動作指令中の軌道定義である始点および終点の位置にいる時の姿勢において各アームの躯体が占める空間を障害物として登録しておくことにより上記の問題を回避する。これにより、動作指令の始点または終点が最初から他のロボットアームの通過領域内に含まれてしまうような状態を回避することができる。   In the third embodiment, by registering the space occupied by the chassis of each arm as an obstacle in the posture when each robot arm is in the position of the start point and end point which are the trajectory definitions in the motion command, the above problem is solved. To avoid. Thereby, it is possible to avoid a state in which the start point or the end point of the operation command is included in the passing 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, a method for generating a trajectory in which the passing regions of a plurality of robots do not intersect with each other in the third embodiment will be described with reference to FIGS. 11 to 13 and FIG. FIGS. 11A to 11F show the posture of each robot arm (5, 6) and the corresponding trajectory generation (+ obstacle registration) in the same format as in FIG. 8 of the second embodiment. FIG. 12 shows a state of synchronous robot control in an actual environment corresponding to FIG. 10 of the second embodiment, and FIG. 13 shows a trajectory generation (+ obstacle registration) in the present embodiment in the same format as FIG. The control procedure is shown. FIGS. 17A to 17F show transition of 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 commands in the operation command list to be processed are the same as those of the second embodiment. For this reason, the following description will be made with an emphasis on differences from the second embodiment.

本実施例において、作業者の入力に応じて生成された動作指令リストは、実施例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 the present embodiment, the operation command list generated according to the operator's input is the same as 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 comprised by the operation command like this. The position of each start point and end point is as shown in FIG.

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

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

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

次に、ステップS320の初期化に続き、ステップS330〜S370(およびS380)のループによって、設定された順位に従って、軌道生成および障害物追加処理を行う。この時、図17(a)のような障害物の初期登録状態によって、本実施例の軌道生成(ステップS330)では、処理対象のアーム以外の他のアームの始点と終点の位置を回避するよう軌道が生成されることになる。   Next, following the initialization of step S320, the trajectory generation and obstacle addition processing is performed according to the set rank by the loop of steps S330 to S370 (and S380). 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))。   For example, FIGS. 11A to 11F and FIGS. 17B to 17F show how the trajectory is generated and the obstacles are additionally registered. Here, 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 (passing) area is added to the obstacle memory 2201 as an obstacle (SVa1). (FIG. 11 (b), FIG. 17 (b)).

続いて、動作指令Ma2の軌道生成時は、既に障害物登録されているロボットアーム6の終点Gb1(始点Sb2)の位置を回避するように軌道Tra2が生成される(図11の(c))。また、その軌道Tra2によるロボットアーム6の掃引(通過)領域が障害物(SVa2)として障害物メモリ2201に追加される(図17(c))。これにより、実施例2の制御による場合と異なり、後続の動作指令Mb1の軌道が生成不可能となることが防止される。   Subsequently, when generating the trajectory of the operation command Ma2, 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 (passing) area of the robot arm 6 by the trajectory Tra2 is added to the obstacle memory 2201 as an obstacle (SVa2) (FIG. 17C). Thus, unlike the case of the control according to the second embodiment, it is possible to prevent the generation of the trajectory of the subsequent operation command Mb1.

さらに、同様にして動作指令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 passing (sweep) region 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, at the time of generating the trajectory of the robot arm 6 that follows, the trajectory is generated so as to avoid the passing area added in the previous procedure, as in the second embodiment. This is because the start point and end point of another robot arm are included in the passing area. Accordingly, in the generation of the trajectory of the robot arm 6, first, the trajectory Trb1 of the operation command Mb1 is generated, and the passing (sweep) region is added to the obstacle memory 2201 as an obstacle (SVb1) (FIG. 11 (e), FIG. 17 (e)). For the operation command Mb2, a trajectory Trb2 ((f) in FIG. 11) is generated, and the corresponding passing 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が同時に各々の動作を開始し、他のロボットアームの動作に拘らず与えられた動作の軌道を実行してもアーム同士の干渉を生じない。   The trajectory generation of all the motions given as the motion command Op1 is thus completed. FIG. 12 is a time chart when the two robot arms 5 and 6 that have generated the trajectory as described above are operated. In the case of the operation command Op1, in this embodiment, since the space corresponding to the posture of the arm housing at the start point and the end point of the operation command is registered in advance as an obstacle before the start of the trajectory, steps S340 to S380 in FIG. No branching has occurred. Therefore, there is no need 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 are given regardless of the operations of the other robot arms. Even if the trajectory of the specified motion is executed, the arms do not interfere with each other.

即ち、本実施例3によれば、(いわば確定済みの障害物として)動作指令の始点および終点のアーム躯体の姿勢に相当する空間を、予め(先に)障害物登録してしまい、それを回避するように軌道修正を行う。このため、実施例2で説明した動作指令の分割、障害物データのクリアおよび実環境においてアーム動作を同期的に制御するための同期指令の生成、の各過程を発動させる確率が下がり、アーム同士の干渉のない軌道生成をスムーズに行うことができる。そして実環境で生成した軌道データによりロボットアームを動作させた場合でも、実施例2で示したような同期制御が必要となる確率が下がり、高速にロボットアームを動作させることができる。   That is, according to the third embodiment, the space corresponding to the posture of the arm housing at the start point and the end point of the operation command is registered in advance (first) as an obstacle (as a so-called confirmed obstacle). Correct the trajectory to avoid it. For this reason, the probability of invoking each process of the division | segmentation of the operation command demonstrated in Example 2, the clearing of obstacle data, and the production | generation of the synchronous command for controlling arm operation synchronously in a real environment falls, The trajectory can be smoothly generated without interference. Even when the robot arm is operated based on the trajectory data generated in the actual environment, the probability that the synchronous control as described in the second embodiment is necessary is reduced, and the robot arm can be operated at high speed.

以上に示した実施例中の具体的な構成はあくまでも一例に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれ、当業者は特許請求の範囲内で様々な設計変更を行うことができるのはいうまでもない。   The specific configuration in the embodiment described above is merely an example, and does not limit the scope of the claims. The technology described in the claims includes various modifications and alterations of the specific examples illustrated above, and 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 realizes 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 the computer of the system or apparatus read and execute the program This process can be realized. 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 ... Trajectory generation part, 2 ... Input part, 3 ... Memory | storage part, 5 ... Robot arm (A), 6 ... Robot arm (B), 11 ... Keyboard, 12 ... Mouse, 13 ... Display, 51, 52, 53, 61, 62, 63 ... articulated shaft, 54, 64 ... end effector, 55, 56, 57, 65, 66, 67 ... link, 7 ... obstacle, 80, 90 ... standby time.

上記課題を解決するため、本発明においては、ロボットアームの軌道を生成する制御装置におけるロボット軌道生成方法であって、前記制御装置が、軌道定義データに基づき第1のロボットアームの躯体が通過する空間であって、第2のロボットアームが通過を回避すべき空間に相当する空間データをメモリに格納する格納行程と、前記制御装置が、前記空間データに対応する空間を回避しながら、前記第2のロボットアームが動作する軌道を生成する生成行程と、を有する構成を採用した。 In order to solve the above-described problem, in the present invention, there is provided a robot trajectory generation method in a control device that generates a trajectory of a robot arm , wherein the control device passes a housing of a first robot arm based on trajectory definition data. a space, a storage step of storing spatial data second robotic arm corresponds to the space to be avoided to pass to the memory, wherein the controller, while avoiding space corresponding to the space data, the first And a generation process for generating a trajectory in which two robot arms operate.

Claims (17)

制御装置によって、近接して配置されている複数のロボットアームを動作させる軌道を生成するロボット軌道生成方法において、前記制御装置が、前記ロボットアームが通過を回避すべき空間としての第1空間データをメモリに格納する格納行程と、
前記制御装置が、始点および終点を含む軌道定義データに基づき、前記第1空間データに対応する空間を回避しながら第1のロボットアームが動作する軌道を生成する第1生成行程と、
前記第1生成行程で生成した軌道に基づき、前記第1のロボットアームの躯体が通過する空間を、第2のロボットアームが通過を回避すべき空間としての第2空間データを生成する第2生成行程と、
始点および終点を含む軌道定義データに基づき、前記第1空間データ及び前記第2空間データに対応する空間を回避しながら、前記第2のロボットアームが動作する軌道を生成する第3生成行程と、を有することを特徴とするロボット軌道生成方法。
In a robot trajectory generation method for generating a trajectory for operating a plurality of robot arms arranged close to each other by a control device, the control device obtains first space data as a space that the robot arm should avoid passing through. Storing process to store in memory;
A first generation step in which the control device generates a trajectory in which the first robot arm operates while avoiding a space corresponding to the first spatial data based on trajectory definition data including a start point and an end point;
Based on the trajectory generated in the first generation process, the second generation generates second spatial data as a space where the second robot arm should avoid passing through the space through which the first robot arm housing passes. The process,
A third generation step of generating a trajectory on which the second robot arm operates while avoiding a space corresponding to the first spatial data and the second spatial data based on trajectory definition data including a start point and an end point; A robot trajectory generation method characterized by comprising:
前記第1生成行程で生成した軌道を前記第1のロボットアームに送信する第1送信行程と、前記第3生成行程で生成した軌道を前記第2のロボットアームに送信する第2送信行程と、を有することを特徴とする請求項1に記載のロボット軌道生成方法。   A first transmission step for transmitting the trajectory generated in the first generation step to the first robot arm; a second transmission step for transmitting the trajectory generated in the third generation step to the second robot arm; The robot trajectory generation method according to claim 1, comprising: 前記第1空間データには、前記複数のロボットアームの動作可能領域に配置される障害物に関する情報を含むことを特徴とする請求項1または2に記載のロボット軌道生成方法。   3. The robot trajectory generation method according to claim 1, wherein the first spatial data includes information related to an obstacle arranged in an operable region of the plurality of robot arms. 前記第2空間データを生成後に、始点および終点を含む軌道定義データに基づき、前記第1空間データ及び前記第2空間データに対応する空間を回避した新たな軌道を生成できない場合には、前記第2空間データをクリアして、前記第1空間データに対応する空間を回避した新たな軌道を生成することを特徴とする請求項1ないし3のいずれか1項に記載のロボット軌道生成方法。   If a new trajectory that avoids the space corresponding to the first spatial data and the second spatial data cannot be generated based on the trajectory definition data including the start point and the end point after the second spatial data is generated, 4. The robot trajectory generation method according to claim 1, wherein two space data is cleared and a new trajectory that avoids the space corresponding to the first space data is generated. 5. 前記複数のロボットアームの動作順序を設定する設定行程をさらに有することを特徴とする請求項1ないし4のいずれか1項に記載のロボット軌道生成方法。   5. The robot trajectory generation method according to claim 1, further comprising a setting step of setting an operation order of the plurality of robot arms. 仮想空間上に配置された前記複数のロボットアームに対応する画像を表示装置に表示する表示行程をさらに有することを特徴とする請求項1ないし5のいずれか1項に記載のロボット軌道生成方法。   6. The robot trajectory generation method according to claim 1, further comprising a display step of displaying an image corresponding to the plurality of robot arms arranged in a virtual space on a display device. 仮想空間上で表示されたロボットアームを操作することにより、前記始点及び終点を設定可能とする操作行程をさらに有することを特徴とする請求項1ないし6のいずれか1項に記載のロボット軌道生成方法。   The robot trajectory generation according to any one of claims 1 to 6, further comprising an operation process in which the start point and the end point can be set by operating a robot arm displayed in a virtual space. Method. 前記制御装置に、請求項1から7のいずれか1項に記載の各行程を実行させるロボット軌道生成プログラム。   A robot trajectory generation program for causing the control device to execute each stroke according to any one of claims 1 to 7. 請求項8に記載の前記ロボット軌道生成プログラムを格納したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium storing the robot trajectory generation program according to claim 8. 近接して配置されている複数のロボットアームを動作させる軌道を生成するロボット軌道生成装置であって、
前記ロボットアームが通過を回避すべき空間としての第1空間データを格納するメモリと、
始点および終点を含む軌道定義データに基づき、前記第1空間データに対応する空間を回避しながら第1のロボットアームが動作する軌道を生成し、生成した軌道に基づき、前記第1のロボットアームの躯体が通過する空間を、第2のロボットアームが通過を回避すべき空間としての第2空間データを生成し、始点および終点を含む軌道定義データに基づき、前記第1空間データ及び前記第2空間データに対応する空間を回避しながら、前記第2のロボットアームが動作する軌道を生成するよう制御する制御手段と、を有することを特徴とするロボット軌道生成装置。
A robot trajectory generation device that generates a trajectory for operating a plurality of robot arms arranged close to each other,
A memory for storing first spatial data as a space where the robot arm should avoid passage;
Based on the trajectory definition data including the start point and the end point, a trajectory on which the first robot arm operates while avoiding the space corresponding to the first spatial data is generated. Based on the generated trajectory, the first robot arm Second space data is generated as a space where the second robot arm should avoid passing through the space through which the housing passes, and based on the trajectory definition data including the start point and the end point, the first space data and the second space And a control unit that controls to generate a trajectory on which the second robot arm operates while avoiding a space corresponding to data.
生成した軌道を前記第1のロボットアーム及び前記第2のロボットアームに送信する送信手段、を有することを特徴とする請求項10に記載のロボット軌道生成装置。   The robot trajectory generation apparatus according to claim 10, further comprising a transmission unit that transmits the generated trajectory to the first robot arm and the second robot arm. 前記第1空間データには、前記複数のロボットアームの動作可能領域に配置される障害物に関する情報を含むことを特徴とする請求項10または11に記載のロボット軌道生成装置。   12. The robot trajectory generation device according to claim 10, wherein the first spatial data includes information related to an obstacle arranged in an operable region of the plurality of robot arms. 前記第2空間データを生成後に、始点および終点を含む軌道定義データに基づき、前記第1空間データ及び前記第2空間データに対応する空間を回避した新たな軌道を生成できない場合には、前記第2空間データをクリアして、前記第1空間データに対応する空間を回避した新たな軌道を生成することを特徴とする請求項10ないし12のいずれか1項に記載のロボット軌道生成装置。   If a new trajectory that avoids the space corresponding to the first spatial data and the second spatial data cannot be generated based on the trajectory definition data including the start point and the end point after the second spatial data is generated, 13. The robot trajectory generation device according to claim 10, wherein the second trajectory data is cleared to generate a new trajectory that avoids a space corresponding to the first spatial data. 前記複数のロボットアームの動作順序を設定する設定手段をさらに有することを特徴とする請求項10ないし13のいずれか1項に記載のロボット軌道生成装置。   14. The robot trajectory generation apparatus according to claim 10, further comprising setting means for setting an operation order of the plurality of robot arms. 仮想空間上に配置された前記複数のロボットアームに対応する画像を表示する表示手段をさらに有することを特徴とする請求項10ないし14のいずれか1項に記載のロボット軌道生成装置。   15. The robot trajectory generation apparatus according to claim 10, further comprising display means for displaying images corresponding to the plurality of robot arms arranged in a virtual space. 仮想空間上で表示されたロボットアームを操作することにより、前記始点及び終点を設定可能とする操作手段をさらに有することを特徴とする請求項10ないし15のいずれか1項に記載のロボット軌道生成装置。   The robot trajectory generation according to any one of claims 10 to 15, further comprising operation means for setting the start point and the end point by operating a robot arm displayed in a virtual space. apparatus. 前記制御装置に、請求項1から7のいずれか1項に記載のロボット軌道生成方法で生成された軌道に基づき前記ロボットアームを動作させ、前記ロボットアームによって物品の製造を行うことを特徴とする製造方法。   The control device causes the robot arm to operate based on the trajectory generated by the robot trajectory generation method according to claim 1, and manufactures an article using the robot arm. Production 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 true JP2019193975A (en) 2019-11-07
JP6750909B2 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111958589A (en) * 2020-07-06 2020-11-20 佛山科学技术学院 Multi-mechanical-arm track anti-collision method and system
US20200384647A1 (en) * 2019-06-07 2020-12-10 Fanuc Corporation Off-line programming apparatus, robot controller, and augmented reality system
WO2021261326A1 (en) * 2020-06-26 2021-12-30 川崎重工業株式会社 Teaching device for robot and teaching program for robot
WO2021261325A1 (en) * 2020-06-26 2021-12-30 川崎重工業株式会社 Robot teaching device and robot teaching program

Citations (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

Patent Citations (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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200384647A1 (en) * 2019-06-07 2020-12-10 Fanuc Corporation Off-line programming apparatus, robot controller, and augmented reality system
US11673273B2 (en) * 2019-06-07 2023-06-13 Fanuc Corporation Off-line programming apparatus, robot controller, and augmented reality system
WO2021261326A1 (en) * 2020-06-26 2021-12-30 川崎重工業株式会社 Teaching device for robot and teaching program for robot
WO2021261325A1 (en) * 2020-06-26 2021-12-30 川崎重工業株式会社 Robot teaching device and robot teaching program
TWI776556B (en) * 2020-06-26 2022-09-01 日商川崎重工業股份有限公司 Robot teaching device and robot teaching program
TWI821691B (en) * 2020-06-26 2023-11-11 日商川崎重工業股份有限公司 Robot teaching device and robot teaching program
CN111958589A (en) * 2020-07-06 2020-11-20 佛山科学技术学院 Multi-mechanical-arm track anti-collision method and system

Also Published As

Publication number Publication date
JP6750909B2 (en) 2020-09-02

Similar Documents

Publication Publication Date Title
JP6576255B2 (en) Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method
JP7222803B2 (en) Trajectory planning device, trajectory planning method and program
JP6750909B2 (en) Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method
US11458626B2 (en) Trajectory generating method, and trajectory generating apparatus
US20180036882A1 (en) Layout setting method and layout setting apparatus
JP7439206B2 (en) Information processing methods, information processing devices, programs, recording media, production systems, robot systems, article manufacturing methods
CN102216037B (en) A method and a device for optimizing a programmed movement path for an industrial robot
JP6567101B2 (en) Teaching method, robot operating method, program, storage medium, teaching apparatus
JP7262373B2 (en) Trajectory plan generation device, trajectory plan generation method, and trajectory plan generation program
US20180036883A1 (en) Simulation apparatus, robot control apparatus and robot
US11975451B2 (en) Simulation-in-the-loop tuning of robot parameters for system modeling and control
JP2016093869A (en) Teaching data creation method, creation device, and creation program, and, data structure of teaching data, and recording medium
JP2015066668A (en) Method for adjusting teaching point of robot, method for calculating installation position of robot, robot system, program, and recording medium
JP7210201B2 (en) Information processing method, program, recording medium, information processing device, robot system, article manufacturing method
JP2022061010A (en) Motion parameterization with no significant point of soft robot manipulator
US20220143829A1 (en) Determination of robot posture
JP7475841B2 (en) Information processing method, robot system, article manufacturing method, and information processing device
JP6862849B2 (en) Arithmetic logic units, arithmetic methods, arithmetic programs and robot systems
JP7493926B2 (en) Control method, control device, robot system, article manufacturing method, operation program creating method, operation program creating device, display device, display device control method, program, and recording medium
JP2015016536A (en) Robot control system, robot, path creation device, path creation method and path creation program
JP7424122B2 (en) Simulation equipment and programs
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
WO2023276506A1 (en) Planning system, robot system, planning method, and planning program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

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 Request for written amendment filed

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