説明

ロボットの運動方法決定装置、ロボットの運動方法決定方法、及び、そのプログラム

【課題】対象ロボットの動力学モデルが不明な場合でも、最適な軌道を決定することが可能なロボットの運動方法決定装置を提供する。
【解決手段】本発明に係るロボットの運動方法決定装置100は、ロボットが第1の位置から第2の位置へ移動するように、ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した制御値候補をロボットに送信する実機制御部102と、制御値候補によって制御されている複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得部104と、実測値から、実測値に対応する制御値候補の評価値を決定する評価部106と、評価値に基づいて、制御値候補を、ロボットの運動方法を決定するための制御値の組として採用するか否かを決定する制御値決定部108とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの運動方法決定装置等に関し、特に、ロボットを事前に定められた第1の位置から第2の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置に関する。
【背景技術】
【0002】
近年、二酸化炭素排出量の削減のために、化石燃料使用量の低減が求められている。そのため、自動車や家電製品を使用する時のみでなく、それらの製造時においも化石燃料、及び電力の使用量を低減することが求められている。したがって、工業製品の製造過程で広く用いられている産業用ロボットの消費電力量を低減する必要性が高まっている。
【0003】
一般に、複数の駆動関節をもつロボットの静力学、動力学特性は強い非線形性を示し、各関節の駆動力は、ロボットの位置、姿勢、速度、及び、加速度によって複雑に変化する。ここで、ロボットの出力部(例えば、ロボットアームのハンド部分)を第1の位置から第2の位置へ移動させる場合において、ロボットの出力部(例えば、ハンド部分)の時間に対する変位を「軌道」又は「運動方法」と呼ぶ。すなわち、以後、ロボットの軌道(又は、ロボットの運動方法)とは、ロボットの可動部分を第1の位置から第2の位置へ移動させる場合において、ロボットの可動部分の位置の時間変化を表す。
【0004】
定型的な作業を行う産業用ロボットの軌道は事前に定めることができる。よって、各関節の駆動力、又は駆動させるために必要なエネルギーがより少なくなるように、事前に軌道を最適化しておくことで、ロボットの消費電力量を低減することができる。
【0005】
従来、こうしたロボットの軌道を最適化する方法として、対象とするロボットの動力学モデルに基づくシミュレーションが試みられている(例えば、非特許文献1を参照)。
【0006】
シミュレーションで最適軌道の探索を行うことにより、計算時間をかけることで、多数の軌道の繰り返し探索が可能となり、ロボットの消費電力をより低減させる最適な軌道を決定することができる。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】林 道大,立矢 宏,浅川 直紀,「発見的手法を用いた多自由度マニピュレータの軌道決定」,日本機械学会論文集(C編),2009年2月,第75巻,第750号,p.14−21
【非特許文献2】S., Lin, B., Kernighan, “An Effective Heuristic Algorithm for the Traveling-Salesman Problem”, Operations Research, 1973, Vol.21, No.2, p.498-516
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来のシミュレーションを用いる方法では、対象ロボットの動力学モデルを知る必要があるが、一般に、これを知ることは極めて困難である。
【0009】
図14は、関連技術に係る、ロボットの動力学モデルに基づくシミュレーションを用いた軌道生成法の概略を示す図である。
【0010】
図14に示されるように、この方法において計算機900は、まず、発見的手法904によりロボットの軌道906を決定するパラメタセットの候補を特定する。計算機900は、このパラメタセットを当てはめた軌道906でロボットを動作させた場合に必要な駆動力の解析値を得る。この解析値を評価値として、例えば解析値がより小さくなるように、発見的手法904により軌道906の候補を繰り返し探索することで、計算機900は、最適な軌道906を決定することができる。
【0011】
この手法では、評価値を得るためには、計算機900がその内部に、対象とするロボットの動力学モデル902を数式として有していることが不可欠となる。
【0012】
図15は、関連技術に係るロボットの動力学モデル902の具体例を示す図である。
【0013】
図15に示されるように、ロボットの動力学モデル902は、例えば、ジョイントA〜ジョイントCの各ジョイントの運動状態を決定するパラメタ、リンクB及びリンクCのリンク長、質量及び重心位置、並びに、軸受け、減速機及びアクチュエータの効率など、対象ロボットの多様なパラメタを含む。シミュレーションを行うには、これらのパラメタを高い精度で事前に決定することが必要である。
【0014】
しかし、市販されている産業用ロボットの多くは、これらパラメタの値、又は、動力学モデルが有するパラメタそのものが不明であり、同手法を適用できない。そのため、ロボットのユーザが、動力学モデルを用いたシミュレーションによりロボットの軌道を最適化することは、極めて困難であるという課題がある。
【0015】
そこで、本発明は、対象ロボットの動力学モデルが不明な場合でも、最適な軌道を決定することが可能なロボットの運動方法決定装置を提供することを目的とする。
【課題を解決するための手段】
【0016】
本発明のある局面に係るロボットの運動方法決定装置は、ロボットを事前に定められた第1の位置から第2の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置であって、ロボットが第1の位置から第2の位置へ移動するように、ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した制御値候補をロボットに送信する実機制御部と、制御値候補によって制御されている複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得部と、実測値から、実測値に対応する制御値候補の評価値を決定する評価部と、評価値に基づいて、制御値候補を、ロボットの運動方法を決定するための制御値の組として採用するか否かを決定する制御値決定部とを備える。
【0017】
この構成によると、ロボットの運動方法決定装置は、対象ロボットの動力学モデルがなくても、制御値候補に対応する実測値を実機から取得することにより、制御値候補の評価値を得ることができる。よって、ロボットの運動方法決定装置は、実測値から得た評価値をもとに、ロボットの運動方法を決定する際の最終的な制御値の組として制御値候補を採用すべきか否かを判断し、決定することができる。その結果、対象ロボットの動力学モデルが不明な場合でも、最適な軌道を決定することが可能なロボットの運動方法決定装置を提供することができる。
【0018】
また、さらに、評価記憶部を備え、実機制御部は、互いに異なる複数の制御値候補を決定し、評価部は、複数の制御値候補の各々を、当該制御値候補の評価値と対応付けて評価記憶部に記憶させ、制御値決定部は、評価記憶部に記憶されている複数の評価値のうち、最も評価がよい評価値に対応する制御値候補を、制御値の組として採用するよう決定してもよい。
【0019】
この構成によると、ロボットの運動方法決定装置は、複数の制御値候補の各々を、実機に実行させ、その実測値から得た評価値を、制御値候補の各々に対応付けて記憶部に記憶させることができる。そのため、ロボットの運動方法決定装置100は、所定の終了条件が満たされるまで、実機による評価を繰り返し、評価値を最良にすることを目標に制御値候補の探索を行うことができる。その結果、より最適な軌道を決定することができる。
【0020】
本発明の他の局面に係るロボットの運動方法決定装置は、さらに、2つの制御値候補間の類似度を算出する類似度算出部を備え、実機制御部は、複数の制御値候補に含まれる任意の2つの制御値候補間の類似度が、事前に定められた類似度の閾値が示す類似性よりも類似しないように複数の制御値候補を決定するとしてもよい。
【0021】
一般に、既に評価値を取得した制御値候補と類似する制御値候補については、実機を用いて評価をしても、既に取得した評価値と大差のない評価値が得られる場合が多いと予想される。よって、実機制御部は、実機で評価する制御値候補を、既に評価した制御値候補と一定程度以上、類似しない制御値候補に限定することで、実機による無駄な評価回数を削減することができる。その結果、ロボットの運動方法決定装置が最終的な制御値の組を決定するまでに要する時間を削減することができる。
【0022】
具体的には、制御値は、駆動部の駆動時間、駆動距離、駆動速度、駆動加速度、及び、位置のうち少なくとも1つに対応する値であり、実測値は、電流値、電力、及び、電力量のうちの少なくとも1つであり、評価部は、複数の駆動部における実測値の合計又は実測値のピーク値がより小さいほど、より大きくなるように評価値を決定し、類似度算出部は、2つの制御値候補間で対応する制御値の候補同士の差の絶対値の総和の逆数として類似度を算出し、実機制御部は、複数の制御値候補に含まれる任意の2つの制御値候補間の類似度が、事前に定められた閾値未満となるように複数の制御値候補を決定し、制御値決定部は、評価記憶部に記憶されている複数の評価値のうち、最も大きな評価値に対応する制御値候補を、制御値の組として採用するよう決定してもよい。
【0023】
また、実機制御部は、複数の制御値候補に含まれる任意の2つの制御値候補のうち、一方の制御値候補に対応する評価値が、事前に定められた評価基準値未満である場合には、一方の制御値候補と、他方の制御値候補とが、事前に定められた閾値が示す類似性よりも類似しないように、複数の制御値候補を決定するとしてもよい。
【0024】
一般に、既になされた評価の結果、評価が悪い制御値候補と類似する制御値候補は、やはり悪い評価となることが予想される。一方、評価がよい制御値候補と類似する制御値候補であれば、その軌道に類似する軌道のなかに、最適な軌道が含まれていることが期待できる。よって、実機制御部は、既に評価された結果、評価が低いことが判明している制御値候補に類似する制御値候補は、再度、実機で評価することは無駄と判断して破棄する。一方、評価が高いことが判明している制御値候補に類似する制御値候補は、実機に送信し、その評価を行う。これにより、ロボットの運動方法決定装置は、実機による評価回数を抑えつつ、より最適な制御値の組を決定することができる。
【0025】
なお、本発明は、このようなロボットの運動方法決定装置として実現できるだけでなく、ロボットの運動方法決定装置に含まれる特徴的な手段をステップとするロボットの運動方法決定方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM(Compact Disc Read Only Memory)等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのはいうまでもない。
【0026】
さらに、本発明は、このようなロボットの運動方法決定装置の機能の一部又は全てを実現する半導体集積回路(LSI)として実現したり、このようなロボットの運動方法決定装置を含むロボットの運動方法決定システムとして実現したりできる。
【発明の効果】
【0027】
以上より、本発明は、対象ロボットの動力学モデルが不明な場合でも、最適な軌道を決定することが可能なロボットの運動方法決定装置を提供できる。
【図面の簡単な説明】
【0028】
【図1】本発明の実施の形態1及び2に係るロボットの運動方法決定装置の使用状態を示す概念図である。
【図2】本発明の実施の形態1に係るロボットの運動方法決定装置の機能ブロックを示す図である。
【図3】本発明の実施の形態1及び2におけるSHAに用いられる設計変数行列の一例を示す第1の図である。
【図4】本発明の実施の形態1及び2におけるSHAに用いられる設計変数行列の一例を示す第2の図である。
【図5】本発明の実施の形態1及び2におけるSHAに用いられる絞り込み探索などの一例を示す図である。
【図6】実施の形態1に係るロボットの運動方法決定装置が軌道を決定する処理の手順を示す図である。
【図7】ロボットコマンドに対応するロボットハンド先端の移動速度の変化の一例を示す図である。
【図8】実施の形態2に係るロボットの運動方法決定装置の機能ブロックを示す図である。
【図9】実施の形態2に係るロボットの運動方法決定装置が軌道を決定する処理の手順を示す図である。
【図10】類似度に基づき類似すると実機制御部により判定される範囲の一例を示す図である。
【図11】実機の一例として検証で使用した6自由度垂直多関節型ロボットの外観図である。
【図12】実施の形態2に係るロボットの運動方法決定装置により最適化された軌道と、標準軌道とで、モータの電流値を比較した結果の一例を示す図である。
【図13】本発明の実施の形態1及び2にかかるロボットの運動方法決定装置を実現するコンピュータシステムのハードウェア構成を示すブロック図である。
【図14】関連技術に係るロボットの動力学モデルに基づくシミュレーションを用いた軌道生成法の概略を示す図である。
【図15】関連技術に係るロボットの動力学モデルの具体例を示す図である。
【発明を実施するための形態】
【0029】
以下、本発明に係るロボットの運動方法決定装置の実施の形態について、図面を参照しながら詳細に説明する。
【0030】
(実施の形態1)
まず、本発明の実施の形態1に係るロボットの運動方法決定装置の構成を説明する。
【0031】
図1は、本実施の形態に係る、ロボットの運動方法決定装置100の使用状態を示す概念図である。
【0032】
図1に示されるように、本実施の形態に係るロボットの運動方法決定装置100は、対象とするロボットの動力学モデルを有していない。その代わり、ロボットの実機200との、入出力インタフェースを備える。
【0033】
具体的には、ロボットの運動方法決定装置100は、発見的手法550により実機200の制御値の候補の組(以後、制御値候補という)を決定する。実機200の制御値とは、例えば、実機200が備える複数の駆動部を制御するためのパラメタの値である。
【0034】
ロボットの運動方法決定装置100は、決定された制御値候補を、実機200へ送信する。
【0035】
次に、実機200は、受信した制御値候補に従って(すなわち、軌道552で)実際に稼働する。例えば、実機200が備えるロボットアームを、第1の位置から第2の位置へと移動させる場合、ロボットアームは様々な軌道をとりうるが、軌道552はそのうちの1つである。
【0036】
また実機200は、実機200が備える複数のモータに流れる各々の電流値又は電力量等、駆動部の駆動状態を示す物理量を計測する計測装置202を備えている。この計測装置202により計測された物理量の実測値を、ロボットの運動方法決定装置100は取得する。
【0037】
ロボットの運動方法決定装置100は、取得した実測値を事前に定められた基準(例えば、評価関数など)に従って評価する。以後、ロボットの運動方法決定装置100は、所定の条件が満たされるまで、繰り返し、発見的手法550により新たな軌道552を生成し、この軌道522を実機200に与え、実測値を取得し、評価を行う。ロボットの運動方法決定装置100は、こうして生成された複数の軌道552の中で、最も評価がよい軌道522を、最適な軌道552として決定する。
【0038】
以上述べたように、ロボットの運動方法決定装置100は、制御値候補の評価を実機200によって行うことで、対象ロボットである実機200の動力学モデルが不明な場合であっても、ロボットの運動方法決定装置100は最適な軌道を決定することができる。
【0039】
図2は、本発明の実施の形態に係る、ロボットの運動方法決定装置100の機能ブロックを示す図である。
【0040】
図2に示されるように、ロボットの運動方法決定装置100は、実機制御部102と、実測値取得部104と、評価部106と、制御値決定部108と、評価記憶部112とを備える。
【0041】
ロボットの運動方法決定装置100は、前述のとおり、ロボットを事前に定められた第1の位置から第2の位置へ移動させるための運動方法を決定する。
【0042】
その際に、実機制御部102は、図2において実機200として示されるロボットが第1の位置から第2の位置へ移動するように、実機200が備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した制御値候補を実機200に送信する。
【0043】
ここで、制御値とは、例えば、実機200が備える各々の駆動部の駆動時間、駆動距離、駆動速度、駆動加速度及び位置のうち少なくとも1つに対応する値である。
【0044】
実機制御部102は、具体的にはSHAと呼ばれる発見的手法により、制御値候補を決定する。その詳細は後述する。
【0045】
なお、実機制御部102は、1回で最適な制御値候補を決定することは困難であるため、互いに異なる複数の制御値候補を決定し、実機200により繰り返し評価を行うことが好ましい。
【0046】
実測値取得部104は、制御値候補によって制御されている実機200が備える複数の駆動部の駆動状態を示す物理量である実測値を取得するインタフェースである。実測値とは、例えば、駆動部を流れる電流、電力及び電力量のうちの、少なくとも1つが考えられる。また、実機200について計測可能な、他の任意の物理量(例えば、実機200が備えるロボットアームの先端部の位置、加速度、駆動部の表面温度、照度、周囲音の振幅など)を実測値として用いてもよい。
【0047】
評価部106は、実測値取得部104が取得した実測値から、実測値に対応する制御値候補の評価値を決定する。例えば、実測値が、実機200が備える複数の駆動部各々の電力量であれば、評価部106は、その合計値を評価値として決定することが考えられる。この場合、評価値が小さいほど、消費電力が少なく、評価がよいことを示す。
【0048】
また、いわゆるデマンドコントロールのように、消費電力のピーク値が一定値以下となるように制御することで省エネ及び省コストを図る目的では、例えば、複数の駆動部各々の電力を実測値とし、実機200の稼働時間を通じての、駆動部全体での消費電力の最大値を評価値としてもよい。この場合、評価値が小さいほど、ピーク電力を小さく抑えられており、評価がよいことを示す。
【0049】
すなわち、実機200の消費電力の抑制を目的とする場合において、実測値が、駆動部を流れる電流、電力及び電力量のうちの、少なくとも1つである場合には、評価部106は、複数の駆動部における実測値の合計がより小さいほど、より大きくなるように評価値を決定してもよい。
【0050】
また、評価部106は、実機制御部102により決定された複数の制御値候補の各々を、その制御値候補の評価値と対応付けて、後述する評価記憶部に記憶させる。
【0051】
制御値決定部108は、評価値に基づいて、制御値候補を、実機200の運動方法を決定するための制御値の組として採用するか否かを決定する。
【0052】
具体的には、制御値決定部108は、評価記憶部に記憶されている複数の評価値のうち、最も評価がよい評価値に対応する制御値候補を、制御値の組として採用するよう決定する。より具体的には、制御値決定部108は、評価記憶部112に記憶されている複数の評価値のうち、最も大きな評価値に対応する制御値候補を、制御値の組として採用するよう決定する。
【0053】
評価記憶部112は、前述のとおり、制御値候補とその評価値とを対応付けて記憶する記憶部であり、具体的には、RAM(Random Access Memory)、ROM(Read Only Memory)、SRAM(Static Random Access Memory)等で実現される。
【0054】
次に、図3及び図4を参照して、本実施の形態に係るロボットの運動方法決定装置100が備える実機制御部102が、評価値候補を決定するために使用する発見的手法による探索アルゴリズムである、SHAについて説明する。
【0055】
発見的手法による探索アルゴリズムとしてはGA(Genetic Algorithm)が代表的であるが、本実施の形態ではS.Linらが非特許文献2において提案し、発明者らがロボットの運動方法決定装置100に適合するよう改良を加えたSHAを用いる。
【0056】
SHAでは設計変数行列と呼ばれる、各列が決定すべき設計パラメタを示し、各行が各設計パラメタの取り得る値である離散値(すなわち、制御値)を示す行列を構築し、同行列を操作することで評価が最良となる変数の組合せを探索する。
【0057】
図3は、本実施の形態おけるSHAに用いられる設計変数行列の一例を示す図である。同図のi行j列の要素Sijはj番目の設計パラメタのi番目の制御値を表す。本実施の形態において、設計パラメタとは、例えば、実機200が備えるいずれかの駆動部の、ある時刻における、駆動時間、駆動距離、駆動速度、駆動加速度、位置のいずれかである。また、制御値とは、例えば設計パラメタが駆動時間であれば、事前に定められた駆動時間(1秒、3秒、5秒、7秒、9秒など)のいずれかに対応する値であり、設計パラメタが駆動距離であれば、事前に定められた駆動距離(1m、3m、5m、7m、9mなど)のいずれかに対応する値である。
【0058】
以下、具体的な設計変数行列の操作手順(以下、SHA処理ステップともいう)を、図3及び図4を参照して説明する。
【0059】
・ステップ1:実機制御部102は、決定すべき設計パラメタの数がnである場合、n列の各々が設計パラメタの各々に対応し、各行が設計パラメタの制御値としてとり得る離散値に対応する設計変数行列を作成する。なお、設計パラメタごとに制御値としてとりうる離散値の数は同じとする。図3は設計変数が6、それぞれが取り得る離散値の数が9である場合の設計変数行列を示す。
【0060】
・ステップ2:実機制御部102は、設計変数行列の各列において離散値をランダムに1つ選択し、初期経路を決定する。決定された初期経路を基準経路Tとする。図3ではTとして、実線で結ばれた要素S61〜S56が選択されている。なお、以後、SHAにおける制御値候補を、pからpへ向かうルートに見立てて、「経路」とも表記する。
【0061】
・ステップ3:実機制御部102は、設計変数行列の1列目から順に要素選択の操作を行っていく。まず、1列目において、基準経路Tとして選択されている要素の他に一定数の要素をランダムに選択する。図4(a)では白丸の要素(S41、S61、S81)が選択されている。これらの要素をLook−ahead−Base Point(LBP)と呼び、新たな設計変数の候補とする。
【0062】
・ステップ4:実機制御部102は、LBPとした各要素に続く次列の要素をランダムに選択し、図4(b)に示すように複数の経路を生成する。具体的には、S41及びS22を含む経路、S61及びS32を含む経路、S61及びS52を含む経路、並びに、S81及びS82を含む経路が生成されている。
【0063】
・ステップ5:実機制御部102は、ステップ2で決定された基準経路及びステップ4であらたに生成された複数の経路の各々を実機200により評価し、得られた評価値が最も良い制御値の組合せを新たな基準経路とする。例えば、図4(b)ではS41及びS22を含む経路が新たな基準経路Tとして選択されたとする。
【0064】
以後、実機制御部102は、対象とする列を順に次列へ進め、評価値の良い経路を基準経路として更新する操作(上記ステップ3〜5)をn−1列目(図4に示される例では、第5列)まで繰り返す。例えば、図4(c)は、2列目を対象に要素選択の操作(ステップ3)を行い、基準経路Tが選択された場合を示す。
【0065】
・ステップ6:実機制御部102は、最終列(図4に示される例では、第6列)では要素選択を行わず、最終列に含まれる全ての要素を対象として離散値と同数の経路を生成し、最も評価値の良い離散値の組を基準経路として更新する。
【0066】
・ステップ7:図4(d)に示されるように、実機制御部102は、設計変数行列の最終列(第6列)を第1列へ移動させ、その他の列は次列へと移動させ設計変数行列を再構築する。得られた行列に対し以上の操作を繰り返す。なお、実機制御部102は、ステップ3〜7の操作を繰り返し、最初に1列目であった設計変数(図4に示される例では、p)が再び1列目となった時点で、SHA処理を終了する。
【0067】
ロボットの運動方法決定装置100が備える制御値決定部108は、以上のSHA処理による繰り返し操作を通じて、最も評価値がよい経路に対応する制御値候補を、実機200の運動方法を決定するための最終的な制御値の組として採用する。
【0068】
なお、発見的手法では乱数を用いて解を探索するため、繰り返し計算時において最適解近傍の結果が得られたとしても、同結果近傍のさらに良好な解が探索されるとは限らない。また、各設計パラメタがとり得る離散値の幅を細分割するほど、より評価関数値が良い解が得られると予想されるが、離散値の数を増やすと行数が膨大となり探索が困難となる。
【0069】
そこで本実施の形態に係る実機制御部102は、まず、離散値の幅を比較的粗く設定した設計変数行列を対象に、上記ステップ1〜ステップ7の操作により、評価値が良好な制御値候補を求めた後、さらに、得られた制御値候補に含まれる各々の制御値を中央値として、刻み幅をより細分割した設計変数行列を再構築し、再構築後の設計変数行列に対して、ステップ1〜ステップ7の探索処理を再度実行してもよい。実機制御部102は、この探索により最終的に得られた基準経路を解とすることで、制御値のより正確な最適化を行うことができる。なお、初めの探索を「予備探索」、その探索結果近傍での刻み幅を細分割した設計変数行列を用いた探索を「絞り込み探索」と呼ぶ。
【0070】
上記絞り込み探索について、図5を参照してより具体的に説明する。
【0071】
図5は、本実施の形態におけるSHAに用いられる絞り込み探索などの一例を示す図である。
【0072】
図5(a)は、3つの時刻(t1、t2、t3)におけるロボットハンド先端部の駆動速度をそれぞれ設計パラメタp1、p2、p3とし、その各々の制御値(すなわち、ロボットハンド先端速度)を決定する場合の、予備探索の結果を示す。
【0073】
予備探索を開始する時点では、p1の探索範囲702、p2の探索範囲704、及び、p3の探索範囲706は、いずれも共通の幅(上下限値)をもつ。
【0074】
ここで、予備探索が終了し、図5(a)に示されるように、p1の制御値としてv1が、p2の制御値としてv2が、p3の制御値としてv3が、実機制御部102によって決定されたとする。
【0075】
この場合、p1〜p3の最適解は、各々、v1〜v3の近傍に存在する可能性が高いと考えられる。そこで、実機制御部102は、絞り込み探索として、例えば図5(b)に示されるように、p1の探索範囲702を、予備探索時よりもv1の近傍へ絞り込んだ新たな探索範囲708を設定する。実機制御部102は、探索範囲704及び探索範囲706についても同様に、それぞれv2及びv3近傍へ絞り込んだ新たな探索範囲を設定する。ここで、絞り込み後の探索範囲と、絞り込み前の探索範囲の離散化数を同一とすると、絞り込み後の探索範囲では、離散化の粒度がより細かくなる。よって、実機制御部102は、絞り込み後の探索範囲について、再度SHAを実行することにより、予備探索によって決定した制御候補値近傍において、より最適な制御候補値を決定することができる。
【0076】
なお、実機制御部102は、必ずしも絞り込み探索を行う必要はない。例えば、予備探索で決定された制御値の評価値が、事前に定められた基準値よりも低い場合には、各設計パラメタの探索範囲をより広げた新たな探索範囲を設定し、この範囲内を対象として再度SHAを行ってもよい。図5(c)に示される探索範囲710は、この一例である。
【0077】
また、例えば予備探索によって決定された制御値が、探索範囲の中央値よりの上下いずれかに偏っている場合には、実機制御部102は、図5(d)に示される探索範囲712のように、偏りをなくすように(すなわち、予備探索によって決定された制御値を、探索範囲の中央値へ近づける向きに)探索範囲をシフトさせた後、新たな探索範囲内を対象として再度SHAを行ってもよい。
【0078】
以上述べた、本実施の形態における実機制御部102が行うSHAは、GAと比較して次のような利点を有する。
【0079】
(1)GAでは設計変数を2進数列で表現される遺伝子モデルへ変換する必要があるが、SHAでは設計変数として実値を直接取り扱える。
【0080】
(2)GAでは世代数、交叉率、突然変異率など解の探索の実行を左右する複数のパラメタの調整が必要である。これらの値は解の探索結果に大きな影響を及ぼすが、その決定は主として経験に頼らざるをえない。これに対し、SHAでは調整が困難なパラメタは特にない。
【0081】
(3)繰り返し探索時において、GAでは毎回、多数の解の候補について評価値の取得が必要であり、評価関数の処理が複雑である場合は全体の処理量が膨大となる。これに対し、SHAで評価する解の候補は少数であるため1回ごとの処理時間は短く、全体の処理時間を短縮できる。
【0082】
特に、(3)に述べた処理時間を短縮できる利点は、本願発明において重要な利点である。動力学モデルとして計算機内で模擬されたロボットを使用する場合には、処理時間はさほど問題にならないが、ロボットの実機を使用する場合、安全面等を考えると、常にロボットのそばに人が待機する必要が生じる。また、既に現場に導入されているロボットであれば、軌道決定作業のために占有できる時間も通常は短時間に制限される。したがって、GAや、関連技術に係るSHAと比較し、絞り込み探索を併用する発明者らの独自のSHAは、本実施の形態に係るロボットの運動方法決定装置100を実現する上で、より適している。
【0083】
次に、図6を参照して、本実施の形態に係るロボットの運動方法決定装置100が軌道を決定する処理の手順について説明する。
【0084】
まず、実機制御部102は、例えばGUI(Graphical User Interface;図示なし)により、又は、外部ファイルを読み込むことにより、ユーザにより決定される、軌道探索のための条件を取得する。より具体的には、(1)ロボットの軌道を決定するために必要な設計パラメタ、及び、(2)設計パラメタの値である制御値がとりうる上下限値とその分割数とを取得する(S102、S104)。
【0085】
次に、実機制御部102は、前述のSHA処理ステップ7に示されるようなSHA処理の終了条件が満たされていないと判定した場合には(S106でNo)、前述のSHA処理を実行する。
【0086】
ここで、実機制御部102は、前述のSHA処理ステップ5において、まだ評価値が定まっていない制御値候補がある場合には、評価値が定まらない制御値候補の中から1つを選択し(S108)、実機200へ送信する(S112)。より具体的には、制御値候補は、実機200のロボット動作プログラム内のパラメタとして、実機200へ送信される。
【0087】
次に、実機200は、送信された制御値候補に従って動作を行う(S114)。その間に、実機200が有する駆動部の駆動状態を示す物理量が計測される(S116)。例えば、実機200が有する複数のモータの各々に電力計が接続され、各モータの消費電力が計測される。なお電力計は、実機200が備えていてもよく、実機200の外部に接続されてもよい。
【0088】
こうして計測された各モータの消費電力の実測値は、ロボットの運動方法決定装置100が備える実測値取得部104へと、無線又は有線通信により送信される。この実測値は、評価部106により、所定の評価関数により評価され、制御候補値に対する評価値が決定される(S118)。その後、評価部106は、評価値と、評価値に対応する制御候補値を、評価記憶部112に記憶させる。
【0089】
なお評価関数としては、前述のように、例えば実機200の総消費電力が少ないほど評価値を高く決定するものや、ピーク電力が小さいほど評価値を高く決定するもの等が考えられるが、他の基準で評価関数を決定してもよい。
【0090】
以上のステップS108からS118を、前述のSHA処理ステップ5における、全ての制御値候補について評価値が定まるまで繰り返す。さらに、制御値決定部108は、制御値候補の最適値を更新するため、前述のSHA処理ステップ5において、現在の基準経路に対応する制御値候補よりも評価のよい制御値候補が見つかったか否かを判定する(S120)。判定の結果、より評価がよい制御値候補が見つかった場合には(S120でYes)、制御値決定部108は、より評価がよい制御値候補を基準経路として設定する(S122)。一方、より評価がよい制御値候補が見つからなかったと判定した場合には(S120でNo)、制御値決定部108は、基準経路を更新しない。
【0091】
次に、制御値決定部108は、基準経路に対応する最良の評価値の推移により、SHAの探索条件の再設定又はSHAによる探索処理の打ち切りを判定する(S124)。
【0092】
ここで、探索条件の再設定とは、例えば、ステップS122において基準経路が変更される割合が事前に定められた値よりも低下した場合に、制御値決定部108が、図5(c)に示されるように、各設計パラメタの上下限の幅が広がるように探索条件を再設定するよう決定することをいう。また、ステップS122において評価値が大幅に向上した場合には、制御値決定部108は、図5(b)に示されるように、各設計パラメタの上下限の幅が狭まるように探索条件を再設定するよう決定してもよい。
【0093】
また、探索処理の打ち切りとは、例えば、ステップS122において基準経路の更新が滞った場合(より具体的には、事前に定められた回数以上連続して、基準経路が更新されなかった場合や、基準経路の更新率が所定の値を下回った場合など)に、制御値決定部108がSHAによる探索を打ち切り(S126でYes)、これまでに最も良好な評価値を示した制御値候補を、実機200の運動方法を決定するための制御値の組として採用するよう決定することをいう。
【0094】
一方、制御値決定部108は、SHAによる制御値の組の探索を継続すると判定した場合には(S126でNo)、再度、実機制御部102が行うステップS106の処理に戻る。
【0095】
また、実機制御部102が、SHA処理ステップ7に示されるようなSHA処理の終了条件が満たされていると判定した場合には(ステップS106でYes)、実機制御部102はSHA処理を終了する。その後、制御値決定部108が、その時点で最も良好な評価値を示した制御値候補を、実機200の運動方法を決定するための制御値の組として採用するよう決定する。
【0096】
次に、本実施の形態における制御値候補の具体例について、詳細に説明する。
【0097】
関連技術にかかる動力学モデル902によって軌道を決定する場合には、関節角変位やハンド先端変位の時間変化を多項式などで表現し、その係数を適当に決定することでロボットの軌道が表現される。しかし、本実施の形態において、実機200を動作させる場合、多項式などで表現された通りに各関節の変位を制御することは困難である。そこで、本実施の形態に係るロボットの運動方法決定装置100では、産業用ロボットに標準的に備わっているロボットコマンドのパラメタを設計パラメタとし、その値の組合せを制御値候補とすることで、実機200の軌道を表現する。以下、より詳細に述べる。
【0098】
一般に、産業用ロボットのほとんどはロボットコマンドにより制御される。例えば、ロボットのハンド先端の移動速度、座標などは、次のような複数のロボットコマンドの組がロボットに送信されることで、制御される。
【0099】
SPEED 500MM/S
LMOVE(500,1000,250)
【0100】
ここで、SPEEDコマンドは移動速度を指定し、LMOVEコマンドはハンド先端座標を指定する。ハンド先端部は、LMOVEコマンドで指定されたハンド先端座標を、SPEEDコマンドで指定された移動速度で通過するように、制御される。
【0101】
このようなコマンドの組により速度と位置を次々と指定することでロボットが動作する。これらの「速度指令」と「位置指令」はメーカが異なるロボットであっても、SPEED→velocity、LMOVE→move linear等の置き換えが可能な程度の差異しかない。よって、駆動部ごとに、速度の指令値(速度指令値)と、位置の指令値(位置指令値)の組を指定することで、ロボットの軌道が定まる。従って、ロボットの運動方法決定装置100は、各々の指令値の具体的な値を制御値候補として実機200へ送信することにより、実機200を制御し、これにより、制御値候補に対応する評価値を取得することができる。
【0102】
例えば、ロボットの運動方法決定装置100は、次に示すロボットコマンド内の位置指令値x、y、z、及び、速度指令値v1、v2、v3を設計パラメタとし、これらのある値の組を制御値候補として実機200へ送信することで、対応する評価値を取得する。
【0103】
LMOVE([x],[y],[z])
SPEED[v1]MM/S
LMOVE([x]+100,[y]+100,[z]+100)
SPEED[v2]MM/S
LMOVE([x]+200,[y]+200,[z]+200)
SPEED[v3]MM/S
LMOVE([x]+300,[y]+300,[z]+300)
【0104】
上記ロボットコマンドに対応する、実機200のハンド先端の移動速度の変化を、図7に示す。
【0105】
図7は、ロボットコマンドに対応するハンド先端の移動速度の変化の一例を示す図である。実機200のハンド先端部は、初期値(x,y,z)から、(x+100,y+100,z+100)で指定される点651に移動し、点651を速度v1で通過した後、(x+200,y+200,z+200)で指定される点652へ移動する。実機200のハンド先端部は、点652を速度v2で通過した後、(x+300,y+300,z+300)で指定される点653へ向かい、点653を速度v3で通過した後、停止する。
【0106】
なお実際は、ロボットコントローラが指定座標間を滑らかに制御するので、速度変化は滑らかとなる。しかし、同一のロボットコマンドであれば速度変化は同一となるため、本手法を軌道の表現方法として用いることができる。
【0107】
ロボットの速度の変化に伴い、その時のロボットの関節駆動トルクや消費電力も変化する。したがって、制御値候補(ここでは、速度指令値と移動指令値の組)を適切に決定できれば、実機200の消費電力が最小となる最適軌道を決定することができる。
【0108】
すなわち、本実施の形態に係るロボットの運動方法決定装置100は、ロボットである実機200を事前に定められた第1の位置から第2の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置であって、ロボットが第1の位置から第2の位置へ移動するように、ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した制御値候補をロボットに送信する実機制御部102と、制御値候補によって制御されている複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得部104と、実測値から、実測値に対応する制御値候補の評価値を決定する評価部106と、評価値に基づいて、制御値候補を、ロボットの運動方法を決定するための制御値の組として採用するか否かを決定する制御値決定部108とを備える。
【0109】
また、本実施の形態に係るロボットの運動方法決定装置100は、さらに、評価記憶部112を備え、実機制御部102は、互いに異なる複数の制御値候補を決定し、評価部106は、複数の制御値候補の各々を、当該制御値候補の評価値と対応付けて評価記憶部112に記憶させ、制御値決定部108は、評価記憶部112に記憶されている複数の評価値のうち、最も評価がよい評価値に対応する制御値候補を、制御値の組として採用するよう決定してもよい。
【0110】
以上の構成によると、ロボットの運動方法決定装置100により軌道を決定するために、実機200の動力学モデルの構築が不要となる。よって、ロボットの運動方法決定装置100によれば、対象ロボットである実機200の動力学モデルが不明な場合でも、最適な軌道を決定することができる。
【0111】
特に、従来は動力学モデルの構築に、実機200の製造元の協力が不可欠であったが、本実施の形態に係るロボットの運動方法決定装置100によれば、実機200のユーザ側のみで、容易に軌道の最適化が可能となる。よって、既に工場で稼働中の実機200にも容易に適用することができる。
【0112】
さらに、実機200が有する個体差、環境及び経年変化の影響を含めて動力学モデルを作成することは極めて困難であるが、本実施の形態に係るロボットの運動方法決定装置100によれば、こうした実機200の特性のばらつきを考慮して軌道の最適化を行うことができる。
【0113】
以上、本実施の形態に係るロボットの運動方法決定装置100について説明した。
【0114】
次に、軌道決定までの、制御値の組の探索時間をより短縮することが可能な、実施の形態2にかかるロボットの運動方法決定装置100について説明する。
【0115】
(実施の形態2)
図8は、実施の形態2に係るロボットの運動方法決定装置100の機能ブロックを示す図である。なお、図2に示される実施の形態1に係るロボットの運動方法決定装置100と同様の構成部には、同じ符号を付け、詳細な説明を省略する。
【0116】
実施の形態1に係るロボットの運動方法決定装置100との違いは、本実施の形態に係るロボットの運動方法決定装置100は、さらに、2つの制御値候補間の類似度を算出する類似度算出部110を備えている点である。
【0117】
動力学モデル902に代わり実機200を使用して軌道の評価値を取得する場合に、実機200による評価の繰り返し回数は、実用上の大きな制約となる。
【0118】
そこで、本実施の形態に係る実機制御部102は、類似度算出部110により算出される、2つの制御値候補間の類似度を用いて、実機200による評価の繰り返し回数を削減する。
【0119】
具体的には、実機制御部102は、実機200に送信される複数の制御値候補に含まれる任意の2つの制御値候補間の類似度が、事前に定められた類似度の閾値が示す類似性よりも類似しないように複数の制御値候補を決定する。なお、実機制御部102は、複数の制御値候補間のうちで、少なくとも開始位置の差が事前に定められた閾値未満となる制御値候補間に対してのみ、類似性の判断を行うとすることが好ましい。ここで、開始位置とは、制御開始時における実機200の位置であり、例えば、ハンド先端座標の初期値などである。以下詳細に述べる。
【0120】
図9は、本実施の形態に係るロボットの運動方法決定装置100の処理の手順を示すフローチャートである。なお、図6と同様の処理には、同じ符号を付け、詳細な説明を省略する。
【0121】
実施の形態1に係るロボットの運動方法決定装置100の処理の手順と、本実施の形態に係るロボットの運動方法決定装置100の処理の手順の主な違いは、本実施形態には、図9に示されるステップS110が加わる点である。
【0122】
実施の形態1に係る実機制御部102と同様、本実施の形態に係る実機制御部102は、SHA処理ステップ5において、まだ評価値が定まっていない制御値候補がある場合には、実機200へ送るために、その中から1つの制御値候補を選択する(S108)。
【0123】
ここで、本実施の形態に係る実機制御部102は、ステップS108で選択された制御値候補と、評価記憶部112に記憶されている複数の制御値候補の各々との類似度を類似度算出部110により算出し、ステップS108で選択された制御値候補と類似する制御値候補が、評価記憶部112に既に記憶されているか否かを判定する(S110)。
【0124】
例えば、類似度算出部110が、2つの制御値候補がより類似するほど、より大きな値となるように類似度を算出するとすれば、類似度算出部110により算出されたいずれかの類似度が、事前に定められた閾値以上である場合(S110でYes)、実機制御部102は、ステップS108で選択された制御値候補を実機200へ送ることなく破棄する。その後、実機制御部102はステップS108の処理に戻る。また、類似度算出部110により算出されたいずれかの類似度が、事前に定められた閾値未満である場合には(S110でNo)、実機制御部102は、ステップS108で選択された制御値候補を、実機200へ送信(転送)する(S112)。
【0125】
ここで、類似度算出部110が類似度を算出する方法には様々なものが考えられる。
【0126】
例えば、類似度算出部は、2つの制御値候補間で対応する制御値の候補同士の差の絶対値の総和の逆数として類似度を算出することができる。この場合、制御値候補が似ているほど、類似度は大きくなる。また、類似度算出部110は、2つの制御値候補について、対応する制御値の候補同士の差の絶対値の総和として、類似度を算出してもよい。この場合、2つの制御値候補が似ているほど、類似度は小さくなる。
【0127】
図10は、こうして求められる類似度に基づき類似すると実機制御部102により判定される範囲の一例を示す図である。
【0128】
点661、点662及び点663に対応する時刻におけるハンド先端速度の速度指令値が、それぞれ、v1、v2及びv3である制御値候補を第1の制御値候補とする。図10に示される太線は、第1の制御値候補に含まれる各制御値を直線で結んだものである。このとき、(1)動作開始時におけるハンド先端位置の差が事前に定められた閾値距離以内であり、(2)点661、点662及び点663に対応する時刻におけるハンド先端速度の速度指令値が、すべて、図10に示される太線の上下に引かれた2つの細線の間の領域に含まれるような第2の制御値候補は、第1の制御値候補と類似すると判定される。
【0129】
以上、本発明の実施の形態2に係るロボットの運動方法決定装置100は、さらに、2つの制御値候補間の類似度を算出する類似度算出部110を備え、実機制御部102は、複数の制御値候補に含まれる任意の2つの制御値候補間の類似度が、事前に定められた類似度の閾値が示す類似性よりも類似しないように複数の制御値候補を決定してもよい。
【0130】
より具体的には、制御値は、駆動部の駆動時間、駆動距離、駆動速度、駆動加速度、及び、位置のうち少なくとも1つに対応する値であり、実測値は、電流値、電力、及び、電力量のうちの少なくとも1つであり、評価部108は、複数の駆動部における実測値の合計又は実測値のピーク値がより小さいほど、より大きくなるように評価値を決定し、類似度算出部110は、2つの制御値候補間で対応する制御値の候補同士の差の絶対値の総和の逆数として類似度を算出し、実機制御部102は、複数の制御値候補に含まれる任意の2つの制御値候補間の類似度が、事前に定められた閾値未満となるように複数の制御値候補を決定し、制御値決定部108は、評価記憶部112に記憶されている複数の評価値のうち、最も大きな評価値に対応する制御値候補を、制御値の組として採用するよう決定してもよい。
【0131】
一般に、既に評価値を取得した制御値候補と類似する制御値候補については、実機200を用いて評価をしても、既に取得した評価値と大差のない評価値が得られる場合が多いと考えられる。よって、実機制御部102は、実機200で評価する制御値候補を、既に評価した制御値候補と所定の閾値以上異なる制御値候補に限定することで、実機200による無駄な評価回数を削減することができる。その結果、ロボットの運動方法決定装置100が最終的な制御値の組を決定するまでに要する時間を削減することができる。
【0132】
次に、本実施の形態に係るロボットの運動方法決定装置100を用いて、実際にロボットの軌道を決定した場合の検証結果について述べる。
【0133】
図11は、実機200の一例として検証で使用した6自由度垂直多関節型ロボットの外観図である。
【0134】
検証では、図11に示されるロボットのハンド部分204を、第1の位置から、第2の位置まで移動させる際の軌道の最適化を行った。その際の評価関数は、実機200の関節を駆動するモータを流れる電流のピーク値が、より小さいほど、より高い評価となるように定めた。
【0135】
図12は、本実施の形態に係るロボットの運動方法決定装置100により最適化された軌道752と、標準軌道750とで、ロボットを駆動させた際の、ロボットを駆動するモータの電流値を比較した結果の一例を示す図である。
【0136】
ここで、標準軌道750とは、軌道を最適化する前のロボットの軌道として、もっとも頻度が高いと考えられる軌道であり、具体的には以下のように定めた。標準軌道750の開始位置は、実機200の可動領域の中央とした。また、実機200は、あらかじめ速度変化パターンが標準搭載されており、この標準搭載された変化パターンを、第1の位置から第2の位置への移動に用いる制御値の組として使用した。
【0137】
図12に示されるように、本実施の形態に係るロボットの運動方法決定装置100を用いて決定された軌道752は、軌道750と比較し、電流ピーク値が20%ほど低減されている。
【0138】
また、本実施の形態に係るロボットの運動方法決定装置100は、数十回の繰り返し回数で、上記電流ピーク値の低減効果が得られる軌道を決定することが可能であった。この回数は、実機200を用いて評価する際に、実用上問題のない回数といえる。
【0139】
なお、前述した実施の形態1及び2において、ロボットの運動方法決定装置100が備える評価部106は、1台の実機200から実測値を取得し、その評価を行った。しかし、実機200が複数台ある場合には、複数台の実機200から実測値を取得し、その評価を行ってもよい。その際には、評価部106は、複数の実測値の平均値、中央値、最大値、最小値等を、対応する制御値候補の評価値の決定に使用することが考えられる。
【0140】
また、ひとつの実機200を用いて決定した制御値を、同じ目的で使用する他の複数の実機200に適用することもできる。これにより、他の同機種のロボットに対しては探索を行わずに電力などが抑制されるため、非常に効率的に、多数のロボットの運動方法を決定することができる。
【0141】
なお、実施の形態1に係るロボットの運動方法決定装置100は、必ずしも評価記憶部112を備えずともよい。例えば、実機200へ送信した制御値候補に対応する評価値が、事前に定められた閾値を初めて超えた場合に、制御値決定部108は、その制御値候補を制御値の組として採用するよう決定してもよい。この場合、ロボットの運動方法決定装置100は、評価記憶部112を備えずとも、同様の発明の効果を奏することができる。
【0142】
なお、実施の形態2に係る類似度算出部110は、差の絶対値に代わり、2乗誤差を用いて類似度を算出してもよい。また、各々の制御値が事前に定められた範囲に含まれているか否かで類似度を算出してもよい。例えば、各々の設計パラメタの制御値が、事前に定められた範囲に含まれていれば類似度に1を加算し、含まれていなければ1を減算する処理を、制御値候補に含まれる全ての設計パラメタについて行うことで類似度を算出してもよい。
【0143】
なお、実施の形態に係る類似度算出部110は、制御値候補1つにつき1つの類似度を算出する代わりに、制御値候補に含まれる設計パラメタごとに類似度を算出してもよい。この場合、実施の形態2に係る実機制御部102は、少なくとも1つの設計パラメタについて、類似度が事前に定められた閾値以上であれば、2つの制御値候補は類似すると判定してもよい。
【0144】
また、実施の形態2に係る実機制御部102は、図9に示されるステップS110でYesの場合、既に評価した制御値候補と類似する制御値候補の全てを破棄する代わりに、評価値が事前に定められた評価基準値未満である制御値候補に限り破棄するとしてもよい。
【0145】
一般に、既になされた評価の結果、評価が悪い制御値候補と類似する制御値候補は、やはり悪い評価となることが予想される。一方、評価がよい制御値候補と類似する制御値候補であれば、その軌道に類似する軌道のなかに、最適な軌道が含まれていることが期待できる。よって、実施の形態2に係る実機制御部102は、複数の制御値候補に含まれる任意の2つの制御値候補のうち、一方の制御値候補に対応する評価値が、事前に定められた評価基準値未満である場合に限り、一方の制御値候補と、他方の制御値候補とが、事前に定められた閾値が示す類似性よりも類似しないように、複数の制御値候補を決定するとしてもよい。
【0146】
例えば、類似度算出部110が、2つの制御値候補が類似するほど、より大きな類似度を算出する場合には、実施の形態2に係る実機制御部102は、複数の制御値候補に含まれる任意の2つの制御値候補のうち、一方の制御値候補に対応する評価値が、事前に定められた評価基準値未満である場合に限り、一方の制御値候補と、他方の制御値候補との類似度が、事前に定められた閾値未満となるように、複数の制御値候補を決定するとしてもよい。
【0147】
なお、本実施の形態に係る実機制御部102は、最適な制御値候補の探索アルゴリズムとしてSHAを使用したが、実機制御部102が使用する探索アルゴリズムはこれに限られない。例えば、焼きなまし法やタブーサーチのように広く知られている他の発見的(確率的)な探索アルゴリズムを使用してもよい。
【0148】
また、実機制御部102は、各々の制御値をランダムに決定することで制御値候補を生成してもよい。この場合であっても、実機制御部102は、類似する制御値候補を破棄することで、過剰な繰り返し回数を実行せずに、発明の効果を奏することができる。ただし、上記のSHA等の探索アルゴリズムを使用する場合と比較し、最適値へ収束するまでの繰り返し回数は増加すると考えられる。
【0149】
なお、本実施の形態における閾値との比較処理において、「以上」という判断は「超えて」と判断してもよく、「以下」という判断は「未満」と判断してもよい。また、その逆に、「超えて」という判断を「以上」と判断してもよく、「未満」という判断を「以下」と判断してもよい。
【0150】
なお、本実施の形態で説明したロボットの運動方法決定装置100は、コンピュータにより実現することも可能である。図13は、ロボットの運動方法決定装置100を実現するコンピュータシステムのハードウェア構成を示すブロック図である。
【0151】
図13を参照して、ロボットの運動方法決定装置100は、コンピュータ34と、コンピュータ34に指示を与えるためのキーボード36及びマウス38と、コンピュータ34の演算結果等の情報を提示するためのディスプレイ32と、コンピュータ34で実行されるプログラムを読み取るためのCD−ROM(Compact Disc-Read Only Memory)装置40及び通信モデム(図示せず)とを含む。
【0152】
ロボットの運動方法決定装置100が行う処理であるプログラムは、コンピュータで読み取り可能な媒体であるCD−ROM42に記憶され、CD−ROM装置40で読み取られる。又は、コンピュータネットワークを通じて通信モデム52で読み取られる。
【0153】
コンピュータ34は、CPU(Central Processing Unit)44と、ROM(Read Only Memory)46と、RAM(Random Access Memory)48と、ハードディスク50と、通信モデム52と、バス54とを含む。
【0154】
CPU44は、CD−ROM装置40又は通信モデム52を介して読み取られたプログラムを実行する。ROM46は、コンピュータ34の動作に必要なプログラムやデータを記憶する。RAM48は、プログラム実行時のパラメタなどのデータを記憶する。ハードディスク50は、プログラムやデータなどを記憶する。通信モデム52は、コンピュータネットワークを介して他のコンピュータとの通信を行う。バス54は、CPU44、ROM46、RAM48、ハードディスク50、通信モデム52、ディスプレイ32、キーボード36、マウス38及びCD−ROM装置40を相互に接続する。
【0155】
さらに、上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integrated Circuit:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
【0156】
さらにまた、上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカード又はモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【0157】
また、本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0158】
さらに、本発明は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray Disc(登録商標))、USBメモリ、SDカードなどのメモリカード、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている上記デジタル信号であるとしてもよい。
【0159】
また、本発明は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0160】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしてもよい。
【0161】
また、上記プログラム又は上記デジタル信号を上記記録媒体に記録して移送することにより、又は上記プログラム又は上記デジタル信号を、上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0162】
さらに、上記実施の形態及びその変形例をそれぞれ組み合わせるとしてもよい。
【0163】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【産業上の利用可能性】
【0164】
本発明は、ロボットの運動方法決定装置に適用でき、特にロボットを事前に定められた第1の位置から第2の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置等に適用できる。
【符号の説明】
【0165】
32 ディスプレイ
34 コンピュータ
36 キーボード
38 マウス
40 CD−ROM装置
42 CD−ROM
44 CPU
46 ROM
48 RAM
50 ハードディスク
52 通信モデム
54 バス
100 ロボットの運動方法決定装置
102 実機制御部
104 実測値取得部
106 評価部
108 制御値決定部
110 類似度算出部
112 評価記憶部
200 実機
202 計測装置
550 発見的手法
552、750、752 軌道
702、704、706、708、710、712 探索範囲
900 計算機
902 動力学モデル
904 発見的手法
906 軌道

