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

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

▶ オムロン株式会社の特許一覧

特許7115090加速度調整装置及び加速度調整プログラム
<>
  • 特許-加速度調整装置及び加速度調整プログラム 図1
  • 特許-加速度調整装置及び加速度調整プログラム 図2
  • 特許-加速度調整装置及び加速度調整プログラム 図3
  • 特許-加速度調整装置及び加速度調整プログラム 図4
  • 特許-加速度調整装置及び加速度調整プログラム 図5
  • 特許-加速度調整装置及び加速度調整プログラム 図6
  • 特許-加速度調整装置及び加速度調整プログラム 図7
  • 特許-加速度調整装置及び加速度調整プログラム 図8
  • 特許-加速度調整装置及び加速度調整プログラム 図9
  • 特許-加速度調整装置及び加速度調整プログラム 図10
  • 特許-加速度調整装置及び加速度調整プログラム 図11
  • 特許-加速度調整装置及び加速度調整プログラム 図12
  • 特許-加速度調整装置及び加速度調整プログラム 図13
  • 特許-加速度調整装置及び加速度調整プログラム 図14
  • 特許-加速度調整装置及び加速度調整プログラム 図15
  • 特許-加速度調整装置及び加速度調整プログラム 図16
  • 特許-加速度調整装置及び加速度調整プログラム 図17
  • 特許-加速度調整装置及び加速度調整プログラム 図18
  • 特許-加速度調整装置及び加速度調整プログラム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-01
(45)【発行日】2022-08-09
(54)【発明の名称】加速度調整装置及び加速度調整プログラム
(51)【国際特許分類】
   B25J 13/00 20060101AFI20220802BHJP
