JP2023167643A - Robot operation plan supporting system, robot operation plan supporting method, and computer program - Google Patents

Robot operation plan supporting system, robot operation plan supporting method, and computer program Download PDF

Info

Publication number
JP2023167643A
JP2023167643A JP2022078971A JP2022078971A JP2023167643A JP 2023167643 A JP2023167643 A JP 2023167643A JP 2022078971 A JP2022078971 A JP 2022078971A JP 2022078971 A JP2022078971 A JP 2022078971A JP 2023167643 A JP2023167643 A JP 2023167643A
Authority
JP
Japan
Prior art keywords
robot
work
routes
firing
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022078971A
Other languages
Japanese (ja)
Inventor
巧真 板東
Takuma Bando
竜志 西
Tatsuyuki Nishi
裕康 馬場
Hiroyasu Baba
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.)
Robot Industrial Basic Technology Collaborative Innovation Partnership
Okayama University NUC
Original Assignee
Robot Industrial Basic Technology Collaborative Innovation Partnership
Okayama University NUC
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 Robot Industrial Basic Technology Collaborative Innovation Partnership, Okayama University NUC filed Critical Robot Industrial Basic Technology Collaborative Innovation Partnership
Priority to JP2022078971A priority Critical patent/JP2023167643A/en
Publication of JP2023167643A publication Critical patent/JP2023167643A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

To support an operator so as to enable the operator to select an efficient procedure when a robot performs specific work, more easily than a conventional one.SOLUTION: Pieces of procedure data indicating a plurality of procedures when a robot performs specific work are given to a computer. The pieces of procedure data are given by an operator manually operating the robot, for example. The computer generates a Petri net 7 according to α algorithm on the basis of the pieces of procedure data.SELECTED DRAWING: Figure 7

Description

本発明は、ロボットに作業を実行させる際の動作計画を支援する技術に関する。 TECHNICAL FIELD The present invention relates to technology for supporting motion planning when having a robot perform a task.

従来、自動車、機械、電気機器、電子機器、食品、化粧品、および医薬品などの製品を大量にかつ高速に生産するために、産業用ロボットなどのロボットが用いられている。ロボットによって省人化および省力化が図られてきたが、需要者のニーズに応じて多種多様な製品が次々に開発されており、製品ごとに専用のロボットを導入するとコストが嵩んでしまう。 Conventionally, robots such as industrial robots have been used to rapidly produce products such as automobiles, machinery, electrical equipment, electronic equipment, foods, cosmetics, and pharmaceuticals in large quantities and at high speed. Robots have been used to save labor and labor, but a wide variety of products are being developed one after another to meet the needs of consumers, and the cost of introducing specialized robots for each product increases.

そこで、汎用性のあるロボットが導入され、製品ごとに応じた作業をロボットに実行させている。この際に、人間(オペレータ)がロボットに直接触ってまたは操作端末で動かすことによって作業の手順をロボットに教示してプログラムを用意する「ティーチング・プレイバック」という手法が広く採用されている。ティーチング・プレイバックは、「オンラインティーチング」または「プレイバック式ティーチング」などと呼ばれることがある。 Therefore, versatile robots have been introduced to perform tasks tailored to each product. In this case, a method called ``teaching playback'' is widely adopted in which a human (operator) teaches the robot the work procedure and prepares a program by touching the robot directly or moving it with an operating terminal. Teaching playback is sometimes called "online teaching" or "playback-style teaching."

しかし、ロボットを動作させる際に製品に応じたプログラムを予め指定する必要があり、また、ロボットはプログラムの通りに動作するに過ぎない。すなわち、状況に応じてロボットが自律的に最適な動作を選択することは、容易でない。 However, when operating a robot, it is necessary to specify a program in advance according to the product, and the robot only operates according to the program. That is, it is not easy for a robot to autonomously select the optimal operation depending on the situation.

また、作業の工程が複雑であるほどオペレータにとって教示が困難になる。すなわち、ティーチング・プレイバックは、熟練したオペレータが行わざるを得ない。 Furthermore, the more complicated the work process is, the more difficult it becomes for the operator to teach it. That is, teaching and playback must be performed by a skilled operator.

そこで、非特許文献1、2に記載されるような、ロボットをペトリネットによって制御するシステムが提案されている。ペトリネットは、ロボットに行わせる作業の流れをグラフィカルにモデル化したものである。したがって、ペトリネットを用いればロボットの制御の容易化を図ることができる。 Therefore, systems for controlling robots using Petri nets have been proposed, as described in Non-Patent Documents 1 and 2. A Petri net is a graphical model of the flow of work performed by a robot. Therefore, by using Petri nets, it is possible to facilitate the control of robots.

安田元一,“ペトリネットに基づく産業用ロボットシステムの制御",第51回自動制御連合講演会 pp.974-975, (2008),https://www.jstage.jst.go.jp/article/jacc/51/0/51_0_213/_pdfGenichi Yasuda, “Control of industrial robot systems based on Petri nets”, 51st Automatic Control Joint Conference pp.974-975, (2008), https://www.jstage.jst.go.jp/article /jacc/51/0/51_0_213/_pdf 船見洋祐, 工藤亨, 渡部慶二, “ペトリネットを用いたロボットシステムの制御”, 計測自動制御学会東北支部第170 回研究集会, pp. 1-8, (1997),https://www.topic.ad.jp/sice/htdocs/papers/170/170-6.pdfYosuke Funami, Toru Kudo, Keiji Watanabe, “Control of robot systems using Petri nets”, 170th Research Meeting of the Tohoku Branch of the Society of Instrument and Control Engineers, pp. 1-8, (1997), https://www.topic .ad.jp/sice/htdocs/papers/170/170-6.pdf

ところで、1つの特定の作業であっても何通りもの手順を取り得る。例えば、別々の位置にある第一のワークおよび第二のワークを所定の位置へ移動させる作業の手順として、第一のワークを所定の位置へ移動させてから第二のワークを所定の位置へ移動させるという手順、および、第一のワークを第二のワークの上に載せてから両ワークを一緒に所定の位置へ移動させるという手順など、複数の手順がある。 By the way, even one specific task can take many different steps. For example, as a procedure for moving a first workpiece and a second workpiece that are in separate positions to a predetermined position, the first workpiece is moved to a predetermined position, and then the second workpiece is moved to a predetermined position. There are multiple steps, such as moving the workpiece, placing the first workpiece on top of the second workpiece, and then moving both workpieces together to a predetermined position.

できるだけ能率よく作業をロボットに行わせるためには、できるだけ最適に近い手順を選択する必要がある。 In order to have the robot perform the work as efficiently as possible, it is necessary to select a procedure that is as close to the optimum as possible.

本発明は、このような課題に鑑み、ロボットに特定の作業を行わせる際の能率のよい手順を従来よりも容易に選ぶことができるようにオペレータを支援することを目的とする。 In view of these problems, it is an object of the present invention to assist an operator in selecting an efficient procedure for having a robot perform a specific task more easily than in the past.

本発明の一形態に係るロボット動作計画支援システムは、特定の作業をロボットに行わせる際の複数通りの手順それぞれを示す手順データを取得する手順データ取得手段と、前記複数通りの手順それぞれの前記手順データに基づいて前記作業のプロセスモデルを生成するプロセスモデル生成手段と、を有する。 A robot motion planning support system according to an embodiment of the present invention includes a procedure data acquisition unit that acquires procedure data indicating each of a plurality of procedures for causing a robot to perform a specific task; and process model generation means for generating a process model of the work based on the procedure data.

好ましくは、前記プロセスモデルにおいて初期のノードから目標のノードへ至るまでに取り得る複数通りの経路の全部または一部のうちの所定の要件を満たす経路を前記作業に適した適格経路として選出する適格経路選出手段、を有する。 Preferably, a route that satisfies predetermined requirements from all or part of a plurality of routes that can be taken from an initial node to a target node in the process model is selected as a qualified route suitable for the work. route selection means.

または、前記適格経路選出手段は、前記複数通りの経路のうちのN通りの経路をランダムに選択し、当該N通りの経路のうちの前記ロボットによる所要時間や所要コストが最も小さい経路を前記適格経路として選出する
または、前記プロセスモデル生成手段は、αアルゴリズムによってペトリネットを前記プロセスモデルとして生成し、前記動作計画決定手段は、前記ペトリネットの中の、分岐を有するプレースにおいてランダムにトークンを進ませることによって複数通りの経路とタイミングを生成しこれらの経路の中から適格経路を選択する。
Alternatively, the eligible route selection means randomly selects N routes from among the plurality of routes, and selects the route that requires the least time and cost for the robot among the N routes to be the eligible route. Alternatively, the process model generating means generates a Petri net as the process model using the α algorithm, and the motion plan determining means randomly advances tokens in places having branches in the Petri net. By doing so, multiple routes and timings are generated, and an eligible route is selected from these routes.

本発明によると、ロボットに特定の作業を行わせる際の能率のよい手順をオペレータが従来よりも容易に選ぶことができる。 According to the present invention, an operator can more easily select an efficient procedure for having a robot perform a specific task than before.

動作計画最適化システム1の全体的な構成の例を示す図である。1 is a diagram showing an example of the overall configuration of a motion plan optimization system 1. FIG. ロボットの機構モデルおよび制御モデルの例を示す図である。FIG. 3 is a diagram showing an example of a mechanical model and a control model of a robot. コンピュータのハードウェア構成の例を示す図である。FIG. 2 is a diagram showing an example of the hardware configuration of a computer. コンピュータの機能的構成の例を示す図である。FIG. 2 is a diagram showing an example of a functional configuration of a computer. 第一のワークおよび第二のワークの移動の例を示す図である。FIG. 3 is a diagram showing an example of movement of a first workpiece and a second workpiece. 作業ログの例を示す図である。It is a figure showing an example of a work log. ペトリネットの例を示す図である。FIG. 2 is a diagram showing an example of a Petri net. 分岐を複数有するペトリネットの例を示す図である。FIG. 2 is a diagram showing an example of a Petri net having multiple branches. 動作計画プログラムのよる全体的な処理の流れの例を説明するフローチャートである。3 is a flowchart illustrating an example of the overall processing flow according to a motion planning program. 発火系列の例を示す図である。FIG. 3 is a diagram showing an example of a firing sequence.

〔1.システムの全体構成〕
図1は、動作計画最適化システム1の全体的な構成の例を示す図である。図2は、ロボット3の機構モデルおよび制御モデルの例を示す図である。図3は、コンピュータ2のハードウェア構成の例を示す図である。図4は、コンピュータ2の機能的構成の例を示す図である。
[1. Overall system configuration]
FIG. 1 is a diagram showing an example of the overall configuration of a motion plan optimization system 1. As shown in FIG. FIG. 2 is a diagram showing an example of a mechanism model and a control model of the robot 3. FIG. 3 is a diagram showing an example of the hardware configuration of the computer 2. As shown in FIG. FIG. 4 is a diagram showing an example of the functional configuration of the computer 2. As shown in FIG.

動作計画最適化システム1は、ロボットの動作計画の最適化を図るためのシステムであって、図1に示すように、コンピュータ2およびロボット3によって構成される。 A motion plan optimization system 1 is a system for optimizing a robot's motion plan, and as shown in FIG. 1, it is composed of a computer 2 and a robot 3.

ロボット3は、最適な動作計画を算出する対象のロボットである。以下、水平面に設置される6軸ロボットがロボット3である場合を例に説明する。 The robot 3 is a robot for which an optimal motion plan is calculated. Hereinafter, a case will be described using as an example a case where the robot 3 is a 6-axis robot installed on a horizontal plane.

