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

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

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

<>
  • 特許-ロボットコントローラ、及び制御方法 図1
  • 特許-ロボットコントローラ、及び制御方法 図2
  • 特許-ロボットコントローラ、及び制御方法 図3
  • 特許-ロボットコントローラ、及び制御方法 図4
  • 特許-ロボットコントローラ、及び制御方法 図5
  • 特許-ロボットコントローラ、及び制御方法 図6
  • 特許-ロボットコントローラ、及び制御方法 図7
  • 特許-ロボットコントローラ、及び制御方法 図8
  • 特許-ロボットコントローラ、及び制御方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-08-07
(45)【発行日】2023-08-16
(54)【発明の名称】ロボットコントローラ、及び制御方法
(51)【国際特許分類】
   B25J 9/22 20060101AFI20230808BHJP
   G05B 19/4069 20060101ALI20230808BHJP
   G05B 19/42 20060101ALI20230808BHJP
【FI】
B25J9/22 A
G05B19/4069
G05B19/42 Z
【請求項の数】 12
(21)【出願番号】P 2022035105
(22)【出願日】2022-03-08
【審査請求日】2022-04-21
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】前田 貴宏
(72)【発明者】
【氏名】有田 裕太
(72)【発明者】
【氏名】丸野 元春
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2008-221428(JP,A)
【文献】特開2018-134703(JP,A)
【文献】特開平09-034524(JP,A)
【文献】特開平11-024720(JP,A)
【文献】特開2012-106323(JP,A)
【文献】特開平06-102919(JP,A)
【文献】特開2003-280710(JP,A)
【文献】特開2004-243516(JP,A)
【文献】国際公開第2010/092981(WO,A1)
【文献】米国特許出願公開第2015/0266182(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10-19/16
G05B 19/4069-19/42
(57)【特許請求の範囲】
【請求項1】
複数の関節で連結された複数のアームを有し、前記複数の関節の動作により前記複数のアームの先端部の位置を変更するロボットを制御するロボットコントローラと、
前記ロボットコントローラと通信可能であり、
現実空間で前記ロボットを動作させるために前記先端部の目標位置を指定する、オペレータによる目標指定操作と、
前記現実空間で前記ロボットを動作させるために前記先端部の移動方向を指定する、前記オペレータによるジョグ操作と、
前記現実空間における前記先端部の位置を教示位置として教示動作記憶部に記憶させる、前記オペレータによる追加操作と、
を受け付ける教示端末と、
を備え、
前記ロボットコントローラは、
前記目標指定操作に応じて、前記ロボットの周辺環境情報に基づいて、前記目標指定操作がなされた際の前記現実空間における前記先端部の現在位置から前記目標位置までの間のパスを、前記教示位置とはせずに生成するパス生成部と、
前記先端部が前記パスにて前記現在位置から前記目標位置まで移動するように前記現実空間において前記ロボットを動作させるジャンプ制御部と、
前記ジョグ操作に応じて前記現実空間において前記ロボットを動作させるジョグ制御部と、
前記目標指定操作又は前記ジョグ操作に応じた前記ロボットの動作が完了した状態にて、前記教示端末が前記追加操作を受け付けた時点での、前記現実空間における前記先端部の位置を前記教示位置として前記教示動作記憶部に記憶させる追加部と、
前記追加部が前記教示動作記憶部に記憶させた複数の教示位置で表される動作を前記現実空間において前記ロボットに行わせるプレイバック制御部と、
を有するロボットシステム。
【請求項2】
前記パス生成部は、前記周辺環境情報に基づいて前記パスに含まれる1以上の経由位置を算出し、
前記ジャンプ制御部は、生成された前記1以上の経由位置で表される動作を前記現実空間において前記ロボットに行わせる、
請求項1記載のロボットシステム。
【請求項3】
前記パス生成部は、前記周辺環境情報に基づき算出した前記1以上の経由位置を、前記教示動作記憶部とは別のジャンプ動作記憶部に記憶させ、
前記ジャンプ制御部は、前記ジャンプ動作記憶部が記憶する前記1以上の経由位置で表される動作を前記現実空間において前記ロボットに行わせる、
請求項2記載のロボットシステム。
【請求項4】
前記パス生成部は、前記目標指定操作において、予め記録された位置が選択された場合に、選択された位置を前記目標位置として前記パスを生成する、
請求項2又は3記載のロボットシステム。
【請求項5】
前記パス生成部は、前記予め記録された位置として、前記教示動作記憶部が記憶する複数の教示位置から1の教示位置が選択された場合に、選択された前記教示位置を前記目標位置として前記パスを生成する、
請求項4記載のロボットシステム。
【請求項6】
コマンド登録操作がなされた場合に、前記パス生成部が生成した前記1以上の経由位置を前記教示動作記憶部に登録して前記複数の教示位置に含めるコマンド登録部を更に備える、
請求項2~5のいずれか一項記載のロボットシステム。
【請求項7】
前記パス生成部が生成したパスのシミュレーションを表示させるパス表示部を更に備え、
前記ジャンプ制御部は、前記パスのシミュレーションの表示後に実行操作がなされた場合に、前記ロボットを動作させる、
請求項1~6のいずれか一項記載のロボットシステム。
【請求項8】
前記ロボットのシミュレーションを表示させるロボット表示部を更に備え、
前記パス生成部は、前記目標指定操作において、前記ロボットのシミュレーション内の1点が指定された場合に、指定された1点に対応する位置を前記目標位置として前記パスを生成する、
請求項1~7のいずれか一項記載のロボットシステム。
【請求項9】
前記教示端末は、前記オペレータによるジャンプ操作を更に受け付け、
前記ジャンプ制御部は、
前記教示端末に対する前記ジャンプ操作が継続している間に、前記生成されたパスにて前記ロボットを動作させ、
前記生成されたパスにて前記ロボットを動作させている最中に前記ジャンプ操作が中断された場合に、前記ロボットの動作を中断させる、
請求項1~8のいずれか一項記載のロボットシステム。
【請求項10】
前記ジャンプ制御部は、前記生成されたパスの途中で前記ロボットの動作が中断した状態で、前記教示端末に対する前記ジャンプ操作が再開された場合に、前記ロボットの動作が中断した状態で前記教示端末に対し行われた操作の内容に基づいて、
前記生成されたパスにて前記ロボットの動作を再開させることと、
前記ロボットの動作が中断した時点の位置までロボットを動作させた後、前記生成されたパスにて前記ロボットの動作を再開させることと、
前記目標位置までの前記パスを前記パス生成部に再生成させ、再生成されたパスにて前記ロボットを動作させることと、
のいずれかを選択して実行する、請求項9記載のロボットシステム。
【請求項11】
前記教示端末は、前記オペレータによる逆再生操作を更に受け付け、
前記生成されたパスにて前記ロボットが動作した後、前記教示端末に対して前記逆再生操作がなされた場合に、前記生成されたパスにて前記目標位置から離れる方向に前記ロボットを動作させる逆再生制御部を更に備える、
請求項1~10のいずれか一項記載のロボットシステム。
【請求項12】
複数の関節で連結された複数のアームを有し、前記複数の関節の動作により前記複数のアームの先端部の位置を変更するロボットを制御するロボットコントローラと通信可能であり、
現実空間においてロボットを動作させるために、前記先端部の目標位置を指定する、オペレータによる目標指定操作と、
前記先端部の移動方向を指定する、前記オペレータによるジョグ操作と、
前記現実空間における前記先端部の位置を教示位置として教示動作記憶部に記憶させる、前記オペレータによる追加操作と、
を受け付ける教示端末への操作に基づいて、前記ロボットコントローラが実行する制御方法であって、
前記目標指定操作に応じて、前記ロボットの周辺環境情報に基づいて、前記目標指定操作がなされた際の現実空間における前記先端部の現在位置から前記目標位置までの間のパスを、前記教示位置とはせずに生成することと、
前記先端部が前記パスにて前記現在位置から前記目標位置まで移動するように前記現実空間において前記ロボットを動作させることと、
前記ジョグ操作に応じて前記現実空間において前記ロボットを動作させることと、
前記目標指定操作又は前記ジョグ操作に応じた前記ロボットの動作が完了した状態にて、前記教示端末が前記追加操作を受け付けた時点での、前記現実空間における前記先端部の位置を前記教示位置として前記教示動作記憶部に記憶させることと、
前記追加操作に応じて前記教示動作記憶部に記憶させた複数の教示位置で表される動作を前記現実空間において前記ロボットに行わせることと、
を含む制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットコントローラ及び制御方法に関する。
【背景技術】
【0002】
特許文献1には、コントローラと、操作用デバイスとを備える制御システムが開示されている。操作用デバイスは、操作者による操作入力を取得し、操作入力に基づく指令を生成してコントローラに出力する。コントローラは、操作用デバイスからの指令に従ってロボットを制御する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-198925号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、ティーチングの効率化に有効なロボットコントローラを提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボットコントローラは、ロボットの目標位置を指定する目標指定操作がなされた場合に、ロボットの周辺環境情報に基づいて現在位置から目標位置までの間の少なくとも一部のパスを生成するパス生成部と、生成されたパスにてロボットを目標位置まで動作させるジャンプ制御部と、を備える。
【0006】
本開示の他の側面に係る制御方法は、ロボットの目標位置を指定する目標指定操作がなされた場合に、ロボットの周辺環境情報に基づいて目標位置までのパスを生成することと、生成されたパスにてロボットを目標位置まで動作させることと、を含む。
【発明の効果】
【0007】
本開示によれば、ティーチングの効率化に有効なロボットコントローラを提供することができる。
【図面の簡単な説明】
【0008】
図1】ロボットシステムの構成を例示する模式図である。
図2】コントローラの機能的な構成を例示するブロック図である。
図3】コントローラの変形例を示すブロック図である。
図4】操作端末の操作画面を例示する模式図である。
図5】コントローラ及び操作端末のハードウェア構成を例示するブロック図である。
図6】ティーチング手順を例示するフローチャートである。
図7】指定された目標位置へのジャンプ制御手順を例示するフローチャートである。
図8】ジャンプ動作の再開手順を例示するフローチャートである。
図9】ジャンプ動作の逆再生手順を例示するフローチャートである。
【発明を実施するための形態】
【0009】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0010】
〔ロボットシステム〕
図1に示すロボットシステム1は、オペレータによるティーチングにより生成された動作プログラムに基づいて、ロボット2を動作させる所謂ティーチング・プレイバック方式のシステムである。図1に示すように、ロボットシステム1は、ロボット2と、ロボットコントローラ100と、教示端末200とを備える。
【0011】
図1に示すロボット2は、6軸の垂直多関節ロボットであり、基部11と、旋回部12と、第1アーム13と、第2アーム14と、第3アーム17と、先端部18と、アクチュエータ41,42,43,44,45,46とを有する。基部11は、床面、壁面、又は天井面、又は無人搬送車上等に設置されている。旋回部12は、鉛直な軸線21まわりに旋回するように基部11上に設けられている。第1アーム13は、軸線21に交差(例えば直交)する軸線22まわりに揺動するように旋回部12に接続されており、軸線22から離れる方向に向かって延びている。交差は、所謂立体交差のようにねじれの関係にある場合も含む。以下においても同様である。
【0012】
第2アーム14は、軸線22に実質的に平行な軸線23まわりに揺動するように第1アーム13の先端部に接続されており、軸線23から離れる方向に向かって延びている。第2アーム14は、アーム基部15とアーム端部16とを含む。アーム基部15は、第1アーム13の先端部に接続されている。アーム端部16は、軸線23に交差(例えば直交)する軸線24まわりに旋回するようにアーム基部15の先端部に接続されており、軸線24に沿ってアーム基部15から離れる方向に向かって延びている。
【0013】
第3アーム17は、軸線24に交差(例えば直交)する軸線25まわりに揺動するようにアーム端部16の先端部に接続されている。先端部18は、軸線25に交差(例えば直交)する軸線26まわりに旋回するように第3アーム17の先端部に接続されている。
【0014】
このように、ロボット2は、基部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とを有する。
【0015】
アクチュエータ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を旋回させる。
【0016】
なお、ロボット2の具体的な構成は適宜変更可能である。例えばロボット2は、上記6軸の垂直多関節ロボットに更に1軸の関節を追加した7軸の冗長型ロボットであってもよく、所謂スカラー型の多関節ロボットであってもよい。
【0017】
教示端末200は、ティーチングに際してオペレータによる操作を受け付ける。オペレータによる操作は、ジョグ操作と、教示位置の追加操作と、プレイバック操作とを含む。ロボットコントローラ100は、ジョグ操作に応じてロボット2を動作させ、教示位置の追加操作がなされる度に、ロボット2の現在位置を教示位置とする教示動作コマンドを教示動作記憶部113に記憶させる。これにより、時系列の複数の教示動作コマンドを含む動作プログラムが教示動作記憶部113に生成される。
【0018】
教示位置は、3次元座標系における先端部18の座標と、各座標軸まわりの先端部18の姿勢とを定める情報である。教示位置は、先端部18の座標及び姿勢を直接的に定める情報であってもよく、先端部18の座標及び姿勢を間接的に定める情報であってもよい。先端部18の座標及び姿勢を間接的に定める情報の具体例としては、関節31,32,33,34,35,36の回転角度が挙げられる。
【0019】
教示動作コマンドは、教示位置までの先端部18の動作速度と、教示位置までの先端部18の移動軌跡を定める補間条件とを含む。補間条件の例としては、以下が挙げられる。
補間条件1)教示動作コマンドの実行直前のロボット2の位置(以下、「直前位置」という。)から、教示位置までの先端部18の移動軌跡を線形にする。
補間条件2)直前位置から、教示位置までの先端部18の移動軌跡をS字状にする。
補間条件3)直前位置から、教示位置まで、関節31,32,33,34,35,36の角度を互いに同じ変化率で変化させる。
【0020】
教示端末200が受け付ける操作は、位置変数の追加操作を更に含んでもよい。位置変数は、教示地位と同様に、3次元座標系における先端部18の座標と、各座標軸まわりの先端部18の姿勢とを定める情報である。ロボットコントローラ100は、位置変数の追加操作に応じて、位置変数を教示動作記憶部113とは別の記憶領域に記憶させる。
【0021】
例えばロボットコントローラ100は、図2に示すように、機能上の構成要素(以下、「機能ブロック」という。)として、ジョグ制御部111と、コマンド追加部112と、プレイバック制御部114とを有する。ジョグ制御部111は、オペレータによるジョグ操作がなされた場合に、ジョグ操作に応じてロボット2を動作させる。ジョグ操作は、例えば、先端部18の移動方向と、移動量とを定める操作である。ジョグ制御部111は、教示端末200が受け付けたジョグ操作により定められた移動方向及び移動量にて、先端部18を移動させるようにロボット2を動作させる。移動方向は、先端部18の座標の変化方向と、先端部18の姿勢の変化方向とを含む。
【0022】
教示端末200がジョグ操作を受け付ける手法に特に制限はない。例えば教示端末200は、キー等のオブジェクトへの操作に基づいてジョグ操作を受け付けてもよく、オペレータの音声の認識結果に基づいてジョグ操作を受け付けてもよく、オペレータが行ったジェスチャの認識結果に基づいてジョグ操作を受け付けてもよい。
【0023】
コマンド追加部112は、教示位置の追加操作がなされる度に、教示位置までロボット2を動作させる教示動作コマンドを教示動作記憶部113に記憶させる。例えばコマンド追加部112は、教示端末200が教示位置の追加操作を受け付けた時点におけるロボット2の位置を教示位置として教示動作コマンドを生成し、教示動作記憶部113に記憶させる。複数の教示動作コマンドをコマンド追加部112が順次教示動作記憶部113に記憶させることによって、時系列で複数の教示動作コマンドを含む動作プログラムが教示動作記憶部113に生成される。教示動作記憶部113は、ロボットコントローラ100のストレージデバイスに設けられていてもよく、ロボットコントローラ100と通信可能な外部のストレージデバイスに設けられていてもよい。
【0024】
プレイバック制御部114は、教示動作記憶部113が記憶する複数の教示動作コマンドを順次呼び出して、複数の教示動作コマンドの教示位置で表される動作をロボット2に行わせる。例えばプレイバック制御部114は、一定の制御サイクルにて、プレイバック制御を繰り返す。プレイバック制御は、複数の教示動作コマンドにより表される教示動作パスに沿ってロボット2を動作させるように、関節31,32,33,34,35,36のそれぞれの目標角度を算出することと、関節31,32,33,34,35,36のそれぞれの角度を目標角度に追従させることと、を含む。
【0025】
以上に説明したように、ロボットシステム1においては、オペレータがロボット2を動作させながら、ティーチング(教示位置の追加による動作プログラムの生成)が行われる。ロボット2をマニュアルで動作させる場合、ジョグ操作によりロボット2を少しずつ動かすだけでなく、現在位置から離れた目標位置までロボット2を一気に動かすことができると、ティーチングの効率が向上する。しかしながら、現在位置から離れた目標位置までの間に障害物が存在し得る。障害物の回避が必要である場合、オペレータがロボット2の移動方向をこまめに修正して、障害物を回避させねばならず、期待どおりにティーチングの効率を向上させることができない。
【0026】
そこで、ロボットコントローラ100は、ロボット2の目標位置を指定する目標指定操作がなされた場合に、ロボット2の周辺環境情報に基づいて現在位置から目標位置までの間の少なくとも一部のパスを生成することと、生成されたパスにてロボット2を目標位置まで動作させることと、を更に実行するように構成されている。これにより、障害物を回避させるためのマニュアル操作の労力が大幅に軽減される。
【0027】
例えばロボットコントローラ100は、機能ブロックとして、パス生成部115と、ジャンプ制御部116とを更に有する。パス生成部115は、ロボット2の目標位置を指定する目標指定操作がなされた場合に、ロボット2の周辺環境情報に基づいて現在位置から目標位置までのジャンプ動作パスを生成する。例えばパス生成部115は、周辺環境データベース122が記憶する周辺環境情報に基づいて、現在位置から目標位置までのジャンプ動作パスを生成する。
【0028】
目標位置は、3次元座標系における先端部18の座標と、各座標軸まわりの先端部18の姿勢とを定める情報である。目標位置は、先端部18の座標及び姿勢を直接的に定める情報であってもよく、先端部18の座標及び姿勢を間接的に定める情報であってもよい。先端部18の座標及び姿勢を間接的に定める情報の具体例としては、関節31,32,33,34,35,36の回転角度が挙げられる。
【0029】
例えば周辺環境データベース122は、周辺環境情報として、ロボット2と、ロボット2の周辺物体とを含む複数のオブジェクトの三次元モデルデータを記憶する。周辺環境データベース122は、ロボットコントローラ100のストレージデバイスに設けられていてもよく、ロボットコントローラ100と通信可能な外部のストレージデバイスに設けられていてもよい。
【0030】
パス生成部115は、周辺環境情報に基づいて目標位置を含む1以上の経由位置を算出し、1以上の経由位置までロボット2を動作させる1以上のジャンプ動作コマンドを生成してもよい。1以上の経由位置のそれぞれは、3次元座標系における先端部18の座標と、各座標軸まわりの先端部18の姿勢とを定める情報である。経由位置は、先端部18の座標及び姿勢を直接的に定める情報であってもよく、先端部18の座標及び姿勢を間接的に定める情報であってもよい。先端部18の座標及び姿勢を間接的に定める情報の具体例としては、関節31,32,33,34,35,36の回転角度が挙げられる。
【0031】
ジャンプ動作コマンドは、経由位置までの先端部18の動作速度と、経由位置までの先端部18の移動軌跡を定める補間条件とを含む。補間条件の例としては、以下が挙げられる。補間条件1)ジャンプ動作コマンドの実行直前のロボット2の位置(以下、「直前位置」という。)から、経由位置までの先端部18の移動軌跡を線形にする。補間条件2)直前位置から、経由位置までの先端部18の移動軌跡をS字状にする。補間条件2)直前位置から、経由位置まで、関節31,32,33,34,35,36の角度を互いに同じ変化率で変化させる。
【0032】
パス生成部115は、ロボット2が、周辺物体及びロボット2自体と干渉しないようにジャンプ動作パスを生成する。パス生成部115は、まず現在位置と目標位置と線形補間してジャンプ動作パスを仮生成し、仮生成したジャンプ動作パスに基づくロボット2の動作を周辺環境データベース122が記憶する周辺環境情報に基づきシミュレートする。シミュレートの結果、ロボット2が、周辺物体又はロボット2自体に干渉すると判定した場合、パス生成部115は、周辺物体及びロボット2自体と干渉しない経由位置をランダムに生成し、現在位置と目標位置との間に追加する。以後、現在位置と、生成した1以上の経由位置と、目標位置とを結ぶジャンプ動作パスにより、ロボット2が周辺物体及びロボット2自体と干渉しなくなるまで、経由位置の生成と追加を繰り返す。その後、パス生成部115は、追加した1以上の経由位置と、目標位置とをそれぞれ経由位置とする2以上のジャンプ動作コマンドを生成する。
【0033】
なお、現在位置と目標位置とを線形補間して仮生成したジャンプ動作パスによっても、ロボット2が周辺物体及びロボット2自体と干渉しない場合、パス生成部115は経由位置の追加を行わず、目標位置を経由位置とするロボットシステム1のジャンプ動作コマンドを生成する。
【0034】
ジャンプ動作パスの生成手法は、例示した手法に限られない。例えばパス生成部115は、幾何学的なアルゴリズム等によって、ロボット2が周辺物体及びロボット2自体と干渉しないようにジャンプ動作パスを生成してもよい。
【0035】
パス生成部115は、生成した1以上のジャンプ動作コマンドを、教示動作記憶部113とは別のジャンプ動作記憶部123に記憶させる。1以上のジャンプ動作コマンドをパス生成部115がジャンプ動作記憶部123に記憶させることによって、現在位置から目標位置までのパスを1以上のジャンプ動作コマンドにより表すジャンプ動作プログラムがジャンプ動作記憶部123に生成される。ジャンプ動作記憶部123は、ロボットコントローラ100のストレージデバイスに設けられていてもよく、ロボットコントローラ100と通信可能な外部のストレージデバイスに設けられていてもよい。
【0036】
パス生成部115は、上述したパスの生成を外部演算装置に要求してもよい。外部演算装置が周辺環境情報に基づきジャンプ動作パスの生成を行う場合、外部演算装置にジャンプ動作パスの生成を行わせることも、周辺環境情報に基づきジャンプ動作パスを生成することに含まれる。
【0037】
パス生成部115は、教示端末200が受け付けた目標指定操作により定められた目標位置までのジャンプ動作パスを生成してもよい。教示端末200が目標指定操作を受け付ける手法に特に制限はない。例えば教示端末200は、教示動作記憶部113が記憶する複数の教示動作コマンドからロボットシステム1の教示動作コマンドを選択する操作に基づいて、目標指定操作を受け付けてもよい。パス生成部115は、目標指定操作において、予め記録された位置が選択された場合に、選択された位置を目標位置としてジャンプ動作パスを生成してもよい。例えばパス生成部115は、予め記録された位置として、教示動作記憶部113が記憶する複数の教示動作コマンドから1の教示動作コマンドが選択された場合に、選択された教示動作コマンドの教示位置を目標位置としてジャンプ動作パスを生成してもよい。
【0038】
複数の教示動作コマンドが、複数のタスクにグループ分けされた状態で教示動作記憶部113に記憶される場合もある。この場合、パス生成部115は、予め記録された位置として、複数のタスクから1のタスクが選択された場合に、選択されたタスクのうち1の教示動作コマンド(例えば先頭の教示動作コマンド)の教示位置を目標位置としてジャンプ動作パスを生成してもよい。
【0039】
予め記録された位置は、教示位置に限られない。例えば、予め記録された位置は、教示位置とは別に記録されている位置変数であってもよく、各種座標系(例えばワーク座標系、ツール座標系、又はロボット座標系等)の原点であってもよい。
【0040】
パス生成部115は、必ずしも現在位置から目標位置までの全域に亘るパスを生成しなくてもよく、現在位置から目標位置までの間の少なくとも一部のパスを生成するように構成されていてもよい。例えばパス生成部115は、現在位置から目標位置までのうち一部について、教示端末200への操作により定められたユーザ指定パスを取得し、ユーザ指定パスが定められていない区間のパスを生成し、生成したパスとユーザ指定パスとを組み合わせたジャンプ動作パスを生成してもよい。また、パス生成部115は、教示端末200への操作によりユーザが指定した1以上の経由点を通るように、ジャンプ動作パスを生成してもよい。
【0041】
教示端末200は、ロボット2のシミュレーション(例えばシミュレーションの静止画像又は動画像)内の1点を指定する操作に基づいて、目標指定操作を受け付けてもよい。この場合、ロボットコントローラ100は、ロボット表示部121を更に備えてもよい。ロボット表示部121は、周辺環境データベース122が記憶する周辺環境情報に基づいて、ロボット2及び周辺物体のシミュレーション(例えばロボット2及び周辺物体の状態をシミュレーションする静止画像又は動画像)を教示端末200に表示させる。パス生成部115は、目標指定操作において、ロボット2のシミュレーション内の1点が指定された場合に、指定された1点に対応する位置を目標位置としてジャンプ動作パスを生成してもよい。
【0042】
教示端末200は、オペレータの音声の認識結果に基づいて目標指定操作を受け付けてもよい。また、教示端末200は、現実空間における目標位置を指し示すオペレータのジェスチャの認識結果に基づいて目標指定操作を受け付けてもよい。
【0043】
ジャンプ制御部116は、生成されたジャンプ動作パスにてロボット2を現在位置から目標位置まで動作させる。例えばジャンプ制御部116は、ジャンプ動作記憶部123が記憶する1以上のジャンプ動作コマンドに基づいてロボット2を動作させる。例えばジャンプ制御部116は、上記制御サイクルにて、ジャンプ制御を繰り返す。ジャンプ制御は、複数のジャンプ動作コマンドにより表されるジャンプ動作パスに沿ってロボット2を動作させるように、関節31,32,33,34,35,36のそれぞれの目標角度を算出することと、関節31,32,33,34,35,36のそれぞれの角度を目標角度に追従させることと、を含む。
【0044】
ジャンプ制御部116は、目標位置までのジャンプ操作が継続している間に、ジャンプ動作パスにてロボット2を動作させ、ジャンプ動作パスにてロボット2を動作させている最中にジャンプ操作が中断された場合に、ロボット2の動作を中断させてもよい。
【0045】
例えばジャンプ制御部116は、教示端末200に対するジャンプ操作が継続している間に、ジャンプ動作パスにてロボット2を動作させ、ジャンプ動作パスにてロボット2を動作させている最中に教示端末200に対するジャンプ操作が中断された場合に、ロボット2の動作を中断させてもよい。教示端末200がジャンプ操作を受け付ける手法に特に制限はない。例えば教示端末200は、キー等のオブジェクトへの操作に基づいてジャンプ操作を受け付けてもよく、オペレータの音声の認識結果に基づいてジャンプ操作を受け付けてもよく、オペレータが行ったジェスチャの認識結果に基づいてジャンプ操作を受け付けてもよい。
【0046】
ジャンプ制御部116は、ジャンプ動作パスの途中でロボット2の動作が中断した状態で、ジャンプ操作が再開された場合に、ロボット2の動作が中断した状態(以下、「中断状態」という。)で行われた操作内容に基づいて、以下のいずれかを選択して実行してもよい。
再開動作1)ジャンプ動作パスにてロボット2の動作を再開させる。
再開動作2)ロボット2の動作が中断した時点の位置までロボット2を動作させた後、ジャンプ動作パスにてロボット2の動作を再開させる。
再開動作3)目標位置までのパスをパス生成部115に再生成させ、再生成されたパスにてロボット2を動作させる。
【0047】
例えばジャンプ制御部116は、中断状態にて操作が行われたか否かを判定する。中断状態にて操作が行われた場合、ジャンプ制御部116は、その操作がジャンプ動作パスへの復帰が可能な復帰可能操作であるか否かを判定する。中断状態での操作が行われなかったと判定した場合、ジャンプ制御部116は「再開動作1」を実行する。中断状態で復帰可能操作が行われたと判定した場合、ジャンプ制御部116は「再開動作2」を実行する。中断状態で復帰可能操作ではない操作が行われたと判定した場合、ジャンプ制御部116は「再開動作3」を実行する。
【0048】
復帰可能操作の例としては、アクチュエータ41,42,43,44,45,46に対する電力供給を一時的に遮断する操作(サーボオフ)等が挙げられる。復帰可能操作ではない操作の例としては、ジョグ操作によりジャンプ動作パスから外れる位置にロボット2を動作させる操作等が挙げられる。ジョグ操作が行われたとしても、ジョグ操作によるジャンプ動作パスからの逸脱が小さければ、再開動作2が可能である。そこで、ジョグ操作は、ジョグ操作による移動量が所定の判定閾値より小さければ復帰可能操作に分類されてもよい。
【0049】
ロボットコントローラ100は、ジャンプ動作パスを表示させるように構成されていてもよい。例えばロボットコントローラ100は、図3に示すように、パス表示部131を更に有してもよい。パス表示部131は、ジャンプ動作記憶部123が記憶する(パス生成部115が生成した)ジャンプ動作パスのシミュレーションを表示させる。ジャンプ動作パスのシミュレーションの表示態様は、実際にロボット2を動作させることなく、オペレータにジャンプ動作パスを視認させ得る限りいかなる態様であってもよい。
【0050】
ジャンプ動作パスのシミュレーションの表示態様の例としては、以下が挙げられる。
表示態様1)ロボット2及び周辺物体のシミュレーション画像内に、ジャンプ動作パスを表すラインを表示する。
表示態様2)ロボット2及び周辺物体のシミュレーション画像内に、ジャンプ動作パスの1以上の経由位置を表す1以上の点を表示する。
表示態様3)表示態様1のラインと、表示態様2の点とを合わせて表示する。
表示態様4)シミュレーション画像内において、ジャンプ動作パスに沿うようにロボット2を動作させる。
【0051】
なお、パス表示部131は、表示態様1~3において、ロボット2自体を表示しなくてもよく、表示態様1~3におけるロボット2の表示を、先端部18の少なくとも一部(例えばツールの端部等)のみとしてもよい。パス表示部131は、表示態様4におけるロボット2の表示を、先端部18の少なくとも一部(例えばツールの端部等)のみとしてもよい。ジャンプ動作パスが適切に生成される場合、ユーザが、ロボット2と周辺物体及びロボット2自体との干渉に注意を払う必要はない。このような場合、ロボット2の表示を制限することで、ジャンプ動作パスに基づく先端部18の動き自体の適切さにユーザの注意を集中させることができる。例えば、液体を収容した容器を先端部18が保持した状態にて、ジャンプ動作パスに基づく動作が行われる場合に、この動作が、液体をこぼさないで遂行可能な動作となっているかを集中して確認し易くなる。
【0052】
ジャンプ制御部116は、ジャンプ動作パスのシミュレーションの表示後に実行操作がなされた場合に、ジャンプ動作パスにてロボット2を動作させてもよい。実行操作の一例として、上述したジャンプ操作の入力を開始することが挙げられる。
【0053】
ロボットコントローラ100は、コマンド登録操作がなされた場合に、1以上のジャンプ動作コマンドを、1以上の教示動作コマンドとして登録するように構成されていてもよい。例えばロボットコントローラ100は、コマンド登録部132を更に有してもよい。コマンド登録部132は、教示端末200に対してコマンド登録操作がなされた場合に、ジャンプ動作記憶部123が記憶する(パス生成部115が生成した)1以上のジャンプ動作コマンドを、1以上の教示動作コマンドとして教示動作記憶部113に登録する。コマンド登録部132は、ジャンプ動作記憶部123が記憶する全てのジャンプ動作コマンドを教示動作記憶部113に登録してもよく、ジャンプ動作記憶部123が記憶するジャンプ動作コマンドの一部を教示動作記憶部113に登録してもよい。
【0054】
教示端末200がコマンド登録操作を受け付ける手法に特に制限はない。例えば教示端末200は、キー等のオブジェクトへの操作に基づいてコマンド登録操作を受け付けてもよく、オペレータの音声の認識結果に基づいてコマンド登録操作を受け付けてもよく、オペレータが行ったジェスチャの認識結果に基づいてコマンド登録操作を受け付けてもよい。
【0055】
ロボットコントローラ100は、ジャンプ動作パスにてロボット2が動作した後、逆再生操作がなされた場合に、ジャンプ動作パスにて目標位置から離れる方向にロボット2を動作させるように構成されていてもよい。例えばロボットコントローラ100は、逆再生制御部133を更に有してもよい。逆再生制御部133は、ジャンプ動作パスにてロボット2が動作した後、教示端末200に対して逆再生操作がなされた場合に、生成されたパスにて目標位置から離れる方向にロボット2を動作させる。なお、ジャンプ動作パスにてロボット2が動作した後は、ジャンプ動作パスの途中でロボット2の動作が中断した後も含む。
【0056】
逆再生制御部133は、逆再生操作がなされた場合に、ロボット2の動作が中断した状態(以下、「中断状態」という。)で行われた操作内容に基づいて、以下のいずれかを選択して実行してもよい。
逆再生動作1)ジャンプ動作パスにて、ジャンプ動作パスの開始位置までロボット2を動作させる。
逆再生動作2)ロボット2の動作が中断した時点の位置までロボット2を動作させた後、ジャンプ動作パスの開始位置までロボット2を動作させる。
逆再生動作3)ジャンプ位置の開始位置までのジャンプ動作パスをパス生成部115に再生成させ、再生成されたジャンプ動作パスにてロボット2を開始位置まで動作させる。
【0057】
例えば逆再生制御部133は、中断状態にて操作が行われたか否かを判定する。中断状態にて操作が行われた場合、逆再生制御部133は、その操作が上記復帰可能操作であるか否かを判定する。中断状態での操作が行われなかったと判定した場合、逆再生制御部133は「逆再生動作1」を実行する。中断状態で復帰可能操作が行われたと判定した場合、逆再生制御部133は「逆再生動作2」を実行する。中断状態で復帰可能操作ではない操作が行われたと判定した場合、逆再生制御部133は「逆再生動作3」を実行する。
【0058】
教示端末200が逆再生操作を受け付ける手法に特に制限はない。例えば教示端末200は、キー等のオブジェクトへの操作に基づいて逆再生操作を受け付けてもよく、オペレータの音声の認識結果に基づいて逆再生操作を受け付けてもよく、オペレータが行ったジェスチャの認識結果に基づいて逆再生操作を受け付けてもよい。
【0059】
教示端末200は、オペレータによる各種操作の入力を可能とする操作インタフェースを備える。教示端末200は、ハードウェアによるインタフェース(例えばハードウェアキー)を備えてもよく、ソフトウェアによるインタフェース(例えばタッチパネルに表示されるソフトウェアキー)を備えてもよい。
【0060】
図4は、ソフトウェアによるインタフェースの一例として、教示端末200がタッチパネルに表示する操作画面を例示する模式図である。図4に示す操作画面210は、ジョグ操作キー211と、教示点追加キー212と、シミュレーションウィンドウ221と、コマンドリスト222と、プレイバックキー213と、コマンド登録キー214と、ジャンプキー215と、バックキー216とを有する。ジョグ操作キー211は、上述したジョグ操作を入力するためのソフトウェアキーである。教示点追加キー212は、上述した教示位置の追加操作を入力するためのソフトウェアキーである。
【0061】
シミュレーションウィンドウ221は、ロボット表示部121が生成したロボット2のシミュレーションと、パス生成部115が生成したジャンプ動作パスのシミュレーションとを表示するウィンドウである。図4においては、ロボット2のシミュレーション画像V1と、ロボット2の周辺物体のシミュレーション画像V2と、ジャンプ動作パスを表すシミュレーションラインV3とが表示されている。
【0062】
コマンドリスト222は、教示動作記憶部113が記憶する複数の教示動作コマンドを時系列で表示するウィンドウである。プレイバックキー213は、上述したプレイバック操作を入力するためのソフトウェアキーである。コマンド登録キー214は、上述したコマンド登録操作を入力するためのソフトウェアキーである。ジャンプキー215は、上述したジャンプ操作を入力するためのソフトウェアキーである。ジャンプキー215が押されている間は、上述したジャンプ操作の入力が継続し、ジャンプキー215が解放されるとジャンプ操作の入力が中断される。バックキー216は、上述した逆再生操作を入力するためのソフトウェアキーである。
【0063】
〔ハードウェア構成〕
図5は、ロボットコントローラ100及び教示端末200のハードウェア構成を例示するブロック図である。ロボットコントローラ100は、回路190を有する。回路190は、1以上のプロセッサ191と、1以上のメモリデバイス192と、1以上のストレージデバイス193と、通信ポート194と、ドライバ回路195とを有する。1以上のストレージデバイス193は、不揮発性の記憶媒体であり、ロボット2の目標位置を指定する目標指定操作がなされた場合に、ロボット2の周辺環境情報に基づいて目標位置までのパスを生成することと、生成されたパスにてロボット2を目標位置まで動作させることと、をロボットコントローラ100に実行させるためのプログラムを記憶する。例えば1以上のストレージデバイス193は、上述した各機能ブロックをロボットコントローラ100に構成させるためのプログラムを記憶する。1以上のストレージデバイス193のそれぞれは、フラッシュメモリ、又はハードディスク等の内蔵型の記憶媒体であってもよく、USBメモリ又は光ディスク等の可搬型の記憶媒体であってもよい。
【0064】
1以上のメモリデバイス192は、1以上のストレージデバイス193からロードされたプログラムを一時的に記憶する。1以上のメモリデバイス192のそれぞれは、ランダムアクセスメモリ等であってもよい。1以上のプロセッサ191は、1以上のメモリデバイス192にロードされたプログラムを実行することにより、上述した各機能ブロックを構成する。1以上のプロセッサ191は、演算結果を適宜1以上のメモリデバイス192に記憶させる。
【0065】
通信ポート194は、1以上のプロセッサ191からの要求に基づいて教示端末200との間で通信を行う。ドライバ回路195は、1以上のプロセッサ191からの要求に基づいて、ロボット2(アクチュエータ41,42,43,44,45,46)に駆動電力を供給する。
【0066】
教示端末200は、回路290を有する。回路290は、1以上のプロセッサ291と、1以上のメモリデバイス292と、1以上のストレージデバイス293と、通信ポート294と、ユーザインタフェース295とを有する。1以上のストレージデバイス293は、不揮発性の記憶媒体であり、上記操作インタフェースを教示端末200に構成させるためのプログラムを記憶している。1以上のストレージデバイス293のそれぞれは、フラッシュメモリ、又はハードディスク等の内蔵型の記憶媒体であってもよく、USBメモリ又は光ディスク等の可搬型の記憶媒体であってもよい。
【0067】
1以上のメモリデバイス292は、1以上のストレージデバイス293からロードされたプログラムを一時的に記憶する。1以上のメモリデバイス292は、ランダムアクセスメモリ等であってもよい。1以上のプロセッサ291は、1以上のメモリデバイス292にロードされたプログラムを実行することにより、操作インタフェースを構成する。1以上のプロセッサ291は、演算結果を適宜1以上のメモリデバイス292に記憶させる。
【0068】
通信ポート294は、1以上のプロセッサ291からの要求に基づいてロボットコントローラ100との間で通信を行う。ユーザインタフェース295は、1以上のプロセッサ291からの要求に基づいて、オペレータとのコミュニケーションを行う。例えばユーザインタフェース295は、表示デバイスと、入力デバイスとを含む。表示デバイスの例としては、液晶モニタ又は有機EL(Electro-Luminescence)モニタ等が挙げられる。入力デバイスの例としては、キーボード、マウス、又はキーパッド等が挙げられる。入力デバイスは、タッチパネルとして表示デバイスと一体化されていてもよい。
【0069】
以上に示したハードウェア構成はあくまで一例なので、適宜変更可能である。例えば、教示端末200がロボットコントローラ100に組み込まれていてもよい。
【0070】
〔制御手順〕
制御方法の一例として、ロボットコントローラ100が実行する制御手順を例示する。この手順は、ロボット2の目標位置を指定する目標指定操作がなされた場合に、ロボット2の周辺環境情報に基づいて目標位置までのパスを生成することと、生成されたパスにてロボット2を目標位置まで動作させることと、を含む。以下、制御手順を、ティーチング手順と、ジャンプ制御手順と、ジャンプ動作の再開手順と、ジャンプ動作の逆再生手順とに分けて詳細に例示する。
【0071】
(ティーチング手順)
図6に示すように、ロボットコントローラ100は、まずステップS01を実行する。ステップS01では、上述したジョグ操作がなされているか否かをジョグ制御部111が確認する。ステップS01において、ジョグ操作がなされていると判定した場合、ロボットコントローラ100はステップS02を実行する。ステップS02では、ジョグ制御部111が、ジョグ操作に応じてロボット2を動作させる。
【0072】
ステップS01において、ジョグ操作はなされていないと判定した場合、ロボットコントローラ100はステップS03を実行する。ステップS03では、上述した教示位置の追加操作がなされているか否かをコマンド追加部112が確認する。ステップS03において、教示位置の追加操作がなされていると判定した場合、ロボットコントローラ100はステップS04を実行する。ステップS04では、教示位置の追加操作がなされて時点におけるロボット2の位置を教示位置として教示動作コマンドを生成し、教示動作記憶部113に記憶させる。
【0073】
ステップS02,S04の次に、ロボットコントローラ100はステップS05を実行する。ステップS03において教示位置の追加操作はなされていないと判定した場合、ロボットコントローラ100はステップS02,S04を実行することなくステップS05を実行する。
【0074】
ステップS05では、上述したプレイバック操作がなされているか否かをプレイバック制御部114が確認する。ステップS05において、プレイバック操作はなされていないと判定した場合、ロボットコントローラ100は処理をステップS01に戻す。以後、プレイバック操作がなされるまで、ジョグ操作に応じてロボット2を動作させることと、教示動作コマンドの追加とが繰り返される。
【0075】
ステップS05において、プレイバック操作がなされたと判定した場合、ロボットコントローラ100はステップS06,S07を実行する。ステップS06では、プレイバック制御部114が、教示動作パスの開始位置までロボット2を動作させる。ステップS07では、プレイバック制御部114が、複数の教示動作コマンドを順次呼び出して、複数の教示動作コマンドの教示位置で表される動作をロボット2に行わせる。以上でティーチング手順が完了する。
【0076】
(ジャンプ制御手順)
図7に示すように、ロボットコントローラ100は、ステップS11,S12,S13を実行する。ステップS11では、上述した目標指定操作がなされるのをパス生成部115が待機する。ステップS12では、パス生成部115が、周辺環境データベース122が記憶する周辺環境情報に基づいて、現在位置から目標位置までのジャンプ動作パスを生成する。例えばパス生成部115は、上述した1以上のジャンプ動作コマンドを生成し、ジャンプ動作記憶部123に記憶させる。ステップS13では、ジャンプ動作記憶部123が記憶するジャンプ動作パスのシミュレーションを、パス表示部131が表示させる。例えばパス表示部131は、ジャンプ動作パスのシミュレーションを教示端末200のシミュレーションウィンドウ221に表示させる。
【0077】
次に、ロボットコントローラ100はステップS14,S15を実行する。ステップS14では、上述したジャンプ操作がなされるのをジャンプ制御部116が待機する。ステップS15では、ジャンプ制御部116が、ジャンプ動作パスにて目標位置までロボット2を動作させることを開始する。以下、ジャンプ動作パスにて目標位置まで動作することを、「ジャンプ動作」という。
【0078】
次に、ロボットコントローラ100はステップS21を実行する。ステップS21では、ジャンプ操作が継続しているか否かをジャンプ制御部116が確認する。ステップS21において、ジャンプ操作が継続していると判定した場合、ロボットコントローラ100はステップS22を実行する。ステップS22では、ロボット2が目標位置に到達したか否かをジャンプ制御部116が確認する。ステップS22において、ロボット2は目標位置に到達していないと判定した場合、ロボットコントローラ100は処理をステップS21に戻す。以後、ジャンプ操作が継続する限り、ロボット2が目標位置に到達するまで、ジャンプ動作が継続される。
【0079】
ステップS22において、ロボット2が目標位置に到達したと判定した場合、ロボットコントローラ100はステップS23を実行する。ステップS23では、ジャンプ制御部116が、ロボット2にジャンプ動作を停止させる。ステップS21において、ジャンプ操作が中断されたと判定した場合、ロボットコントローラ100はステップS24を実行する。ステップS24では、ジャンプ制御部116が、ロボット2にジャンプ動作を中断させる。以上でジャンプ制御手順が完了する。
【0080】
(ジャンプ動作の再開手順)
この手順は、上述したステップS24にてジャンプ動作が中断された後に実行される。図8に示すように、ロボットコントローラ100は、ステップS31,S32を実行する。ステップS31では、ジャンプ操作が再開されるのをジャンプ制御部116が待機する。ステップS32では、ジャンプ動作が中断した状態(上記中断状態)で操作がなされたか否かをジャンプ制御部116が確認する。
【0081】
ステップS32において、中断状態で操作がなされたと判定した場合、ロボットコントローラ100はステップS33を実行する。ステップS33では、中断状態でなされた動作が上記復帰可能動作であるか否かをジャンプ制御部116が確認する。ステップS33において、中断状態でなされた動作が上記復帰可能動作であると判定した場合、ロボットコントローラ100はステップS34を実行する。ステップS34では、ジャンプ制御部116が、ジャンプ動作が中断した時点の位置までロボット2を動作させる。ステップS33において、中断状態でなされた動作が復帰可能動作ではないと判定した場合、ロボットコントローラ100はステップS35を実行する。ステップS35では、ジャンプ制御部116が、目標位置までのパスをパス生成部115に再生成させる。
【0082】
ステップS34,S35の次に、ロボットコントローラ100はステップS36を実行する。ステップS32にて、中断状態で操作はなされていないと判定した場合、ロボットコントローラ100はステップS34,S35を実行することなくステップS36を実行する。ステップS36では、ジャンプ制御部116が、ジャンプ動作を再開させる。
【0083】
次に、ロボットコントローラ100はステップS41を実行する。ステップS41では、ジャンプ操作が継続しているか否かをジャンプ制御部116が確認する。ステップS41において、ジャンプ操作が継続していると判定した場合、ロボットコントローラ100はステップS42を実行する。ステップS42では、ロボット2が目標位置に到達したか否かをジャンプ制御部116が確認する。ステップS42において、ロボット2は目標位置に到達していないと判定した場合、ロボットコントローラ100は処理をステップS41に戻す。以後、ジャンプ操作が継続する限り、ロボット2が目標位置に到達するまで、ジャンプ動作が継続される。
【0084】
ステップS42において、ロボット2が目標位置に到達したと判定した場合、ロボットコントローラ100はステップS43を実行する。ステップS43では、ジャンプ制御部116が、ロボット2にジャンプ動作を停止させる。ステップS41において、ジャンプ操作が中断されたと判定した場合、ロボットコントローラ100はステップS44を実行する。ステップS44では、ジャンプ制御部116が、ロボット2にジャンプ動作を中断させる。以上でジャンプ動作の再開手順が完了する。
【0085】
ステップS44において、ジャンプ動作が中断した場合には、以上のジャンプ動作の再開手順を再度実行することが可能となる。
【0086】
(ジャンプ動作の逆再生手順)
この手順は、上述したステップS23にてジャンプ動作が停止した後、又はステップS24にてジャンプ動作が中断された後に実行される。以下においては、上述したステップS23にてジャンプ動作が停止した後、及びステップS24にてジャンプ動作が中断された後のいずれも、「中断状態」という。図9に示すように、ロボットコントローラ100は、ステップS51,S52を実行する。ステップS51では、逆再生操作がなされるのを逆再生制御部133が待機する。ステップS52では、中断状態で操作がなされたか否かを逆再生制御部133が確認する。
【0087】
ステップS52において、中断状態で操作がなされたと判定した場合、ロボットコントローラ100はステップS53を実行する。ステップS53では、中断状態でなされた動作が上記復帰可能動作であるか否かを逆再生制御部133が確認する。ステップS53において、中断状態でなされた動作が上記復帰可能動作であると判定した場合、ロボットコントローラ100はステップS54を実行する。ステップS54では、逆再生制御部133が、中断状態が開始された位置までロボット2を動作させる。ステップS53において、中断状態でなされた動作が復帰可能動作ではないと判定した場合、ロボットコントローラ100はステップS55を実行する。ステップS55では、逆再生制御部133が、ジャンプ動作の開始位置までのジャンプ動作パスをパス生成部115に再生成させる。
【0088】
ステップS54,S55の次に、ロボットコントローラ100はステップS56を実行する。ステップS52にて、中断状態で操作はなされていないと判定した場合、ロボットコントローラ100はステップS54,S55を実行することなくステップS56を実行する。ステップS56では、逆再生制御部133が、ジャンプ動作パスにて、ジャンプ動作の開始位置までロボット2を動作させることを開始する。以下、ジャンプ動作パスにて、ジャンプ動作パスの開始位置まで動作することを「逆再生動作」という。
【0089】
次に、ロボットコントローラ100はステップS61を実行する。ステップS61では、逆再生操作が継続しているか否かを逆再生制御部133が確認する。ステップS61において、逆再生操作が継続していると判定した場合、ロボットコントローラ100はステップS62を実行する。ステップS62では、ロボット2が開始位置に到達したか否かを逆再生制御部133が確認する。ステップS62において、ロボット2は開始位置に到達していないと判定した場合、ロボットコントローラ100は処理をステップS61に戻す。以後、逆再生操作が継続する限り、ロボット2が開始位置に到達するまで、逆再生動作が継続される。
【0090】
ステップS62において、ロボット2が開始位置に到達したと判定した場合、ロボットコントローラ100はステップS63を実行する。ステップS63では、逆再生制御部133が、ロボット2に逆再生動作を停止させる。ステップS61において、逆再生操作が中断されたと判定した場合、ロボットコントローラ100はステップS64を実行する。ステップS64では、逆再生制御部133が、ロボット2に逆再生動作を中断させる。以上でジャンプ動作の逆再生手順が完了する。
【0091】
ステップS64において、逆再生動作が中断した場合には、以上のジャンプ動作の再開手順又はジャンプ動作の逆再生手順を再度実行することが可能となる。
【0092】
〔まとめ〕
以上に説明したように、ロボットコントローラ100は、ロボット2の目標位置を指定する目標指定操作がなされた場合に、ロボット2の周辺環境情報に基づいて現在位置から目標位置までの間の少なくとも一部のパスを生成するパス生成部115と、生成されたパスにてロボット2を目標位置まで動作させるジャンプ制御部116と、を備える。
【0093】
このロボットコントローラ100によれば、目標位置を指定すれば、目標位置までのパスが自動生成されるので、ティーチングにおけるマニュアル操作の労力が軽減される。従って、ティーチングの効率化に有効である。
【0094】
パス生成部115は、周辺環境情報に基づいて目標位置を含む1以上の経由位置を算出し、1以上の経由位置までロボット2を動作させる1以上のジャンプ動作コマンドを生成し、ジャンプ制御部116は、生成された1以上のジャンプ動作コマンドに基づいてロボット2を動作させてもよい。パス生成の演算を簡素化することで、パスの生成時間を短縮することができる。従って、ティーチングの効率化に更に有効である。
【0095】
教示位置の追加操作がなされる度に、教示位置までロボット2を動作させる教示動作コマンドを教示動作記憶部113に記憶させるコマンド追加部112と、教示動作記憶部113が記憶する複数の教示動作コマンドを順次呼び出して、複数の教示動作コマンドの教示位置で表される動作をロボット2に行わせるプレイバック制御部114と、を備えてもよい。教示位置を順次追加する作業中において、新たな教示位置としたい位置、又は1以上前に登録した教示位置等に等まで、ロボット2を容易に動作させることが可能である。従って、ティーチングの効率化に更に有効である。
【0096】
パス生成部115は、目標指定操作において、予め記録された位置が選択された場合に、選択された位置を目標位置としてパスを生成してもよい。目標位置を迅速に指定できるので、ティーチングの効率化に更に有効である。
【0097】
パス生成部115は、予め記録された位置として、教示動作記憶部113が記憶する複数の教示動作コマンドから1の教示動作コマンドが選択された場合に、選択された教示動作コマンドの教示位置を目標位置としてパスを生成してもよい。既に記録された教示位置にロボットを戻す場合に、目標位置を迅速に指定できるので、ティーチングの効率化に更に有効である。
【0098】
コマンド登録操作がなされた場合に、パス生成部115が生成した1以上のジャンプ動作コマンドを、1以上の教示動作コマンドとして教示動作記憶部113に登録するコマンド登録部132を更に備えてもよい。ジャンプ動作コマンドを教示動作コマンドとして流用することで、ティーチングを更に効率化することができる。
【0099】
パス生成部115が生成したパスのシミュレーションを表示させるパス表示部131を更に備え、ジャンプ制御部116は、パスのシミュレーションの表示後に実行操作がなされた場合に、ロボット2を動作させてもよい。ティーチングを行うオペレータの安心感を向上させることができる。
【0100】
ロボット2のシミュレーションを表示させるロボット表示部121を更に備え、パス生成部115は、目標指定操作において、ロボット2のシミュレーション内の1点が指定された場合に、指定された1点に対応する位置を目標位置としてパスを生成してもよい。任意の目標位置を容易に指定することができる。従って、ティーチングの効率化に更に有効である。
【0101】
ジャンプ制御部116は、目標位置までのジャンプ操作が継続している間に、生成されたパスにてロボット2を動作させ、生成されたパスにてロボット2を動作させている最中にジャンプ操作が中断された場合に、ロボット2の動作を中断させてもよい。オペレータの意図により近い位置でロボット2の動作を中断させることができる。
【0102】
ジャンプ制御部116は、生成されたパスの途中でロボット2の動作が中断した状態で、ジャンプ操作が再開された場合に、ロボット2の動作が中断した状態で行われた操作内容に基づいて、生成されたパスにてロボット2の動作を再開させることと、ロボット2の動作が中断した時点の位置までロボット2を動作させた後、生成されたパスにてロボット2の動作を再開させることと、目標位置までのパスをパス生成部115に再生成させ、再生成されたパスにてロボット2を動作させることと、のいずれかを選択して実行してもよい。ロボット2の動作が中断した状態で行われた操作内容に基づくことで、操作の再開に応じてロボット2をより適切に動作させることができる。
【0103】
生成されたパスにてロボット2が動作した後、逆再生操作がなされた場合に、生成されたパスにて目標位置から離れる方向にロボット2を動作させる逆再生制御部133を更に備えてもよい。生成されたパスを、目標位置から離れる方向への動作にも有効活用することができる。
【0104】
以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
【符号の説明】
【0105】
2…ロボット、100…ロボットコントローラ、112…コマンド追加部、113…教示動作記憶部、114…プレイバック制御部、115…パス生成部、121…ロボット表示部、123…ジャンプ動作記憶部、116…ジャンプ制御部、131…パス表示部、132…コマンド登録部、133…逆再生制御部。
【要約】
【課題】ティーチングの効率化に有効なロボットコントローラを提供する。
【解決手段】ロボットコントローラ100は、ロボット2の目標位置を指定する目標指定操作がなされた場合に、ロボット2の周辺環境情報に基づいて現在位置から目標位置までのパスを生成するパス生成部115と、生成されたパスにてロボット2を目標位置まで動作させるジャンプ制御部116と、を備える。
【選択図】図2
図1
図2
図3
図4
図5
図6
図7
図8
図9