(57)【要約】【課題】ユーザの習熟度に関わらず、ロボットのパラメータである加速度を調整できる加速度調整装置を提供する。【解決手段】加速度調整装置１０は、ロボットの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、ロボットに作用すると予測される負荷のピーク値を算出する負荷算出部１０１と、ロボットが運動する際にロボットに作用する負荷の目標値よりも、負荷算出部により算出した負荷のピーク値が大きい場合に、加速度を低減するように調整する第１調整と、目標値よりもピーク値が小さい場合に、加速度を増加するように調整する第２調整との少なくとも一方を実行する加速度調整部１０２と、を有する。【選択図】図１
2020011321.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、前記ロボットに作用すると予測される負荷のピーク値を算出する負荷算出部と、
前記ロボットが運動する際に前記ロボットに作用する負荷の目標値よりも、前記負荷算出部により算出した負荷のピーク値が大きい場合に、前記加速度を低減するように調整する第１調整と、前記目標値よりも前記ピーク値が小さい場合に、前記加速度を増加するように調整する第２調整との少なくとも一方を実行する加速度調整部と、
を有する加速度調整装置。
【請求項２】
前記ロボットの関節の加速度及び前記運動方程式に基づいて算出される負荷のピーク値が前記目標値を含む所定範囲内の値になるまで、前記加速度調整部による前記加速度の調整及び前記負荷算出部による負荷のピーク値の算出を繰り返す請求項１に記載の加速度調整装置。
【請求項３】
前記ロボットが動作する軌道は、複数の区間に分類され、
前記加速度調整部は、前記区間毎に、前記加速度の調整を行う請求項１又は請求項２に記載の加速度調整装置。
【請求項４】
前記ロボットが動作する軌道は、前記ロボットの関節の角度値の変化の傾向が変わる点で区切られることにより、複数の区間に分類される請求項３記載の加速度調整装置。
【請求項５】
前記加速度調整部は、前記加速度を調整する際、ユーザが指定した調整幅、二分探索法により得られる調整値、又は勾配法により得られる調整値により、前記加速度を増減させる請求項１〜４のいずれか一項に記載の加速度調整装置。
【請求項６】
ロボットの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、前記ロボットに作用すると予測される負荷のピーク値を算出する負荷算出ステップと、
前記ロボットが運動する際に前記ロボットに作用する負荷の目標値よりも、前記負荷算出ステップにおいて算出した負荷のピーク値が大きい場合に、前記加速度を低減するように調整する第１調整と、前記目標値よりも前記ピーク値が小さい場合に、前記加速度を増加するように調整する第２調整との少なくとも一項を実行する加速度調整ステップと、
をコンピュータに実行させる加速度調整プログラム。
【請求項７】
前記ロボットの関節の加速度及び前記運動方程式に基づいて算出される負荷のピーク値が前記目標値を含む所定範囲内の値になるまで、前記加速度調整ステップによる前記加速度の調整及び前記負荷算出ステップによる負荷のピーク値の算出を繰り返す請求項６に記載の加速度調整プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加速度調整装置及び加速度調整プログラムに関する。
【背景技術】
【０００２】
例えば、ロボットアームを備えたロボットの高速な動作を実現するために、動作経路におけるロボットの動作に関連するパラメータを人手で調整する必要があった。人手による調整においては、ロボットに過大な負荷を与えず、かつタクトタイムが短くなるパラメータ（ロボットの動作指令値）を見つけなくてはならず、その手間がユーザの大きな負担になる。特に、ロボットに動作経路を教示するための教示点、又はロボットの経路計画に基づいて生成された通過点のバリエーションが多い場合、全てのケースで最適なパラメータを事前に用意することは困難であった。
【０００３】
そこで、自動でパラメータを決定するモーション生成システムが提案されている（例えば、特許文献１参照）。
【０００４】
特許文献１記載のシステムでは、ロボットアームの可動範囲を複数の空間に分割し、それぞれの空間において駆動力の伝達要素にかかる負荷トルクが許容範囲となる各関節の加加速度の制約条件を事前に用意して用いる。特許文献１記載のシステムでは、加加速度の制約条件を不等式制約とした最適化問題を解くことによりパラメータを決定している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１３６２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１記載のシステムでは、分割された一つの空間内における加加速度制約は一定であることを前提としている。しかしながら、分割された一つの空間が大きい場合、当該一つの空間内であってもロボットアームの姿勢により慣性モーメントが変化してしまう。一つの空間内における加加速度制約は一定という前提は成り立たなくなる。また、分割によって得る空間の大きさは、ユーザが設定できる。しかし、適切な空間の大きさをユーザが設定することは容易ではない。そのため、特許文献１記載の技術を、ロボットについての習熟度が低いユーザが用いた場合、必ずしも適切なロボットの加加速度が得られないという問題がある。
【０００７】
本発明は、上記の点に鑑みてなされたものであり、ユーザの習熟度に関わらず、ロボットのパラメータである加速度を調整できる加速度調整装置及び加速度調整プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
開示の一態様は、加速度調整装置であって、ロボットの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、ロボットに作用すると予測される負荷のピーク値を算出する負荷算出部と、ロボットが運動する際にロボットに作用する負荷の目標値よりも、負荷算出部により算出した負荷のピーク値が大きい場合に、加速度を低減するように調整する第１調整と、目標値よりもピーク値が小さい場合に、加速度を増加するように調整する第２調整との少なくとも一方を実行する加速度調整部と、を有する。
【０００９】
上記第一態様によれば、ロボットの関節の加速度及び運動方程式に基づいて算出される負荷のピーク値が目標値を含む所定範囲内の値になるまで、加速度調整部による加速度の調整及び負荷算出部による負荷のピーク値の算出を繰り返しうる。
【００１０】
上記第一態様によれば、ロボットが動作する軌道は、複数の区間に分類され、加速度調整部は、区間毎に、加速度の調整を行いうる。また、上記第一態様によれば、ロボットが動作する軌道は、ロボットの関節の角度値の変化の傾向が変わる点で区切られることにより、複数の区間に分類されうる。
【００１１】
上記第一態様によれば、加速度調整部は、加速度を調整する際、ユーザが指定した調整幅、二分探索法により得られる調整値、又は勾配法により得られる調整値により、加速度を増減させうる。
【００１２】
開示の第二態様は、加速度調整プログラムであって、ロボットの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、ロボットに作用すると予測される負荷のピーク値を算出する負荷算出ステップと、ロボットが運動する際にロボットに作用する負荷の目標値よりも、負荷算出ステップにおいて算出した負荷のピーク値が大きい場合に、加速度を低減するように調整する第１調整と、目標値よりもピーク値が小さい場合に、加速度を増加するように調整する第２調整との少なくとも一方を実行する加速度調整ステップと、をコンピュータに実行させる。
【００１３】
上記第二態様によれば、ロボットの関節の加速度及び運動方程式に基づいて算出される負荷のピーク値が目標値を含む所定範囲内の値になるまで、加速度調整ステップによる加速度の調整及び負荷算出ステップによる負荷のピーク値の算出を繰り返しうる。
【発明の効果】
【００１４】
本発明によれば、ユーザの習熟度に関わらず、ロボットのパラメータである加速度を調整できる。
【図面の簡単な説明】
【００１５】
【図１】ロボット及び加速度調整装置の概略構成を示す図である。
【図２】垂直多関節ロボットであるロボットの構成を示す図である。
【図３】第１実施形態に係る加速度調整装置のハードウェア構成を示すブロック図である。
【図４】加速度調整装置の機能構成の例を示すブロック図である。
【図５】加速度調整装置による加速度調整処理の流れを示すフローチャートである。
【図６】指令加速度を増減させる手法を示す図である。
【図７】予測負荷と、ジョイントの回転速度との関係を示す図である。
【図８】予測負荷のプロファイルと、プロファイルにおいて占めるトルクの成分とを表す図である。
【図９】速度を低減した場合と、加速度を低減した場合とのタクトタイムの変化を示す図である。
【図１０】第２実施形態の加速度調整装置による加速度調整処理の流れを示すフローチャートである。
【図１１】ロボットの経路における、ジョイントの角度値の推移を示す図である。
【図１２】一つの区間における指令速度のプロファイルを示す図である。
【図１３】隣り合う区間における指令速度のプロファイルを合成する様子を示す図である。
【図１４】隣り合う区間における速度プロファイルを合成したときのジョイントの角度値の推移を示す図である。
【図１５】隣り合う区間の速度プロファイルを合成する他の例を示す図である。
【図１６】隣り合う区間の速度プロファイルを合成する他の例を示す図である。
【図１７】第３実施形態の加速度調整装置の機能構成を示すブロック図である。
【図１８】第３実施形態の加速度調整装置の加速度調整処理の流れを示すフローチャートである。
【図１９】通過点を生成する通過点生成処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【００１７】
（第１実施形態）
【００１８】
図１は、ロボット及び加速度調整装置の概略構成を示す図である。
【００１９】
図１に示すように、加速度調整装置１０は、ロボットＲＢに接続され、ロボットＲＢが動作する際のパラメータ（動作指令値）を調整する。加速度調整装置１０は、ロボットＲＢを制御する制御装置の一機能として、制御装置に組み込まれても良い。加速度調整装置１０の詳細な構成については、後述する。
【００２０】
ロボットＲＢは、ユーザにより教示される複数の教示点、又は、経路計画から生成された複数の通過点に沿って運動する。運動の際には、ロボットＲＢは、各種の動作指令値に従う。各種の動作指令値には、例えば、最高速度、加速度等が含まれる。ロボットＲＢは、加速度調整装置１０により調整された加速度に従って運動する。
【００２１】
ロボットＲＢは、一例として、ロボットアームＡの先端にエンドエフェクタとしてロボットハンドＨが取り付けられている。この場合、ロボットＲＢは、ワークを所定の位置で把持し、所定の目的地まで搬送及び載置する、いわゆるピックアンドプレースロボットである。他の例として、ロボットＲＢは、エンドエフェクタとして工具が取り付けられている。この場合、ロボットＲＢは、教示された経路又は経路計画に基づく経路に従って移動し、所定の場所で、溶接、ねじ止め、検査等の所定の処理を行う。
【００２２】
加速度調整装置１０の詳細について説明する前に、ロボットＲＢの構成について説明する。本実施形態では、一例としてロボットＲＢが垂直多関節ロボットである場合について説明する。しかし、水平多関節ロボット（スカラーロボット）、パラレルリンクロボット、直交ロボット、モバイルロボット、飛行ロボット（ドローン）、及びヒューマノイド型ロボット等にも本発明は適用可能である。
【００２３】
図２は、垂直多関節ロボットであるロボットの構成を示す図である。
【００２４】
図２に示すように、ロボットＲＢは、ベースリンクＢＬ、リンクＬ１〜Ｌ６、ジョイントＪ１〜Ｊ６を備えた６自由度の６軸ロボットである。なお、ジョイントとは、リンク同士を接続する関節である。ジョイントＪ１〜Ｊ６は、図示しないモータによりリンク同士を回転可能に接続する。また、以下では、リンクＬ１〜Ｌ６及びリンクＬ６に接続されたロボットハンドＨを含めてロボットアームと称する。本実施形態では、６軸ロボットを例に説明するが、軸の数は６に限定されず、１以上のいかなる数であっても良い。軸の数の伴い、リンクの数も変わる。
【００２５】
ベースリンクＢＬとリンクＬ１とは、図２において鉛直軸Ｓ１を中心として矢印Ｃ１方向に回転するジョイントＪ１を介して接続されている。従って、リンクＬ１は、ベースリンクＢＬを支点として矢印Ｃ１方向に回転する。
【００２６】
リンクＬ１とリンクＬ２とは、図２において水平軸Ｓ２を中心として矢印Ｃ２方向に回転するジョイントＪ２を介して接続されている。従って、リンクＬ２は、ジョイントＪ１を支点として矢印Ｃ２方向に回転する。
【００２７】
リンクＬ２とリンクＬ３とは、図２において軸Ｓ３を中心として矢印Ｃ３方向に回転するジョイントＪ３を介して接続されている。従って、リンクＬ３は、ジョイントＪ２を支点として矢印Ｃ３方向に回転する。
【００２８】
リンクＬ３とリンクＬ４とは、図２において軸Ｓ４を中心として矢印Ｃ４方向に回転するジョイントＪ４を介して接続されている。従って、リンクＬ４は、ジョイントＪ３を支点として矢印Ｃ４方向に回転する。
【００２９】
リンクＬ４とリンクＬ５とは、図２において軸Ｓ５を中心として矢印Ｃ５方向に回転するジョイントＪ５を介して接続されている。従って、リンクＬ５は、ジョイントＪ４を支点として矢印Ｃ５方向に回転する。
【００３０】
リンクＬ５とリンクＬ６とは、図２において軸Ｓ６を中心として矢印Ｃ６方向に回転するジョイントＪ６を介して接続されている。従って、リンクＬ６は、ジョイントＪ５を支点として矢印Ｃ６方向に回転する。なお、図２では図示は省略したが、リンクＬ６にロボットハンドＨが取り付けられる。
【００３１】
ジョイントＪ１〜Ｊ６は、予め定めた回転角度の範囲が可動域として各々設定されている。
【００３２】
ロボットＲＢの手先の位置又はロボットＲＢの姿勢は、各ジョイントＪ１〜Ｊ６の各々の回転角度によって定まる。従って、ロボットＲＢに経路を教示する場合には、各ジョイントＪ１〜Ｊ６の回転の角度値を、ロボットの持つ軸数分の次元のベクトル(本実施形態の場合は６次元のベクトル)として表現し、当該ベクトルを、教示点として順に教示する。経路を教示するのではなく生成する場合についても、同様に、ロボットＲＢが通過する通過点が、各ジョイントＪ１〜Ｊ６の軸数分の次元のベクトルとして生成される。さらに、ジョイントＪ１〜Ｊ６は、予め定められた回転角度における最高速度が各々設定されている。なお、動作経路として、教示点又は通過点における各角度値を持つベクトルデータではなく、直交座標系上での各座標値を持つベクトルデータが与えられる場合もある。この場合、直交座標系上の座標値は、ロボットの逆運動学に基づいて、ジョイントＪ１〜Ｊ６の角度値に変換可能である。また、ロボットＲＢが運動する際の速度は、例えば、ジョイントＪ１〜Ｊ６の各々の最高（角）速度データ及び（角）加速度データとしてロボットＲＢに与えられる。
【００３３】
次に、加速度調整装置１０について説明する。
【００３４】
図３は、第１実施形態に係る加速度調整装置のハードウェア構成を示すブロック図である。
【００３５】
図３に示すように、加速度調整装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、ストレージ１４、入力部１５、モニタ１６、光ディスク駆動装置１７及び通信インタフェース１８を有する。各構成は、バス１９を介して相互に通信可能に接続されている。
【００３６】
本実施形態では、ＲＯＭ１２又はストレージ１４には、ロボットＲＢに与える加速度を調整する加速度調整プログラムが格納されている。ＣＰＵ１１は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４からプログラムを読み出し、ＲＡＭ１３を作業領域としてプログラムを実行する。ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４に記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【００３７】
ＲＯＭ１２は、各種プログラム及び各種データを格納する。ＲＡＭ１３は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ１４は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【００３８】
入力部１５は、キーボード１５１、及びマウス１５２等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ１６は、例えば、液晶ディスプレイであり、ワークの吸着の成否等の各種の情報を表示する。モニタ１６は、タッチパネル方式を採用して、入力部１５として機能してもよい。光ディスク駆動装置１７は、各種の記録媒体(ＣＤ−ＲＯＭ又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【００３９】
通信インタフェース１８は、他の機器と通信するためのインタフェースであり、例えば、イーサネット（登録商標）、ＦＤＤＩ又はＷｉ−Ｆｉ（登録商標）等の規格が用いられる。
【００４０】
次に、加速度調整装置１０の機能構成について説明する。
【００４１】
図４は、加速度調整装置の機能構成の例を示すブロック図である。
【００４２】
図４に示すように、加速度調整装置１０は、機能構成として、負荷算出部１０１、加速度調整部１０２及び指令出力部１０３を有する。各機能構成は、ＣＰＵ１１がＲＯＭ１２又はストレージ１４に記憶された加速度調整プログラムを読み出し、ＲＡＭ１３に展開して実行することにより実現される。
【００４３】
負荷算出部１０１は、ロボットＲＢの動作経路を示す教示点列、ロボットＲＢの運動時の運動方程式、及び運動における加速度の初期値を、入力データとして取得する。教示点列、加速度の初期値は、ロボットＲＢの運動の目的に応じて適宜決定される。或いは、加速度の初期値は、ランダムに生成した値として取得されても良い。この場合、ユーザが加速度の初期値を決定し、予め入力する必要がなく、ユーザの負担を低減できる。また、運動方程式は、ロボットＲＢの物理モデル等を用いて、運動時のロボットＲＢの各ジョイントＪ１〜Ｊ６の加速度と、ロボットＲＢの各ジョイントＪ１〜Ｊ６に作用する負荷との関係を解析して数式化して得られる。運動方程式には、リンクＬ１〜Ｌ６に作用する外力等の他の要素も含まれうる。負荷は、各ジョイントＪ１〜Ｊ６に作用するトルク、トルクの変化率、運動エネルギー、各ジョイントＪ１〜Ｊ６に供給される電流及び電力の少なくとも一つを含む機械的又は電気的エネルギーである。本実施形態では、負荷が、各ジョイントＪ１〜Ｊ６に作用するトルクである場合を例に説明する。
【００４４】
負荷算出部１０１は、ロボットＲＢの運動に関する運動方程式及び運動時のロボットの関節の加速度の値に基づいて、ロボットＲＢのジョイントＪ１〜Ｊ６に作用すると予測される負荷（以下、予測負荷という）のピーク値を算出する。換言すると、負荷算出部１０１は、ロボットＲＢに実際に作用する負荷のピーク値ではなく、理論値として、運動方程式及び加速度の指令値から負荷のピーク値を予測する。なおピーク値は、ロボットＲＢの動作経路全般を通して、最も高い負荷値として得られる。
【００４５】
加速度調整部１０２は、ロボットＲＢが運動する際にロボットＲＢに作用する負荷の目標値である負荷目標値を、入力データとして取得する。負荷目標値は、ロボットＲＢのジョイントＪ１〜Ｊ６毎に設定されても良いし、ジョイントＪ１〜Ｊ６に共通の値として設定されても良い。負荷目標値は、ロボットＲＢの仕様に応じて適宜決定される。例えば、負荷目標値は、ジョイントＪ１〜Ｊ６に対して許容される負荷の上限値から所定のマージン値だけ減算された値として得られる。
【００４６】
加速度調整部１０２は、負荷算出部１０１により算出した各ジョイントＪ１〜Ｊ６の予測負荷のピーク値が、それぞれ、負荷目標値を含む所定範囲内の値であるか判断する。各ピーク値が所定範囲内の値でない場合、ジョイントＪ１〜Ｊ６に対する加速度の指令値（以下、指令加速度という）を調整する。指令加速度は、各ジョイントＪ１〜Ｊ６の加速度値を持つ６次元のベクトルである。加速度調整部１０２は、負荷目標値よりも、負荷算出部１０１により算出した予測負荷のピーク値が大きい場合に、加速度を低減するように調整する第１調整と、負荷目標値よりも予測負荷のピーク値が小さい場合に、加速度を増加するように調整する第２調整との少なくとも一方を実行する。
【００４７】
加速度調整部１０２は、調整した加速度の値を、負荷算出部１０１に出力し、再度負荷の算出を促す。負荷の算出及び加速度の調整は、調整した加速度及び運動方程式により算出される予測負荷のピーク値が、負荷目標値を含む所定範囲内の値になるまで繰り返される。なお、負荷目標値を含む所定範囲は、例えば、負荷目標値をセンター値として、センター値からαの値だけ増減した範囲として設定される。この場合、上記のマージン値をαとすれば、所定範囲の上限が、許容負荷の上限値となる。αを大きく取る程、負荷目標値からのバラツキが大きく許容される。バラツキが大きいと、負荷目標値に近づけるという意味での精度は低くなる。ユーザは、許容する精度に応じて、αの値を決定しても良い。又は、αを大きく取る程、予測負荷のピーク値が所定範囲内の値となるまでに、加速度の調整が繰り返される回数が小さくなる。従って、ユーザは、許容する加速度の調整時間に応じて、αの値を決定しても良い。αは、ゼロであっても良い。加速度調整部１０２は、最終的に調整した加速度を、指令出力部１０３に入力する。
【００４８】
指令出力部１０３は、加速度調整部１０２により調整された加速度を、ロボットＲＢの運度の指令値として、ロボットＲＢに出力する。
【００４９】
次に、加速度調整装置１０の作用について説明する。
【００５０】
図５は、加速度調整装置による加速度調整処理の流れを示すフローチャートである。ＣＰＵ１１がＲＯＭ１２又はストレージ１４から加速度調整プログラムを読み出して、ＲＡＭ１３に展開し実行することにより、加速度調整処理が行なわれる。
【００５１】
ＣＰＵ１１は、負荷算出部１０１として、教示点列データを取得し（ステップＳ１０１）、ロボットＲＢの運動方程式を取得する（ステップＳ１０２）。ＣＰＵ１１は、負荷算出部として、更に加速度の初期値を取得し（ステップＳ１０３）、取得した加速度の初期値をロボットＲＢに運動させるための指令加速度としてひとまず設定する（ステップＳ１０４）。
【００５２】
ＣＰＵ１１は、加速度調整部１０２として、負荷目標値を取得する（ステップＳ１０５）。なお、負荷目標値を含む所定範囲を設定するために負荷目標値に足し引きするαの値は、予め加速度調整部１０２に入力されていても良いし、負荷目標値と一緒に取得されても良い。
【００５３】
ＣＰＵ１１は、負荷算出部１０１として、教示点列データ、運動方程式及び指令加速度から、運動中のロボットＲＢに作用すると予測される予測負荷（トルク）のピーク値を算出する（ステップＳ１０６）。
【００５４】
ＣＰＵ１１は、加速度調整部１０２として、ステップＳ１０６で算出された予測負荷のピーク値が、負荷目標値からαの値だけ足し引きした所定範囲内の値であるか否か判断する（ステップＳ１０７）。予測負荷のピーク値が所定範囲内である場合（ステップＳ１０７：ＹＥＳ）、ＣＰＵ１１は、指令出力部１０３として、ロボットＲＢに対して指令加速度を出力し（ステップＳ１０８）、加速度調整処理を終了する。
【００５５】
一方、予測負荷のピーク値が所定範囲内でない場合（ステップＳ１０７：ＮＯ）、ＣＰＵ１１は、算出した予測負荷のピーク値が、負荷目標値よりも大きいか否か判断する（ステップＳ１０９）。ピーク値が負荷目標値よりも大きい場合（ステップＳ１０９：ＹＥＳ）、ＣＰＵ１１は、指令加速度を所定の手法に基づいて減少するように調整し（ステップＳ１１０）、ステップＳ１０６の処理に戻る。ピーク値が負荷目標値以下の場合（ステップＳ１０９：ＮＯ）、ＣＰＵ１１は、指令加速度を所定の手法に基づいて増加するように調整し（ステップＳ１１１）、ステップＳ１０６の処理に戻る。ステップＳ１１０及びステップＳ１１１における指令加速度の増減の手法については、後述する。
【００５６】
図６は、指令加速度を増減させる手法を示す図である。
【００５７】
図６においては、指令加速度を増減させる手法として、三つの例を挙げている。定量増減の手法と、二分探索の手法と、勾配法とである。
【００５８】
定量増減の手法では、負荷目標値に向けて加速度を一定量（ユーザが指定した調整幅）だけ増減していく。加速度を増減させる変量が一定なので、変量が小さい場合、予測負荷のピーク値が負荷目標値を含む所定範囲に入るまでの加速度の調整回数が多くなる。一方、変量が大きい場合、加速度が負荷目標値に近づくまでの加速度の調整回数は少ない。ただし、変量が大きすぎる場合、加速度を増加及び減少する度に、負荷目標値を超えてしまい、いつまでも所定範囲内に収束しない場合がある。
【００５９】
二分探索の手法では、増減の値を半減しながら負荷目標値に予測負荷のピーク値を収束させる。二分探索を用いれば、予測負荷のピーク値は最終的には必ず所定範囲内に収束する。
【００６０】
勾配法は、関数の勾配（偏導関数）を使う最適化アルゴリズムである。関数の勾配を低減しつつ、予測負荷のピーク値を負荷目標値を含む所定の範囲内に収束させる。
【００６１】
上記の三つの手法はあくまで例示であり、その他の手法により、予測負荷のピーク値を所定範囲内に収束させても良い。終了条件として、１つ以上の軸における予測負荷のピーク値が所定範囲内であること、かつ、残りの軸における予測負荷のピーク値が負荷目標値以下であることとしても良い。
【００６２】
以上のように、第１実施形態の加速度調整装置１０によれば、予測負荷のピーク値が負荷目標値を含む所定の範囲内となるように、ロボットＲＢのジョイントＪ１〜Ｊ６に与える加速度を調整する。従って、ロボットＲＢについてのユーザの習熟度に関わらず、負荷目標値を含む所定の範囲内の負荷となるように、ロボットＲＢのジョイントＪ１〜Ｊ６の加速度を自動で調整できる。
【００６３】
加速度調整装置１０は、加速度を調整するので、速度を調整する場合よりも、ジョイントＪ１〜Ｊ６に作用する負荷を調整しやすく、かつ、タクトタイムを低減できる。この点について、図７〜図９を参照して説明する。
【００６４】
図７は、予測負荷と、ジョイントの回転速度との関係を示す図である。図８は、予測負荷のプロファイルと、プロファイルにおいて占めるトルクの成分とを表す図である。図９は、速度を低減した場合と、加速度を低減した場合とのタクトタイムの変化を示す図である。
【００６５】
図７において、横軸に時間を表し、縦軸にジョイントに作用する予測負荷を表している。また、図７には、ジョイントの速度の変化を点線により示している。図７に示すように、速度の増加に伴い、予測負荷が増加する。速度が減少し始めると、予測負荷の符号が反転し、予測負荷が増加する。
【００６６】
ここで、図８に示すように、予測負荷のプロファイルを使って、予測負荷を構成する成分として、慣性トルク、摩擦トルク及びその他の力を表現できる。予測負荷をτとして、慣性トルク、摩擦トルク及びその他の力は、次の式として表すことができる。
【００６７】
【数１】
2020011321.tif 000003
【００６８】
上記式（１）及び図８より、慣性トルクは加速度の大きさにより決まり、摩擦トルクは速度の大きさにより決まる。特に、図８に示すように、予測負荷に対する影響は、慣性トルクの方が摩擦トルクよりも大きい事が明確である。従って、速度のみを下げるだけでは、慣性トルクが効果的に下げられるか分からず、目標負荷値に近づけられるかも分からない。そもそも慣性トルクだけで、目標負荷値又は負荷の許容値を超えている場合、速度だけ低減しても、負荷を目標負荷値以下に抑えられない。一方、摩擦トルクだけで、目標負荷値又は負荷の許容値を超えるケースは一般的にはない。なぜなら、速度にも許容値が仕様として定義されており、速度が許容値の範囲内ならば、摩擦トルクが負荷の許容値を超えることはないからである。従って、加速度の調整だけで、予測負荷を目標負荷に抑えることは可能である。
【００６９】
以上のように、負荷の成分の観点から、上記実施形態のように加速度を調整することが、速度を調整することよりも優れていることが明確である。
【００７０】
また、図９の上図に示すように、速度を低減した場合、図９の下図に示すように、加速度を低減した場合と比べて、パラメータの変動を大きくする必要がある。換言すると、加速度の低減の方が、速度の低減よりも、変化率が小さくても同じだけ負荷を低減できる。このため、同じ負荷を低減する場合でも、加速度を低減する方が、速度を低減するよりも動作時間が短くなる。結果として、図９に示すように、加速度を調整した場合の方が、同じ負荷を速度により調整する場合に比べて、タクトタイムが短くなる。
【００７１】
以上のように、タクトタイムの観点から、上記実施形態のように加速度を調整することが、速度を調整することよりも優れていることが明確である。
【００７２】
（第２実施形態）
【００７３】
第１実施形態では、ロボットＲＢの経路の全体に亘って負荷目標値に合わせて加速度を調整している。第２実施形態では、ロボットＲＢの経路を複数の区間に分割し、区間毎に加速度を調整する。
【００７４】
以下、第２実施形態の加速度調整装置１０について説明する。
【００７５】
図１０は、第２実施形態の加速度調整装置による加速度調整処理の流れを示すフローチャートである。ＣＰＵ１１がＲＯＭ１２又はストレージ１４から加速度調整プログラムを読み出して、ＲＡＭ１３に展開し実行することにより、加速度調整処理が行なわれる。また、図１０に示す処理のステップのうち、図５に示す第１実施形態の加速度調整処理と同様のステップについては、同じステップ番号を付し、詳細な説明を省略する。
【００７６】
ＣＰＵ１１は、ステップＳ１０１〜ステップＳ１０５の処理に続き、変数ｉに１を代入する（ステップＳ２０１）。ＣＰＵ１１は、ステップＳ１０１において取得した教示点列データから、区間ＴｉにおけるロボットＲＢの経路を抽出し、ステップＳ１０２において取得したロボットＲＢの運動方程式及び加速度に基づいて、抽出した経路における予測負荷のピーク値を算出する（ステップＳ２０２）。なお、ロボットＲＢの全経路を、区間Ｔｉに分割する手法については、後述する。
【００７７】
ＣＰＵ１１は、ステップＳ２０２において算出したピーク値が、負荷目標値からαの値だけ足し引きした所定範囲内の値であるか否か判断する（ステップＳ２０３）。予測負荷のピーク値が所定範囲内でない場合（ステップＳ２０３：ＮＯ）、ＣＰＵ１１は、加速度を調整するために、ステップＳ１０９の処理に進む。一方、予測負荷のピーク値が所定範囲内である場合（ステップＳ２０３：ＹＥＳ）、ＣＰＵ１１は、変数ｉを１だけインクリメントする（ステップＳ２０４）。ＣＰＵ１１は、ステップＳ２０４においてｉをインクリメントした結果、変数ｉが全区間数より大きくなったか否か判断する（ステップＳ２０５）。変数ｉが全区間数より大きくなった場合、全区間について加速度の調整が完了したことになるからである。
【００７８】
ｉが全区間数よりも大きくない場合（ステップＳ２０５：ＮＯ）、ＣＰＵ１１は、ステップＳ２０２の処理に戻る。ｉが全区間数よりも大きい場合（ステップＳ２０５：ＹＥＳ）、ＣＰＵ１１は、調整した加速度に基づいて、ロボットＲＢに動作指令を出力する（ステップＳ１０８）。
【００７９】
以上のように、第２実施形態においては、区間Ｔｉ毎に、負荷目標値に基づいて、加速度を調整するので、区間毎に最適な加速度が得られ、結果として、第１実施形態よりも、タクトタイムを短くしうる。
【００８０】
次に、ロボットＲＢの全経路を、区間Ｔｉに分割する手法について説明する。
【００８１】
図１１は、ロボットの経路における、ジョイントの角度値の推移を示す図である。
【００８２】
図１１では、説明を簡単にするため、ジョイントＪ１及びジョイントＪ２の角度値の推移だけ２次元により座標空間に示している。しかし、実際には、全ジョイントＪ１〜Ｊ６の角度値の推移が、６次元座標空間において考慮される。
【００８３】
点Ｐ１〜Ｐ３は、それぞれ、ロボットＲＢが通過する通過点を示す。通過点は、例えば、教示点として与えられる。図１１に示すように、点Ｐ１から点Ｐ３まで移動する際に、点Ｐ２において、ジョイントＪ１及びジョイントＪ２の角度値の変化の傾向が変わっている。換言すると、点Ｐ２において、ジョイントＪ１及びジョイントＪ２の速度が変化している。このように、角度値の変化の傾向として、例えば速度が変化する点Ｐ２において、経路の区間が区切られる。この結果、点Ｐ１から点Ｐ２が区間Ｔ１に設定され、点Ｐ２から点Ｐ３が区間Ｔ２に設定される。
【００８４】
次に、各区間の動作のために、ロボットＲＢに与えられる指令値についてより詳細に説明する。特に、経路が複数の区間に分割される場合に、隣り合う区間における指令値が相互に作用する点について説明する。
【００８５】
図１２は、一つの区間における指令速度のプロファイルを示す図である。図１３は、隣り合う区間における指令速度のプロファイルを合成する様子を示す図である。図１４は、隣り合う区間における速度プロファイルを合成したときのジョイントの角度値の推移を示す図である。
【００８６】
図１２において、縦軸にはジョイントの速度を表し、横軸に時間を表す。各区間について、図１２に示すように、ジョイントＪ１〜Ｊ６に対する速度の指令値（指令速度）及び指令加速度が設定される。本実施形態では、指令速度は、ロボットＲＢに許容される最大速度を目標として予め設定されており、指令加速度は、図１０の加速度調整処理により調整して設定される。指令値は、図１２に示すような台形の速度プロファイル、又は、等速時間がない場合は三角形の速度プロファイルを示す。
【００８７】
図１３の上図に示すように、隣り合う区間Ｔ１及び区間Ｔ２の速度プロファイルが図１０の加速度の調整により設定されているとする。区間Ｔ１の速度プロファイルでは、減速時間において速度が指令速度から０まで減速される。区間Ｔ２の速度プロファイルでは、加速時間において速度が０から区間Ｔ１と同じ指令速度まで加速される。従って、区間Ｔ１のプロファイルに区間Ｔ２のプロファイルをそのまま続ける場合、区間Ｔ２で同じ指令速度まで加速するにも関わらず、減速することになる。この減速及び加速は無駄である。従って、図１３の下図に示すように、区間Ｔ１の減速時間と、区間Ｔ２の加速時間がオーバーラップされ、指令値が合算される。例えば、時間ｔ１で見ると、区間Ｔ１の指令速度ＶＴ１と、区間Ｔ２の指令速度ＶＴ２とが合算される。この結果、それぞれの区間Ｔ１及びＴ２の等速部分と同じ指令速度が得られる。このように、オーバーラップされた部分において、指令値が合算されることにより、図中の一点鎖線で示す合算部分の指令値が得られる。図１３に示す例では、区間Ｔ１及び区間Ｔ２の等速部分が連続して結ばれる。
【００８８】
隣り合う区間Ｔ１及び区間Ｔ２の減速時間及び加速時間の指令値がオーバーラップされることによって、ロボットＲＢが通過する経路が変わる。当初は、図１１に示すように、ロボットＲＢは、点Ｐ１、点Ｐ２、点Ｐ３の順に移動するように角度値のベクトルが設定される。しかし、区間Ｔ１及び区間Ｔ２の一部で指令値が合算されることにより、図１４に示すように、ロボットＲＢは、点Ｐ２を通過せずに、区間Ｔ１から区間Ｔ２に滑らかに移動する。
【００８９】
上述のように、図１０の加速度調整処理の結果に基づいて、まずは区間毎に速度プロファイルが作成され、更に隣り合う区間の減速時間及び加速時間で指令速度を合成することにより、ロボットＲＢの動きをよりスムーズにできる。
【００９０】
図１５及び図１６は、隣り合う区間の速度プロファイルを合成する他の例を示す図である。
【００９１】
図１５に示すように、区間Ｔ２の最高速度が区間Ｔ１の最高速度よりも小さい場合においても、区間Ｔ１の減速時間と区間Ｔ２の加速時間における指令速度を一点鎖線で示すように合算できる。
【００９２】
また、図１６に示すように、区間Ｔ２で速度が反転する場合でも、区間Ｔ１の減速時間と区間Ｔ２の（マイナスの）加速時間における指令速度を一点鎖線で示すように合算できる。合算の結果、指令加速度は、区間Ｔ１の減速時間の指令加速度及び区間Ｔ２の加速時間の指令加速度よりも、絶対値として大きな値となる。加速度が大きくなる分、ロボットＲＢの負荷も大きくなる。
【００９３】
（第３実施形態）
【００９４】
第１実施形態及び第２実施形態においては、ロボットＲＢの経路が教示される場合について説明した。第３実施形態では、ロボットＲＢの経路を加速度調整装置１０が自身で生成する。
【００９５】
図１７は、第３実施形態の加速度調整装置の機能構成を示すブロック図である。
【００９６】
第３実施形態の加速度調整装置１０においては、図４に示す第１実施形態の加速度調整装置１０の機能構成に加えて、経路生成部２０１を更に有する。経路生成部２０１は、ＣＰＵ１１がＲＯＭ１２又はストレージ１４に記憶された加速度調整プログラムを読み出し、ＲＡＭ１３に展開して実行することにより実現される。
【００９７】
経路生成部２０１は、ロボットＲＢの初期姿勢データ及び最終的な目標姿勢データを取得する。初期姿勢データ及び目標姿勢データは、例えば、ロボットＲＢの各ジョイントＪ１〜Ｊ６の回転の角度値を持つ６次元のベクトルとして与えられる。経路生成部２０１は、初期姿勢データが表す初期姿勢から、目標姿勢データが表す目標姿勢まで、ロボットＲＢを動作させる経路、すなわち、ロボットＲＢを通過させる通過点を生成する。通過点の生成について、詳細は後述する。
【００９８】
図１８は、第３実施形態の加速度調整装置の加速度調整処理の流れを示すフローチャートである。図１９は、通過点を生成する通過点生成処理の流れを示すフローチャートである。ＣＰＵ１１が、ＲＯＭ１２又はストレージ１４から加速度調整プログラム及び通過点生成プログラムを読み出して、ＲＡＭ１３に展開し実行することにより、図１８の加速度調整処理及び図１９の通過点生成処理が行なわれる。また、図１８に示す処理のステップのうち、図５に示す第１実施形態の加速度調整処理と同様のステップについては、同じステップ番号を付し、詳細な説明を省略する。
【００９９】
ＣＰＵ１１は、ロボットＲＢの初期姿勢データ及び目標姿勢データを取得する（ステップＳ３０１）。ＣＰＵ１１は、取得した初期姿勢データ及び目標姿勢データから、ロボットＲＢの通過点列データを生成する（ステップＳ３０２）。以降の処理は、図５と同様である。
【０１００】
通過点列データの生成について、図１９を参照して説明する。経路生成アルゴリズムとしては、種々のものがある。例えば、ＰＲＭ（Ｐｒｏｂａｂｉｌｉｓｔｉｃ  Ｒｏａｄｍａｐ  Ｍｅｔｈｏｄ）及びＲＲＴ（Ｒａｐｉｄｌｙ  ｅｃｐｌｏｒｉｎｇ  Ｒａｎｄｏｍ  Ｔｒｅｅ）などのランダムサンプリング手法が挙げられる。この他に、ＳＴＯＭＰ（Ｓｔｏｃｈａｓｔｉｃ  Ｔｒａｊｅｃｔｏｒｙ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｆｏｒ  Ｍｏｔｉｏｎ  Ｐｌａｎｎｉｎｇ）及びＣＨＯＭＰ（Ｃｏｖａｒｉａｎｔ  Ｈａｍｉｌｔｏｎｉａｎ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｆｏｒ  Ｍｏｔｉｏｎ  Ｐｌａｎｎｉｎｇ）のような最適化手法が適用されても良い。上記のような、経路生成アルゴリズムを適用することにより、初期姿勢から目標姿勢までの経路を高速に生成できる。経路生成のために、いかなる手法が適用されてもよい。以下では、ＲＲＴを例に説明される。
【０１０１】
ＣＰＵ１１は、コンフィギュレーション空間内から１点をサンプリングする（ステップＳ４０１）。例えば、初期姿勢データが示す点、又は、既に生成した通過点から最も近い点をサンプリングする。ここで、コンフィギュレーション空間とは、ロボットＲＢが取りうる全ての姿勢（ジョイント数の次元のベクトル）の集合として表される空間である。
【０１０２】
ＣＰＵ１１は、サンプリングした点の姿勢をロボットＲＢが取った場合に、ロボットＲＢが自己干渉したり、或いは、他の装置又は設備と衝突したりするかを判定する（ステップＳ４０２）。なお、自己干渉又は他の装置等との衝突を判定するため、上述していないが、ＣＰＵ１１は、形状又は機構等の情報を含むシミュレーションモデルを用いる。
【０１０３】
ステップＳ４０２の結果、衝突が発生すると判定した場合（ステップＳ４０３：ＹＥＳ）、今回サンプリングした点は実施できないため、ＣＰＵ１１は、別の点をサンプリングするために、ステップＳ４０１の処理に戻る。
【０１０４】
衝突が発生しないと判定した場合（ステップＳ４０３：ＮＯ）、ＣＰＵ１１は、サンプリングした点を、通過点列に追加する（ステップＳ４０４）。ＣＰＵ１１は、通過点列が目標姿勢まで到達したか否か判断する（ステップＳ４０５）。
【０１０５】
目標姿勢まで到達していない場合（ステップＳ４０５：ＮＯ）、ＣＰＵ１１は、次の通過点を追加するために、ステップＳ４０１の処理に戻る。目標姿勢まで到達した場合（ステップＳ４０５：ＹＥＳ）、ＣＰＵ１１は、通過点生成処理を終了して、加速度調整処理に戻る。
【０１０６】
以上のように、通過点を生成する場合についても、加速度調整処理を適切に適用できる。なお、通過点を生成した上で、図１０に示すように、経路を複数の区間に分割し、区間毎に加速度を調整しても良い。また、通過点の生成には、平滑化するステップが含まれても良い。平滑化の具体的な手法としては、パスプルーニング法（Ｐａｔｈ  Ｐｒｕｎｉｎｇ）、又は、ショートカット法を適用できる。
【０１０７】
なお、上記各実施形態でＣＰＵがソフトウェア（プログラム）を読み込んで実行した加速度調整処理及び経路生成処理を、ＣＰＵ以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の製造後に回路構成を変更可能なＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、及びＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、加速度調整処理及び経路生成処理を、これらの各種のプロセッサのうちの１つで実行してもよいし、同種又は異種の２つ以上のプロセッサの組み合わせ（例えば、複数のＦＰＧＡ、及びＣＰＵとＦＰＧＡとの組み合わせ等）で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【０１０８】
また、上記各実施形態では、加速度調整処理及び経路生成処理のプログラムがＲＯＭ１２又はストレージ１４に予め記憶（インストール）されている態様を説明したが、これに限定されない。プログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及びＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【０１０９】
１０   加速度調整装置
１０１ 負荷算出部
１０２ 加速度調整部
１０３ 指令出力部
２０１ 経路生成部
【図１】
2020011321.tif 000004
【図２】
2020011321.tif 000005
【図３】
2020011321.tif 000006
【図４】
2020011321.tif 000007
【図５】
2020011321.tif 000008
【図６】
2020011321.tif 000009
【図７】
2020011321.tif 000010
【図８】
2020011321.tif 000011
【図９】
2020011321.tif 000012
【図１０】
2020011321.tif 000013
【図１１】
2020011321.tif 000014
【図１２】
2020011321.tif 000015
【図１３】
2020011321.tif 000016
【図１４】
2020011321.tif 000017
【図１５】
2020011321.tif 000018
【図１６】
2020011321.tif 000019
【図１７】
2020011321.tif 000020
【図１８】
2020011321.tif 000021
【図１９】
2020011321.tif 000022