ロボット3は、図1または図2に示すように、ベース30、第一のアーム311、第二のアーム312、第三のアーム313、第四のアーム314、第五のアーム315、ツール32、第一の駆動ユニット331、第二の駆動ユニット332、第三の駆動ユニット333、第四の駆動ユニット334、第五の駆動ユニット335、第六の駆動ユニット336、コントローラ34、および通信インタフェース35などによって構成される。なお、図2において、点線は、有線または無線の通信路を表わしている。 As shown in FIG. 1 or 2, the robot 3 includes a base 30, a first arm 311, a second arm 312, a third arm 313, a fourth arm 314, a fifth arm 315, a tool 32, First drive unit 331, second drive unit 332, third drive unit 333, fourth drive unit 334, fifth drive unit 335, sixth drive unit 336, controller 34, communication interface 35, etc. Consisted of. Note that in FIG. 2, dotted lines represent wired or wireless communication paths.

ベース30は、本実施形態では、水平面に設置される。第一のアーム311は、その基端部がベース30に支持されており、ベース30の設置面(水平面)に垂直な第一の軸391を回転軸として回転する。第一の駆動ユニット331は、モータ、減速機、および角度センサなどによって構成され、第一のアーム311を回転させる。なお、第二の駆動ユニット332ないし第六の駆動ユニット336も、第一の駆動ユニット331と同様に、モータ、減速機、および角度センサなどによって構成される。 In this embodiment, the base 30 is installed on a horizontal surface. The first arm 311 has its base end supported by the base 30 and rotates about a first axis 391 that is perpendicular to the installation surface (horizontal surface) of the base 30 as a rotation axis. The first drive unit 331 includes a motor, a speed reducer, an angle sensor, and the like, and rotates the first arm 311. Note that, like the first drive unit 331, the second drive unit 332 to the sixth drive unit 336 are also configured by a motor, a speed reducer, an angle sensor, and the like.

第二のアーム312は、その基端部が第一のアーム311の先端部に支持されており、第一の軸391および第二のアーム312の長手方向の両方に垂直な第二の軸392を振り軸として旋回する。第二の駆動ユニット332は、第二のアーム312を旋回させる。 The second arm 312 has a proximal end supported by the distal end of the first arm 311, and a second axis 392 that is perpendicular to both the longitudinal direction of the first axis 391 and the second arm 312. Rotate using the axis as the axis. The second drive unit 332 pivots the second arm 312.

第三のアーム313は、その基端部が第二のアーム312の先端部に支持されており、第二の軸392に平行な第三の軸393を振り軸として旋回する。第三の駆動ユニット333は、第三のアーム313を旋回させる。 The third arm 313 has its base end supported by the distal end of the second arm 312, and pivots about a third axis 393 parallel to the second axis 392 as a swing axis. The third drive unit 333 pivots the third arm 313.

第四のアーム314は、その基端部が第三のアーム313の先端部に支持されており、第三のアーム313の長手方向に平行な第四の軸394を回転軸として回転する。第四の駆動ユニット334は、第四のアーム314を回転させる。 The fourth arm 314 has its base end supported by the distal end of the third arm 313 and rotates about a fourth axis 394 parallel to the longitudinal direction of the third arm 313 as a rotation axis. Fourth drive unit 334 rotates fourth arm 314 .

第五のアーム315は、その基端部が第四のアーム314の先端部に支持されており、第四の軸394に垂直な第五の軸395を振り軸として旋回する。第五の駆動ユニット335は、第五のアーム315を旋回させる。 The fifth arm 315 has its base end supported by the distal end of the fourth arm 314 and pivots about a fifth axis 395 perpendicular to the fourth axis 394 as a swing axis. The fifth drive unit 335 pivots the fifth arm 315.

ツール32は、その基端部が第五のアーム315の先端部に支持されており、第五のアーム315の長手方向に平行な第六の軸396を回転軸として回転する。第六の駆動ユニット336は、ツール32を回転させる。また、ツール32は、複数本の指からなるハンド(手)およびハンドを開閉させるモータなどを有しており、物体を拾い上げたり離したりする。 The tool 32 has its base end supported by the distal end of the fifth arm 315 and rotates about a sixth axis 396 parallel to the longitudinal direction of the fifth arm 315 as a rotation axis. A sixth drive unit 336 rotates the tool 32. The tool 32 also includes a hand consisting of a plurality of fingers and a motor that opens and closes the hand, and picks up and releases objects.

第一の駆動ユニット331の角度センサは、第一のアーム311の、ベース30の座標系における基準の姿勢と現在の姿勢とがなす角度θを検出する。つまり、第一のアーム311が基準の姿勢からどれだけ回転したのかを検出する。第二の駆動ユニット332の角度センサは、第一のアーム311と第二のアーム312とがなす角度θを検出する。 The angle sensor of the first drive unit 331 detects the angle θ 1 between the reference posture and the current posture of the first arm 311 in the coordinate system of the base 30 . In other words, it is detected how much the first arm 311 has rotated from the reference posture. The angle sensor of the second drive unit 332 detects the angle θ 2 between the first arm 311 and the second arm 312.

第三の駆動ユニット333の角度センサは、第二のアーム312と第三のアーム313とがなす角度θを検出する。第四の駆動ユニット334の角度センサは、第四のアーム314の、第三のアーム313の座標系における基準の姿勢と現在の姿勢とがなす角度θを検出する。つまり、第四のアーム314が基準の姿勢からどれだけ回転したのかを検出する。 The angle sensor of the third drive unit 333 detects the angle θ 3 formed by the second arm 312 and the third arm 313. The angle sensor of the fourth drive unit 334 detects the angle θ 4 between the reference attitude of the fourth arm 314 in the coordinate system of the third arm 313 and the current attitude. In other words, it is detected how much the fourth arm 314 has rotated from the reference posture.

第五の駆動ユニット335の角度センサは、第四のアーム314と第五のアーム315とがなす角度θを検出する。第六の駆動ユニット336の角度センサは、ツール32の、第五のアーム315の座標系における基準の姿勢と現在の姿勢とがなす角度θを検出する。つまり、ツール32が基準の姿勢からどれだけ回転したのかを検出する。 The angle sensor of the fifth drive unit 335 detects the angle θ 5 formed by the fourth arm 314 and the fifth arm 315. The angle sensor of the sixth drive unit 336 detects the angle θ 6 between the reference attitude of the tool 32 in the coordinate system of the fifth arm 315 and the current attitude. In other words, it is detected how much the tool 32 has rotated from the reference posture.

そして、第一の駆動ユニット331ないし第六の駆動ユニット336それぞれの角度センサは、検出した角度θ~θを、通信インタフェース35を介してコンピュータ2へ送信する。ロボット3の姿勢は、ベース30に対する第一のアーム311の姿勢、第一のアーム311に対する第二のアーム312の姿勢、第二のアーム312に対する第三のアーム313の姿勢、第三のアーム313に対する第四のアーム314、第四のアーム314に対する第五のアーム315の姿勢、および第五のアーム315に対するツール32の姿勢によって決まる。したがって、ロボット3の姿勢は、角度θ~θによって特定される。 The angle sensors of each of the first drive unit 331 to the sixth drive unit 336 transmit the detected angles θ 1 to θ 6 to the computer 2 via the communication interface 35. The postures of the robot 3 include the posture of the first arm 311 with respect to the base 30, the posture of the second arm 312 with respect to the first arm 311, the posture of the third arm 313 with respect to the second arm 312, and the posture of the third arm 313 with respect to the second arm 312. The posture of the fourth arm 314 relative to the fourth arm 314 , the posture of the fifth arm 315 relative to the fourth arm 314 , and the posture of the tool 32 relative to the fifth arm 315 . Therefore, the posture of the robot 3 is specified by the angles θ 1 to θ 6 .

コントローラ34は、第一のアーム311ないし第五のアーム315およびツール32がコンピュータ2からの指令の通りの姿勢になるように第一の駆動ユニット331ないし第六の駆動ユニット336を制御する。また、コンピュータ2からの指令の通りにツール32のハンドが開閉するようにツール32のモータなどを制御する。 The controller 34 controls the first drive unit 331 to the sixth drive unit 336 so that the first arm 311 to the fifth arm 315 and the tool 32 take the postures as instructed by the computer 2. It also controls the motor of the tool 32 so that the hand of the tool 32 opens and closes according to instructions from the computer 2.

通信インタフェース35は、USB(Universal Serial Bus)アダプタもしくはNIC(Network Interface Card)などの有線の規格のインタフェース装置またはBluetoothアダプタもしくはWi-Fiアダプタなどの無線の規格の通信装置であって、コンピュータ2との間でデータを送受信する。 The communication interface 35 is a wired standard interface device such as a USB (Universal Serial Bus) adapter or NIC (Network Interface Card), or a wireless standard communication device such as a Bluetooth adapter or a Wi-Fi adapter, and is connected to the computer 2. Send and receive data between.

コンピュータ2は、ロボット3の最適な動作計画をプロセスマイニングによって算出する。以下、コンピュータ2としてラップトップ型のパーソナルコンピュータが用いられる場合を例に説明する。 The computer 2 calculates an optimal motion plan for the robot 3 by process mining. An example in which a laptop personal computer is used as the computer 2 will be described below.

コンピュータ2は、図3に示すように、メインプロセッサ20、RAM(Random Access Memory)21、ROM(Read Only Memory)22、補助記憶装置23、通信インタフェース24、ディスプレイ25、キーボード26、およびポインティングデバイス27などによって構成される。 As shown in FIG. 3, the computer 2 includes a main processor 20, a RAM (Random Access Memory) 21, a ROM (Read Only Memory) 22, an auxiliary storage device 23, a communication interface 24, a display 25, a keyboard 26, and a pointing device 27. It is composed of etc.

ROM22または補助記憶装置23には、オペレーティングシステムのほか動作計画プログラム40などのコンピュータプログラムがインストールされている。 In addition to the operating system, computer programs such as a motion planning program 40 are installed in the ROM 22 or the auxiliary storage device 23.

RAM21は、コンピュータ2のメインメモリである。RAM21には、適宜、動作計画プログラム40などのコンピュータプログラムがロードされる。 RAM 21 is the main memory of the computer 2. Computer programs such as the motion planning program 40 are loaded into the RAM 21 as appropriate.

メインプロセッサ20は、RAM21にロードされたコンピュータプログラムを実行する。メインプロセッサ20として、GPU(Graphics Processing Unit)またはCPU(Central Processing Unit)などが用いられる。 Main processor 20 executes a computer program loaded into RAM 21. As the main processor 20, a GPU (Graphics Processing Unit), a CPU (Central Processing Unit), or the like is used.

通信インタフェース24は、ロボット3との間でデータの送受信を行う。通信インタフェース24として、ロボット3で採用される規格の通信装置が用いられる。 The communication interface 24 sends and receives data to and from the robot 3. As the communication interface 24, a communication device of the standard adopted by the robot 3 is used.

ディスプレイ25は、コマンドもしくはデータを入力するための画面またはメインプロセッサ20による演算の結果を表わす画面などを表示する。 The display 25 displays a screen for inputting commands or data, a screen showing the results of calculations by the main processor 20, or the like.

キーボード26およびポインティングデバイス27は、コマンドまたはデータなどをオペレータが入力するための入力装置である。 The keyboard 26 and pointing device 27 are input devices for an operator to input commands, data, and the like.

