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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000004590 computer program Methods 0.000 title claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 12
- 230000033001 locomotion Effects 0.000 claims description 104
- 230000008569 process Effects 0.000 claims description 25
- 238000012795 verification Methods 0.000 claims description 9
- 238000004088 simulation Methods 0.000 claims description 5
- 238000010304 firing Methods 0.000 description 103
- 230000007704 transition Effects 0.000 description 73
- 230000036544 posture Effects 0.000 description 59
- 230000009471 action Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 6
- 238000005065 mining Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 239000003638 chemical reducing agent Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002537 cosmetic Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Landscapes
- Manipulator (AREA)
Abstract
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
ところで、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は、動作計画最適化システム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
動作計画最適化システム1は、ロボットの動作計画の最適化を図るためのシステムであって、図1に示すように、コンピュータ2およびロボット3によって構成される。
A motion
ロボット3は、最適な動作計画を算出する対象のロボットである。以下、水平面に設置される6軸ロボットがロボット3である場合を例に説明する。
The
ロボット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
ベース30は、本実施形態では、水平面に設置される。第一のアーム311は、その基端部がベース30に支持されており、ベース30の設置面(水平面)に垂直な第一の軸391を回転軸として回転する。第一の駆動ユニット331は、モータ、減速機、および角度センサなどによって構成され、第一のアーム311を回転させる。なお、第二の駆動ユニット332ないし第六の駆動ユニット336も、第一の駆動ユニット331と同様に、モータ、減速機、および角度センサなどによって構成される。
In this embodiment, the
第二のアーム312は、その基端部が第一のアーム311の先端部に支持されており、第一の軸391および第二のアーム312の長手方向の両方に垂直な第二の軸392を振り軸として旋回する。第二の駆動ユニット332は、第二のアーム312を旋回させる。
The
第三のアーム313は、その基端部が第二のアーム312の先端部に支持されており、第二の軸392に平行な第三の軸393を振り軸として旋回する。第三の駆動ユニット333は、第三のアーム313を旋回させる。
The
第四のアーム314は、その基端部が第三のアーム313の先端部に支持されており、第三のアーム313の長手方向に平行な第四の軸394を回転軸として回転する。第四の駆動ユニット334は、第四のアーム314を回転させる。
The
第五のアーム315は、その基端部が第四のアーム314の先端部に支持されており、第四の軸394に垂直な第五の軸395を振り軸として旋回する。第五の駆動ユニット335は、第五のアーム315を旋回させる。
The
ツール32は、その基端部が第五のアーム315の先端部に支持されており、第五のアーム315の長手方向に平行な第六の軸396を回転軸として回転する。第六の駆動ユニット336は、ツール32を回転させる。また、ツール32は、複数本の指からなるハンド(手)およびハンドを開閉させるモータなどを有しており、物体を拾い上げたり離したりする。
The
第一の駆動ユニット331の角度センサは、第一のアーム311の、ベース30の座標系における基準の姿勢と現在の姿勢とがなす角度θ1を検出する。つまり、第一のアーム311が基準の姿勢からどれだけ回転したのかを検出する。第二の駆動ユニット332の角度センサは、第一のアーム311と第二のアーム312とがなす角度θ2を検出する。
The angle sensor of the first drive unit 331 detects the angle θ 1 between the reference posture and the current posture of the
第三の駆動ユニット333の角度センサは、第二のアーム312と第三のアーム313とがなす角度θ3を検出する。第四の駆動ユニット334の角度センサは、第四のアーム314の、第三のアーム313の座標系における基準の姿勢と現在の姿勢とがなす角度θ4を検出する。つまり、第四のアーム314が基準の姿勢からどれだけ回転したのかを検出する。
The angle sensor of the
第五の駆動ユニット335の角度センサは、第四のアーム314と第五のアーム315とがなす角度θ5を検出する。第六の駆動ユニット336の角度センサは、ツール32の、第五のアーム315の座標系における基準の姿勢と現在の姿勢とがなす角度θ6を検出する。つまり、ツール32が基準の姿勢からどれだけ回転したのかを検出する。
The angle sensor of the
そして、第一の駆動ユニット331ないし第六の駆動ユニット336それぞれの角度センサは、検出した角度θ1~θ6を、通信インタフェース35を介してコンピュータ2へ送信する。ロボット3の姿勢は、ベース30に対する第一のアーム311の姿勢、第一のアーム311に対する第二のアーム312の姿勢、第二のアーム312に対する第三のアーム313の姿勢、第三のアーム313に対する第四のアーム314、第四のアーム314に対する第五のアーム315の姿勢、および第五のアーム315に対するツール32の姿勢によって決まる。したがって、ロボット3の姿勢は、角度θ1~θ6によって特定される。
The angle sensors of each of the first drive unit 331 to the
コントローラ34は、第一のアーム311ないし第五のアーム315およびツール32がコンピュータ2からの指令の通りの姿勢になるように第一の駆動ユニット331ないし第六の駆動ユニット336を制御する。また、コンピュータ2からの指令の通りにツール32のハンドが開閉するようにツール32のモータなどを制御する。
The controller 34 controls the first drive unit 331 to the
通信インタフェース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
コンピュータ2は、ロボット3の最適な動作計画をプロセスマイニングによって算出する。以下、コンピュータ2としてラップトップ型のパーソナルコンピュータが用いられる場合を例に説明する。
The
コンピュータ2は、図3に示すように、メインプロセッサ20、RAM(Random Access Memory)21、ROM(Read Only Memory)22、補助記憶装置23、通信インタフェース24、ディスプレイ25、キーボード26、およびポインティングデバイス27などによって構成される。
As shown in FIG. 3, the
ROM22または補助記憶装置23には、オペレーティングシステムのほか動作計画プログラム40などのコンピュータプログラムがインストールされている。
In addition to the operating system, computer programs such as a motion planning program 40 are installed in the
RAM21は、コンピュータ2のメインメモリである。RAM21には、適宜、動作計画プログラム40などのコンピュータプログラムがロードされる。
メインプロセッサ20は、RAM21にロードされたコンピュータプログラムを実行する。メインプロセッサ20として、GPU(Graphics Processing Unit)またはCPU(Central Processing Unit)などが用いられる。
通信インタフェース24は、ロボット3との間でデータの送受信を行う。通信インタフェース24として、ロボット3で採用される規格の通信装置が用いられる。
The
ディスプレイ25は、コマンドもしくはデータを入力するための画面またはメインプロセッサ20による演算の結果を表わす画面などを表示する。
The
キーボード26およびポインティングデバイス27は、コマンドまたはデータなどをオペレータが入力するための入力装置である。
The
動作計画プログラム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
- 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
〔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
作業ログ取得部401は、特定の作業を様々な手順でロボット3が実行した際の作業ログを取得する。以下、第一のワーク51および第二のワーク52をそれぞれ第一の位置および第二の位置から第三の位置へ移動させる作業を例に、作業ログの収集について説明する。
The work
この作業を達成するための手順として、様々な手順が考えられる。第一のワーク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
#01: Take the initial posture #02: Take the posture of picking up the
In this embodiment, it is assumed that the hand of the
または、図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
#21: Take the initial posture #22: Take the posture of picking the
By the way, the
したがって、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
オペレータは、ステップ#01~#12それぞれにおけるロボット3の動作をロボット3へ教示し、作業ログ取得部401は、そのときにロボット3から得られる情報などを取得し、作業ログとして作業ログ記憶部402に記憶させる。同様に、オペレータは、ステップ#21~#33それぞれにおけるロボット3の動作をロボット3へ教示し、作業ログ取得部401は、そのときにロボット3から得られる情報などを取得し、作業ログとして作業ログ記憶部402に記憶させる。教示の仕方は、従来のオンラインティーチングの場合と同様であり、オペレータがロボット3の各部に直接触れて動かすことによって(つまり、手動で)教示してもよいし、操作端末から指令を与えて動かすことによって教示してもよい。
The operator teaches the
例えば、オペレータは、ステップ#01~#12の手順による作業の各ステップを次のように教示し、作業ログ取得部401は、次のように作業ログを取得する。
For example, the operator instructs each step of the work according to steps #01 to #12 as follows, and the work
オペレータは、ステップ#01の動作の教示のために、ロボット3に初期姿勢を取らせる。そして、動作タイプとして「pose」をコンピュータ2または操作端末などへ入力する。
The operator causes the
すると、作業ログ取得部401は、初期姿勢を取った時点の角度θ1~θ6をロボット3に検出させて取得する。そして、初期姿勢を取った時点の時刻を完了時刻として示し、取得した角度θ1~θ6をパラメータとして示し、かつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる(図6(A)参照)。
Then, the work
オペレータは、ステップ#02の動作の教示のために、ツール32で第一のワーク51をピックできる姿勢をロボット3に取らせる。そして、動作タイプとして「pose」を入力する。
The operator makes the
すると、作業ログ取得部401は、ステップ#10の場合と同様に、この姿勢を取った時点の角度θ1~θ6をロボット3に検出させて取得する。そして、この時点の時刻を完了時刻として示し、取得した角度θ1~θ6をパラメータとして示し、かつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。
Then, the work
オペレータは、ステップ#03の動作の教示のために、第一のワーク51をピックするようにツール32のハンドを閉じさせる。そして、動作タイプとして「grasp」を入力する。
The operator closes the hand of the
すると、作業ログ取得部401は、ハンドが閉じた時点の時刻を完了時刻として示しかつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。なお、ツール32のハンドの閉じ加減を示す値がパラメータとして動作データに示されるようにしてもよい。以下、同様である。
Then, the work
オペレータは、ステップ#04の動作の教示のために、ツール32が第二の位置への中継位置に配置される姿勢をロボット3に取らせる。そして、動作タイプとして「pose」を入力する。
In order to teach the operation in step #04, the operator causes the
すると、ステップ#01、#02の場合と同様に、作業ログ取得部401は、この姿勢を取った時点の角度θ1~θ6をロボット3に検出させて取得する。そして、この時点の時刻を完了時刻として示し、取得した角度θ1~θ6をパラメータとして示し、かつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。
Then, similarly to
オペレータは、ステップ#05の動作の教示のために、ロボット3に、第二のワーク52の上に第一のワーク51を置くことができる姿勢を取らせる。そして、動作タイプとして「pose」を入力する。
The operator makes the
すると、ステップ#01、#02、#04の場合と同様に、作業ログ取得部401は、この姿勢を取った時点の角度θ1~θ6をロボット3に検出させて取得する。そして、この時点の時刻を完了時刻として示し、取得した角度θ1~θ6をパラメータとして示し、かつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。
Then, similarly to
オペレータは、ステップ#06の動作の教示のために、第一のワーク51をプレースするようにツール32のハンドを開かせる。そして、動作タイプとして「release」を入力する。
The operator opens the hand of the
すると、作業ログ取得部401は、ハンドが開いた時点の時刻を完了時刻として示しかつ入力された動作タイプを示す動作データを生成し、作業ログ記憶部402に記憶させる。
Then, the work
動作タイプをオペレータが入力する代わりに、ロボット3の動きに基づいて作業ログ取得部401が動作タイプを判別してもよい。例えば、オペレータがロボット3を動かすのを止めたら、「pose」と判別する。または、オペレータが閉じる方向へツール32のハンドを動かしたら「grasp」と判別する。または、オペレータが開く方向へツール32のハンドを動かしたら「release」と判別する。
Instead of the operator inputting the motion type, the work
ステップ#06以降についても同様の要領で、オペレータはロボット3へ動作を教示し、作業ログ取得部401は、動作データを生成して作業ログ記憶部402に記憶させる。これにより、図6(A)に示すような12個の動作データが作業ログ記憶部402に記憶される。これらの動作データの集合が、ステップ#01~#12の手順に係る作業ログ61である。なお、「識別子」は、ペトリネットの生成のために後に付与されるものである。動作データが生成された時点において、識別子はNullである。
For
また、ステップ#21~#33の手順による作業についても同様の要領で、オペレータはロボット3へ教示し、作業ログ取得部401は動作データを生成して作業ログ記憶部402に記憶させる。これにより、図6(B)に示すような13個の動作データが作業ログ記憶部402に記憶される。これらの動作データの集合が、ステップ#21~#33の手順に係る作業ログ62である。
Further, the operator instructs the
なお、オペレータは、ロボット3の各部を動かす代わりにロボット3のシミュレータへ動作(姿勢、開閉など)を入力することによって、作業を教示してもよい。そして、作業ログ取得部401は、シミュレータに入力された動作に基づいて角度θ1~θ6または動作タイプを判別することによって動作データを生成してもよい。さらに、入力された通りにロボット3の動作をシミュレータ上でシミュレートし、各ステップの動作の完了した時刻を完了時刻として動作データに示されるようにしてもよい。
Note that instead of moving each part of the
(2)データの加工
識別子付与部403およびイベントログ生成部404は、作業ログ記憶部402に記憶されたデータをペトリネットの生成のために加工する。以下、図6に示す作業ログ61、62を加工する場合を例に、識別子付与部403およびイベントログ生成部404の処理について説明する。
(2) Data processing The
識別子付与部403は、作業ログ61に含まれる動作データそれぞれが表わす動作および作業ログ62に含まれる動作データそれぞれが表わす動作に対してユニークな識別子を付与する。ただし、同一の動作に対しては同一の識別子を付与する。例えば、次のように識別子を付与する。
The
識別子付与部403は、作業ログ61に含まれる動作データそれぞれが表わす動作に対してユニークな識別子を1つずつ付与する。すなわち、作業ログ61には12個の動作データが含まれるので、12個の動作それぞれに対して、「a」、「b」、「c」、…、「j」、「k」、「l」という識別子を付与する。
The
さらに、識別子付与部403は、作業ログ62に含まれる動作データそれぞれが表わす動作のうちの、作業ログ61に含まれるいずれかの動作データが表わす動作と同一であるものを選出する。具体的には、動作タイプおよび動作時の姿勢が同一であるものを選出する。そして、選出した動作の識別子を付与する。
Further, the
例えば、完了時刻T21(ステップ#21)での動作は、動作タイプが「pose」であり、かつ、角度(θ1,θ2,θ3,θ4,θ5,θ6)が(θ1_21,θ2_21,θ3_21,θ4_21,θ5_21,θ6_21)である姿勢のものである。一方、完了時刻T01(ステップ#01)での動作は、動作タイプが「pose」であり、かつ、角度(θ1,θ2,θ3,θ4,θ5,θ6)が(θ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
そこで、識別子付与部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
完了時刻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
以下、さらに、完了時刻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
ところで、後述するように本実施形態ではαアルゴリズムが用いられる。αアルゴリズムにおいて、各ステップの動作は「タスク」に対応している。そこで、以下、各ステップの動作を「タスク」と記載することがある。 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
{(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
イベントログ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
ペトリネット生成部405は、αアルゴリズムに基づいてイベントログLの中のタスク同士の順序関係からモデル構成要素を出力することによって、図7のようなペトリネット7を生成する。ペトリネット7は、ペトリネット記憶部406に記憶される。
The Petri
αアルゴリズムは、プロセスモデルとしてペトリネット(ペトリネットモデル)を生成するためのプロセスマイニングの公知のアルゴリズムであって、次の公知文献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
[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/
プレースの中の黒点は、トークンである。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からプレース、トランジション、およびアークそれぞれの集合をPL、TL、およびFLを算出する。本例では、PL、TL、およびFLが
PL=[[A,{B,C}],[{B,C},D],iL,oL]
TL={A,B,C,D}
FL=[A[A,{B,C}],[[A,{B,C}]B],[[A,{B,C}]C],[B[{B,C},D]],
[C[{B,C},D], [[{B,C},D],D],[iL,A],[D,oL]]]
のように算出される。PL、TL、およびFLに基づいてペトリネット7を図7のように描画することができる。また、次に説明するペトリネットシミュレーションにおいて、ペトリネット7は、MT×MPの接続行列によって表わされて使用される。「MT」および「MP」は、それぞれ、ペトリネット7のトランジションおよびプレースの個数であって、図7の例では、ともに「16」である。
The Petri
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
ペトリネット7は、図7のように画像化されてディスプレイ25によって表示される。または、プリンタによって印刷される。
The
〔2.3 ペトリネットシミュレーションによる最適動作計画の決定〕
最適動作計画決定部407は、ロボット3に行わせる作業の最適な動作計画を決定する。以下、第一のワーク51および第二のワーク52をそれぞれ第一の位置および第二の位置から第三の位置へ移動させる作業の最適な動作計画を決定する場合を例に、最適動作計画決定部407の処理を説明する。
[2.3 Determination of optimal motion plan using Petri net simulation]
The optimal motion
最適動作計画決定部407は、ペトリネット7の中から初期トークンおよび目標トークンそれぞれの位置をp1のプレースおよびp16のプレースとする発火系列をN通り、ランダムに選択する。
The optimal motion
具体的には、最適動作計画決定部407は、p1のプレースの位置にトークンを置き、ペトリネットの発火則に従ってトークンをp16のプレースまで遷移させる。その途中で、複数のアークに分岐するプレースにトークンが達するごとに、これらのアークのうちのいずれか1つをランダムに選択し、選択したアークの接続先のトランジションへトークンを進める。このような遷移を1回行うことによって、1つの発火系列を取得できる。このような遷移を繰り返し行うことによって、N通りの発火系列を取得し選択することができる。発火系列は、初期のプレースから目標のプレースまでの経路であると、言える。なお、Nは、2以上の整数である。コンピュータ2のスペックまたは処理時間に余裕がある場合は、全通りの発火系列を取得し選択してもよい。
Specifically, the optimal motion
本実施形態では、図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
総発火遷移時間を算出するために、発火系列の中の各トランジションの発火遷移時間を知っておく必要である。そこで、本実施形態では、各トランジションの発火遷移時間が次のように定められる。 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」のタスク)の発火遷移時間は、所定の時間Taである。同様に、ワークを置く動作に対応するトランジション(「release」のタスク)の発火遷移時間を所定の時間Tbである。時間Ta、Tbとも例えば「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.
また、角度θ1~θ6によって特定される姿勢を取る動作に対応するトランジション(「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
そして、最適動作計画決定部407は、総発火遷移時間が最も短い発火系列を最適発火系列として選出し、最適発火系列によって特定される動作の手順が作業の最適な動作計画であると決定(推定)する。
Then, the optimal motion
最適動作計画決定部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
なお、本実施形態では、{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
図8は、分岐を複数有するペトリネット71の例を示す図である。 FIG. 8 is a diagram showing an example of a Petri net 71 having multiple branches.
しかし、例えば、(a0,b1,c0,d1,e0,f1,g0,h1,i0,j1,k0)の作業ログおよび(a0,b2,c0,d2,e0,f2,g0,h2,i0,j2,k0)の作業ログに基づいてペトリネットを生成すると、図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
特に、図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
動作プログラム生成部409は、最適発火系列に基づいて仕様通りにロボット3に作業を行わせることができることが動作検証部408によって検証されたら、最適発火系列に従ってロボット3を動作させるための動作プログラム80を生成する。なお、動作プログラム80は、第一のワーク51および第二のワーク52をロボット3がより確実に移動させることができるようにチューニングされる。
When the
〔2.5 ロボット3への動作プログラムの実装〕
コンピュータ2は、動作プログラム80に基づいてロボット3を制御することによって、ロボット3に作業を行わせることができる。
[2.5 Implementation of motion program to robot 3]
The
〔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
オペレータは、特定の目的のための作業の手順を複数通り、ロボット3に教示する。コンピュータ2は、各手順のデータを作業ログとして取得し(図9の#101)、イベントログを生成する(#102)。そして、イベントログに基づいてペトリネットを生成する(#103)。
The operator teaches the robot 3 a plurality of work procedures for a specific purpose. The
さらに、コンピュータ2は、ペトリネットに基づいてN通りの発火系列を選択し、発火系列それぞれの総発火遷移時間を算出し、総発火遷移時間の最も短い発火系列を最適発火系列として選出する(#104)。最適発火系列に従ってロボット3の作業をシミュレーションすることによって動作検証を行う(#105)。
Furthermore, the
そして、動作検証に成功したら、コンピュータ2は、最適発火系列に従ってロボット3を動作させるための動作プログラム80を生成し(#106)、ロボット3へ適用する(#107)。ロボット3は、動作プログラム80に基づいて制御され、特定の目的のための作業を行う。
If the operation verification is successful, the
本実施形態によると、作業ログ61、62に基づいて特定の作業のペトリネット7が動作計画最適化システム1によって生成される。そしてペトリネット7は、図7に例示したように、特定の作業を完了させるために取ることのできる複数の発火系列(経路)を1つのグラフとして視覚的に表わすことができる。よって、オペレータは、ペトリネット7を参考することによって、能率のよい手順を従来よりも容易に選ぶことができる。
According to this embodiment, the
さらに、ペトリネット7の中から最適発火系列が選出され、ロボット3での実行可能性が検証され、ロボット3に適用される。よって、オペレータは、複数の発火系列の中から状況に応じて能率のよい手順をさらに容易に選ぶことができる。
Furthermore, an optimal firing sequence is selected from the
〔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において、トークンは、トランジションt1で2つになり、それぞれ、プレースp2、p4へ進む。そして、プレースp6で合流する。最適動作計画決定部407は、トランジションt1の発火遷移時間T1と、トランジションt2の発火遷移時間T2およびトランジションt3の発火遷移時間T3のうち長いほうの発火遷移時間と、トランジションt4の発火遷移時間T4との合計を、発火系列72の総発火遷移時間として算出する。つまり、T1+T2+T4およびT1+T3+T4のうち長いほうを総発火遷移時間として算出する。
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
例えば、トランジションt2は、ワークをツール32のハンドでピックする姿勢を取るタスクに対応し、トランジションt3は、ツール32のカメラでワークを撮影しワークに不具合がないことを確認するタスクに対応する。
For example, transition t2 corresponds to the task of taking a posture to pick the workpiece with the hand of the
ペトリネット7は、第一のワーク51および第二のワーク52をそれぞれ第一の位置および第二の位置から第三の位置へ移動させる作業の動作計画の最適化のために生成されたが、ペトリネット7を他の作業のために適用することができる。例えば、第一のワーク51および第二のワーク52をそれぞれ第四の位置および第五の位置から第六の位置へ移動させる作業の動作計画の最適化のために用いてもよい。
The
この場合は、それぞれの位置でロボット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
そして、最適動作計画決定部407は、変更後のパラメータおよび動作時刻に基づいてN通りの発火系列それぞれの総発火遷移時間を算出し、最適発火系列を選出する。
Then, the optimal action
または、ペトリネット7を、ロボット3以外のロボットに同様の作業を行わせる際の最適動作計画のために使用してもよい。この場合も、それぞれの位置でそのロボットが取る姿勢に合わせて作業ログ61、62(図6参照)のパラメータを変更し、さらに各ステップの動作時刻を変更すればよい。そして、最適動作計画決定部407は、変更後のパラメータおよび動作時刻に基づいてN通りの発火系列それぞれの総発火遷移時間を算出し、最適発火系列を選出すればよい。
Alternatively, the
このように、ペトリネット7は、ロボット3における他の作業または他のロボットにおける作業のために用途を拡張することができる。
In this way, the
本実施形態では、2つの作業ログ61、62に基づいてペトリネット7を生成する場合を例に説明したが、3つ以上の作業ログに基づいて生成してもよい。
Although the present embodiment has been described as an example in which the
本実施形態では、それぞれ異なる位置にある2つのワークを移動させる作業をロボット3に行わせるための動作計画の最適化を行う場合を例に説明したが、組立てまたは加工などの作業を行わせるための動作計画の最適化を行う場合にも、本発明を適用することができる。
In this embodiment, an example is explained in which a motion plan is optimized to have the
本実施形態では、最適動作計画決定部407は、総発火遷移時間が最も短い発火系列を最適発火系列として選出したが、要求に係る時間以内に総発火遷移時間が納まる発火系列を複数選出してオペレータに提示し、これらの発火系列の中からオペレータに最適発火系列を選択させてもよい。
In the present embodiment, the optimal action
ペトリネット7のデータをコンピュータ2から他のコンピュータへ出力し、当該他のコンピュータがペトリネット7を使用してロボットの動作計画の最適化を行ってもよい。
The data of the
本実施形態では、ロボット3が6軸ロボットである場合を例に説明したが、7軸以上の多関節ロボットである場合、双腕型ロボットである場合、スカラロボットである場合、またはパラレルリンクロボットである場合にも、本発明を適用することができる。
本実施形態では、総発火遷移時間すなわち所要時間が最も短い発火系列を最適発火系列として選出したが、他の指標に基づいて選出してもよい。例えば、姿勢の変化に要する消費電力量の最も少ない発火系列またはツール32の移動距離の最も短い発火系列を最適発火系列として選出してもよい。または、総発火遷移時間、消費電力量、および移動距離などに基づいて総合的な移動コストを算出し、移動コストの最も低い発火系列を最適発火系列として選出してもよい。
In this embodiment, the case where the
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
その他、動作計画最適化システム1、コンピュータ2、ロボット3の全体または各部の構成、処理の内容、処理の順序、データの構成、発火遷移時間の決め方などは、本発明の趣旨に沿って適宜変更することができる。
In addition, the configuration of the entire motion
1 動作計画最適化システム
3 ロボット
401 作業ログ取得部(手順データ取得手段)
405 ペトリネット生成部(プロセスモデル生成手段)
407 最適動作計画決定部(適格経路選出手段)
408 動作検証部(検証手段)
61 作業ログ(手順データ)
62 作業ログ(手順データ)
7 ペトリネット(プロセスモデル)
1 Motion
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.
請求項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.
請求項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:
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) |
-
2022
- 2022-05-12 JP JP2022078971A patent/JP2023167643A/en active Pending
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 |