【特許請求の範囲】
【請求項1】
ロボットを事前に定められた第1の位置から第2の位置へ移動させるための運動方法を決定するロボットの運動方法決定装置であって、
前記ロボットが前記第1の位置から前記第2の位置へ移動するように、前記ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した前記制御値候補を前記ロボットに送信する実機制御部と、
前記制御値候補によって制御されている前記複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得部と、
前記実測値から、前記実測値に対応する前記制御値候補の評価値を決定する評価部と、
前記評価値に基づいて、前記制御値候補を、前記ロボットの運動方法を決定するための前記制御値の組として採用するか否かを決定する制御値決定部とを備える
ロボットの運動方法決定装置。
【請求項2】
さらに、評価記憶部を備え、
前記実機制御部は、互いに異なる複数の前記制御値候補を決定し、
前記評価部は、前記複数の制御値候補の各々を、当該制御値候補の評価値と対応付けて前記評価記憶部に記憶させ、
前記制御値決定部は、前記評価記憶部に記憶されている複数の前記評価値のうち、最も評価がよい評価値に対応する前記制御値候補を、前記制御値の組として採用するよう決定する
請求項1に記載のロボットの運動方法決定装置。
【請求項3】
さらに、2つの前記制御値候補間の類似度を算出する類似度算出部を備え、
前記実機制御部は、前記複数の制御値候補に含まれる任意の2つの制御値候補間の類似度が、事前に定められた類似度の閾値が示す類似性よりも類似しないように前記複数の制御値候補を決定する
請求項2に記載のロボットの運動方法決定装置。
【請求項4】
前記制御値は、前記駆動部の駆動時間、駆動距離、駆動速度、駆動加速度、及び、位置のうち少なくとも1つに対応する値であり、
前記実測値は、電流値、電力、及び、電力量のうちの少なくとも1つであり、
前記評価部は、前記複数の駆動部における前記実測値の合計又は前記実測値のピーク値がより小さいほど、より大きくなるように評価値を決定し、
前記類似度算出部は、前記2つの制御値候補間で対応する前記制御値の候補同士の差の絶対値の総和の逆数として前記類似度を算出し、
前記実機制御部は、前記複数の制御値候補に含まれる任意の2つの制御値候補間の前記類似度が、事前に定められた閾値未満となるように前記複数の制御値候補を決定し、
前記制御値決定部は、前記評価記憶部に記憶されている複数の前記評価値のうち、最も大きな評価値に対応する前記制御値候補を、前記制御値の組として採用するよう決定する
請求項3に記載のロボットの運動方法決定装置。
【請求項5】
前記実機制御部は、前記複数の制御値候補に含まれる任意の2つの制御値候補のうち、一方の制御値候補に対応する評価値が、事前に定められた評価基準値未満である場合には、前記一方の制御値候補と、他方の制御値候補とが、事前に定められた閾値が示す類似性よりも類似しないように、前記複数の制御値候補を決定する
請求項3に記載のロボットの運動方法決定装置。
【請求項6】
ロボットを事前に定められた第1の位置から第2の位置へ移動させるための運動方法を決定するロボットの運動方法決定方法であって、
前記ロボットが前記第1の位置から前記第2の位置へ移動するように、前記ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した前記制御値候補を前記ロボットに送信する実機制御ステップと、
前記制御値候補によって制御されている前記複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得ステップと、
前記実測値から、前記実測値に対応する前記制御値候補の評価値を決定する評価ステップと、
前記評価値に基づいて、前記制御値候補を、前記ロボットの運動方法を決定するための前記制御値の組として採用するか否かを決定する制御値決定ステップとを含む
ロボットの運動方法決定方法。
【請求項7】
請求項6に記載のロボットの運動方法決定方法をコンピュータに実行させる
プログラム。
【請求項8】
請求項7に記載のプログラムを記録した
コンピュータ読み取り可能な記録媒体。
【請求項9】
ロボットを事前に定められた第1の位置から第2の位置へ移動させるための運動方法を決定する集積回路であって、
前記ロボットが前記第1の位置から前記第2の位置へ移動するように、前記ロボットが備える複数の駆動部を制御するための制御値の候補の組である制御値候補を決定し、決定した前記制御値候補を前記ロボットに送信する実機制御部と、
前記制御値候補によって制御されている前記複数の駆動部の駆動状態を示す物理量である実測値を取得する実測値取得部と、
前記実測値から、前記実測値に対応する前記制御値候補の評価値を決定する評価部と、
前記評価値に基づいて、前記制御値候補を、前記ロボットの運動方法を決定するための前記制御値の組として採用するか否かを決定する制御値決定部とを備える
集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−157965(P2012−157965A)
【公開日】平成24年8月23日(2012.8.23)
【国際特許分類】
【出願番号】特願2011−21107(P2011−21107)
【出願日】平成23年2月2日(2011.2.2)
【出願人】(504160781)国立大学法人金沢大学 (282)
【Fターム(参考)】