動作計画プログラム40によると、図4に示す作業ログ取得部401、作業ログ記憶部402、識別子付与部403、イベントログ生成部404、ペトリネット生成部405、ペトリネット記憶部406、最適動作計画決定部407、動作検証部408、および動作プログラム生成部409などの機能が実現される。そして、次の5つのサービスが提供され、ロボット3の動作計画の最適化が図られる。
・ロボット3のイベントログの取得
・ペトリネットの生成
・ペトリネットシミュレーションによる最適動作計画の決定
・動作プログラムの生成
・ロボット3への動作プログラムの実装
以下、作業ログ取得部401ないし動作プログラム生成部409の各機能および5つの各サービスについて順次、説明する。
According to the motion planning program 40, the work log acquisition section 401, the work log storage section 402, the identifier assignment section 403, the event log generation section 404, the Petri net generation section 405, the Petri net storage section 406, and the optimal motion plan determination shown in FIG. Functions such as a section 407, an operation verification section 408, and an operation program generation section 409 are realized. Then, the following five services are provided, and the motion plan of the robot 3 is optimized.
- Acquisition of event log of robot 3 - Generation of Petri net - Determination of optimal motion plan by Petri net simulation - Generation of motion program - Implementation of motion program in robot 3 Below, work log acquisition unit 401 to motion program generation unit 409 Each function and each of the five services will be explained in turn.

〔2. 各部の処理〕
〔2.1 ロボット3のイベントログの取得〕
[2. Processing of each part]
[2.1 Obtaining event log of robot 3]

(1)生データの収集
図5は、第一のワーク51および第二のワーク52の移動の例を示す図である。図6は、作業ログ61、62の例を示す図である。
(1) Collection of raw data FIG. 5 is a diagram showing an example of movement of the first workpiece 51 and the second workpiece 52. FIG. 6 is a diagram showing an example of work logs 61 and 62.

作業ログ取得部401は、特定の作業を様々な手順でロボット3が実行した際の作業ログを取得する。以下、第一のワーク51および第二のワーク52をそれぞれ第一の位置および第二の位置から第三の位置へ移動させる作業を例に、作業ログの収集について説明する。 The work log acquisition unit 401 acquires work logs when the robot 3 executes a specific work in various procedures. Hereinafter, collection of work logs will be described using as an example the work of moving the first workpiece 51 and the second workpiece 52 from the first position and the second position to the third position, respectively.

この作業を達成するための手順として、様々な手順が考えられる。第一のワーク51および第二のワーク52の移動の仕方だけでも、複数通りある。例えば、図5(A)または図5(B)に示すように第一のワーク51および第二のワーク52を移動させることができる。図5(A)に示すように第一のワーク51を第三の位置へ移動させてから第二のワーク52を第三の位置へ移動させる場合に、ロボット3は、例えば次のように動作する。
#01:初期姿勢を取る
#02:ツール32のハンドで第一のワーク51をピックする(拾い上げる)姿勢を取る
#03:ハンドを閉じて第一のワーク51をピックする
#04:第一のワーク51を第一の位置から第二の位置へ中継する姿勢を取る
#05:第一のワーク51を第二のワーク52上へプレースする(置く)姿勢を取る
#06:ハンドを開いて第一のワーク51を第二のワーク52上へプレースする
#07:第一のワーク51および第二のワーク52をピックする姿勢を取る
#08:両ワークをピックする
#09:両ワークを第二の位置から第三の位置へ中継する姿勢を取る
#10:両ワークを第三の位置へプレースする姿勢を取る
#11:ハンドを開いて両ワークを第三の位置へプレースする
#12:動作終了姿勢を取る

なお、本実施形態では、初期姿勢において、ツール32のハンドが開いた状態であるものとする。ステップ#04、#09の「中継する姿勢」は、ワークを移動元(中継前の位置)から移動先(中継後の位置)へ移動させる際にツール32が中継位置を通過するときの姿勢である。中継位置は、移動元と移動先とを結ぶ直線上のちょうど真ん中の位置であってもよいし、移動元と移動先との間に障害物がある場合は障害物を避けるために障害物の上空の位置であってもよい。後述するステップ#24、#27、#30においても、同様である。
Various procedures are possible to accomplish this task. There are multiple ways to move the first workpiece 51 and the second workpiece 52. For example, the first workpiece 51 and the second workpiece 52 can be moved as shown in FIG. 5(A) or FIG. 5(B). When moving the first workpiece 51 to the third position and then moving the second workpiece 52 to the third position as shown in FIG. 5(A), the robot 3 operates as follows, for example. do.
#01: Take the initial posture #02: Take the posture of picking up the first workpiece 51 with the hand of the tool 32 #03: Close the hand and pick the first workpiece 51 #04: The first workpiece 51 Take a position to relay the work 51 from the first position to the second position #05: Take a position to place (place) the first work 51 onto the second work 52 #06: Open the hand and take the position Place the first workpiece 51 onto the second workpiece 52 #07: Take a posture to pick the first workpiece 51 and the second workpiece 52 #08: Pick both workpieces #09: Place both workpieces on the second workpiece 52 Take a posture to relay from the position to the third position #10: Take a posture to place both workpieces to the third position #11: Open the hand and place both workpieces to the third position #12: Movement take the finishing position

In this embodiment, it is assumed that the hand of the tool 32 is in an open state in the initial posture. The "relaying posture" in steps #04 and #09 is the posture in which the tool 32 passes through the relaying position when moving the workpiece from the source (position before relaying) to the destination (position after relaying). be. The relay position may be the exact middle position on the straight line connecting the movement source and movement destination, or if there is an obstacle between the movement source and movement destination, It may be located in the sky. The same applies to steps #24, #27, and #30, which will be described later.

または、図5(B)に示すように第一のワーク51を第二のワーク52の上に載せて両ワークを一緒に第三の位置へ移動させる場合に、ロボット3は、例えば次のように動作する。
#21:初期姿勢を取る
#22:ツール32のハンドで第一のワーク51をピックする姿勢を取る
#23:ハンドを閉じて第一のワーク51をピックする
#24:第一のワーク51を第一の位置から第三の位置へ中継する姿勢を取る
#25:第一のワーク51を第三の位置へプレースする姿勢を取る
#26:ハンドを開いて第一のワーク51を第三の位置へプレースする
#27:ツール32を第三の位置から第二の位置へ移動させる姿勢(中継姿勢)を取る
#28:ハンドで第二のワーク52をピックする姿勢を取る
#29:ハンドを閉じて第二のワーク52をピックする
#30:第二のワーク52を第二の位置から第三の位置へ中継する姿勢を取る
#31:第二のワーク52を第三の位置へプレースする姿勢を取る
#32:ハンドを開いて第二のワーク52を第三の位置へプレースする
#33:動作終了姿勢を取る

ところで、第一のワーク51および第二のワーク52をステップ#01~#12の手順およびステップ#21~#33の手順以外の手順で移動させることもできる。例えば、第一のワーク51よりも先に第二のワーク52を移動させてもよい。または、第四の位置に一時的に第一のワーク51および第二のワーク52を置き、両ワークを一緒に第四の位置から第三の位置へ移動させてもよい。また、障害物の避け方も、複数あり得る。例えば、ツール32が障害物の上を跨ぐような姿勢を取ってもよいし、障害物の横を迂回するような姿勢を取ってもよい。
Alternatively, when placing the first workpiece 51 on top of the second workpiece 52 and moving both workpieces together to the third position as shown in FIG. 5(B), the robot 3 may, for example, works.
#21: Take the initial posture #22: Take the posture of picking the first work 51 with the hand of the tool 32 #23: Close the hand and pick the first work 51 #24: Pick the first work 51 Take a position to relay from the first position to the third position #25: Take a position to place the first workpiece 51 to the third position #26: Open the hand and move the first workpiece 51 to the third position Place to position #27: Take a posture to move the tool 32 from the third position to the second position (relay posture) #28: Take a posture to pick the second workpiece 52 with the hand #29: Take the hand Close and pick the second work 52 #30: Take a posture to relay the second work 52 from the second position to the third position #31: Place the second work 52 to the third position Take a posture #32: Open the hand and place the second workpiece 52 to the third position #33: Take a posture to end the movement

By the way, the first workpiece 51 and the second workpiece 52 can also be moved by procedures other than steps #01 to #12 and steps #21 to #33. For example, the second work 52 may be moved before the first work 51. Alternatively, the first workpiece 51 and the second workpiece 52 may be temporarily placed at the fourth position, and both workpieces may be moved together from the fourth position to the third position. There may also be multiple ways to avoid obstacles. For example, the tool 32 may take a posture in which it straddles an obstacle, or may take a posture in which it detours around the obstacle.

したがって、2つのワークを所定の位置(第三の位置)へ移動させる作業の手順は、上記のステップ#01~#12の手順およびステップ#21~#33の手順の2通りだけでなく、何通りにもなり得る。しかし、本実施形態では、説明の簡単のため、ステップ#01~#12の手順およびステップ#21~#33の手順の2通りについて作業ログを取得する場合を例に説明する。 Therefore, the procedure for moving the two workpieces to a predetermined position (third position) is not limited to the above-mentioned steps #01 to #12 and steps #21 to #33. It can also be a street. However, in the present embodiment, for the sake of simplicity, a case will be described using as an example a case where work logs are obtained for two procedures: steps #01 to #12 and steps #21 to #33.

オペレータは、ステップ#01~#12それぞれにおけるロボット3の動作をロボット3へ教示し、作業ログ取得部401は、そのときにロボット3から得られる情報などを取得し、作業ログとして作業ログ記憶部402に記憶させる。同様に、オペレータは、ステップ#21~#33それぞれにおけるロボット3の動作をロボット3へ教示し、作業ログ取得部401は、そのときにロボット3から得られる情報などを取得し、作業ログとして作業ログ記憶部402に記憶させる。教示の仕方は、従来のオンラインティーチングの場合と同様であり、オペレータがロボット3の各部に直接触れて動かすことによって(つまり、手動で)教示してもよいし、操作端末から指令を与えて動かすことによって教示してもよい。 The operator teaches the robot 3 how to operate the robot 3 in each of steps #01 to #12, and the work log acquisition unit 401 acquires information obtained from the robot 3 at that time and stores it in the work log storage unit as a work log. 402. Similarly, the operator teaches the robot 3 how to operate the robot 3 in each of steps #21 to #33, and the work log acquisition unit 401 acquires the information obtained from the robot 3 at that time and records the work as a work log. It is stored in the log storage unit 402. The teaching method is the same as in conventional online teaching, and the operator can teach by touching and moving each part of the robot 3 directly (that is, manually), or by giving commands from the operating terminal. It may also be taught by

例えば、オペレータは、ステップ#01~#12の手順による作業の各ステップを次のように教示し、作業ログ取得部401は、次のように作業ログを取得する。 For example, the operator instructs each step of the work according to steps #01 to #12 as follows, and the work log acquisition unit 401 acquires the work log as follows.

オペレータは、ステップ#01の動作の教示のために、ロボット3に初期姿勢を取らせる。そして、動作タイプとして「pose」をコンピュータ2または操作端末などへ入力する。 The operator causes the robot 3 to assume an initial posture in order to teach the operation in step #01. Then, "pose" is input as the action type to the computer 2 or the operation terminal.

すると、作業ログ取得部401は、初期姿勢を取った時点の角度θ~θをロボット3に検出させて取得する。そして、初期姿勢を取った時点の時刻を完了時刻として示し、取得した角度θ~θをパラメータとして示し、かつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる(図6(A)参照)。 Then, the work log acquisition unit 401 causes the robot 3 to detect and acquire the angles θ 1 to θ 6 at the time when the robot 3 takes the initial posture. Then, motion data is generated that indicates the time when the initial posture is taken as the completion time, indicates the acquired angles θ 1 to θ 6 as parameters, and indicates the input motion type, and stores it in the work log storage unit 402. (See FIG. 6(A)).

