JP2003200368A - 複数ロボットの作業教示方法および作業教示装置 - Google Patents

複数ロボットの作業教示方法および作業教示装置

Info

Publication number
JP2003200368A
JP2003200368A JP2002247488A JP2002247488A JP2003200368A JP 2003200368 A JP2003200368 A JP 2003200368A JP 2002247488 A JP2002247488 A JP 2002247488A JP 2002247488 A JP2002247488 A JP 2002247488A JP 2003200368 A JP2003200368 A JP 2003200368A
Authority
JP
Japan
Prior art keywords
robots
work
schedule
robot
teaching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002247488A
Other languages
English (en)
Other versions
JP4228387B2 (ja
Inventor
Shingo Ando
慎悟 安藤
Yasuyuki Inoue
康之 井上
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.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2002247488A priority Critical patent/JP4228387B2/ja
Publication of JP2003200368A publication Critical patent/JP2003200368A/ja
Application granted granted Critical
Publication of JP4228387B2 publication Critical patent/JP4228387B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

(57)【要約】 【課題】 複数ロボット全体の作業時間が最小となる
教示データを作成する方法とその方法を実施する装置を
提供する。 【解決手段】他のロボットの存在を無視して作成したロ
ボット単体の単体教示データを全てのロボットに関して
入力し、Kを1以上の整数としたとき、全ロボットの単
体教示データである単体教示データセット内の作業点に
おける動作命令と作業点間の移動に関する動作命令のど
ちらか一方、あるいは両方を対象として、単体教示デー
タセット内の各動作命令の開始時刻、すなわち動作命令
開始スケジュール、をK通り決定し、その各動作命令開
始スケジュールにしたがって各ロボットを動作させられ
るように、単体教示データセットを修正した教示データ
の組、すなわち修正教示データセット、をK通り作成す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、教示データにした
がって作業する複数のロボットの教示方法と教示装置に
関するものであり、特に複数のロボットが互いに干渉を
起こさず、全体の作業時間を短くすることができる教示
方法と教示装置に関する。
【0002】
【従来の技術】自動車の生産ラインでは、複数台の産業
用ロボットマニピュレータを投入して、スポット溶接な
どの作業を自動化している。ここでは、多数のロボット
が互いの動作領域が重なり合うほど近接して配置されて
いる。このような近接する複数のロボットの教示作業
は、従来、教示者が個々のロボットの動作を1ステップ
づつ実際に動作させながら、複数ロボット間で干渉が生
じないように各ロボットの動作軌道と、各動作軌道間の
実行タイミング(インタロック)を試行錯誤的に教示し
ていた。しかし、教示者による試行錯誤的な教示では、
複数のロボットを安全かつ効率的に動作させるのが非常
に難しいという問題がある。複数のロボットを効率的に
動作させようとすると、その教示作業は非常に複雑にな
り、かつ教示および動作確認に非常に時間がかかる。特
に、製品の種類が頻繁に変わる多品種少量生産では、製
品の種類が変更される度に教示者が教示作業を全てやり
直すことになるので、実際にロボットが稼動して生産を
行なう直接工程よりも、教示作業などの間接工程時間の
比率が増大し、生産性が極端に低下してしまう。また、
教示者が教示作業に直接に係わる割合が大きいので、人
件費の高騰も問題となる。
【0003】近年では、教示者による直接教示に代わっ
て、計算機を用いて複数ロボットの教示作業と動作制御
を効率化する方法や装置が提案されている。例えば、特
開平11−347984「ロボット制御装置」では、複数ロボッ
ト間の干渉を回避し、なおかつロボットの待ち時間を最
小にして効率的にロボットを動作させる制御装置が開示
されている。図22は、そのロボット制御装置の動作原
理を説明している。同図において、(A)は、ロボットA
とロボットBの作業点と作業点間の動作経路を示してい
る。(B)は、(A)の作業点データをもとに干渉抽出手段に
よって計算されたロボットAとBの作業点間の干渉テー
ブルを示している。(C)は、非干渉通過順序決定手段に
より計算された干渉する作業点におけるロボットの優先
順序テーブルを示している。図22(B)は、ロボットA
とロボットBが、作業点2aと2b、3aと3b、4aと4bで同時
に作業を行なうと干渉が生じることを示している。図2
2(C)は、ロボットBの作業2b,3b,4bに優先させてロボ
ットAの作業2a,3a,4aを実行させることを示している。
優先順位テーブルを作成する際、各ロボットの残りの作
業時間と作業点での待ち時間の和を比較して、長い方を
選択することにより優先順位を決定している。
【0004】また、特開平7−44214「ロボット群の制御
システム」には、各ロボットに割り当てられた作業プロ
グラム群の中から、ロボット相互の干渉を回避する適切
なタスクを選択して実行させる制御システムが開示され
ている。図23は、この制御システムのフローチャート
を示している。同図の隣接ロボット干渉チェック領域定
義手順(S1a〜S4a)は、タスク実行中の隣接ロボットが
現在位置からタスク終了までに作業空間を掃引する領域
を求める。対象ロボット干渉チェック領域定義手順(S1
〜S3)は未実行のタスクそれぞれに対して、タスク開始
からタスク終了までに対象ロボットが作業空間を掃引す
る領域を求める。同図のS5において、隣接ロボット干渉
チェック領域と未実行タスク群に対する対象ロボット干
渉チェック領域の干渉チェックを行ない、現在タスク実
行中の隣接ロボットに干渉せずに実行できる対象ロボッ
トのタスク候補が選択される。S6において、特定のルー
ル(例えば対象ロボットの現在位置から最も近いタスク
を選択)に基づいて実行するタスクが選択・決定され
る。
【0005】
【発明が解決しようとする課題】特開平11−347984「ロ
ボット制御装置」で開示された方法を図22で説明する
と、ロボットAが作業点2aの作業を終えて干渉領域2aを
通過し終えるまで、ロボットBを作業点1bで待機させて
いる。しかしながら、実際には、ロボットBが作業点1b
から2bに移動するための時間があるため、必ずしもロボ
ットAが干渉領域2aを通過するまでロボットBを作業点
1bに待機させておく必要はない。つまり、全体の作業時
間を更に短縮できる余地は十分残されているが、作業点
間の移動軌道については何も考慮していないため、この
方法ではこれ以上対処できないという問題がある。
【0006】特開平7−44214「ロボット群の制御システ
ム」に開示されている方法では、各ロボットのタスク開
始位置と終了位置およびその間の動作経路を用いて、タ
スク開始から終了までロボットが作業空間を掃引する領
域を干渉チェック領域としている。したがって、実際に
は一方のロボットがタスクを途中まで実行した時点で他
方のロボットのタスクを開始させても干渉が生じない場
合でも、前者ロボットのタスク終了まで後者ロボットは
待機してしまう。この方法においても、作業時間を更に
短縮できる余地が十分残されているが、この方法の枠組
みではこれ以上対処できないという同様の問題を持つ。
【0007】さらに、上述した2つの方法は、複数ロボ
ットの教示作業の大半を自動化するための方法を提示し
ているが、教示者の主観、経験則や意図を反映する構造
にはなっていないため、現場での教示者による微妙な調
整が困難であるという問題もある。
【0008】本発明は、上記問題に鑑みてなされたもの
であり、作業点だけでなく作業点間の移動軌道も考慮
し、作業実行中についても一定時間間隔ごとに干渉回避
を保証することにより、複数ロボット全体の作業時間が
最小となる教示データを作成する方法、およびその方法
を実施する装置を提供することを目的とする。さらに、
教示者の主観、経験則や意図を教示データ作成のプロセ
スに取り入れ、現場での微妙な調整を行ない易い複数ロ
ボットの教示データを作成する方法、およびその方法を
実施する装置を提供することを目的とする。
【0009】
【課題を解決するための手段】上記課題を解決するた
め、請求項1記載の複数ロボットの作業教示方法は、教
示データにしたがって作業する複数のロボットに対し
て、ロボットが互いに干渉しないように各ロボットの教
示データを作成する方法において、ロボット単体のみを
考慮し、他のロボットの存在を無視して作成したロボッ
ト単体の教示データ(単体教示データ)を全てのロボッ
トに関して入力し、Kを1以上の整数としたとき、全ロ
ボットの前記単体教示データ(単体教示データセット)
内の作業点における動作命令と作業点間の移動に関する
動作命令のどちらか一方、あるいは両方を対象として、
前記単体教示データセット内の各動作命令の開始スケジ
ュールをK通り決定し、前記K通りの動作命令開始スケジ
ュールそれぞれにしたがって各ロボットを動作させられ
るように、前記単体教示データセットを修正した教示デ
ータの組(修正教示データセット)をK通り作成するこ
とを特徴としている。また、請求項2記載の複数ロボッ
トの作業教示方法は、前記修正教示データセットにした
がった各ロボットの動作を、K通り全てあるいはK通り未
満、教示作業者(教示者)に対して実機複数ロボットに
より提示し、教示者の主観、あるいは教示者の経験則に
基づいて、教示者がK通りの修正教示データセットの中
から1つ選択することを特徴としている。また、請求項
3記載の複数ロボットの作業教示方法は、前記動作命令
開始スケジュールを決定する際に、前記動作命令開始ス
ケジュールをK通り以上作成し、前記各動作命令開始ス
ケジュールにしたがった各ロボットの動作を、教示者に
対して仮想環境において提示し、教示者の主観、あるい
は教示者の経験則、あるいはスケジュールの明確な評価
値に基づいて、教示者が前記動作命令開始スケジュール
をK通り選択することを特徴としている。また、請求項
4記載の複数ロボットの作業教示方法は、前記動作命令
開始スケジュールを決定する際に、前記動作命令開始ス
ケジュールをK通り以上作成し、複数の前記動作命令開
始スケジュールの中から、複数ロボット全体の作業時間
(最大完了時刻)が最小となる、あるいは別の特定の評
価基準を最適化するものから優先的に前記動作命令開始
スケジュールをK通り選択することを特徴としている。
また、請求項5記載の複数ロボットの作業教示方法は、
前記動作命令開始スケジュールを決定する前に、前記単
体教示データセットの動作命令の内、教示者が一部の動
作命令を限定し、限定された動作命令に対して、前記動
作命令開始スケジュールを決定することを特徴としてい
る。また、請求項6記載の複数ロボットの作業教示方法
は、前記動作命令開始スケジュールを決定する前に、前
記単体教示データセットの動作命令の内、一部あるいは
全ての動作命令間の実行順序(先後関係)を教示者が指
定し、指定された動作命令実行順序を満たすように前記
動作命令開始スケジュールを決定することを特徴として
いる。また、請求項7記載の複数ロボットの作業教示方
法は、前記動作命令開始スケジュールにしたがって各ロ
ボットを動作させられるように、前記単体教示データセ
ットの適切な個所にインタロック命令を挿入して前記単
体教示データセットを修正することを特徴としている。
また、請求項8記載の複数ロボットの作業教示方法は、
前記動作命令開始スケジュールをK通り以上作成する際
に、複数ロボットの動作範囲が互いに重なり合う共有作
業空間を複数領域に分割し、各分割領域に番号付けした
共有作業空間マップを作成し、各ロボットの各動作命令
それぞれに対して、動作開始時刻から動作終了時刻まで
一定時間間隔(タイムスロット)ごとのロボットの移動
予定位置を求め、各ロボットの各動作命令の前記各タイ
ムスロットでの移動予定位置に対して、ロボットが前記
共有作業空間マップのどの(何番の)分割領域を占有す
るかを求め、同時刻に複数のロボットが前記共有作業空
間マップの共通(同一番号)の分割領域を占有せず、か
つ複数ロボット全体の作業時間(最大完了時刻)が最小
あるいはできるだけ短くなるように、前記動作命令開始
スケジュールを、前記タイムスロットを時刻の刻み幅と
して、探索または繰り返し計算またはディスパッチング
ルールに基づくスケジューリング方式、あるいは試行錯
誤により求めること(干渉回避スケジューリング)を特
徴としている。また、請求項9記載の複数ロボットの作
業教示方法は、前記干渉回避スケジューリングの際に、
スケジューリング理論における「仕事(ジョブ)」,
「作業(オペレーション)」,「機械(マシン)」の概
念をそれぞれ「単体教示データ」,「動作命令」,「共有
作業空間マップの分割領域」に対応させて前記動作命令
開始スケジュールを求めることを特徴としている。ま
た、請求項10記載の複数ロボットの作業教示方法は、
前記干渉回避スケジューリングの際に、スケジューリン
グ理論における「仕事」,「機械」の概念をそれぞれ
「単体教示データ」,「共有作業空間マップの分割領
域」に対応させ、各動作命令をその開始時刻から終了時
刻まで前記タイムスロットごとに走査して、各移動予定
位置においてロボットが前記共有作業空間マップを占有
する分割領域が変化する度にその動作命令を仮想的なサ
ブ動作命令に分割し、「サブ動作命令」をスケジューリ
ング理論における「作業」と見なして前記動作命令開始
スケジュールを求めることを特徴としている。また、請
求項11記載の複数ロボットの作業教示方法は、前記干
渉回避スケジューリングの際に、各動作命令をスケジュ
ーリング理論の「作業」と見なして動作命令処理時間単
位の粗いスケジュール(マクロレベル大域スケジュー
ル)を求め、前記共有作業空間マップの同じ分割領域を
占有する「マクロレベル大域スケジュールのクリティカ
ルパス」上の動作命令間に対して、動作命令を前記サブ
動作命令に分割し、前記サブ動作命令をスケジューリン
グ理論の「作業」と見なして局所範囲での細かなスケジ
ュール(ミクロレベル局所スケジュール)を求め、前記
マクロレベル大域スケジュールを前記ミクロレベル局所
スケジュールにより部分的に修正(大域スケジュールミ
クロレベル修正)する階層的なスケジューリングを行な
って前記動作命令開始スケジュールを求めることを特徴
としている。また、請求項12記載の複数ロボットの作
業教示方法は、ロボットコントローラ間の接続情報を入
力し、前記動作命令開始スケジュールを決定する前に、
前記単体教示データセットの内、一部あるいは全ての動
作命令の実行順序(先後関係)を教示者が指定する際、
前記動作命令の先後関係をインタロック命令として単体
教示データセットに挿入し、前記単体教示データセット
内に予め挿入されたインタロック命令が存在するとき、
前記ロボットコントローラ間接続情報を参照して前記動
作命令の先後関係を抽出し、前記動作命令の先後関係を
満足する範囲内で前記動作命令開始スケジュールを決定
することを特徴としている。また、請求項13記載の複
数ロボットの作業教示方法は、前記動作命令開始スケジ
ュールをK通り以上作成するとき、複数ロボットの動作
範囲が互いに重なり合う共有作業空間を定義し、各動作
命令を実行したときにロボットの一部あるいは全てのリ
ンクモデルおよびツールモデルが共有作業空間内を通過
(sweep)する領域(占有領域)を求め、スケジューリ
ング理論における「仕事(ジョブ)」、「作業(オペレ
ーション)」、「機械(マシン)」の概念をそれぞれ
「単体教示データ」、「動作命令」、「共有作業空間の
部分領域」に対応させ、各動作命令をスケジューリング
理論における「選択グラフ(Disjunctive Graph)のノー
ド」とし、異なるロボット間の動作命令の占有領域同士
を比較し、占有領域同士が交わる動作命令の対をスケジ
ューリング理論における「選択枝(Disjunctive Edge)」
とし、予め指定された動作命令の実行順序(先後関係)
をスケジューリング理論における「選択グラフのアー
ク」としてスケジューリング理論における「選択グラ
フ」を設定し、前記選択グラフに基づいて干渉回避スケ
ジューリングをすることを特徴としている。また、請求
項14記載の複数ロボットの作業教示方法は、前記共有
作業空間あるいは前記作業空間マップを再帰的なブロッ
ク分割により生成し、生成された階層的な各分割領域を
ツリー構造により管理し、前記動作命令の占有領域ある
いは前記各移動予定位置におけるロボットの占有状態、
すなわち、内包される前記分割領域の集合をツリー構造
で管理することを特徴としている。また、請求項15記
載の複数ロボットの作業教示方法は、前記干渉回避スケ
ジューリングが、前記選択枝の向き、すなわちアーク、
の組み合わせを決めることによって前記動作命令開始ス
ケジュールを作成するものであり、冗長なアークおよび
冗長な選択枝を削除するルールを1つあるいは複数有
し、ロボット間衝突回避が保証されないアークと選択枝
の組みを排除するルールを1つあるいは複数有し、前記
ルールを逐次適用しながら前記干渉回避スケジューリン
グを行うことを特徴としている。また、請求項16記載
の複数ロボットの作業教示方法は、動作命令に対してそ
の経路上に内分点を追加してその動作命令を複数個の連
続した動作命令に分割する機能を有し、一部の連続した
動作命令を一つに併合して1つの動作命令とする機能を
有し、前記動作命令開始スケジュールを決定する前に教
示者が分割あるいは併合する動作命令を指定して単体教
示データセットを編集し、編集済み単体教示データセッ
ト内の全ての動作命令(分割動作命令、併合動作命令、
オリジナルの動作命令)を、便宜上、編集済み動作命令
としたとき、各編集済み動作命令をスケジューリング理
論の「作業」と見なして、動作命令開始スケジュールを
作成し、前記動作命令開始スケジュールにしたがって前
記修正教示データを作成する際は、前記併合動作命令を
元の連続した複数の動作命令に置き換え、間にインタロ
ック命令を挿入する必要の無い複数の連続した分割動作
命令を1つの動作命令にまとめることを特徴としてい
る。また、請求項17記載の複数ロボットの作業教示方
法は、動作命令の経路上に内分点を追加してその動作命
令を分割する際、分割された各動作命令の指令速度時間
変化パターンが定速度領域を持つように内分点間隔の最
小値を制限することを特徴としている。また、請求項1
8記載の複数ロボットの作業教示方法は、前記動作命令
開始スケジュールからロボット間の動作命令の実行順序
(先後関係)情報を抽出し、前記ロボット間動作命令の
先後関係情報と前記ロボットコントローラ間の接続情報
を利用して前記修正教示データセットを作成することを
特徴としている。また、請求項19記載の複数ロボット
の作業教示装置は、教示データにしたがって作業する複
数のロボットに対して、ロボットが互いに干渉しないよ
うに各ロボットの教示データを作成する装置であって、
ロボット単体のみを考慮し、他のロボットの存在を無視
して作成したロボット単体の教示データ(単体教示デー
タ)を全てのロボットに関して入力する単体教示データ
セット入力手段と、Kを1以上の整数としたとき、全ロ
ボットの前記単体教示データ(単体教示データセット)
内の作業点における動作命令と作業点間の移動に関する
動作命令のどちらか一方、あるいは両方を対象として、
単体教示データセット内の各動作命令の開始スケジュー
ルをK通り決定する動作命令開始スケジュール決定手段
と、前記K通りの動作命令開始スケジュールそれぞれに
したがって各ロボットを動作させられるように、前記単
体教示データセットを修正した教示データの組(修正教
示データセット)をK通り作成する単体教示データセッ
ト修正手段を備えたことを特徴としている。また、請求
項20記載の複数ロボットの作業教示装置は、前記修正
教示データセットにしたがった各ロボットの動作を、K
通り全てあるいはK通り未満、教示作業者(教示者)に
対して実機複数ロボットにより提示する実機動作提示手
段と、教示者の主観、あるいは教示者の経験則に基づい
て、教示者がK通りの修正教示データセットの中から1
つ選択する修正教示データセット選択手段を備えたこと
を特徴としている。また、請求項21記載の複数ロボッ
トの作業教示装置は、前記動作命令開始スケジュール決
定手段として、Kを1以上の整数としたとき、前記動作命
令開始スケジュールをK通り以上作成する動作命令開始
スケジュール作成手段と、前記各動作命令開始スケジュ
ールにしたがった各ロボットの動作を、教示者に対して
仮想環境上において提示する仮想環境動作提示手段と、
教示者の主観、あるいは教示者の経験則、あるいはスケ
ジュールの明確な評価値に基づいて、教示者が前記動作
命令開始スケジュールをK通り選択する教示者選択手段
を備えたことを特徴としている。また、請求項22記載
の複数ロボットの作業教示装置は、前記動作命令開始ス
ケジュール決定手段として、Kを1以上の整数としたと
き、動作命令開始スケジュールをK通り以上作成する動
作命令開始スケジュール作成手段と、複数の前記動作命
令開始スケジュールの中から、複数ロボット全体の作業
時間(最大完了時刻)が最小となる、あるいは別の特定
の評価基準を最適化するものから優先的に前記動作命令
開始スケジュールをK通り選択する最適化選択手段を備
えたことを特徴としている。また、請求項23記載の複
数ロボットの作業教示装置は、前記単体教示データセッ
トの動作命令の内、一部の動作命令を限定する対象動作
命令限定手段を備え、限定された動作命令に対して前記
動作命令開始スケジュールを決定することを特徴として
いる。また、請求項24記載の複数ロボットの作業教示
装置は、前記単体教示データセットの動作命令の内、一
部あるいは全ての動作命令間の実行順序(先後関係)を
指定する動作命令実行順序指定手段を備え、指定された
動作命令間の実行順序を満足するように前記動作命令開
始スケジュールを決定することを特徴としている。ま
た、請求項25記載の複数ロボットの作業教示装置は、
前記単体教示データセット修正手段として、前記動作命
令開始スケジュールにしたがって各ロボットを動作させ
られるように、単体教示データセットの適切な個所にイ
ンタロック命令を挿入するインタロック命令挿入手段を
備えたことを特徴としている。また、請求項26記載の
複数ロボットの作業教示装置は、前記動作命令開始スケ
ジュール作成手段として、複数ロボットの動作範囲が互
いに重なり合う共有作業空間を複数領域に分割し、各分
割領域に番号付けした共有作業空間マップを作成する共
有作業空間マップ作成手段と、各ロボットの各動作命令
それぞれに対して、動作開始時刻から動作終了時刻まで
一定時間間隔(タイムスロット)ごとのロボットの移動
予定位置を求める移動予定位置計算手段と、各ロボット
の各動作命令の前記各タイムスロットでの移動予定位置
に対して、ロボットが前記共有作業空間マップのどの
(何番の)分割領域を占有するかを求める共有作業空間
占有状態計算手段と、同時刻に複数のロボットが前記共
有作業空間マップの共通(同一番号)の分割領域を占有
せず、かつ複数ロボット全体の作業時間(最大完了時
刻)が最小あるいはできるだけ短くなるように、前記動
作命令開始スケジュールを、前記タイムスロットを時刻
の刻み幅として、探索または繰り返し計算またはディス
パッチングルールに基づくスケジューリング方式、ある
いは試行錯誤により求める干渉回避スケジューリング手
段を備えたことを特徴としている。また、請求項27記
載の複数ロボットの作業教示装置は、前記干渉回避スケ
ジューリング手段として、スケジューリング理論におけ
る「仕事」,「機械」の概念をそれぞれ「単体教示デー
タ」,「共有作業空間マップの分割領域」に対応させ、
各動作命令をスケジューリング理論の「作業」と見なし
て動作命令処理時間単位の粗いスケジュールを求めるマ
クロレベル大域スケジューリング手段と、前記共有作業
空間マップの同じ分割領域を占有する「マクロレベル大
域スケジュールのクリティカルパス」上の動作命令間に
対して、動作命令をサブ動作命令に分割し、サブ動作命
令をスケジューリング理論の「作業」と見なして局所範
囲での細かなスケジュールを求めるミクロレベル局所ス
ケジューリング手段と、前記マクロレベル大域スケジュ
ーリング手段により得られた大域スケジュールを、前記
ミクロレベル局所スケジューリング手段により得られた
局所スケジュールを利用して、部分的に修正する大域ス
ケジュールミクロレベル修正手段を備えたことを特徴と
している。また、請求項28記載の複数ロボットの作業
教示装置は、ロボットコントローラ間の接続情報を入力
するロボットコントローラ間接続情報入力手段を備え、
前記動作命令実行順序指定手段が、前記単体データセッ
トの動作命令の一部あるいは全ての実行順序(先後関
係)をインタロック命令として挿入するためのインタロ
ック命令挿入手段と、前記ロボットコントローラ間接続
情報入力手段で入力されたロボットコントローラ間接続
情報と前記インタロック命令挿入手段によって挿入され
たインタロック命令から動作命令の先後関係を抽出する
動作命令先後関係抽出手段とを備えたことを特徴として
いる。また、請求項29記載の複数ロボットの作業教示
装置は、前記動作命令開始スケジュール作成手段が、複
数ロボットの動作範囲が互いに重なり合う共有作業空間
を定義する共有空間定義手段と、各動作命令を実行した
ときにロボットの一部あるいは全てのリンクモデルおよ
びツールモデルが共有作業空間内を通過(sweep)する
領域(占有領域)を求める動作命令占有領域計算手段
と、スケジューリング理論における「仕事(ジョ
ブ)」、「作業(オペレーション)」、「機械(マシ
ン)」の概念をそれぞれ「単体教示データ」、「動作命
令」、「共有作業空間の部分領域」に対応させ、各動作
命令をスケジューリング理論における「選択グラフ(Dis
junctive Graph)のノード」とし、異なるロボット間の
動作命令の占有領域同士を比較し、占有領域同士が交わ
る動作命令の対をスケジューリング理論における「選択
枝(Disjunctive Edge)」とし、予め指定された動作命令
の実行順序(先後関係)をスケジューリング理論におけ
る「選択グラフのアーク」として、スケジューリング理
論における「選択グラフ」を設定する選択グラフ設定手
段と、前記選択グラフ設定手段によって設定された選択
グラフに基づいて前記動作命令開始スケジュールを計算
する干渉回避スケジューリング手段とを備えたことを特
徴としている。また、請求項30記載の複数ロボットの
作業教示装置は、前記共有作業空間定義手段および共有
作業空間マップ作成手段が、再帰的なブロック分割によ
り共有作業空間の階層的な分割領域をツリー構造で保存
し、前記動作命令占有領域計算手段および共有作業空間
占有状態計算手段が、占有される前記共有作業空間の分
割領域の集合をツリー構造で保存することを特徴として
いる。また、請求項31記載の複数ロボットの作業教示
装置は、前記干渉回避スケジューリング手段が、スケジ
ューリングの最中に逐次、冗長なアークおよび冗長な選
択枝の存在を調べてこれを削除する冗長アーク・冗長選
択枝削除手段と、スケジューリングの最中に逐次、ロボ
ット間衝突回避が保証されない不適切なアークと選択枝
の組みの存在を調べてこれを排除するアーク選択手段と
を備えたことを特徴としている。また、請求項32記載
の複数ロボットの作業教示装置は、動作命令に対してそ
の経路上に内分点を追加してその動作命令を複数個の連
続した動作命令に分割する機能と、一部の連続した動作
命令を一つに併合して1つの動作命令とする機能を使用
して、前記動作命令開始スケジュールを作成する前に教
示者が分割あるいは併合する動作命令を指定して単体教
示データセットを編集する単体教示データセット編集手
段を備え、編集済み単体教示データセット内の全ての動
作命令(分割動作命令、併合動作命令、オリジナルの動
作命令)を、便宜上、編集済み動作命令としたとき、前
記選択グラフ設定手段は、各編集済み動作命令をスケジ
ューリング理論の「作業」と見なして選択グラフを設定
し、前記動作命令開始スケジュールにしたがって前記修
正教示データを作成する際、前記単体教示データセット
修正手段は、前記併合動作命令を元の連続した複数の動
作命令に置き換え、間にインタロック命令を挿入する必
要の無い複数の連続した分割動作命令を1つの動作命令
にまとめることを特徴としている。また、請求項33記
載の複数ロボットの作業教示装置は、前記単体教示デー
タセット編集手段が、動作命令に対してその経路上に内
分点を追加してその動作命令を複数個の連続した動作命
令に分割する際に、分割された各動作命令の指令速度時
間変化パターンが一定速度領域を有するように内分点間
隔の最小値を制限する分割間隔制限手段を備えたことを
特徴としている。また、請求項34記載の複数ロボット
の作業教示装置は、ロボットコントローラ間の接続情報
を入力するロボットコントローラ接続情報入力手段を備
え、前記単体教示データセット修正手段が、前記動作命
令開始スケジュールからロボット間の動作命令の先後情
報を抽出する動作命令先後関係抽出手段を備え、前記動
作命令先後関係情報とロボットコントローラ間接続情報
を利用して修正教示データセットを作成することを特徴
としている。
【0010】
【発明の実施の形態】以下、本発明の実施の形態を、図
を参照して説明する。図4は2台の隣接するロボットと
その作業空間を示している。同図において、401a, 401b
はそれぞれロボットA、ロボットBであり、402a, 402b
はロボットA、ロボットBの各動作範囲である。403は
動作範囲402aと402bが重なり合う領域であり、共有作業
空間である。なお、以降、説明を簡略化するため、図4
のように2次元作業空間における2台のロボットについて
話を進めるが、本発明はこれにとらわれるものではな
く、3次元作業空間における任意の台数、任意の自由度
のロボットに対して同様に適用できる。
【0011】図5はロボットA、ロボットBに割り当て
られた作業点(Pa1〜Pa3, Pb1〜Pb3)と作業点間の移動
順序を示している。作業点Pa1〜Pa3がロボットAに割り
当てられた作業点であり、Pb1〜Pb3がロボットBに割り
当てられた作業点である。Pa0、Pb0はそれぞれロボット
A、ロボットBの動作開始位置である。図6は図5に示
した作業を、互いに他方のロボットの存在を無視してロ
ボットA、ロボットBに教示したJOBデータ(単体教示
データ)を示している。図6では、作業点での作業をス
ポット溶接とした例である。これ以外にも、アーク溶接
やハンドリング作業などさまざまな作業に適用できる。
また、以降、ロボットAの単体教示データ(図6(a))
とロボットBの単体教示データ(図6(b))を併せて単
体教示データセットと呼ぶ。
【0012】互いに他方のロボットの存在を無視して教
示しているので、図6(a)、(b)のJOBを不適切なタイミ
ングで実行すると2台のロボットは干渉を起こしてしま
う。例えば、両者を同時に実行するとロボットAがPa1
からPa2に移動し、ロボットBがPb1からPb2に移動する
途中で干渉が起きる。本発明は、図6に示した単体教示
データセットを、各ロボットが互いに干渉せず、なおか
つ全体の作業時間が最小あるいはできるだけ短くなるよ
うに修正するものである。
【0013】図1に本発明の第1の実施の形態に係わる
複数ロボットの作業教示方法のフローチャートを示す。
図のS1-1では、図6に示したような単体教示データセッ
ト、すなわち複数ロボットの単体教示データ、を入力す
る。S1-2では、S1-3, S1-5などにおける処理分岐方向を
選択するパラメータ(Flag1, Flag2)を指定する。ま
ず、Flag1, Flag2がすべてFalseの場合の処理を説明す
る。
【0014】これらがすべてFalseの場合、S1-1にて単
体教示データセットが入力された後、S1-7にて単体教示
データセット内の各動作命令の開始時刻(動作命令開始
スケジュール)をK通り決定し、S1-8にて決定したK通
りの動作命令開始スケジュールにしたがって単体教示デ
ータセットの修正が行なわれる。すなわち、S1-8では修
正された各ロボットの教示データ(修正教示データセッ
ト)がK通り作成される。ここで、Kは1以上の整数で
ある。
【0015】図2は、図1の動作命令開始スケジュール
決定部(S1-7)の内部フローチャートを示している。図
2より、動作命令開始スケジュール決定部(S1-7)は、
動作命令開始スケジュール作成部(S2-1)と動作命令開
始スケジュール選択部(S2-2)の2つの処理に大別され
る。動作命令開始スケジュール作成部(S2-1)は、共有
作業空間マップ作成部(S2-1a)、各動作命令の移動予
定位置計算部(S2-1b)、共有作業空間の占有状態計算
部(S2-1c)、干渉回避スケジューリング(S2-1d)に大
別される。以下、この順番に処理の詳細を説明する。
【0016】共有作業空間マップ作成部(S2-1a)で
は、図7の404に示すようにロボットA、ロボットBの
共有作業空間403(図4参照)を複数のブロック領域に
分割し、各ブロック領域に番地を割り付けた共有作業空
間マップを作成する。各動作命令の移動予定位置計算部
(S2-1b)では、図6に示した各動作命令に対して、動
作開始時刻から終了時刻まで一定時間間隔、すなわちタ
イムスロット、ごとの移動予定位置を求める。図8は、
図6(a)に示したロボットAの単体教示データの001:MO
VL Pa1, VL=100,…を例にして、各タイムスロットごと
の移動予定位置計算過程を模式的に示したものである。
始点、終点、速度パラメータVLおよび速度指令の生成パ
ターンから計算可能である。
【0017】共有作業空間の占有状態計算部(S2-1c)
では、各ロボットの各動作命令の各タイムスロットに対
して、ロボットの幾何モデルと共有作業空間マップ404
の各ブロック領域との干渉チェックを行なう。図9は、
図8に示した例について、各タイムスロットにおける干
渉チェックの様子を模式的に示したものである。図9に
おいて、405は各タイムスロットにおけるロボットのエ
ンドエフェクタの位置(TCP)を示している。例えば、
図9においてロボットAが作業点Pa1に到達した最後の
タイムスロットでは、ロボットAは共有作業空間マップ
の02〜07番のブロック領域と干渉している。
【0018】具体的に、ロボットAと共有作業空間マッ
プとの干渉チェックを行なうには、まず、ロボットBの
作業領域402b(円あるいは球)とロボットAモデルとの
干渉チェックを行なう。ロボットAモデルがロボットB
作業領域402bと干渉する場合のみ、共有作業空間マップ
の各ブロック領域とロボットモデルAとの干渉チェック
を行なう。こうすることにより、干渉チェック計算の無
駄を省くことができる。また、図10に示すように共有
作業空間マップ404aの各ブロック領域を階層的に管理
し、上位階層のブロック(404b1,404b2,404b3, …)か
ら下位階層のブロック(404c1,404c2, …)に向かって
干渉チェックを進めていくことにより、最終的にどの
(何番)のブロック領域とロボットモデルが干渉するか
を高速に特定することができる。
【0019】以上のように行なった各動作命令ごとの
(各タイムスロットにおける)干渉チェック結果は、図
11に示すコマンドデータに、各タイムスロットにおけ
る移動予定位置と干渉するブロック領域リスト、および
共有作業空間マップの占有情報(共有作業空間マップの
ブロック領域を占有するタイムスロット区間のリスト)
として保存される。
【0020】つぎに、干渉回避スケジューリング(S2-1
d)では、図11の上記干渉チェック結果を参照して、
各ロボットが干渉しないように各動作命令の開始時刻の
スケジュール候補をK通り以上作成する。(S2-1d)の
スケジュール候補作成は、図2に示すように、マクロレ
ベル大域スケジューリング(S2-1d-a)とミクロレベル
局所スケジューリング(S2-1d-b)、大域スケジュール
ミクロレベル修正(S2-1d-c)の3つのステップに別れ
ている。以下、(S2-1d-a), (S2-1d-b), (S2-1d-
c)の順に処理の内容を説明する。
【0021】(S2-1d-a)でマクロレベル大域スケジュ
ールを作成するにあたり、「単体教示データ」、「動作
命令」、「共有作業空間マップのブロック領域」をそれ
ぞれスケジューリング理論における「仕事(ジョ
ブ)」、「作業(オペレーション)」、「機械(マシ
ン)」の概念に対応させてスケジューリング方式を適用
する。図12は、上記定式化における選択グラフを示し
ている(選択グラフについては公知の技術)。同図にお
いて、SとTはスケジュールの始点と終点を表す特別な
ノードである。その他のノードは、図6に示したロボッ
トA、ロボットBの単体教示データ(仕事)の動作命令
(作業)を示している。A001〜A006がそれぞれロボット
Aの001〜006、B001〜B006がそれぞれロボットBの001
〜006の動作命令に対応している。ノード内に括弧で示
した数字は、その動作命令の動作時間(作業の処理時
間)である。ノード間を結ぶ実線の有向枝は、動作命令
(作業)の実行順序を示している。ノードの上あるいは
下に付記した番号は、そのノードに対応する動作命令を
実行したときに占有する共有作業空間マップのブロック
領域(機械)番号を示している。破線の無向枝は選択枝
と呼ばれ、ロボット間の動作命令の干渉関係を表してい
る。すなわち、共有作業空間マップの同じ番号のブロッ
ク領域を占有するため、同時刻には実行できない可能性
のある動作命令を示している。また、有向枝のコスト
(長さ)は始点ノードにおける動作命令の動作時間とす
る。
【0022】上述した選択グラフを用いると、スケジュ
ーリング問題は「選択グラフに閉路が生じないように、
選択枝の方向を定めること」と一般化できる。このよう
に一般化した後は、分岐限定法(公知の技術)などによ
り、クリティカルパス(SからTへ至る最長路)が最小
(最大完了時刻の最小化)あるいはできるだけ小さくな
るスケジュール候補を複数求めることができる。
【0023】図13に、図12の選択枝の方向を定めた
スケジューリング候補の1つを示す。選択枝は全てロボ
ットAの移動コマンドからロボットBの移動コマンドの
方向に向いている。また、太線はクリティカルパスを示
しており、その経路長は12.5である。また、図14に図
13のスケジュールのガントチャートを示す。
【0024】ここで、図13のA003およびB003ノードに
付記した共有作業空間マップの占有ブロック領域は、ロ
ボットが該当する動作命令実行中に通過するブロック領
域を全て列挙したものであり、動作命令開始から終了ま
で全てのブロック領域を占有し続けるわけではない。し
たがって、上記のように求めたマクロレベル大域スケジ
ュールは、粗いスケジュールであり、まだサイクルタイ
ムを短縮できる余地がある。
【0025】ミクロレベル局所スケジューリング(S2-1
d-b)では、マクロレベル大域スケジュールで求めたク
リティカルパス上の選択枝で結ばれた動作命令間に対し
て、動作命令がタイムスロットごとに共有作業空間マッ
プの何番のブロック領域を占有するかを考慮することに
よって、局所スケジュールを詳細に作成する。
【0026】図13に示したマクロレベル大域スケジュ
ールを例に取れば、A003およびB003に対してミクロレベ
ル局所スケジューリングを行なう。図15に図13のA0
03およびB003ノード間ミクロレベル局所スケジュールの
選択グラフを示す。図15に示したA003-1〜A003-5およ
びB003-1〜B003-5は、図13のA003およびB003を動作命
令開始時刻からタイムスロットごとに走査して、占有す
る共有作業空間マップのブロック領域が変化する度に仮
想的なサブ動作命令に分割することにより生成する。図
15を例に説明すれば、A003の動作命令を実行すると、
ロボットAは最初の0.5秒間で02〜07番のブロック領域
を占有し、つぎの0.5秒間で05、06、08、09番のブロッ
ク領域を占有し、つぎの0.5秒間で08、09、11、12番の
ブロック領域を占有する。
【0027】ミクロレベル局所スケジュールもマクロレ
ベル大域スケジュールと全く同様の方式により解を複数
求めることが可能である。図16に図15の選択グラフ
におけるスケジュール候補の1つとそのクリティカルパ
スを示す。図17には、図16のスケジュールのガント
チャートを示す。
【0028】大域スケジュールミクロレベル修正(S2-1
d-c)では、ミクロレベル局所スケジューリングの結果
を用いて、先に求めたマクロレベル大域スケジュールを
ミクロレベルで修正する。具体的には、マクロレベル大
域スケジュールのミクロレベル局所スケジューリング対
象個所に対して、ミクロレベル局所スケジューリングで
短縮された時間分だけシフトさせる。図16および図1
7の例では、A003およびB003の最大動作完了時間は3.5
秒なので、図14のマクロレベル大域スケジュールの最
大完了時刻は1.5秒短縮され、最終的に図18の大域ス
ケジュールが得られる。
【0029】S2-1d-aのマクロレベル大域スケジューリ
ングでは、動作命令の最大完了時刻を評価関数として、
最大L通りのスケジュール候補を作成する。このL通り
のスケジュール候補それぞれに対して、S2-1d-bのミク
ロレベル局所スケジューリングを行なう。ミクロレベル
局所スケジューリングでも、同様に動作命令の最大完了
時刻を評価関数として、最大N通りのスケジュール候補
を作成する。第i番目のマクロレベル大域スケジュール
には、Mi個所のミクロレベル局所スケジューリング対象
個所があるとした場合、S2-1d-cで得られる大域スケジ
ュールの候補は最大、
【0030】
【数1】 通りになる。
【0031】図2のS2-1において、動作命令開始時刻ス
ケジュール候補の作成が終了すると、S2-2では、作成し
たH通りのスケジュール候補の中からK通りのスケジュ
ールを選択する。S2-2aにおけるFlag3は、スケジュール
を自動選択するか、教示者の判断で選択するかを指定す
るフラグである。このFlag3も図1のS1-2において指定
する。
【0032】自動選択を行なう場合(Flag3=False)に
は、S2-2bにおいてH通りのスケジュール候補の中から
最大完了時刻(全ての動作命令が完了する時刻)が小さ
いものから順番にK通りのスケジュールを選択し、処理
を終了する(S2-3)。教示者の判断でスケジュールの選
択を行なう場合(Flag3=True)は、まず、S2-2cにて、
H通りのスケジュールに基づく各ロボットの動作を、ロ
ボットシミュレータなどを利用して視覚化する。教示者
はロボットシミュレータ上での動作を確認し、S2-2dに
おいて、教示者の主観、あるいは教示者の経験則などに
基づいてK通りのスケジュールを選択する。Realistic
Robot Simulator(RRS)が実装されているロボットシミ
ュレータを用いて動作確認を行なえば、実機動作に近い
動作を再現することができる(RRSについては公知の技
術)。スケジュールが教示者の判断基準を満たす場合
は、処理を終了する(S2-3)。教示者の判断基準を満た
さない場合は、S2-2eにて全ての処理を終了するか(図
1のS1-11)、図1のS1-2に戻るかを教示者が判断す
る。
【0033】以上説明した処理に沿って、S1-7にてK通
りの動作命令開始スケジュールが決定されると、S1-8で
はK通りのスケジュールにしたがって各ロボットを動作
させられるように、図6に示した単体教示データセット
を修正し、K通りの修正教示データセットを作成する。
実際に2台のロボットを動作させる場合、例えば、ロボ
ットAとロボットBのデジタル入出力(DIO)チャンネ
ルを図19のように結線し、互いの教示データ間でDOUT
OT#N ON/OFF, WAIT IN#N=ON/OFF(Nはチャンネル番
号)を組み合わせることにより、動作命令の実行タイミ
ングを制御(インタロック)する。
【0034】まず、S1-8では、図17および図18のス
ケジュールをもとにDOUTとWAIT INの挿入個所とその対
応関係を求める(図20)。図17より、ロボットBの
動作命令B003は、ロボットAがサブ動作命令A003-2の最
終位置を通過直後(理想的にはロボットBの動作命令B0
03開始後1.0s後)に開始させれば良いことが分かる。ま
た、ロボットBの動作命令B001は、ロボットAの動作命
令001開始直後に開始させても差し支えない(干渉は生
じない)。図20に示したDOUTとWAIT INの挿入個所と
その対応関係、および図19のDIO結線情報から、図6
の単体教示データセットを修正し、図21に示すように
修正教示データセットを作成する。ここでPa1-2は、図
15〜17に示したロボットAのサブ動作命令A003-2の
最終位置(最終タイムスロットでの移動予定位置)であ
る。
【0035】S1-8にて単体教示データセットの修正を行
なった後、S1-9にて修正教示データセットにしたがった
複数ロボットの動作を、K通り全てあるいはその1部に
ついて、実機ロボットにより教示者に提示する。S1-10
では、教示者が教示者の主観、あるいは教示者の経験則
に基づいて修正教示データセットを1つ選択し、全ての
処理を終了する(S1-11)。
【0036】以上説明したように、本発明では作業点間
の移動軌道も考慮し、各ロボットの各動作命令の開始時
刻(動作命令開始スケジュール)を、マクロレベル大域
スケジューリングとミクロレベル局所スケジューリング
による階層的なスケジューリング方式により求めるた
め、複数ロボット全体の作業時間を最小化する動作命令
の開始時刻を決定できる。また、最適化した動作命令開
始スケジュールをもとに、ロボット単体教示データの適
切な個所にインタロック命令を挿入して教示データを修
正するので、現状のロボット制御装置を用いてその最適
なスケジュールに基づく作業を簡単に実行できる。
【0037】さらに、作成した複数の動作命令開始スケ
ジュール候補の動作をロボットシミュレータおよび実機
ロボットにより確認した上で、教示者がその候補の中か
ら教示者自身の判断に基づいてスケジュールを選択でき
るので、ユーザフレンドリな教示装置を提供できる。
【0038】つぎに、図1のS1-3およびS1-5において、
Flag1およびFlag2が両方ともTrueの場合の処理を説明す
る。Flag1=Trueの場合、図1のS1-4にて、対象動作命令
限定処理を行なう。これは、動作命令開始スケジュール
決定(S1-7)の対象とする動作命令群を指定する。例え
ば、図6に示した各単体教示データの動作命令001〜006
の内、教示者が001〜004という具合に指定する。この機
能により、非常に長い単体教示データに対して一度に動
作開始スケジュールを決定するのではなく、教示者がい
くつかの部分に分割し、部分ごとに動作命令開始スケジ
ュールを作成して動作確認することが可能になる。した
がって、現場での教示者による微妙な調整が行ない易く
なる。
【0039】Flag2=Trueの場合、図1のS1-6にて、動作
命令実行順序指定処理を行なう。これは、複数ロボット
の動作命令間の一部あるいは全てに対して実行順序を教
示者が予め指定する処理である。例えば、図6に示した
ロボットAおよびロボットBの動作命令の内、ロボット
Aの動作命令002より先にロボットBの動作命令002を動
作させるという具合に指定する。動作命令002, 004, 00
6のように作業点における動作命令だけではなく、001,
003, 005の作業点間移動の動作命令に対してロボットA
およびロボットB間の実行順序を指定することもでき
る。作業工程に起因してロボット間のタスク実行順序
(同一ロボット内のタスク実行順序ではない)を守らな
ければならないとき、この機能を利用する。また、それ
に加えて、教示者の持つ経験則を取り入れて動作命令開
始スケジュールを作成する場合にも有効である。動作命
令実行順序指定は、図12で説明すれば、例えばノード
B002からノードA002に向かって予め有向枝を張っておく
処理に相当する。スケジューリングは、前述したように
選択グラフに閉路が生じないように選択枝(破線で示し
た無向枝)の向きを決定することである(閉路が生じる
ということは、実行順序と時間との間に矛盾が生じると
いうことである)。つまり、選択グラフのノード間に予
め有向枝という拘束条件を付加するだけで、特別な処理
が必要になるわけではない。また、図12の選択枝の向
きを予め指定しておくこともできる。予め選択枝の向き
を指定することは、スケジューリング問題のサイズを小
さくすることになるので、教示者の主観や経験則を取り
入れられるばかりでなく、スケジューリングに要する計
算時間を短くできる。また、対象動作命令限定処理と同
様に現場での教示者による微妙な調整が行ない易くな
る。
【0040】つぎに、本発明の第2の実施の形態につい
て図を参照して説明する。図3は本発明の第2の実施の
形態に係わる複数ロボットの作業教示装置のブロック図
である。図3において、301は図6に示したような単体
教示データセット(複数ロボットの単体教示データ)を
入力する単体教示データセット入力手段である。302は
単体教示データセット内の各動作命令の開始時刻をK通
り決定する動作命令開始スケジュール決定手段である。
ここで、Kは1以上の整数である。303は動作命令開始
スケジュール決定手段302で決定したK通りのスケジュ
ールにしたがって各ロボットを動作させられるように単
体教示データセットに修正を行なう単体教示データセッ
ト修正手段である。304は、単体教示データセット修正
手段で作成されたK通りの修正教示データセットにした
がった複数ロボットの動作を、実機ロボットにより教示
者に提示する実機動作提示手段である。305は、実機動
作提示手段304によって提示された複数実機ロボットの
動作を教示者が確認し、教示者の主観あるいは教示者の
経験則により修正教示データセットを1つ選択する修正
教示データセット選択手段である。306は動作命令開始
スケジュール決定の対象となる動作命令群を指定する対
象動作命令限定手段である。307は複数ロボットの動作
命令間の一部あるいは全ての実行順序を予め指定してお
く動作命令実行順序指定手段である。
【0041】動作命令開始スケジュール決定手段302
は、動作命令開始スケジュール候補をK通り以上作成す
る動作命令開始スケジュール作成手段302a、作成された
複数のスケジュールの中から全作業の完了時刻(最大完
了時刻)が小さいものから順番にK通りスケジュールを
選択する最適化選択手段302b、作成された複数のスケジ
ュールにしたがった複数ロボットの動作を仮想環境上に
て教示者に提示する仮想環境動作提示手段302c、仮想環
境動作提示手段302cに提示された動作をもとに教示者が
教示者自身の判断によりスケジュールをK通り選択する
教示者選択手段302dから構成される。
【0042】動作命令開始スケジュール作成手段302a
は、複数ロボットの動作領域が重なり合う共有作業空間
を複数領域に分割し、分割された各領域に番号付けを行
なう共有作業空間マップ作成手段302a-1、各単体教示デ
ータの各動作命令に対して一定時間間隔(タイムスロッ
ト)でのロボットの移動予定位置を計算する移動予定位
置計算手段302a-2、各動作命令の各タイムスロットにお
いて、各ロボットが共有作業空間マップのどの(何番
の)分割領域と干渉(分割領域を占有)するかを計算す
る共有作業空間マップ占有状態計算手段302a-3、共有作
業空間マップの占有状態に基づき、各ロボットが互いに
干渉しないような動作命令開始スケジュールを求める干
渉回避スケジューリング手段302a-4から構成される。
【0043】干渉回避スケジューリング手段302a-4は、
動作命令単位の粗い大域的なスケジュールを求めるマク
ロレベル大域スケジューリング手段302a-4a、マクロレ
ベル大域スケジュールのクリティカルパス上の異なるロ
ボット間の動作命令に関して、タイムスロット間隔の詳
細な局所スケジュールを求めるミクロレベル局所スケジ
ューリング手段302a-4b、マクロレベル大域スケジュー
リング手段で求めた大域スケジュールを、ミクロレベル
局所スケジューリング手段で求めた詳細な局所スケジュ
ールにより修正する大域スケジュールミクロレベル修正
手段302a-4cから構成される。
【0044】単体教示データセット修正手段303は、具
体的には、単体教示データセットの適切な個所にインタ
ロック命令を挿入するインタロック命令挿入手段303aに
より構成される。以上のような構成をしているので、第
1の実施の形態で説明した複数ロボットの教示方法を実
施できる。
【0045】図24に第3の実施の形態に係わる複数ロ
ボットの作業教示方法のフローチャートを示す。第3の
実施の形態と第1の実施の形態では共通する部分も多い
ので、第1の実施の形態とは異なる部分を以下に説明す
る。図24のS5-1では、図19に示したIO間接続といっ
たロボットコントローラ間の接続情報を入力する。ま
た、図19のように2台のロボットコントローラのIO間
を直接結線するのではなく、PLCを介してIOを接続する
場合は、PLCに設定したロジックから得られるIO間の論
理的な接続情報をS5-1で入力する。
【0046】図24のS5-7は、第1の実施の形態で説明
したように異なるロボット間の動作命令の実行順序(先
後関係)を教示者が予め指定する処理である。第3の実
施の形態では、まず、教示者はS5-7aにおいて図29に
示すように単体教示データセット内にインタロック命令
(DOUT,WAIT)を挿入する。S5-7bでは、単体教示データ
セットに予め挿入されたインタロック命令とS5-1で入力
したロボットコントローラ間接続情報を参照して、「ロ
ボットA動作命令001→ロボットB動作命令003」という動
作命令の先後関係を抽出する。また、S5-7bでは新たに
動作命令間の先後関係を追加することもできる。図24
のS5-9は、教示者が単体教示データセット内の動作命令
に対して、動作命令の分割あるいは併合を指定する動作
命令編集処理である。図30は動作命令編集の概念を示
している。図30において、C000〜C007はロボットA(4
01a)の単体教示データの手先位置教示点を示してい
る。すなわち、単体教示データは、MOVJ C000, MOVL C0
01, MOVL C002, … のような動作命令の系列となる。90
1a〜901cは、C006からC007への移動命令(MOVL C007)
の手先位置経路を4分割したときの内分点である。同図
の例ではC006からC007への移動動作命令を、内分点901a
〜901cを手先位置教示点として4つの動作命令に分割し
ている。902a〜902dは4分割された移動命令に対応する
選択グラフノードを示している。予め(動作命令決定処
理S5-10を行う前に)分割指定をしておくことにより、
元来1つの移動命令の途中でインタロックを取ることが
できる。教示者が予めどの動作命令を何分割するかを指
定する。一方、903は、単体教示データのMOVL C002, MO
VL C003, MOVL C004, MOVL C005の4つの動作命令を1つ
に併合した動作命令に対応する選択グラフノードを示し
ている。このように併合指定をしておくことにより、MO
VL C002からMOVL C005の間でインタロックを取らないよ
うにできる。904aおよび904bは分割指定も併合指定もさ
れなかった動作命令に対応する選択グラフノードを示し
ている。
【0047】図25は、図24の動作命令開始スケジュ
ール決定部(S5-10)の内部フローチャートを示してい
る。図25の動作命令開始スケジュール選択処理(S6-
2)については、第1の実施の形態(図2のS2-2)と同
様なので、S6-1の動作命令開始スケジュール作成処理に
ついて以下で説明する。S6-1aでは、図4の403に示した
ような複数ロボットの共有作業空間を定義する。第1の
実施の形態では図7や図10のように共有作業空間をブ
ロック領域に分割して定義した(図2のS2-1a)が、第
3の実施の形態では必ずしも領域分割する必要はない。
S6-1bでは、単体教示データセット内の各動作命令ある
いは編集済み(図24のS5-9の処理済み)の各動作命令
に対して、図31の406に示すような占有領域を計算す
る。図31において、401a,403はそれぞれロボットA、
共有作業空間である。C001,C002はロボットAの単体教
示データの手先位置教示点を示している。図31の例で
は、占有領域406は、ロボットAがC001からC002への移動
動作命令MOVL C002を実行したときにロボットAの全ての
リンクおよびツールが共有作業空間内を通過する領域を
示している。動作命令の占有領域を効率よく計算するた
めには、共有作業空間を図7に示すようにブロック領域
分割し、図10に示すように大きなブロック領域から内
部の小さなブロック領域へと階層的に管理すると都合が
良い。
【0048】図32に再帰的ブロック分割による共有作
業空間(2次元)の定義((a))とそのツリー構造によ
る管理((b))の概念を示す。図32(a)において402a,
402bはそれぞれロボットA、ロボットBの最大動作範囲球
である。403は共有作業空間である。同図において407は
作業空間全体を示すルートブロック領域であり、そのID
番号を0とする。408a, 408b, 408c, 408dはブロック領
域0(407)を均等に4分割したブロック領域であり、そ
のID番号をそれぞれ01, 02, 03, 04とする。409a, 409
b, 409c, 409dはブロック領域01(408a)を均等に4分
割したブロック領域であり、そのID番号をそれぞれ011,
012, 013, 014とする。410a, 410b, 410c, 410dはブロ
ック領域014(409d)を均等に4分割したブロック領域
であり、そのID番号をそれぞれ0141, 0142, 0143, 0144
とする。以下、同様にしてロボットAおよびロボットBの
両方の最大動作範囲球に交わるブロック領域をそのサイ
ズが指定したサイズになるまで再帰的に分割する。図3
1(b)に示したようにID番号の桁数はツリー構造のレベ
ル(階層の深さ)とブロック領域のサイズを表してい
る。共有作業空間が3次元の場合は、立方体のルートブ
ロック領域を再帰的に8分割して同様の処理を繰り返せ
ば良い。
【0049】図31に示した動作命令の占有領域は、図
32に示したブロック領域の集合として表すことができ
る。具体的には、図9に示したように動作命令の軌道上
の十分に微少間隔な各点において、リンクモデルに交わ
るブロック領域を求め、その集合を(重複を省いて)求
める。第1の実施の形態では、一定時間(タイムスロッ
ト)間隔の軌道上の各点でリンクモデルとブロック領域
との干渉チェックを行っているが、第3の実施の形態は
これに拘るものではなく、ブロック領域とリンクモデル
との干渉チェックを行う軌道上の点の間隔は一定時間間
隔である必要も無く、一定距離間隔である必要も無い。
第1の実施の形態では、図11に示すように各タイムス
ロットごとにリンクモデルと干渉するブロック領域IDを
テーブル形式(リスト形式)で管理していたが、第3の
実施の形態では、動作命令の占有領域を図33に示すよ
うなツリー構造で管理する。
【0050】図33(a)および(b)に動作命令占有領域の
ツリー表現(占有領域ツリー)の例を示す。同図におい
て、ツリーの各ノードは一桁の0以上の整数番号とBOOL
型(TrueまたはFalse)の属性値を持つ。ルートノード
から属性値がTrueとなるノードへ向かって順番にノード
を辿ったとき、通過するノードの番号を左から順になら
べた多数桁の番号(例えば(a)の0244)が、占有領域に
含まれる共有作業空間のブロック領域ID番号を示してい
る。このようなツリー表現によって、重複を省いて効率
よく占有領域にブロック領域ID番号を追加することがで
き、占有領域同士の交わりのチェックについても効率的
に行うことができる。また、共有作業空間の再帰的なブ
ロック分割と占有領域のツリー表現という性質を利用す
ることによって、占有領域を効率よく更新できる。例え
ば、(a)の占有領域ツリーにブロック領域ID-01233を追
加する場合、同図の破線で示したノード1001をTrueとし
て追加することになる。このときブロック領域ID-012以
下の階層の占有状態を図示すると図32(c)のようにな
る。ブロック領域ID-01233が占有状態として登録される
ことにより、ブロック領域ID-0123を4分割した全てのブ
ロック領域が占有状態になるので、ブロック領域ID-012
3も占有状態となる。この処理は、(a)のツリーにおいて
ノード1001の親ノード1002の属性値をTrueに変更するこ
とによって実現できる。すなわち、占有領域ツリーにブ
ロック領域IDを追加するとき、ツリーの末端にTrueとし
て追加されたノードとその兄弟ノードで属性値がTrueと
なるノードの数(あるいはノード番号の合計)をチェッ
クして、そのノード数が4あるいはノード番号の合計が1
0(共有作業空間が2次元の場合)のとき、親ノードの属
性値をTrueに変更する処理を再帰的に行う。(a)の例で
は、ノード1001がTrueとして追加されることによって、
ノード1002に続いてノード1003の属性値がTrueに変更さ
れる。すなわち、ブロック領域ID-012が占有領域に含ま
れるという状態に占有領域ツリーのデータが更新される
ことになる。
【0051】図25のS6-1cの選択グラフの設定(初期
化)処理では、図34に示すように編集済み各動作命令
をノードとする選択グラフを設定する。図34におい
て、A1, A2〜5, A6, A7-0〜7-3はロボットAの編集済み
動作命令に対応するノードである。B1-0〜1-3, B2, B3
〜6, B7はロボットBの編集済み動作命令に対応するノー
ドである。A2〜5は図24のS5-9の処理において併合指
定された動作命令、A7-0, A7-1,…はS5-9において分割
指定された動作命令を示している。この標記はロボット
Bについても同様である。選択グラフの各ノードには、
ロボット番号と編集済み動作命令のシリアル番号(通し
番号)を設定する。また、各編集済み動作命令の動作時
間を計算してノードに設定する。図34に破線で示した
選択枝(Disjunctive Edges)は、占有領域同士が交わ
る異なるロボット間の編集済み動作命令の対である。選
択枝を計算するためには、異なるロボット間の編集済み
動作命令の全ての対に対して、占有領域同士が交わるか
どうかのチェックを行う必要がある。図33に示したよ
うな占有領域ツリーを用いて占有領域同士の交わりをチ
ェックする場合、一方の占有領域ツリーに含まれる属性
値がTrueとなる全ノードへのルートノードからの経路
が、他方の占有領域ツリーに含まれるかどうかを調べれ
ば良い。全ての経路が他方に含まれないとき両者は交わ
らず、経路が1つでも他方に含まれるとき両者は交わ
る。例えば、図33(a)の占有領域と同図(b)の占有領域
との交わりをチェックする場合を考える(1001のノード
は追加されていない状態とする)。占有領域(a)の経路0
→1→2は占有領域(b)には含まれないので、(a)のノード
1003以下の子ノードについてはチェックせずに、(a)の
経路0→1→3について処理を進めていく。占有領域(a)の
経路0→2→4→4については、その終点ノード1004の属性
はTrueであり、この経路は占有領域(b)に含まれている
ので、(b)の経路0→2→4→4の終点ノード1005の属性に
係わらず、占有領域(a)および(b)が交わることは明らか
である。このように、占有領域を図33に示したツリー
構造で表現することにより、占有領域同士の交わりチェ
ックを効率よく行うことができる。
【0052】以上のようにして求めた選択枝は、 A1 --- B1-1 A1 --- B1-2 A2〜5 --- B1-1 A2〜5 --- B1-2 A6 --- B1-1 A6 --- B1-2 A6 --- B2 ・ ・ のように選択グラフノードのIDまたはポインタの対を連
結リストEdgeListOrgに保存する。あるいは、(ロボット
番号1,動作命令シリアル番号1)−(ロボット番号2,
動作命令シリアル番号2)の形式でリストに保存しても
良い。また、図34の選択枝を除いた状態のグラフを初
期選択グラフIniDisjGraphに保存する。
【0053】つぎに図25のS6-1dの干渉回避スケジュ
ーリング処理について説明する。図26はS6-1dの内部
フローチャートを示している。図26において、S7-1で
は求めるスケジュール解の個数の上限値Lを入力する。S
7-2はスケジュールの中間解(TempSol)の初期化処理で
ある。ここで中間解とは、選択枝のリストEdgeListと、
選択枝の向きを決定したアークのリストArcListの組で
ある。初期状態では、EdgeListはEdgeListOrgに一致す
る。図24のS5-7で異なるロボット間の動作命令実行順
序(先後関係)が予め指定された場合、その先後関係を
ArcListに保存する。予め動作命令の先後関係が指定さ
れなかった場合はArcListを空(サイズがゼロ)にす
る。また、スケジュール解とはEdgeListが空になった
(全ての選択枝の向きを決定した)状態を指す。初期化
されたTempSolは、空の状態のOPENLISTに保存される。O
PENLISTは探索問題で一般的に使用される展開候補ノー
ドを格納するための連結リストである。
【0054】S7-3では求まったスケジュール解の個数と
OPELISTのサイズがチェックされる。スケジュール解の
個数がL以上またはOPENLISTが空のとき、全ての処理を
終了する(S7-4)。スケジュール解の個数がL未満かつO
PENLISTが空でないとき、S7-5にてOPENLISTからTempSol
を1つ選択する。TempSolの選択基準に関しては後述す
る。S7-6では選択されたTempSolのEdgeListのサイズが
チェックされる。サイズがゼロのとき、このTempSolは
スケジュール解であるから、選択されたTempSolをSOLUT
IONLISTに保存する(S7-7)。SOLUTIONLISTはスケジュ
ール解を保存するための連結リストである。S7-3におい
てスケジュール解の個数をチェックするときはSOLUTION
LISTのサイズを調べれば良い。S7-8では選択したTempSo
lをOPENLISTから抜き取り、CLOSEDLISTに移し替える処
理を行う。CLOSEDLISTは探索問題で一般的に使用される
展開済みノードを格納するための連結リストである。
【0055】S7-9では、S7-5で選択されたTempSolのEdg
eListから1つ選択枝を選び、その選択枝の可能な向き
を定めてアークを生成し、それをArcBuffListに保存す
る。図27にS7-9の内部フローチャートを示す。S7-9-1
ではArcBuffListを空にする。S7-9-2でTempSolのEdgeLi
stの先頭ノードへのポインタをpEdgeに取得する。S7-9-
3でpEdgeがNULLかどうかのチェックを行い、これがNULL
の場合は全ての処理を終了する(S7-9-4)。pEdgeがNUL
Lでない場合は、S7-9-5にてループカウンタiをゼロにす
る。S7-9-6ではiが2未満かどうかをチェックし、2以上
の場合はS7-9-7にてArcBuffListが空かどうかをチェッ
クする。ArcBuffListが空ではない場合は、全ての処理
を終了する(S7-9-8)。ArcBuffListが空の場合は、S7-
9-9にてpEdgeをEdgeListのつぎのノードに進めてS7-9-3
に戻る。
【0056】S7-9-6にてループカウンタが2未満の場合
は、S7-9-10ではpEdgeが指すEdgeListのノードに格納さ
れている選択枝情報とループカウンタiの値からアークA
rcを生成する。例えば、pEdgeに格納されている選択枝
情報を、(rn1,sn1)-(rn2,sn2)と表した場合、i=0のとき
(rn1,sn1)→(rn2,sn2)とし、i=1のとき(rn1,sn1)←(rn
2,sn2)としてArcを生成する。ここでrn1,rn2はロボット
番号、sn1,sn2は編集済み動作命令のシリアル番号を示
す。つぎにS7-9-11およびS7-9-12では、生成されたArc
がある条件(アーク選択条件1、アーク選択条件2と呼
ぶ)を満足するかどうかをチェックする。図35はアー
ク選択条件1を満足しない状況を示している。図35に
おいて1101a〜1101cはロボットrの選択グラフノード
(編集済み動作命令)を、1102a〜1102cロボットsの選
択グラフノード(編集済み動作命令)を示す。ここで、
RN,SNはそれぞれロボット番号、編集済み動作命令のシ
リアル番号である。1103はS7-9-10で生成されたアーク
(r,j)→(s,k)である。1104a, 1104bはEdgeListOrgに格
納されている選択枝を示す。同図(a)は、アーク1103の
始点ノード(r,j)と終点ノード(s,k)の一つ手前のノード
(s,k-1)がEdgeListOrgに含まれる場合、アーク選択条件
1を満足しないことを意味している。同様に(b)は、ア
ーク1103の終点ノード(s,k)と始点ノード(r,j)のつぎの
ノード(r,j+1)がEdgeListOrgに含まれる場合、アーク選
択条件1を満足しないことを意味している。
【0057】S7-9-10で生成されたArcが図35(a)(b)の
状況に該当しない(アーク選択条件1を満足する)場合
は、S7-9-12にてアーク選択条件2が満足されているか
どうかがチェックされる。図36はアーク選択条件2が
満足されない状況を示している。同図において1105a, 1
105bは中間解TempSolのArcListに登録されているアーク
を示している。その他の符号の意味については図35と
同じである。図36(a)は、アーク1103の終点ノード(s,
k)の一つ手前のノード(s,k-1)を始点とし、終点がアー
ク1103の始点ノード(r,j)よりも2つ以上手前のノード
(r,j-n)となるアーク1105aが既にArcListに登録済み
で、(s,k-1)−(r,j-n+1), (s,k-1)−(r,j-n+2), … ,
(s,k-1)−(r,j-1)のいずれかの選択枝(1104a〜1104b)
がEdgeListOrgに含まれている場合、アーク選択条件2
が満足されないことを意味している。同様に図36(b)
は、アーク1103の始点ノード(r,j)のつぎのノード(r,j+
1)を終点とし、アーク1103の終点ノード(s,k)よりも2
つ以上先のノード(s,k+n)を始点とするアーク1105aが既
にArcListに登録済みで、(r,j)−(s,k+1), (r,j)−(s,k
+2),… ,(r,j)−(s,k+n-1)のいずれかの選択枝(1104a
〜1104b)がEdgeListOrgに含まれている場合、アーク選
択条件2が満足されないことを意味している。
【0058】S7-9-10で生成されたArcが図36(a)(b)の
状況に該当しない(アーク選択条件2を満足する)場合
は、S7-9-13にてArcがArcBuffListに保存され、A7-9-14
にてループカウンタiが1だけ増加され、S7-9-6に戻
る。S7-9-11においてArcがアーク選択条件1を満足しな
い、あるいはS7-9-12においてArcがアーク選択条件2を
満足しない場合、ArcはArcBuffListに保存されることな
く、A7-9-14にてループカウンタが増加される。S7-9-8
で図27のアーク生成処理が終了した場合、ArcBuffLis
tには2または1個のアーク情報が保存される。S7-9-4
で処理が終了した場合、ArcBuffListは空になってい
る。アーク選択条件1および2が満足されない状況(図
35および36に該当する状況)では、複数ロボット間
衝突回避が必ずしも保証されない。上記で説明したよう
にアーク選択条件1および2を満足するアークのみを生
成し、他の組み合わせを除外することによって、ロボッ
ト間衝突回避が確実に保証される中間解およびスケジュ
ール解を求めることができる。
【0059】図26のS7-9にてArcが生成されると、S7-
10にてArcBuffListのサイズがチェックされる。ArcBuff
Listが空のときはS7-3の処理に戻る。ArcBuffListが空
でないとき、S7-11にて新しい中間解NewTempSolを生成
し、TempSolのデータ(EdgeList, ArcListなど)をNewT
empSolにコピーする。S7-12ではArcBuffListからArcを
1つ抜き取る。S7-12で抜き取られたArcを(r,j)→(s,k)
と表すと、S7-13ではNewTempSolのEdgeListから上記Arc
に相当するエッジ(r,j)−(s,k)あるいは(s,k)−(r,j)を
削除し、NewTempSolのArcListに(r,j)→(s,k)を追加す
る処理を行う。つぎにS7-14では、NewTempSolのEdgeLis
tとArcListに格納されている選択枝とアークに関して、
S7-12で選択されたアークに対して冗長なものを全て削
除する処理を行う。図37は冗長な選択枝とアークの削
除ルールを示している。
【0060】図37において、符号1101a〜1101c,1102
a〜1102c,1103,1105a〜1105cの意味は図35および3
6と同じである。1106a〜1106cはEdgeListに格納されて
いる選択枝を示す。まず、新規追加されたアーク1103と
1105a〜1105cのアークに着目する。アーク1103で指定さ
れる動作命令間の先後関係が満足されれば、アーク1105
a〜1105cで指定される動作命令間の先後関係が必ず満足
されることは明らかである。したがって、アーク1105a
〜1105cは冗長であり、削除しても差し支えない(削除
した方が後々の処理が効率化される)。つぎに新規追加
されたアーク1103と選択枝1106a〜1106cに着目する。仮
に選択枝1106a〜1106cの向きをロボット番号sからロボ
ット番号rへの向きに設定した場合、いずれもアーク110
3を通る閉ループを構成してしまうため、この向きは物
理的に実現できない。したがって、アーク1103が存在す
る場合、選択枝1106a〜1106cの向きはいずれもロボット
番号rからロボット番号sへの向きに設定しなければなら
ない。ところが、これらのアークは1105a〜1105cと同様
にアーク1103に対して冗長になってしまう。よって、選
択枝1106a〜1106cについても削除できる。
【0061】新規追加されたアーク1103を(r,j)→(s,
k)、ArcList内のアークを(rn0,sn0)→(rn1,sn1)と表す
と、 rn0=r, sn0<=j, rn1=s, sn1>=k(sn0=j,sn1=kは除く) の条件を満たすアークを削除する。また、EdgeList内の
選択枝を(rn0,sn0)−(rn1,sn1)と表すと、 ( rn0=r, sn0<=j, rn1=s, sn1>=k ) or ( rn0=s, sn0>=
k, rn1=r, sn1<=j ) の条件を満たす選択枝を削除する。つぎにS7-15にて、
初期選択グラフIniDisjGraphにArcListに登録されてい
るアークを全て張って、中間解NewTempSolに対応するテ
ンポラリな選択グラフTempDisjGraphを作成する(図3
8)。S7-16では、TempDisjGraph上で冗長なアークを削
除する処理を行う。S7-16の冗長アーク削除処理はS7-14
(図37)の処理とは異なり、ロボットが3台以上の場
合に必要な処理であり、S7-14では検出できない冗長ア
ークを削除することができる。図39はS7-16での冗長
アークの削除ルールを示している。図39において、11
07a〜1107cはロボット番号tの選択グラフノードを示し
ている。その他の符号の意味は図35、37と同じであ
る。
【0062】図39(a)は、新規追加アーク1103が既に
登録済みのアーク1105a,1105bに対して冗長になってい
ることを示している。同図(b)はアーク1103を追加する
ことによってArcListに既に登録されているアーク1105b
が冗長になることを示している。S7-16では図39(a)
(b)に示したような冗長なアークをArcListおよびTempDi
sjGraphから削除する処理を行う。以上説明したよう
に、アークの選択条件(アークの生成ルール)、冗長な
選択枝と冗長なアークの削除ルールによって、ロボット
の台数が増加してもスケジュール解の探索を効率化する
ことができる。図26のS7-17では、図40に示すよう
な閉ループの有無をTempDisjGraph上でチェックし、閉
ループが存在する場合は、S7-18にて中間解NewTempSol
を削除してS7-10に戻る。閉ループが存在しない場合
は、S7-19において、図38に示したNewTempSolの選択
グラフTempDisjGraphに対してクリティカルパスの経路
長(中間解の最大動作完了時間)を計算する。計算した
値をNewTempSolの評価値として設定し、S7-20にてそのN
ewTempSolをOPENLISTに保存した後、S7-10に戻る。S7-5
でOPENLISTに保存されている複数の中間解から1つ選択
する際は、中間解の評価値(クリティカルパスの経路
長)が最小になるものを優先的に選択することによっ
て、複数ロボット全体のサイクルタイムが最小となる動
作命令開始スケジュールから順にL個のスケジュール解
がSOLUTIONLISTに保存される。
【0063】以上説明した干渉回避スケジューリング処
理が終了すると、図25のS6-2の動作命令開始スケジュ
ール選択処理が行われるが、この部分は第1の実施の形
態と同じであるので説明を省略する。動作命令開始スケ
ジュール選択処理を行った後、図24のS5-11にて単体
教示データセットの修正処理を行う。図41に図25の
S6-2で選択された動作命令開始スケジュールの例を示
す。また、図42に同スケジュールのガントチャートを
示す。動作命令開始スケジュールにおける異なるロボッ
ト間の動作命令の先後関係は、スケジュール解のArcLis
tに保存されているアーク情報に他ならない。したがっ
て、図24のS5-11aで行われる動作命令の先後関係抽出
は、スケジュール解からArcListを取得すればよい。S5-
11bでは、S5-11aで取得した動作命令の先後関係とS5-1
で入力したロボットコントローラ間接続情報(図19)
を使用して単体教示データセットにインタロック命令を
挿入する。具体的には、ロボットA、ロボットBのそれぞ
れにおいて、ArcListに保存されているアーク(図41
および42の1105a〜1105c)の始点ノードの直後にDOUT
命令を挿入し、アークの終点ノードの直前にWAIT命令を
挿入する(各インタロック命令に対して、OT#1から順番
にIO#を指定する)。その際、図43に示すように、S5-
9において併合指定した動作命令を元の動作命令群に戻
し、間にインタロック命令の挿入されなかった分割動作
命令を1つにまとめる処理を行う。また、図43におい
て、修正教示データの1行めはOT#1〜OT#8(OG#1)をす
べてOFFにする処理である。
【0064】つぎに、本発明の第4の実施の形態につい
て図を参照して説明する。図28は本発明の第4の実施
の形態に係わる複数ロボットの作業教示装置のブロック
図である。図28において、801は図6に示したような
単体教示データセット(複数ロボットの単体教示デー
タ)を入力する単体教示データセット入力手段である。
802は単体教示データセット内の各動作命令の開始スケ
ジュールをK通り決定する動作命令開始スケジュール決
定手段である。ここで、Kは1以上の整数である。803
は動作命令開始スケジュール決定手段802で決定したK
通りのスケジュールにしたがって各ロボットを動作させ
られるように単体教示データセットに修正を行なう単体
教示データセット修正手段である。804は、単体教示デ
ータセット修正手段で作成されたK通りの修正教示デー
タセットにしたがった複数ロボットの動作を、実機ロボ
ットにより教示者に提示する実機動作提示手段である。
805は、実機動作提示手段804によって提示された複数実
機ロボットの動作を教示者が確認し、教示者の主観ある
いは教示者の経験則により修正教示データセットを1つ
選択する修正教示データセット選択手段である。806は
動作命令開始スケジュール決定の対象となる動作命令群
を指定する対象動作命令限定手段である。807は複数ロ
ボットの動作命令間の一部あるいは全ての実行順序を予
め指定しておく動作命令実行順序指定手段である。808
はロボットコントローラ間の接続情報を入力するロボッ
トコントローラ間接続情報入力手段である。809は単体
教示データセット内の動作命令に対して分割・併合を指
定する単体教示データセット編集手段である。
【0065】動作命令実行順序指定手段807は、教示者
が予めインタロック命令を挿入するためのインタロック
命令挿入手段807a、インタロック命令挿入手段807aによ
って挿入されたインタロック命令とロボットコントロー
ラ間接続情報入力手段によって入力されたロボット間接
続情報から動作命令間の実行順序(先後関係)を抽出す
る動作命令先後関係抽出手段807bから構成される。動作
命令開始スケジュール決定手段802は、動作命令開始ス
ケジュール候補をK通り以上作成する動作命令開始スケ
ジュール作成手段802a、作成された複数のスケジュール
の中から全作業の完了時刻(最大完了時刻)が小さいも
のから順番にK通りスケジュールを選択する最適化選択
手段802b、作成された複数のスケジュールにしたがった
複数ロボットの動作を仮想環境上にて教示者に提示する
仮想環境動作提示手段802c、仮想環境動作提示手段802c
に提示された動作をもとに教示者が教示者自身の判断に
よりスケジュールをK通り選択する教示者選択手段802d
から構成される。
【0066】動作命令開始スケジュール作成手段802a
は、複数ロボットの動作領域が重なり合う共有作業空間
を定義する共有作業空間定義手段802a-1、単体教示デー
タセット編集手段809で編集された各編集済み動作命令
に対して動作命令を実行したときにロボットおよびツー
ルモデルが共有作業空間内を通過する領域を計算する動
作命令占有領域計算手段802a-2、各編集済み動作命令、
動作命令間の先後関係、占有領域同士が交わる動作命令
の対をそれぞれノード、アーク、エッジとしてスケジュ
ーリング理論における選択グラフを設定する選択グラフ
設定手段802a-3、選択グラフに基づき、各ロボットが互
いに干渉しないような動作命令開始スケジュールを求め
る干渉回避スケジューリング手段802a-4から構成され
る。干渉回避スケジューリング手段802a-4は、スケジュ
ーリングの最中にロボット間衝突回避を保証するアーク
を逐次選択するアーク選択手段802a-4a、スケジューリ
ングの最中に冗長なアークと冗長な選択枝を削除する冗
長アーク・冗長選択枝削除手段802a-4bから構成され
る。単体教示データセット修正手段803は、具体的に
は、動作命令開始スケジュールから異なるロボット間動
作命令の先後関係を抽出する動作命令先後関係抽出手段
803a、動作命令の先後関係とロボットコントローラ間の
接続情報を使用して単体教示データセットの適切な個所
にインタロック命令を挿入するインタロック命令挿入手
段803bにより構成される。以上のような構成をしている
ので、第3の実施の形態で説明した複数ロボットの教示
方法を実施できる。
【0067】
【発明の効果】以上説明したように、本発明では作業点
間の移動軌道も考慮し、各ロボットの各動作命令の開始
時刻(動作命令開始スケジュール)を、マクロレベル大
域スケジューリングとミクロレベル局所スケジューリン
グによる階層的なスケジューリング方式により求めるた
め、複数ロボット全体の作業時間を最小化する動作命令
開始スケジュールを決定できるという効果がある。ま
た、最適化した動作命令開始スケジュールをもとに、単
体教示データセットの適切な個所にインタロック命令を
挿入して教示データを修正するので、現状のロボット制
御装置を用いてその最適なスケジュールに基づく作業を
簡単に実行できるという効果もある。また、作成した複
数の動作命令開始スケジュール候補の動作をロボットシ
ミュレータおよび実機複数ロボットにより確認した上
で、教示者がその候補の中から教示者自身の判断に基づ
いてスケジュールを選択できるので、教示者の主観、経
験則や意図を考慮可能でユーザフレンドリな教示装置を
提供できるという効果もある。また、単体教示データセ
ット内の動作命令に対して、動作命令開始スケジュール
決定の対象とする動作命令群を教示者が指定できるの
で、大規模な単体教示データセットをいくつかの部分に
分割して部分ごとにスケジュール検討ができるという効
果もある。また、複数ロボットの動作命令間の実行順序
を教示者が予め指定できるので、教示者の主観、経験則
や意図を反映し、なおかつ短時間で動作命令開始スケジ
ュールを作成できるという効果もある。さらに、教示者
による対象動作命令の指定、教示者による複数ロボット
間の動作命令実行順序の指定、ロボットシミュレータな
どの仮想環境や実機複数ロボットにおける動作提示を介
した教示者によるスケジュール選択、が可能なので、現
場での微調整が行ない易く、使い勝手の良い複数ロボッ
トの教示装置を提供できるという効果もある。また、本
発明では、動作命令の分割や併合を考慮して予め動作命
令を編集し、各編集済み動作命令の占有領域をツリー構
造により管理し、異なるロボット間の各編集済み動作命
令の実行順序(先後関係)をアーク選択条件や冗長アー
ク・冗長選択枝削除ルールを適用したスケジューリング
方式により求めるので、教示者の意図や主観をより反映
させることができ、ロボットの台数が増加したとしても
動作命令開始スケジュールを高速に求めることができる
という効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係わる複数ロボッ
トの作業教示方法のフローチャート
【図2】動作命令開始スケジュール決定処理(図1のS1
-7)のフローチャート
【図3】本発明の第2の実施の形態に係わる複数ロボッ
トの作業教示装置のブロック図
【図4】複数ロボットの共有作業空間を表す図
【図5】共有作業空間内での作業例を表す図
【図6】単体教示データセットの例を示す図
【図7】共有作業空間マップを示す図
【図8】動作命令の各タイムスロットでの移動予定位置
計算の過程を示す図
【図9】動作命令の各タイムスロットの移動予定位置に
おけるロボットと共有作業空間マップとの干渉検査の過
程を示す図
【図10】階層的な共有作業空間マップを表す図
【図11】ロボットの動作命令データを示す図
【図12】マクロレベル大域スケジューリングにおける
選択グラフの例を示す図
【図13】マクロレベル大域スケジュールの例とそのク
リティカルパスを示す図
【図14】マクロレベル大域スケジュールのガントチャ
ートを示す図
【図15】ミクロレベル局所スケジューリングにおける
選択グラフを示す図
【図16】ミクロレベル局所スケジュールの例とそのク
リティカルパスを示す図
【図17】ミクロレベル局所スケジュールのガントチャ
ートを示す図
【図18】ミクロレベルで修正された大域スケジュール
のガントチャートを示す図
【図19】複数ロボットのデジタルIOポート間の接続例
を示す図
【図20】大域スケジュールのガントチャートをもとに
インタロック命令の挿入個所とその対応関係を示した図
【図21】修正教示データセットの例を示す図
【図22】特開平11-347984「ロボット制御装置」の動
作を説明する図
【図23】特開平7-44214「ロボット群の制御システ
ム」のフローチャート
【図24】本発明の第3の実施に形態に係わる複数ロボ
ットの作業教示方式のフローチャート
【図25】動作命令開始スケジュール決定処理(図24
のS5-10)のフローチャート
【図26】干渉回避スケジューリング(図25のS6-1
d)のフローチャート
【図27】アーク生成処理(図26のS7-9)のフローチ
ャート
【図28】本発明の第4の実施の形態に係わる複数ロボ
ットの作業教示装置のブロック図
【図29】動作命令の先後関係を予め指定した単体教示
データセットの例を示す図
【図30】動作命令の分割・併合の概念を示す図
【図31】動作命令の占有領域を示す図
【図32】再帰的なブロック分割による共有作業空間の
定義を示す図
【図33】動作命令の占有領域のツリー表現を示す図
【図34】編集済み各動作命令に対して初期設定された
選択グラフを示す図
【図35】アーク選択条件1を満足しない状況を示す図
【図36】アーク選択条件2を満足しない状況を示す図
【図37】冗長アーク・冗長選択枝削除ルールを示す図
【図38】中間解に対応するテンポラリな選択グラフを
示す図
【図39】ロボットが3台以上の場合の冗長アーク削除
ルールを示す図
【図40】選択グラフ内の閉ループの例を示す図
【図41】スケジュール解の例を示す選択グラフ
【図42】スケジュール解の例を示すガントチャート
【図43】本発明の第3の実施の形態のよる修正教示デ
ータセットの例を示す図
【符号の説明】
301:単体教示データセット入力手段 302:動作命令開始スケジュール決定手段 302a-1:共有作業空間マップ作成手段 302a-2:移動予定位置計算手段 302a-3:共有作業空間マップ占有状態計算手段 302a-4:干渉回避スケジューリング手段 302a-4a:マクロレベル大域スケジューリング手段 302a-4b:ミクロレベル局所スケジューリング手段 302a-4c:大域スケジュールミクロレベル修正手段 302b:最適化選択手段 302c:仮想環境動作提示手段 302d:教示者選択手段 303:単体教示データ修正手段 303a:インタロック命令挿入手段 304:実機動作提示手段 305:修正教示データセット選択手段 306:対象動作命令限定手段 307:動作命令実行順序指定手段 401a、401b:ロボットAおよびロボットB 402a、402b:ロボットAおよびロボットBの動作範囲 403:ロボットAおよびロボットBの共有作業空間 404:共有作業空間マップ 404a、404b1、404b2、404b3、404b4、404c1、404c2、40
4c3:共有作業空間マッ プの階層化 405:動作命令のタイムスロットにおけるロボットTCP位
置 406:動作命令の占有領域 407:作業空間全体を示すルートブロック領域 408a〜408d:ブロック領域407を4分割したブロック領域 409a〜409d:ブロック領域408aを4分割したブロック領
域 410a〜410d:ブロック領域409dを4分割したブロック領
域 801:単体教示データセット入力手段 802:動作命令開始スケジュール決定手段 802a-1:共有作業空間定義手段 802a-2:動作命令占有領域計算手段 802a-3:選択グラフ設定手段 802a-4:干渉回避スケジューリング手段 802a-4a:アーク選択手段 802a-4b:冗長アーク・冗長選択枝削除手段 802b:最適化選択手段 802c:仮想環境動作提示手段 802d:教示者選択手段 803:単体教示データ修正手段 803a:動作命令先後関係抽出手段 803b:インタロック命令挿入手段 804:実機動作提示手段 805:修正教示データセット選択手段 806:対象動作命令限定手段 807:動作命令実行順序指定手段 807a:インタロック命令挿入手段 807b:動作命令先後関係抽出手段 808:ロボットコントローラ間接続情報入力手段 809:単体教示データセット編集手段 901a〜901c:動作命令の経路を4分割する手先位置教示
位置の内分点 902a〜902d:4分割された動作命令に対応する選択グラ
フのノード 903:4つの動作命令が併合された動作命令に対応する選
択グラフのノード 904a, 904b:分割も併合指定もされなかった動作命令の
選択グラフのノード 1001〜1005:占有領域ツリーのノード 1101a〜1101c:選択グラフのロボットrに対応するノー
ド 1102a〜1102c:選択グラフのロボットsに対応するノー
ド 1103:新規生成されたアーク 1104a, 1104b:EdgeListOrgに保存されている選択枝 1105a〜1105c:ArcListに保存されている選択グラフの
アーク 1106a〜1106c:EdgeListに保存されている選択枝 1107a〜1107c:選択グラフのロボットsに対応するノー
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 3C007 AS11 LS08 LS11 LS15 LS19 LS20 LV02 MS08 MT00 5H269 AB12 AB33 BB08 BB13 BB14 EE11 KK10 MM08 NN01 NN16 QC03 QC10 QD03 QE02 QE10 SA10 SA11

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】教示データにしたがって作業する複数のロ
    ボットが互いに干渉しないように各ロボットの教示デー
    タを作成する作業教示方法において、 他のロボットの存在を無視して作成したロボット単体の
    単体教示データを全てのロボットに関して入力し、 Kを1以上の整数とし、全ロボットの前記単体教示デー
    タの集合を単体教示データセットとしたとき、その単体
    教示データセット内の作業点における動作命令と、作業
    点間の移動に関する動作命令のどちらか一方、あるいは
    両方の動作命令の実行開始順序を指定した動作命令開始
    スケジュールをK通り決定し、 K通りの前記動作命令開始スケジュールにしたがって前
    記単体教示データセットを修正し、修正教示データセッ
    トをK通り作成する、 ことを特徴とする複数ロボットの作業教示方法。
  2. 【請求項2】前記修正教示データセットにしたがったK
    通り以下の前記複数ロボットの動作を、前記複数ロボッ
    トが教示者に提示し、 提示されたK通り以下の前記複数ロボットの動作の中か
    ら1つを選択する、 ことを特徴とする請求項1に記載の複数ロボットの作業
    教示方法。
  3. 【請求項3】前記動作命令開始スケジュールを決定する
    ときは、 Kを1以上の整数としたとき、前記動作命令開始スケジ
    ュールをK通り以上作成し、 前記各動作命令開始スケジュールにしたがった前記複数
    ロボットの動作を、仮想環境上で教示者に提示し、 前記教示者の判断、またはスケジュールの明確な評価値
    に基づいて、前記教示者が前記動作命令開始スケジュー
    ルをK通り選択する、 ことを特徴とする請求項1〜2のいずれか1項に記載の
    複数ロボットの作業教示方法。
  4. 【請求項4】前記動作命令開始スケジュールを決定する
    ときは、 Kを1以上の整数としたとき、前記動作命令開始スケジ
    ュールをK通り以上作成し、 複数の前記動作命令開始スケジュールの中から、前記複
    数ロボット全体の作業時間、すなわち最大完了時刻、が
    最小となるか、あるいは所定の評価基準を最適化するも
    のから優先的に前記動作命令開始スケジュールをK通り
    選択すること、を特徴とする請求項1〜2のいずれか1
    項に記載の複数ロボットの作業教示方法。
  5. 【請求項5】前記動作命令開始スケジュールを決定する
    前に、前記単体教示データセットの動作命令の内、教示
    者が一部の動作命令を限定し、 限定されたその動作命令の前記動作命令開始スケジュー
    ルを決定する、 ことを特徴とする請求項1〜4のいずれか1項に記載の
    複数ロボットの作業教示方法。
  6. 【請求項6】前記動作命令開始スケジュールを決定する
    前に、前記単体教示データセットの動作命令の内、一部
    あるいは全ての動作命令間の実行順序を教示者が指定
    し、 指定された動作命令間の実行順序を満たすように前記動
    作命令開始スケジュールを決定する、 ことを特徴とする請求項1〜5のいずれか1項に記載の
    複数ロボットの作業教示方法。
  7. 【請求項7】前記単体教示データセット中にインタロッ
    ク命令を挿入して前記単体教示データセットを修正す
    る、 ことを特徴とする請求項1〜6のいずれか1項に記載の
    複数ロボットの作業教示方法。
  8. 【請求項8】前記動作命令開始スケジュールをK通り以
    上作成するときは、 複数ロボットの動作範囲が互いに重なり合う共有作業空
    間を複数領域に分割し、 各分割領域に番号付けした共有作業空間マップを作成
    し、 前記複数ロボットの前記各動作命令に対して、動作開始
    時刻から動作終了時刻までのタイムスロットごとにロボ
    ットの移動予定位置を求め、 全ての前記移動予定位置について、前記各ロボットが前
    記共有作業空間マップの何番の分割領域を占有するかを
    求め、 同時刻に複数のロボットが前記共有作業空間マップの同
    一番号の分割領域を占有せず、かつ前記複数ロボット全
    体の作業時間が最小となるように、前記動作命令開始ス
    ケジュールを、前記タイムスロットを時刻の刻み幅とし
    て、探索または繰り返し計算またはディスパッチングル
    ールに基づくスケジューリング方式、あるいは試行錯誤
    により干渉回避スケジューリングをする、 ことを特徴とする請求項1〜7のいずれか1項に記載の
    複数ロボットの作業教示方法。
  9. 【請求項9】前記干渉回避スケジューリングの際に、 スケジューリング理論における「仕事(ジョブ)」、
    「作業(オペレーション)」、「機械(マシン)」の概
    念をそれぞれ「単体教示データ」、「動作命令」、「共
    有作業空間マップの分割領域」に対応させて前記動作命
    令開始スケジュールを求めること、 を特徴とする請求項8に記載の複数ロボットの作業教示
    方法。
  10. 【請求項10】前記干渉回避スケジューリングの際に、 スケジューリング理論における「仕事」、「機械」の概
    念をそれぞれ「単体教示データ」、「共有作業空間マッ
    プの分割領域」に対応させ、 各動作命令をその開始時刻から終了時刻まで前記タイム
    スロットごとに走査して、各移動予定位置においてロボ
    ットが前記共有作業空間マップを占有する分割領域が変
    化する度にその動作命令を仮想的なサブ動作命令に分割
    し、 「サブ動作命令」をスケジューリング理論における「作
    業」と見なして前記動作命令開始スケジュールを求める
    こと、 を特徴とする請求項8に記載の複数ロボットの作業教示
    方法。
  11. 【請求項11】前記干渉回避スケジューリングの際に、 各動作命令をスケジューリング理論の「作業」と見なし
    て動作命令処理時間単位の粗いマクロレベル大域スケジ
    ュールを求め、 前記共有作業空間マップの同じ分割領域を占有する「マ
    クロレベル大域スケジュールのクリティカルパス」上の
    動作命令間に対して、動作命令を前記サブ動作命令に分
    割し、前記サブ動作命令をスケジューリング理論の「作
    業」と見なして局所範囲での細かなスケジュール(ミク
    ロレベル局所スケジュール)を求め、 前記マクロレベル大域スケジュールを前記ミクロレベル
    局所スケジュールにより部分的に修正(大域スケジュー
    ルミクロレベル修正)する階層的なスケジューリングを
    行なって前記動作命令開始スケジュールを求める、 ことを特徴とする請求項9、10のいずれかに記載の複
    数ロボットの作業教示方法。
  12. 【請求項12】ロボットコントローラ間の接続情報を入
    力し、 前記動作命令開始スケジュールを決定する前に、前記単
    体教示データセットの内、一部あるいは全ての動作命令
    の実行順序(先後関係)を教示者が指定する際、 前記動作命令の先後関係をインタロック命令として単体
    教示データセットに挿入し、 前記単体教示データセット内に予め挿入されたインタロ
    ック命令が存在するとき、前記ロボットコントローラ間
    接続情報を参照して前記動作命令の先後関係を抽出し、 前記動作命令の先後関係を満足する範囲内で前記動作命
    令開始スケジュールを決定する、 ことを特徴とする請求項6〜7のいずれか1項に記載の
    複数ロボットの作業教示方法。
  13. 【請求項13】前記動作命令開始スケジュールをK通り
    以上作成するときは、 複数ロボットの動作範囲が互いに重なり合う共有作業空
    間を定義し、 各動作命令を実行したときにロボットの一部あるいは全
    てのリンクモデルおよびツールモデルが共有作業空間内
    を通過(sweep)する領域(占有領域)を求め、 スケジューリング理論における「仕事(ジョブ)」、
    「作業(オペレーション)」、「機械(マシン)」の概
    念をそれぞれ「単体教示データ」、「動作命令」、「共
    有作業空間の部分領域」に対応させ、各動作命令をスケ
    ジューリング理論における「選択グラフ(Disjunctive G
    raph)のノード」とし、異なるロボット間の動作命令の
    占有領域同士を比較し、占有領域同士が交わる動作命令
    の対をスケジューリング理論における「選択枝(Disjunc
    tive Edge)」とし、予め指定された動作命令の実行順序
    (先後関係)をスケジューリング理論における「選択グ
    ラフのアーク」としてスケジューリング理論における
    「選択グラフ」を設定し、 前記選択グラフに基づいて干渉回避スケジューリングを
    する、 ことを特徴とする請求項1〜7,12のいずれか1項に
    記載の複数ロボットの作業教示方法。
  14. 【請求項14】前記共有作業空間あるいは前記作業空間
    マップを再帰的なブロック分割により生成し、生成され
    た階層的な各分割領域をツリー構造により管理し、 前記動作命令の占有領域あるいは前記各移動予定位置に
    おけるロボットの占有状態、すなわち、内包される前記
    分割領域の集合をツリー構造で管理する、 ことを特徴とする請求項8〜11,13のいずれか1項
    に記載の複数ロボットの作業教示方法。
  15. 【請求項15】前記干渉回避スケジューリングは前記選
    択枝の向き、すなわちアーク、の組み合わせを決めるこ
    とによって前記動作命令開始スケジュールを作成するも
    のであり、 冗長なアークおよび冗長な選択枝を削除するルールを1
    つあるいは複数有し、 ロボット間衝突回避が保証されないアークと選択枝の組
    みを排除するルールを1つあるいは複数有し、 前記ルールを逐次適用しながら前記干渉回避スケジュー
    リングを行う、 ことを特徴とする請求項13〜14のいずれか1項に記
    載の複数ロボットの作業教示方法。
  16. 【請求項16】動作命令に対してその経路上に内分点を
    追加してその動作命令を複数個の連続した動作命令に分
    割する機能を有し、 一部の連続した動作命令を一つに併合して1つの動作命
    令とする機能を有し、 前記動作命令開始スケジュールを決定する前に教示者が
    分割あるいは併合する動作命令を指定して単体教示デー
    タセットを編集し、 編集済み単体教示データセット内の全ての動作命令(分
    割動作命令、併合動作命令、オリジナルの動作命令)
    を、便宜上、編集済み動作命令としたとき、各編集済み
    動作命令をスケジューリング理論の「作業」と見なし
    て、動作命令開始スケジュールを作成し、 前記動作命令開始スケジュールにしたがって前記修正教
    示データを作成する際は、前記併合動作命令を元の連続
    した複数の動作命令に置き換え、 間にインタロック命令を挿入する必要の無い複数の連続
    した分割動作命令を1つの動作命令にまとめる、 ことを特徴とする請求項13〜15のいずれか1項に記
    載の複数ロボットの作業教示方法。
  17. 【請求項17】動作命令の経路上に内分点を追加してそ
    の動作命令を分割する際、 分割された各動作命令の指令速度時間変化パターンが定
    速度領域を持つように内分点間隔の最小値を制限する、 ことを特徴とする請求項16に記載の複数ロボットの作
    業教示方法。
  18. 【請求項18】前記動作命令開始スケジュールからロボ
    ット間の動作命令の実行順序(先後関係)情報を抽出
    し、 前記ロボット間動作命令の先後関係情報と前記ロボット
    コントローラ間の接続情報を利用して前記修正教示デー
    タセットを作成する、 ことを特徴とする請求項12〜17に記載の複数ロボッ
    トの作業教示方法。
  19. 【請求項19】教示データにしたがって作業する複数の
    ロボットに対して、ロボットが互いに干渉しないように
    各ロボットの教示データを作成する装置であって、 他のロボットの存在を無視して作成したロボット単体の
    単体教示データを全てのロボットに関して入力する単体
    教示データセット入力手段と、 Kを1以上の整数とし、全ロボットの前記単体教示デー
    タの集合を単体教示データセットとしたとき、その単体
    教示データセット内の作業点における動作命令と、作業
    点間の移動に関する動作命令のどちらか一方、あるいは
    両方の動作命令の実行開始順序を指定した動作命令開始
    スケジュールをK通り決定する動作命令開始スケジュー
    ル決定手段と、 K通りの前記動作命令開始スケジュールにしたがって前
    記単体教示データセットを修正して修正教示データセッ
    トをK通り作成する単体教示データセット修正手段と、 を備えたことを特徴とする複数ロボットの作業教示装
    置。
  20. 【請求項20】前記修正教示データセットにしたがった
    K通り以下の各ロボットの動作を実機複数ロボットが教
    示者に提示する実機動作提示手段と、 提示されたK通り以下の前記複数ロボットの動作から教
    示者が1つを選択する修正教示データセット選択手段
    と、 を備えたことを特徴とする請求項19に記載の複数ロボ
    ットの作業教示装置。
  21. 【請求項21】前記動作命令開始スケジュール決定手段
    は、 Kを1以上の整数としたとき、前記動作命令開始スケジ
    ュールをK通り以上作成する動作命令開始スケジュール
    作成手段と、 前記各動作命令開始スケジュールにしたがった各ロボッ
    トの動作を、仮想環境上で教示者に提示する仮想環境動
    作提示手段と、 教示者の判断、またはスケジュールの明確な評価値に基
    づいて、教示者が前記動作命令開始スケジュールをK通
    り選択する教示者選択手段と、 を備えたことを特徴とする請求項19,20のいずれか
    1項に記載の複数ロボットの作業教示装置。
  22. 【請求項22】前記動作命令開始スケジュール決定手段
    は、 Kを1以上の整数としたとき、動作命令開始スケジュー
    ルをK通り以上作成する動作命令開始スケジュール作成
    手段と、 複数の前記動作命令開始スケジュールの中から、複数ロ
    ボット全体の作業時間、すなわち最大完了時刻、が最小
    となるか、あるいは所定の評価基準を最適化するものか
    ら優先的に前記動作命令開始スケジュールをK通り選択
    する最適化選択手段と、 を備えたことを特徴とする請求項19,20のいずれか
    1項に記載の複数ロボットの作業教示装置。
  23. 【請求項23】前記単体教示データセットの動作命令の
    一部の動作命令を限定する対象動作命令限定手段を備
    え、 限定された動作命令に対して前記動作命令開始スケジュ
    ールを決定すること、を特徴とする請求項19〜22の
    いずれか1項に記載の複数ロボットの作業教示装置。
  24. 【請求項24】前記単体教示データセットの動作命令の
    一部あるいは全ての動作命令間の実行順序、すなわち先
    後関係、を指定する動作命令実行順序指定手段を備え、 指定された動作命令間の実行順序を満足するように前記
    動作命令開始スケジュールを決定することを特徴とする
    請求項19〜23のいずれか1項に記載の複数ロボット
    の作業教示装置。
  25. 【請求項25】前記単体教示データセット修正手段は、
    単体教示データセットの適切な個所にインタロック命令
    を挿入するインタロック命令挿入手段を備え、 各ロボットを前記動作命令開始スケジュールにしたがっ
    て動作させることを特徴とする請求項19〜24のいず
    れか1項に記載の複数ロボットの作業教示装置。
  26. 【請求項26】前記動作命令開始スケジュール作成手段
    は、 複数ロボットの動作範囲が互いに重なり合う共有作業空
    間を複数領域に分割し、各分割領域に番号付けした共有
    作業空間マップを作成する共有作業空間マップ作成手段
    と、 各ロボットの各動作命令に対して、動作開始時刻から動
    作終了時刻までのタイムスロットごとにロボットの移動
    予定位置を求める移動予定位置計算手段と、 各ロボットの各動作命令の前記各タイムスロットでの移
    動予定位置に対して、ロボットが前記共有作業空間マッ
    プの何番の分割領域を占有するかを求める共有作業空間
    占有状態計算手段と、 同時刻に複数のロボットが前記共有作業空間マップの同
    一番号の分割領域を占有せず、かつ複数ロボット全体の
    作業時間、すなわち最大完了時刻、が最小となるよう
    に、前記動作命令開始スケジュールを、前記タイムスロ
    ットを時刻の刻み幅として、探索または繰り返し計算ま
    たはディスパッチングルールに基づくスケジューリング
    方式、あるいは試行錯誤により求める干渉回避スケジュ
    ーリング手段と、 を備えたことを特徴とする請求項19〜25のいずれか
    1項に記載の複数ロボットの作業教示装置。
  27. 【請求項27】前記干渉回避スケジューリング手段は、 スケジューリング理論における「仕事」、「機械」の概
    念をそれぞれ「単体教示データ」、「共有作業空間マッ
    プの分割領域」に対応させ、各動作命令をスケジューリ
    ング理論の「作業」と見なして動作命令処理時間単位の
    粗いスケジュールを求めるマクロレベル大域スケジュー
    リング手段と、 前記共有作業空間マップの同じ分割領域を占有する「マ
    クロレベル大域スケジュールのクリティカルパス」上の
    動作命令間に対して、動作命令をサブ動作命令に分割
    し、サブ動作命令をスケジューリング理論の「作業」と
    見なして局所範囲での細かなスケジュールを求めるミク
    ロレベル局所スケジューリング手段と、 前記マクロレベル大域スケジューリング手段により得ら
    れた大域スケジュールを、前記ミクロレベル局所スケジ
    ューリング手段により得られた局所スケジュールを利用
    して、部分的に修正する大域スケジュールミクロレベル
    修正手段と、 を備えたことを特徴とする請求項26に記載の複数ロボ
    ットの作業教示装置。
  28. 【請求項28】ロボットコントローラ間の接続情報を入
    力するロボットコントローラ間接続情報入力手段を備
    え、 前記動作命令実行順序指定手段は、 前記単体データセットの動作命令の一部あるいは全ての
    実行順序(先後関係)をインタロック命令として挿入す
    るためのインタロック命令挿入手段と、 前記ロボットコントローラ間接続情報入力手段で入力さ
    れたロボットコントローラ間接続情報と前記インタロッ
    ク命令挿入手段によって挿入されたインタロック命令か
    ら動作命令の先後関係を抽出する動作命令先後関係抽出
    手段と、 を備えたことを特徴とする請求項24項に記載の複数ロ
    ボットの作業教示装置。
  29. 【請求項29】前記動作命令開始スケジュール作成手段
    は、 複数ロボットの動作範囲が互いに重なり合う共有作業空
    間を定義する共有空間定義手段と、 各動作命令を実行したときにロボットの一部あるいは全
    てのリンクモデルおよびツールモデルが共有作業空間内
    を通過(sweep)する領域(占有領域)を求める動作命
    令占有領域計算手段と、 スケジューリング理論における「仕事(ジョブ)」、
    「作業(オペレーション)」、「機械(マシン)」の概
    念をそれぞれ「単体教示データ」、「動作命令」、「共
    有作業空間の部分領域」に対応させ、各動作命令をスケ
    ジューリング理論における「選択グラフ(Disjunctive G
    raph)のノード」とし、異なるロボット間の動作命令の
    占有領域同士を比較し、占有領域同士が交わる動作命令
    の対をスケジューリング理論における「選択枝(Disjunc
    tive Edge)」とし、予め指定された動作命令の実行順序
    (先後関係)をスケジューリング理論における「選択グ
    ラフのアーク」として、スケジューリング理論における
    「選択グラフ」を設定する選択グラフ設定手段と、 前記選択グラフ設定手段によって設定された選択グラフ
    に基づいて前記動作命令開始スケジュールを計算する干
    渉回避スケジューリング手段と、 を備えたことを特徴とする請求項19〜26,28のい
    ずれか1項に記載の複数ロボットの作業教示装置。
  30. 【請求項30】前記共有作業空間定義手段および共有作
    業空間マップ作成手段は、 再帰的なブロック分割により共有作業空間の階層的な分
    割領域をツリー構造で保存し、 前記動作命令占有領域計算手段および共有作業空間占有
    状態計算手段は、占有される前記共有作業空間の分割領
    域の集合をツリー構造で保存する、 ことを特徴とする請求項26、27、29のいずれか1
    項に記載の複数ロボットの作業教示装置。
  31. 【請求項31】前記干渉回避スケジューリング手段は、 スケジューリングの最中に逐次、冗長なアークおよび冗
    長な選択枝の存在を調べてこれを削除する冗長アーク・
    冗長選択枝削除手段と、 スケジューリングの最中に逐次、ロボット間衝突回避が
    保証されない不適切なアークと選択枝の組みの存在を調
    べてこれを排除するアーク選択手段と、 を備えたことを特徴とする請求項29,30のいずれか
    1項に記載の複数ロボットの作業教示装置。
  32. 【請求項32】動作命令に対してその経路上に内分点を
    追加してその動作命令を複数個の連続した動作命令に分
    割する機能と、一部の連続した動作命令を一つに併合し
    て1つの動作命令とする機能を使用して、前記動作命令
    開始スケジュールを作成する前に教示者が分割あるいは
    併合する動作命令を指定して単体教示データセットを編
    集する単体教示データセット編集手段を備え、 編集済み単体教示データセット内の全ての動作命令(分
    割動作命令、併合動作命令、オリジナルの動作命令)
    を、便宜上、編集済み動作命令としたとき、前記選択グ
    ラフ設定手段は、各編集済み動作命令をスケジューリン
    グ理論の「作業」と見なして選択グラフを設定し、 前記動作命令開始スケジュールにしたがって前記修正教
    示データを作成する際、前記単体教示データセット修正
    手段は、前記併合動作命令を元の連続した複数の動作命
    令に置き換え、間にインタロック命令を挿入する必要の
    無い複数の連続した分割動作命令を1つの動作命令にま
    とめる、 ことを特徴とする請求項29〜31のいずれか1項に記
    載の複数ロボットの作業教示装置。
  33. 【請求項33】前記単体教示データセット編集手段は、 動作命令に対してその経路上に内分点を追加してその動
    作命令を複数個の連続した動作命令に分割する際に、分
    割された各動作命令の指令速度時間変化パターンが一定
    速度領域を有するように内分点間隔の最小値を制限する
    分割間隔制限手段、 を備えたことを特徴とする請求項32に記載の複数ロボ
    ットの作業教示装置。
  34. 【請求項34】ロボットコントローラ間の接続情報を入
    力するロボットコントローラ接続情報入力手段を備え、 前記単体教示データセット修正手段は、前記動作命令開
    始スケジュールからロボット間の動作命令の先後情報を
    抽出する動作命令先後関係抽出手段を備え、前記動作命
    令先後関係情報とロボットコントローラ間接続情報を利
    用して修正教示データセットを作成する、 ことを特徴とする請求項28〜33に記載の複数ロボッ
    トの作業教示装置。
JP2002247488A 2001-10-25 2002-08-27 複数ロボットの作業教示方法および作業教示装置 Expired - Fee Related JP4228387B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002247488A JP4228387B2 (ja) 2001-10-25 2002-08-27 複数ロボットの作業教示方法および作業教示装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001-327626 2001-10-25
JP2001327626 2001-10-25
JP2002247488A JP4228387B2 (ja) 2001-10-25 2002-08-27 複数ロボットの作業教示方法および作業教示装置

Publications (2)

Publication Number Publication Date
JP2003200368A true JP2003200368A (ja) 2003-07-15
JP4228387B2 JP4228387B2 (ja) 2009-02-25

Family

ID=27666491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002247488A Expired - Fee Related JP4228387B2 (ja) 2001-10-25 2002-08-27 複数ロボットの作業教示方法および作業教示装置

Country Status (1)

Country Link
JP (1) JP4228387B2 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1604790A2 (de) 2004-06-08 2005-12-14 KUKA Roboter GmbH Verfahren zum Schützen eines Roboters gegen Kollisionen
JP2006192554A (ja) * 2005-01-17 2006-07-27 Kawasaki Heavy Ind Ltd 複数ロボットの干渉防止方法およびその方法を実施する装置並びに当該装置を備えるロボットシステム
JP2010155310A (ja) * 2008-12-26 2010-07-15 Fanuc Ltd ロボットの動作許容領域の自動設定装置
US7937186B2 (en) 2005-12-13 2011-05-03 Fanuc Ltd Device and method for automatically setting interlock between robots
JP2015160253A (ja) * 2014-02-26 2015-09-07 キヤノン株式会社 軌道生成方法、ロボット装置、プログラム及び記録媒体
WO2015179099A1 (en) * 2014-05-21 2015-11-26 Bot & Dolly, Llc Systems and methods for time-based parallel robotic operation
CN105302062A (zh) * 2015-10-15 2016-02-03 东南大学 一种基于任务解耦的多机器人协作焊接路径的生成方法
WO2017051485A1 (ja) * 2015-09-25 2017-03-30 株式会社牧野フライス製作所 3dモデル生成方法および3dモデルを生成する工作機械
JP2017530873A (ja) * 2014-09-02 2017-10-19 カヴォス・バガテル・フェアヴァルツングス・ゲーエムベーハー ウント ツェーオー カーゲーCavos Bagatelle Verwaltungs Gmbh & Co.Kg ロボットの制御データセットの調節システム
US9904282B2 (en) 2014-09-16 2018-02-27 Kabushiki Kaisha Yaskawa Denki Work planner, method for planning work, and computer-readable storage medium storing a work planning program
CN108290285A (zh) * 2015-11-17 2018-07-17 Abb瑞士股份有限公司 用于在机器人系统中优化工作周期的方法
JP2019084648A (ja) * 2017-11-09 2019-06-06 キヤノン株式会社 ロボット教示方法、ロボット教示装置、ロボットシステム、プログラム及び記録媒体
JP2019532827A (ja) * 2016-10-31 2019-11-14 ピルツ ゲーエムベーハー アンド コー.カーゲー 衝突回避動作計画のための方法
CN110914020A (zh) * 2017-08-07 2020-03-24 罗伯特·博世有限公司 具有机器人的操纵装置以及方法和计算机程序
WO2020066947A1 (ja) * 2018-09-25 2020-04-02 日本電産株式会社 ロボットの経路決定装置、ロボットの経路決定方法、プログラム
CN114347039A (zh) * 2022-02-14 2022-04-15 北京航空航天大学杭州创新研究院 机器人控制方法及相关装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977058B2 (en) * 2019-06-20 2021-04-13 Sap Se Generation of bots based on observed behavior

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1604790A2 (de) 2004-06-08 2005-12-14 KUKA Roboter GmbH Verfahren zum Schützen eines Roboters gegen Kollisionen
EP1604790A3 (de) * 2004-06-08 2008-10-15 KUKA Roboter GmbH Verfahren zum Schützen eines Roboters gegen Kollisionen
JP2006192554A (ja) * 2005-01-17 2006-07-27 Kawasaki Heavy Ind Ltd 複数ロボットの干渉防止方法およびその方法を実施する装置並びに当該装置を備えるロボットシステム
US7937186B2 (en) 2005-12-13 2011-05-03 Fanuc Ltd Device and method for automatically setting interlock between robots
JP2010155310A (ja) * 2008-12-26 2010-07-15 Fanuc Ltd ロボットの動作許容領域の自動設定装置
JP2015160253A (ja) * 2014-02-26 2015-09-07 キヤノン株式会社 軌道生成方法、ロボット装置、プログラム及び記録媒体
US9915937B2 (en) 2014-05-21 2018-03-13 X Development Llc Systems and methods for time-based parallel robotic operation
US9555545B2 (en) 2014-05-21 2017-01-31 Bot & Dolly, Llc Systems and methods for time-based parallel robotic operation
WO2015179099A1 (en) * 2014-05-21 2015-11-26 Bot & Dolly, Llc Systems and methods for time-based parallel robotic operation
JP2017530873A (ja) * 2014-09-02 2017-10-19 カヴォス・バガテル・フェアヴァルツングス・ゲーエムベーハー ウント ツェーオー カーゲーCavos Bagatelle Verwaltungs Gmbh & Co.Kg ロボットの制御データセットの調節システム
US9904282B2 (en) 2014-09-16 2018-02-27 Kabushiki Kaisha Yaskawa Denki Work planner, method for planning work, and computer-readable storage medium storing a work planning program
WO2017051485A1 (ja) * 2015-09-25 2017-03-30 株式会社牧野フライス製作所 3dモデル生成方法および3dモデルを生成する工作機械
JPWO2017051485A1 (ja) * 2015-09-25 2018-04-12 株式会社牧野フライス製作所 3dモデル生成方法および3dモデルを生成する工作機械
CN105302062A (zh) * 2015-10-15 2016-02-03 东南大学 一种基于任务解耦的多机器人协作焊接路径的生成方法
US20180326580A1 (en) * 2015-11-17 2018-11-15 Abb Schweiz Ag Method For Optimizing A Work Cycle In A Robot System
CN108290285A (zh) * 2015-11-17 2018-07-17 Abb瑞士股份有限公司 用于在机器人系统中优化工作周期的方法
CN108290285B (zh) * 2015-11-17 2021-08-06 Abb瑞士股份有限公司 用于在机器人系统中优化工作周期的方法
JP2019532827A (ja) * 2016-10-31 2019-11-14 ピルツ ゲーエムベーハー アンド コー.カーゲー 衝突回避動作計画のための方法
JP7050058B2 (ja) 2016-10-31 2022-04-07 ピルツ ゲーエムベーハー アンド コー.カーゲー 衝突回避動作計画のための方法
US11577393B2 (en) 2016-10-31 2023-02-14 Pilz Gmbh & Co. Kg Method for collision-free motion planning
CN110914020A (zh) * 2017-08-07 2020-03-24 罗伯特·博世有限公司 具有机器人的操纵装置以及方法和计算机程序
CN110914020B (zh) * 2017-08-07 2023-08-18 罗伯特·博世有限公司 具有机器人的操纵装置以及方法和计算机程序
JP2019084648A (ja) * 2017-11-09 2019-06-06 キヤノン株式会社 ロボット教示方法、ロボット教示装置、ロボットシステム、プログラム及び記録媒体
WO2020066947A1 (ja) * 2018-09-25 2020-04-02 日本電産株式会社 ロボットの経路決定装置、ロボットの経路決定方法、プログラム
CN114347039A (zh) * 2022-02-14 2022-04-15 北京航空航天大学杭州创新研究院 机器人控制方法及相关装置
CN114347039B (zh) * 2022-02-14 2023-09-22 北京航空航天大学杭州创新研究院 机器人前瞻控制方法及相关装置

Also Published As

Publication number Publication date
JP4228387B2 (ja) 2009-02-25

Similar Documents

Publication Publication Date Title
JP4228387B2 (ja) 複数ロボットの作業教示方法および作業教示装置
JP7050058B2 (ja) 衝突回避動作計画のための方法
US6292715B1 (en) Robotic process planning method and apparatus using templates
EP1302904B1 (en) Object modeling
Xu* et al. STEP-compliant NC research: the search for intelligent CAD/CAPP/CAM/CNC integration
US7526359B2 (en) Enhanced digital process design methodology for process centric CAD systems
Zhang et al. Towards fully BIM-enabled building automation and robotics: A perspective of lifecycle information flow
US6839606B2 (en) Horizontally structured manufacturing process modeling for fixtures and tooling
US7099804B2 (en) Automated horizontally structured manufacturing process design modeling
Huang et al. Automated sequence and motion planning for robotic spatial extrusion of 3D trusses
US6950719B2 (en) Horizontally structured manufacturing process modeling: across file feature operability
US6985793B2 (en) Horizontally structured CAD/CAM coordinate system for manufacturing design
US20020133265A1 (en) Horizontally structured manufacturing process modeling for concurrent product and process design
Barrios Transformations on parametric design models: A case study on the Sagrada Familia columns
US20020133267A1 (en) Enhancement to horizontally structured manufacturing process modeling
EP1443434A2 (en) Horizontally structured CAD/CAM coordinate system
US6754556B1 (en) Horizontally structured manufacturing process modeling: enhancement to multiple master process models and across file feature operability
JPH10263957A (ja) 組立装置
US7245984B2 (en) Horizontally structured manufacturing process modeling: exterior linked representational embodiment
Choi et al. A virtual prototyping system with reconfigurable actuators for multi-material layered manufacturing
Sharma et al. Layout design optimisation with point cloud object modelling for multi-robot industrial working cell
Roßgoderer et al. A concept for automatical layout generation
JP7322099B2 (ja) 情報処理方法、情報処理装置、ロボット装置、プログラム、およびコンピュータ読み取り可能な記録媒体
Ouyang A framework of an intelligent process planning system for milling based on STEP-NC
JP3567784B2 (ja) 図面データ自動合成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080620

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080922

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081123

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121212

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131212

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141212

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees