(57)【特許請求の範囲】
【請求項１】
予め定められたロボットコマンドにより制御可能であるロボットを事前に定められた第１の位置から第２の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置であって、
前記ロボットが前記第１の位置から前記第２の位置へ移動するように、前記ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を、前記制御値がとり得る値として予め定められた複数の値のうちからランダムに選択することで決定し、決定した前記制御値候補を前記ロボットに送信する実機制御部と、
前記制御値候補によって制御されている前記複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得部と、
前記実測値から、前記実測値に対応する前記制御値候補の評価値を決定する評価部と、
前記評価値に基づいて、前記制御値候補を修正することなく、前記ロボットの運動方法を決定するための前記制御値の組として前記制御値候補を採用するか否かを決定する制御値決定部とを備え、
前記制御値は、前記ロボットコマンドに含まれるパラメタであって、当該パラメタを含む前記ロボットコマンドにより前記複数の駆動部のそれぞれが制御されることで前記ロボットの動作が定められるパラメタである
ロボットの運動方法決定装置。
【請求項２】
前記制御値決定部は、
前記ロボットの移動のために予め定められた動力学モデルを用いることなく、前記決定をする
請求項１に記載のロボットの運動方法決定装置。
【請求項３】
さらに、評価記憶部を備え、
前記実機制御部は、互いに異なる複数の前記制御値候補を決定し、
前記評価部は、前記複数の制御値候補の各々を、当該制御値候補の評価値と対応付けて前記評価記憶部に記憶させ、
前記制御値決定部は、前記評価記憶部に記憶されている複数の前記評価値のうち、最も評価がよい評価値に対応する前記制御値候補を、前記制御値の組として採用するよう決定する
請求項１又は２に記載のロボットの運動方法決定装置。
【請求項４】
さらに、２つの前記制御値候補間の類似度を算出する類似度算出部を備え、
前記実機制御部は、前記複数の制御値候補に含まれる任意の２つの制御値候補間の類似度が、事前に定められた類似度の閾値が示す類似性よりも類似しないように前記複数の制御値候補を決定する
請求項３に記載のロボットの運動方法決定装置。
【請求項５】
前記制御値は、前記駆動部の駆動時間、駆動距離、駆動速度、駆動加速度、及び、位置のうち少なくとも１つに対応する値であり、
前記実測値は、電流値、電力、及び、電力量のうちの少なくとも１つであり、
前記評価部は、前記複数の駆動部における前記実測値の合計又は前記実測値のピーク値がより小さいほど、より大きくなるように評価値を決定し、
前記類似度算出部は、前記２つの制御値候補間で対応する前記制御値の候補同士の差の絶対値の総和の逆数として前記類似度を算出し、
前記実機制御部は、前記複数の制御値候補に含まれる任意の２つの制御値候補間の前記類似度が、事前に定められた閾値未満となるように前記複数の制御値候補を決定し、
前記制御値決定部は、前記評価記憶部に記憶されている複数の前記評価値のうち、最も大きな評価値に対応する前記制御値候補を、前記制御値の組として採用するよう決定する
請求項４に記載のロボットの運動方法決定装置。
【請求項６】
前記実機制御部は、前記複数の制御値候補に含まれる任意の２つの制御値候補のうち、一方の制御値候補に対応する評価値が、事前に定められた評価基準値未満である場合には、前記一方の制御値候補と、他方の制御値候補とが、事前に定められた閾値が示す類似性よりも類似しないように、前記複数の制御値候補を決定する
請求項４に記載のロボットの運動方法決定装置。
【請求項７】
予め定められたロボットコマンドにより制御可能であるロボットを事前に定められた第１の位置から第２の位置へ移動させるための運動方法を決定するロボットの運動方法決定方法であって、
前記ロボットが前記第１の位置から前記第２の位置へ移動するように、前記ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を、前記制御値がとり得る値として予め定められた複数の値のうちからランダムに選択することで決定し、決定した前記制御値候補を前記ロボットに送信する実機制御ステップと、
前記制御値候補によって制御されている前記複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得ステップと、
前記実測値から、前記実測値に対応する前記制御値候補の評価値を決定する評価ステップと、
前記評価値に基づいて、前記制御値候補を修正することなく、前記ロボットの運動方法を決定するための前記制御値の組として前記制御値候補を採用するか否かを決定する制御値決定ステップとを含み、
前記制御値は、前記ロボットコマンドに含まれるパラメタであって、当該パラメタを含む前記ロボットコマンドにより前記複数の駆動部のそれぞれが制御されることで前記ロボットの動作が定められるパラメタである
ロボットの運動方法決定方法。
【請求項８】
請求項７に記載のロボットの運動方法決定方法をコンピュータに実行させる
プログラム。
【請求項９】
請求項８に記載のプログラムを記録した
コンピュータ読み取り可能な記録媒体。
【請求項１０】
予め定められたロボットコマンドにより制御可能であるロボットを事前に定められた第１の位置から第２の位置へ移動させるための運動方法を決定する集積回路であって、
前記ロボットが前記第１の位置から前記第２の位置へ移動するように、前記ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を、前記制御値がとり得る値として予め定められた複数の値のうちからランダムに選択することで決定し、決定した前記制御値候補を前記ロボットに送信する実機制御部と、
前記制御値候補によって制御されている前記複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得部と、
前記実測値から、前記実測値に対応する前記制御値候補の評価値を決定する評価部と、
前記評価値に基づいて、前記制御値候補を修正することなく、前記ロボットの運動方法を決定するための前記制御値の組として前記制御値候補を採用するか否かを決定する制御値決定部とを備え、
前記制御値は、前記ロボットコマンドに含まれるパラメタであって、当該パラメタを含む前記ロボットコマンドにより前記複数の駆動部のそれぞれが制御されることで前記ロボットの動作が定められるパラメタである
集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの運動方法決定装置等に関し、特に、ロボットを事前に定められた第１の位置から第２の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置に関する。
【背景技術】
【０００２】
近年、二酸化炭素排出量の削減のために、化石燃料使用量の低減が求められている。そのため、自動車や家電製品を使用する時のみでなく、それらの製造時においも化石燃料、及び電力の使用量を低減することが求められている。したがって、工業製品の製造過程で広く用いられている産業用ロボットの消費電力量を低減する必要性が高まっている。
【０００３】
一般に、複数の駆動関節をもつロボットの静力学、動力学特性は強い非線形性を示し、各関節の駆動力は、ロボットの位置、姿勢、速度、及び、加速度によって複雑に変化する。ここで、ロボットの出力部（例えば、ロボットアームのハンド部分）を第１の位置から第２の位置へ移動させる場合において、ロボットの出力部（例えば、ハンド部分）の時間に対する変位を「軌道」又は「運動方法」と呼ぶ。すなわち、以後、ロボットの軌道（又は、ロボットの運動方法）とは、ロボットの可動部分を第１の位置から第２の位置へ移動させる場合において、ロボットの可動部分の位置の時間変化を表す。
【０００４】
定型的な作業を行う産業用ロボットの軌道は事前に定めることができる。よって、各関節の駆動力、又は駆動させるために必要なエネルギーがより少なくなるように、事前に軌道を最適化しておくことで、ロボットの消費電力量を低減することができる。
【０００５】
従来、こうしたロボットの軌道を最適化する方法として、対象とするロボットの動力学モデルに基づくシミュレーションが試みられている（例えば、非特許文献１を参照）。
【０００６】
シミュレーションで最適軌道の探索を行うことにより、計算時間をかけることで、多数の軌道の繰り返し探索が可能となり、ロボットの消費電力をより低減させる最適な軌道を決定することができる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】林  道大，立矢  宏，浅川  直紀，「発見的手法を用いた多自由度マニピュレータの軌道決定」，日本機械学会論文集（Ｃ編），２００９年２月，第７５巻，第７５０号，ｐ．１４−２１
【非特許文献２】S., Lin, B., Kernighan, “An Effective Heuristic Algorithm for the Traveling-Salesman Problem”, Operations Research, 1973, Vol.21, No.2, p.498-516
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のシミュレーションを用いる方法では、対象ロボットの動力学モデルを知る必要があるが、一般に、これを知ることは極めて困難である。
【０００９】
図１４は、関連技術に係る、ロボットの動力学モデルに基づくシミュレーションを用いた軌道生成法の概略を示す図である。
【００１０】
図１４に示されるように、この方法において計算機９００は、まず、発見的手法９０４によりロボットの軌道９０６を決定するパラメタセットの候補を特定する。計算機９００は、このパラメタセットを当てはめた軌道９０６でロボットを動作させた場合に必要な駆動力の解析値を得る。この解析値を評価値として、例えば解析値がより小さくなるように、発見的手法９０４により軌道９０６の候補を繰り返し探索することで、計算機９００は、最適な軌道９０６を決定することができる。
【００１１】
この手法では、評価値を得るためには、計算機９００がその内部に、対象とするロボットの動力学モデル９０２を数式として有していることが不可欠となる。
【００１２】
図１５は、関連技術に係るロボットの動力学モデル９０２の具体例を示す図である。
【００１３】
図１５に示されるように、ロボットの動力学モデル９０２は、例えば、ジョイントＡ〜ジョイントＣの各ジョイントの運動状態を決定するパラメタ、リンクＢ及びリンクＣのリンク長、質量及び重心位置、並びに、軸受け、減速機及びアクチュエータの効率など、対象ロボットの多様なパラメタを含む。シミュレーションを行うには、これらのパラメタを高い精度で事前に決定することが必要である。
【００１４】
しかし、市販されている産業用ロボットの多くは、これらパラメタの値、又は、動力学モデルが有するパラメタそのものが不明であり、同手法を適用できない。そのため、ロボットのユーザが、動力学モデルを用いたシミュレーションによりロボットの軌道を最適化することは、極めて困難であるという課題がある。
【００１５】
そこで、本発明は、対象ロボットの動力学モデルが不明な場合でも、最適な軌道を決定することが可能なロボットの運動方法決定装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明のある局面に係るロボットの運動方法決定装置は、ロボットを事前に定められた第１の位置から第２の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置であって、ロボットが第１の位置から第２の位置へ移動するように、ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した制御値候補をロボットに送信する実機制御部と、制御値候補によって制御されている複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得部と、実測値から、実測値に対応する制御値候補の評価値を決定する評価部と、評価値に基づいて、制御値候補を、ロボットの運動方法を決定するための制御値の組として採用するか否かを決定する制御値決定部とを備える。
【００１７】
この構成によると、ロボットの運動方法決定装置は、対象ロボットの動力学モデルがなくても、制御値候補に対応する実測値を実機から取得することにより、制御値候補の評価値を得ることができる。よって、ロボットの運動方法決定装置は、実測値から得た評価値をもとに、ロボットの運動方法を決定する際の最終的な制御値の組として制御値候補を採用すべきか否かを判断し、決定することができる。その結果、対象ロボットの動力学モデルが不明な場合でも、最適な軌道を決定することが可能なロボットの運動方法決定装置を提供することができる。
【００１８】
また、さらに、評価記憶部を備え、実機制御部は、互いに異なる複数の制御値候補を決定し、評価部は、複数の制御値候補の各々を、当該制御値候補の評価値と対応付けて評価記憶部に記憶させ、制御値決定部は、評価記憶部に記憶されている複数の評価値のうち、最も評価がよい評価値に対応する制御値候補を、制御値の組として採用するよう決定してもよい。
【００１９】
この構成によると、ロボットの運動方法決定装置は、複数の制御値候補の各々を、実機に実行させ、その実測値から得た評価値を、制御値候補の各々に対応付けて記憶部に記憶させることができる。そのため、ロボットの運動方法決定装置１００は、所定の終了条件が満たされるまで、実機による評価を繰り返し、評価値を最良にすることを目標に制御値候補の探索を行うことができる。その結果、より最適な軌道を決定することができる。
【００２０】
本発明の他の局面に係るロボットの運動方法決定装置は、さらに、２つの制御値候補間の類似度を算出する類似度算出部を備え、実機制御部は、複数の制御値候補に含まれる任意の２つの制御値候補間の類似度が、事前に定められた類似度の閾値が示す類似性よりも類似しないように複数の制御値候補を決定するとしてもよい。
【００２１】
一般に、既に評価値を取得した制御値候補と類似する制御値候補については、実機を用いて評価をしても、既に取得した評価値と大差のない評価値が得られる場合が多いと予想される。よって、実機制御部は、実機で評価する制御値候補を、既に評価した制御値候補と一定程度以上、類似しない制御値候補に限定することで、実機による無駄な評価回数を削減することができる。その結果、ロボットの運動方法決定装置が最終的な制御値の組を決定するまでに要する時間を削減することができる。
【００２２】
具体的には、制御値は、駆動部の駆動時間、駆動距離、駆動速度、駆動加速度、及び、位置のうち少なくとも１つに対応する値であり、実測値は、電流値、電力、及び、電力量のうちの少なくとも１つであり、評価部は、複数の駆動部における実測値の合計又は実測値のピーク値がより小さいほど、より大きくなるように評価値を決定し、類似度算出部は、２つの制御値候補間で対応する制御値の候補同士の差の絶対値の総和の逆数として類似度を算出し、実機制御部は、複数の制御値候補に含まれる任意の２つの制御値候補間の類似度が、事前に定められた閾値未満となるように複数の制御値候補を決定し、制御値決定部は、評価記憶部に記憶されている複数の評価値のうち、最も大きな評価値に対応する制御値候補を、制御値の組として採用するよう決定してもよい。
【００２３】
また、実機制御部は、複数の制御値候補に含まれる任意の２つの制御値候補のうち、一方の制御値候補に対応する評価値が、事前に定められた評価基準値未満である場合には、一方の制御値候補と、他方の制御値候補とが、事前に定められた閾値が示す類似性よりも類似しないように、複数の制御値候補を決定するとしてもよい。
【００２４】
一般に、既になされた評価の結果、評価が悪い制御値候補と類似する制御値候補は、やはり悪い評価となることが予想される。一方、評価がよい制御値候補と類似する制御値候補であれば、その軌道に類似する軌道のなかに、最適な軌道が含まれていることが期待できる。よって、実機制御部は、既に評価された結果、評価が低いことが判明している制御値候補に類似する制御値候補は、再度、実機で評価することは無駄と判断して破棄する。一方、評価が高いことが判明している制御値候補に類似する制御値候補は、実機に送信し、その評価を行う。これにより、ロボットの運動方法決定装置は、実機による評価回数を抑えつつ、より最適な制御値の組を決定することができる。
【００２５】
なお、本発明は、このようなロボットの運動方法決定装置として実現できるだけでなく、ロボットの運動方法決定装置に含まれる特徴的な手段をステップとするロボットの運動方法決定方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのはいうまでもない。
【００２６】
さらに、本発明は、このようなロボットの運動方法決定装置の機能の一部又は全てを実現する半導体集積回路（ＬＳＩ）として実現したり、このようなロボットの運動方法決定装置を含むロボットの運動方法決定システムとして実現したりできる。
【発明の効果】
【００２７】
以上より、本発明は、対象ロボットの動力学モデルが不明な場合でも、最適な軌道を決定することが可能なロボットの運動方法決定装置を提供できる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施の形態１及び２に係るロボットの運動方法決定装置の使用状態を示す概念図である。
【図２】本発明の実施の形態１に係るロボットの運動方法決定装置の機能ブロックを示す図である。
【図３】本発明の実施の形態１及び２におけるＳＨＡに用いられる設計変数行列の一例を示す第１の図である。
【図４】本発明の実施の形態１及び２におけるＳＨＡに用いられる設計変数行列の一例を示す第２の図である。
【図５】本発明の実施の形態１及び２におけるＳＨＡに用いられる絞り込み探索などの一例を示す図である。
【図６】実施の形態１に係るロボットの運動方法決定装置が軌道を決定する処理の手順を示す図である。
【図７】ロボットコマンドに対応するロボットハンド先端の移動速度の変化の一例を示す図である。
【図８】実施の形態２に係るロボットの運動方法決定装置の機能ブロックを示す図である。
【図９】実施の形態２に係るロボットの運動方法決定装置が軌道を決定する処理の手順を示す図である。
【図１０】類似度に基づき類似すると実機制御部により判定される範囲の一例を示す図である。
【図１１】実機の一例として検証で使用した６自由度垂直多関節型ロボットの外観図である。
【図１２】実施の形態２に係るロボットの運動方法決定装置により最適化された軌道と、標準軌道とで、モータの電流値を比較した結果の一例を示す図である。
【図１３】本発明の実施の形態１及び２にかかるロボットの運動方法決定装置を実現するコンピュータシステムのハードウェア構成を示すブロック図である。
【図１４】関連技術に係るロボットの動力学モデルに基づくシミュレーションを用いた軌道生成法の概略を示す図である。
【図１５】関連技術に係るロボットの動力学モデルの具体例を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明に係るロボットの運動方法決定装置の実施の形態について、図面を参照しながら詳細に説明する。
【００３０】
（実施の形態１)
まず、本発明の実施の形態１に係るロボットの運動方法決定装置の構成を説明する。
【００３１】
図１は、本実施の形態に係る、ロボットの運動方法決定装置１００の使用状態を示す概念図である。
【００３２】
図１に示されるように、本実施の形態に係るロボットの運動方法決定装置１００は、対象とするロボットの動力学モデルを有していない。その代わり、ロボットの実機２００との、入出力インタフェースを備える。
【００３３】
具体的には、ロボットの運動方法決定装置１００は、発見的手法５５０により実機２００の制御値の候補の組（以後、制御値候補という）を決定する。実機２００の制御値とは、例えば、実機２００が備える複数の駆動部を制御するためのパラメタの値である。
【００３４】
ロボットの運動方法決定装置１００は、決定された制御値候補を、実機２００へ送信する。
【００３５】
次に、実機２００は、受信した制御値候補に従って（すなわち、軌道５５２で）実際に稼働する。例えば、実機２００が備えるロボットアームを、第１の位置から第２の位置へと移動させる場合、ロボットアームは様々な軌道をとりうるが、軌道５５２はそのうちの１つである。
【００３６】
また実機２００は、実機２００が備える複数のモータに流れる各々の電流値又は電力量等、駆動部の駆動状態を示す物理量を計測する計測装置２０２を備えている。この計測装置２０２により計測された物理量の実測値を、ロボットの運動方法決定装置１００は取得する。
【００３７】
ロボットの運動方法決定装置１００は、取得した実測値を事前に定められた基準（例えば、評価関数など）に従って評価する。以後、ロボットの運動方法決定装置１００は、所定の条件が満たされるまで、繰り返し、発見的手法５５０により新たな軌道５５２を生成し、この軌道５２２を実機２００に与え、実測値を取得し、評価を行う。ロボットの運動方法決定装置１００は、こうして生成された複数の軌道５５２の中で、最も評価がよい軌道５２２を、最適な軌道５５２として決定する。
【００３８】
以上述べたように、ロボットの運動方法決定装置１００は、制御値候補の評価を実機２００によって行うことで、対象ロボットである実機２００の動力学モデルが不明な場合であっても、ロボットの運動方法決定装置１００は最適な軌道を決定することができる。
【００３９】
図２は、本発明の実施の形態に係る、ロボットの運動方法決定装置１００の機能ブロックを示す図である。
【００４０】
図２に示されるように、ロボットの運動方法決定装置１００は、実機制御部１０２と、実測値取得部１０４と、評価部１０６と、制御値決定部１０８と、評価記憶部１１２とを備える。
【００４１】
ロボットの運動方法決定装置１００は、前述のとおり、ロボットを事前に定められた第１の位置から第２の位置へ移動させるための運動方法を決定する。
【００４２】
その際に、実機制御部１０２は、図２において実機２００として示されるロボットが第１の位置から第２の位置へ移動するように、実機２００が備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した制御値候補を実機２００に送信する。
【００４３】
ここで、制御値とは、例えば、実機２００が備える各々の駆動部の駆動時間、駆動距離、駆動速度、駆動加速度及び位置のうち少なくとも１つに対応する値である。
【００４４】
実機制御部１０２は、具体的にはＳＨＡと呼ばれる発見的手法により、制御値候補を決定する。その詳細は後述する。
【００４５】
なお、実機制御部１０２は、１回で最適な制御値候補を決定することは困難であるため、互いに異なる複数の制御値候補を決定し、実機２００により繰り返し評価を行うことが好ましい。
【００４６】
実測値取得部１０４は、制御値候補によって制御されている実機２００が備える複数の駆動部の駆動状態を示す物理量である実測値を取得するインタフェースである。実測値とは、例えば、駆動部を流れる電流、電力及び電力量のうちの、少なくとも１つが考えられる。また、実機２００について計測可能な、他の任意の物理量（例えば、実機２００が備えるロボットアームの先端部の位置、加速度、駆動部の表面温度、照度、周囲音の振幅など）を実測値として用いてもよい。
【００４７】
評価部１０６は、実測値取得部１０４が取得した実測値から、実測値に対応する制御値候補の評価値を決定する。例えば、実測値が、実機２００が備える複数の駆動部各々の電力量であれば、評価部１０６は、その合計値を評価値として決定することが考えられる。この場合、評価値が小さいほど、消費電力が少なく、評価がよいことを示す。
【００４８】
また、いわゆるデマンドコントロールのように、消費電力のピーク値が一定値以下となるように制御することで省エネ及び省コストを図る目的では、例えば、複数の駆動部各々の電力を実測値とし、実機２００の稼働時間を通じての、駆動部全体での消費電力の最大値を評価値としてもよい。この場合、評価値が小さいほど、ピーク電力を小さく抑えられており、評価がよいことを示す。
【００４９】
すなわち、実機２００の消費電力の抑制を目的とする場合において、実測値が、駆動部を流れる電流、電力及び電力量のうちの、少なくとも１つである場合には、評価部１０６は、複数の駆動部における実測値の合計がより小さいほど、より大きくなるように評価値を決定してもよい。
【００５０】
また、評価部１０６は、実機制御部１０２により決定された複数の制御値候補の各々を、その制御値候補の評価値と対応付けて、後述する評価記憶部に記憶させる。
【００５１】
制御値決定部１０８は、評価値に基づいて、制御値候補を、実機２００の運動方法を決定するための制御値の組として採用するか否かを決定する。
【００５２】
具体的には、制御値決定部１０８は、評価記憶部に記憶されている複数の評価値のうち、最も評価がよい評価値に対応する制御値候補を、制御値の組として採用するよう決定する。より具体的には、制御値決定部１０８は、評価記憶部１１２に記憶されている複数の評価値のうち、最も大きな評価値に対応する制御値候補を、制御値の組として採用するよう決定する。
【００５３】
評価記憶部１１２は、前述のとおり、制御値候補とその評価値とを対応付けて記憶する記憶部であり、具体的には、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＳＲＡＭ（Static Random Access Memory）等で実現される。
【００５４】
次に、図３及び図４を参照して、本実施の形態に係るロボットの運動方法決定装置１００が備える実機制御部１０２が、評価値候補を決定するために使用する発見的手法による探索アルゴリズムである、ＳＨＡについて説明する。
【００５５】
発見的手法による探索アルゴリズムとしてはＧＡ（Genetic Algorithm）が代表的であるが、本実施の形態ではＳ．Ｌｉｎらが非特許文献２において提案し、発明者らがロボットの運動方法決定装置１００に適合するよう改良を加えたＳＨＡを用いる。
【００５６】
ＳＨＡでは設計変数行列と呼ばれる、各列が決定すべき設計パラメタを示し、各行が各設計パラメタの取り得る値である離散値（すなわち、制御値）を示す行列を構築し、同行列を操作することで評価が最良となる変数の組合せを探索する。
【００５７】
図３は、本実施の形態おけるＳＨＡに用いられる設計変数行列の一例を示す図である。同図のｉ行ｊ列の要素Ｓｉｊはｊ番目の設計パラメタのｉ番目の制御値を表す。本実施の形態において、設計パラメタとは、例えば、実機２００が備えるいずれかの駆動部の、ある時刻における、駆動時間、駆動距離、駆動速度、駆動加速度、位置のいずれかである。また、制御値とは、例えば設計パラメタが駆動時間であれば、事前に定められた駆動時間（１秒、３秒、５秒、７秒、９秒など）のいずれかに対応する値であり、設計パラメタが駆動距離であれば、事前に定められた駆動距離（１ｍ、３ｍ、５ｍ、７ｍ、９ｍなど）のいずれかに対応する値である。
【００５８】
以下、具体的な設計変数行列の操作手順（以下、ＳＨＡ処理ステップともいう）を、図３及び図４を参照して説明する。
【００５９】
・ステップ１：実機制御部１０２は、決定すべき設計パラメタの数がｎである場合、ｎ列の各々が設計パラメタの各々に対応し、各行が設計パラメタの制御値としてとり得る離散値に対応する設計変数行列を作成する。なお、設計パラメタごとに制御値としてとりうる離散値の数は同じとする。図３は設計変数が６、それぞれが取り得る離散値の数が９である場合の設計変数行列を示す。
【００６０】
・ステップ２：実機制御部１０２は、設計変数行列の各列において離散値をランダムに１つ選択し、初期経路を決定する。決定された初期経路を基準経路Ｔ０とする。図３ではＴ０として、実線で結ばれた要素Ｓ６１〜Ｓ５６が選択されている。なお、以後、ＳＨＡにおける制御値候補を、ｐ１からｐ６へ向かうルートに見立てて、「経路」とも表記する。
【００６１】
・ステップ３：実機制御部１０２は、設計変数行列の１列目から順に要素選択の操作を行っていく。まず、１列目において、基準経路Ｔ０として選択されている要素の他に一定数の要素をランダムに選択する。図４（ａ）では白丸の要素（Ｓ４１、Ｓ６１、Ｓ８１）が選択されている。これらの要素をＬｏｏｋ−ａｈｅａｄ−Ｂａｓｅ  Ｐｏｉｎｔ（ＬＢＰ）と呼び、新たな設計変数の候補とする。
【００６２】
・ステップ４：実機制御部１０２は、ＬＢＰとした各要素に続く次列の要素をランダムに選択し、図４（ｂ）に示すように複数の経路を生成する。具体的には、Ｓ４１及びＳ２２を含む経路、Ｓ６１及びＳ３２を含む経路、Ｓ６１及びＳ５２を含む経路、並びに、Ｓ８１及びＳ８２を含む経路が生成されている。
【００６３】
・ステップ５：実機制御部１０２は、ステップ２で決定された基準経路及びステップ４であらたに生成された複数の経路の各々を実機２００により評価し、得られた評価値が最も良い制御値の組合せを新たな基準経路とする。例えば、図４（ｂ）ではＳ４１及びＳ２２を含む経路が新たな基準経路Ｔ１として選択されたとする。
【００６４】
以後、実機制御部１０２は、対象とする列を順に次列へ進め、評価値の良い経路を基準経路として更新する操作（上記ステップ３〜５）をｎ−１列目（図４に示される例では、第５列）まで繰り返す。例えば、図４（ｃ）は、２列目を対象に要素選択の操作（ステップ３）を行い、基準経路Ｔ２が選択された場合を示す。
【００６５】
・ステップ６：実機制御部１０２は、最終列（図４に示される例では、第６列）では要素選択を行わず、最終列に含まれる全ての要素を対象として離散値と同数の経路を生成し、最も評価値の良い離散値の組を基準経路として更新する。
【００６６】
・ステップ７：図４（ｄ）に示されるように、実機制御部１０２は、設計変数行列の最終列（第６列）を第１列へ移動させ、その他の列は次列へと移動させ設計変数行列を再構築する。得られた行列に対し以上の操作を繰り返す。なお、実機制御部１０２は、ステップ３〜７の操作を繰り返し、最初に１列目であった設計変数（図４に示される例では、ｐ１）が再び１列目となった時点で、ＳＨＡ処理を終了する。
【００６７】
ロボットの運動方法決定装置１００が備える制御値決定部１０８は、以上のＳＨＡ処理による繰り返し操作を通じて、最も評価値がよい経路に対応する制御値候補を、実機２００の運動方法を決定するための最終的な制御値の組として採用する。
【００６８】
なお、発見的手法では乱数を用いて解を探索するため、繰り返し計算時において最適解近傍の結果が得られたとしても、同結果近傍のさらに良好な解が探索されるとは限らない。また、各設計パラメタがとり得る離散値の幅を細分割するほど、より評価関数値が良い解が得られると予想されるが、離散値の数を増やすと行数が膨大となり探索が困難となる。
【００６９】
そこで本実施の形態に係る実機制御部１０２は、まず、離散値の幅を比較的粗く設定した設計変数行列を対象に、上記ステップ１〜ステップ７の操作により、評価値が良好な制御値候補を求めた後、さらに、得られた制御値候補に含まれる各々の制御値を中央値として、刻み幅をより細分割した設計変数行列を再構築し、再構築後の設計変数行列に対して、ステップ１〜ステップ７の探索処理を再度実行してもよい。実機制御部１０２は、この探索により最終的に得られた基準経路を解とすることで、制御値のより正確な最適化を行うことができる。なお、初めの探索を「予備探索」、その探索結果近傍での刻み幅を細分割した設計変数行列を用いた探索を「絞り込み探索」と呼ぶ。
【００７０】
上記絞り込み探索について、図５を参照してより具体的に説明する。
【００７１】
図５は、本実施の形態におけるＳＨＡに用いられる絞り込み探索などの一例を示す図である。
【００７２】
図５（ａ）は、３つの時刻（ｔ１、ｔ２、ｔ３）におけるロボットハンド先端部の駆動速度をそれぞれ設計パラメタｐ１、ｐ２、ｐ３とし、その各々の制御値（すなわち、ロボットハンド先端速度）を決定する場合の、予備探索の結果を示す。
【００７３】
予備探索を開始する時点では、ｐ１の探索範囲７０２、ｐ２の探索範囲７０４、及び、ｐ３の探索範囲７０６は、いずれも共通の幅（上下限値）をもつ。
【００７４】
ここで、予備探索が終了し、図５（ａ）に示されるように、ｐ１の制御値としてｖ１が、ｐ２の制御値としてｖ２が、ｐ３の制御値としてｖ３が、実機制御部１０２によって決定されたとする。
【００７５】
この場合、ｐ１〜ｐ３の最適解は、各々、ｖ１〜ｖ３の近傍に存在する可能性が高いと考えられる。そこで、実機制御部１０２は、絞り込み探索として、例えば図５（ｂ）に示されるように、ｐ１の探索範囲７０２を、予備探索時よりもｖ１の近傍へ絞り込んだ新たな探索範囲７０８を設定する。実機制御部１０２は、探索範囲７０４及び探索範囲７０６についても同様に、それぞれｖ２及びｖ３近傍へ絞り込んだ新たな探索範囲を設定する。ここで、絞り込み後の探索範囲と、絞り込み前の探索範囲の離散化数を同一とすると、絞り込み後の探索範囲では、離散化の粒度がより細かくなる。よって、実機制御部１０２は、絞り込み後の探索範囲について、再度ＳＨＡを実行することにより、予備探索によって決定した制御候補値近傍において、より最適な制御候補値を決定することができる。
【００７６】
なお、実機制御部１０２は、必ずしも絞り込み探索を行う必要はない。例えば、予備探索で決定された制御値の評価値が、事前に定められた基準値よりも低い場合には、各設計パラメタの探索範囲をより広げた新たな探索範囲を設定し、この範囲内を対象として再度ＳＨＡを行ってもよい。図５（ｃ）に示される探索範囲７１０は、この一例である。
【００７７】
また、例えば予備探索によって決定された制御値が、探索範囲の中央値よりの上下いずれかに偏っている場合には、実機制御部１０２は、図５（ｄ）に示される探索範囲７１２のように、偏りをなくすように（すなわち、予備探索によって決定された制御値を、探索範囲の中央値へ近づける向きに）探索範囲をシフトさせた後、新たな探索範囲内を対象として再度ＳＨＡを行ってもよい。
【００７８】
以上述べた、本実施の形態における実機制御部１０２が行うＳＨＡは、ＧＡと比較して次のような利点を有する。
【００７９】
（１）ＧＡでは設計変数を２進数列で表現される遺伝子モデルへ変換する必要があるが、ＳＨＡでは設計変数として実値を直接取り扱える。
【００８０】
（２）ＧＡでは世代数、交叉率、突然変異率など解の探索の実行を左右する複数のパラメタの調整が必要である。これらの値は解の探索結果に大きな影響を及ぼすが、その決定は主として経験に頼らざるをえない。これに対し、ＳＨＡでは調整が困難なパラメタは特にない。
【００８１】
（３）繰り返し探索時において、ＧＡでは毎回、多数の解の候補について評価値の取得が必要であり、評価関数の処理が複雑である場合は全体の処理量が膨大となる。これに対し、ＳＨＡで評価する解の候補は少数であるため１回ごとの処理時間は短く、全体の処理時間を短縮できる。
【００８２】
特に、（３）に述べた処理時間を短縮できる利点は、本願発明において重要な利点である。動力学モデルとして計算機内で模擬されたロボットを使用する場合には、処理時間はさほど問題にならないが、ロボットの実機を使用する場合、安全面等を考えると、常にロボットのそばに人が待機する必要が生じる。また、既に現場に導入されているロボットであれば、軌道決定作業のために占有できる時間も通常は短時間に制限される。したがって、ＧＡや、関連技術に係るＳＨＡと比較し、絞り込み探索を併用する発明者らの独自のＳＨＡは、本実施の形態に係るロボットの運動方法決定装置１００を実現する上で、より適している。
【００８３】
次に、図６を参照して、本実施の形態に係るロボットの運動方法決定装置１００が軌道を決定する処理の手順について説明する。
【００８４】
まず、実機制御部１０２は、例えばＧＵＩ（Graphical User Interface；図示なし）により、又は、外部ファイルを読み込むことにより、ユーザにより決定される、軌道探索のための条件を取得する。より具体的には、（１）ロボットの軌道を決定するために必要な設計パラメタ、及び、（２）設計パラメタの値である制御値がとりうる上下限値とその分割数とを取得する（Ｓ１０２、Ｓ１０４）。
【００８５】
次に、実機制御部１０２は、前述のＳＨＡ処理ステップ７に示されるようなＳＨＡ処理の終了条件が満たされていないと判定した場合には（Ｓ１０６でＮｏ）、前述のＳＨＡ処理を実行する。
【００８６】
ここで、実機制御部１０２は、前述のＳＨＡ処理ステップ５において、まだ評価値が定まっていない制御値候補がある場合には、評価値が定まらない制御値候補の中から１つを選択し（Ｓ１０８）、実機２００へ送信する（Ｓ１１２）。より具体的には、制御値候補は、実機２００のロボット動作プログラム内のパラメタとして、実機２００へ送信される。
【００８７】
次に、実機２００は、送信された制御値候補に従って動作を行う（Ｓ１１４）。その間に、実機２００が有する駆動部の駆動状態を示す物理量が計測される（Ｓ１１６）。例えば、実機２００が有する複数のモータの各々に電力計が接続され、各モータの消費電力が計測される。なお電力計は、実機２００が備えていてもよく、実機２００の外部に接続されてもよい。
【００８８】
こうして計測された各モータの消費電力の実測値は、ロボットの運動方法決定装置１００が備える実測値取得部１０４へと、無線又は有線通信により送信される。この実測値は、評価部１０６により、所定の評価関数により評価され、制御候補値に対する評価値が決定される（Ｓ１１８）。その後、評価部１０６は、評価値と、評価値に対応する制御候補値を、評価記憶部１１２に記憶させる。
【００８９】
なお評価関数としては、前述のように、例えば実機２００の総消費電力が少ないほど評価値を高く決定するものや、ピーク電力が小さいほど評価値を高く決定するもの等が考えられるが、他の基準で評価関数を決定してもよい。
【００９０】
以上のステップＳ１０８からＳ１１８を、前述のＳＨＡ処理ステップ５における、全ての制御値候補について評価値が定まるまで繰り返す。さらに、制御値決定部１０８は、制御値候補の最適値を更新するため、前述のＳＨＡ処理ステップ５において、現在の基準経路に対応する制御値候補よりも評価のよい制御値候補が見つかったか否かを判定する（Ｓ１２０）。判定の結果、より評価がよい制御値候補が見つかった場合には（Ｓ１２０でＹｅｓ）、制御値決定部１０８は、より評価がよい制御値候補を基準経路として設定する（Ｓ１２２）。一方、より評価がよい制御値候補が見つからなかったと判定した場合には（Ｓ１２０でＮｏ）、制御値決定部１０８は、基準経路を更新しない。
【００９１】
次に、制御値決定部１０８は、基準経路に対応する最良の評価値の推移により、ＳＨＡの探索条件の再設定又はＳＨＡによる探索処理の打ち切りを判定する（Ｓ１２４）。
【００９２】
ここで、探索条件の再設定とは、例えば、ステップＳ１２２において基準経路が変更される割合が事前に定められた値よりも低下した場合に、制御値決定部１０８が、図５（ｃ）に示されるように、各設計パラメタの上下限の幅が広がるように探索条件を再設定するよう決定することをいう。また、ステップＳ１２２において評価値が大幅に向上した場合には、制御値決定部１０８は、図５（ｂ）に示されるように、各設計パラメタの上下限の幅が狭まるように探索条件を再設定するよう決定してもよい。
【００９３】
また、探索処理の打ち切りとは、例えば、ステップＳ１２２において基準経路の更新が滞った場合（より具体的には、事前に定められた回数以上連続して、基準経路が更新されなかった場合や、基準経路の更新率が所定の値を下回った場合など）に、制御値決定部１０８がＳＨＡによる探索を打ち切り（Ｓ１２６でＹｅｓ）、これまでに最も良好な評価値を示した制御値候補を、実機２００の運動方法を決定するための制御値の組として採用するよう決定することをいう。
【００９４】
一方、制御値決定部１０８は、ＳＨＡによる制御値の組の探索を継続すると判定した場合には（Ｓ１２６でＮｏ）、再度、実機制御部１０２が行うステップＳ１０６の処理に戻る。
【００９５】
また、実機制御部１０２が、ＳＨＡ処理ステップ７に示されるようなＳＨＡ処理の終了条件が満たされていると判定した場合には（ステップＳ１０６でＹｅｓ）、実機制御部１０２はＳＨＡ処理を終了する。その後、制御値決定部１０８が、その時点で最も良好な評価値を示した制御値候補を、実機２００の運動方法を決定するための制御値の組として採用するよう決定する。
【００９６】
次に、本実施の形態における制御値候補の具体例について、詳細に説明する。
【００９７】
関連技術にかかる動力学モデル９０２によって軌道を決定する場合には、関節角変位やハンド先端変位の時間変化を多項式などで表現し、その係数を適当に決定することでロボットの軌道が表現される。しかし、本実施の形態において、実機２００を動作させる場合、多項式などで表現された通りに各関節の変位を制御することは困難である。そこで、本実施の形態に係るロボットの運動方法決定装置１００では、産業用ロボットに標準的に備わっているロボットコマンドのパラメタを設計パラメタとし、その値の組合せを制御値候補とすることで、実機２００の軌道を表現する。以下、より詳細に述べる。
【００９８】
一般に、産業用ロボットのほとんどはロボットコマンドにより制御される。例えば、ロボットのハンド先端の移動速度、座標などは、次のような複数のロボットコマンドの組がロボットに送信されることで、制御される。
【００９９】
ＳＰＥＥＤ  ５００ＭＭ／Ｓ
ＬＭＯＶＥ（５００，１０００，２５０）
【０１００】
ここで、ＳＰＥＥＤコマンドは移動速度を指定し、ＬＭＯＶＥコマンドはハンド先端座標を指定する。ハンド先端部は、ＬＭＯＶＥコマンドで指定されたハンド先端座標を、ＳＰＥＥＤコマンドで指定された移動速度で通過するように、制御される。
【０１０１】
このようなコマンドの組により速度と位置を次々と指定することでロボットが動作する。これらの「速度指令」と「位置指令」はメーカが異なるロボットであっても、ＳＰＥＥＤ→ｖｅｌｏｃｉｔｙ、ＬＭＯＶＥ→ｍｏｖｅ  ｌｉｎｅａｒ等の置き換えが可能な程度の差異しかない。よって、駆動部ごとに、速度の指令値（速度指令値）と、位置の指令値（位置指令値）の組を指定することで、ロボットの軌道が定まる。従って、ロボットの運動方法決定装置１００は、各々の指令値の具体的な値を制御値候補として実機２００へ送信することにより、実機２００を制御し、これにより、制御値候補に対応する評価値を取得することができる。
【０１０２】
例えば、ロボットの運動方法決定装置１００は、次に示すロボットコマンド内の位置指令値ｘ、ｙ、ｚ、及び、速度指令値ｖ１、ｖ２、ｖ３を設計パラメタとし、これらのある値の組を制御値候補として実機２００へ送信することで、対応する評価値を取得する。
【０１０３】
ＬＭＯＶＥ（［ｘ］，［ｙ］，［ｚ］）
ＳＰＥＥＤ［ｖ１］ＭＭ／Ｓ
ＬＭＯＶＥ（［ｘ］＋１００，［ｙ］＋１００，［ｚ］＋１００）
ＳＰＥＥＤ［ｖ２］ＭＭ／Ｓ
ＬＭＯＶＥ（［ｘ］＋２００，［ｙ］＋２００，［ｚ］＋２００）
ＳＰＥＥＤ［ｖ３］ＭＭ／Ｓ
ＬＭＯＶＥ（［ｘ］＋３００，［ｙ］＋３００，［ｚ］＋３００）
【０１０４】
上記ロボットコマンドに対応する、実機２００のハンド先端の移動速度の変化を、図７に示す。
【０１０５】
図７は、ロボットコマンドに対応するハンド先端の移動速度の変化の一例を示す図である。実機２００のハンド先端部は、初期値（ｘ，ｙ，ｚ）から、（ｘ＋１００，ｙ＋１００，ｚ＋１００）で指定される点６５１に移動し、点６５１を速度ｖ１で通過した後、（ｘ＋２００，ｙ＋２００，ｚ＋２００）で指定される点６５２へ移動する。実機２００のハンド先端部は、点６５２を速度ｖ２で通過した後、（ｘ＋３００，ｙ＋３００，ｚ＋３００）で指定される点６５３へ向かい、点６５３を速度ｖ３で通過した後、停止する。
【０１０６】
なお実際は、ロボットコントローラが指定座標間を滑らかに制御するので、速度変化は滑らかとなる。しかし、同一のロボットコマンドであれば速度変化は同一となるため、本手法を軌道の表現方法として用いることができる。
【０１０７】
ロボットの速度の変化に伴い、その時のロボットの関節駆動トルクや消費電力も変化する。したがって、制御値候補（ここでは、速度指令値と移動指令値の組）を適切に決定できれば、実機２００の消費電力が最小となる最適軌道を決定することができる。
【０１０８】
すなわち、本実施の形態に係るロボットの運動方法決定装置１００は、ロボットである実機２００を事前に定められた第１の位置から第２の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置であって、ロボットが第１の位置から第２の位置へ移動するように、ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した制御値候補をロボットに送信する実機制御部１０２と、制御値候補によって制御されている複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得部１０４と、実測値から、実測値に対応する制御値候補の評価値を決定する評価部１０６と、評価値に基づいて、制御値候補を、ロボットの運動方法を決定するための制御値の組として採用するか否かを決定する制御値決定部１０８とを備える。
【０１０９】
また、本実施の形態に係るロボットの運動方法決定装置１００は、さらに、評価記憶部１１２を備え、実機制御部１０２は、互いに異なる複数の制御値候補を決定し、評価部１０６は、複数の制御値候補の各々を、当該制御値候補の評価値と対応付けて評価記憶部１１２に記憶させ、制御値決定部１０８は、評価記憶部１１２に記憶されている複数の評価値のうち、最も評価がよい評価値に対応する制御値候補を、制御値の組として採用するよう決定してもよい。
【０１１０】
以上の構成によると、ロボットの運動方法決定装置１００により軌道を決定するために、実機２００の動力学モデルの構築が不要となる。よって、ロボットの運動方法決定装置１００によれば、対象ロボットである実機２００の動力学モデルが不明な場合でも、最適な軌道を決定することができる。
【０１１１】
特に、従来は動力学モデルの構築に、実機２００の製造元の協力が不可欠であったが、本実施の形態に係るロボットの運動方法決定装置１００によれば、実機２００のユーザ側のみで、容易に軌道の最適化が可能となる。よって、既に工場で稼働中の実機２００にも容易に適用することができる。
【０１１２】
さらに、実機２００が有する個体差、環境及び経年変化の影響を含めて動力学モデルを作成することは極めて困難であるが、本実施の形態に係るロボットの運動方法決定装置１００によれば、こうした実機２００の特性のばらつきを考慮して軌道の最適化を行うことができる。
【０１１３】
以上、本実施の形態に係るロボットの運動方法決定装置１００について説明した。
【０１１４】
次に、軌道決定までの、制御値の組の探索時間をより短縮することが可能な、実施の形態２にかかるロボットの運動方法決定装置１００について説明する。
【０１１５】
（実施の形態２）
図８は、実施の形態２に係るロボットの運動方法決定装置１００の機能ブロックを示す図である。なお、図２に示される実施の形態１に係るロボットの運動方法決定装置１００と同様の構成部には、同じ符号を付け、詳細な説明を省略する。
【０１１６】
実施の形態１に係るロボットの運動方法決定装置１００との違いは、本実施の形態に係るロボットの運動方法決定装置１００は、さらに、２つの制御値候補間の類似度を算出する類似度算出部１１０を備えている点である。
【０１１７】
動力学モデル９０２に代わり実機２００を使用して軌道の評価値を取得する場合に、実機２００による評価の繰り返し回数は、実用上の大きな制約となる。
【０１１８】
そこで、本実施の形態に係る実機制御部１０２は、類似度算出部１１０により算出される、２つの制御値候補間の類似度を用いて、実機２００による評価の繰り返し回数を削減する。
【０１１９】
具体的には、実機制御部１０２は、実機２００に送信される複数の制御値候補に含まれる任意の２つの制御値候補間の類似度が、事前に定められた類似度の閾値が示す類似性よりも類似しないように複数の制御値候補を決定する。なお、実機制御部１０２は、複数の制御値候補間のうちで、少なくとも開始位置の差が事前に定められた閾値未満となる制御値候補間に対してのみ、類似性の判断を行うとすることが好ましい。ここで、開始位置とは、制御開始時における実機２００の位置であり、例えば、ハンド先端座標の初期値などである。以下詳細に述べる。
【０１２０】
図９は、本実施の形態に係るロボットの運動方法決定装置１００の処理の手順を示すフローチャートである。なお、図６と同様の処理には、同じ符号を付け、詳細な説明を省略する。
【０１２１】
実施の形態１に係るロボットの運動方法決定装置１００の処理の手順と、本実施の形態に係るロボットの運動方法決定装置１００の処理の手順の主な違いは、本実施形態には、図９に示されるステップＳ１１０が加わる点である。
【０１２２】
実施の形態１に係る実機制御部１０２と同様、本実施の形態に係る実機制御部１０２は、ＳＨＡ処理ステップ５において、まだ評価値が定まっていない制御値候補がある場合には、実機２００へ送るために、その中から１つの制御値候補を選択する（Ｓ１０８）。
【０１２３】
ここで、本実施の形態に係る実機制御部１０２は、ステップＳ１０８で選択された制御値候補と、評価記憶部１１２に記憶されている複数の制御値候補の各々との類似度を類似度算出部１１０により算出し、ステップＳ１０８で選択された制御値候補と類似する制御値候補が、評価記憶部１１２に既に記憶されているか否かを判定する（Ｓ１１０）。
【０１２４】
例えば、類似度算出部１１０が、２つの制御値候補がより類似するほど、より大きな値となるように類似度を算出するとすれば、類似度算出部１１０により算出されたいずれかの類似度が、事前に定められた閾値以上である場合（Ｓ１１０でＹｅｓ）、実機制御部１０２は、ステップＳ１０８で選択された制御値候補を実機２００へ送ることなく破棄する。その後、実機制御部１０２はステップＳ１０８の処理に戻る。また、類似度算出部１１０により算出されたいずれかの類似度が、事前に定められた閾値未満である場合には（Ｓ１１０でＮｏ）、実機制御部１０２は、ステップＳ１０８で選択された制御値候補を、実機２００へ送信（転送）する（Ｓ１１２）。
【０１２５】
ここで、類似度算出部１１０が類似度を算出する方法には様々なものが考えられる。
【０１２６】
例えば、類似度算出部は、２つの制御値候補間で対応する制御値の候補同士の差の絶対値の総和の逆数として類似度を算出することができる。この場合、制御値候補が似ているほど、類似度は大きくなる。また、類似度算出部１１０は、２つの制御値候補について、対応する制御値の候補同士の差の絶対値の総和として、類似度を算出してもよい。この場合、２つの制御値候補が似ているほど、類似度は小さくなる。
【０１２７】
図１０は、こうして求められる類似度に基づき類似すると実機制御部１０２により判定される範囲の一例を示す図である。
【０１２８】
点６６１、点６６２及び点６６３に対応する時刻におけるハンド先端速度の速度指令値が、それぞれ、ｖ１、ｖ２及びｖ３である制御値候補を第１の制御値候補とする。図１０に示される太線は、第１の制御値候補に含まれる各制御値を直線で結んだものである。このとき、（１）動作開始時におけるハンド先端位置の差が事前に定められた閾値距離以内であり、（２）点６６１、点６６２及び点６６３に対応する時刻におけるハンド先端速度の速度指令値が、すべて、図１０に示される太線の上下に引かれた２つの細線の間の領域に含まれるような第２の制御値候補は、第１の制御値候補と類似すると判定される。
【０１２９】
以上、本発明の実施の形態２に係るロボットの運動方法決定装置１００は、さらに、２つの制御値候補間の類似度を算出する類似度算出部１１０を備え、実機制御部１０２は、複数の制御値候補に含まれる任意の２つの制御値候補間の類似度が、事前に定められた類似度の閾値が示す類似性よりも類似しないように複数の制御値候補を決定してもよい。
【０１３０】
より具体的には、制御値は、駆動部の駆動時間、駆動距離、駆動速度、駆動加速度、及び、位置のうち少なくとも１つに対応する値であり、実測値は、電流値、電力、及び、電力量のうちの少なくとも１つであり、評価部１０８は、複数の駆動部における実測値の合計又は実測値のピーク値がより小さいほど、より大きくなるように評価値を決定し、類似度算出部１１０は、２つの制御値候補間で対応する制御値の候補同士の差の絶対値の総和の逆数として類似度を算出し、実機制御部１０２は、複数の制御値候補に含まれる任意の２つの制御値候補間の類似度が、事前に定められた閾値未満となるように複数の制御値候補を決定し、制御値決定部１０８は、評価記憶部１１２に記憶されている複数の評価値のうち、最も大きな評価値に対応する制御値候補を、制御値の組として採用するよう決定してもよい。
【０１３１】
一般に、既に評価値を取得した制御値候補と類似する制御値候補については、実機２００を用いて評価をしても、既に取得した評価値と大差のない評価値が得られる場合が多いと考えられる。よって、実機制御部１０２は、実機２００で評価する制御値候補を、既に評価した制御値候補と所定の閾値以上異なる制御値候補に限定することで、実機２００による無駄な評価回数を削減することができる。その結果、ロボットの運動方法決定装置１００が最終的な制御値の組を決定するまでに要する時間を削減することができる。
【０１３２】
次に、本実施の形態に係るロボットの運動方法決定装置１００を用いて、実際にロボットの軌道を決定した場合の検証結果について述べる。
【０１３３】
図１１は、実機２００の一例として検証で使用した６自由度垂直多関節型ロボットの外観図である。
【０１３４】
検証では、図１１に示されるロボットのハンド部分２０４を、第１の位置から、第２の位置まで移動させる際の軌道の最適化を行った。その際の評価関数は、実機２００の関節を駆動するモータを流れる電流のピーク値が、より小さいほど、より高い評価となるように定めた。
【０１３５】
図１２は、本実施の形態に係るロボットの運動方法決定装置１００により最適化された軌道７５２と、標準軌道７５０とで、ロボットを駆動させた際の、ロボットを駆動するモータの電流値を比較した結果の一例を示す図である。
【０１３６】
ここで、標準軌道７５０とは、軌道を最適化する前のロボットの軌道として、もっとも頻度が高いと考えられる軌道であり、具体的には以下のように定めた。標準軌道７５０の開始位置は、実機２００の可動領域の中央とした。また、実機２００は、あらかじめ速度変化パターンが標準搭載されており、この標準搭載された変化パターンを、第１の位置から第２の位置への移動に用いる制御値の組として使用した。
【０１３７】
図１２に示されるように、本実施の形態に係るロボットの運動方法決定装置１００を用いて決定された軌道７５２は、軌道７５０と比較し、電流ピーク値が２０％ほど低減されている。
【０１３８】
また、本実施の形態に係るロボットの運動方法決定装置１００は、数十回の繰り返し回数で、上記電流ピーク値の低減効果が得られる軌道を決定することが可能であった。この回数は、実機２００を用いて評価する際に、実用上問題のない回数といえる。
【０１３９】
なお、前述した実施の形態１及び２において、ロボットの運動方法決定装置１００が備える評価部１０６は、１台の実機２００から実測値を取得し、その評価を行った。しかし、実機２００が複数台ある場合には、複数台の実機２００から実測値を取得し、その評価を行ってもよい。その際には、評価部１０６は、複数の実測値の平均値、中央値、最大値、最小値等を、対応する制御値候補の評価値の決定に使用することが考えられる。
【０１４０】
また、ひとつの実機２００を用いて決定した制御値を、同じ目的で使用する他の複数の実機２００に適用することもできる。これにより、他の同機種のロボットに対しては探索を行わずに電力などが抑制されるため、非常に効率的に、多数のロボットの運動方法を決定することができる。
【０１４１】
なお、実施の形態１に係るロボットの運動方法決定装置１００は、必ずしも評価記憶部１１２を備えずともよい。例えば、実機２００へ送信した制御値候補に対応する評価値が、事前に定められた閾値を初めて超えた場合に、制御値決定部１０８は、その制御値候補を制御値の組として採用するよう決定してもよい。この場合、ロボットの運動方法決定装置１００は、評価記憶部１１２を備えずとも、同様の発明の効果を奏することができる。
【０１４２】
なお、実施の形態２に係る類似度算出部１１０は、差の絶対値に代わり、２乗誤差を用いて類似度を算出してもよい。また、各々の制御値が事前に定められた範囲に含まれているか否かで類似度を算出してもよい。例えば、各々の設計パラメタの制御値が、事前に定められた範囲に含まれていれば類似度に１を加算し、含まれていなければ１を減算する処理を、制御値候補に含まれる全ての設計パラメタについて行うことで類似度を算出してもよい。
【０１４３】
なお、実施の形態に係る類似度算出部１１０は、制御値候補１つにつき１つの類似度を算出する代わりに、制御値候補に含まれる設計パラメタごとに類似度を算出してもよい。この場合、実施の形態２に係る実機制御部１０２は、少なくとも１つの設計パラメタについて、類似度が事前に定められた閾値以上であれば、２つの制御値候補は類似すると判定してもよい。
【０１４４】
また、実施の形態２に係る実機制御部１０２は、図９に示されるステップＳ１１０でＹｅｓの場合、既に評価した制御値候補と類似する制御値候補の全てを破棄する代わりに、評価値が事前に定められた評価基準値未満である制御値候補に限り破棄するとしてもよい。
【０１４５】
一般に、既になされた評価の結果、評価が悪い制御値候補と類似する制御値候補は、やはり悪い評価となることが予想される。一方、評価がよい制御値候補と類似する制御値候補であれば、その軌道に類似する軌道のなかに、最適な軌道が含まれていることが期待できる。よって、実施の形態２に係る実機制御部１０２は、複数の制御値候補に含まれる任意の２つの制御値候補のうち、一方の制御値候補に対応する評価値が、事前に定められた評価基準値未満である場合に限り、一方の制御値候補と、他方の制御値候補とが、事前に定められた閾値が示す類似性よりも類似しないように、複数の制御値候補を決定するとしてもよい。
【０１４６】
例えば、類似度算出部１１０が、２つの制御値候補が類似するほど、より大きな類似度を算出する場合には、実施の形態２に係る実機制御部１０２は、複数の制御値候補に含まれる任意の２つの制御値候補のうち、一方の制御値候補に対応する評価値が、事前に定められた評価基準値未満である場合に限り、一方の制御値候補と、他方の制御値候補との類似度が、事前に定められた閾値未満となるように、複数の制御値候補を決定するとしてもよい。
【０１４７】
なお、本実施の形態に係る実機制御部１０２は、最適な制御値候補の探索アルゴリズムとしてＳＨＡを使用したが、実機制御部１０２が使用する探索アルゴリズムはこれに限られない。例えば、焼きなまし法やタブーサーチのように広く知られている他の発見的（確率的）な探索アルゴリズムを使用してもよい。
【０１４８】
また、実機制御部１０２は、各々の制御値をランダムに決定することで制御値候補を生成してもよい。この場合であっても、実機制御部１０２は、類似する制御値候補を破棄することで、過剰な繰り返し回数を実行せずに、発明の効果を奏することができる。ただし、上記のＳＨＡ等の探索アルゴリズムを使用する場合と比較し、最適値へ収束するまでの繰り返し回数は増加すると考えられる。
【０１４９】
なお、本実施の形態における閾値との比較処理において、「以上」という判断は「超えて」と判断してもよく、「以下」という判断は「未満」と判断してもよい。また、その逆に、「超えて」という判断を「以上」と判断してもよく、「未満」という判断を「以下」と判断してもよい。
【０１５０】
なお、本実施の形態で説明したロボットの運動方法決定装置１００は、コンピュータにより実現することも可能である。図１３は、ロボットの運動方法決定装置１００を実現するコンピュータシステムのハードウェア構成を示すブロック図である。
【０１５１】
図１３を参照して、ロボットの運動方法決定装置１００は、コンピュータ３４と、コンピュータ３４に指示を与えるためのキーボード３６及びマウス３８と、コンピュータ３４の演算結果等の情報を提示するためのディスプレイ３２と、コンピュータ３４で実行されるプログラムを読み取るためのＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）装置４０及び通信モデム（図示せず）とを含む。
【０１５２】
ロボットの運動方法決定装置１００が行う処理であるプログラムは、コンピュータで読み取り可能な媒体であるＣＤ−ＲＯＭ４２に記憶され、ＣＤ−ＲＯＭ装置４０で読み取られる。又は、コンピュータネットワークを通じて通信モデム５２で読み取られる。
【０１５３】
コンピュータ３４は、ＣＰＵ（Central Processing Unit）４４と、ＲＯＭ（Read Only Memory）４６と、ＲＡＭ（Random Access Memory）４８と、ハードディスク５０と、通信モデム５２と、バス５４とを含む。
【０１５４】
ＣＰＵ４４は、ＣＤ−ＲＯＭ装置４０又は通信モデム５２を介して読み取られたプログラムを実行する。ＲＯＭ４６は、コンピュータ３４の動作に必要なプログラムやデータを記憶する。ＲＡＭ４８は、プログラム実行時のパラメタなどのデータを記憶する。ハードディスク５０は、プログラムやデータなどを記憶する。通信モデム５２は、コンピュータネットワークを介して他のコンピュータとの通信を行う。バス５４は、ＣＰＵ４４、ＲＯＭ４６、ＲＡＭ４８、ハードディスク５０、通信モデム５２、ディスプレイ３２、キーボード３６、マウス３８及びＣＤ−ＲＯＭ装置４０を相互に接続する。
【０１５５】
さらに、上記の各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integrated Circuit：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０１５６】
さらにまた、上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。ＩＣカード又はモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカード又はモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ＩＣカード又はモジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【０１５７】
また、本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１５８】
さらに、本発明は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-ray Disc（登録商標））、ＵＳＢメモリ、ＳＤカードなどのメモリカード、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている上記デジタル信号であるとしてもよい。
【０１５９】
また、本発明は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０１６０】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしてもよい。
【０１６１】
また、上記プログラム又は上記デジタル信号を上記記録媒体に記録して移送することにより、又は上記プログラム又は上記デジタル信号を、上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０１６２】
さらに、上記実施の形態及びその変形例をそれぞれ組み合わせるとしてもよい。
【０１６３】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【産業上の利用可能性】
【０１６４】
本発明は、ロボットの運動方法決定装置に適用でき、特にロボットを事前に定められた第１の位置から第２の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置等に適用できる。
【符号の説明】
【０１６５】
３２  ディスプレイ
３４  コンピュータ
３６  キーボード
３８  マウス
４０  ＣＤ−ＲＯＭ装置
４２  ＣＤ−ＲＯＭ
４４  ＣＰＵ
４６  ＲＯＭ
４８  ＲＡＭ
５０  ハードディスク
５２  通信モデム
５４  バス
１００  ロボットの運動方法決定装置
１０２  実機制御部
１０４  実測値取得部
１０６  評価部
１０８  制御値決定部
１１０  類似度算出部
１１２  評価記憶部
２００  実機
２０２  計測装置
５５０  発見的手法
５５２、７５０、７５２  軌道
７０２、７０４、７０６、７０８、７１０、７１２  探索範囲
９００  計算機
９０２  動力学モデル
９０４  発見的手法
９０６  軌道
【図１】
0005828539.tif 000002
【図２】
0005828539.tif 000003
【図３】
0005828539.tif 000004
【図４】
0005828539.tif 000005
【図５】
0005828539.tif 000006
【図６】
0005828539.tif 000007
【図７】
0005828539.tif 000008
【図８】
0005828539.tif 000009
【図９】
0005828539.tif 000010
【図１０】
0005828539.tif 000011
【図１１】
0005828539.tif 000012
【図１２】
0005828539.tif 000013
【図１３】
0005828539.tif 000014
【図１４】
0005828539.tif 000015
【図１５】
0005828539.tif 000016