オペレータは、ステップ#02の動作の教示のために、ツール32で第一のワーク51をピックできる姿勢をロボット3に取らせる。そして、動作タイプとして「pose」を入力する。 The operator makes the robot 3 take a posture in which it can pick the first workpiece 51 with the tool 32 in order to teach the operation in step #02. Then, input "pose" as the motion type.

すると、作業ログ取得部401は、ステップ#10の場合と同様に、この姿勢を取った時点の角度θ~θをロボット3に検出させて取得する。そして、この時点の時刻を完了時刻として示し、取得した角度θ~θをパラメータとして示し、かつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。 Then, the work log acquisition unit 401 causes the robot 3 to detect and acquire the angles θ 1 to θ 6 at the time when the robot 3 takes this posture, as in step #10. Then, motion data is generated that indicates the time at this point as the completion time, indicates the acquired angles θ 1 to θ 6 as parameters, and indicates the input motion type, and stores it in the work log storage unit 402.

オペレータは、ステップ#03の動作の教示のために、第一のワーク51をピックするようにツール32のハンドを閉じさせる。そして、動作タイプとして「grasp」を入力する。 The operator closes the hand of the tool 32 to pick the first workpiece 51 in order to teach the operation of step #03. Then, input "grasp" as the operation type.

すると、作業ログ取得部401は、ハンドが閉じた時点の時刻を完了時刻として示しかつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。なお、ツール32のハンドの閉じ加減を示す値がパラメータとして動作データに示されるようにしてもよい。以下、同様である。 Then, the work log acquisition unit 401 generates action data that indicates the time when the hand is closed as the completion time and the input action type, and stores it in the work log storage unit 402. Note that a value indicating the degree of closing of the hand of the tool 32 may be shown as a parameter in the motion data. The same applies hereafter.

オペレータは、ステップ#04の動作の教示のために、ツール32が第二の位置への中継位置に配置される姿勢をロボット3に取らせる。そして、動作タイプとして「pose」を入力する。 In order to teach the operation in step #04, the operator causes the robot 3 to assume a posture in which the tool 32 is placed at a relay position to the second position. Then, input "pose" as the motion type.

すると、ステップ#01、#02の場合と同様に、作業ログ取得部401は、この姿勢を取った時点の角度θ~θをロボット3に検出させて取得する。そして、この時点の時刻を完了時刻として示し、取得した角度θ~θをパラメータとして示し、かつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。 Then, similarly to steps #01 and #02, the work log acquisition unit 401 causes the robot 3 to detect and acquire the angles θ 1 to θ 6 at the time when the robot 3 takes this posture. Then, motion data is generated that indicates the time at this point as the completion time, indicates the acquired angles θ 1 to θ 6 as parameters, and indicates the input motion type, and stores it in the work log storage unit 402.

オペレータは、ステップ#05の動作の教示のために、ロボット3に、第二のワーク52の上に第一のワーク51を置くことができる姿勢を取らせる。そして、動作タイプとして「pose」を入力する。 The operator makes the robot 3 assume a posture in which it can place the first workpiece 51 on the second workpiece 52 in order to teach the operation in step #05. Then, input "pose" as the motion type.

すると、ステップ#01、#02、#04の場合と同様に、作業ログ取得部401は、この姿勢を取った時点の角度θ~θをロボット3に検出させて取得する。そして、この時点の時刻を完了時刻として示し、取得した角度θ~θをパラメータとして示し、かつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。 Then, similarly to steps #01, #02, and #04, the work log acquisition unit 401 causes the robot 3 to detect and acquire the angles θ 1 to θ 6 at the time when the robot 3 takes this posture. Then, motion data is generated that indicates the time at this point as the completion time, indicates the acquired angles θ 1 to θ 6 as parameters, and indicates the input motion type, and stores it in the work log storage unit 402.

オペレータは、ステップ#06の動作の教示のために、第一のワーク51をプレースするようにツール32のハンドを開かせる。そして、動作タイプとして「release」を入力する。 The operator opens the hand of the tool 32 to place the first workpiece 51 in order to teach the operation in step #06. Then, input "release" as the operation type.

すると、作業ログ取得部401は、ハンドが開いた時点の時刻を完了時刻として示しかつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。 Then, the work log acquisition unit 401 generates action data that indicates the time when the hand is opened as the completion time and the input action type, and stores it in the work log storage unit 402.

動作タイプをオペレータが入力する代わりに、ロボット3の動きに基づいて作業ログ取得部401が動作タイプを判別してもよい。例えば、オペレータがロボット3を動かすのを止めたら、「pose」と判別する。または、オペレータが閉じる方向へツール32のハンドを動かしたら「grasp」と判別する。または、オペレータが開く方向へツール32のハンドを動かしたら「release」と判別する。 Instead of the operator inputting the motion type, the work log acquisition unit 401 may determine the motion type based on the movement of the robot 3. For example, when the operator stops moving the robot 3, it is determined that it is in "pose". Alternatively, if the operator moves the hand of the tool 32 in the closing direction, it is determined as "grasp". Alternatively, if the operator moves the hand of the tool 32 in the direction of opening, it is determined as "release".

ステップ#06以降についても同様の要領で、オペレータはロボット3へ動作を教示し、作業ログ取得部401は、動作データを生成して作業ログ記憶部402に記憶させる。これにより、図6(A)に示すような12個の動作データが作業ログ記憶部402に記憶される。これらの動作データの集合が、ステップ#01~#12の手順に係る作業ログ61である。なお、「識別子」は、ペトリネットの生成のために後に付与されるものである。動作データが生成された時点において、識別子はNullである。 For steps #06 and subsequent steps, the operator instructs the robot 3 in the same manner, and the work log acquisition unit 401 generates movement data and stores it in the work log storage unit 402. As a result, 12 pieces of operation data as shown in FIG. 6(A) are stored in the work log storage unit 402. A collection of these operation data is the work log 61 related to the procedure of steps #01 to #12. Note that the "identifier" is added later to generate the Petri net. At the time the motion data is generated, the identifier is Null.

また、ステップ#21~#33の手順による作業についても同様の要領で、オペレータはロボット3へ教示し、作業ログ取得部401は動作データを生成して作業ログ記憶部402に記憶させる。これにより、図6(B)に示すような13個の動作データが作業ログ記憶部402に記憶される。これらの動作データの集合が、ステップ#21~#33の手順に係る作業ログ62である。 Further, the operator instructs the robot 3 in the same manner regarding the work performed in steps #21 to #33, and the work log acquisition unit 401 generates operation data and stores it in the work log storage unit 402. As a result, 13 pieces of operation data as shown in FIG. 6(B) are stored in the work log storage unit 402. A collection of these operation data is the work log 62 related to the procedure of steps #21 to #33.

なお、オペレータは、ロボット3の各部を動かす代わりにロボット3のシミュレータへ動作(姿勢、開閉など)を入力することによって、作業を教示してもよい。そして、作業ログ取得部401は、シミュレータに入力された動作に基づいて角度θ~θまたは動作タイプを判別することによって動作データを生成してもよい。さらに、入力された通りにロボット3の動作をシミュレータ上でシミュレートし、各ステップの動作の完了した時刻を完了時刻として動作データに示されるようにしてもよい。 Note that instead of moving each part of the robot 3, the operator may teach the work by inputting motions (posture, opening/closing, etc.) to the simulator of the robot 3. Then, the work log acquisition unit 401 may generate motion data by determining the angles θ 1 to θ 6 or the motion type based on the motion input to the simulator. Furthermore, the motion of the robot 3 may be simulated on a simulator as input, and the time at which the motion of each step is completed may be indicated in the motion data as the completion time.

(2)データの加工
識別子付与部403およびイベントログ生成部404は、作業ログ記憶部402に記憶されたデータをペトリネットの生成のために加工する。以下、図6に示す作業ログ61、62を加工する場合を例に、識別子付与部403およびイベントログ生成部404の処理について説明する。
(2) Data processing The identifier assigning unit 403 and the event log generating unit 404 process the data stored in the work log storage unit 402 in order to generate a Petri net. The processing of the identifier assigning section 403 and the event log generating section 404 will be described below, taking as an example the case where the work logs 61 and 62 shown in FIG. 6 are processed.

識別子付与部403は、作業ログ61に含まれる動作データそれぞれが表わす動作および作業ログ62に含まれる動作データそれぞれが表わす動作に対してユニークな識別子を付与する。ただし、同一の動作に対しては同一の識別子を付与する。例えば、次のように識別子を付与する。 The identifier assigning unit 403 assigns a unique identifier to each action represented by each action data included in the work log 61 and each action represented by each action data included in the work log 62. However, the same identifier is assigned to the same operation. For example, assign an identifier as follows.

識別子付与部403は、作業ログ61に含まれる動作データそれぞれが表わす動作に対してユニークな識別子を1つずつ付与する。すなわち、作業ログ61には12個の動作データが含まれるので、12個の動作それぞれに対して、「a」、「b」、「c」、…、「j」、「k」、「l」という識別子を付与する。 The identifier assigning unit 403 assigns a unique identifier to each action represented by each action data included in the work log 61. That is, since the work log 61 includes 12 pieces of action data, "a", "b", "c", ..., "j", "k", "l" are written for each of the 12 actions. ” is assigned an identifier.

さらに、識別子付与部403は、作業ログ62に含まれる動作データそれぞれが表わす動作のうちの、作業ログ61に含まれるいずれかの動作データが表わす動作と同一であるものを選出する。具体的には、動作タイプおよび動作時の姿勢が同一であるものを選出する。そして、選出した動作の識別子を付与する。 Further, the identifier assigning unit 403 selects, from among the actions represented by each of the action data included in the work log 62, the action that is the same as the action represented by any of the action data included in the work log 61. Specifically, those having the same motion type and the same posture during motion are selected. Then, an identifier of the selected action is assigned.

