IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社安川電機の特許一覧

特開2024-102220ロボットシステム、タスク生成装置及び制御方法
<>
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図1
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図2
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図3
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図4
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図5
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図6
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図7
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図8
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図9
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図10
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図11
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図12
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図13
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図14
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図15
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図16
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図17
  • 特開-ロボットシステム、タスク生成装置及び制御方法 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024102220
(43)【公開日】2024-07-30
(54)【発明の名称】ロボットシステム、タスク生成装置及び制御方法
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240723BHJP
   B25J 9/10 20060101ALI20240723BHJP
   G05B 19/4093 20060101ALI20240723BHJP
【FI】
B25J9/22 A
B25J9/10 A
G05B19/4093 E
【審査請求】未請求
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2024074693
(22)【出願日】2024-05-02
(62)【分割の表示】P 2022019414の分割
【原出願日】2022-02-10
(71)【出願人】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】前田 貴宏
(72)【発明者】
【氏名】丸野 元春
(72)【発明者】
【氏名】有田 裕太
(57)【要約】
【課題】動作プログラミングの簡素化に有効なロボットシステムを提供する。
【解決手段】ロボットシステム1は、未定区間を含むロボット3の動作パスを表す複数のコマンドを順次呼び出す呼出部111と、未定区間に対する追加パスを生成するパスプラン部112と、呼出部111が呼び出したコマンドと、追加パスとに基づいてロボット3を動作させる制御部114と、を備え、パスプラン部112は、1のコマンドに基づいて制御部114がロボット3を動作させている際に、ロボット3の周辺環境情報に基づいて追加パスを生成する。
【選択図】図3
【特許請求の範囲】
【請求項1】
未定区間を含むロボットの動作パスを表す複数のコマンドを順次呼び出す呼出部と、
前記未定区間に対する追加パスを生成するパスプラン部と、
前記呼出部が呼び出したコマンドと、前記追加パスとに基づいて前記ロボットを動作させる制御部と、
を備え、
前記パスプラン部は、1のコマンドに基づいて前記制御部が前記ロボットを動作させている際に、前記ロボットの周辺環境情報に基づいて前記追加パスを生成する、ロボットシステム。
【請求項2】
前記複数のコマンドは、前記動作パスの経由点の情報を含むムーブコマンドと、前記未定区間の到達点となる前記動作パスの経由点の情報を含むオートコマンドと、を含み、
前記パスプラン部は、前記ムーブコマンドに基づき前記制御部が前記ロボットを動作させている際に、前記ムーブコマンドより後の前記オートコマンドと前記周辺環境情報とに基づいて、前記未定区間における前記到達点までの前記追加パスを生成する、請求項1記載のロボットシステム。
【請求項3】
2以上のムーブコマンドをそれぞれ含む複数のタスクを保存するタスク保存部と、
前記タスク保存部に保存された前記複数のタスクのうち、1のタスクを選択するタスク選択部と、
を更に備え、
前記呼出部は、前記タスク選択部が選択した前記1のタスクに含まれる前記ムーブコマンドを呼び出す前に、前記オートコマンドを呼び出す、請求項2記載のロボットシステム。
【請求項4】
前記複数のタスクの少なくともいずれかは、前記2以上のムーブコマンドの前に前記オートコマンドを含み、
前記呼出部は、前記タスク選択部が選択した前記1のタスクから前記オートコマンドを呼び出す、請求項3記載のロボットシステム。
【請求項5】
前記2以上のムーブコマンドを指定するタスク情報に基づいて、前記2以上のムーブコマンドの前に実行される前記オートコマンドを生成するコマンド生成部と、
生成された前記オートコマンドと、前記タスク情報とに基づいてタスクを生成するタスク生成部と、
を更に備える、請求項4記載のロボットシステム。
【請求項6】
前記1のタスクにおいて最初の経由点が前記ムーブコマンドにより定められている場合に、前記最初の経由点を定める前記ムーブコマンドを前記オートコマンドに置き換えるか、前記最初の経由点を定める前記ムーブコマンドの前に前記オートコマンドを挿入する、 オートコマンド配置部を更に有する、請求項4記載のロボットシステム。
【請求項7】
前記呼出部は、前記1のタスクにおいて最初の経由点が前記ムーブコマンドにより定められている場合に、前記最初の経由点を定める前記ムーブコマンドを、前記最初の経由点を前記到達点とする前記オートコマンドに読み替える、請求項3記載のロボットシステム。
【請求項8】
前記パスプラン部は、前記到達点の直前の前記経由点から前記到達点までの前記追加パスを生成する、請求項2~7のいずれか一項記載のロボットシステム。
【請求項9】
前記複数のコマンドは、前記経由点をシフトさせるシフトコマンドを含み、
前記パスプラン部は、前記呼出部が、前記シフトコマンドの後に前記オートコマンドを呼び出した場合に、前記オートコマンドの前記到達点を前記シフトコマンドに基づきシフトさせたシフト到達点までの前記追加パスを生成する、請求項8記載のロボットシステム。
【請求項10】
前記パスプラン部は、前記オートコマンドの直前の前記ムーブコマンドに対応する動作が完了する前に前記追加パスの生成が完了するタイミングで、前記追加パスの生成を開始する、請求項2~9のいずれか一項記載のロボットシステム。
【請求項11】
前記パスプラン部は、前記周辺環境情報に基づいて、前記追加パスを定める2以上の新たなムーブコマンドを生成する、請求項2~10のいずれか一項記載のロボットシステム。
【請求項12】
前記パスプラン部は、前記呼出部が前記オートコマンドを呼び出した後に、前記オートコマンドと前記周辺環境情報とに基づいて、前記追加パスを定める前記2以上の新たなムーブコマンドを生成し、
前記呼出部は、前記2以上の新たなムーブコマンドを含む2以上のコマンドをコマンド保存部に記憶させ、
前記制御部は、前記コマンド保存部が記憶する前記2以上のコマンドに基づいて前記ロボットを動作させる、請求項11記載のロボットシステム。
【請求項13】
前記制御部は、
前記コマンド保存部が記憶する前記2以上のコマンドに基づいて前記ロボットの一連の制御指令を生成し、
一連の制御指令に基づいて前記ロボットを動作させる、請求項12記載のロボットシステム。
【請求項14】
前記呼出部は、前記コマンド保存部が記憶する前記2以上のコマンドに対応する動作の予想時間が、少なくとも前記パスプラン部による前記追加パスの生成に要する時間よりも長くなるように、前記コマンド保存部に記憶させる前記コマンドの数を変更する、請求項12又は13記載のロボットシステム。
【請求項15】
前記オートコマンドは、前記周辺環境情報に基づいて前記追加パスを生成する際の生成条件を表す条件情報を含み、
前記パスプラン部は、前記条件情報に更に基づいて前記追加パスを生成する、請求項2~14のいずれか一項記載のロボットシステム。
【請求項16】
前記パスプラン部が生成した前記追加パスに基づく前記ロボットの動作をシミュレートして、前記ロボットが前記周辺環境に存在する周辺物体に干渉しないか確認する干渉チェック部を更に有し、
前記制御部は、前記ロボットが前記周辺物体に干渉しない場合に、前記パスプラン部が生成した前記追加パスに基づいて前記ロボットを動作させる、請求項1~15のいずれか一項記載のロボットシステム。
【請求項17】
少なくとも、前記パスプラン部が前記追加パスを生成する前後に、前記周辺環境情報を更新する情報収集部と、
前記周辺環境情報に基づいて、前記パスプラン部が前記追加パスを生成する前後における前記周辺環境情報の変化がないかを確認する環境変化チェック部と、
を更に備える、請求項1~16のいずれか一項記載のロボットシステム。
【請求項18】
前記制御部は、前記パスプラン部が前記追加パスを生成する前後における前記周辺環境情報の変化がない場合に、前記追加パスに基づいて前記ロボットを動作させる、請求項17記載のロボットシステム。
【請求項19】
前記パスプラン部は、前記追加パスを生成する前後における前記周辺環境情報の変化がある場合に、変化後の前記周辺環境情報に基づいて前記追加パスを再生成する、請求項17又は18記載のロボットシステム。
【請求項20】
未定区間を含むロボットの動作パスの経由点の情報を含む複数のムーブコマンドと、前記未定区間の到達点となる前記動作パスの経由点の情報を含むオートコマンドと、を含む複数のコマンドを順次呼び出す呼出部と、
前記呼出部が前記オートコマンドを呼び出した場合に、前記オートコマンドと、前記ロボットの周辺環境情報とに基づいて、前記未定区間における前記到達点までの追加パスを生成するパスプラン部と、
前記呼出部が呼び出したコマンドと、前記追加パスとに基づいて前記ロボットを動作させる制御部と、
を備えるロボットシステム。
【請求項21】
ロボットの動作パスの経由点の情報をそれぞれが含む2以上のムーブコマンドを指定するタスク情報に基づいて、前記2以上のムーブコマンドに対応する動作への移行動作における到達点の情報を含むオートコマンドを生成するコマンド生成部と、
生成した前記オートコマンドと、前記タスク情報とに基づいてタスクを生成するタスク生成部と、を備え、
前記タスクを前記ロボットに実行させるために前記オートコマンドが呼び出されると、前記到達点までの追加パスが前記ロボットの周辺環境情報に基づいて生成され、生成された前記追加パスと前記タスクの前記2以上のムーブコマンドとに基づいて前記ロボットが動作する、タスク生成装置。
【請求項22】
未定区間を含むロボットの動作パスを表す複数のコマンドを順次呼び出すことと、
前記未定区間に対する追加パスを生成することと、
呼び出したコマンドと、前記追加パスとに基づいて前記ロボットを動作させることと、
を含み、
1のコマンドに基づいて前記ロボットを動作させている際に、周辺環境情報に基づいて前記追加パスを生成する、制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットシステム、タスク生成装置及び制御方法に関する。
【背景技術】
【0002】
特許文献1には、ロボットと作業環境の幾何学的形状およびそれらの配置を記述した計算機上の幾何モデル手段と、モデル同士の干渉を検査する計算機上の干渉検査手段を利用し、ロボットのスタートおよびゴール配置が与えられたとき、ロボットと作業環境内の障害物とが干渉しないロボットの動作経路を計画する方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000-20117号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、動作プログラミングの簡素化に有効なロボットシステムを提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボットシステムは、未定区間を含むロボットの動作パスを表す複数のコマンドを順次呼び出す呼出部と、未定区間に対する追加パスを生成するパスプラン部と、呼出部が呼び出したコマンドと、追加パスとに基づいてロボットを動作させる制御部と、を備え、パスプラン部は、1のコマンドに基づいて制御部がロボットを動作させている際に、ロボットの周辺環境情報に基づいて追加パスを生成する。
【0006】
本開示の他の一側面に係るロボットシステムは、未定区間を含むロボットの動作パスの経由点の情報を含む複数のムーブコマンドと、前記未定区間の到達点となる前記動作パスの経由点の情報を含むオートコマンドと、を含む複数のコマンドを順次呼び出す呼出部と、オートコマンドと、ロボットの周辺環境情報とに基づいて、未定区間における到達点までの追加パスを生成するパスプラン部と、呼出部が呼び出したコマンドと、追加パスとに基づいてロボットを動作させる制御部と、を備える。
【0007】
本開示の更に他の一側面に係るタスク生成装置は、未定区間を含むロボットの動作パスの経由点の情報をそれぞれが含む2以上のムーブコマンドを指定するタスク情報に基づいて、2以上のムーブコマンドに対応する一連の動作の開始点を定めるオートコマンドを生成するコマンド生成部と、生成したオートコマンドと、タスク情報とに基づいてタスクを生成するタスク生成部と、を備え、タスクが選択されると、タスクのオートコマンドが定める開始点までの追加パスがロボットの周辺環境情報に基づいて生成され、生成された追加パスとタスクの2以上のムーブコマンドとに基づいてロボットが動作する。
【0008】
本開示の更に他の一側面に係る制御方法は、未定区間を含むロボットの動作パスを表す複数のコマンドを順次呼び出すことと、未定区間に対する追加パスを生成することと、呼び出したコマンドと、追加パスとに基づいてロボットを動作させることと、を含み、1のコマンドに基づいてロボットを動作させている際に、周辺環境情報に基づいて追加パスを生成する。
【発明の効果】
【0009】
本開示によれば、動作プログラミングの簡素化に有効なロボットシステムを提供することができる。
【図面の簡単な説明】
【0010】
図1】ロボットシステムの構成を例示する模式図である。
図2】ロボットの構成を例示する模式図である。
図3】コントローラの機能的な構成を例示するブロック図である。
図4】複数のコマンドを例示する図である。
図5】パスプラン部の構成を例示するブロック図である。
図6】ロボットの動作期間と、追加パスの生成期間との関係を表すタイミングチャートである。
図7】タスク保存部の記憶内容を例示する模式図である。
図8】コントローラの変形例を示すブロック図である。
図9】上位コントローラの構成を例示するブロック図である。
図10】コントローラ、上位コントローラ、及びシミュレーション装置のハードウェア構成を例示するブロック図である。
図11】オートコマンド配置手順を例示するフローチャートである。
図12】タスク生成手順を例示するフローチャートである。
図13】プログラムの生成手順を例示するフローチャートである。
図14】システム制御手順を例示するフローチャートである。
図15】コマンド呼出手順を例示するフローチャートである。
図16】パス生成手順を例示するフローチャートである。
図17】環境変化チェック手順を例示するフローチャートである。
図18】コマンドに基づくロボットの制御手順を例示するフローチャートである。
【発明を実施するための形態】
【0011】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0012】
〔ロボットシステム〕
図1に示すロボットシステム1は、1以上のロボットを含む複数のマシンによりワークの生産等を行うシステムである。ロボットシステム1が複数のマシンに実行させる内容は、ワーク等の生産に限られない。一例として、ロボットシステム1は、コンベヤ2と、複数のロボット3と、制御システムCS1とを備える。
【0013】
コンベヤ2は、例えば電動モータ等の動力によりワークを搬送する。コンベヤ2の具体例としては、ベルトコンベヤ、ローラコンベヤ等が挙げられる。複数のロボット3のそれぞれは、コンベヤ2が搬送するワークに対する作業を行う。ワークに対する作業の具体例としては、コンベヤ2が搬送するワーク(例えばベースパーツ)に対する他のワーク(例えばサブパーツ)の組付け、コンベヤ2が搬送するワークにおけるパーツ同士の締結(例えばボルト締結)・接合(例えば溶接)等が挙げられる。
【0014】
図2は、ロボット3の構成を例示する模式図である。図2に示すロボット3は、6軸の垂直多関節ロボットであり、基部11と、旋回部12と、第1アーム13と、第2アーム14と、第3アーム17と、先端部18と、アクチュエータ41,42,43,44,45,46とを有する。基部11は、コンベヤ2の周囲に設置されている。旋回部12は、鉛直な軸線21まわりに旋回するように基部11上に設けられている。第1アーム13は、軸線21に交差(例えば直交)する軸線22まわりに揺動するように旋回部12に接続されており、軸線22から離れる方向に向かって延びている。交差は、所謂立体交差のようにねじれの関係にある場合も含む。以下においても同様である。
【0015】
第2アーム14は、軸線22に実質的に平行な軸線23まわりに揺動するように第1アーム13の先端部に接続されており、軸線23から離れる方向に向かって延びている。第2アーム14は、アーム基部15とアーム端部16とを含む。アーム基部15は、第1アーム13の先端部に接続されている。アーム端部16は、軸線23に交差(例えば直交)する軸線24まわりに旋回するようにアーム基部15の先端部に接続されており、軸線24に沿ってアーム基部15から離れる方向に向かって延びている。
【0016】
第3アーム17は、軸線24に交差(例えば直交)する軸線25まわりに揺動するようにアーム端部16の先端部に接続されている。先端部18は、軸線25に交差(例えば直交)する軸線26まわりに旋回するように第3アーム17の先端部に接続されている。
【0017】
このように、ロボット3は、基部11と旋回部12とを接続する関節31と、旋回部12と第1アーム13とを接続する関節32と、第1アーム13と第2アーム14とを接続する関節33と、第2アーム14においてアーム基部15とアーム端部16とを接続する関節34と、アーム端部16と第3アーム17とを接続する関節35と、第3アーム17と先端部18とを接続する関節36とを有する。
【0018】
アクチュエータ41,42,43,44,45,46は、例えば電動モータ及び減速機を含み、関節31,32,33,34,35,36をそれぞれ駆動する。例えばアクチュエータ41は軸線21まわりに旋回部12を旋回させ、アクチュエータ42は軸線22まわりに第1アーム13を揺動させ、アクチュエータ43は軸線23まわりに第2アーム14を揺動させ、アクチュエータ44は軸線24まわりにアーム端部16を旋回させ、アクチュエータ45は軸線25まわりに第3アーム17を揺動させ、アクチュエータ46は軸線26まわりに先端部18を旋回させる。
【0019】
なお、ロボット3の具体的な構成は適宜変更可能である。例えばロボット3は、上記6軸の垂直多関節ロボットに更に1軸の関節を追加した7軸の冗長型ロボットであってもよく、所謂スカラー型の多関節ロボットであってもよい。
【0020】
図1に戻り、制御システムCS1は、複数のロボット3を含む複数のマシンを制御する。制御システムCS1は、未定区間を含むロボット3の動作パスを表す複数のコマンドを順次呼び出すことと、未定区間に対する追加パスを生成することと、呼び出したコマンドと、追加パスとに基づいてロボット3を動作させることと、を実行するように構成されている。更に制御システムCS1は、1のコマンドに基づいてロボット3を動作させている際に、周辺環境情報に基づいて追加パスを生成するように構成されている。
【0021】
動作パスは、例えばロボット3の一部(例えば先端部18)の移動経路を表す。動作パスは、先端部18の位置及び姿勢の推移を表してもよい。動作パスは、複数の区間を含む。複数の区間のそれぞれは、動作パスの2の経由点の間である。複数の区間は、複数の既定区間と、1以上の未定区間とを含む。複数の既定区間のそれぞれは、2の経由点の間の移動経路(例えば先端部18の移動経路)が定められている区間である。1以上の未定区間のそれぞれは、2の経由点の間のパスが定められていない区間である。
【0022】
制御システムCS1は、周辺環境情報に基づいて未定区間に対する追加パスを生成する。追加パスは、未定区間における2の経由点の間のパスを表す。
【0023】
動作パスのうち、ワークの生産等の動作目的の要となる区間のみを予め教示して既定区間としておけば、残りの未定区間が制御システムCS1により補われるため、ロボット3に対する動作教示が容易になる。
【0024】
更に、制御システムCS1によれば、複数のコマンドに基づく動作をロボット3が開始した後の周辺環境情報に基づいて追加パスが生成され、生成された追加パスに基づきロボット3による動作が継続される。従って、周辺環境の変化に柔軟に対応した動作をロボット3に実行させることができる。
【0025】
以下、制御システムCS1の構成をより詳細に例示する。制御システムCS1は、複数のコントローラ100と、上位コントローラ200とを有する。複数のコントローラ100は、上位コントローラ200からの指令に基づいて、複数のロボット3をそれぞれ制御する。上位コントローラ200は、一連の作業を複数のロボット3に協働して遂行させるように、複数のコントローラ100のそれぞれに作業指令を送信する。複数のコントローラ100のそれぞれは、作業指令に基づいて、対応するロボット3を制御する。
【0026】
作業指令に基づくロボット3の制御において、コントローラ100は、複数のコマンドを順次呼び出すことと、1以上の未定区間のそれぞれに対する追加パスを生成することと、呼び出したコマンドと、追加パスとに基づいてロボット3を動作させることと、を実行する。コントローラ100は、1のコマンドに基づいてロボット3を動作させている際に、周辺環境情報に基づいて追加パスを生成する。
以下、コントローラ100と、上位コントローラ200と、シミュレーション装置300との構成をより詳細に例示する。
【0027】
〔コントローラ〕
図3は、コントローラ100の機能的な構成を例示するブロック図である。図3に示すように、コントローラ100は、機能上の構成要素(以下、「機能ブロック」という。)として、呼出部111と、パスプラン部112と、パス保存部113と、制御部114とを有する。
【0028】
呼出部111は、ロボット3の動作パスを表す複数のコマンドを順次呼び出す。複数のコマンドは、予めコントローラ100が記憶していてもよい。例えば、複数のコマンドを実行順に配列した動作プログラムが予めコントローラ100が記憶していてもよい。この場合、呼出部111は、コントローラ100が記憶する動作プログラムから複数のコマンドを順次フェッチする。フェッチとは、データを読み出すことを意味する。
【0029】
複数のコマンドは、クラウドからコントローラ100に送信されてもよい。この場合、呼出部111は、クラウドコンピュータからの受信データを一時的に記憶する受信バッファから複数のコマンドを順次フェッチすることとなる。
【0030】
パスプラン部112は、未定区間に対する追加パスを生成する。動作パスが複数の未定区間を含む場合、パスプラン部112は、複数の未定区間のそれぞれに対する追加パスを生成する。
【0031】
一例として、複数のコマンドは、ムーブコマンドと、オートコマンドとを含む。複数のコマンドは、複数のムーブコマンドと、1以上のオートコマンドとを含んでいてもよい。
【0032】
ムーブコマンドは、動作パスの経由点の情報を含む。経由点は、少なくとも先端部18の位置を定める。経由点は、先端部18の位置及び姿勢を定めてもよい。経由点は、先端部18の位置及び姿勢自体を定めるのに代えて、関節31,32,33,34,35,36の角度を定めてもよい。関節31,32,33,34,35,36の角度を定めることによっても、先端部18の位置及び姿勢が定まる。ムーブコマンドの経由点は、オペレータによるオフラインティーチング、又はオンラインティーチング等におり教示された教示点であってもよい。
【0033】
ムーブコマンドは、パス特定情報を更に含んでもよい。パス特定情報は、ムーブコマンドの経由点までの区間のパスを特定し、その区間を上記既定区間とするための情報である。以下、ムーブコマンドの経由点までの区間を「ムーブ区間」といい、ムーブ区間のパスを「ムーブ区間パス」という。例えばパス情報は、ムーブ区間パスを一通りに定めるパス特定条件を表す。パス特定条件の具体例としては、ムーブ区間を直線により補間すること(線形補間)、ムーブ区間をS字状の曲線により補間すること(S字補間)等が挙げられる。
【0034】
1以上のオートコマンドのそれぞれは、未定区間の到達点となる動作パスの経由点の情報を含む。1以上のオートコマンドのそれぞれは、追加パスを生成する際の生成条件を表す条件情報を更に含んでもよい。生成条件の具体例としては、後述の追加コマンドに対するパス特定条件、追加パスにおける移動速度の条件、追加パスにおける加速度の条件、追加パスにおける減速度の条件、追加パスにおける先端部18の姿勢の条件、周辺環境情報に変化がない場合に生成済みの追加パスの再利用を許容するか否かの条件等が挙げられる。オートコマンドの経由点も、ムーブコマンドの経由点と同様に、オペレータによるオフラインティーチング、又はオンラインティーチング等におり教示された教示点であってもよい。
【0035】
図4は、複数のコマンドを例示する図である。図4には、コマンドC1,C2,C3,C4,C5,C6,C7,C8,C9が示されている。コマンドC1,C2,C3,C4,C6,C7,C8は、ムーブコマンドであり、コマンドC5,C9はオートコマンドである。図4において、各コマンドの経由点はカッコ内に引数として入力される。
【0036】
コマンドC1,C2,C3,C4,C6,C7,C8において、「Move」の後に添えられた1のアルファベットがパス情報の一例に相当する。例えば、「L」は、始点における先端部18の位置及び姿勢と、終点における先端部18の位置及び姿勢との間を直線により補完することを示している。「S」は、始点における先端部18の位置及び姿勢と、終点における先端部18の位置及び姿勢との間をS字状の曲線により補完することを示している。「J」は、始点における関節31,32,33,34,35,36の角度と、終点における関節31,32,33,34,35,36の角度との間を直線により補完することを示している。
【0037】
コマンドC5,C9において、「Move」の後に添えられた「Auto」は、コマンドがオートコマンドであることを示している。
【0038】
図4のように、ムーブコマンドとオートコマンドとを含む複数のコマンドによれば、ムーブコマンドに対応する既定区間(ムーブ区間)と、オートコマンドに対応する未定区間とを含む動作パスが表される。図3に戻り、パスプラン部112は、オートコマンドに対応する未定区間に対する追加パスを生成する。例えばパスプラン部112は、オートコマンドの経由点(到達点)経由点の直前の経由点(出発点)から、到達点までの追加パスを生成する。なお、オートコマンドが複数のコマンドの先頭にある場合等において、パスプラン部112は、ロボット3の先端部18の現在位置を出発点として追加パスを生成してもよい。
【0039】
制御部114は、呼出部111が呼び出したコマンドと、追加パスとに基づいてロボット3を動作させる。例えば制御部114は、複数のムーブコマンドにそれぞれ対応する複数のムーブ区間パスと、1以上のオートコマンドにそれぞれ対応する1以上の追加パスとを含む一連の動作パスに沿うようにロボット3を動作させる。
【0040】
制御部114は、複数のムーブ区間パス及び1以上の追加パスのそれぞれに完全に沿わせるようにロボット3を動作させなくてもよく、少なくとも、複数のムーブ区間パス及び1以上の追加パスのそれぞれに部分的に沿わせるようにロボット3を動作させればよい。例えば制御部114は、複数のムーブ区間パス及び1以上の追加パスのそれぞれに少なくとも部分的には沿いつつも、動作パスの1以上の経由点を通過しないようにロボット3を動作させてもよい。
【0041】
パスプラン部112は、1のコマンドに基づいて制御部114がロボット3を動作させている際に、ロボット3の周辺環境情報に基づいて追加パスを生成する。例えばパスプラン部112は、ムーブコマンドに基づき制御部114がロボット3を動作させている際に、ムーブコマンドより後のオートコマンドと周辺環境情報とに基づいて、オートコマンドに対応する未定区間における到達点までの追加パスを生成する。例えばパスプラン部112は、ムーブコマンドに対応するムーブ区間パスに沿って制御部114がロボット3を動作させている際に、追加パスを生成する。パスプラン部112は、オートコマンドの2以上前のムーブコマンドに対応するムーブ区間パスに沿って制御部114がロボット3を動作させている際に、追加パスを生成してもよい。
【0042】
パスプラン部112は、先行するオートコマンドに基づき制御部114がロボット3を動作させている際に、後続するオートコマンドと周辺環境情報とに基づいて、後続するオートコマンドに対応する未定区間に対する追加パスを生成してもよい。パスプラン部112は、後続するオートコマンドの2以上前のオートコマンドに基づき制御部114がロボット3を動作させている際に、後続するオートコマンドと周辺環境情報とに基づいて、後続するオートコマンドに対応する未定区間に対する追加パスを生成してもよい。
【0043】
パスプラン部112は、周辺環境情報に基づいて、追加パスを定める2以上の新たなムーブコマンドを生成してもよい。以下、追加パスを定める2以上の新たなムーブコマンドを、「2以上の追加コマンド」という。この場合、2以上の追加コマンドにそれぞれ対応する2以上のムーブ区間パスが連なったパスが、追加パスとなる。
【0044】
例えば図5に示すように、パスプラン部112は、モデルデータベース151と、干渉チェック部152と、パス生成部153とを有する。モデルデータベース151は、コンベヤ2及び複数のロボット3のモデル情報を記憶する。モデルデータベース151は、コンベヤ2及び複数のロボット3の周辺物体のモデル情報を更に記憶していてもよい。モデル情報は、構造及び大きさを特定する数値情報を含む。
【0045】
干渉チェック部152は、コンベヤ2及び複数のロボット3の動作をシミュレートして、ロボット3が周辺環境に存在する周辺物体及びロボット自体に干渉しないかを確認する。例えば干渉チェック部152は、モデルデータベース151が記憶するモデル情報と、環境情報データベース212が記憶する周辺環境情報とに基づいて追加パスに基づくロボット3の動作をシミュレートして、ロボット3が周辺物体に干渉しないかを確認する。干渉とは、シミュレーション空間において、ロボット3が周辺物体と重なることを意味する。シミュレーション空間において干渉が生じる場合、実空間においてはロボット3と周辺物体との衝突が生じることとなる。
【0046】
干渉チェック部152は、2以上の追加コマンドを含む2以上のコマンドに基づき制御部114が生成する一連の制御指令を算出し、算出した一連の制御指令に基づいてロボット3の動作をシミュレートしてもよい。
【0047】
パス生成部153は、追加パスを生成する。例えばパス生成部153は、まず出発点と到達点とを直線により補間して追加パスを仮生成し、仮生成した追加パスに基づくロボット3の動作を干渉チェック部152にシミュレートさせる。干渉チェック部152によるシミュレートの結果、ロボット3と周辺物体との干渉があると判定された場合、パス生成部153は、周辺物体と干渉しない経由点をランダムに生成し、出発点と到達点との間に追加する。以後、出発点と、生成した1以上の経由点と、到達点とを結ぶ追加パスによりロボット3と周辺物体との干渉が生じなくなるまで、経由点の生成と追加を繰り返す。その後、パス生成部153は、追加した1以上の経由点と、到達点とをそれぞれ経由点とする2以上の追加コマンドを生成する。
【0048】
このように、パスプラン部112が生成した追加パスのうち、ロボット3が周辺物体に干渉しないことが干渉チェック部152により確認される。このため、制御部114は、ロボット3が周辺物体に干渉しない場合に、パスプラン部112が生成した追加パスに基づいてロボット3を動作させることとなる。
【0049】
図3に戻り、パスプラン部112は、生成した2以上の追加パスをパス保存部113に記憶させる。例えばパスプラン部112は、生成した2以上の追加コマンドをパス保存部113に記憶させる。パスプラン部112は、コントローラ100と通信可能なシミュレーション装置に追加パスを生成させてもよい。例えばパスプラン部112は、出発点と到達点とを指定して、追加パスの生成をシミュレーション装置に要求してもよい。追加パスの生成の要求を受けたシミュレーション装置は、周辺環境情報に基づいて追加パスを生成する。このように、周辺環境情報に基づく追加パスの生成を、他の装置に実行させることも、周辺環境情報に基づいて追加パスを生成することに含まれる。
【0050】
パス保存部113が2以上の追加コマンドを記憶すると、呼出部111が2以上の追加コマンドを順次呼び出す。制御部114は、呼出部111が呼び出した2以上の追加コマンドに基づいてロボット3を動作させる。例えば制御部114は、2以上の追加コマンドにそれぞれ対応する2以上のムーブ区間パスのそれぞれに、少なくとも部分的に沿わせるようにロボット3を動作させる。
【0051】
パスプラン部112は、呼出部111がオートコマンドを呼び出した後に、オートコマンドと周辺環境情報とに基づいて、2以上の追加コマンドを生成してもよい。例えばパスプラン部112は、呼出部111が呼び出したオートコマンドの経由点(到達点)の直前の経由点(開始点)から到達点までの追加パスを生成する。
【0052】
呼出部111は、呼び出した2以上のコマンドをコマンド保存部115に記憶させてもよい。呼出部111は、2以上の追加コマンドを含む2以上のコマンドをコマンド保存部115に記憶させてもよい。例えば呼出部111は、オートコマンドを呼び出した場合には、オートコマンドに基づきパスプラン部112がパス保存部113に記憶させた2以上の追加コマンドをパス保存部113から呼び出してコマンド保存部115に記憶させてもよい。
【0053】
制御部114は、コマンド保存部115が記憶する2以上のコマンドに基づいてロボット3を動作させてもよい。例えば制御部114は、コマンド保存部115が記憶する2以上のコマンドに基づいてロボット3の一連の制御指令を生成し、一連の制御指令に基づいてロボット3を動作させてもよい。例えば制御部114は、コマンド保存部115が記憶する2以上のコマンドに基づいて、加減速を含む一連の速度パターンを生成し、一連の速度パターンに基づいてロボット3を動作させてもよい。例えば制御部114は、先端部18の位置及び姿勢に対する一連の速度パターンに基づく逆運動学演算により、関節31,32,33,34,35,36の目標角度を算出することと、関節31,32,33,34,35,36の角度を目標角度に追従させることとを、所定の制御サイクルで繰り返し実行する。
【0054】
パスプラン部112は、オートコマンドの直前のムーブコマンドに対応する動作が完了する前に追加パスの生成が完了するタイミングで、追加パスの生成を開始してもよい。例えばパスプラン部112は、オートコマンドの直前のムーブコマンドに対応する動作が完了する前に、2以上の追加コマンドをパス保存部113に格納し得るタイミングで、追加パスを生成してもよい。以下、オートコマンドの直前のムーブコマンドに対応する動作を、「先行動作」という。
【0055】
例えばパスプラン部112は、先行動作の完了予測タイミングから所定の生成余裕時間前のタイミングにて、追加パスの生成を開始してもよい。生成余裕時間は、追加パスの生成に要する時間以上となるように定められている。生成余裕時間は、追加パスの生成に要する時間と、上記制御指令の生成に要する時間との合計時間以上となるように定められていてもよい。
【0056】
先行動作の完了予測タイミングの具体例としては、先行動作からオートコマンドに基づく動作に移行するタイミング、先行動作からオートコマンドに基づく動作に移行する前の減速開始タイミング、等が挙げられる。
【0057】
呼出部111は、コマンド保存部115が記憶する2以上のコマンドに対応する動作の予想時間が、少なくともパスプラン部112による追加パスの生成に要する時間よりも長くなるように、コマンド保存部115に記憶させるコマンドの数を変更してもよい。例えば呼出部111は、上記予測時間が追加パスの生成に要する時間よりも短い場合に、コマンドの呼び出しサイクルを短くして、コマンド保存部115が記憶するコマンドの数を増やしてもよい。
【0058】
図6は、ロボットの動作期間と、追加パスの生成期間との関係を表すタイミングチャートであり、横軸が時間の経過を表す。図6に示すように、パスプラン部112は先行動作の完了予測タイミングt1よりも、生成余裕時間T11前の開始タイミングt2において、追加パスの生成を開始する。生成余裕時間T11は、追加パスの生成時間T13以上である。このため、生成余裕時間T11において追加パスの生成を開始すれば、先行動作が完了する完了予測タイミングt1までに追加パスの生成を完了させることができる。
【0059】
図6においては、コマンド保存部115が記憶する2以上のコマンドに対応する動作の予想時間T12が、生成余裕時間T11よりも長い。このため、オートコマンドがフェッチされた後、先行動作が完了するまでの時間に余裕があり、完了予測タイミングt1よりも生成余裕時間T11前の開始タイミングt2において追加パスの生成を開始することができる。
【0060】
仮に、予想時間T12が生成余裕時間T11よりも短い場合には、オートコマンドがフェッチされるタイミングで、完了予測タイミングt1よりも生成余裕時間T11前の開始タイミングt2が既に過去の時間となるため、完了予測タイミングt1よりも前に追加パスの生成時間を十分に確保することができない。このような状況を回避するために、呼出部111は、予想時間T12が生成余裕時間T11よりも長くなるように、コマンド保存部115に記憶させるコマンドの数を変更する。
【0061】
図3に戻り、オートコマンドが上記条件情報を含む場合、パスプラン部112は、条件情報に更に基づいて追加パスを生成してもよい。例えばパスプラン部112は、条件情報が表す生成条件を追加パスが満たすように、周辺環境情報に基づく追加パスの生成を実行してもよい。
【0062】
複数のコマンドは、ムーブコマンド及びオートコマンドの他に、経由点をシフトさせるシフトコマンドを含んでもよい。パスプラン部112は、呼出部111が、シフトコマンドの後にオートコマンドを呼び出した場合に、オートコマンドの経由点(到達点)をシフトコマンドに基づきシフトさせたシフト到達点までの追加パスを生成する。複数のコマンドは、シフトコマンドによる経由点のシフトをオフにするシフトオフコマンドを更に含んでいてもよい。パスプラン部は、呼出部111が、シフトコマンドの後、且つシフトオフコマンドの前にオートコマンドを呼び出した場合に、オートコマンドの到達点をシフトコマンドに基づきシフトさせたシフト到達点までの追加パスを生成してもよい。
【0063】
コントローラ100は、タスク保存部121と、タスク選択部123とを更に備えてもよい。タスク保存部121は、2以上のムーブコマンドをそれぞれ含む複数のタスクを保存する。タスク選択部123は、タスク保存部121に保存された複数のタスクのうち、1のタスクを選択する。
【0064】
コントローラ100がタスク保存部121及びタスク選択部123を備える場合、呼出部111は、タスク選択部123が選択した1のタスクから2以上のコマンドを順次呼び出してもよい。呼出部111は、タスク選択部123が選択した1のタスクに含まれるムーブコマンドを呼び出す前に、オートコマンドを呼び出してもよい。例えば呼出部111は、タスク選択部123が選択した1のタスクの最初のムーブコマンドを呼び出す前に、オートコマンドを呼び出してもよい。タスク選択部123は、先に選択したタスクに含まれる2以上のコマンドが呼出部111により呼び出されたタイミングで、次のタスクを選択してもよい。
【0065】
タスク保存部121は、予め複数のタスクを保存していてもよいし、必要に応じ上位装置(例えばクラウドコンピュータ等)から複数のタスクを取得し、取得した複数のタスクを保存してもよい。タスク選択部123は、タスク保存部121が保存する複数のタスクから、予め定められた順序で1のタスクを選択してもよく、ロボット3の周辺環境情報に基づいて、周辺環境に適したタスクを自律的に選択してもよい。
【0066】
タスク選択部123が、複数のタスクから予め定められた順序で1のタスクを選択する場合、コントローラ100はフロー情報取得部127と、フロー保存部122とを更に有してもよい。フロー情報取得部127は、ユーザインタフェースへのユーザ入力等に基づいて、複数のタスクの実行順序を取得し、フロー保存部122に記憶させる。タスク選択部123は、フロー保存部122が記憶する実行順序、複数のタスクから1のタスクを選択する。
【0067】
複数のタスクの少なくともいずれかは、2以上のムーブコマンドの前にオートコマンドを含んでいてもよい。例えば、複数のタスクのそれぞれが、2以上のムーブコマンドの前にオートコマンドを含んでいてもよい。図7は、タスク選択部123の記憶内容を例示する模式図である。図7においては、タスク選択部123が複数のタスク141を記憶している。複数のタスク141のそれぞれは、2以上のムーブコマンドと、オートコマンドとを含んでおり、オートコマンドは2以上のムーブコマンドの前(例えば先頭)に配置されている。このように、複数のタスクのそれぞれがオートコマンドを含む場合、呼出部111は、タスク選択部123が選択した1のタスクからオートコマンドを呼び出す。
【0068】
図3に戻り、コントローラ100は、オートコマンド配置部124を更に有してもよい。オートコマンド配置部124は、1のタスクにおいて最初の経由点がムーブコマンドにより定められている場合に、最初の経由点を定めるムーブコマンドをオートコマンドに置き換える。オートコマンド配置部124は、最初の経由点を定めるムーブコマンドの前にオートコマンドを挿入してもよい。例えば、オートコマンド配置部124は、最初の経由点を定めるムーブコマンドの前に、最初の経由点を定めるオートコマンドを挿入してもよい。オートコマンド配置部124によれば、オートコマンドを含まない既存のタスクを、オートコマンドを含むタスクに変換して活用することができる。
【0069】
図8に示すように、コントローラ100は、コマンド生成部131と、タスク生成部132とを更に有してもよい。コマンド生成部131は、2以上のムーブコマンドを指定するタスク情報に基づいて、2以上のムーブコマンドの前に実行されるオートコマンドを生成する。例えばコマンド生成部131は、タスク情報をユーザインタフェースへのユーザ入力に基づき取得する。例えばコマンド生成部131は、2以上のムーブコマンドに基づいて、2以上のムーブコマンドに対応する動作への移行動作における到達点(タスクの開始点)を特定し特定した到達点の情報を含むオートコマンドを生成する。
【0070】
タスク生成部132は、生成されたオートコマンドと、タスク情報とに基づいてタスクを生成する。例えばタスク生成部132は、タスク情報が指定する2以上のムーブコマンドの前に、コマンド生成部131が生成したオートコマンドを挿入してタスクを生成する。コマンド生成部131及びタスク生成部132によれば、オートコマンドを含むタスクの生成作業を簡素化することができる。また、オートコマンドの配置漏れに伴うタスク間の動作不良を防ぐことも可能となる。
【0071】
呼出部111は、1のタスクにおいて最初の経由点がムーブコマンドにより定められている場合に、最初の経由点を定めるムーブコマンドを、最初の経由点を到達点とするオートコマンドに読み替えるように構成されていてもよい。この場合、オートコマンドを含まない既存のタスクを書き換えることなく残しつつ、1のタスクの前に追加パスを補うことができる。
【0072】
図3に戻り、コントローラ100は、環境変化チェック部125を更に有してもよい。環境変化チェック部125は、周辺環境情報に基づいて、パスプラン部112が追加パスを生成する前後における周辺環境情報の変化がないかを確認する。例えば環境変化チェック部125は、上位コントローラ200の環境情報データベース212(後述)が記憶する周辺環境情報に基づいて、周辺環境情報の変化がないかを確認する。
【0073】
一例として、環境変化チェック部125は、周辺環境情報の変化の有無を環境フラグによって表す。例えば環境変化チェック部125は、パスプラン部112が追加パスを生成する際に、環境フラグを「オフ」にし、環境情報データベース212から周辺環境情報を取得する。以下、このタイミングで取得する周辺環境情報を「基準情報」という。その後、環境変化チェック部125は、環境情報データベース212における周辺環境情報が更新されると、更新後の周辺環境情報と基準情報とを比較し、更新後の周辺環境情報と基準情報との間に差異を認識した場合に、環境フラグを「オフ」から「オン」に変更する。
【0074】
なお、周辺環境情報には、追加パスに沿ったロボット3の動作に影響を及ぼさない項目も含まれ得る。環境変化チェック部125は、周辺環境情報のうち、追加パスに沿ったロボット3の動作に影響を及ぼし得る項目として予め指定された項目のみに基づいて、周辺環境情報の変化の有無を確認してもよい。
【0075】
制御部114は、パスプラン部112が追加パスを生成する前後における周辺環境情報の変化がない場合に、追加パスに基づいてロボット3を動作させてもよい。例えば制御部114は、追加パスに基づいてロボット3を動作させる前に、環境フラグを確認し、環境フラグが「オフ」である場合に、追加パスに基づいてロボット3を動作させてもよい。
【0076】
制御部114は、パスプラン部112が追加パスを生成する前後における周辺環境情報の変化がある場合に、追加パスに基づくロボット3の動作を中止させてもよい。例えば制御部114は、追加コマンドに基づいてロボット3を動作させる前に環境フラグを確認し、環境フラグが「オン」である場合に、コマンド保存部115の内容をクリア(消去)してもよい。これにより、生成済みの速度パターンに続く速度パターンが生成されなくなるので、生成済みの速度パターンに基づく動作が完了した時点で、ロボット3の動作は一時停止する場合もある。
【0077】
パスプラン部112は、パスプラン部112が追加パスを生成する前後における周辺環境情報の変化がある場合に、変化後の周辺環境情報に基づいて追加パスを再生成してもよい。例えばパスプラン部112は、環境フラグが「オン」であることを制御部114が認識した場合に、追加コマンドに対応するオートコマンドと、変化後の周辺環境情報とに基づいて追加パスを再生成してもよい。例えばパスプラン部112は、再生成した2以上の追加コマンドをパス保存部113に記憶させる。その後、再生成された2以上の追加コマンドを呼出部111が順次読み出してコマンド保存部115に記憶させる。クリアされたコマンド保存部115に、再生成された2以上の追加コマンドが格納されると、ロボット3の動作が再開される。
【0078】
なお、追加パスの生成は、少なくとも複数のコマンドに基づく動作をロボット3が開始した後に行われればよい。パスプラン部112は、オートコマンドの経由点の一つ前の経由点が確定したタイミングで直ちに追加パスを生成してもよい。
【0079】
オートコマンドの経由点の一つ前の経由点が確定したタイミングで直ちに追加パスを生成する場合、追加パスの生成から、追加パスに基づくロボット3の動作開始までの待ち時間が長くなる可能性がある。待ち時間以内に追加パスが再生成される場合、ロボット3の動作を停止させることなく、再生成された追加パスによってロボット3の動作を継続させることができる。待ち時間に余裕がある場合に、環境変化チェック部125は、追加パスが再生成される度に周辺環境情報の変化の有無を確認し、パスプラン部112は周辺環境情報が変化する度に追加パスを再生成してもよい。
【0080】
コントローラ100は、ステータス送信部126を更に有してもよい。ステータス送信部126は、制御部114によるロボット3の制御結果に基づいて、ロボット3のステータスを表すステータス情報を上位コントローラ200に送信する。ステータス情報は、例えば関節31,32,33,34,35,36の現在の角度を含む。
【0081】
〔上位コントローラ〕
図9は、上位コントローラ200の構成を例示するブロック図である。図9に示すように、上位コントローラ200は、機能ブロックとして、情報収集部211と、環境情報データベース212と、システム制御部213と、プログラム保存部214とを有する。情報収集部211は、周辺環境情報を収集して環境情報データベース212に記憶させる。
【0082】
情報収集部211は、少なくともパスプラン部112が追加パスを生成する前後に、周辺環境情報を更新する。例えば情報収集部211は、所定の更新サイクルにて周辺環境情報を繰り返し収集し、収集結果を時系列で環境情報データベース212に蓄積する。例えば情報収集部211は、コントローラ100のステータス送信部126から受信したステータス情報に基づいて周辺環境情報を収集してもよく、更にカメラなどの環境センサ4(図1参照)に基づいて周辺環境情報を収集してもよい。
【0083】
プログラム保存部214は、一連の作業を複数のロボット3に協働して遂行させるように予め定められたシステムプログラムを記憶する。例えばシステムプログラムは、複数のロボット3のそれぞれに対する一連の作業指令を含む。システムプログラムは、一連の作業指令の少なくともいずれかについての出力条件を含んでいてもよい。
【0084】
システム制御部213は、一連の作業を複数のロボット3に協働して遂行させるように、複数のロボット3のそれぞれに作業指令を出力する。例えばシステム制御部213は、システムプログラムに基づいて一連の作業指令を複数のロボット3のそれぞれに順次出力する。一連の作業指令のいずれかについて出力条件が定められている場合、システム制御部213は、環境情報データベース212の周辺環境情報が出力条件を満たした場合に、出力条件に対応する作業指令を出力する。
【0085】
作業指令の具体例としては、上述した複数のタスクのいずれか一つ実行指令、フロー保存部122が記憶する実行順序による複数のタスクの実行指令等が挙げられる。
【0086】
図10は、コントローラ100及び上位コントローラ200のハードウェア構成を例示するブロック図である。コントローラ100は、回路190を有する。回路190は、1以上のプロセッサ191と、メモリ192と、ストレージ193と、通信ポート194と、ドライバ回路195とを有する。ストレージ193は、不揮発性の記憶媒体であり、複数のコマンドを順次呼び出すことと、追加パスを生成することと、呼び出したコマンドと、追加パスとに基づいてロボット3を動作させることと、を含み、1のコマンドに基づいてロボット3を動作させている際に、周辺環境情報に基づいて追加パスを生成する制御方法をコントローラ100に実行させるためのプログラムを記憶する。例えばストレージ193は、上述した各機能ブロックをコントローラ100に構成させるためのプログラムを記憶する。ストレージ193は、フラッシュメモリ、又はハードディスク等の内蔵型の記憶媒体であってもよく、USBメモリ又は光ディスク等の可搬型の記憶媒体であってもよい。
【0087】
メモリ192は、ストレージ193からロードされたプログラムを一時的に記憶する。メモリ192の具体例としては、ランダムアクセスメモリ等が挙げられる。1以上のプロセッサ191は、メモリ192にロードされたプログラムを実行することにより、上述した各機能ブロックを構成する。1以上のプロセッサ191は、演算結果を適宜メモリ192に記憶させる。
【0088】
通信ポート194は、制御の同期通信用の通信ポートであり、1以上のプロセッサ191からの要求に基づいて上位コントローラ200との間で通信を行う。ドライバ回路195は、1以上のプロセッサ191からの要求に基づいて、関節31,32,33,34,35,36に駆動電力を供給する。ユーザインタフェース196は、1以上のプロセッサ291からの要求に基づいて、ユーザとのコミュニケーションを行う。例えばユーザインタフェース196は、表示デバイスと、入力デバイスとを含む。表示デバイスの具体例としては、液晶モニタ又は有機EL(Electro-Luminescence)モニタ等が挙げられる。入力デバイスの具体例としては、キーボード、マウス、又はキーパッド等が挙げられる。入力デバイスは、所謂タッチパネルとして表示デバイスと一体化されていてもよい。
【0089】
上位コントローラ200は、回路290を有する。回路290は、1以上のプロセッサ291と、メモリ292と、ストレージ293と、通信ポート294と、入出力ポート295と、通信ポート296とを有する。ストレージ293は、不揮発性の記憶媒体であり、上述した各機能ブロックを上位コントローラ200に構成させるためのプログラムを記憶している。ストレージ293は、フラッシュメモリ、又はハードディスク等の内蔵型の記憶媒体であってもよく、USBメモリ又は光ディスク等の可搬型の記憶媒体であってもよい。
【0090】
メモリ292は、ストレージ293からロードされたプログラムを一時的に記憶する。メモリ292の具体例としては、ランダムアクセスメモリ等が挙げられる。1以上のプロセッサ291は、メモリ292にロードされたプログラムを実行することにより、上述した各機能ブロックを構成する。1以上のプロセッサ291は、演算結果を適宜メモリ292に記憶させる。
【0091】
通信ポート294は、制御の同期通信用の通信ポートであり、1以上のプロセッサ291からの要求に基づいてコントローラ100との間で通信を行う。入出力ポート295は、1以上のプロセッサ291からの要求に基づいて、環境センサ4等からの情報を取得する。通信ポート296は、制御の同期通信とは別系統の通信用の通信ポートであり、1以上のプロセッサ291からの要求に基づいて、シミュレーション装置300との間で同期通信を行う。このハードウェア構成において、コントローラ100は、上位コントローラ200を介してシミュレーション装置300と通信を行うこととなる。
【0092】
以上に示したハードウェア構成はあくまで一例なので、適宜変更可能である。例えば、制御システムCS1は、必ずしもコントローラ100と、上位コントローラ200とに分かれていなくてもよい。例えばコントローラ100が上位コントローラ200に組み込まれていてもよい。また、制御システムCS1は、コントローラ100及び上位コントローラ200に加えて、上述のシミュレーション装置を更に備えていてもよい。この場合、コントローラ100は、周辺環境情報に基づく追加パスの生成をシミュレーション装置に実行させるように構成されていてもよい。
【0093】
〔制御手順〕
続いて、制御方法の一例として、制御システムCS1が実行する制御手順を具体的に例示する。この手順は、複数のコマンドを順次呼び出すことと、追加パスを生成することと、コマンドと、追加パスとに基づいてロボット3を動作させることと、を含み、1のコマンドに基づいてロボット3を動作させている際に、周辺環境情報に基づいて追加パスを生成する。制御システムCS1による制御手順は、コントローラ100が実行するタスク生成手順、オートコマンド配置手順、及びプログラムの生成手順と、上位コントローラ200が実行するシステム制御手順と、コントローラ100が実行するコマンド呼出手順、環境変化チェック手順、及びロボットの制御手順とを含み得る。以下、各手順を詳細に例示する。
【0094】
(オートコマンド配置手順)
図11に示すように、コントローラ100は、ステップS01,S02,S03を実行する。ステップS01では、オートコマンド配置部124が、タスク保存部121が記憶する複数のタスクから、オートコマンドを含まない1のタスクを選択する。ステップS02では、オートコマンド配置部124が、1のタスクにおいて最初の経由点がムーブコマンドにより定められている場合に、最初の経由点を定めるムーブコマンドをオートコマンドに置き換える。オートコマンド配置部124は、最初の経由点を定めるムーブコマンドの前にオートコマンドを挿入してもよい。
【0095】
ステップS03では、オートコマンドを含まない全てのタスクに対してオートコマンドの配置が完了したか否かをオートコマンド配置部124が確認する。ステップS03において、オートコマンドを含まないタスクが残っていると判定した場合、コントローラ100は処理をステップS01に戻す。ステップS03において、オートコマンドを含まない全てのタスクに対してオートコマンドの配置が完了したと判定した場合、コントローラ100は処理を完了する。
【0096】
(タスク生成手順)
図12に示すように、コントローラ100は、ステップS11,S12,S13,S14を実行する。ステップS11では、コマンド生成部131が、2以上のムーブコマンドを指定するタスク情報を取得する。コマンド生成部131は、ユーザインタフェース196からタスク情報を取得してもよい。
【0097】
ステップS12では、コマンド生成部131が、取得したタスク情報に基づいて、2以上のムーブコマンドの前に実行されるオートコマンドを生成する。例えばコマンド生成部131は、2以上のムーブコマンドに基づいて、2以上のムーブコマンドに対応する動作への移行動作における到達点(タスクの開始点)の情報を含むオートコマンドを生成する。
【0098】
ステップS13では、タスク生成部132が、生成されたオートコマンドと、タスク情報とに基づいてタスクを生成する。例えばタスク生成部132は、タスク情報が指定する2以上のムーブコマンドの前に、コマンド生成部131が生成したオートコマンドを挿入してタスクを生成する。ステップS14では、タスク生成部132が、生成したタスクをタスク保存部121に記憶させる。以上でタスクの生成手順が完了する。
【0099】
(プログラムの生成手順)
図13に示すように、コントローラ100は、ステップS21,S22を実行する。ステップS21では、フロー情報取得部127が、複数のタスクの実行順序を取得する。ステップS22では、フロー情報取得部127が、実行順序をフロー保存部122に記憶させる。以上でロボット3の動作プログラムの生成が完了する。
【0100】
(システム制御手順)
図14に示すように、上位コントローラ200は、ステップS31,S32,S33を実行する。ステップS31では、システム制御部213が、プログラム保存部214のシステムプログラムに基づいて、次にコントローラ100に出力すべき作業指令を特定する。以下、特定した作業指令を、出力予定の作業指令という。ステップS32では、情報収集部211が、周辺環境情報を収集し、収集した1セットの周辺環境情報に時刻情報を付与して環境情報データベース212に記憶させる。ステップS33では、出力予定の作業指令に出力条件が付与されているかをシステム制御部213が確認する。
【0101】
ステップS33において、出力予定の作業指令に出力条件が付与されていると判定した場合、上位コントローラ200はステップS34を実行する。ステップS34では、周辺環境情報が出力条件を満たしているか否かをシステム制御部213が確認する。ステップS34において、周辺環境情報が出力条件を満たしていないと判定した場合、上位コントローラ200はステップS35を実行する。ステップS35では、情報収集部211が更新サイクルの経過を待機する。その後、上位コントローラ200は処理をステップS32に戻す。以後、周辺環境情報が出力条件を満たすまでは、更新サイクルごとに周辺環境情報の収集が繰り返される。
【0102】
ステップS34において、周辺環境情報が出力条件を満たしていると判定した場合、上位コントローラ200はステップS36,S37を実行する。ステップS33において、出力予定の作業指令に出力条件が付与されていないと判定した場合も、上位コントローラ200はステップS36,S37を実行する。ステップS36では、システム制御部213が、出力予定の作業指令をコントローラ100に送信する。ステップS37では、システム制御部213が更新サイクルの経過を待機する。その後、コントローラ100は処理をステップS31に戻す。上位コントローラ200は以上の処理を繰り返し実行する。
【0103】
(コマンド呼出手順)
図15に示すように、コントローラ100は、まずステップS41,S42,S43を実行する。ステップS41では、タスク選択部123が、タスク保存部121に保存された複数のタスクのうち、1のタスクを選択する。例えばタスク選択部123は、フロー保存部122が記憶する実行順序、複数のタスクから1のタスクを選択する。ステップS42では、呼出部111が、上記1のタスクから1のコマンドを呼び出す。ステップS43では、上記1のコマンドがムーブコマンドであるか否かを呼出部111が確認する。
【0104】
ステップS43において、1のコマンドがムーブコマンドではないと判定した場合、コントローラ100はステップS44を実行する。ステップS44では、上記1のコマンドがオートコマンドであるか否かを呼出部111が確認する。ステップS44において、1のコマンドがオートコマンドではないと判定した場合、コントローラ100は処理をステップS42に戻す。
【0105】
ステップS44において、1のコマンドがオートコマンドであると判定した場合、コントローラ100はステップS45,S46,S47を実行する。ステップS45では、パスプラン部112が、追加パスの生成開始タイミングを待機する。例えばパスプラン部112は、先行動作の完了予測タイミングから所定の生成余裕時間前のタイミングを待機する。ステップS46では、パスプラン部112が、オートコマンドの到達点の直前の経由点(出発点)から、オートコマンドの到達点までの追加パスを生成し、生成した追加パスをパス保存部113に記憶させる。ステップS47では、環境変化チェック部125が、環境フラグを「オフ」にする(クリアする)。
【0106】
次に、コントローラ100はステップS53を実行する。ステップS53では、パスプラン部112が、呼出部111によるコマンドの呼出先を、タスク保存部121からパス保存部113に変更する。その後、コントローラ100は処理をステップS42に戻す。ステップS42においては、パス保存部113からコマンドが呼び出されることとなる。
【0107】
ステップS43において、1のコマンドがムーブコマンドであると判定した場合、コントローラ100はステップS54,S55を実行する。ステップS54では、呼出部111が、呼び出したコマンドをコマンド保存部115に記憶させる。ステップS55では、呼び出したコマンドが追加コマンドであるか否かを呼出部111が確認する。
【0108】
ステップS55において、呼び出したコマンドが追加コマンドであると判定した場合、コントローラ100はステップS56を実行する。ステップS56では、パス保存部113が記憶する全ての追加コマンドの呼出が完了したか否かを呼出部111が確認する。
【0109】
ステップS56において、全ての追加コマンドの呼出が完了したと判定した場合、コントローラ100はステップS57を実行する。ステップS57では、呼出部111が、コマンドの呼出先を、パス保存部113からタスク保存部121に変更する。
【0110】
次に、コントローラ100はステップS58を実行する。ステップS56において、まだ呼び出していない追加コマンドが残っていると判定した場合、コントローラ100はステップS57を実行することなくステップS58を実行する。ステップS55において、呼び出したコマンドが追加コマンドではないと判定した場合、コントローラ100はステップS56,S57を実行することなくステップS58を実行する。ステップS58では、1のタスクに含まれる全てのコマンドの呼出が完了したか否かを呼出部111が確認する。
【0111】
ステップS58において、1のタスクにまだ呼び出していないコマンドが残っていると判定した場合、コントローラ100は処理をステップS42に戻す。これにより、1のタスクからのコマンドの呼出が継続される。ステップS58において、1のタスクに含まれる全てのコマンドの呼出が完了したと判定した場合、コントローラ100は処理をステップS41に戻す。これにより、次のタスクが選択される。コントローラ100は、以上の手順を繰り返し実行する。なお、図15は、複数のコマンドがムーブコマンド及びオートコマンドのいずれでもないコマンド(例えば上述のシフトコマンド)である場合の処理を省略している。複数のコマンドがムーブコマンド及びオートコマンドのいずれでもないコマンドを含む場合には、そのコマンドに対する処理が適宜追加される。
【0112】
図16は、ステップS46において追加パスを生成する手順を例示するフローチャートである。図16に示すように、シミュレーション装置300は、まずステップS92,S93を実行する。ステップS92では、パスプラン部112が、上記出発点と到達点とを直線により補間して追加パスを仮生成する。ステップS93では、追加パスに基づくロボット3の動作を干渉チェック部152がシミュレートし、ロボット3と周辺物体との干渉がないか否かを確認する。
【0113】
ステップS93において、干渉があると判定した場合、コントローラ100はステップS94を実行する。ステップS94では、パスプラン部112が、周辺物体と干渉しない経由点をランダムに生成して出発点と到達点との間に挿入し、追加パスを修正する。その後、コントローラ100は処理をステップS93に戻す。以後、追加パスによりロボット3と周辺物体との干渉が生じなくなるまで、経由点の生成と追加とが繰り返される。
【0114】
ステップS93において、干渉がないと判定した場合、コントローラ100はステップS95を実行する。ステップS95では、パスプラン部112が、追加した1以上の経由点と、終点とをそれぞれ経由点とする複数の追加コマンドを生成する。以上でパスの生成手順が完了する。
【0115】
(環境変化チェック手順)
図17に示すように、コントローラ100は、ステップS61,S62を実行する。ステップS61では、環境変化チェック部125が、上記基準情報として、環境情報データベース212から周辺環境情報を取得する。ステップS62では、環境変化チェック部125が、上述したコマンド呼出手順において環境フラグをクリアしたか否かを確認する。
【0116】
ステップS62において、環境フラグをクリアしていないと判定した場合、コントローラ100は、ステップS63を実行する。ステップS63では、環境フラグの更新サイクルが経過したか否かを確認する。ステップS63において、更新サイクルが経過していないと判定した場合、コントローラ100は処理をステップS62に戻す。以後、環境フラグをクリアするか、更新サイクルが経過するまでは、ステップS62,S63が繰り返される。
【0117】
ステップS63において、更新サイクルが経過したと判定した場合、コントローラ100はステップS64,S65を実行する。ステップS64では、環境変化チェック部125が、環境情報データベース212から周辺環境情報を取得する。ステップS65では、環境変化チェック部125が、ステップS64で取得した周辺環境情報と、基準情報とを比較して、周辺環境情報に変化があるか否かを確認する。
【0118】
ステップS65において、周辺環境情報に変化はないと判定した場合、コントローラ100は処理をステップS62に戻す。ステップS65において、周辺環境情報に変化があると判定した場合、コントローラ100はステップS66を実行する。ステップS66では、環境変化チェック部125が、環境フラグを「オフ」から「オン」に変更する。その後、コントローラ100は処理をステップS62に戻す。
【0119】
ステップS62において、環境フラグをクリアしたと判定した場合、コントローラ100はステップS67を実行する。ステップS67では、環境変化チェック部125が環境情報データベース212から周辺環境情報を取得し、取得した周辺環境情報によって基準情報を更新する。その後、コントローラ100は処理をステップS62に戻す。以後、環境フラグのクリアに応じて基準情報を更新しつつ、更新サイクルごとに周辺環境情報の変化の有無を確認することが繰り返される。
【0120】
(ロボットの制御手順)
図18に示すように、コントローラ100は、まずステップS71,S72を実行する。ステップS71では、制御部114が、コマンド保存部115から1のコマンドを読み出す。ステップS72では、1のコマンドが追加コマンドであるか否かを制御部114が確認する。
【0121】
ステップS72において、1のコマンドが追加コマンドではないと判定した場合、コントローラ100はステップS74,S75を実行する。ステップS74では、制御部114が、1のコマンドと、先に読み出した1以上のコマンドとを含む2以上のコマンドに基づく一連の制御指令(例えば速度パターン)を生成する。ステップS75では、制御部114が、ステップS74で生成した一連の制御指令に基づくロボット3の制御を開始する。その後、コントローラ100は処理をステップS71に戻す。
【0122】
ステップS72において、1のコマンドが追加コマンドであると判定した場合、コントローラ100はステップS73を実行する。ステップS73では、環境フラグがオフであるか否かを制御部114が確認する。ステップS73において、環境フラグがオフであると判定した場合、コントローラ100は処理をステップS74に進める。
【0123】
ステップS73において、環境フラグがオンであると判定した場合、コントローラ100はステップS81,S82,S83を実行する。ステップS81では、制御部114が、コマンド保存部115の内容をクリア(消去)する。ステップS82では、パスプラン部112が、周辺環境情報に基づいて、追加コマンドに対応するオートコマンドのタイミングを待機する。ステップS46では、パスプラン部112が、オートコマンドの到達点の直前の経由点(出発点)から、オートコマンドの到達点までの追加パスを再生成し、生成した追加パスをパス保存部113に記憶させる。ステップS83では、環境変化チェック部125が、環境フラグを「オフ」にする(クリアする)。
【0124】
次に、コントローラ100はステップS86を実行する。ステップS86では、パスプラン部112が、呼出部111によるコマンドの呼出先を、タスク保存部121からパス保存部113に変更する。これにより、再生成された2以上の追加コマンドが、上述したコマンド呼出手順において呼出部111により順次呼び出され、コマンド保存部115に保存されることとなる。その後、コントローラ100は処理をステップS71に戻す。コントローラ100は以上の処理を繰り返し実行する。
【0125】
〔まとめ〕
ロボットシステム1は、未定区間を含むロボット3の動作パスを表す複数のコマンドを順次呼び出す呼出部111と、未定区間に対する追加パスを生成するパスプラン部112と、呼出部111が呼び出したコマンドと、追加パスとに基づいてロボット3を動作させる制御部114と、を備え、パスプラン部112は、1のコマンドに基づいて制御部114がロボット3を動作させている際に、ロボット3の周辺環境情報に基づいて追加パスを生成する。
【0126】
このロボットシステム1によれば、複数のコマンドに基づく動作をロボット3が開始した後の周辺環境情報に基づいて追加パスが生成され、生成された追加パスに基づきロボット3による動作が継続される。従って、周辺環境の変化、作業内容の変化、及び作業手順の変化等に柔軟に対応した動作をロボット3に実行させることができる。以下、複数のコマンドに基づく動作をロボット3が開始した後に追加パスを生成することを、「オンラインパス生成」という。
【0127】
複数のコマンドは、動作パスの経由点の情報を含むムーブコマンドと、未定区間の到達点となる動作パスの経由点の情報を含むオートコマンドと、を含み、パスプラン部112は、ムーブコマンドに基づき制御部114がロボット3を動作させている際に、ムーブコマンドより後のオートコマンドと周辺環境情報とに基づいて、未定区間における到達点までの追加パスを生成してもよい。予め定めた動作パスでロボット3を動作させる区間と、パスプラン部112が生成した追加パスでロボット3を動作させる区間とを容易に指定することが可能となる。既存のロボット3の動作プログラムは、ムーブコマンドを含む複数のコマンドの列挙により記述されている場合がある。オートコマンドと周辺環境情報とに基づいて追加パスを生成する構成によれば、既存の動作プログラムを利用して、オンラインパス生成を含む動作プログラムを容易に生成することができる。
【0128】
2以上のムーブコマンドをそれぞれ含む複数のタスクを保存するタスク保存部121と、タスク保存部121に保存された複数のタスクのうち、1のタスクを選択するタスク選択部123と、を更に備え、呼出部111は、タスク選択部123が選択した1のタスクに含まれるムーブコマンドを呼び出す前に、オートコマンドを呼び出してもよい。個別に生成された複数のタスクに基づいて、ロボット3を容易に動作させることができる。
【0129】
複数のタスクの少なくともいずれかは、2以上のムーブコマンドの前にオートコマンドを含み、呼出部111は、タスク選択部123が選択した1のタスクからオートコマンドを呼び出してもよい。個別に生成された複数のタスクに基づいて、ロボット3を更に容易に動作させることができる。
【0130】
2以上のムーブコマンドを指定するタスク情報に基づいて、2以上のムーブコマンドの前に実行されるオートコマンドを生成するコマンド生成部131と、生成されたオートコマンドと、タスク情報とに基づいてタスクを生成するタスク生成部132と、を更に備えてもよい。オートコマンドを含むタスクの生成作業を簡素化することができる。また、オートコマンドの配置漏れに伴うタスク間の動作不良を防ぐことも可能となる。
【0131】
1のタスクにおいて最初の経由点がムーブコマンドにより定められている場合に、最初の経由点を定めるムーブコマンドをオートコマンドに置き換えるか、最初の経由点を定めるムーブコマンドの前にオートコマンドを挿入する、オートコマンド配置部124を更に有してもよい。オートコマンドを有しない既存のタスクを、オートコマンドを含むタスクに容易に変換することができる。
【0132】
呼出部111は、1のタスクにおいて最初の経由点がムーブコマンドにより定められている場合に、最初の経由点を定めるムーブコマンドを、最初の経由点を到達点とするオートコマンドに読み替えてもよい。オートコマンドを含まない既存のタスクを書き換えることなく残しつつ、オンラインパス生成を利用することができる。
【0133】
パスプラン部112は、到達点の直前の経由点から到達点までの追加パスを生成してもよい。直前の経由点を出発点とすることで、オートコマンドで出発点を定める必要がなくなるので、オートコマンドを簡素化することができる。
【0134】
複数のコマンドは、経由点をシフトさせるシフトコマンドを含み、パスプラン部112は、呼出部111が、シフトコマンドの後にオートコマンドを呼び出した場合に、オートコマンドの経由点をシフトコマンドに基づきシフトさせたシフト到達点までの追加パスを生成してもよい。シフトコマンドをオートコマンドにも適用可能とすることで、動作プログラミングの更なる簡素化を図ることができる。
【0135】
パスプラン部112は、オートコマンドの直前のムーブコマンドに対応する動作が完了する前に追加パスの生成が完了するタイミングで、追加パスの生成を開始してもよい。この場合、追加パスの生成を待つためにロボット3が停止する状態を減らし、ロボット3をよりスムーズに動作させることができる。
【0136】
パスプラン部112は、周辺環境情報に基づいて、追加パスを定める2以上の新たなムーブコマンドを生成してもよい。追加パスの生成のための演算を簡素化することができる。
【0137】
パスプラン部112は、呼出部111がオートコマンドを呼び出した後に、オートコマンドと周辺環境情報とに基づいて、追加パスを定める2以上の新たなムーブコマンドを生成し、呼出部111は、2以上の新たなムーブコマンドを含む2以上のコマンドをコマンド保存部に記憶させ、制御部114は、コマンド保存部が記憶する2以上のコマンドに基づいてロボット3を動作させてもよい。コマンド保存部が記憶する2以上のコマンドに基づいてロボット3を動作させることによって、次のコマンドを待つためにロボット3が停止する状態を減らし、ロボット3をよりスムーズに動作させることができる。このように、コマンド保存部が記憶する2以上のコマンドに基づきロボット3を動作させるしくみに、オンラインパス生成の結果を組み合わせることによって、ムーブコマンドのパス情報に基づく動作区間と、追加パスに基づく動作区間とを滑らかにつなぎ合わせ、ロボット3をよりスムーズに動作させることができる。
【0138】
制御部114は、コマンド保存部が記憶する2以上のコマンドに基づいてロボット3の一連の制御指令を生成し、一連の制御指令に基づいてロボット3を動作させてもよい。ロボット3をよりスムーズに動作させることができる。
【0139】
呼出部111は、コマンド保存部が記憶する2以上のコマンドに対応する動作の予想時間が、少なくともパスプラン部112による追加パスの生成に要する時間よりも長くなるように、コマンド保存部に記憶させるコマンドの数を変更してもよい。追加パスの生成を待つためにロボット3が停止する状態を更に減らし、ロボット3をよりスムーズに動作させることができる。
【0140】
オートコマンドは、周辺環境情報に基づいて前記追加パスを生成する際の生成条件を表す条件情報を含み、パスプラン部112は、条件情報に更に基づいて追加パスを生成してもよい。条件情報の設定によって、より適切な追加パスを生成することができる。
【0141】
パスプラン部112が生成した追加パスに基づくロボット3の動作をシミュレートして、ロボット3が周辺環境に存在する周辺物体に干渉しないか確認する干渉チェック部312を更に有し、制御部114は、ロボット3が周辺物体に干渉しない場合に、パスプラン部112が生成した追加パスに基づいてロボット3を動作させてもよい。オンラインパス生成を含むロボット3の動作の信頼性を向上させることができる。
【0142】
少なくとも、パスプラン部112が追加パスを生成する前後に、周辺環境情報を更新する情報収集部211と、周辺環境情報に基づいて、パスプラン部112が追加パスを生成する前後における周辺環境情報の変化がないかを確認する環境変化チェック部125と、を更に備えてもよい。オンラインパス生成を含むロボット3の動作の信頼性を更に向上させることができる。
【0143】
制御部114は、パスプラン部112が追加パスを生成する前後における周辺環境情報の変化がない場合に、追加パスに基づいてロボット3を動作させてもよい。オンラインパス生成を含むロボット3の動作の信頼性を更に向上させることができる。
【0144】
パスプラン部112は、追加パスを生成する前後における周辺環境情報の変化がある場合に、変化後の周辺環境情報に基づいて追加パスを再生成してもよい。オンラインパス生成を含むロボット3の動作の信頼性を更に向上させることができる。
【0145】
上述の実施形態は、未定区間を含むロボット3の動作パスの経由点の情報を含む複数のムーブコマンドと、未定区間の到達点となる動作パスの経由点の情報を含むオートコマンドと、を含む複数のコマンドを順次呼び出す呼出部111と、オートコマンドと、ロボット3の周辺環境情報とに基づいて、未定区間における到達点までの追加パスを生成するパスプラン部112と、呼出部111が呼び出したコマンドと、追加パスとに基づいてロボット3を動作させる制御部114と、を備えるロボットシステムを含む。
【0146】
更に上述の実施形態は、ロボット3の動作パスの経由点の情報をそれぞれが含む2以上のムーブコマンドを指定するタスク情報に基づいて、2以上のムーブコマンドに対応する動作への移行動作における到達点の情報を含むオートコマンドを生成するコマンド生成部131と、生成したオートコマンドと、タスク情報とに基づいてタスクを生成するタスク生成部132と、を備え、タスクが選択されると、タスクのオートコマンドの到達点までの追加パスがロボット3の周辺環境情報に基づいて生成され、生成された追加パスとタスクの2以上のムーブコマンドとに基づいてロボット3が動作する、タスク生成装置を含む。
【符号の説明】
【0147】
1…ロボットシステム、3…ロボット、111…呼出部、112…パスプラン部、114…制御部、121…タスク保存部、123…タスク選択部、124…オートコマンド配置部、131…コマンド生成部、132…タスク生成部、125…環境変化チェック部、211…情報収集部、312…干渉チェック部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18