(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024122516
(43)【公開日】2024-09-09
(54)【発明の名称】ロボット教示装置、ロボットの教示軌道を決定する方法及びロボット
(51)【国際特許分類】
B25J 9/10 20060101AFI20240902BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023030089
(22)【出願日】2023-02-28
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】武田 博樹
(72)【発明者】
【氏名】梶田 大毅
(72)【発明者】
【氏名】掛布 修弘
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS09
3C707LS10
3C707LS20
3C707LT01
3C707MS08
3C707MS14
3C707MS15
3C707MT02
(57)【要約】
【課題】ロボットの非位置決め制御下で目標軌道を高速動作で実現するための教示軌道を生成する。
【解決手段】教示軌道を決定する方法が開示される。装置は、第一軌道情報の開始姿勢と終了姿勢を教示してロボットを動作させた場合の、線形に補完された第二軌道情報を生成する。装置は、第一軌道情報と第二軌道情報の差を示す第三軌道情報を生成する。装置は、第三軌道情報において予め設定された条件を満たす時点を抽出し、抽出した時点での、第一軌道情報におけるロボットの姿勢を抽出する。装置は、抽出された姿勢と、抽出された時点の第三軌道情報と、に基づいて、ロボットに対する教示軌道を決定する。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
ロボット教示装置であって、
プロセッサと、
記憶装置と、を含み、
前記記憶装置は、ロボットの姿勢の時系列を示す第一軌道情報を格納し、
前記プロセッサは、
前記第一軌道情報の開始姿勢と終了姿勢を教示して前記ロボットを動作させた場合の、線形に補完された第二軌道情報を生成し、
前記第一軌道情報と前記第二軌道情報の差を示す第三軌道情報を生成し、
前記第三軌道情報において予め設定された条件を満たす時点を抽出し、前記抽出した時点での、前記第一軌道情報における前記ロボットの姿勢を抽出し、
前記抽出された姿勢と、前記抽出された時点の前記第三軌道情報と、に基づいて、前記ロボットに対する教示軌道を決定する、ロボット教示装置。
【請求項2】
請求項1に記載のロボット教示装置であって、
前記予め設定された条件を満たす時点は、前記第一軌道情報と前記第二軌道情報の差が極値を示す時点である、ロボット教示装置。
【請求項3】
請求項1に記載のロボット教示装置であって、
前記ロボットの軌道は、前記ロボットの関節の角度値の集合の時系列で表される、ロボット教示装置。
【請求項4】
請求項3に記載のロボット教示装置であって、
前記第一軌道情報と前記第二軌道情報の差は、前記関節における角度値の差で表される、ロボット教示装置。
【請求項5】
請求項4に記載のロボット教示装置であって、
前記予め設定された条件を満たす時点は、前記関節の少なくとも一つの関節の角度値の差が、極大又は極小を示す時点である、ロボット教示装置。
【請求項6】
請求項4に記載のロボット教示装置であって、
前記教示軌道の決定は、前記抽出された時点での前記第一軌道情報における角度値に対して、前記第三軌道情報における前記抽出された時点での角度値に比例する値を、加算することを含む、ロボット教示装置。
【請求項7】
請求項3に記載のロボット教示装置であって、
前記第一軌道情報において、少なくとも一つの関節の角度値は、非線形変化を示す、ロボット教示装置。
【請求項8】
請求項2に記載のロボット教示装置であって、
前記教示軌道は、前記開始姿勢、前記終了姿勢、及び、前記差が極大又は極小を示す時点の姿勢により構成される、ロボット教示装置。
【請求項9】
請求項1に記載のロボット教示装置であって、
前記プロセッサは、
前記教示軌道による前記ロボットの動作のシミュレーションを実行し、
前記シミュレーションの結果を出力する、ロボット教示装置。
【請求項10】
装置がロボットに対する教示軌道を決定する方法であって、
前記装置は、ロボットの姿勢の時系列データを示す第一軌道情報を格納し、
前記方法は、前記装置が、
前記第一軌道情報の開始姿勢と終了姿勢を教示して前記ロボットを動作させた場合の、線形に補完された第二軌道情報を生成し、
前記第一軌道情報と前記第二軌道情報の差を示す第三軌道情報を生成し、
前記第三軌道情報において予め設定された条件を満たす時点を抽出し、前記抽出した時点での、前記第一軌道情報における前記ロボットの姿勢を抽出し、
前記抽出された姿勢と、前記抽出された時点の前記第三軌道情報と、に基づいて、前記ロボットに対する教示軌道を決定する、方法。
【請求項11】
プログラムにより動作するロボットであって、
前記ロボットの姿勢が第一軌道上を通るように動作し、
前記第一軌道の開始姿勢と終了姿勢を教示し前記ロボットを動作させた場合の、線形に補間された第二軌道と前記第一軌道における前記ロボットの姿勢についての差を示す第三軌道において予め設定された条件を満たす時点において、加速又は減速することを特徴とするロボット。
【請求項12】
請求項11に記載のロボットであって、
前記予め設定された条件を満たす時点は、前記第一軌道と前記第二軌道の差が極値を示す時点である、ロボット。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット教示装置、ロボットの教示軌道を決定する方法及びロボットに関する。
【背景技術】
【0002】
ロボットの制御方式は、ロボットプログラムに記載した各教示姿勢においてロボットを瞬間的に停止させ、ロボットを位置決めしながら移動させる方式と、ロボットを停止させずに各教示姿勢付近を通過させ、ロボットの位置決めを行なわないでロボットを移動させる方式(以下、「非位置決め制御」と呼ぶ)とがある。非位置決め制御においては、ロボットプログラムの再生運転時にロボットの動作軌道がロボットプログラムに記載した教示姿勢列(以下、「教示軌道」と呼ぶ)よりも内側へ回り込むずれが生じる(以下、「内回り」と呼ぶ)欠点がある反面、位置決め時の加減速がなくなるためロボット動作の高速化が可能という利点がある。従って、高速かつ所望のロボット動作を実現するためには、高速な動作が可能な非位置決め制御を用いながらも目的とする軌道(以下、「目標軌道」と呼ぶ)を実現するため、内回り具合を予測して敢えて教示軌道を目標軌道の外側に取る必要があり、熟練した教示技術が必要とされていた。
【0003】
本技術分野の背景技術として、特開2021-79482号公報(特許文献1)がある。この公報には、「複数の関節を有するロボットアームの先端部が始点から終点に移動する軌道計画を生成する軌道計画生成装置は、始点から終点の間における先端部の位置および姿勢を示す第1軌道情報からの所定距離内の先端部の移動先となる複数の位置候補を探索する第1探索処理と、始点および終点での先端部の姿勢に基づく球面補間により許容範囲内で変化する先端部の複数の姿勢候補を探索する第2探索処理と、第1探索処理によって探索された複数の位置候補および第2探索処理によって探索された複数の姿勢候補に基づいて、第1軌道情報からの先端部の移動先の位置および姿勢を示す第2軌道情報を決定する決定処理と、第1軌道情報および決定処理によって決定された第2軌道情報を含む軌道データを出力する出力処理と、を実行する。」と記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1には、干渉を回避しつつ手先姿勢の変化を最小化する軌道を生成する方法が記載されている。しかし、特許文献1の手法で生成される軌道はロボットの目標軌道であり、それをロボットの非位置決め制御下で高速動作として実現するための内回り具合を考慮した教示軌道は生成できない問題がある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、ロボット教示装置であって、プロセッサと、記憶装置と、を含み、前記記憶装置は、ロボットの姿勢の時系列を示す第一軌道情報を格納し、前記プロセッサは、前記第一軌道情報の開始姿勢と終了姿勢を教示して前記ロボットを動作させた場合の、線形に補完された第二軌道情報を生成し、前記第一軌道情報と前記第二軌道情報の差を示す第三軌道情報を生成し、前記第三軌道上情報において予め設定された条件を満たす時点を抽出し、前記抽出した時点での、前記第一軌道情報における前記ロボットの姿勢を抽出し、前記抽出された姿勢と、前記抽出された時点の前記第三軌道情報と、に基づいて、前記ロボットに対する教示軌道を決定する。
【0007】
他の例は、プログラムにより動作するロボットであって、前記ロボットの姿勢が第一軌道上を通るように動作し、前記第一軌道の開始姿勢と終了姿勢を教示し前記ロボットを動作させた場合の、線形に補間された第二軌道と前記第一軌道における前記ロボットの姿勢についての差を示す第三軌道において予め設定された条件を満たす時点において、加速又は減速することを特徴とする。
【発明の効果】
【0008】
本発明の一態様によれば、ロボットの非位置決め制御下で目標軌道を高速動作で実現するための教示軌道を生成できる。
【0009】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1A】一実施例におけるロボット教示装置の概略論理構成図である。
【
図1B】一実施例におけるロボット教示装置のハードウェア構成図である。
【
図2】一実施例におけるロボット教示手順を示すフローチャートである。
【
図3A】一実施例におけるロボット教示手順の概要を示す図である。
【
図3B】一実施例におけるロボット教示手順の概要を示す図である。
【
図3C】一実施例におけるロボット教示手順の概要を示す図である。
【
図3D】一実施例におけるロボット教示手順の概要を示す図である。
【
図3E】一実施例におけるロボット教示手順の概要を示す図である。
【
図4】一実施例におけるロボットの目的とする軌道である目標軌道情報の例を示す図である。
【
図5】一実施例におけるロボットの教示軌道における位置決め割合情報の例を示す図である。
【
図6】一実施例における非位置決め制御下での動作軌道の内回りを考慮した教示軌道修正方法情報の例を示す図である。
【
図7】一実施例における線形補間軌道情報の例を示す図である。
【
図8】一実施例における差分軌道情報の例を示す図である。
【
図9】一実施例における抽出軌道情報の例を示す図である。
【
図10】一実施例における教示軌道情報の例を示す図である。
【
図11】一実施例における線形補間軌道の算出手順を示すフローチャートである。
【
図12】一実施例における差分軌道の算出手順を示すフローチャートである。
【
図13】一実施例における差分極値点の抽出手順を示すフローチャートである。
【
図14】一実施例における教示軌道の抽出手順を示すフローチャートである。
【
図15】一実施例における教示軌道の修正手順を示すフローチャートである。
【
図16】一実施例における出力部に表示される出力画面を示す図である。
【
図17】教示軌道修正部が実行する、教示軌道修正処理の変形例を示すフローチャートである。
【
図18】教示軌道修正処理のステップにおいて出力される、教示姿勢の編集画面の一例を示す。
【発明を実施するための形態】
【0011】
以下、本明細書の実施例に係るロボット教示装置について、図面を参照しつつ、説明する。以下に説明する実施例において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0012】
本明細書の一実施例は、例えば以下の処理を実行して、ロボットの非位置決め制御下で高速に動作する教示軌道を生成する。線形補間軌道算出処理は、非位置決め制御時の動作軌道が目標軌道から経由姿勢を省いた開始姿勢と目標姿勢のみ教示してロボットを動作させた場合の線形に補間された軌道(以下、「線形補間軌道」と呼ぶ)へと漸近する性質に着目する。差分軌道算出処理及び差分極値点抽出処理は、線形補間軌道と目標軌道との差分が極大又は極小となる全時刻を特定する。教示軌道抽出処理は、抽出した全時刻における姿勢を教示姿勢として抽出する。教示軌道修正処理は、抽出された教示軌道の各教示姿勢に対し線形補間軌道への漸近を見越した修正を算出した差分に基づいて実施する。
【実施例0013】
本実施例では、6軸ロボットアームを題材に、基本の形態となるロボット教示装置の例を説明する。
[システム構成]
【0014】
図1Aは、ロボット教示装置100の論理構成例を示す。ロボット教示装置100は、
図1Bに示すように、一般的な計算機(PC、サーバ等)で構成可能であり、例えばソフトウェアプログラム処理により本特徴的な処理機能(算出部120の各処理部)を実現する。
【0015】
ロボット教示装置100は入力部110、算出部120、記憶部140、出力部130などを有する。算出部120は、例えばプロセッサがプログラムに従って動作することによって構成される。算出部120は、ロボット教示装置100の特徴的な機能を実現する処理を行う部分であり、線形補間軌道算出部121、差分軌道算出部122、差分極値点抽出部123、教示軌道抽出部124、教示軌道修正部125を有する。
【0016】
記憶部140は、例えば主記憶装置及び補助記憶層装置により構成され、目標軌道記憶部141、位置決め割合記憶部142、教示軌道修正方法記憶部143、線形補間軌道記憶部144、差分軌道記憶部145、抽出軌道記憶部146、教示軌道記憶部147を含む。
【0017】
目標軌道記憶部141は、後述する、ロボットの目的とする軌道を示す目標軌道情報400を記憶する部分である。
【0018】
位置決め割合記憶部142は、後述する、教示軌道の開始姿勢と終了姿勢を除く各経由姿勢の位置決め割合情報500を記憶する部分である。
【0019】
教示軌道修正方法記憶部143は、後述する、教示軌道の非位置決め制御下での動作軌道の内回りを考慮した教示軌道修正方法情報600を記憶する部分である。
【0020】
線形補間軌道記憶部144は、後述する、線形補間軌道算出処理の結果である線形補間軌道情報700を記憶する部分である。
【0021】
差分軌道記憶部145は、後述する、差分軌道算出処理および差分極値点抽出処理の結果である差分軌道情報800を記憶する部分である。
【0022】
抽出軌道記憶部146は、後述する、教示軌道抽出処理の結果である抽出軌道情報900を記憶する部分である。
【0023】
教示軌道記憶部147は、後述する、教示軌道修正処理の結果であり、出力部130で出力する教示軌道情報1000を記憶する部分である。
【0024】
図1Bは、ロボット教示装置100のハードウェア構成例を示す。ロボット教示装置100は、プロセッサ102、主記憶装置103、補助記憶装置104、入力装置105、出力装置106、通信インタフェース107を含む。ロボット教示装置100の各部分は図示しないバス等の通信手段を介して互いに通信可能に接続されている。尚、ロボット教示装置100は、構成の全部又は一部がクラウドサーバのような仮想的な資源によって実現されるものであってもよい。
【0025】
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等を用いて構成される。プロセッサ102が、主記憶装置103に格納されているプログラムを読み出して実行することにより、電子署名システムの各装置が備える機能が実現される。
【0026】
主記憶装置103は、プログラムやデータを記憶する装置であり、ROM(Read Only Memory)、RAM(Random Access Memory)、NVRAM(Non Volatile RAM)等である。
【0027】
補助記憶装置104は、例えば、SSD(Solid State Drive)、SDメモリカード等のNVRAM、CD(Compact Disc)、DVD(Digital Versatile Disc)等の光学式記憶装置、HDD(Hard Disc Drive)、クラウドサーバの記憶領域等である。補助記憶装置104は、プログラム及びデータを格納する非一過性記憶媒体を含む。補助記憶装置104に格納されているプログラムやデータは主記憶装置103に随時読み込まれる。
【0028】
入力装置105は、情報の入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、マイクロフォン等である。又は、ロボット教示装置100が何らかの通信手段を介して他の装置との間で情報の入力を受け付ける構成としてもよい。
【0029】
出力装置106は、各種の情報を出力するインタフェースであり、例えば、液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード等の画面表示装置、印字装置、スピーカ等の音声出力装置等である。又は、ロボット教示装置100が、何らかの通信手段を介して他の装置との間で情報の出力を行う構成としてもよい。通信インタフェース107は、ロボット教示装置100が他の装置と通信を行うための装置である。
図1Bに示す構成要素の一部は省略され得、また、他の構成要素が追加され得る。
【0030】
ロボット教示装置100は、1又は複数の計算機により構成することができる。このように、ロボット教示装置100は、1以上のプロセッサ及び1以上の演算装置を含むことができる。1以上のプロセッサは、1以上の記憶装置に格納されているプログラムを実行することで所定の機能部として動作する。
[フローチャート]
【0031】
図2は、ロボット教示処理のフローチャートの例である。このフローチャートの各ステップの概要について、
図3A~3Dで2軸ロボットアームを題材に説明し、詳細を
図10、
図11、
図12、
図13、
図14を用いて説明する。
【0032】
(S100)入力部110は、ユーザの入力情報を基に、目標軌道記憶部141に目標軌道情報400を、位置決め割合記憶部142に位置決め割合情報500を、教示軌道修正方法記憶部143に教示軌道修正方法情報600をそれぞれ記憶する。目標軌道は軌道計画技術等により生成されたロボットの目的とする軌道を示す。位置決め割合は、ロボットへの教示時に各教示姿勢に対して指定する教示姿勢通過時の加減速制御における減速割合を示す。
【0033】
教示軌道修正方法は、ユーザ指定の位置決め割合に対応して教示軌道を修正するための方法を示す。それぞれの詳細は後述する。なお、ここでは上記情報をユーザが入力することを想定しているが、過去の入力情報をはじめとした、すでに記憶済みの情報を用いてもよい。
【0034】
図3Aのグラフは、目標軌道での、関節J1及び関節J2の関節角変化(関節の姿勢変化)を示す。横軸は時刻、縦軸は関節角を示す。また、
図3Aは、ロボットの目標軌道に従った動作を模式的に示す。ロボットは、開始姿勢から終了姿勢まで、干渉物を避けて動作する。ここでは、目標軌道は非線形変化を示す。
【0035】
(S200)線形補間軌道算出部121は、目標軌道におけるロボットの開始姿勢と終了姿勢とを配位空間上で線形に補間する線形補間軌道を算出する。線形補間軌道は、目標軌道中の経由姿勢を一切教示せずに開始姿勢と終了姿勢のみを教示した場合の動作軌道の予測値として用いる。非位置決め制御における動作軌道は、教示する経由姿勢の数を減らすほど非線形変化を示す目標軌道から外れて線形補間軌道に漸近する。
【0036】
本実施例は、以降のステップで後述するように、非位置決め制御において動作軌道が線形補間軌道に漸近する性質を利用して、教示軌道の各教示姿勢を、目標姿勢を起点として線形補間軌道から離れる向きに修正することで、動作軌道が線形補間軌道に近づいた際に目標軌道と一致することを狙いとする。なお本ステップS200の詳細は後述する。
【0037】
図3Bを参照して、グラフは、線形補完軌道における、関節J1及び関節J2それぞれの関節角変化を示す。関節J1及び関節J2に対して、開始姿勢と終了姿勢での角度のみが教示され、それらの間の経由姿勢での角度は教示されていない。関節J1及び関節J2の線形補完軌道での角度変化は、共に直線である。線形補完軌道にしたがって動作するロボットは、干渉物と接触する。
【0038】
(S300)差分軌道算出部122は、目標軌道の線形補間軌道からの差分である差分軌道を算出する。差分軌道は教示軌道の目標軌道からの修正の必要性を判定するために用いる。例えば、差分軌道上の各差分姿勢が全てゼロであれば目標軌道は線形補間軌道と一致しているため、教示軌道は目標軌道から修正する必要はない。
【0039】
一方で、差分軌道上の差分姿勢がゼロでないタイミングがあれば、そのタイミングで教示軌道は目標軌道から修正する必要がある。仮に教示軌道を目標軌道から修正しなければ、差分軌道上の差分姿勢がゼロでないタイミング、すなわち動作軌道が線形補間軌道と一致していないタイミングにおいて、線形補間軌道への漸近による教示軌道からのずれを生じる。なお本ステップS300の詳細は後述する。
【0040】
(S400)差分極値点抽出部123は、差分軌道の極大値または極小値を取る時点である差分極値点を抽出する。差分極値点は前記差分姿勢が局所的に最大または最小になるタイミングであるため、動作軌道の線形補間軌道への漸近による教示軌道からのずれも大きくなることが予想される。なお本ステップS400の詳細は後述する。
【0041】
図3Cを参照して、関節J1及び関節J2それぞれについて、ステップS300、S400における、差分軌道及び差分極値点の例が示されている。
図3Cの例では、差分極値点の数は一つであるが、複数の差分極値点が存在し得る。
【0042】
(S500)教示軌道抽出部124は、目標軌道上の目標姿勢のうち、差分極値点での姿勢を全て抽出し教示軌道として構成する。抽出した教示姿勢は動作軌道の線形補間軌道への漸近による教示軌道からのずれも大きくなることが予想されるため、後のステップでの教示姿勢の修正が必要である。なお本ステップS500の詳細は後述する。
【0043】
図3Dを参照して、グラフは、関節J1及び関節J2それぞれの、差分極値点での目標姿勢(目標角度)、つまり修正前の教示姿勢を示す。また、
図3Dは、開始姿勢及び終了姿勢の間における、差分極値点でのロボットの目標姿勢を模式的に示している。
【0044】
(S600)教示軌道修正部125は、動作軌道の線形補間軌道への漸近を見越して教示軌道を修正する。修正では、教示軌道の各教示姿勢を、目標軌道を起点として線形補間軌道から離れる向きに修正し、非位置決め制御における動作軌道が線形補間軌道へ漸近した際に目標軌道と一致することを狙いとする。なお本ステップS600の詳細は後述する。
【0045】
図3Eを参照して、グラフは、関節J1及び関節J2それぞれの、差分極値点での、目標姿勢から修正された教示姿勢を示す。また、
図3Eは、開始姿勢及び終了姿勢の間における、差分極値点でのロボットの修正された教示姿勢を模式的に示している。
【0046】
(S700)出力部130は、教示軌道記憶部147に記憶されている教示軌道情報を出力し、ユーザに表示する。
[目標軌道情報]
【0047】
図4は、目標軌道記憶部141に記憶される目標軌道情報400のテーブル構成例であり、姿勢ID401、姿勢402、時刻403を含む。姿勢402は、あるタイミングでロボットが取る関節角度値の集合である。時刻403は前記タイミングを示す値であり、姿勢IDが1のときを示す最初の姿勢から当該姿勢IDの姿勢に到達するまでにかかる時間を表す。このように、ロボットの軌道は、関節角度値の集合の時系列で表され、その時系列を示すことでロボットを効果的に制御できる。目標軌道情報400は、第一軌道情報の例である。
[位置決め割合情報]
【0048】
図5は、位置決め割合記憶部142に記憶される位置決め割合情報500のテーブル構成の項目例である。テーブルの項目としては、教示姿勢通過時の加減速制御における減速割合を表す位置決め割合を含む。例えば、位置決め割合が最大の100%ではロボットは教示軌道の各教示姿勢に対し一時停止して位置決めを実施する位置決め制御が行われる一方で、100%未満では非位置決め制御が行われ、特に0%では教示姿勢通過時の加減速を行わずにロボットを高速に動作させる。
[教示軌道修正方法情報]
【0049】
図6は、教示軌道修正方法記憶部143に記憶される教示軌道修正方法情報600のテーブル構成例であり、位置決め割合601、修正倍率602を含む。位置決め割合601は教示姿勢通過時の加減速制御における減速割合を示す。修正倍率602は教示軌道修正処理において用いる値であり、教示軌道上の各教示姿勢を目標軌道上の対応する目標姿勢から修正する際の割合を表す。
【0050】
例えば位置決め割合が100%の教示姿勢に対しては実機姿勢が教示姿勢と一致するため教示姿勢を目標姿勢から修正する必要はなく、修正の割合は0.0とする。一方で、位置決め割合が100%未満の教示姿勢に対しては実機姿勢が教示姿勢と一致しないため教示姿勢を目標姿勢から修正する必要がある。位置決め割合が低下するほど修正値も大きくする必要があるため、位置決め割合が低下するほど修正倍率は大きな値となる。修正倍率の具体的な値は目標軌道に依らずロボットに固有の値であり、経験的に事前に決定する。
[線形補間軌道情報]
【0051】
図7は、線形補間軌道記憶部144に記憶される線形補間軌道情報700のテーブル構成例であり、姿勢ID701、線形補間姿勢702を含む。線形補間軌道は目標軌道の開始姿勢と目標姿勢とを配位空間上で線形に補間する線形補間軌道としてS200で算出される。線形補間姿勢702は線形補間軌道上の姿勢を表す関節角度の集合である。線形補間軌道情報700は、第二軌道情報の例である。
[差分軌道情報]
【0052】
図8は、差分軌道記憶部145に記憶される差分軌道情報800のテーブル構成例であり、姿勢ID801、差分姿勢802、極値点判定803を含む。差分軌道は目標軌道と線形補間軌道との差分としてS300で算出される。差分姿勢802は差分軌道上の姿勢差分を表す関節角度差分値の集合である。極値点判定803は差分軌道の極値点判定結果を表すフラグとしてS400で算出される。差分軌道情報800は第三軌道情報の例である。
[抽出軌道情報]
【0053】
図9は、抽出軌道記憶部146に記憶される抽出軌道情報900のテーブル構成例であり、姿勢ID901、抽出姿勢902を含む。抽出軌道は目標軌道上の目標姿勢のうち、差分極値点での姿勢を全て抽出し構成した軌道として、S500で算出される。
[教示軌道情報]
【0054】
図10は、教示軌道記憶部147に記憶される教示軌道情報1000のテーブル構成例であり、ロボット教示装置100からの出力に相当し、姿勢ID1001、教示姿勢1002、位置決め割合1003を含む。教示姿勢1002は教示軌道上の教示姿勢を表す関節角度値の集合である。位置決め割合1003は教示姿勢通過時の加減速制御における減速割合を表す値である。
[線形補間軌道算出処理]
【0055】
図11は、S200で行われる、線形補間軌道算出部121が実行する、線形補間軌道算出処理フローチャートの例である。以下、本フローチャートを説明する。
【0056】
(S201)線形補間軌道算出部121は、目標軌道記憶部141より目標軌道情報300を取得する。そして、目標軌道Ttarget(t)の最初の時刻tを開始時刻tstart、最後の時刻を終了時刻tendとして抽出する。
【0057】
(S202)線形補間軌道算出部121は、目標軌道Ttarget(t)の全時刻tiについて、S203をループ演算する。
【0058】
(S203)線形補間軌道算出部121は、目標軌道Ttarget(t)の開始姿勢Ttarget(tstart)と終了姿勢Ttarget(tend)とを配位空間上で結ぶ線分をti-tstart:tend-tiに内分する姿勢を、線形補間姿勢として算出する。線形補間軌道算出部121は、算出した姿勢を、線形補間軌道記憶部144の線形補間軌道情報700に格納する。
[差分軌道算出処理]
【0059】
図12は、S300で行われる、差分軌道算出部122が実行する、差分軌道算出処理フローチャートの例である。以下、本フローチャートを説明する。
(S301)差分軌道算出部122は、目標軌道T
target(t)の全時刻t
iについて、S302をループ演算する。
【0060】
(S302)差分軌道算出部122は、目標姿勢Ttarget(ti)と、タイミングの対応する線形補間姿勢Ttlinear(ti)との差分を差分姿勢Tdiff(ti)として、以下の式により算出し、差分軌道記憶部145の差分軌道情報800に格納する。
Tdiff(ti)=Ttarget(ti)-Tlinear(ti)
[差分極値点抽出処理]
【0061】
図13は、S400で行われる、差分極値点抽出部123が実行する、差分極値点抽出処理フローチャートの例である。以下、本フローチャートを説明する。
【0062】
(S401)差分極値点抽出部123は、差分軌道記憶部145の差分軌道情報800に対し、差分軌道Tdiff(t)の極値点判定を全てFalseとして初期化する。
【0063】
(S402)差分極値点抽出部123は、全関節jについて、S401からS406までのステップをループ演算する。関節jの総数は目標軌道記憶部141に格納される目標軌道情報400の各姿勢を構成する角度値の個数から算出する。なお、一部の関節についてのみS401からS406が実行されてもよい。
【0064】
(S403)差分極値点抽出部123は、差分軌道Tdiff(t)を構成する全姿勢のうち関節jの関節角値のみを抽出し、関節jの差分軌道Tdiff, j(t)とする。
【0065】
(S404)差分極値点抽出部123は、関節jの差分軌道Tdiff, j(t)の一階微分d/dt(Tdiff, j(t))と二階微分d2/dt2(Tdiff, j(t))を算出する。
【0066】
(S405)差分極値点抽出部123は、差分軌道Tdiff(t)の全時刻ti について、S405とS406をループ演算する。
【0067】
(S406)差分極値点抽出部123は、一階微分d/dt(Tdiff, j(t))=0かつ二階微分d2/dt2(Tdiff, j(t))がt=ti前後で符号変化するかを判定し、Yesの場合にはS406へ進み、Noの場合にはS404へ進む。
【0068】
(S407)差分極値点抽出部123は、差分軌道記憶部145の差分軌道情報800に対し、差分姿勢Tdiff(ti)の極値点判定をTrueに上書きする。
【0069】
上記例は、関節の軌道における全ての極値(極大又は極小)に対して極値点判定803のフラグをTrueと設定するが、一部の極値、例えば大きさが閾値を超える極値や最大極値のみをTrueと設定してもよい。
[教示軌道抽出処理]
【0070】
図14は、S500で行われる、教示軌道抽出部124が実行する、教示軌道抽出処理フローチャートの例である。以下、本フローチャートを説明する。
【0071】
(S501)教示軌道抽出部124は、目標軌道Ttarget(t)の全時刻tiについて、S502からS504までのステップをループ演算する。
【0072】
(S502)教示軌道抽出部124は、時刻tiは目標軌道Ttarget(t)の開始時刻または終了時刻かを判定し、Yesの場合にはS504へ進み、Noの場合にはS503へ進む。
【0073】
(S503)教示軌道抽出部124は、時刻tiで差分軌道Tdiff(t)は極値点判定されているかを判定し、Yesの場合にはS504へ進み、Noの場合にはS501へ進む。
【0074】
(S504)教示軌道抽出部124は、時刻tiにおける目標軌道上の姿勢Ttarget(ti)を抽出教示姿勢Textract(ti)として抽出し、抽出軌道記憶部146の抽出軌道情報900に格納する。
【0075】
本例は、上記の差が極値を示す時点を予め設定された条件を満たす時点として、修正前の教示軌道を抽出する。これにより、速度低下を抑制しつつ目標軌道に近い教示軌道を生成することができる。他の例において、極値と異なる条件を満たす時点で修正前の教示軌道が抽出されてもよい。
【0076】
上記例は、全ての関節の少なくとも一つが極値を示す時点において、教示姿勢が抽出される。これにより、ロボットの動作をより適切に制御できる。他の例において、複数の関節が極値を示す時点で、教示姿勢が抽出されてもよい。また、全ての関節の少なくとも一つが極値付近を示す時点において、教示姿勢が抽出されてもよい。
[教示軌道修正処理]
【0077】
図15は、S600で行われる、教示軌道修正部125が実行する、教示軌道修正処理フローチャートの例である。以下、本フローチャートを説明する。
【0078】
(S601)教示軌道修正部125は、抽出教示軌道Textract(t)の全時刻について、位置決め割合を修正倍率0.0に対応する位置決め割合で初期化する。なお、修正倍率に対応する位置決め割合は、教示軌道修正方法記憶部143の教示軌道修正方法情報600のテーブルを参照することで決定する。
【0079】
(S602)教示軌道修正部125は、抽出教示軌道Textract(t)の全時刻tiについて、S603からS605までのステップをループ演算する。
【0080】
(S603)教示軌道修正部125は、時刻tiは教示軌道の開始時刻または終了時刻かを判定し、Yesの場合にはS602へ進み、Noの場合にはS604へ進む。
【0081】
(S604)教示軌道修正部125は、教示軌道記憶部147の教示軌道情報1000について、時刻tiにおける位置決め割合を、位置決め割合記憶部142の位置決め割合情報500の値で上書きする。
【0082】
(S605)教示軌道修正部125は、時刻tiにおける位置決め割合に対応する修正倍率kiをかけた差分姿勢の値(差分姿勢に比例する値)だけ加算した姿勢を修正後教示姿勢Tmodify(ti)として以下の式により算出する。これにより、簡便に適切な修正が可能となる。なお、位置決め割合に対応する修正倍率は、教示軌道修正方法記憶部143の教示軌道修正方法情報600のテーブルを参照することで決定する。
Tmodify(ti)=Textract(ti)+ki×Tdiff(ti)
[出力画面]
【0083】
図16に、本発明の出力となる出力画面の一例を示す。ボタンO101により、目標軌道情報が格納されたファイルが選択されると、選択したファイル名はO102欄に表示され、読み込まれた目標軌道が欄O103に表示される。欄O104には位置決め割合情報を入力する。ボタンO105により、計算が実行され、欄O106に出力結果である教示軌道情報が表示される。出力結果は欄O107にファイル名を記載し、ボタンO108によりファイル出力することができる。
【0084】
なお、本実施例では出力として教示軌道情報1000の画面表示のための欄O106及びファイル出力のためのボタンO108を備えるが、本実施例は必ずしも両方を備えるものに限定しない。また、欄O107で指定する出力ファイルのファイル形式は必ずしもCSV形式に限定するものではなく、例えば各ロボットメーカのロボットコントローラで読込可能な独自のロボットプログラム形式であってもよい。
[軌道修正処理の変形例]
【0085】
図17は、S600で行われる、教示軌道修正部125が実行する、教示軌道修正処理の変形例を示すフローチャートである。
図17のフローチャートに示す、S601~S605のステップは、
図15のフローチャートと同様の処理であるため説明を割愛し、
図15のフローチャートとの差分であるS606~S608のステップを以下説明する。
【0086】
(S606)教示軌道修正部125は、目標軌道Ttarget(t)の開始姿勢Ttarget(tstart)と終了姿勢Ttarget(tend)とS605で算出した修正後教示姿勢Tmodify(ti)を教示点として、ロボットを動作させるためのプログラムを生成する。なお、プログラムを生成する手法は公知の種々の手法を用いることができる。
【0087】
(S607)教示軌道修正部125は、ロボットやロボットが動作する環境の周囲の設備や、障害物等の寸法や配置の情報を含む設備設計情報を備えたシミュレータ上で、S606で作成したロボットプログラムによりロボットを動作させる。なお、教示軌道修正部125がシミュレータとしての機能を備えていてもよいし、記憶部140や教示装置100と接続される外部記憶装置に記憶されたシミュレータを教示軌道修正部125が呼び出して使用してもよい。また、設備設計情報は、S100のステップでユーザが入力してもよいし、記憶部140に記憶されていてもよい。
【0088】
(S608)教示軌道修正部125は、シミュレータ上でロボットプログラムを実行させロボットを非位置決め制御により動作させた結果、ロボットと周囲の設備や障害物等との間で干渉が発生していないか、設備設計情報を参照して判定する。干渉が発生した場合、ロボットの教示軌道を修正する必要があるため、S609のステップに進み、教示軌道を修正する。干渉が発生しない場合、ロボットの教示姿勢に問題はないと判定し、軌道修正処理を終了する。
【0089】
(S609)教示軌道修正部125は、S608のステップで得られたロボットプログラムのシミュレーション結果を出力部130に出力する。ユーザは出力画面を確認し、任意の教示姿勢の修正倍率kiを入力する。教示軌道修正部125は、時刻tiにおける教示姿勢の修正倍率kiをユーザが入力した位置決め割合で上書きし、再度抽出教示軌道Textract(t)の全時刻tiについて、S603からS605までのステップをループ演算する。
[編集画面]
【0090】
図18は、本発明の教示軌道修正処理S609のステップにおいて出力される、教示姿勢の編集画面の一例を示す。
【0091】
セクションO109はロボット動作の表示であり、セクションO1090はS606のステップで生成されたロボットプログラムの教示軌道を示しており、セクションO1091はシミュレータ上でロボットプログラムを実行させロボットを非位置決め制御により動作させた結果を示している。オブジェクトO1092は設備設計情報に含まれる障害物を表している。再生ボタンO1093を押すことで、ロボットプログラム、シミュレーション結果それぞれにおけるロボットの姿勢が時系列で連続的に表示される。さらに、スライドバーO1094を操作することで、所望の時点のロボットの姿勢を確認することができる。
【0092】
図18に示すように、ロボットプログラムの教示軌道を示すテーブルO110には、教示軌道情報1000に加えて、ロボット動作の表示O109が示している姿勢IDについて、姿勢IDを特定する現在位置の表示、時刻、極値判定、修正倍率が併記されている。ユーザはロボット動作の表示O109と教示軌道を示すテーブルO110を確認しながら、修正倍率の値をO111に入力する。
[ロボットの動作]
【0093】
上述した通り、本実施形態に係るロボット教示装置により生成された教示軌道情報は、目標軌道の始点と終点及び差分軌道の極大値または極小値を取るタイミングでの抽出姿勢により構成される。すなわち、本教示軌道情報に含まれる教示点は、非位置決め制御により動作する場合に目標軌道を通るために必要最低限の教示点である。一般に、教示点付近においては教示姿勢を取るためにロボットは減速し、また、その後加速するため、動作速度が一時的に低下してしまうことから、教示点が少ないほどロボットの動作は高速となる。よって、本実施形態にかかるロボット教示装置により生成された教示軌道情報で動作するロボットは、他の教示軌道情報で動作するロボットに比べて、教示点が少ないため動作速度が向上する。
[効果等]
【0094】
以上に説明したように本発明のロボット教示装置によれば、短時間での作業を要求されるロボットの教示において高速な動作が可能な非位置決め制御を用いながらも目標軌道を実現するための、動作軌道の教示軌道からの内回り具合を予測した教示軌道生成が可能となる。
【0095】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0096】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0097】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。