例えば、完了時刻T21(ステップ#21)での動作は、動作タイプが「pose」であり、かつ、角度(θ,θ,θ,θ,θ,θ)が(θ1_21,θ2_21,θ3_21,θ4_21,θ5_21,θ6_21)である姿勢のものである。一方、完了時刻T01(ステップ#01)での動作は、動作タイプが「pose」であり、かつ、角度(θ,θ,θ,θ,θ,θ)が(θ1_01,θ2_01,θ3_01,θ4_01,θ5_01,θ6_01)である姿勢のものである。 For example, in the operation at completion time T 21 (step #21), the operation type is "pose" and the angles (θ 1 , θ 2 , θ 3 , θ 4 , θ 5 , θ 6 ) are (θ 1_21 , θ 2_21 , θ 3_21 , θ 4_21 , θ 5_21 , θ 6_21 ). On the other hand, for the operation at completion time T 01 (step #01), the operation type is "pose" and the angles (θ 1 , θ 2 , θ 3 , θ 4 , θ 5 , θ 6 ) are (θ 1_01 , θ 2_01 , θ 3_01 , θ 4_01 , θ 5_01 , θ 6_01 ).

つまり、完了時刻T21での動作タイプは、完了時刻T01での動作タイプと同一である。したがって、完了時刻T21での姿勢が完了時刻T01での姿勢と同一であれば、完了時刻T01での動作と同一の動作として、完了時刻T21での動作が選出される。 That is, the operation type at completion time T21 is the same as the operation type at completion time T01 . Therefore, if the posture at completion time T21 is the same as the posture at completion time T01 , the motion at completion time T21 is selected as the same motion as the motion at completion time T01 .

しかし、オペレータがロボット3を動かして作業ログを取得する場合は、両完了時刻で同一の姿勢を取らせたつもりでも、若干のズレを生じることがある。 However, when the operator moves the robot 3 to obtain a work log, a slight deviation may occur even if the operator intends to have the robot 3 assume the same posture at both completion times.

そこで、識別子付与部403は、角度θ1_01と角度θ1_21との差の絶対値、角度θ2_01と角度θ2_21との差の絶対値、角度θ3_01と角度θ3_21との差の絶対値、角度θ4_01と角度θ4_21との差の絶対値、角度θ5_01と角度θ5_21との差の絶対値、および角度θ6_01と角度θ6_21との差の絶対値がいずれも、同一であると許容可能な範囲内の値であれば、完了時刻T21での姿勢および完了時刻T01での姿勢を同一と見做す。以下、両姿勢を同一であると見做した場合を例に説明する。したがって、識別子付与部403は、完了時刻T21の動作と同一の動作として完了時刻T01の動作を選出する。そして、完了時刻T21の動作に対して、完了時刻T01の動作の識別子を付与する。本例では、「a」を与える。 Therefore, the identifier assigning unit 403 includes the absolute value of the difference between angle θ 1_01 and angle θ 1_21 , the absolute value of the difference between angle θ 2_01 and angle θ 2_21 , the absolute value of the difference between angle θ 3_01 and angle θ 3_21 , The absolute value of the difference between angle θ 4_01 and angle θ 4_21 , the absolute value of the difference between angle θ 5_01 and angle θ 5_21 , and the absolute value of the difference between angle θ 6_01 and angle θ 6_21 are all the same. If the value is within an allowable range, the posture at the completion time T21 and the posture at the completion time T01 are considered to be the same. In the following, a case will be explained in which both postures are considered to be the same. Therefore, the identifier assigning unit 403 selects the operation at the completion time T 01 as the same operation as the operation at the completion time T 21 . Then, the identifier of the operation at the completion time T 01 is assigned to the operation at the completion time T 21 . In this example, "a" is given.

完了時刻T22以降の各動作についても同様の方法で、作業ログ61に示される各動作の動作タイプおよび姿勢と比較することによって、同一であるものを選出し、識別子を付与する。ただし、動作タイプが「grasp」または「release」である動作の姿勢は、動作タイプが「pose」である直近の動作の動作データのパラメータによって表わされている。例えば、完了時刻T03の動作の姿勢は、完了時刻T02の動作データのパラメータによって表わされている。 The same method is used for each operation after the completion time T22 , by comparing the operation type and posture of each operation shown in the work log 61, selecting the same one, and assigning an identifier. However, the posture of the motion whose motion type is "grasp" or "release" is represented by the parameter of the motion data of the most recent motion whose motion type is "pose." For example, the posture of the motion at the completion time T03 is represented by the parameters of the motion data at the completion time T02 .

以下、さらに、完了時刻T22、T23、T28、T29、T30、T31、T32、およびT33それぞれの動作と同一の動作として、完了時刻T02、T03、T07、T08、T09、T10、T11、およびT12それぞれの動作が選出され、図6(B)に示す通りに識別子が付与された場合を例に説明する。 Hereinafter, the same operations as those at the completion times T 22 , T 23 , T 28 , T 29 , T 30 , T 31 , T 32 , and T 33 are performed at the completion times T 02 , T 03 , T 07 , An example will be described in which the operations T 08 , T 09 , T 10 , T 11 , and T 12 are selected and assigned identifiers as shown in FIG. 6(B).

また、識別子付与部403は、作業ログ62に含まれる動作データに示される動作のうち、作業ログ61に含まれる動作データに示されるいずれの動作とも同一でないものに対して、ユニークな識別子を付与する。以下、完了時刻T24~T27の各動作が完了時刻T01~T12のいずれの動作とも同一でない場合を例に説明する。したがって、識別子付与部403は、図6(B)に示すように、完了時刻T24~T27の各動作に対してユニークな識別子を付与する。 Further, the identifier assigning unit 403 assigns a unique identifier to an action that is not the same as any action indicated in the action data included in the work log 61 among the actions indicated in the action data included in the work log 62. do. Hereinafter, a case will be described using as an example a case where each operation at completion times T 24 to T 27 is not the same as any operation at completion times T 01 to T 12 . Therefore, the identifier assigning unit 403 assigns a unique identifier to each operation from completion time T 24 to T 27 , as shown in FIG. 6(B).

ところで、後述するように本実施形態ではαアルゴリズムが用いられる。αアルゴリズムにおいて、各ステップの動作は「タスク」に対応している。そこで、以下、各ステップの動作を「タスク」と記載することがある。 By the way, as described later, the α algorithm is used in this embodiment. In the α algorithm, each step corresponds to a "task". Therefore, hereinafter, the operation of each step may be referred to as a "task".

イベントログ生成部404は、作業ログ61および作業ログ62ならびに識別子付与部403によって付与された識別子に基づいてイベントログLを生成する。イベントログLは、
{(a,b,c,d,e,f,g,h,i,j,k,l),(a,b,c,n,o,p,m,g,h,i,j,k,l)}
を表わす。このうちの(a,b,c,d,e,f,g,h,i,j,k,l)は、作業ログ61に含まれる動作データに示される各タスク(動作)の識別子を時刻順に並べたものである。また、(a,b,c,n,o,p,m,g,h,i,j,k,l)は、作業ログ62に含まれる動作データに示される各タスクの識別子を時刻順に並べたものである。
The event log generation unit 404 generates an event log L based on the work logs 61 and 62 and the identifier assigned by the identifier assignment unit 403. Event log L is
{(a,b,c,d,e,f,g,h,i,j,k,l),(a,b,c,n,o,p,m,g,h,i,j, k,l)}
represents. Of these, (a, b, c, d, e, f, g, h, i, j, k, l) is the time identifier of each task (action) shown in the action data included in the work log 61. They are arranged in order. In addition, (a, b, c, n, o, p, m, g, h, i, j, k, l) is the identifier of each task shown in the operation data included in the work log 62 arranged in chronological order. It is something that

イベントログLの中の直列経路を
A={a,b,c} B={d,e,f} C={n,o,p,m} D={g,h,i,j,k,l} のように纏めると、イベントログLを{(A,B,D),(A,C,D)}と表わすことができる。
The serial path in event log L is A={a,b,c} B={d,e,f} C={n,o,p,m} D={g,h,i,j,k ,l}, the event log L can be expressed as {(A,B,D),(A,C,D)}.

〔2.2 ペトリネットの生成〕
図7は、ペトリネット7の例を示す図である。
[2.2 Generation of Petri net]
FIG. 7 is a diagram showing an example of the Petri net 7.

ペトリネット生成部405は、αアルゴリズムに基づいてイベントログLの中のタスク同士の順序関係からモデル構成要素を出力することによって、図7のようなペトリネット7を生成する。ペトリネット7は、ペトリネット記憶部406に記憶される。 The Petri net generation unit 405 generates a Petri net 7 as shown in FIG. 7 by outputting model components from the order relationship between tasks in the event log L based on the α algorithm. Petri net 7 is stored in Petri net storage section 406.

αアルゴリズムは、プロセスモデルとしてペトリネット(ペトリネットモデル)を生成するためのプロセスマイニングの公知のアルゴリズムであって、次の公知文献1、2に説明されている。また、αアルゴリズムをコンピュータプログラムに実装する方法の一例が公知文献3に説明されている。
〔公知文献1〕W. van der Aalst, T. Weijters, L. Maruster, “Workflow mining: discovering process models from event logs", IEEE Transactions on Knowledge and Data Engineering, Vol. 16, No. 9, pp. 1128-1142, (2004).
〔公知文献2〕飯島正, 田端啓一, 斎藤忍, “プロセスマイニング・サーベイ(第04 回:アルゴリズム(1) )", 情報システム学会誌, Vol. 13, No. 1, pp. 43-45, (2017). https://www.issj.net/journal/jissj/Vol13_No1_Open/A4V13N1.pdf
〔公知文献3〕"Python でプロセスマイニングのα アルゴリズムを実装して理解する", https://ownsearch-and-study.xyz/2019/11/06/python-processmining-alpha-implementation/
ペトリネット7は、同時並行、非同期、分散、並列、決定論的、および確率論的なシステムを表わすための数学的モデルであって、条件を表わすプレースおよび事象を表わすトランジションの2種類のノードを有する二部有向グラフである。または、離散事象システムのモデルであると、言える。図7において、円形のノードがプレースであり、長方形のノードがトランジションである。プレースとトランジションとは、アークによって結ばれる。アークは矢印を有する線分によって表わされている。このように、プレース、トランジション、およびアークによってペトリネット7の構造が特定される。
The α algorithm is a well-known process mining algorithm for generating a Petri net (Petri net model) as a process model, and is explained in the following known documents 1 and 2. Furthermore, an example of a method for implementing the α algorithm in a computer program is described in Publication No. 3.
[Known Document 1] W. van der Aalst, T. Weijters, L. Maruster, “Workflow mining: discovering process models from event logs”, IEEE Transactions on Knowledge and Data Engineering, Vol. 16, No. 9, pp. 1128 -1142, (2004).
[Known Document 2] Tadashi Iijima, Keiichi Tabata, Shinobu Saito, “Process Mining Survey (No. 4: Algorithm (1))”, Journal of the Society of Information Systems, Vol. 13, No. 1, pp. 43-45, (2017). https://www.issj.net/journal/jissj/Vol13_No1_Open/A4V13N1.pdf
[Public Publication 3] "Implementing and understanding the process mining alpha algorithm in Python", https://ownsearch-and-study.xyz/2019/11/06/python-processmining-alpha-implementation/
Petri Net 7 is a mathematical model for representing concurrent, asynchronous, distributed, parallel, deterministic, and stochastic systems, and consists of two types of nodes: places representing conditions and transitions representing events. is a bipartite directed graph with Alternatively, it can be said to be a model of a discrete event system. In FIG. 7, circular nodes are places and rectangular nodes are transitions. Places and transitions are connected by arcs. Arcs are represented by line segments with arrows. In this way, the structure of the Petri net 7 is specified by places, transitions, and arcs.

プレースの中の黒点は、トークンである。p4のプレースからアークが複数(2つ)伸びているが、これは、トークンが複数になるのではなく、トークンが1つにのみ選択的に進むことを表わしている。なお、図7には示されていないが、トランジションから複数のアークが延びている場合は、トークンが複数になり、それぞれの接続先のプレースへトークンが1つずつ進む。 The black dots in the places are tokens. There are multiple (two) arcs extending from the place p4, but this represents that the tokens selectively advance only to one, rather than to multiple tokens. Although not shown in FIG. 7, if a plurality of arcs extend from the transition, there will be a plurality of tokens, and the tokens will advance one by one to each destination place.

ペトリネット生成部405は、αアルゴリズムに基づいてイベントログLからプレース、トランジション、およびアークそれぞれの集合をP、T、およびFを算出する。本例では、P、T、およびF
=[[A,{B,C}],[{B,C},D],i,o]
={A,B,C,D}
=[A[A,{B,C}],[[A,{B,C}]B],[[A,{B,C}]C],[B[{B,C},D]],
[C[{B,C},D], [[{B,C},D],D],[i,A],[D,o]]]
のように算出される。P、T、およびFに基づいてペトリネット7を図7のように描画することができる。また、次に説明するペトリネットシミュレーションにおいて、ペトリネット7は、M×Mの接続行列によって表わされて使用される。「M」および「M」は、それぞれ、ペトリネット7のトランジションおよびプレースの個数であって、図7の例では、ともに「16」である。
The Petri net generation unit 405 calculates sets of places, transitions, and arcs P L , T L , and F L from the event log L based on the α algorithm. In this example, P L , T L , and F L are P L =[[A,{B,C}],[{B,C},D],i L ,o L ]
T L = {A, B, C, D}
F L = [A[A,{B,C}],[[A,{B,C}]B],[[A,{B,C}]C],[B[{B,C}, D]],
[C[{B,C},D], [[{B,C},D],D],[i L ,A],[D,o L ]]]
It is calculated as follows. The Petri net 7 can be drawn as shown in FIG. 7 based on P L , T L , and F L . In addition, in the Petri net simulation described below, the Petri net 7 is represented by a connection matrix of M T ×M P and used. “M T ” and “M P ” are the numbers of transitions and places of the Petri net 7, respectively, and in the example of FIG. 7, both are “16”.

ペトリネット7は、図7のように画像化されてディスプレイ25によって表示される。または、プリンタによって印刷される。 The Petri net 7 is converted into an image and displayed on the display 25 as shown in FIG. Or printed by a printer.

〔2.3 ペトリネットシミュレーションによる最適動作計画の決定〕
最適動作計画決定部407は、ロボット3に行わせる作業の最適な動作計画を決定する。以下、第一のワーク51および第二のワーク52をそれぞれ第一の位置および第二の位置から第三の位置へ移動させる作業の最適な動作計画を決定する場合を例に、最適動作計画決定部407の処理を説明する。
[2.3 Determination of optimal motion plan using Petri net simulation]
The optimal motion plan determining unit 407 determines the optimal motion plan for the work to be performed by the robot 3. In the following, the optimal motion plan determination will be described using an example of determining the optimal motion plan for moving the first workpiece 51 and the second workpiece 52 from the first position and the second position to the third position, respectively. The processing of section 407 will be explained.

最適動作計画決定部407は、ペトリネット7の中から初期トークンおよび目標トークンそれぞれの位置をp1のプレースおよびp16のプレースとする発火系列をN通り、ランダムに選択する。 The optimal motion plan determining unit 407 randomly selects N firing sequences in which the positions of the initial token and the target token are p1 and p16 from the Petri net 7, respectively.

具体的には、最適動作計画決定部407は、p1のプレースの位置にトークンを置き、ペトリネットの発火則に従ってトークンをp16のプレースまで遷移させる。その途中で、複数のアークに分岐するプレースにトークンが達するごとに、これらのアークのうちのいずれか1つをランダムに選択し、選択したアークの接続先のトランジションへトークンを進める。このような遷移を1回行うことによって、1つの発火系列を取得できる。このような遷移を繰り返し行うことによって、N通りの発火系列を取得し選択することができる。発火系列は、初期のプレースから目標のプレースまでの経路であると、言える。なお、Nは、2以上の整数である。コンピュータ2のスペックまたは処理時間に余裕がある場合は、全通りの発火系列を取得し選択してもよい。 Specifically, the optimal motion plan determining unit 407 places a token at the place p1 and transitions the token to the place p16 according to the firing rule of the Petri net. On the way, each time the token reaches a place that branches into multiple arcs, one of these arcs is randomly selected and the token is advanced to the transition to which the selected arc is connected. One firing sequence can be obtained by performing such a transition once. By repeating such transitions, it is possible to obtain and select N firing sequences. A firing sequence can be said to be a path from an initial place to a target place. Note that N is an integer of 2 or more. If the specifications of the computer 2 or the processing time are sufficient, all firing sequences may be acquired and selected.

本実施形態では、図7に示すように、アークが分岐するプレースがp4のプレース、1つだけであり、かつ、分岐数が2である。したがって、最多で2通りの発火系列が選択される。以下、{A,B,D}の発火系列および{A,C,D}の発火系列の2つが選択された場合を例に説明する。 In this embodiment, as shown in FIG. 7, there is only one place where the arc branches, the place p4, and the number of branches is two. Therefore, at most two firing sequences are selected. Hereinafter, a case where two firing sequences, the {A, B, D} firing sequence and the {A, C, D} firing sequence, are selected will be described as an example.

最適動作計画決定部407は、選択した発火系列それぞれについて、ペトリネットの発火則に従ってトークンの遷移を検証するとともにトークンがp1に置かれてからp16に到達するまでに要する所要時間(以下、「総発火遷移時間」と記載する。)を算出する。 For each selected firing sequence, the optimal motion plan determination unit 407 verifies the token transition according to the firing rule of the Petri net, and calculates the time required from when the token is placed at p1 to when it reaches p16 (hereinafter referred to as "total time"). Calculate the firing transition time.

総発火遷移時間を算出するために、発火系列の中の各トランジションの発火遷移時間を知っておく必要である。そこで、本実施形態では、各トランジションの発火遷移時間が次のように定められる。 In order to calculate the total firing transition time, it is necessary to know the firing transition time of each transition in the firing sequence. Therefore, in this embodiment, the firing transition time of each transition is determined as follows.

ワークを拾い上げる動作に対応するトランジション(「grasp」のタスク)の発火遷移時間は、所定の時間Tである。同様に、ワークを置く動作に対応するトランジション(「release」のタスク)の発火遷移時間を所定の時間Tである。時間T、Tとも例えば「1秒」のように同じ長さであってもよいし、異なる長さであってもよい。 The firing transition time of the transition (the "grasp" task) corresponding to the action of picking up the workpiece is a predetermined time Ta . Similarly, the firing transition time of the transition (task "release") corresponding to the action of placing the workpiece is the predetermined time Tb . The times T a and T b may be the same length, such as "1 second", or may be different lengths.

また、角度θ~θによって特定される姿勢を取る動作に対応するトランジション(「pose」のタスク)の発火遷移時間は、そのタスクが完了した時刻とそのタスクの直近のタスクが完了した時刻との差である。例えば、「b」のトランジションの発火遷移時間は、「b」のトランジションのタスクの完了時刻T02(図6参照)とその直前のトランジションすなわち「a」のトランジションのタスクの完了時刻T01との差、「T02-T01」である。ただし、1番目のトランジションの発火遷移時間は、そのトランジションのタスクの時刻と作業の開始時刻との差である。例えば、ステップ#01~#12の作業の開始時刻がT00であれば、「a」のトランジションの発火遷移時間は、「T01-T00」である。 Furthermore, the firing transition time of the transition (the "pose" task) corresponding to the action of taking a posture specified by angles θ 1 to θ 6 is the time when that task is completed and the time when the task immediately before that task is completed. This is the difference between For example, the firing transition time of the transition "b" is the difference between the completion time T 02 of the task of the transition "b" (see FIG. 6) and the completion time T 01 of the task of the transition immediately before it, that is, the transition "a". The difference is "T 02 - T 01 ". However, the firing transition time of the first transition is the difference between the task time and the work start time of that transition. For example, if the start time of the work in steps #01 to #12 is T 00 , the firing transition time of the transition “a” is “T 01 −T 00 ”.

作業ログ61および作業ログ62のどちらに基づいても発火遷移時間を算出することができるトランジションがあるが、このような場合は、どちらに基づいてもよい。例えば、「b」のトランジションの発火遷移時間は、「T02-T01」であってもよいし、「T22-T21」であってもよい。ただし、どちらか一方を統一して用いるのが望ましい。 There are some transitions for which the firing transition time can be calculated based on either the work log 61 or the work log 62, but in such a case, it may be based on either. For example, the firing transition time of the transition “b” may be “T 02 −T 01 ” or “T 22 −T 21 ”. However, it is desirable to use one of them in unison.

そして、最適動作計画決定部407は、総発火遷移時間が最も短い発火系列を最適発火系列として選出し、最適発火系列によって特定される動作の手順が作業の最適な動作計画であると決定(推定)する。 Then, the optimal motion plan determination unit 407 selects the firing sequence with the shortest total firing transition time as the optimal firing sequence, and determines (estimates) that the motion procedure specified by the optimal firing sequence is the optimal motion plan for the task. )do.