【FI】
B25J13/00 Z
【請求項の数】 5
(21)【出願番号】P 2018134106
(22)【出願日】2018-07-17
(65)【公開番号】P2020011321
(43)【公開日】2020-01-23
【審査請求日】2020-12-14
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】細見 心一
(72)【発明者】
【氏名】中島 茜
(72)【発明者】
【氏名】鈴村 章洋
(72)【発明者】
【氏名】倉谷 僚一
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2005-044230(JP,A)
【文献】特開2014-193520(JP,A)
【文献】特開平07-200030(JP,A)
【文献】特開平09-016241(JP,A)
【文献】特開2002-091572(JP,A)
【文献】特開2009-172721(JP,A)
【文献】特開2012-045641(JP,A)
【文献】特開2016-043439(JP,A)
【文献】米国特許出願公開第2011/0087375(US,A1)
【文献】米国特許第09975244(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10-13/00
G05B 19/18-19/4155
(57)【特許請求の範囲】
【請求項1】
ロボットの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、前記ロボットに作用すると予測される負荷のピーク値を算出する負荷算出部と、
前記ロボットが運動する際に前記ロボットに作用する負荷の目標値よりも、前記負荷算出部により算出した負荷のピーク値が大きい場合に、前記加速度を低減するように調整する第1調整と、前記目標値よりも前記ピーク値が小さい場合に、前記加速度を増加するように調整する第2調整との少なくとも一方を実行する加速度調整部と、
を有し
前記ロボットの関節の加速度及び前記運動方程式に基づいて算出される負荷のピーク値が、前記目標値から許容する加速度の調整時間に応じて決定されたマージン値だけ増減した所定範囲内の値になるまで、前記加速度調整部による前記加速度の調整及び前記負荷算出部による負荷のピーク値の算出を繰り返す
加速度調整装置。
【請求項2】
前記ロボットが動作する軌道は、複数の区間に分類され、
前記加速度調整部は、前記区間毎に、前記加速度の調整を行う請求項1記載の加速度調整装置。
【請求項3】
前記ロボットが動作する軌道は、前記ロボットの関節の角度値の変化の傾向が変わる点で区切られることにより、複数の区間に分類される請求項記載の加速度調整装置。
【請求項4】
前記加速度調整部は、前記加速度を調整する際、ユーザが指定した調整幅、二分探索法により得られる調整値、又は勾配法により得られる調整値により、前記加速度を増減させる請求項1~のいずれか一項に記載の加速度調整装置。
【請求項5】
ロボットの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、前記ロボットに作用すると予測される負荷のピーク値を算出する負荷算出ステップと、
前記ロボットが運動する際に前記ロボットに作用する負荷の目標値よりも、前記負荷算出ステップにおいて算出した負荷のピーク値が大きい場合に、前記加速度を低減するように調整する第1調整と、前記目標値よりも前記ピーク値が小さい場合に、前記加速度を増加するように調整する第2調整との少なくとも一項を実行する加速度調整ステップと、
含み、
前記ロボットの関節の加速度及び前記運動方程式に基づいて算出される負荷のピーク値が前記目標値から許容する加速度の調整時間に応じて決定されたマージン値だけ増減した所定範囲内の値になるまで、前記加速度調整ステップによる前記加速度の調整及び前記負荷算出ステップによる負荷のピーク値の算出を繰り返す
処理をコンピュータに実行させる加速度調整プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、加速度調整装置及び加速度調整プログラムに関する。
【背景技術】
【0002】
例えば、ロボットアームを備えたロボットの高速な動作を実現するために、動作経路におけるロボットの動作に関連するパラメータを人手で調整する必要があった。人手による調整においては、ロボットに過大な負荷を与えず、かつタクトタイムが短くなるパラメータ(ロボットの動作指令値)を見つけなくてはならず、その手間がユーザの大きな負担になる。特に、ロボットに動作経路を教示するための教示点、又はロボットの経路計画に基づいて生成された通過点のバリエーションが多い場合、全てのケースで最適なパラメータを事前に用意することは困難であった。
【0003】
そこで、自動でパラメータを決定するモーション生成システムが提案されている(例えば、特許文献1参照)。
【0004】
特許文献1記載のシステムでは、ロボットアームの可動範囲を複数の空間に分割し、それぞれの空間において駆動力の伝達要素にかかる負荷トルクが許容範囲となる各関節の加加速度の制約条件を事前に用意して用いる。特許文献1記載のシステムでは、加加速度の制約条件を不等式制約とした最適化問題を解くことによりパラメータを決定している。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2014-136275号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1記載のシステムでは、分割された一つの空間内における加加速度制約は一定であることを前提としている。しかしながら、分割された一つの空間が大きい場合、当該一つの空間内であってもロボットアームの姿勢により慣性モーメントが変化してしまう。一つの空間内における加加速度制約は一定という前提は成り立たなくなる。また、分割によって得る空間の大きさは、ユーザが設定できる。しかし、適切な空間の大きさをユーザが設定することは容易ではない。そのため、特許文献1記載の技術を、ロボットについての習熟度が低いユーザが用いた場合、必ずしも適切なロボットの加加速度が得られないという問題がある。
【0007】
本発明は、上記の点に鑑みてなされたものであり、ユーザの習熟度に関わらず、ロボットのパラメータである加速度を調整できる加速度調整装置及び加速度調整プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
開示の一態様は、加速度調整装置であって、ロボットの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、ロボットに作用すると予測される負荷のピーク値を算出する負荷算出部と、ロボットが運動する際にロボットに作用する負荷の目標値よりも、負荷算出部により算出した負荷のピーク値が大きい場合に、加速度を低減するように調整する第1調整と、目標値よりもピーク値が小さい場合に、加速度を増加するように調整する第2調整との少なくとも一方を実行する加速度調整部と、を有する。
【0009】
上記第一態様によれば、ロボットの関節の加速度及び運動方程式に基づいて算出される負荷のピーク値が目標値を含む所定範囲内の値になるまで、加速度調整部による加速度の調整及び負荷算出部による負荷のピーク値の算出を繰り返しうる。
【0010】
上記第一態様によれば、ロボットが動作する軌道は、複数の区間に分類され、加速度調整部は、区間毎に、加速度の調整を行いうる。また、上記第一態様によれば、ロボットが動作する軌道は、ロボットの関節の角度値の変化の傾向が変わる点で区切られることにより、複数の区間に分類されうる。
【0011】
上記第一態様によれば、加速度調整部は、加速度を調整する際、ユーザが指定した調整幅、二分探索法により得られる調整値、又は勾配法により得られる調整値により、加速度を増減させうる。
【0012】
開示の第二態様は、加速度調整プログラムであって、ロボットの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、ロボットに作用すると予測される負荷のピーク値を算出する負荷算出ステップと、ロボットが運動する際にロボットに作用する負荷の目標値よりも、負荷算出ステップにおいて算出した負荷のピーク値が大きい場合に、加速度を低減するように調整する第1調整と、目標値よりもピーク値が小さい場合に、加速度を増加するように調整する第2調整との少なくとも一方を実行する加速度調整ステップと、をコンピュータに実行させる。
【0013】
上記第二態様によれば、ロボットの関節の加速度及び運動方程式に基づいて算出される負荷のピーク値が目標値を含む所定範囲内の値になるまで、加速度調整ステップによる加速度の調整及び負荷算出ステップによる負荷のピーク値の算出を繰り返しうる。
【発明の効果】
【0014】
本発明によれば、ユーザの習熟度に関わらず、ロボットのパラメータである加速度を調整できる。
【図面の簡単な説明】
【0015】
図1】ロボット及び加速度調整装置の概略構成を示す図である。
図2】垂直多関節ロボットであるロボットの構成を示す図である。
図3】第1実施形態に係る加速度調整装置のハードウェア構成を示すブロック図である。
図4】加速度調整装置の機能構成の例を示すブロック図である。
図5】加速度調整装置による加速度調整処理の流れを示すフローチャートである。
図6】指令加速度を増減させる手法を示す図である。
図7】予測負荷と、ジョイントの回転速度との関係を示す図である。
図8】予測負荷のプロファイルと、プロファイルにおいて占めるトルクの成分とを表す図である。
図9】速度を低減した場合と、加速度を低減した場合とのタクトタイムの変化を示す図である。
図10】第2実施形態の加速度調整装置による加速度調整処理の流れを示すフローチャートである。
図11】ロボットの経路における、ジョイントの角度値の推移を示す図である。
図12】一つの区間における指令速度のプロファイルを示す図である。
図13】隣り合う区間における指令速度のプロファイルを合成する様子を示す図である。
図14】隣り合う区間における速度プロファイルを合成したときのジョイントの角度値の推移を示す図である。
図15】隣り合う区間の速度プロファイルを合成する他の例を示す図である。
図16】隣り合う区間の速度プロファイルを合成する他の例を示す図である。
図17】第3実施形態の加速度調整装置の機能構成を示すブロック図である。
図18】第3実施形態の加速度調整装置の加速度調整処理の流れを示すフローチャートである。
図19】通過点を生成する通過点生成処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0017】
(第1実施形態)
【0018】
図1は、ロボット及び加速度調整装置の概略構成を示す図である。
【0019】
図1に示すように、加速度調整装置10は、ロボットRBに接続され、ロボットRBが動作する際のパラメータ(動作指令値)を調整する。加速度調整装置10は、ロボットRBを制御する制御装置の一機能として、制御装置に組み込まれても良い。加速度調整装置10の詳細な構成については、後述する。
【0020】
ロボットRBは、ユーザにより教示される複数の教示点、又は、経路計画から生成された複数の通過点に沿って運動する。運動の際には、ロボットRBは、各種の動作指令値に従う。各種の動作指令値には、例えば、最高速度、加速度等が含まれる。ロボットRBは、加速度調整装置10により調整された加速度に従って運動する。
【0021】
ロボットRBは、一例として、ロボットアームAの先端にエンドエフェクタとしてロボットハンドHが取り付けられている。この場合、ロボットRBは、ワークを所定の位置で把持し、所定の目的地まで搬送及び載置する、いわゆるピックアンドプレースロボットである。他の例として、ロボットRBは、エンドエフェクタとして工具が取り付けられている。この場合、ロボットRBは、教示された経路又は経路計画に基づく経路に従って移動し、所定の場所で、溶接、ねじ止め、検査等の所定の処理を行う。
【0022】
加速度調整装置10の詳細について説明する前に、ロボットRBの構成について説明する。本実施形態では、一例としてロボットRBが垂直多関節ロボットである場合について説明する。しかし、水平多関節ロボット(スカラーロボット)、パラレルリンクロボット、直交ロボット、モバイルロボット、飛行ロボット(ドローン)、及びヒューマノイド型ロボット等にも本発明は適用可能である。
【0023】
図2は、垂直多関節ロボットであるロボットの構成を示す図である。
【0024】
図2に示すように、ロボットRBは、ベースリンクBL、リンクL1~L6、ジョイントJ1~J6を備えた6自由度の6軸ロボットである。なお、ジョイントとは、リンク同士を接続する関節である。ジョイントJ1~J6は、図示しないモータによりリンク同士を回転可能に接続する。また、以下では、リンクL1~L6及びリンクL6に接続されたロボットハンドHを含めてロボットアームと称する。本実施形態では、6軸ロボットを例に説明するが、軸の数は6に限定されず、1以上のいかなる数であっても良い。軸の数の伴い、リンクの数も変わる。
【0025】
ベースリンクBLとリンクL1とは、図2において鉛直軸S1を中心として矢印C1方向に回転するジョイントJ1を介して接続されている。従って、リンクL1は、ベースリンクBLを支点として矢印C1方向に回転する。
【0026】
リンクL1とリンクL2とは、図2において水平軸S2を中心として矢印C2方向に回転するジョイントJ2を介して接続されている。従って、リンクL2は、ジョイントJ1を支点として矢印C2方向に回転する。
【0027】
リンクL2とリンクL3とは、図2において軸S3を中心として矢印C3方向に回転するジョイントJ3を介して接続されている。従って、リンクL3は、ジョイントJ2を支点として矢印C3方向に回転する。
【0028】
リンクL3とリンクL4とは、図2において軸S4を中心として矢印C4方向に回転するジョイントJ4を介して接続されている。従って、リンクL4は、ジョイントJ3を支点として矢印C4方向に回転する。
【0029】
リンクL4とリンクL5とは、図2において軸S5を中心として矢印C5方向に回転するジョイントJ5を介して接続されている。従って、リンクL5は、ジョイントJ4を支点として矢印C5方向に回転する。
【0030】
リンクL5とリンクL6とは、図2において軸S6を中心として矢印C6方向に回転するジョイントJ6を介して接続されている。従って、リンクL6は、ジョイントJ5を支点として矢印C6方向に回転する。なお、図2では図示は省略したが、リンクL6にロボットハンドHが取り付けられる。
【0031】
ジョイントJ1~J6は、予め定めた回転角度の範囲が可動域として各々設定されている。
【0032】
ロボットRBの手先の位置又はロボットRBの姿勢は、各ジョイントJ1~J6の各々の回転角度によって定まる。従って、ロボットRBに経路を教示する場合には、各ジョイントJ1~J6の回転の角度値を、ロボットの持つ軸数分の次元のベクトル(本実施形態の場合は6次元のベクトル)として表現し、当該ベクトルを、教示点として順に教示する。経路を教示するのではなく生成する場合についても、同様に、ロボットRBが通過する通過点が、各ジョイントJ1~J6の軸数分の次元のベクトルとして生成される。さらに、ジョイントJ1~J6は、予め定められた回転角度における最高速度が各々設定されている。なお、動作経路として、教示点又は通過点における各角度値を持つベクトルデータではなく、直交座標系上での各座標値を持つベクトルデータが与えられる場合もある。この場合、直交座標系上の座標値は、ロボットの逆運動学に基づいて、ジョイントJ1~J6の角度値に変換可能である。また、ロボットRBが運動する際の速度は、例えば、ジョイントJ1~J6の各々の最高(角)速度データ及び(角)加速度データとしてロボットRBに与えられる。
【0033】
次に、加速度調整装置10について説明する。
【0034】
図3は、第1実施形態に係る加速度調整装置のハードウェア構成を示すブロック図である。
【0035】
図3に示すように、加速度調整装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、モニタ16、光ディスク駆動装置17及び通信インタフェース18を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0036】
本実施形態では、ROM12又はストレージ14には、ロボットRBに与える加速度を調整する加速度調整プログラムが格納されている。CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0037】
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0038】
入力部15は、キーボード151、及びマウス152等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ16は、例えば、液晶ディスプレイであり、ワークの吸着の成否等の各種の情報を表示する。モニタ16は、タッチパネル方式を採用して、入力部15として機能してもよい。光ディスク駆動装置17は、各種の記録媒体(CD-ROM又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【0039】
通信インタフェース18は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
【0040】
次に、加速度調整装置10の機能構成について説明する。
【0041】
図4は、加速度調整装置の機能構成の例を示すブロック図である。
【0042】
図4に示すように、加速度調整装置10は、機能構成として、負荷算出部101、加速度調整部102及び指令出力部103を有する。各機能構成は、CPU11がROM12又はストレージ14に記憶された加速度調整プログラムを読み出し、RAM13に展開して実行することにより実現される。
【0043】
負荷算出部101は、ロボットRBの動作経路を示す教示点列、ロボットRBの運動時の運動方程式、及び運動における加速度の初期値を、入力データとして取得する。教示点列、加速度の初期値は、ロボットRBの運動の目的に応じて適宜決定される。或いは、加速度の初期値は、ランダムに生成した値として取得されても良い。この場合、ユーザが加速度の初期値を決定し、予め入力する必要がなく、ユーザの負担を低減できる。また、運動方程式は、ロボットRBの物理モデル等を用いて、運動時のロボットRBの各ジョイントJ1~J6の加速度と、ロボットRBの各ジョイントJ1~J6に作用する負荷との関係を解析して数式化して得られる。運動方程式には、リンクL1~L6に作用する外力等の他の要素も含まれうる。負荷は、各ジョイントJ1~J6に作用するトルク、トルクの変化率、運動エネルギー、各ジョイントJ1~J6に供給される電流及び電力の少なくとも一つを含む機械的又は電気的エネルギーである。本実施形態では、負荷が、各ジョイントJ1~J6に作用するトルクである場合を例に説明する。
【0044】
負荷算出部101は、ロボットRBの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、ロボットRBのジョイントJ1~J6に作用すると予測される負荷(以下、予測負荷という)のピーク値を算出する。換言すると、負荷算出部101は、ロボットRBに実際に作用する負荷のピーク値ではなく、理論値として、運動方程式及び加速度の指令値から負荷のピーク値を予測する。なおピーク値は、ロボットRBの動作経路全般を通して、最も高い負荷値として得られる。
【0045】
加速度調整部102は、ロボットRBが運動する際にロボットRBに作用する負荷の目標値である負荷目標値を、入力データとして取得する。負荷目標値は、ロボットRBのジョイントJ1~J6毎に設定されても良いし、ジョイントJ1~J6に共通の値として設定されても良い。負荷目標値は、ロボットRBの仕様に応じて適宜決定される。例えば、負荷目標値は、ジョイントJ1~J6に対して許容される負荷の上限値から所定のマージン値だけ減算された値として得られる。
【0046】
加速度調整部102は、負荷算出部101により算出した各ジョイントJ1~J6の予測負荷のピーク値が、それぞれ、負荷目標値を含む所定範囲内の値であるか判断する。各ピーク値が所定範囲内の値でない場合、ジョイントJ1~J6に対する加速度の指令値(以下、指令加速度という)を調整する。指令加速度は、各ジョイントJ1~J6の加速度値を持つ6次元のベクトルである。加速度調整部102は、負荷目標値よりも、負荷算出部101により算出した予測負荷のピーク値が大きい場合に、加速度を低減するように調整する第1調整と、負荷目標値よりも予測負荷のピーク値が小さい場合に、加速度を増加するように調整する第2調整との少なくとも一方を実行する。
【0047】
加速度調整部102は、調整した加速度の値を、負荷算出部101に出力し、再度負荷の算出を促す。負荷の算出及び加速度の調整は、調整した加速度及び運動方程式により算出される予測負荷のピーク値が、負荷目標値を含む所定範囲内の値になるまで繰り返される。なお、負荷目標値を含む所定範囲は、例えば、負荷目標値をセンター値として、センター値からαの値だけ増減した範囲として設定される。この場合、上記のマージン値をαとすれば、所定範囲の上限が、許容負荷の上限値となる。αを大きく取る程、負荷目標値からのバラツキが大きく許容される。バラツキが大きいと、負荷目標値に近づけるという意味での精度は低くなる。ユーザは、許容する精度に応じて、αの値を決定しても良い。又は、αを大きく取る程、予測負荷のピーク値が所定範囲内の値となるまでに、加速度の調整が繰り返される回数が小さくなる。従って、ユーザは、許容する加速度の調整時間に応じて、αの値を決定しても良い。αは、ゼロであっても良い。加速度調整部102は、最終的に調整した加速度を、指令出力部103に入力する。
【0048】
指令出力部103は、加速度調整部102により調整された加速度を、ロボットRBの運度の指令値として、ロボットRBに出力する。
【0049】
次に、加速度調整装置10の作用について説明する。
【0050】
図5は、加速度調整装置による加速度調整処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から加速度調整プログラムを読み出して、RAM13に展開し実行することにより、加速度調整処理が行なわれる。
【0051】
CPU11は、負荷算出部101として、教示点列データを取得し(ステップS101)、ロボットRBの運動方程式を取得する(ステップS102)。CPU11は、負荷算出部として、更に加速度の初期値を取得し(ステップS103)、取得した加速度の初期値をロボットRBに運動させるための指令加速度としてひとまず設定する(ステップS104)。
【0052】
CPU11は、加速度調整部102として、負荷目標値を取得する(ステップS105)。なお、負荷目標値を含む所定範囲を設定するために負荷目標値に足し引きするαの値は、予め加速度調整部102に入力されていても良いし、負荷目標値と一緒に取得されても良い。
【0053】
CPU11は、負荷算出部101として、教示点列データ、運動方程式及び指令加速度から、運動中のロボットRBに作用すると予測される予測負荷(トルク)のピーク値を算出する(ステップS106)。
【0054】
CPU11は、加速度調整部102として、ステップS106で算出された予測負荷のピーク値が、負荷目標値からαの値だけ足し引きした所定範囲内の値であるか否か判断する(ステップS107)。予測負荷のピーク値が所定範囲内である場合(ステップS107:YES)、CPU11は、指令出力部103として、ロボットRBに対して指令加速度を出力し(ステップS108)、加速度調整処理を終了する。
【0055】
一方、予測負荷のピーク値が所定範囲内でない場合(ステップS107:NO)、CPU11は、算出した予測負荷のピーク値が、負荷目標値よりも大きいか否か判断する(ステップS109)。ピーク値が負荷目標値よりも大きい場合(ステップS109:YES)、CPU11は、指令加速度を所定の手法に基づいて減少するように調整し(ステップS110)、ステップS106の処理に戻る。ピーク値が負荷目標値以下の場合(ステップS109:NO)、CPU11は、指令加速度を所定の手法に基づいて増加するように調整し(ステップS111)、ステップS106の処理に戻る。ステップS110及びステップS111における指令加速度の増減の手法については、後述する。
【0056】
図6は、指令加速度を増減させる手法を示す図である。
【0057】
図6においては、指令加速度を増減させる手法として、三つの例を挙げている。定量増減の手法と、二分探索の手法と、勾配法とである。
【0058】
定量増減の手法では、負荷目標値に向けて加速度を一定量(ユーザが指定した調整幅)だけ増減していく。加速度を増減させる変量が一定なので、変量が小さい場合、予測負荷のピーク値が負荷目標値を含む所定範囲に入るまでの加速度の調整回数が多くなる。一方、変量が大きい場合、加速度が負荷目標値に近づくまでの加速度の調整回数は少ない。ただし、変量が大きすぎる場合、加速度を増加及び減少する度に、負荷目標値を超えてしまい、いつまでも所定範囲内に収束しない場合がある。
【0059】
二分探索の手法では、増減の値を半減しながら負荷目標値に予測負荷のピーク値を収束させる。二分探索を用いれば、予測負荷のピーク値は最終的には必ず所定範囲内に収束する。
【0060】
勾配法は、関数の勾配(偏導関数)を使う最適化アルゴリズムである。関数の勾配を低減しつつ、予測負荷のピーク値を負荷目標値を含む所定の範囲内に収束させる。
【0061】
上記の三つの手法はあくまで例示であり、その他の手法により、予測負荷のピーク値を所定範囲内に収束させても良い。終了条件として、1つ以上の軸における予測負荷のピーク値が所定範囲内であること、かつ、残りの軸における予測負荷のピーク値が負荷目標値以下であることとしても良い。
【0062】
以上のように、第1実施形態の加速度調整装置10によれば、予測負荷のピーク値が負荷目標値を含む所定の範囲内となるように、ロボットRBのジョイントJ1~J6に与える加速度を調整する。従って、ロボットRBについてのユーザの習熟度に関わらず、負荷目標値を含む所定の範囲内の負荷となるように、ロボットRBのジョイントJ1~J6の加速度を自動で調整できる。
【0063】
加速度調整装置10は、加速度を調整するので、速度を調整する場合よりも、ジョイントJ1~J6に作用する負荷を調整しやすく、かつ、タクトタイムを低減できる。この点について、図7図9を参照して説明する。
【0064】
図7は、予測負荷と、ジョイントの回転速度との関係を示す図である。図8は、予測負荷のプロファイルと、プロファイルにおいて占めるトルクの成分とを表す図である。図9は、速度を低減した場合と、加速度を低減した場合とのタクトタイムの変化を示す図である。
【0065】
図7において、横軸に時間を表し、縦軸にジョイントに作用する予測負荷を表している。また、図7には、ジョイントの速度の変化を点線により示している。図7に示すように、速度の増加に伴い、予測負荷が増加する。速度が減少し始めると、予測負荷の符号が反転し、予測負荷が増加する。
【0066】
ここで、図8に示すように、予測負荷のプロファイルを使って、予測負荷を構成する成分として、慣性トルク、摩擦トルク及びその他の力を表現できる。予測負荷をτとして、慣性トルク、摩擦トルク及びその他の力は、次の式として表すことができる。
【0067】
【数1】
【0068】
上記式(1)及び図8より、慣性トルクは加速度の大きさにより決まり、摩擦トルクは速度の大きさにより決まる。特に、図8に示すように、予測負荷に対する影響は、慣性トルクの方が摩擦トルクよりも大きい事が明確である。従って、速度のみを下げるだけでは、慣性トルクが効果的に下げられるか分からず、目標負荷値に近づけられるかも分からない。そもそも慣性トルクだけで、目標負荷値又は負荷の許容値を超えている場合、速度だけ低減しても、負荷を目標負荷値以下に抑えられない。一方、摩擦トルクだけで、目標負荷値又は負荷の許容値を超えるケースは一般的にはない。なぜなら、速度にも許容値が仕様として定義されており、速度が許容値の範囲内ならば、摩擦トルクが負荷の許容値を超えることはないからである。従って、加速度の調整だけで、予測負荷を目標負荷に抑えることは可能である。
【0069】
以上のように、負荷の成分の観点から、上記実施形態のように加速度を調整することが、速度を調整することよりも優れていることが明確である。
【0070】
また、図9の上図に示すように、速度を低減した場合、図9の下図に示すように、加速度を低減した場合と比べて、パラメータの変動を大きくする必要がある。換言すると、加速度の低減の方が、速度の低減よりも、変化率が小さくても同じだけ負荷を低減できる。このため、同じ負荷を低減する場合でも、加速度を低減する方が、速度を低減するよりも動作時間が短くなる。結果として、図9に示すように、加速度を調整した場合の方が、同じ負荷を速度により調整する場合に比べて、タクトタイムが短くなる。
【0071】
以上のように、タクトタイムの観点から、上記実施形態のように加速度を調整することが、速度を調整することよりも優れていることが明確である。
【0072】
(第2実施形態)
【0073】
第1実施形態では、ロボットRBの経路の全体に亘って負荷目標値に合わせて加速度を調整している。第2実施形態では、ロボットRBの経路を複数の区間に分割し、区間毎に加速度を調整する。
【0074】
以下、第2実施形態の加速度調整装置10について説明する。
【0075】
図10は、第2実施形態の加速度調整装置による加速度調整処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から加速度調整プログラムを読み出して、RAM13に展開し実行することにより、加速度調整処理が行なわれる。また、図10に示す処理のステップのうち、図5に示す第1実施形態の加速度調整処理と同様のステップについては、同じステップ番号を付し、詳細な説明を省略する。
【0076】
CPU11は、ステップS101~ステップS105の処理に続き、変数iに1を代入する(ステップS201)。CPU11は、ステップS101において取得した教示点列データから、区間TiにおけるロボットRBの経路を抽出し、ステップS102において取得したロボットRBの運動方程式及び加速度に基づいて、抽出した経路における予測負荷のピーク値を算出する(ステップS202)。なお、ロボットRBの全経路を、区間Tiに分割する手法については、後述する。
【0077】
CPU11は、ステップS202において算出したピーク値が、負荷目標値からαの値だけ足し引きした所定範囲内の値であるか否か判断する(ステップS203)。予測負荷のピーク値が所定範囲内でない場合(ステップS203:NO)、CPU11は、加速度を調整するために、ステップS109の処理に進む。一方、予測負荷のピーク値が所定範囲内である場合(ステップS203:YES)、CPU11は、変数iを1だけインクリメントする(ステップS204)。CPU11は、ステップS204においてiをインクリメントした結果、変数iが全区間数より大きくなったか否か判断する(ステップS205)。変数iが全区間数より大きくなった場合、全区間について加速度の調整が完了したことになるからである。
【0078】
iが全区間数よりも大きくない場合(ステップS205:NO)、CPU11は、ステップS202の処理に戻る。iが全区間数よりも大きい場合(ステップS205:YES)、CPU11は、調整した加速度に基づいて、ロボットRBに動作指令を出力する(ステップS108)。
【0079】
以上のように、第2実施形態においては、区間Ti毎に、負荷目標値に基づいて、加速度を調整するので、区間毎に最適な加速度が得られ、結果として、第1実施形態よりも、タクトタイムを短くしうる。
【0080】
次に、ロボットRBの全経路を、区間Tiに分割する手法について説明する。
【0081】
図11は、ロボットの経路における、ジョイントの角度値の推移を示す図である。
【0082】
図11では、説明を簡単にするため、ジョイントJ1及びジョイントJ2の角度値の推移だけ2次元により座標空間に示している。しかし、実際には、全ジョイントJ1~J6の角度値の推移が、6次元座標空間において考慮される。
【0083】
点P1~P3は、それぞれ、ロボットRBが通過する通過点を示す。通過点は、例えば、教示点として与えられる。図11に示すように、点P1から点P3まで移動する際に、点P2において、ジョイントJ1及びジョイントJ2の角度値の変化の傾向が変わっている。換言すると、点P2において、ジョイントJ1及びジョイントJ2の速度が変化している。このように、角度値の変化の傾向として、例えば速度が変化する点P2において、経路の区間が区切られる。この結果、点P1から点P2が区間T1に設定され、点P2から点P3が区間T2に設定される。
【0084】
次に、各区間の動作のために、ロボットRBに与えられる指令値についてより詳細に説明する。特に、経路が複数の区間に分割される場合に、隣り合う区間における指令値が相互に作用する点について説明する。
【0085】
図12は、一つの区間における指令速度のプロファイルを示す図である。図13は、隣り合う区間における指令速度のプロファイルを合成する様子を示す図である。図14は、隣り合う区間における速度プロファイルを合成したときのジョイントの角度値の推移を示す図である。
【0086】
図12において、縦軸にはジョイントの速度を表し、横軸に時間を表す。各区間について、図12に示すように、ジョイントJ1~J6に対する速度の指令値(指令速度)及び指令加速度が設定される。本実施形態では、指令速度は、ロボットRBに許容される最大速度を目標として予め設定されており、指令加速度は、図10の加速度調整処理により調整して設定される。指令値は、図12に示すような台形の速度プロファイル、又は、等速時間がない場合は三角形の速度プロファイルを示す。
【0087】
図13の上図に示すように、隣り合う区間T1及び区間T2の速度プロファイルが図10の加速度の調整により設定されているとする。区間T1の速度プロファイルでは、減速時間において速度が指令速度から0まで減速される。区間T2の速度プロファイルでは、加速時間において速度が0から区間T1と同じ指令速度まで加速される。従って、区間T1のプロファイルに区間T2のプロファイルをそのまま続ける場合、区間T2で同じ指令速度まで加速するにも関わらず、減速することになる。この減速及び加速は無駄である。従って、図13の下図に示すように、区間T1の減速時間と、区間T2の加速時間がオーバーラップされ、指令値が合算される。例えば、時間t1で見ると、区間T1の指令速度VT1と、区間T2の指令速度VT2とが合算される。この結果、それぞれの区間T1及びT2の等速部分と同じ指令速度が得られる。このように、オーバーラップされた部分において、指令値が合算されることにより、図中の一点鎖線で示す合算部分の指令値が得られる。図13に示す例では、区間T1及び区間T2の等速部分が連続して結ばれる。
【0088】
隣り合う区間T1及び区間T2の減速時間及び加速時間の指令値がオーバーラップされることによって、ロボットRBが通過する経路が変わる。当初は、図11に示すように、ロボットRBは、点P1、点P2、点P3の順に移動するように角度値のベクトルが設定される。しかし、区間T1及び区間T2の一部で指令値が合算されることにより、図14に示すように、ロボットRBは、点P2を通過せずに、区間T1から区間T2に滑らかに移動する。
【0089】
上述のように、図10の加速度調整処理の結果に基づいて、まずは区間毎に速度プロファイルが作成され、更に隣り合う区間の減速時間及び加速時間で指令速度を合成することにより、ロボットRBの動きをよりスムーズにできる。
【0090】
図15及び図16は、隣り合う区間の速度プロファイルを合成する他の例を示す図である。
【0091】
図15に示すように、区間T2の最高速度が区間T1の最高速度よりも小さい場合においても、区間T1の減速時間と区間T2の加速時間における指令速度を一点鎖線で示すように合算できる。
【0092】
また、図16に示すように、区間T2で速度が反転する場合でも、区間T1の減速時間と区間T2の(マイナスの)加速時間における指令速度を一点鎖線で示すように合算できる。合算の結果、指令加速度は、区間T1の減速時間の指令加速度及び区間T2の加速時間の指令加速度よりも、絶対値として大きな値となる。加速度が大きくなる分、ロボットRBの負荷も大きくなる。
【0093】
(第3実施形態)
【0094】
第1実施形態及び第2実施形態においては、ロボットRBの経路が教示される場合について説明した。第3実施形態では、ロボットRBの経路を加速度調整装置10が自身で生成する。
【0095】
図17は、第3実施形態の加速度調整装置の機能構成を示すブロック図である。
【0096】
第3実施形態の加速度調整装置10においては、図4に示す第1実施形態の加速度調整装置10の機能構成に加えて、経路生成部201を更に有する。経路生成部201は、CPU11がROM12又はストレージ14に記憶された加速度調整プログラムを読み出し、RAM13に展開して実行することにより実現される。
【0097】
経路生成部201は、ロボットRBの初期姿勢データ及び最終的な目標姿勢データを取得する。初期姿勢データ及び目標姿勢データは、例えば、ロボットRBの各ジョイントJ1~J6の回転の角度値を持つ6次元のベクトルとして与えられる。経路生成部201は、初期姿勢データが表す初期姿勢から、目標姿勢データが表す目標姿勢まで、ロボットRBを動作させる経路、すなわち、ロボットRBを通過させる通過点を生成する。通過点の生成について、詳細は後述する。
【0098】
図18は、第3実施形態の加速度調整装置の加速度調整処理の流れを示すフローチャートである。図19は、通過点を生成する通過点生成処理の流れを示すフローチャートである。CPU11が、ROM12又はストレージ14から加速度調整プログラム及び通過点生成プログラムを読み出して、RAM13に展開し実行することにより、図18の加速度調整処理及び図19の通過点生成処理が行なわれる。また、図18に示す処理のステップのうち、図5に示す第1実施形態の加速度調整処理と同様のステップについては、同じステップ番号を付し、詳細な説明を省略する。
【0099】
CPU11は、ロボットRBの初期姿勢データ及び目標姿勢データを取得する(ステップS301)。CPU11は、取得した初期姿勢データ及び目標姿勢データから、ロボットRBの通過点列データを生成する(ステップS302)。以降の処理は、図5と同様である。
【0100】
通過点列データの生成について、図19を参照して説明する。経路生成アルゴリズムとしては、種々のものがある。例えば、PRM(Probabilistic Roadmap Method)及びRRT(Rapidly ecploring Random Tree)などのランダムサンプリング手法が挙げられる。この他に、STOMP(Stochastic Trajectory Optimization for Motion Planning)及びCHOMP(Covariant Hamiltonian Optimization for Motion Planning)のような最適化手法が適用されても良い。上記のような、経路生成アルゴリズムを適用することにより、初期姿勢から目標姿勢までの経路を高速に生成できる。経路生成のために、いかなる手法が適用されてもよい。以下では、RRTを例に説明される。
【0101】
CPU11は、コンフィギュレーション空間内から1点をサンプリングする(ステップS401)。例えば、初期姿勢データが示す点、又は、既に生成した通過点から最も近い点をサンプリングする。ここで、コンフィギュレーション空間とは、ロボットRBが取りうる全ての姿勢(ジョイント数の次元のベクトル)の集合として表される空間である。
【0102】
CPU11は、サンプリングした点の姿勢をロボットRBが取った場合に、ロボットRBが自己干渉したり、或いは、他の装置又は設備と衝突したりするかを判定する(ステップS402)。なお、自己干渉又は他の装置等との衝突を判定するため、上述していないが、CPU11は、形状又は機構等の情報を含むシミュレーションモデルを用いる。
【0103】
ステップS402の結果、衝突が発生すると判定した場合(ステップS403:YES)、今回サンプリングした点は実施できないため、CPU11は、別の点をサンプリングするために、ステップS401の処理に戻る。
【0104】
衝突が発生しないと判定した場合(ステップS403:NO)、CPU11は、サンプリングした点を、通過点列に追加する(ステップS404)。CPU11は、通過点列が目標姿勢まで到達したか否か判断する(ステップS405)。
【0105】
目標姿勢まで到達していない場合(ステップS405:NO)、CPU11は、次の通過点を追加するために、ステップS401の処理に戻る。目標姿勢まで到達した場合(ステップS405:YES)、CPU11は、通過点生成処理を終了して、加速度調整処理に戻る。
【0106】
以上のように、通過点を生成する場合についても、加速度調整処理を適切に適用できる。なお、通過点を生成した上で、図10に示すように、経路を複数の区間に分割し、区間毎に加速度を調整しても良い。また、通過点の生成には、平滑化するステップが含まれても良い。平滑化の具体的な手法としては、パスプルーニング法(Path Pruning)、又は、ショートカット法を適用できる。
【0107】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した加速度調整処理及び経路生成処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、加速度調整処理及び経路生成処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0108】
また、上記各実施形態では、加速度調整処理及び経路生成処理のプログラムがROM12又はストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0109】
10 加速度調整装置
101 負荷算出部
102 加速度調整部
103 指令出力部
201 経路生成部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19