最適動作計画決定部407は、{A,B,D}の発火系列の総発火遷移時間として(a,b,c,d,e,f,g,h,i,j,k,l)の各トランジションの発火遷移時間の合計を算出し、{A,C,D}の発火系列の総発火遷移時間として(a,b,c,n,o,p,m,g,h,i,j,k,l)の各トランジションの発火遷移時間の合計を算出する。そして、総発火遷移時間が短いほうを最適発火系列として選出する。 The optimal motion plan determining unit 407 calculates (a, b, c, d, e, f, g, h, i, j, k, l) as the total firing transition time of the firing sequence of {A, B, D}. Calculate the total firing transition time of each transition, and calculate the total firing transition time of the firing sequence {A, C, D} as (a, b, c, n, o, p, m, g, h, i, j ,k,l), the total firing transition time of each transition is calculated. Then, the one with the shorter total firing transition time is selected as the optimal firing sequence.

なお、本実施形態では、{A,B,D}の発火系列も{A,C,D}の発火系列も、オペレータが作業ログ61または作業ログ62を取得するためにロボット3を動かした手順と一致するので、最適発火系列もどちらかの手順に一致する。 In this embodiment, both the firing sequence of {A, B, D} and the firing sequence of {A, C, D} are the steps in which the operator moves the robot 3 to obtain the work log 61 or the work log 62. Therefore, the optimal firing sequence also matches either procedure.

図8は、分岐を複数有するペトリネット71の例を示す図である。 FIG. 8 is a diagram showing an example of a Petri net 71 having multiple branches.

しかし、例えば、(a,b,c,d,e,f,g,h,i,j,k)の作業ログおよび(a,b,c,d,e,f,g,h,i,j,k)の作業ログに基づいてペトリネットを生成すると、図8のようなペトリネット71が得られる。ペトリネット71には2つに分かれる分岐が3つ含まれているので、発火系列が2の3乗、すなわち8通りある。したがって、どちらの作業ログにも一致しない発火系列が最適発火系列であることがあり得る。イベントログに含まれる作業ログの個数が増えまたは作業ログの中の分岐が増えると発火系列のパターンが指数関数的に増える傾向が見られる。 However, for example, the work log of (a 0 ,b 1 ,c 0 ,d 1 ,e 0 ,f 1 ,g 0 ,h 1 ,i 0 ,j 1 ,k 0 ) and (a 0 ,b 2 ,c 0 , d2 , e0 , f2, g0 , h2 , i0 , j2 , k0 ), a Petri net 71 as shown in FIG. 8 is obtained. Since the Petri net 71 includes three branches that divide into two, there are 2 to the third power, that is, eight firing sequences. Therefore, a firing sequence that does not match either work log may be the optimal firing sequence. As the number of work logs included in the event log increases or as the number of branches within the work log increases, there is a tendency for the firing sequence pattern to increase exponentially.

〔2.4 動作プログラムの生成〕
動作検証部408は、モデルの整合性を検証するシミュレータであって、最適動作計画決定部407が選出した最適発火系列に従ってロボット3が作業を完了できるか否かなどをシミュレーションによって検証する。例えば、{A,C,D}の発火系列が最適発火系列として選出された場合は、(a,b,c,n,o,p,m,g,h,i,j,k,l)の各トランジションに対応するタスク(動作)をロボット3が行うことによって仕様の通りに作業を完了できるか否かを検証する。
[2.4 Generation of operation program]
The motion verification section 408 is a simulator that verifies the consistency of the model, and verifies by simulation whether the robot 3 can complete the work according to the optimal firing sequence selected by the optimal motion plan determination section 407. For example, if the firing sequence {A, C, D} is selected as the optimal firing sequence, (a, b, c, n, o, p, m, g, h, i, j, k, l) It is verified whether the robot 3 can complete the work according to the specifications by performing the tasks (movements) corresponding to each transition.

特に、図8に示したように、ペトリネットから選択可能な発火系列の個数が作業ログの個数よりも多い場合は、最適発火系列がいずれの作業ログの手順とも一致しないことがある。そこで、動作検証部408によって最適発火系列に基づいてロボット3による作業をシミュレーションして検証することが重要である。また、後述するように、ペトリネット7を他の作業または他のロボットへ適用することがある。このような場合も、作業をシミュレーションして検証することが重要である。 In particular, as shown in FIG. 8, when the number of firing sequences that can be selected from the Petri net is greater than the number of work logs, the optimal firing sequence may not match the procedure of any of the work logs. Therefore, it is important for the operation verification unit 408 to simulate and verify the work performed by the robot 3 based on the optimal firing sequence. Furthermore, as will be described later, the Petri net 7 may be applied to other tasks or to other robots. In such cases, it is important to simulate and verify the work.

動作プログラム生成部409は、最適発火系列に基づいて仕様通りにロボット3に作業を行わせることができることが動作検証部408によって検証されたら、最適発火系列に従ってロボット3を動作させるための動作プログラム80を生成する。なお、動作プログラム80は、第一のワーク51および第二のワーク52をロボット3がより確実に移動させることができるようにチューニングされる。 When the operation verification unit 408 verifies that the robot 3 can perform the work according to the specifications based on the optimal firing sequence, the operation program generation unit 409 generates an operation program 80 for operating the robot 3 according to the optimal firing sequence. generate. Note that the operation program 80 is tuned so that the robot 3 can move the first workpiece 51 and the second workpiece 52 more reliably.

〔2.5 ロボット3への動作プログラムの実装〕
コンピュータ2は、動作プログラム80に基づいてロボット3を制御することによって、ロボット3に作業を行わせることができる。
[2.5 Implementation of motion program to robot 3]
The computer 2 can cause the robot 3 to perform work by controlling the robot 3 based on the operation program 80.

〔3.全体的な処理の流れおよび本実施形態による効果〕
図9は、動作計画プログラム40のよる全体的な処理の流れの例を説明するフローチャートである。
[3. Overall processing flow and effects of this embodiment]
FIG. 9 is a flowchart illustrating an example of the overall processing flow by the motion planning program 40.

次に、動作計画プログラム40によるコンピュータ2の全体的な処理の流れを、フローチャートを参照しながら説明する。コンピュータ2は、動作計画プログラム40に基づいて、図9に示す手順で処理を実行する。 Next, the overall processing flow of the computer 2 by the motion planning program 40 will be explained with reference to a flowchart. The computer 2 executes processing according to the procedure shown in FIG. 9 based on the motion planning program 40.

オペレータは、特定の目的のための作業の手順を複数通り、ロボット3に教示する。コンピュータ2は、各手順のデータを作業ログとして取得し(図9の#101)、イベントログを生成する(#102)。そして、イベントログに基づいてペトリネットを生成する(#103)。 The operator teaches the robot 3 a plurality of work procedures for a specific purpose. The computer 2 acquires data of each procedure as a work log (#101 in FIG. 9) and generates an event log (#102). Then, a Petri net is generated based on the event log (#103).

さらに、コンピュータ2は、ペトリネットに基づいてN通りの発火系列を選択し、発火系列それぞれの総発火遷移時間を算出し、総発火遷移時間の最も短い発火系列を最適発火系列として選出する(#104)。最適発火系列に従ってロボット3の作業をシミュレーションすることによって動作検証を行う(#105)。 Furthermore, the computer 2 selects N firing sequences based on the Petri net, calculates the total firing transition time of each firing sequence, and selects the firing sequence with the shortest total firing transition time as the optimal firing sequence (# 104). Operation verification is performed by simulating the work of the robot 3 according to the optimal firing sequence (#105).

そして、動作検証に成功したら、コンピュータ2は、最適発火系列に従ってロボット3を動作させるための動作プログラム80を生成し(#106)、ロボット3へ適用する(#107)。ロボット3は、動作プログラム80に基づいて制御され、特定の目的のための作業を行う。 If the operation verification is successful, the computer 2 generates an operation program 80 for operating the robot 3 according to the optimal firing sequence (#106), and applies it to the robot 3 (#107). The robot 3 is controlled based on an operation program 80 and performs work for a specific purpose.

本実施形態によると、作業ログ61、62に基づいて特定の作業のペトリネット7が動作計画最適化システム1によって生成される。そしてペトリネット7は、図7に例示したように、特定の作業を完了させるために取ることのできる複数の発火系列(経路)を1つのグラフとして視覚的に表わすことができる。よって、オペレータは、ペトリネット7を参考することによって、能率のよい手順を従来よりも容易に選ぶことができる。 According to this embodiment, the Petri net 7 for a specific task is generated by the motion plan optimization system 1 based on the task logs 61 and 62. As illustrated in FIG. 7, the Petri net 7 can visually represent, as one graph, a plurality of firing sequences (paths) that can be taken to complete a specific task. Therefore, by referring to the Petri net 7, the operator can select an efficient procedure more easily than before.

さらに、ペトリネット7の中から最適発火系列が選出され、ロボット3での実行可能性が検証され、ロボット3に適用される。よって、オペレータは、複数の発火系列の中から状況に応じて能率のよい手順をさらに容易に選ぶことができる。 Furthermore, an optimal firing sequence is selected from the Petri net 7, its feasibility on the robot 3 is verified, and it is applied to the robot 3. Therefore, the operator can more easily select an efficient procedure from among a plurality of firing sequences depending on the situation.

〔4.変形例および応用例〕
図10は、発火系列72の例を示す図である。
[4. Modifications and application examples]
FIG. 10 is a diagram showing an example of the firing sequence 72.

本実施形態では、図7に示したように、トークンが1つしか用いられないペトリネットを例に説明したが、トークンが複数用いられるペトリネットであっても、本発明を適用することができる。最適動作計画決定部407(図4参照)は、この場合も、発火則に従ってトークンが発火系列の初期のプレースから目標のプレースまで遷移するのに要する時間を総発火遷移時間として算出すればよい。例えば、図10に示すような発火系列72がペトリネットから選択された場合は、総発火遷移時間を次のように算出すればよい。 In this embodiment, as shown in FIG. 7, a Petri net in which only one token is used has been described as an example, but the present invention can also be applied to a Petri net in which a plurality of tokens are used. . In this case as well, the optimal action plan determining unit 407 (see FIG. 4) may calculate the time required for the token to transition from the initial place of the firing sequence to the target place as the total firing transition time according to the firing rule. For example, if the firing sequence 72 shown in FIG. 10 is selected from the Petri net, the total firing transition time may be calculated as follows.

発火系列72において、トークンは、トランジションtで2つになり、それぞれ、プレースp、pへ進む。そして、プレースpで合流する。最適動作計画決定部407は、トランジションtの発火遷移時間Tと、トランジションtの発火遷移時間Tおよびトランジションtの発火遷移時間Tのうち長いほうの発火遷移時間と、トランジションtの発火遷移時間Tとの合計を、発火系列72の総発火遷移時間として算出する。つまり、T+T+TおよびT+T+Tのうち長いほうを総発火遷移時間として算出する。 In firing sequence 72, the tokens become two at transition t 1 and advance to places p 2 and p 4 , respectively. Then, merge at place p6 . The optimal motion plan determination unit 407 determines the firing transition time T 1 of the transition t 1 , the firing transition time T 2 of the transition t 2 , and the firing transition time T 3 of the transition t 3 , whichever is longer, and the firing transition time T 1 of the transition t 1 . 4 and the firing transition time T4 is calculated as the total firing transition time of the firing sequence 72. That is, the longer one of T 1 +T 2 +T 4 and T 1 +T 3 +T 4 is calculated as the total firing transition time.

例えば、トランジションtは、ワークをツール32のハンドでピックする姿勢を取るタスクに対応し、トランジションtは、ツール32のカメラでワークを撮影しワークに不具合がないことを確認するタスクに対応する。 For example, transition t2 corresponds to the task of taking a posture to pick the workpiece with the hand of the tool 32, and transition t3 corresponds to the task of photographing the workpiece with the camera of the tool 32 to confirm that there are no defects in the workpiece. do.

ペトリネット7は、第一のワーク51および第二のワーク52をそれぞれ第一の位置および第二の位置から第三の位置へ移動させる作業の動作計画の最適化のために生成されたが、ペトリネット7を他の作業のために適用することができる。例えば、第一のワーク51および第二のワーク52をそれぞれ第四の位置および第五の位置から第六の位置へ移動させる作業の動作計画の最適化のために用いてもよい。 The Petri net 7 was generated to optimize the motion plan for moving the first workpiece 51 and the second workpiece 52 from the first position and the second position to the third position, respectively. Petri net 7 can be applied for other tasks. For example, it may be used to optimize a motion plan for moving the first workpiece 51 and the second workpiece 52 from the fourth position and the fifth position to the sixth position, respectively.

この場合は、それぞれの位置でロボット3が取る姿勢に合わせて作業ログ61、62(図6参照)のパラメータを変更する。さらに、各ステップの動作時刻を変更する。姿勢および動作時刻は、手動でロボット3を動かすことによって求めてもよいし、シミュレータによって求めてもよい。または、変換用の数式に代入することによって求めてもよい。作業ログ変更手段(図示しない)が実現されるように動作計画プログラム40を構成し、パラメータおよび動作時刻の変更を作業ログ変更手段によって行えばよい。 In this case, the parameters of the work logs 61 and 62 (see FIG. 6) are changed in accordance with the posture that the robot 3 takes at each position. Furthermore, the operation time of each step is changed. The posture and operation time may be determined by manually moving the robot 3, or may be determined using a simulator. Alternatively, it may be obtained by substituting it into a conversion formula. The operation planning program 40 may be configured to implement a work log change means (not shown), and parameters and operation times may be changed by the work log change means.

そして、最適動作計画決定部407は、変更後のパラメータおよび動作時刻に基づいてN通りの発火系列それぞれの総発火遷移時間を算出し、最適発火系列を選出する。 Then, the optimal action plan determining unit 407 calculates the total firing transition time of each of the N firing sequences based on the changed parameters and operation time, and selects the optimal firing sequence.

または、ペトリネット7を、ロボット3以外のロボットに同様の作業を行わせる際の最適動作計画のために使用してもよい。この場合も、それぞれの位置でそのロボットが取る姿勢に合わせて作業ログ61、62(図6参照)のパラメータを変更し、さらに各ステップの動作時刻を変更すればよい。そして、最適動作計画決定部407は、変更後のパラメータおよび動作時刻に基づいてN通りの発火系列それぞれの総発火遷移時間を算出し、最適発火系列を選出すればよい。 Alternatively, the Petri net 7 may be used for optimal motion planning when a robot other than the robot 3 performs a similar task. In this case as well, the parameters of the work logs 61 and 62 (see FIG. 6) may be changed in accordance with the posture taken by the robot at each position, and the operation time of each step may also be changed. Then, the optimal operation plan determining unit 407 calculates the total firing transition time of each of the N firing sequences based on the changed parameters and operation time, and selects the optimal firing sequence.

このように、ペトリネット7は、ロボット3における他の作業または他のロボットにおける作業のために用途を拡張することができる。 In this way, the Petri net 7 can be extended for other tasks on the robot 3 or for tasks on other robots.

本実施形態では、2つの作業ログ61、62に基づいてペトリネット7を生成する場合を例に説明したが、3つ以上の作業ログに基づいて生成してもよい。 Although the present embodiment has been described as an example in which the Petri net 7 is generated based on two work logs 61 and 62, it may be generated based on three or more work logs.

本実施形態では、それぞれ異なる位置にある2つのワークを移動させる作業をロボット3に行わせるための動作計画の最適化を行う場合を例に説明したが、組立てまたは加工などの作業を行わせるための動作計画の最適化を行う場合にも、本発明を適用することができる。 In this embodiment, an example is explained in which a motion plan is optimized to have the robot 3 perform a task of moving two workpieces located at different positions. The present invention can also be applied when optimizing a motion plan.

本実施形態では、最適動作計画決定部407は、総発火遷移時間が最も短い発火系列を最適発火系列として選出したが、要求に係る時間以内に総発火遷移時間が納まる発火系列を複数選出してオペレータに提示し、これらの発火系列の中からオペレータに最適発火系列を選択させてもよい。 In the present embodiment, the optimal action plan determining unit 407 selects the firing sequence with the shortest total firing transition time as the optimal firing sequence, but selects a plurality of firing sequences whose total firing transition time falls within the requested time. The firing sequence may be presented to the operator and the operator may select the optimal firing sequence from among these firing sequences.

ペトリネット7のデータをコンピュータ2から他のコンピュータへ出力し、当該他のコンピュータがペトリネット7を使用してロボットの動作計画の最適化を行ってもよい。 The data of the Petri net 7 may be output from the computer 2 to another computer, and the other computer may use the Petri net 7 to optimize the robot's motion plan.

本実施形態では、ロボット3が6軸ロボットである場合を例に説明したが、7軸以上の多関節ロボットである場合、双腕型ロボットである場合、スカラロボットである場合、またはパラレルリンクロボットである場合にも、本発明を適用することができる。
本実施形態では、総発火遷移時間すなわち所要時間が最も短い発火系列を最適発火系列として選出したが、他の指標に基づいて選出してもよい。例えば、姿勢の変化に要する消費電力量の最も少ない発火系列またはツール32の移動距離の最も短い発火系列を最適発火系列として選出してもよい。または、総発火遷移時間、消費電力量、および移動距離などに基づいて総合的な移動コストを算出し、移動コストの最も低い発火系列を最適発火系列として選出してもよい。
In this embodiment, the case where the robot 3 is a 6-axis robot has been explained as an example, but if the robot 3 is an articulated robot with 7 or more axes, a dual-arm robot, a SCARA robot, or a parallel link robot. The present invention can also be applied in this case.
In this embodiment, the firing sequence with the shortest total firing transition time, that is, the required time, is selected as the optimal firing sequence, but it may be selected based on other indicators. For example, the firing sequence that requires the least amount of power to change the posture or the firing sequence that requires the shortest movement distance of the tool 32 may be selected as the optimal firing sequence. Alternatively, a comprehensive movement cost may be calculated based on the total firing transition time, power consumption, moving distance, etc., and the firing sequence with the lowest movement cost may be selected as the optimal firing sequence.

その他、動作計画最適化システム1、コンピュータ2、ロボット3の全体または各部の構成、処理の内容、処理の順序、データの構成、発火遷移時間の決め方などは、本発明の趣旨に沿って適宜変更することができる。 In addition, the configuration of the entire motion plan optimization system 1, the computer 2, and the robot 3 or each part, the content of processing, the order of processing, the data configuration, the method of determining the firing transition time, etc. may be changed as appropriate in accordance with the spirit of the present invention. can do.

1 動作計画最適化システム
3 ロボット
401 作業ログ取得部(手順データ取得手段)
405 ペトリネット生成部(プロセスモデル生成手段)
407 最適動作計画決定部(適格経路選出手段)
408 動作検証部(検証手段)
61 作業ログ(手順データ)
62 作業ログ(手順データ)
7 ペトリネット(プロセスモデル)
1 Motion plan optimization system 3 Robot 401 Work log acquisition unit (procedural data acquisition means)
405 Petri net generation unit (process model generation means)
407 Optimal operation plan determining unit (eligible route selection means)
408 Operation verification section (verification means)
61 Work log (procedure data)
62 Work log (procedure data)
7 Petri net (process model)

Claims (9)

特定の作業をロボットに行わせる際の複数通りの手順それぞれを示す手順データを取得する手順データ取得手段と、
前記複数通りの手順それぞれの前記手順データに基づいて前記作業のプロセスモデルを生成するプロセスモデル生成手段と、
を有することを特徴とするロボット動作計画支援システム。
a procedure data acquisition means for acquiring procedure data indicating each of a plurality of procedures for causing a robot to perform a specific task;
process model generation means for generating a process model of the work based on the procedure data of each of the plurality of procedures;
A robot motion planning support system comprising:
前記プロセスモデルにおいて初期のノードから目標のノードへ至るまでに取り得る複数通りの経路の全部または一部のうちの所定の要件を満たす経路を前記作業に適した適格経路として選出する適格経路選出手段、
を有する、
請求項1に記載のロボット動作計画支援システム。
Qualified route selection means for selecting a route that satisfies predetermined requirements from all or part of a plurality of routes that can be taken from an initial node to a target node in the process model as a qualified route suitable for the work. ,
has,
The robot motion planning support system according to claim 1.
前記適格経路選出手段は、前記複数通りの経路のうちのN通りの経路をランダムに選択し、当該N通りの経路のうちの前記ロボットによる所要時間または所要コストが最も短い経路を前記適格経路として選出する、
請求項2に記載のロボット動作計画支援システム。
The eligible route selection means randomly selects N routes from among the plurality of routes, and selects the route with the shortest required time or required cost for the robot among the N routes as the eligible route. elect,
The robot motion planning support system according to claim 2.
前記プロセスモデル生成手段は、αアルゴリズムによってペトリネットを前記プロセスモデルとして生成し、
前記適格経路選出手段は、前記ペトリネットの中の、分岐を有するプレースにおいてランダムにトークンを進ませることによって前記N通りの経路を選択する、
請求項3に記載のロボット動作計画支援システム。
The process model generation means generates a Petri net as the process model using an α algorithm,
The eligible route selection means selects the N routes by randomly advancing tokens in places having branches in the Petri net.
The robot motion planning support system according to claim 3.
前記手順データ取得手段は、前記複数通りの手順それぞれの前記手順データとして、当該手順を構成する各ステップの完了時刻を示すデータを取得し、
前記適格経路選出手段は、前記各ステップのうちの連続する2つのステップの前記完了時刻同士の差に基づいて前記N通りの経路それぞれの前記所要時間を算出する、
請求項3または請求項4に記載のロボット動作計画支援システム。
The procedure data acquisition means acquires, as the procedure data for each of the plurality of procedures, data indicating a completion time of each step constituting the procedure;
The eligible route selection means calculates the required time for each of the N routes based on the difference between the completion times of two consecutive steps among the steps.
The robot motion planning support system according to claim 3 or 4.
前記適格経路に従って前記ロボットを動作させるシミュレーションを行うことによって前記作業を完了させることができるか否かを検証する検証手段、
を有する、
請求項2ないし請求項4のいずれかに記載のロボット動作計画支援システム。
verification means for verifying whether the work can be completed by performing a simulation of operating the robot according to the qualified route;
has,
A robot motion planning support system according to any one of claims 2 to 4.
前記適格経路選出手段は、前記ロボットとは異なる第二のロボットに前記作業を行わせるのに適した第二の適格経路として、前記複数通りの経路のうちのN通りの経路をランダムに選択し、当該N通りの経路のうちの当該第二のロボットによる所要時間または所要コストが最も短い経路を選出する、
請求項2に記載のロボット動作計画支援システム。
The qualified route selection means randomly selects N routes from among the plurality of routes as second qualified routes suitable for having a second robot different from the robot perform the work. , select the route with the shortest time or cost required by the second robot from among the N routes;
The robot motion planning support system according to claim 2.
特定の作業をロボットに行わせる際の複数通りの手順それぞれを示す手順データをコンピュータへ与え、
前記複数通りの手順それぞれの前記手順データに基づいて前記作業のプロセスモデルを生成する処理を前記コンピュータに実行させる、
ことを特徴とするロボット動作計画支援方法。
Providing procedural data to a computer that shows each of the multiple steps to have a robot perform a specific task,
causing the computer to execute a process of generating a process model of the work based on the procedure data of each of the plurality of procedures;
A robot motion planning support method characterized by:
特定の作業をロボットに行わせるための動作計画を支援するコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
前記作業を前記ロボットに行わせる際の複数通りの手順それぞれを示す手順データを取得する処理を実行させ、
前記複数通りの手順それぞれの前記手順データに基づいて前記作業のプロセスモデルを生成する処理を実行させる、
ことを特徴とするコンピュータプログラム。
A computer program used in a computer that supports a motion plan for having a robot perform a specific task,
to the computer;
causing the robot to perform a process of acquiring procedure data indicating each of a plurality of procedures for causing the robot to perform the work;
executing a process of generating a process model of the work based on the procedure data of each of the plurality of procedures;
A computer program characterized by:
JP2022078971A 2022-05-12 2022-05-12 Robot operation plan supporting system, robot operation plan supporting method, and computer program Pending JP2023167643A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022078971A JP2023167643A (en) 2022-05-12 2022-05-12 Robot operation plan supporting system, robot operation plan supporting method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022078971A JP2023167643A (en) 2022-05-12 2022-05-12 Robot operation plan supporting system, robot operation plan supporting method, and computer program

Publications (1)

Publication Number Publication Date
JP2023167643A true JP2023167643A (en) 2023-11-24

Family

ID=88837908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022078971A Pending JP2023167643A (en) 2022-05-12 2022-05-12 Robot operation plan supporting system, robot operation plan supporting method, and computer program

Country Status (1)

Country Link
JP (1) JP2023167643A (en)

Similar Documents

Publication Publication Date Title
JP6576255B2 (en) Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method
EP3578322A1 (en) Robot path-generating device and robot system
EP1310844B1 (en) Simulation device
JP2020179466A (en) Trajectory planning device and trajectory planning method and program
JP7439206B2 (en) Information processing methods, information processing devices, programs, recording media, production systems, robot systems, article manufacturing methods
EP2923805A2 (en) Object manipulation driven robot offline programming for multiple robot system
US20180036883A1 (en) Simulation apparatus, robot control apparatus and robot
JP6750909B2 (en) Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method
US20170197308A1 (en) Teaching data generating device and teaching data-generating method for work robot
EP3656513B1 (en) Method and system for predicting a motion trajectory of a robot moving between a given pair of robotic locations
JP2009190113A (en) Robot simulation device
JP2020505244A (en) Method and system for teaching a robot to reach a predetermined target in robot manufacturing
JP2006281330A (en) Robot simulation device
JP2023167643A (en) Robot operation plan supporting system, robot operation plan supporting method, and computer program
JP5272447B2 (en) Numerical control machine operation simulator
JP6841805B2 (en) Robot teaching device, robot teaching method, and method of storing operation commands
JP6862849B2 (en) Arithmetic logic units, arithmetic methods, arithmetic programs and robot systems
JP2020175471A (en) Information processing device, information processing method, program and recording medium
US20220281103A1 (en) Information processing apparatus, robot system, method of manufacturing products, information processing method, and recording medium
JP2009166172A (en) Simulation method and simulator for robot
JP2021070096A (en) Control method, control device, robot device, article manufacturing method, operation program creation method, operation program creation device, display device, control program and recording medium
JP7276359B2 (en) Motion command generation device, mechanism control system, computer program, motion command generation method, and mechanism control method
JP7314215B2 (en) Simulator, robot teaching device, robot system, article manufacturing method, simulation method, program and recording medium
WO2023276149A1 (en) Optimization assistance device
JP7232704B2 (en) ROBOT PROGRAM EVALUATION DEVICE, ROBOT PROGRAM EVALUATION METHOD AND ROBOT PROGRAM EVALUATION PROGRAM