(57)【要約】位置計測の対象となる点を増加させることなく、ロボットアームの手先の位置を高精度に制御することを可能とする。関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置（１００ａ）であって、ロボットアームの所定位置で計測された温度情報、温度情報が計測された時点の関節の角度、及び温度情報が計測された時点の手先の位置を計測して得られる計測位置を取得する情報取得部（１１０ａ）と、取得された関節の角度に基づいて、温度情報を取得した時点の手先の位置を推定して推定位置を求める手先位置推定部（１２０ａ）と、計測位置と推定位置とを比較した結果に基づいて、温度情報を変数とする関数である前記補正関数を決定する補正関数決定部（１３０ａ）とを備える。
2019163116.tif 000002
【特許請求の範囲】
【請求項１】
関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置であって、
前記ロボットアームの所定位置で計測された温度情報、前記温度情報が計測された時点の前記関節の角度、及び前記温度情報が計測された時点の前記手先の位置を計測して得られる計測位置を取得する情報取得部と、
前記関節の角度に基づいて、前記温度情報を取得した時点の前記手先の位置を推定して推定位置を求める手先位置推定部と、
前記計測位置と前記推定位置とを比較した結果に基づいて、前記温度情報を変数とする関数である前記補正関数を決定する補正関数決定部と
を備える補正関数生成装置。
【請求項２】
前記温度情報、前記関節の角度及び前記計測位置は、複数の時刻のそれぞれにおいて取得され、
前記手先位置推定部は、前記複数の時刻のそれぞれにおける前記推定位置を求め、
前記補正関数決定部は、前記複数の時刻のそれぞれにおける前記計測位置と前記推定位置とを比較した結果に基づいて、前記補正関数を決定する
請求項１に記載の補正関数生成装置。
【請求項３】
前記計測位置は、所定の基準位置からの変位として取得される請求項１又は請求項２に記載の補正関数生成装置。
【請求項４】
前記補正関数決定部は、
前記計測位置と前記推定位置とを比較した結果が所定の条件を満たす場合には、前記推定位置に対応する前記補正関数を出力し、
前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たさない場合には、前記手先の位置の推定を再実施するように前記手先位置推定部に要請する
請求項１から請求項３のいずれか１項に記載の補正関数生成装置。
【請求項５】
前記手先位置推定部は、
前記温度情報を変数とする関数である候補関数を前記補正関数の候補として生成する候補関数生成部と、
前記温度情報、前記関節の角度及び前記候補関数に基づいて、前記推定位置を求める手先位置演算部と
を備える請求項４に記載の補正関数生成装置。
【請求項６】
前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たす場合には、前記推定位置を求めるために使用された前記候補関数を前記補正関数として出力する請求項５に記載の補正関数生成装置。
【請求項７】
前記候補関数は、前記ロボットアームの周囲環境の温度を変数とする関数である請求項５又は請求項６に記載の補正関数生成装置。
【請求項８】
前記候補関数は、前記温度情報を変数として前記ロボットアームを分割して得られる複数の部位のそれぞれの長さを補正する関数であり、
前記手先位置演算部は、前記温度情報及び前記候補関数に基づいて前記複数の部位のそれぞれの長さを補正し、補正された前記複数の部位のそれぞれの長さ及び前記関節の角度に基づいて前記推定位置を求める
請求項５から請求項７のいずれか１項に記載の補正関数生成装置。
【請求項９】
前記複数の部位のそれぞれが存在する範囲は、前記関節を跨がない請求項８に記載の補正関数生成装置。
【請求項１０】
前記手先位置推定部は、
前記ロボットアームを分割して得られる複数の部位のそれぞれの長さを推定する長さ推定部と、
前記関節の角度及び推定された前記複数の部位のそれぞれの長さに基づいて、前記推定位置を求める手先位置演算部と
を備える請求項４に記載の補正関数生成装置。
【請求項１１】
前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たす場合には、前記推定位置を求めるために使用された前記複数の部位のそれぞれの長さと、前記温度情報とに基づいて前記補正関数を生成する
請求項１０に記載の補正関数生成装置。
【請求項１２】
請求項８から請求項１１のいずれか１項に記載の補正関数生成装置と、ロボット制御装置とを備えるロボット制御システムであって、
前記ロボット制御装置は、
前記補正関数生成装置から前記補正関数を取得する補正関数取得部と、
前記補正関数及び前記温度情報を用いて前記複数の部位のそれぞれの長さを補正するリンク長補正部と、
補正された前記複数の部位のそれぞれの長さに基づいて、前記手先が目標位置に到達するように前記ロボットアームを制御するための動作指令値を生成する指令値生成部と
を備えるロボット制御システム。
【請求項１３】
前記ロボット制御装置は、
前記ロボットアームの互いに異なる動作条件のそれぞれにおいて前記補正関数生成装置が生成した複数の前記補正関数を記憶する補正関数記憶部と、
前記ロボットアームの前記動作条件に基づいて、前記補正関数記憶部が記憶する複数の前記補正関数のうちの１つを選択する補正関数選択部と
を備え、
前記リンク長補正部は、前記補正関数選択部が選択した前記補正関数と、前記温度情報とを用いて前記複数の部位のそれぞれの長さを補正する請求項１２に記載のロボット制御システム。
【請求項１４】
前記指令値生成部は、
基準となる前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第１の目標角度として算出する第１の角度算出部と、
補正された前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第２の目標角度として算出する第２の角度算出部と、
前記第２の目標角度と予め設定された制約条件とを比較して補正係数を生成する関節角度評価部と、
前記第１の目標角度と、前記第２の目標角度と、前記補正係数とに基づいて、第３の目標角度を算出する第３の角度算出部と
を備え、前記第３の目標角度に基づいて前記動作指令値を生成する請求項１２又は請求項１３に記載のロボット制御システム。
【請求項１５】
請求項１２から請求項１４のいずれか１項に記載のロボット制御システムと、前記ロボット制御システムによって制御される前記ロボットアームとを備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置、この補正関数生成装置を備えるロボット制御システム及びロボットシステムに関する。
【背景技術】
【０００２】
工場などにおいて、ロボットアームは、繰り返し作業を精度良く行う用途に使用されている。しかし、ロボットアームを駆動させるためのモータの発熱や周囲の温度変化の影響によって、ロボットアームの温度が変化する現象が発生する。ロボットアームの温度が変化することで、ロボットアームが熱膨張又は熱収縮し、ロボットアームの手先の位置が変化する。この結果、ロボット制御システムがロボットアームの手先の位置を高精度に制御できないという問題が発生する。すなわち、手先の位置決め精度が低下するという問題が発生する。例えば、規定の位置に繰り返しアプローチする作業においては、ロボットアームの温度が上がるにつれてロボットアームが徐々に伸びる。この結果、手先の位置が徐々に変化し、作業精度が著しく損なわれていた。この問題を解決するために、例えば特許文献１では、所望の制御点間の長さを計測し、基準温度時からの長さの変化を求めることで、所望の制御点間の長さを補正する補正係数を求める手法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１４１５８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１において提案されている手法では、温度変化に応じたロボットアームの制御点間の長さの変化を高精度に計測する必要がある。制御点間の長さは、各制御点の位置を計測することで求めることができる。しかし、制御点が増加すると計測対象となる点も増加するという問題があった。この結果、計測時間が増大するか、又は計測機が複雑化するという問題が発生する。【０００５】
本発明は上記の問題を解決するためになされたものであって、位置計測の対象となる点を増加させることなく、ロボットアームの手先の位置を高精度に推定するための補正関数を生成可能な補正関数生成装置を得ることを目的とする。また、この補正関数生成装置を備えるロボット制御システム及びロボットシステムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明における補正関数生成装置は、関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置であって、ロボットアームの所定位置で計測された温度情報、温度情報が計測された時点の関節の角度、及び温度情報が計測された時点の手先の位置を計測して得られる計測位置を取得する情報取得部と、関節の角度に基づいて、温度情報を取得した時点の手先の位置を推定して推定位置を求める手先位置推定部と、計測位置と推定位置とを比較した結果に基づいて、温度情報を変数とする関数である補正関数を決定する補正関数決定部とを備えるものである。
【発明の効果】
【０００７】
この発明における補正関数生成装置によれば、位置計測の対象となる点を増加させることなく、ロボットアームの手先の位置を高精度に制御するための補正関数を生成可能となる。また、この発明におけるロボット制御システム及びロボットシステムによれば、位置計測の対象となる点を増加させることなく、ロボットアームの手先の位置を高精度に制御することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態１による補正関数生成装置を備えるロボットシステム及びロボット制御システムの構成の一例を示す図である。
【図２】本発明の実施の形態１によるロボットアームの構成の一例を示す図である。
【図３】本発明の実施の形態１による補正関数生成装置を備えるロボット制御システムを実現するためのハードウェア構成の一例を示す図である。
【図４】本発明の実施の形態１による補正関数生成装置を備えるロボット制御システムの動作の流れの一例を示す図である。
【図５】本発明の実施の形態１による補正関数生成装置の構成の一例を示す図である。
【図６】本発明の実施の形態１による補正関数生成装置の動作の流れの一例を示す図である。
【図７】本発明の実施の形態１による補正関数生成装置における手先位置推定部及び補正関数決定部の動作の流れの一例を示す図である。
【図８】本発明の実施の形態１によるロボット制御装置の構成の一例を示す図である。
【図９】本発明の実施の形態１によるロボット制御装置の動作の流れの一例を示す図である。
【図１０】本発明の実施の形態１による補正関数生成装置を備えるロボット制御システムの動作の流れの別の例を示す図である。
【図１１】本発明の実施の形態２による補正関数生成装置を備えるロボットシステム及びロボット制御システムの構成の一例を示す図である。
【図１２】本発明の実施の形態２による補正関数生成装置を備えるロボット制御システムの動作の流れの一例を示す図である。
【図１３】本発明の実施の形態２による補正関数生成装置の構成の一例を示す図である。
【図１４】本発明の実施の形態２による補正関数生成装置の動作の流れの一例を示す図である。
【図１５】本発明の実施の形態２による補正関数生成装置における手先位置推定部及び補正関数決定部の動作の流れの一例を示す図である。
【図１６】本発明の実施の形態３による補正関数生成装置を備えるロボットシステム及びロボット制御システムの構成の一例を示す図である。
【図１７】本発明の実施の形態３による補正関数生成装置の構成の一例を示す図である。
【図１８】本発明の実施の形態３によるロボット制御装置の構成の一例を示す図である。
【図１９】本発明の実施の形態４によるロボットシステムの構成の一例を示す図である。
【図２０】本発明の実施の形態４によるロボットシステムにおけるロボットアームの構成の一例を示す図である。
【図２１】本発明の実施の形態５によるロボットシステムの構成の一例を示す図である。
【図２２】本発明の実施の形態５による補正関数生成装置の構成の一例を示す図である。
【図２３】本発明の実施の形態５による補正関数生成装置の動作の流れの一例を示す図である。
【図２４】本発明の実施の形態５による補正関数生成装置における補正関数生成部の構成の一例を示す図である。
【図２５】本発明の実施の形態５による補正関数生成装置における補正関数生成部の動作の流れの一例を示す図である。
【図２６】本発明の実施の形態６によるロボットシステムの構成の一例を示す図である。
【図２７】本発明の実施の形態６によるロボット制御装置の構成の一例を示す図である。
【図２８】本発明の実施の形態６によるロボット制御システムの動作の流れの一例を示す図である。
【図２９】本発明の実施の形態７によるロボットシステムの構成の一例を示す図である。
【図３０】本発明の実施の形態７によるロボット制御装置の構成の一例を示す図である。
【図３１】本発明の実施の形態７によるロボット制御装置における指令値生成部の構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、本発明の実施の形態１による補正関数生成装置１００ａを備えるロボットシステム１ａ及びロボット制御システム２ａの構成の一例を示す図である。ロボットシステム１ａは、ロボットアーム３００ａを備えるロボットと、ロボット制御システム２ａとを備える。また、ロボット制御システム２ａは、補正関数生成装置１００ａ及びロボット制御装置２００ａを備える。なお、図１においては、ロボットアーム３００ａ以外のロボットの部位の図示は省略している。
【００１０】
ロボットシステム１ａには、ロボットアーム３００ａの手先の三次元位置を計測する手先位置計測装置３ａが接続される。手先位置計測装置３ａとしては、例えば、レーザ距離センサ、ビジョンセンサ等が用いられる。ここで、ロボットアーム３００ａの手先は、ロボットアーム３００ａの先端であり、作業対象物に作用する部位を指す。ロボットアーム３００ａの手先は、ロボットの手先と言い換えることもできる。ロボットシステム１ａとしては、産業用ロボットの他、人にサービスを提供するサービスロボット等が考えられる。産業用ロボットが行う作業としては、部品の搬送、組み立て、加工などが考えられる。以降において、ロボットアーム３００ａの手先は、単に手先と記載されることがある。また、以降において、手先の位置は、手先位置と記載されることがある。ロボットアーム３００ａは、１つ以上の関節を有している。また、ロボットアーム３００ａには、ロボットアーム３００ａの所定位置の温度を検出するセンサ、ロボットアーム３００ａの関節の角度を検出するセンサ等が搭載される。
【００１１】
図２は、本発明の実施の形態１によるロボットアーム３００ａの構成の一例を示す図である。ロボットアーム３００ａは、第１のリンク３１１、第２のリンク３１２、第３のリンク３１３、及び第４のリンク３１４が、関節によって接続された構成となっている。関節の角度は、ロボット制御装置２００ａから出力される動作指令値によって制御される。この結果、関節によって互いに接続されるリンク間の角度が制御される。また、ロボットアーム３００ａには、第１の温度センサ３２１、第２の温度センサ３２２、第３の温度センサ３２３、第４の温度センサ３２４、第５の温度センサ３２５、及び第６の温度センサ３２６が、それぞれ所定の位置に搭載されている。
【００１２】
このように、ロボットアーム３００ａは、４つのリンクとして、第１のリンク３１１、第２のリンク３１２、第３のリンク３１３、及び第４のリンク３１４を備える。また、ロボットアーム３００ａは、６つの温度センサとして、第１の温度センサ３２１、第２の温度センサ３２２、第３の温度センサ３２３、第４の温度センサ３２４、第５の温度センサ３２５、及び第６の温度センサ３２６を備える。４つのリンクのそれぞれは、ロボットアーム３００ａを分割して得られる部位となる。ここで、ロボットアーム３００ａを分割して得られる各部位は、ロボットアーム３００ａを直線状に伸ばした時に、ロボットアーム３００ａの両端を結ぶ方向に配列されるように設定される。また、ロボットアーム３００ａを分割して得られる各部位は、関節を跨がないように設定される。言い換えると、ロボットアーム３００ａを分割して得られる各部位は、各部位の端部に関節が存在することはあっても、各部位の内部に関節を含まないように設定される。
【００１３】
ロボットアーム３００ａには、温度センサ以外に、関節の角度を検出するセンサ等も搭載されるが、図示を省略している。ロボットアーム３００ａの関節の角度は、互いに接続されるリンク間の角度を表し、関節を駆動するモータの回転角度等から検出することができる。なお、図３に示すロボットアーム３００ａの構成は一例であり、リンクの数、温度センサの数、温度センサの配置等は、図２に示すものに限定されない。例えば、温度センサは任意の位置に設置されてもよいし、関節を駆動するサーボモータに物理的に接続されたエンコーダに内蔵された温度センサを活用してもよい。
【００１４】
ロボットアーム３００ａにおいて、第１のリンク３１１の長さはＬ１となっている。また、第２のリンク３１２の長さはＬ２となっている。また、第３のリンク３１３の長さはＬ３となっている。また、第４のリンク３１４の長さはＬ４となっている。なお、リンクの長さは、ロボットアーム３００ａを直線状に伸ばした時に、ロボットアーム３００ａの両端を結ぶ方向の各リンクの長さである。リンクの両端に関節が存在する場合には、リンクの長さは、そのリンクの両端の関節間の距離で表される。関節の位置は、関節の回転軸の位置として定義できる。一方、リンクの一端のみ関節が存在する場合には、リンクの長さは、そのリンクの一端の関節から他端の先までの距離で表される。また、ロボットアーム３００ａの手先は、第４のリンク３１４の先端となる。すなわち、ロボットアーム３００ａの手先は、第４のリンク３１４において、第３のリンクと接続されていない側の端部となる。
【００１５】
次に、ロボット制御システム２ａについて説明する。図３は、本発明の実施の形態１による補正関数生成装置１００ａを備えるロボット制御システム２ａを実現するための具体的なハードウェア構成の一例を示す図である。すなわち、図３は、補正関数生成装置１００ａ及びロボット制御装置２００ａを実現するための具体的なハードウェア構成の一例を示す図である。ロボット制御システム２ａは、メモリ４０２に記憶されるプログラムをプロセッサ４０１で実行することで実現される。プロセッサ４０１とメモリ４０２とは、データバス４０３で接続される。メモリ４０２には、揮発性のメモリ及び非揮発性のメモリが備えられ、一時的な情報は揮発性のメモリに記憶される。なお、ロボット制御システム２ａは一体として図３の構成としても良い。もしくは、補正関数生成装置１００ａ及びロボット制御装置２００ａを別体として、それぞれを図３の構成としても良い。例えば、補正関数生成装置１００ａ及びロボット制御装置２００ａが、ネットワークなどを介して接続されていても良い。以降の実施の形態においても、ロボット制御システム２ａは同様のハードウェア構成で実現できる。
【００１６】
図４は、本発明の実施の形態１による補正関数生成装置１００ａを備えるロボット制御システム２ａの動作の流れの一例を示す図である。すなわち、図４は、補正関数生成装置１００ａ及びロボット制御装置２００ａの動作の流れの一例を示す図である。まず、ステップＳ００１ａにおいて、ロボット制御装置２００ａは、手先位置計測装置３ａの計測結果、及びロボットアーム３００ａに装着されるセンサの検出値を取得する。より具体的には、ステップＳ００１ａにおいて、ロボット制御装置２００ａは、ロボットアーム３００ａから温度情報を取得する。温度情報は、ロボットアーム３００ａの所定位置で計測された温度の情報であり、ロボットアーム３００ａに搭載されている６つの温度センサ３２１〜３２６によって計測される。
【００１７】
また、ステップＳ００１ａにおいて、ロボット制御装置２００ａは、ロボットアーム３００ａの関節の角度をロボットアーム３００ａから取得する。ロボットアーム３００ａの関節の角度は、ロボットアームに搭載されているセンサによって計測される。ロボット制御装置２００ａは、温度センサ３２１〜３２６によって温度情報が計測された時点のロボットアーム３００ａの関節の角度を取得する。さらに、ステップＳ００１ａにおいて、ロボット制御装置２００ａは、温度情報が計測された時点の計測位置を手先位置計測装置３ａから取得する。計測位置は、手先位置計測装置３ａによって計測することで得られるロボットアーム３００ａの手先の位置である。
【００１８】
ここで、ロボット制御装置２００ａは、複数の時刻における温度情報、関節の角度、及び計測位置を取得することが望ましい。複数の時刻における温度情報、関節の角度、及び計測位置を用いて補正関数を生成した方が、より高精度の補正効果が得られる可能性が高い。以下では、ロボット制御装置２００ａは、複数の時刻における温度情報、関節の角度、及び計測位置を取得するものとする。ロボット制御装置２００ａは、取得される温度情報、関節の角度及び計測位置が、計測時刻が同期して計測された情報となるように、ロボットアーム３００ａ及び手先位置計測装置３ａを制御する。この結果、ロボット制御装置２００ａは、温度情報が計測された時点の関節の角度、及び温度情報が計測された時点の計測位置を取得することができる。なお、温度情報を計測する時刻、関節の角度を計測する時刻、及び手先の位置を計測する時刻は、厳密に同一である必要はなく、実用上で求められる補正精度に影響のない範囲で異なっていても良い。
【００１９】
温度情報、関節の角度、及び計測位置は、任意の時刻に測定されれば良いが、熱に起因するロボットアーム３００ａの伸びの程度が互いに異なる複数の状態で測定されることが望ましい。このためには、ロボット制御装置２００ａは、ロボットアーム３００ａに高負荷を与えるような動作を暖機動作として実行させ、その過程で温度情報、関節の角度、及び計測位置を取得することが望ましい。実際の作業においてロボットアーム３００ａに実行させる動作が予め１つのパターンに決まっている場合などでは、その動作を暖機動作として実行し、その過程で温度情報を計測すれば良い。その結果、補正関数生成装置は、その動作特有の伸びに最適な補正関数を生成することができる。
【００２０】
また、ロボット制御装置２００ａは、ロボットアーム３００ａの計測姿勢も制御する。ここで、計測姿勢とは、温度情報が計測される際のロボットアーム３００ａの姿勢を意味する。すなわち、ロボット制御装置２００ａは、温度情報が計測される際のロボットアーム３００ａの関節の角度も制御する。ロボットアーム３００ａの計測姿勢は任意である。例えば、ロボットアーム３００ａの計測姿勢として、手先位置計測装置３ａの設置がし易い姿勢を選択することが考えられる。また、ロボットアーム３００ａの計測姿勢は、予め決定された一定の姿勢であっても良いし、温度情報が計測される毎に異なる姿勢であっても良い。
【００２１】
ロボットアーム３００ａの計測姿勢が一定である場合には、ロボット制御装置２００ａは、予め記憶された関節の角度となるようにロボットアーム３００ａを制御する。この場合には、ロボット制御装置２００ａは、必ずしもロボットアーム３００ａから関節の角度を取得する必要はなく、ロボット制御装置２００ａに予め記憶された関節の角度を読み出せば良い。この場合でも、ロボット制御装置２００ａは内部のメモリから関節の角度を取得している。本実施の形態のロボット制御システム２ａは、関節の角度をロボットアーム３００ａから取得する構成としている。
【００２２】
また、ロボットアーム３００ａの計測姿勢が一定である場合には、手先位置の変動は温度変化に起因するものに限られるので、手先の存在範囲が限定される。この場合には、手先位置計測装置３ａとして簡易な計測器を使用することができ、例えば基準位置からの位置の変化を測定する変位センサを使用することができる。一方、計測位置が一定ではない場合には、手先位置計測装置３ａの計測範囲は広くなるが、ロボットアームに任意の作業をさせている間にも、補正関数の生成が可能となる。本実施の形態のロボットシステム１ａにおいては、手先位置計測装置３ａは、手先の絶対位置を計測するものとする。以上が、ステップＳ００１ａにおけるロボット制御装置２００ａの動作である。
【００２３】
次に、ステップＳ１００ａにおいて、補正関数生成装置１００ａは、温度情報、関節の角度、及び計測位置をロボット制御装置２００ａから取得する。ここで、補正関数生成装置１００ａは、複数の時刻における温度情報、関節の角度、及び計測位置を取得するものとする。また、ステップＳ１００ａにおいて、補正関数生成装置１００ａは、ロボット制御装置２００ａから取得した情報に基づいて、手先の位置を制御するために用いられる補正関数を生成する。生成された補正関数は、ロボット制御装置２００ａに出力される。なお、本実施の形態では、補正関数生成装置１００ａは、ロボット制御装置２００ａを介して、温度情報、関節の角度、及び計測位置を取得する構成としているが、この構成に限定されるわけではない。
【００２４】
次に、ステップＳ００２において、ロボット制御装置２００ａは、補正関数生成装置１００ａで生成された補正関数を取得する。次に、ステップＳ２００において、ロボット制御装置２００ａは、取得された補正関数に基づいて、ロボットアーム３００ａの動作を制御するための動作指令値を生成する。生成された動作指令値は、ロボットアーム３００ａに出力される。ロボットアーム３００ａは、動作指令値に従って動作する。ロボット制御装置２００ａが補正関数に基づいて動作指令値を生成することによって、ロボット制御装置２００ａは手先を所定の位置に高精度に移動させることができる。すなわち、ロボット制御装置２００ａによる手先の位置決め精度が向上する。
【００２５】
次に、ステップＳ００３において、ロボット制御装置２００ａは、ロボットアーム３００ａの動作を終了させるか否かを判定する。ロボット制御装置２００ａは、予め定められた作業を完了した場合などに動作を終了させる。ステップＳ００３において、動作を終了させると判定されると、ロボット制御システム２ａは動作を終了する。一方、ステップＳ００３において、まだ動作を終了させないと判定されると、ロボット制御システム２ａの動作はステップＳ２００へと戻り、動作指令値の生成が繰り返される。以上が、ロボット制御システム２ａの動作の流れである。以下では、ステップＳ１００ａ及びステップＳ２００におけるロボット制御システム２ａの動作について、更に詳しく述べる。
【００２６】
まず、ステップＳ１００ａにおけるロボット制御システム２ａの動作について述べる。前述の通り、ステップＳ１００ａでは、補正関数生成装置１００ａが動作する。図５は、本発明の実施の形態１による補正関数生成装置１００ａの構成の一例を示す図である。図５では、補正関数生成装置１００ａの構成が、ロボット制御装置２００ａとともに示されている。本実施の形態の補正関数生成装置１００ａは、情報取得部１１０ａと、手先位置推定部１２０ａと、補正関数決定部１３０ａとを備える。また、手先位置推定部１２０ａは、候補関数生成部１２１ａと、手先位置演算部１２２ａとを備える。また、手先位置演算部１２２ａは、リンク長演算部１２３ａと、手先位置変換部１２４ａとを備える。また、補正関数決定部１３０ａは、手先位置比較部１３１ａと、補正関数評価部１３２ａとを備える。
【００２７】
また、図６は、本発明の実施の形態１による補正関数生成装置１００ａの動作の流れの一例を示す図である。図６は、図４のステップＳ１００ａにおける補正関数生成装置１００ａの動作の流れを示している。図５及び図６を用いて、補正関数生成装置１００ａの動作について述べる。まず、ステップＳ１１０ａにおいて、情報取得部１１０ａは、温度情報、関節の角度、及び計測位置をロボット制御装置２００ａから取得する。また、ステップＳ１１０ａにおいて、情報取得部１１０ａは、基準リンク長をロボット制御装置２００ａから取得する。基準リンク長は、ロボットアーム３００ａの４つのリンク３１１〜３１４の標準的な長さであり、ロボット制御装置２００ａに予め記憶される。基準リンク長は、例えば、ロボットアーム３００ａの設計値とすることや、所定の条件下で予め計測した値とすること等が考えられる。なお、本実施の形態では、情報取得部１１０ａは、ロボット制御装置２００ａから基準リンク長を取得する構成としているが、この構成に限定されるわけではない。例えば、補正関数生成装置１００ａが、基準リンク長を予め記憶していても良い。
【００２８】
次に、ステップＳ１２０ａにおいて、手先位置推定部１２０ａは、情報取得部１１０ａから基準リンク長、温度情報、及び関節の角度を取得し、取得した情報に基づいて、温度情報が計測された時点のロボットアーム３００ａの手先位置を推定して推定位置を求める。なお、手先位置は、手先の位置を意味する。また、推定位置は、手先位置推定部１２０ａによって推定された手先位置である。ここで、温度情報及び関節の角度は、複数の時刻において計測された情報であるので、推定位置も、温度情報が計測された複数の時刻のそれぞれに対して求められる。例えば、Ｎを整数として、温度情報及び関節の角度がＮ回測定されている場合、Ｎ個の推定位置が求められる。
【００２９】
次に、ステップＳ１３０ａにおいて、補正関数決定部１３０ａは、情報取得部１１０ａから取得した計測位置と、手先位置推定部１２０ａから取得した推定位置とを比較し、比較した結果に基づいて補正関数を決定する。なお、後述するように、計測位置と推測位置との比較結果によっては、処理がステップＳ１２０ａに戻ることになる。すなわち、計測位置と推測位置との比較結果が所定の条件を満たさない場合には、補正関数決定部１３０ａは、手先の位置の推定を再実施するように手先位置推定部１２０ａに要請する。ここで、計測位置は、温度情報が計測された複数の時刻のそれぞれにおいて計測された情報である。また、推定位置は、温度情報が計測された複数の時刻のそれぞれに対して求められる。例えば、補正関数決定部１３０ａは、温度情報が計測された複数の時刻のそれぞれにおいて、対応する計測位置及び推定位置を比較する。Ｎを整数として、温度情報がＮ回測定されている場合、Ｎ個の計測位置が取得され、Ｎ個の推定位置が求められる。したがって、補正関数決定部１３０ａは、計測位置と推定位置とのＮ個の組を比較する。
【００３０】
別の例としては、補正関数決定部１３０ａは、計測位置の平均値と推定位置の平均値とを比較しても良い。補正関数決定部１３０ａで決定される補正関数は、温度情報を変数とする関数である。また、本実施の形態の補正関数生成装置１００ａにおいて、補正関数は、ロボットアーム３００ａの４つのリンク３１１〜３１４の長さを温度情報によって補正する関数となる。以上が、図４のステップＳ１００ａにおける補正関数生成装置１００ａの動作の流れとなる。
【００３１】
次に、手先位置推定部１２０ａが推定位置を求める処理、及び補正関数決定部１３０ａが補正関数を決定する処理について、さらに述べる。図７は、本発明の実施の形態１による補正関数生成装置１００ａにおける手先位置推定部１２０ａ及び補正関数決定部１３０ａの動作の流れの一例を示す図である。図７のステップＳ１２１ａからステップＳ１２４ａまでが、図６のステップＳ１２０ａにおける手先位置推定部１２０ａの動作となる。また、図７のステップＳ１３１ａからステップＳ１３４ａまでが、図６のステップＳ１３０ａにおける補正関数決定部１３０ａの動作となる。
【００３２】
まず、ステップＳ１２１ａにおいて、候補関数生成部１２１ａは、補正関数の候補となる候補関数を生成する。本実施の形態の補正関数生成装置１００ａにおいて、候補関数は、補正関数と同様に、温度情報を変数とする関数であり、ロボットアーム３００ａの４つのリンク３１１〜３１４の長さを温度情報に基づいて補正する関数となる。候補関数生成部１２１ａで生成される候補関数において、次数等の形式は限定されない。後述する補正関数決定部１３０ａにおける比較結果が所定の条件を満たすまで、候補関数生成部１２１ａは候補関数の生成を繰り返し行う。下記の式（１）は、候補関数生成部１２１ａで生成される候補関数の一例である。
【００３３】
【数１】
2019163116.tif 000003
【００３４】
式（１）において、Ｌｂ１ｎは、時刻ｎにおける補正後の第１のリンク３１１の長さである。また、Ｌｂ２ｎは、時刻ｎにおける補正後の第２のリンク３１２の長さである。また、Ｌｂ３ｎは、時刻ｎにおける補正後の第３のリンク３１３の長さである。また、Ｌｂ４ｎは、時刻ｎにおける補正後の第４のリンク３１４の長さである。ここで、時刻ｎは、温度情報が計測された複数の時刻のいずれかを表す。例えば、Ｎを整数として、温度情報がＮ回測定されている場合、時刻ｎは、温度情報が測定されたＮ個の時刻のうちのいずれかを表す。また、式（１）において、Ｌ１は、第１のリンク３１１の基準リンク長である。また、Ｌ２は、第２のリンク３１２の基準リンク長である。また、Ｌ３は、第３のリンク３１３の基準リンク長である。また、Ｌ４は、第４のリンク３１４の基準リンク長である。
【００３５】
また、式（１）において、Ｔ１ｎは、第１の温度センサ３２１で計測された時刻ｎにおける温度情報である。また、Ｔ２ｎは、第２の温度センサ３２２で計測された時刻ｎにおける温度情報である。また、Ｔ３ｎは、第３の温度センサ３２３で計測された時刻ｎにおける温度情報である。また、Ｔ４ｎは、第４の温度センサ３２４で計測された時刻ｎにおける温度情報である。また、Ｔ５ｎは、第５の温度センサ３２５で計測された時刻ｎにおける温度情報である。また、Ｔ６ｎは、第６の温度センサ３２６で計測された時刻ｎにおける温度情報である。
【００３６】
さらに、式（１）において、ｋｉ，ｊは補正のための係数である。ここで、ｉは１〜４のいずれかであり、ｊはａ〜ｇのいずれかを表す。また、式（１）に示す候補関数は、下記の式（２）のようにマトリクス形式で表すこともできる。式（２）において、Ｋ１は、係数ｋｉ，ｊを要素とする４行７列の行列である。
【００３７】
【数２】
2019163116.tif 000004
【００３８】
候補関数生成部１２１ａは、ステップＳ１２１ａの処理が行われるたびに、係数ｋｉ，ｊの値を変化させるか、候補関数の形式を変化させる。候補関数の形式は、式（１）又は式（２）に示すものに限定されない。例えば、候補関数は、温度情報に時定数が設けられた式とすることもできる。このような候補関数では、温度情報の変化の履歴も反映した補正が可能となり、補正の精度が向上することが期待できる。下記の式（３）は、温度情報に時定数を設けた候補関数の一例である。式（３）において、時刻ｎ−１は、時刻ｎより前の時刻を表す。また、式（３）において、Ｋ２は、係数を要素とする行列である。さらに、候補関数は、式を一次式以外の形式とすることもできる。下記の式（４）は、二次式の候補関数の例である。式（４）において、Ｋ３は、係数を要素とする行列である。候補関数は、更に高次の式としても良い。高次の候補関数とすることで、温度情報に対して非線形なリンク長の変化にも対応でき、補正の精度が向上することが期待できる。
【００３９】
【数３】
2019163116.tif 000005
【００４０】
【数４】
2019163116.tif 000006
【００４１】
次に、ステップＳ１２３ａ及びステップＳ１２４ａにおいて、手先位置演算部１２２ａは、温度情報、関節の角度及び候補関数に基づいて、推定位置を求める。まず、ステップＳ１２３ａにおいて、リンク長演算部１２３ａは、温度情報及び基準リンク長を候補関数に入力することによって、リンク長を補正して時刻ｎにおける補正後のリンク長を求める。リンク長は、ロボットアーム３００ａの４つのリンク３１１〜３１４のそれぞれの長さである。次に、ステップＳ１２４ａにおいて、手先位置変換部１２４ａは、関節の角度と、リンク長演算部１２３ａで求められた補正後のリンク長とに基づいて、時刻ｎにおける手先位置を推定する。すなわち、ステップＳ１２４ａにおいて、手先位置変換部１２４ａは、時刻ｎにおける推定位置Ｐｅｎを求める。推定位置は、補正されたリンク長と、関節の角度とに基づいた幾何学演算によって求めることができる。複数の時刻において温度情報が計測された場合、リンク長の補正及び手先位置の推定は、複数の時刻のそれぞれに対して行われる。
【００４２】
このように、本実施の形態の補正関数生成装置１００ａは、補正関数を用いてロボットアーム３００ａの４つのリンクの長さを補正し、補正した長さに基づいて手先の位置を推定する。したがって、ロボットアーム３００ａの４つのリンクのそれぞれは、手先の位置を推定するためのロボットアーム３００ａの構成単位と考えることができる。この時、補正関数は、手先の位置を推定するためのロボットアーム３００ａの構成単位の長さを補正する関数であると考えることができる。また、上述の通り、ロボットアーム３００ａの４つのリンクのそれぞれは、ロボットアーム３００ａを分割して得られる部位でもある。このように考えると、補正関数は、ロボットアーム３００ａを分割して得られる部位の長さを補正する関数となる。以上が、ステップＳ１２３ａ及びステップＳ１２４ａにおける手先位置演算部１２２ａの動作である。
【００４３】
次に、ステップＳ１３１ａにおいて、手先位置比較部１３１ａは、手先位置推定部１２０ａで求められた推定位置と、情報取得部１１０ａで取得された計測位置とを比較する。すなわち、ステップＳ１３１ａにおいて、手先位置比較部１３１ａは、推定された手先位置と、計測された手先位置とを比較する。例えば本実施の形態の補正関数生成装置１００ａにおいては、手先位置比較部１３１ａは、計測位置と推定位置との間の距離を算出することによって、計測位置と推定位置とを比較する。時刻ｎにおける推定位置をＰｅｎとし、時刻ｎにおいて計測された計測位置をＰｍｎとすると、手先位置比較部１３１ａは、推定位置Ｐｅｎと計測位置Ｐｍｎとの時刻ｎにおける距離Ｄｎを求める。計測位置と推定位置との間の距離は、計測位置に対する推定位置の誤差を表す。
【００４４】
複数の時刻において温度情報が計測された場合、手先位置比較部１３１ａは、複数の時刻のそれぞれにおいて、計測位置Ｐｍｎと推定位置Ｐｅｎとの間の距離Ｄｎを算出する。この場合、比較結果として、複数の距離が求められる。例えば、Ｎを整数として、温度情報がＮ回測定されている場合、Ｎ個の計測位置が取得され、Ｎ個の推定位置が求められるので、手先位置比較部１３１ａは、Ｎ個の距離を算出する。一方、手先位置比較部１３１ａは、計測位置Ｐｍｎの平均と推定位置Ｐｅｎの平均との間の距離を算出することもできる。この場合、比較結果として、１つの距離が求められる。
【００４５】
次に、ステップＳ１３２ａにおいて、補正関数評価部１３２ａは、比較結果が所定の条件を満たすか否かを判定する。ステップＳ１３２ａにおいて、補正関数評価部１３２ａは、例えば、計測位置と推定位置との間の距離が、所定の距離よりも短いか否かを判定する。補正関数評価部１３２ａは、計測位置と推定位置との間の距離が所定の距離よりも短い場合に、比較結果が所定の条件を満たすと判定する。ステップＳ１３１ａにおいて手先位置比較部１３１ａが複数の距離を求めている場合には、補正関数評価部１３２ａは、最大値が所定の距離よりも短いか否かを判定しても良いし、平均値が所定の距離よりも短いか否かを判定しても良い。
【００４６】
ステップＳ１３２ａにおいて、比較結果が所定の条件を満たすと判定された場合には、補正関数評価部１３２ａの動作は、ステップＳ１３３へと進む。ステップＳ１３３では、補正関数評価部１３２ａは、最新の候補関数を補正関数として決定し、ロボット制御装置２００ａに出力する。ここで、最新の候補関数は、所定の条件を満たした推定位置を求めるために使用された候補関数となる。すなわち、補正関数評価部１３２ａは、所定の条件を満たした推定位置に対応する補正関数として、最新の候補関数を出力する。一方、ステップＳ１３２ａにおいて、比較結果が所定の条件を満たさないと判定された場合には、補正関数評価部１３２ａの動作は、ステップＳ１３４ａへと進む。ステップＳ１３４ａでは、補正関数評価部１３２ａは、候補関数生成部１２１ａに候補関数の再生成を要請する。その後、補正関数生成装置１００ａの動作はＳ１２１ａに戻る。
【００４７】
候補関数の再生成を要請されると、候補関数生成部１２１ａは、ステップＳ１２１ａにおいて、候補関数の形式または係数を変更し、新たな候補関数を生成する。この際、候補関数生成部１２１ａは、補正関数決定部１３０ａにおける計測位置と推定位置との比較結果に応じて、候補関数の係数を変化させるか、候補関数の形式を変化させるかを決定しても良い。例えば、計測位置と推定位置との間の複数の距離が求められる場合、距離のばらつきが大きい場合には、候補関数の形式を変化させ、距離のばらつきが小さい場合には、候補関数の係数を変化させることが考えられる。
【００４８】
なお、１回目のステップＳ１２１ａの動作において、候補関数生成部１２１ａは、任意の形式、任意の係数の候補関数を生成することができる。候補関数生成部１２１ａは、例えば、他の製品等で以前に求められた補正関数を初期の候補関数とすることができる。この場合、計測位置と推定位置との間の距離がより早く収束し、補正関数がより早く求められる可能性がある。ステップＳ１２３ａ以降の動作は前述の通りである。以上が、図４のステップＳ１００ａにおけるロボット制御システム２ａの動作である。
【００４９】
次に、図４のステップＳ２００におけるロボット制御システム２ａの動作について述べる。前述の通り、ステップＳ２００では、ロボット制御装置２００ａが動作する。図８は、本発明の実施の形態１によるロボット制御装置２００ａの構成の一例を示す図である。図８では、ロボット制御装置２００ａの構成が、補正関数生成装置１００ａ、手先位置計測装置３ａ、及びロボットアーム３００ａとともに示されている。本実施の形態のロボット制御装置２００ａは、計測制御部２０１ａと、記憶部２０２と、補正関数取得部２１０と、リンク長補正部２２０ａと、目標位置設定部２３０と、指令値生成部２４０ａとを備える。
【００５０】
計測制御部２０１ａは、手先位置計測装置３ａ及びロボットアーム３００ａを制御し、温度情報、関節の角度、及び計測位置を取得する。この動作は、前述の通り図４のステップＳ００１ａで実行される。また、計測制御部２０１ａは、後述するロボット制御装置２００ａの動作においても、ロボットアーム３００ａから温度情報を取得する。また、記憶部２０２は、基準リンク長を記憶している。また、補正関数取得部２１０は、補正関数生成装置１００ａで生成された補正関数を取得する。この動作は、前述の通り図４のステップＳ００２で実行される。
【００５１】
また、図９は、本発明の実施の形態１によるロボット制御装置２００ａの動作の流れの一例を示す図である。なお、図９は、図４のステップＳ２００におけるロボット制御装置２００ａの動作の流れを示している。図４のステップＳ００１ａ、ステップＳ００２、及びステップＳ００３におけるロボット制御装置２００ａの動作は前述の通りである。図８及び図９を用いて、ロボット制御装置２００ａの動作について述べる。まず、ステップＳ２０１において、計測制御部２０１ａは、ロボットアーム３００ａから最新の温度情報を取得する。次に、ステップＳ２２０において、リンク長補正部２２０ａは、補正関数取得部２１０で取得された補正関数に、計測制御部２０１ａで取得された最新の温度情報、及び記憶部２０２に記憶される基準リンク長を入力して、ロボットアーム３００ａの４つのリンク３１１〜３１４のそれぞれのリンク長を補正し、補正されたリンク長を求める。
【００５２】
次に、ステップＳ２３０において、目標位置設定部２３０は、ロボットアーム３００ａの手先を移動させる先となる目標位置を設定する。なお、目標位置には、目標となる手先の向きも含まれる。目標位置設定部２３０の構成は、様々な構成が考えられる。例えば、目標位置設定部２３０は、予め記憶された目標位置を読み出す。また、別の例としては、目標位置設定部２３０は、予め記憶された動作指令値から関節の角度を求め、求められた関節の角度と基準リンク長とに基づいて目標位置を算出する。
【００５３】
次に、ステップＳ２４０において、指令値生成部２４０ａは、補正されたリンク長に基づいて、手先が目標位置に到達するためのロボットアーム３００ａの関節の角度を目標角度として算出する。さらに、ステップＳ２４０において、指令値生成部２４０ａは、ロボットアーム３００ａの関節の角度が目標角度となるように動作指令値を生成し、ロボットアーム３００ａに出力する。以上が、図４のステップＳ２００におけるロボット制御システム２ａの動作である。なお、図９に示すロボット制御装置２００ａの動作の流れは一例であり、一部の動作の順序などを変更することも可能である。
【００５４】
ここで、図４に示す動作では、ロボット制御システム２ａは、動作指令値の生成を繰り返す間、同一の補正関数を使用し続ける。この場合、ロボットアーム３００ａに所定の作業を開始させる前に、ロボット制御システム２ａは、準備作業として補正関数生成を生成することになる。これに対して、ロボットアーム３００ａに所定の作業を実施させている間にも、ロボット制御システム２ａは補正関数を適宜更新しても良い。図１０は、本発明の実施の形態１による補正関数生成装置１００ａを備えるロボット制御システム２ａの動作の流れの別の例を示す図である。図４に示す動作の流れと比較すると、図１０に示す動作の流れは、ステップＳ００４を備える点で異なる。以下では、相違点のみを述べる。
【００５５】
ステップＳ２００の動作が完了すると、ロボット制御システム２ａの動作は、ステップＳ００４に進む。ステップＳ００４において、ロボット制御装置２００ａは、補正関数の更新が必要か否かを判定する。更新が必要であると判定されれば、ロボット制御システム２ａの動作は、ステップＳ００１ａに戻り、温度情報、関節の角度、及び計測位置が再度取得され、取得された情報に基づいて補正関数が再度生成される。一方、更新は不要であると判定されれば、ロボット制御システム２ａの動作は、ステップＳ００３に進む。
【００５６】
ステップＳ００４において、ロボット制御装置２００ａは、所定の条件に従って補正関数の更新の要否を判定する。所定の条件としては、所定の時刻に到達した場合、ロボットアーム３００ａから取得された温度情報が大きく変化した場合、補正関数を更新する指示を外部から受け付けた場合、又はロボットアーム３００ａが行っている作業に失敗が発生した場合などが考えられる。図１０に示す動作の流れによれば、ロボットアーム３００ａが作業を継続中であっても、ロボット制御システム２ａは、必要に応じて補正関数を更新することができる。この結果、ロボット制御システム２ａは、更に高精度にリンク長を補正でき、ロボットアーム３００ａの手先の位置を更に高精度に制御することができる。したがって、ロボット制御システム２ａは、更に高精度の作業をロボットアーム３００ａに実行させることができる。
【００５７】
本実施の形態の補正関数生成装置１００ａ、ロボット制御システム２ａ、及びロボットシステム１ａは、以上のように動作する。本実施の形態の補正関数生成装置１００ａは、ロボットアーム３００ａの手先の位置が計測されれば、補正関数を生成可能である。したがって、本実施の形態の補正関数生成装置１００ａによれば、位置計測の対象となる点を増加させることなく、ロボットアーム３００ａの手先の位置を高精度に制御するための補正関数を生成可能となる。また、本実施の形態のロボット制御システム２ａ及びロボットシステム１ａによれば、位置計測の対象となる点を増加させることなく、ロボットアーム３００ａの手先の位置を高精度に制御することが可能となる。
【００５８】
実施の形態２.
本実施の形態の補正関数生成装置は、手先の位置の基準位置からの変位を評価して、補正関数を生成するものである。図１１は、本発明の実施の形態２による補正関数生成装置１００ｂを備えるロボットシステム１ｂ及びロボット制御システム２ｂの構成の一例を示す図である。ロボットシステム１ｂは、ロボットアーム３００ａを備えるロボットと、ロボット制御システム２ｂとを備える。また、ロボット制御システム２ｂは、補正関数生成装置１００ｂ及びロボット制御装置２００ｂを備える。ロボットシステム１ｂには、手先位置計測装置３ｂが接続される。図１１に示されたロボットシステム１ｂにおいて、ロボット制御システム２ｂと、手先位置計測装置３ｂとを除いた他の構成は、図１に示された実施の形態１におけるロボットシステム１ａと同様である。以下では、実施の形態１における補正関数生成装置１００ａ、ロボットシステム１ａ及びロボット制御システム２ａとの相違点について述べる。
【００５９】
まず、手先位置計測装置３ｂについて述べる。図１に示された手先位置計測装置３ａは、ロボットアーム３００ａの手先の絶対位置を計測するものとした。一方、図１１に示される手先位置計測装置３ｂは、ロボットアーム３００ａの手先の位置を基準位置からの変位として計測する。実施の形態１でも述べた通り、手先位置計測装置３ｂは、手先の絶対位置を計測できる必要はない。手先位置計測装置３ｂは、所定の基準時間の手先の位置を基準位置として、その基準位置からの変位を計測できればよい。基準位置からの変位は、基準位置からの相対位置と言い換えることができる。したがって、実施の形態１における補正関数生成装置１００ａは、手先の絶対位置に基づいて補正関数を生成するのに対して、本実施の形態における補正関数生成装置１００ｂは、手先の相対位置に基づいて補正関数を生成する。
【００６０】
手先位置計測装置３ｂは、例えば、手先に取り付けられたマーカの位置を三方向から計測するレーザ距離センサを用いて実現することができる。マーカは、立方体のブロック形状とし、周囲温度の変化に起因する形状の変化が起こりにくい素材とする。手先位置計測装置３ｂは、ビジョンセンサや接触式の位置センサを用いて実現しても良い。手先位置計測装置３ｂは、基準位置からの相対変位を測定することができれば良い。したがって、手先位置計測装置３ｂにおいては、絶対位置を計測する場合と比較して、計測装置の設置作業が簡易となる。手先の絶対位置を計測するためには、ロボットと計測装置との位置関係を予め取得しておく必要がある。一方、手先の相対位置を計測する場合には、任意に選択された基準時刻における手先位置を計測して基準位置とし、各時点において計測した手先位置を基準位置と比較すれば良いため、ロボットと計測装置との位置関係を取得しておく必要はない。
【００６１】
次に、ロボット制御システム２ｂについて、述べる。図１２は、本発明の実施の形態２による補正関数生成装置１００ｂを備えるロボット制御システム２ｂの動作の流れの一例を示す図である。図１２に示された動作の流れは、図４に示されたものと比較して、次の３つの点で異なる。第１に、図１２に示された動作の流れは、ステップＳ００５の動作を備える。第２に、図１２のステップＳ００１ｂの動作は、図４のステップＳ００１ａの動作と部分的に異なる。第３に、図１２のステップＳ１００ｂの動作は、図４のステップＳ１００ａの動作と部分的に異なる。なお、図１２に示された動作の流れは、図４に示された動作の流れが変更されたものとして例示されているが、図１０に示された動作の流れが変更されても良い。以下、実施の形態１と比べて動作が異なる点を中心に、本実施の形態のロボット制御システム２ｂの動作の流れを述べる。
【００６２】
まず、ステップＳ００５において、ロボット制御装置２００ｂは、基準時刻における温度情報及び関節の角度をロボットアーム３００ａから取得する。基準時刻は、予め定められた時刻であっても良いし、温度情報が予め定められた温度を示した時刻であっても良い。また、温度情報が示す温度が安定している時間から基準時刻が選択されれば、より高精度に手先位置を推測可能な補正関数を得ることが期待できる。例えば、ロボットアーム３００ａを恒温状態の環境条件でしばらく放置すれば、温度情報が示す温度は安定すると考えられる。また、ステップＳ００５において、ロボット制御装置２００ｂは、手先位置計測装置３ｂに、基準時刻における手先の位置を基準位置として記憶させる。なお、ロボット制御装置２００ｂは、基準時刻において、ロボットアーム３００ａが予め定められた計測姿勢となるように、ロボットアーム３００ａを制御する。
【００６３】
次に、ステップＳ００１ｂにおいて、ロボット制御装置２００ｂは、計測時刻における温度情報及び関節の角度をロボットアーム３００ａから取得する。計測時刻は、基準時刻とは異なる時刻であり、複数の時刻であることが望ましい。また、ステップＳ００１ｂにおいて、ロボット制御装置２００ｂは、計測位置として、計測時刻における計測変位を手先位置計測装置３ｂから取得する。計測変位は、手先位置計測装置３ｂによって計測される手先位置の基準位置からの変位である。なお、ロボット制御装置２００ｂは、計測時刻におけるロボットアーム３００ａの計測姿勢が、基準時刻における計測姿勢と同じとなるように、ロボットアーム３００ａを制御する。
【００６４】
次に、ステップＳ１００ｂにおいて、補正関数生成装置１００ｂは、温度情報、関節の角度、及び計測変位をロボット制御装置２００ｂから取得する。また、ステップＳ１００ｂにおいて、補正関数生成装置１００ｂは、ロボット制御装置２００ｂから取得した情報に基づいて、補正関数を生成する。ステップＳ００２以降のロボット制御システム２ｂの動作は、実施の形態１におけるロボット制御システム２ａの動作と同様である。以上が、ロボット制御システム２ｂの動作の流れである。以下では、ステップＳ１００ｂにおけるロボット制御システム２ｂの動作について、更に詳しく述べる。前述の通り、ステップＳ１００ｂでは、補正関数生成装置１００ｂが動作する。
【００６５】
図１３は、本発明の実施の形態２による補正関数生成装置１００ｂの構成の一例を示す図である。図１３では、補正関数生成装置１００ｂの構成が、ロボット制御装置２００ｂとともに示されている。本実施の形態の補正関数生成装置１００ｂは、情報取得部１１０ｂと、手先位置推定部１２０ｂと、補正関数決定部１３０ｂとを備える。また、手先位置推定部１２０ｂは、候補関数生成部１２１ａと、手先位置演算部１２２ｂとを備える。また、手先位置演算部１２２ｂは、リンク長演算部１２３ｂと、手先位置変換部１２４ｂとを備える。また、補正関数決定部１３０ｂは、手先位置比較部１３１ｂと、補正関数評価部１３２ａとを備える。図１３において、図５に示されるものと同一のものには同一の符号が付されており、これらについての詳細な説明は省略される。
【００６６】
また、図１４は、本発明の実施の形態２による補正関数生成装置１００ｂの動作の流れの一例を示す図である。図１４は、図１２のステップＳ１００ｂにおける補正関数生成装置１００ｂの動作の流れを示している。図１３及び図１４を用いて、補正関数生成装置１００ｂの動作について述べる。まず、ステップＳ１１０ｂにおいて、情報取得部１１０ｂは、温度情報、関節の角度、及び計測位置をロボット制御装置２００ｂから取得する。ここで、情報取得部１１０ｂは、基準時刻における情報と、計測時刻のそれぞれにおける情報とを取得する。また、ステップＳ１１０ｂにおいて、情報取得部１１０ｂは、基準リンク長をロボット制御装置２００ｂから取得する。
【００６７】
次に、ステップＳ１２０ｂにおいて、手先位置推定部１２０ｂは、情報取得部１１０ｂから基準リンク長、温度情報、及び関節の角度を取得し、取得した情報に基づいて、温度情報が計測された時点のロボットアーム３００ａの手先位置を推定して推定位置を求める。なお、手先位置推定部１２０ｂは、基準位置からの変位として推定位置を求める。具体的には、手先位置推定部１２０ｂは、基準時刻における温度情報と関節の角度とに基づいて、基準時刻における推定位置を求める。また、手先位置推定部１２０ｂは、計測時刻における温度情報と関節の角度とに基づいて、計測時刻における推定位置を求める。さらに、手先位置推定部１２０ｂは、基準時刻における推定位置と計測時刻における推定位置との間の変位を求めて、最終的な推定位置として出力する。
【００６８】
次に、ステップＳ１３０ｂにおいて、補正関数決定部１３０ｂは、情報取得部１１０ｂから取得した計測変位と、手先位置推定部１２０ｂにおいて基準位置からの変位として求められた推定位置とを比較し、比較した結果に基づいて補正関数を決定する。なお、図６と同様に、計測変位と推測位置との比較結果によっては、処理がステップＳ１２０ｂに戻ることになる。以上が、図１２のステップＳ１００ｂにおける補正関数生成装置１００ｂの動作の流れとなる。次に、手先位置推定部１２０ｂが推定位置を求める処理、及び補正関数決定部１３０ｂが補正関数を決定する処理について、さらに述べる。
【００６９】
図１５は、本発明の実施の形態２による補正関数生成装置１００ｂにおける手先位置推定部１２０ｂ及び補正関数決定部１３０ｂの動作の流れの一例を示す図である。図１５のステップＳ１２１ａからステップＳ１２４ｂまでが、図１４のステップＳ１２０ｂにおける手先位置推定部１２０ｂの動作となる。また、図１５のステップＳ１３１ｂからステップＳ１３４ａまでが、図１４のステップＳ１３０ｂにおける補正関数決定部１３０ｂの動作となる。
【００７０】
まず、ステップＳ１２１ａにおいて、候補関数生成部１２１ａは、補正関数の候補となる候補関数を生成する。この動作は、図７のステップＳ１２１ａにおける動作と同様である。次に、ステップＳ１２３ｂにおいて、リンク長演算部１２３ｂは、基準時刻における温度情報及び基準リンク長を候補関数に入力することによって、基準時刻におけるリンク長を求める。また、ステップＳ１２３ｂにおいて、リンク長演算部１２３ｂは、計測時刻のそれぞれにおける温度情報及び基準リンク長を候補関数に入力することによって、計測時刻のそれぞれにおけるリンク長を求める。
【００７１】
次に、ステップＳ１２４ｂにおいて、手先位置変換部１２４ｂは、基準時刻における関節の角度と、基準時刻におけるリンク長とに基づいて、基準時刻における手先位置を推定する。また、ステップＳ１２４ｂにおいて、手先位置変換部１２４ｂは、計測時刻のそれぞれにおける関節の角度と、計測時刻のそれぞれにおけるリンク長とに基づいて、計測時刻のそれぞれにおける手先位置を推定する。さらに、ステップＳ１２４ｂにおいて、手先位置変換部１２４ｂは、基準時刻における手先位置と、計測時刻のそれぞれにおける手先位置との間の変位を求めて、計測時刻のそれぞれにおける最終的な推定位置とする。以上が、ステップＳ１２３ｂ及びステップＳ１２４ｂにおける手先位置演算部１２２ｂの動作である。
【００７２】
次に、ステップＳ１３１ｂにおいて、手先位置比較部１３１ｂは、手先位置推定部１２０ｂで変位として求められた推定位置と、情報取得部１１０ｂで取得された計測変位とを比較する。例えば、手先位置比較部１３１ｂは、推定位置と計測変位との間の差分を算出することによって、推定位置と計測変位とを比較する。次に、ステップＳ１３２ａにおいて、補正関数評価部１３２ａは、比較結果が所定の条件を満たすか否かを判定する。ステップＳ１３２ａにおいて、補正関数評価部１３２ａは、例えば、推定位置と計測変位との間の差分が、所定の値よりも小さいか否かを判定する。補正関数評価部１３２ａは、推定位置と計測変位との間の差分が所定の値よりも小さい場合に、比較結果が所定の条件を満たすと判定する。ステップＳ１３３及びステップＳ１３４ａにおける補正関数評価部１３２ａの動作は、図７のステップＳ１３３及びステップＳ１３４ａにおける動作と同様である。以上が、図１２のステップＳ１００ｂにおけるロボット制御システム２ｂの動作である。図１２のステップＳ００２、ステップＳ２００、及びステップＳ００３の動作は、図４のステップＳ００２、ステップＳ２００、及びステップＳ００３の動作と同様である。
【００７３】
本実施の形態の補正関数生成装置１００ｂ、ロボット制御システム２ｂ、及びロボットシステム１ｂは、以上のように動作する。本実施の形態の補正関数生成装置１００ｂ、ロボット制御システム２ｂ及びロボットシステム１ｂによれば、簡易に設置可能である手先位置計測装置３ｂを用いて、ロボットアーム３００ａの手先の位置を高精度に制御することが可能となる。また、本実施の形態の補正関数生成装置１００ｂ、ロボット制御システム２ｂ、及びロボットシステム１ｂは、実施の形態１で述べた効果も有する。
【００７４】
実施の形態３.
実施の形態１による補正関数生成装置１００ａ、及び実施の形態２による補正関数生成装置１００ｂは、ロボットアーム３００ａに搭載された温度センサ３２１〜３２６で計測された温度情報に基づいて補正関数を生成する構成であった。これに対して、本実施の形態の補正関数生成装置１００ｃは、ロボットアーム３００ａの周囲の環境温度も使用して補正関数を生成する。
【００７５】
図１６は、本発明の実施の形態３による補正関数生成装置１００ｃを備えるロボットシステム１ｃ及びロボット制御システム２ｃの構成の一例を示す図である。ロボットシステム１ｃは、ロボットアーム３００ａを備えるロボットと、ロボット制御システム２ｃとを備える。また、ロボット制御システム２ｃは、補正関数生成装置１００ｃ及びロボット制御装置２００ｃを備える。ロボットシステム１ｃには、手先位置計測装置３ａ及び環境温度計測装置４が接続される。図１６に示されたロボットシステム１ｃにおいて、ロボット制御システム２ｃを除いた他の構成は、図１に示された実施の形態１におけるロボットシステム１ａと同様である。なお、図１６に示されるロボットシステム１ｃは、実施の形態１におけるロボットシステム１ａの構成の一部が変更されたものであるが、他の実施の形態のロボットシステムの構成の一部を変更することもできる。以下では、実施の形態１におけるロボット制御システム２ａと、本実施の形態におけるロボット制御システム２ｃとの相違点について述べる。まず、補正関数生成装置１００ｃについて述べる。
【００７６】
図１７は、本発明の実施の形態３による補正関数生成装置１００ｃの構成の一例を示す図である。図１７では、補正関数生成装置１００ｃの構成が、ロボット制御装置２００ｃとともに示されている。本実施の形態の補正関数生成装置１００ｃは、情報取得部１１０ｃと、手先位置推定部１２０ｃと、補正関数決定部１３０ａとを備える。また、手先位置推定部１２０ｃは、候補関数生成部１２１ｃと、手先位置演算部１２２ｃとを備える。また、手先位置演算部１２２ｃは、リンク長演算部１２３ｃと、手先位置変換部１２４ａとを備える。また、補正関数決定部１３０ａは、手先位置比較部１３１ａと、補正関数評価部１３２ａとを備える。図１７において、図５に示されるものと同一のものには同一の符号が付されており、これらについての詳細な説明は省略される。
【００７７】
図１７に示される補正関数生成装置１００ｃの構成は、図５に示される補正関数生成装置１００ａの構成と比較すると、情報取得部１１０ｃ、候補関数生成部１２１ｃ及びリンク長演算部１２３ｃのみが異なる。まず、情報取得部１１０ｃについて述べる。情報取得部１１０ｃは、温度情報、関節の角度、計測位置、及び基準リンク長をロボット制御装置２００ｃから取得するとともに、環境温度計測装置４で計測された環境温度もロボット制御装置２００ｃから取得する。取得される環境温度は、温度情報が計測された時点のロボットアーム３００ａの周囲環境の温度である。
【００７８】
次に、候補関数生成部１２１ｃについて述べる。候補関数生成部１２１ｃは、候補関数を生成する。本実施の形態の補正関数生成装置１００ｃにおいて生成される候補関数は、温度情報及び環境温度を変数とする関数である。下記の式（５）は、候補関数生成部１２１ｃで生成される候補関数の一例である。式（５）において、Ｔ０ｎは、環境温度計測装置４で計測された時刻ｎにおける環境温度である。また、式（５）において、ｋｉ，ｊは補正のための係数である。ここで、ｉは１〜４のいずれかであり、ｊはａ〜ｈのいずれかを表す。さらに、式（５）において、Ｋ４は、係数ｋｉ，ｊを要素とする４行８列の行列である。式（５）における他の記号は、式（２）におけるものと同様である。
【００７９】
【数５】
2019163116.tif 000007
【００８０】
次に、リンク長演算部１２３ｃについて述べる。リンク長演算部１２３ｃは、候補関数生成部１２１ｃで生成される候補関数に、温度情報、基準リンク長、及び環境温度を入力することによって、リンク長を補正して時刻ｎにおけるリンク長を求める。補正関数生成装置１００ｃにおける他のブロックの動作は、実施の形態１におけるものと同様である。
【００８１】
次に、本実施の形態のロボット制御装置２００ｃと、実施の形態１におけるロボット制御装置２００ａとの相違点について述べる。図１８は、本発明の実施の形態３によるロボット制御装置２００ｃの構成の一例を示す図である。図１８では、ロボット制御装置２００ｃの構成が、補正関数生成装置１００ｃ、手先位置計測装置３ａ、環境温度計測装置４、及びロボットアーム３００ａとともに示されている。本実施の形態のロボット制御装置２００ｃは、計測制御部２０１ｃと、記憶部２０２と、補正関数取得部２１０と、リンク長補正部２２０ｃと、目標位置設定部２３０と、指令値生成部２４０ａとを備える。
【００８２】
図１８に示されるロボット制御装置２００ｃの構成は、図８に示されるロボット制御装置２００ａの構成と比較して、計測制御部２０１ｃ及びリンク長補正部２２０ｃのみが異なる。以下では、計測制御部２０１ｃ及びリンク長補正部２２０ｃの動作についてのみ相違点を述べ、他のブロックの動作については説明を省略する。計測制御部２０１ｃは、手先位置計測装置３ａ、ロボットアーム３００ａに加えて環境温度計測装置４も制御し、温度情報、関節の角度、計測位置、及び環境温度を取得する。また、リンク長補正部２２０ｃは、補正関数生成装置で生成された温度情報及び環境温度を変数とする補正関数を用いて、リンク長を補正して、最新の計測値に対応したリンク長を求める。ロボット制御装置２００ｃの他のブロックの動作は、実施の形態１で述べた動作と同様である。
【００８３】
本実施の形態の補正関数生成装置１００ｃ、ロボット制御システム２ｃ、及びロボットシステム１ｃは、以上のように動作する。本実施の形態の補正関数生成装置１００ｃ、ロボット制御システム２ｃ及びロボットシステム１ｃによれば、ロボットアーム３００ａの周囲環境の影響も反映され、ロボットアーム３００ａの手先の位置を更に高精度に制御することが可能となる。ロボットアーム３００ａの動作が遅い場合など、ロボットアーム３００ａの負荷が小さい場合には、ロボットアーム３００ａの動作に起因する温度変化よりも、環境温度に起因する温度変化が支配的となる。本実施の形態の補正関数生成装置１００ｃ、ロボット制御システム２ｃ及びロボットシステム１ｃは、このような場合に特に有効となる。
【００８４】
さらに、ロボットアーム３００ａにおいて、モータ等の発熱源が近くに存在しない箇所の温度は、周囲環境の温度の影響を大きく受けると考えられる。周囲環境の温度が計測されていれば、このような箇所には必ずしも温度センサが取り付けられる必要はない。したがって、本実施の形態の補正関数生成装置１００ｃ、ロボット制御システム２ｃ及びロボットシステム１ｃによれば、ロボットアーム３００ａに取り付けられる温度センサの数を減少させることが可能となる。また、本実施の形態の補正関数生成装置１００ｃ、ロボット制御システム２ｃ、及びロボットシステム１ｃは、実施の形態１又は実施の形態２で述べた効果も有する。
【００８５】
実施の形態４.
実施の形態１による補正関数生成装置１００ａ、実施の形態２による補正関数生成装置１００ｂ、及び実施の形態３による補正関数生成装置１００ｃは、リンク３１１〜３１４のそれぞれの長さを補正する補正関数を生成するものであった。しかし、リンク３１１〜３１４のそれぞれを、更に複数の部位に分割することも考えられる。本実施の形態の補正関数生成装置は、リンク３１１〜３１４のそれぞれが更に分割されて得られた部位ごとの長さを補正する補正関数を生成する。
【００８６】
図１９は、本発明の実施の形態４によるロボットシステム１ｄの構成の一例を示す図である。本実施の形態のロボットシステム１ｄは、ロボットアーム３００ｄを備えるロボットと、ロボット制御システム２ａとを備える。また、本実施の形態のロボットシステム１ｄは、手先位置計測装置３ａと接続される。ロボット制御システム２ａ及び手先位置計測装置３ａの構成は、実施の形態１におけるものと同様であり、ロボット制御システム２ａで生成される候補関数及び補正関数のみが異なる。以下では、相違点についてのみ説明する。なお、図１９において、ロボットシステム１ｄは、実施の形態１におけるロボット制御システム２ａを備える構成として例示されているが、実施の形態２におけるロボット制御システム２ｂ、又は実施の形態３におけるロボット制御システム２ｃを備える構成とすることもできる。
【００８７】
図２０は、本発明の実施の形態４によるロボットシステム１ｄにおけるロボットアーム３００ｄの構成の一例を示す図である。図２０において、図２に示されたと同一のものには同一の符号を付している。図２０に示されたロボットアーム３００ｄにおいて、第１のリンク３１１、第２のリンク３１２、及び第３のリンク３１３のそれぞれは、複数の部位に分割される。具体的には、第１のリンク３１１は、長さがＬ１１である部位３１１１と、長さがＬ１２である部位３１１２とに分割される。ここで、第１のリンク３１１は、部位３１１１と部位３１１２とに分割して考えられるが、必ずしも部位３１１１と部位３１１２とに物理的に分割されている訳ではない。この点は、他のリンクについても同様である。また、第２のリンク３１２は、長さがＬ２１である部位３１２１と、長さがＬ２２である部位３１２２とに分割される。また、第３のリンク３１３は、長さがＬ３１である部位３１３１と、長さがＬ３２である部位３１３２と、長さがＬ３３である部位３１３３とに分割される。
【００８８】
ロボットアーム３００ｄにおいて、部位３１１１、部位３１１２、部位３１２１、部位３１２２、部位３１３１、部位３１３２、部位３１３３、及び第４のリンク３１４が、ロボットアーム３００ｄを分割して得られる部位であり、手先の位置を推定するためのロボットアーム３００ｄの構成単位である。ロボットアーム３００ｄにおいて、各部位は温度センサの設置位置、または関節の位置を区切りとして分割されている。図２０で示された各部位の数及び位置は一例であるが、各部位は関節を跨がないように設定される。
【００８９】
補正関数生成装置１００ａは、上記のように設定された各部位の長さを補正する補正関数を生成する。下記の式（６）は、補正関数生成装置１００ａで生成される補正関数の一例である。式（６）において、Ｌｂ１１ｎ、Ｌｂ１２ｎ、Ｌｂ２１ｎ、Ｌｂ２２ｎ、Ｌｂ３１ｎ、Ｌｂ３２ｎ、Ｌｂ３３ｎ、Ｌｂ４ｎは、時刻ｎにおける補正後の各部位の長さである。また、式（６）において、Ｌ１１、Ｌ１２、Ｌ２１、Ｌ２２、Ｌ３１、Ｌ３２、Ｌ３３、Ｌ４は、各部位の基準となる長さであり、各部位の補正前の長さである。さらに、式（６）において、Ｋ５は、係数ｋｉ，ｊを要素とする８行７列の行列である。式（６）における他の記号は、式（２）におけるものと同様である。
【００９０】
【数６】
2019163116.tif 000008
【００９１】
本実施の形態のロボットシステム１ｄの他の動作は、実施の形態１のロボットシステム１ａと同様である。本実施の形態の補正関数生成装置１００ａ、ロボット制御システム２ａ、及びロボットシステム１ｄによれば、ロボットアーム３００ｄのリンク内を分割した部位を設定し、部位毎の長さを補正する補正関数を生成するので、ロボットアーム３００ｄの手先の位置を更に高精度に制御することが可能となる。本実施の形態の補正関数生成装置１００ａ、ロボット制御システム２ａ、及びロボットシステム１ｄは、ロボットアーム３００ｄのリンク内に、温度変化に対する伸縮の度合いが局所的に異なる箇所が存在する場合に特に有効となる。例えば、他の箇所と比べて異なる素材が使用されている箇所や、構造が異なる箇所が、リンク内に存在すると、その箇所の伸縮の度合いは局所的に異なる可能性がある。例えば、ロボットアーム３００ｄは、関節を駆動するモータの取り付け方法や内部の構造によっては、リンク内で局所的に熱膨張の傾向が異なる可能性がある。
【００９２】
実施の形態５.
実施の形態１による補正関数生成装置１００ａ、実施の形態２による補正関数生成装置１００ｂ、及び実施の形態３による補正関数生成装置１００ｃは、まず候補関数を生成し、所定の条件を満たした候補関数を補正関数とするものであった。これに対して、本実施の形態の補正関数生成装置は、まずリンク長の候補を生成し、所定の条件を満たしたリンク長の候補を用いて補正関数を生成するものである。
【００９３】
図２１は、本発明の実施の形態５によるロボットシステム１ｅの構成の一例を示す図である。本実施の形態のロボットシステム１ｅは、ロボットアーム３００ａを備えるロボットと、ロボット制御システム２ｅとを備える。また、ロボット制御システム２ｅは、補正関数生成装置１００ｅと、ロボット制御装置２００ａとを備える。また、本実施の形態のロボットシステム１ｅは、手先位置計測装置３ａと接続される。本実施の形態のロボットシステム１ｅの構成は、補正関数生成装置１００ｅを除いて実施の形態１におけるものと同様である。以下では、相違点である補正関数生成装置１００ｅについてのみ説明する。なお、図２１において、ロボットシステム１ｄは、実施の形態１におけるロボットシステム１ａから補正関数生成装置を置き換えた構成として例示されているが、実施の形態２におけるロボットシステム１ｂ、実施の形態３におけるロボットシステム１ｃ、又は実施の形態４におけるロボットシステム１ｄから補正関数生成装置を置き換えた構成とすることもできる。
【００９４】
図２２は、本発明の実施の形態５による補正関数生成装置１００ｅの構成の一例を示す図である。図２２では、補正関数生成装置１００ｅの構成が、ロボット制御装置２００ａとともに示されている。本実施の形態の補正関数生成装置１００ｅは、情報取得部１１０ａと、手先位置推定部１２０ｅと、補正関数決定部１３０ｅとを備える。また、手先位置推定部１２０ｅは、候補リンク長生成部１２５と、手先位置演算部１２２ｅとを備える。また、補正関数決定部１３０ｅは、手先位置比較部１３１ａと、リンク長評価部１３５と、補正関数生成部１３６とを備える。なお、図２２において、図５におけるものと同様のブロックには、同一の符号が付されており、詳細な説明は省略される。
【００９５】
また、図２３は、本発明の実施の形態５による補正関数生成装置１００ｅの動作の流れの一例を示す図である。補正関数生成装置１００ｅの動作を除き、ロボット制御システム２ｅの動作の流れは、図４に示されるロボット制御システム２ａの動作の流れと同様である。図２３は、図４のステップＳ１００ａにおける補正関数生成装置１００ｅの動作の流れを示している。図２２及び図２３を用いて、補正関数生成装置１００ｅの動作について述べる。まず、ステップＳ１１０ａにおいて、情報取得部１１０ａは、温度情報、関節の角度、計測位置、及び基準リンク長を取得する。
【００９６】
次に、ステップＳ１２５において、候補リンク長生成部１２５は、温度情報が測定された時点におけるリンク長の候補となる候補リンク長を生成する。より具体的には、時刻ｎに温度情報が計測されたとすると、候補リンク長生成部１２５は、時刻ｎに対応する第１のリンク３１１の候補リンク長Ｌａ１ｎ、第２のリンク３１２の候補リンク長Ｌａ２ｎ、第３のリンク３１３の候補リンク長Ｌａ３ｎ、及び第４のリンク３１４の候補リンク長Ｌａ４ｎを生成する。後述する補正関数決定部１３０ｅにおける比較結果が所定の条件を満たすまで、候補リンク長生成部１２５は候補リンク長の生成を繰り返し行う。
【００９７】
ここで、温度情報が複数の時刻において計測されている場合、候補リンク長も、温度情報が計測された複数の時刻のそれぞれに対して生成される。例えば、Ｎを整数として、温度情報がＮ回測定されている場合、Ｎ組の候補リンク長が生成される。候補リンク長生成部１２５は、例えば、候補リンク長の初期値を基準リンク長とし、その後、動作が繰り返されるたびに値を変化させて候補リンク長の生成を行う。候補リンク長生成部１２５は、ロボットアーム３００ａを分割して得られる複数の部位のそれぞれの長さを推定する長さ推定部として機能する。
【００９８】
次に、ステップＳ１２２ｅにおいて、手先位置演算部１２２ｅは、候補リンク長及び関節の角度に基づいて、推定位置を求める。より詳細には、手先位置演算部１２２ｅは、時刻ｎに対応する候補リンク長、及び時刻ｎにおいて計測された関節の角度に基づいて、時刻ｎにおける推定位置Ｐｅｎを求める。前述の通り、推定位置は、推定された手先位置である。推定位置は、候補リンク長と、関節の角度とに基づいた幾何学演算によって求めることができる。複数の時刻において温度情報が計測されている場合、手先位置の推定は、複数の時刻のそれぞれに対して行われる。例えば、Ｎを整数として、温度情報がＮ回測定されている場合、Ｎ個の推定位置が求められる。
【００９９】
次に、ステップＳ１３１ａにおいて、手先位置比較部１３１ａは、手先位置推定部１２０ｅで求められた推定位置と、情報取得部１１０ａで取得された計測位置とを比較する。例えば、手先位置比較部１３１ａは、時刻ｎにおける計測位置と、時刻ｎにおける推定位置との間の距離Ｄｎを算出することによって、計測位置と推定位置とを比較する。複数の時刻において温度情報が計測されている場合、手先位置比較部１３１ａは、複数の時刻のそれぞれにおいて、計測位置と推定位置との間の距離を算出する。この場合、比較結果として、複数の距離が求められる。例えば、Ｎを整数として、温度情報がＮ回測定されている場合、Ｎ個の計測位置が取得され、Ｎ個の推定位置が求められるので、手先位置比較部１３１ａは、Ｎ個の距離を算出する。
【０１００】
次に、ステップＳ１３５において、リンク長評価部１３５は、比較結果が所定の条件を満たすか否かを判定する。ステップＳ１３５において、リンク長評価部１３５は、例えば、計測位置と推定位置との間の距離が、所定の距離よりも短いか否かを判定する。リンク長評価部１３５は、計測位置と推定位置との間の距離が所定の距離よりも短い場合に、比較結果が所定の条件を満たすと判定する。ステップＳ１３１ａにおいて手先位置比較部１３１ａが複数の距離を求めている場合には、リンク長評価部１３５は、複数の距離の全てが所定の条件を満たす場合に、比較結果が所定の条件を満たすと判定する。一方、複数の距離のうちの１つでも所定の条件を満たさない場合、リンク長評価部１３５は、比較結果が所定の条件を満たさないと判定する。
【０１０１】
ステップＳ１３５において、比較結果が所定の条件を満たすと判定された場合には、補正関数決定部１３０ｅの動作は、ステップＳ１３６へと進む。ステップＳ１３６において、リンク長評価部１３５は、最新の候補リンク長Ｌａ１ｎ、Ｌａ２ｎ、Ｌａ３ｎ、及びＬａ４ｎを補正関数生成部１３６に出力する。ここで、最新の候補リンク長は、所定の条件を満たした推定位置を求めるために使用された候補リンク長となる。また、ステップＳ１３６において、補正関数生成部１３６は、リンク長評価部１３５から出力された候補リンク長と、情報取得部１１０ａで取得された温度情報及び基準リンク長とに基づいて補正関数を生成し、ロボット制御装置２００ａに出力する。したがって、補正関数生成部１３６は、所定の条件を満たした推定位置に対応する補正関数を生成することになる。
【０１０２】
一方、ステップＳ１３５において、比較結果が所定の条件を満たさないと判定された場合には、補正関数決定部１３０ｅの動作は、ステップＳ１３７へと進む。ステップＳ１３７において、リンク長評価部１３５は、候補リンク長生成部１２５に候補リンク長の再生成を要請する。その後、補正関数生成装置１００ｅの動作はＳ１２５に戻る。複数の時刻において温度情報が計測されている場合、候補リンク長生成部１２５は、常に全ての時刻に対応する候補リンク長を生成する必要はなく、ステップＳ１３５において所定の条件を満たさなかった候補リンク長のみを再生成すれば良い。例えば、Ｎを整数として、温度情報がＮ回測定されている場合、Ｎ組の候補リンク長が生成される。Ｎ組の候補リンク長のうち時刻ｎ１における候補リンク長のみが、ステップＳ１３５において所定の条件を満たさなかったのであれば、候補リンク長生成部１２５は、時刻ｎ１における候補リンク長のみを再生成すれば良い。以上が、補正関数生成装置１００ｅの動作である。
【０１０３】
次に、図２３のステップＳ１３６における補正関数生成部１３６の動作について、更に詳細に述べる。図２４は、本発明の実施の形態５による補正関数生成装置１００ｅにおける補正関数生成部１３６の構成の一例を示す図である。図２４では、補正関数生成部１３６の構成が、情報取得部１１０ａ、リンク長評価部１３５、及びロボット制御装置２００ａとともに示されている。補正関数生成部１３６は、候補関数生成部１２１ａと、リンク長演算部１２３ａと、リンク長比較部１３８と、補正関数評価部１３２ｂとを備える。なお、候補関数生成部１２１ａ及びリンク長演算部１２３ａは、実施の形態１におけるものと同様のものである。また、図２５は、本発明の実施の形態５による補正関数生成装置１００ｅにおける補正関数生成部１３６の動作の流れの一例を示す図である。図２４及び図２５を用いて、補正関数生成部１３６の動作について述べる。
【０１０４】
まず、ステップＳ１２１ａにおいて、候補関数生成部１２１ａは、補正関数の候補となる候補関数を生成する。候補関数生成部１２１ａは、例えば、上述の式（２）、式（３）、又は式（４）で表される候補関数を生成する。後述するリンク長比較部１３８における比較結果が所定の条件を満たすまで、候補関数生成部１２１ａは候補関数の生成を繰り返し行う。次に、ステップＳ１２３ａにおいて、リンク長演算部１２３ａは、情報取得部１１０ａによって取得された温度情報及び基準リンク長を候補関数に入力することによって、リンク長を補正して時刻ｎにおけるリンク長Ｌｂ１ｎ、Ｌｂ２ｎ、Ｌｂ３ｎ、及びＬｂ４ｎを求める。時刻ｎは、温度情報が計測された時刻を表す。複数の時刻において温度情報が計測されている場合、リンク長の補正は、複数の時刻のそれぞれに対して行われる。例えば、Ｎを整数として、温度情報がＮ回測定されている場合、Ｎ組のリンク長が求められる。
【０１０５】
次に、ステップＳ１３８において、リンク長比較部１３８は、２種類のリンク長を比較する。ここで、２種類のリンク長の一方は、リンク長演算部１２３ａで候補関数を用いて求められたリンク長Ｌｂ１ｎ、Ｌｂ２ｎ、Ｌｂ３ｎ、及びＬｂ４ｎである。また、２種類のリンク長の他方は、リンク長評価部１３５から出力されたリンク長Ｌａ１ｎ、Ｌａ２ｎ、Ｌａ３ｎ、及びＬａ４ｎである。例えば、リンク長比較部１３８は、２種類のリンク長の間の差分を算出する。また、リンク長比較部１３８は、ロボットアーム３００ａが備えるリンク毎に、２種類のリンク長を比較する。
【０１０６】
より具体的には、リンク長比較部１３８は、Ｌｂ１ｎとＬａ１ｎとの差分ｄＬ１ｎを、時刻ｎにおける第１のリンク３１１に対する差分として算出する。また、リンク長比較部１３８は、Ｌｂ２ｎとＬａ２ｎとの差分ｄＬ２ｎを、時刻ｎにおける第２のリンク３１２に対する差分として算出する。また、リンク長比較部１３８は、Ｌｂ３ｎとＬａ３ｎとの差分ｄＬ３ｎを、時刻ｎにおける第３のリンク３１３に対する差分として算出する。また、リンク長比較部１３８は、Ｌｂ４ｎとＬａ４ｎとの差分ｄＬ４ｎを、時刻ｎにおける第４のリンク３１４に対する差分として算出する。
【０１０７】
複数の時刻において温度情報が計測されている場合、リンク長比較部１３８は、複数の時刻のそれぞれにおいて、対応する２組のリンク長を比較する。例えば、Ｎを整数として、温度情報がＮ回測定されている場合、リンク長比較部１３８は、差分ｄＬ１ｎ、ｄＬ２ｎ、ｄＬ３ｎ、及びｄＬ４ｎからなる組をＮ組算出する。次に、ステップＳ１３２ｂにおいて、補正関数評価部１３２ｂは、リンク長比較部１３８における比較結果が所定の条件を満たすか否かを判定する。ステップＳ１３２ｂにおいて、補正関数評価部１３２ｂは、例えば、リンク長比較部１３８で求められた差分ｄＬ１ｎ、ｄＬ２ｎ、ｄＬ３ｎ、及びｄＬ４ｎの全てが、所定の値よりも小さいか否かを判定する。補正関数評価部１３２ｂは、差分ｄＬ１ｎ、ｄＬ２ｎ、ｄＬ３ｎ、及びｄＬ４ｎの全てが所定の値よりも小さい場合に、比較結果が所定の条件を満たすと判定する。一方、補正関数評価部１３２ｂは、差分ｄＬ１ｎ、ｄＬ２ｎ、ｄＬ３ｎ、及びｄＬ４ｎの少なくとも１つが所定の値よりも大きい場合に、比較結果が所定の条件を満たさないと判定する。
【０１０８】
ステップＳ１３８において、リンク長比較部１３８がＮ組の差分を求めている場合には、補正関数評価部１３２ｂは、各リンクに対するＮ個の差分の最大値または平均値を求め、求められた最大値または平均値が所定の値よりも小さい否かを判定すれば良い。この場合、補正関数評価部１３２ｂは、求められた平均値または最大値の全てが所定の値よりも小さい場合に、比較結果が所定の条件を満たすと判定する。ステップＳ１３２ｂにおいて、比較結果が所定の条件を満たすと判定された場合には、補正関数評価部１３２ｂの動作は、ステップＳ１３３へと進む。ステップＳ１３３では、補正関数評価部１３２ｂは、最新の候補関数を補正関数として決定し、ロボット制御装置２００ａに出力する。
【０１０９】
一方、ステップＳ１３２ｂにおいて、比較結果が所定の条件を満たさないと判定された場合には、補正関数評価部１３２ｂの動作は、ステップＳ１３４ｂへと進む。ステップＳ１３４ｂでは、補正関数評価部１３２ｂは、候補関数生成部１２１ａに候補関数の再生成を要請する。その後、補正関数生成部１３６の動作はＳ１２１ａに戻る。候補関数の再生成を要請されると、候補関数生成部１２１ａは、ステップＳ１２１ａにおいて、候補関数の形式または係数を変更し、新たな候補関数を生成する。この際、候補関数生成部１２１ａは、所定の値よりも差分が大きいと判定されたリンクに対応する係数のみを変更しても良い。
【０１１０】
本実施の形態の補正関数生成装置１００ｅは、以上のように動作する。本実施の形態の補正関数生成装置１００ｅによれば、位置計測の対象となる点を増加させることなく、ロボットアーム３００ａの手先の位置を高精度に制御するための補正関数を生成可能となる。また、本実施の形態のロボット制御システム２ｅ及びロボットシステム１ｅによれば、位置計測の対象となる点を増加させることなく、ロボットアーム３００ａの手先の位置を高精度に制御することが可能となる。
【０１１１】
実施の形態６.
温度変化に対するロボットアームの伸縮は、動作条件によって異なる特徴を持つことが考えられる。例えば、動作条件によって、ロボットアームの伸縮する部位が変化したり、伸縮の程度が変化したりすることが考えられる。動作条件としては、ロボットアームの動作経路、動作速度、動作加速度、周囲環境の温度、または設置される台の構造など、様々な条件が考えられる。ロボットアームの動作経路、動作速度、又は動作加速度をロボットアームの動作内容と呼ぶ。本実施の形態のロボット制御システム及びロボットシステムは、ロボット制御装置が、動作条件毎に生成された複数の補正関数を記憶し、ロボットアームに作業を行わせる際の動作条件に応じて補正関数を選択することで、より高精度な作業を実現するものである。
【０１１２】
図２６は、本発明の実施の形態６によるロボットシステム１ｆの構成の一例を示す図である。本実施の形態のロボットシステム１ｆは、ロボットアーム３００ａを備えるロボットと、ロボット制御システム２ｆとを備える。また、ロボット制御システム２ｆは、補正関数生成装置１００ａと、ロボット制御装置２００ｆとを備える。また、本実施の形態のロボットシステム１ｆは、手先位置計測装置３ａと接続される。本実施の形態のロボットシステム１ｆの構成は、ロボット制御装置２００ｆを除いて実施の形態１におけるロボットシステム１ａと同様である。以下では、相違点であるロボット制御装置２００ｆについてのみ説明する。なお、図２６において、ロボットシステム１ｆは、実施の形態１におけるロボットシステム１ａからロボット制御装置を置き換えた構成として例示されているが、実施の形態２におけるロボットシステム１ｂ、実施の形態３におけるロボットシステム１ｃ、実施の形態４におけるロボットシステム１ｄ、又は実施の形態５におけるロボットシステム１ｅからロボット制御装置を置き換えた構成とすることもできる。
【０１１３】
図２７は、本発明の実施の形態６によるロボット制御装置２００ｆの構成の一例を示す図である。図２７では、ロボット制御装置２００ｆの構成が、補正関数生成装置１００ａ、手先位置計測装置３ａ、及びロボットアーム３００ａとともに示されている。本実施の形態のロボット制御装置２００ｆは、計測制御部２０１ｆと、記憶部２０２と、補正関数取得部２１０と、補正関数記憶部２５０と、補正関数選択部２６０と、リンク長補正部２２０ａと、目標位置設定部２３０と、指令値生成部２４０ａとを備える。図２７に示されたロボット制御装置２００ｆは、計測制御部２０１ｆと、補正関数記憶部２５０と、補正関数選択部２６０とを除いて、図８に示されたロボット制御装置２００ａと同様の構成となる。
【０１１４】
図２８は、本発明の実施の形態６によるロボット制御システム２ｆの動作の流れの一例を示す図である。図２８において、図４に示されたロボット制御システム２ａの動作と同様の動作には、同一の符号を付している。以下、図２８を用いて、図８に示されたロボット制御装置２００ａからの相違点を中心に、図２７に示されたロボット制御装置２００ｆの動作を述べる。まず、ステップＳ０１１において、計測制御部２０１ｆは、ロボットアーム３００ａの複数の動作条件から１つを選択し、選択した動作条件を設定する。例えば、動作条件がロボットアーム３００ａの動作内容であれば、計測制御部２０１ｆは、その動作内容となるようなロボットアーム３００ａの動作指令値を準備する。また、例えば、動作条件がロボットアーム３００ａの周囲環境の温度であれば、計測制御部２０１ｆは、周囲環境がその温度となるまでロボットアーム３００ａの動作を待機させる。
【０１１５】
次に、ステップＳ００１ａにおいて、計測制御部２０１ｆは、ロボットアーム３００ａの計測姿勢を制御するとともに、複数の時刻における温度情報、関節の角度、及び計測位置を取得する。ステップＳ００１ａにおけるロボット制御装置２００ｆの動作は、実施の形態１におけるロボット制御装置２００ａの動作と同様である。ただし、温度情報が取得される複数の時刻の間には、計測制御部２０１ｆは、設定された動作条件に合致した動作をロボットアーム３００ａにさせる。また、計測制御部２０１ｆは、周囲環境が動作条件に合致していることを確認する。
【０１１６】
次に、ステップＳ１００ａにおいて、補正関数生成装置１００ａは、温度情報、関節の角度、及び計測位置をロボット制御装置２００ｆから取得する。また、ステップＳ１００ａにおいて、補正関数生成装置１００ａは、ロボット制御装置２００ｆから取得した情報に基づいて、補正関数を生成する。生成された補正関数は、ロボット制御装置２００ｆに出力される。ステップＳ１００ａにおける補正関数生成装置１００ａの動作は、実施の形態１における補正関数生成装置１００ａの動作と同様である。
【０１１７】
次に、ステップＳ０１２において、補正関数取得部２１０は、補正関数生成装置１００ａから出力された補正関数を取得する。また、ステップＳ０１２において、補正関数記憶部２５０は、取得された補正関数を動作条件と関連付けて記憶する。補正関数記憶部２５０は、互いに異なる動作条件において生成された複数の補正関数を記憶する。次に、ステップＳ０１３において、計測制御部２０１ｆは、補正関数の生成が必要な全ての動作条件に対して、補正関数の生成が完了したかを判定する。全ての動作条件に対して補正関数を生成済みであれば、ロボット制御システム２ｆの動作はステップＳ０１４へと進む。一方、補正関数がまだ生成されていない動作条件が存在する場合には、ロボット制御システム２ｆの動作はステップＳ０１１へと戻る。ステップＳ０１１からステップＳ０１３までが、ロボット制御システム２ｆが補正関数を生成する動作である。
【０１１８】
ステップＳ０１４以降の動作は、ロボット制御システム２ｆが、補正関数に基づいて動作指令値を生成する動作である。ステップＳ０１４において、補正関数選択部２６０は、補正関数記憶部に記憶された複数の補正関数から、ロボットアーム３００ａに作業をさせる際の動作条件に合った補正関数を選択する。次に、ステップＳ２００において、ロボット制御装置２００ｆは、選択された補正関数に基づいて、ロボットアーム３００ａの動作を制御するための動作指令値を生成する。生成された動作指令値は、ロボットアーム３００ａに出力される。ステップＳ２００におけるロボット制御装置２００ｆの動作は、実施の形態１におけるロボット制御装置２００ａの動作と同様である。
【０１１９】
次に、ステップＳ００３において、ロボット制御装置２００ｆは、ロボットアーム３００ａの動作を終了させるか否かを判定する。ステップＳ００３において、動作を終了させると判定されると、ロボット制御システム２ｆは動作を終了する。一方、ステップＳ００３において、まだ動作を終了させないと判定されると、ロボット制御システム２ｆの動作はステップＳ２００へと戻り、動作指令値の生成が繰り返される。以上が、ロボット制御システム２ｆの動作の流れである。
【０１２０】
本実施の形態のロボット制御システム２ｆ、及びロボットシステム１ｆは、以上のように動作する。本実施の形態のロボット制御システム２ｆ、及びロボットシステム１ｆによれば、複数の動作条件が予め決定されている場合に、ロボットアーム３００ａの手先の位置を更に高精度に制御することが可能となる。例えば、ロボットアーム３００ａが予め定められた動作パターンでの連続運転を行う場合や、冷凍倉庫、常温環境などの複数種類の温度条件での連続運転を行う場合などに、本実施の形態のロボット制御システム２ｆ、及びロボットシステム１ｆは効果的である。
【０１２１】
実施の形態７.
実施の形態１のロボット制御システム２ａにおいて、ロボット制御装置２００ａは、補正関数を用いて補正されたリンク長に基づいて、ロボットアーム３００ａの関節の角度の目標値を求める構成であった。さらに、ロボット制御装置２００ａは、求められた関節の角度の目標値からロボットアーム３００ａの動作指令値を求める構成であった。しかし、ロボットアーム３００ａが縮んだ場合には、目標とする位置に手先を届かせるロボットアーム３００ａの姿勢が存在せず、ロボット制御装置２００ａが関節の角度の目標値を算出できない場合が起こり得る。すなわち、ロボットアーム３００ａが縮んだ場合には、目標とする位置がロボットアーム３００ａの動作範囲外となる可能性がある。
【０１２２】
また、ロボット制御装置２００ａにおいて、リンク長補正部２２０ａがリンク長を補正した結果、目標位置設定部２３０が生成する目標位置が特異点となってしまう可能性がある。なお、特異点とは、手先の位置および向きから関節の角度を一意に決定することのできない、手先の位置および向きをいう。本実施の形態のロボットシステム及びロボット制御システムは、算出された関節の角度を評価する機能を備えたロボット制御装置を備える。
【０１２３】
図２９は、本発明の実施の形態７によるロボットシステム１ｇの構成の一例を示す図である。本実施の形態のロボットシステム１ｇは、ロボットアーム３００ａを備えるロボットと、ロボット制御システム２ｇとを備える。また、ロボット制御システム２ｇは、補正関数生成装置１００ａと、ロボット制御装置２００ｇとを備える。また、本実施の形態のロボットシステム１ｇは、手先位置計測装置３ａと接続される。本実施の形態のロボットシステム１ｇの構成は、ロボット制御装置２００ｇを除いて実施の形態１におけるロボットシステム１ａと同様である。以下では、相違点であるロボット制御装置２００ｇについてのみ説明する。
【０１２４】
なお、図２９において、ロボットシステム１ｇは、実施の形態１におけるロボットシステム１ａからロボット制御装置を置き換えた構成として例示されているが、実施の形態２におけるロボットシステム１ｂ、実施の形態３におけるロボットシステム１ｃ、実施の形態４におけるロボットシステム１ｄ、又は実施の形態５におけるロボットシステム１ｅからロボット制御装置を置き換えた構成とすることもできる。また、ロボットシステム１ｇは、実施の形態６におけるロボットシステム１ｆと同様に、動作指令値を生成する際に、記憶された複数の補正関数から１つを選択して使用する構成とすることもできる。
【０１２５】
図３０は、本発明の実施の形態７によるロボット制御装置２００ｇの構成の一例を示す図である。図３０では、ロボット制御装置２００ｇの構成が、補正関数生成装置１００ａ、手先位置計測装置３ａ、及びロボットアーム３００ａとともに示されている。本実施の形態のロボット制御装置２００ｇは、計測制御部２０１ａと、記憶部２０２と、補正関数取得部２１０と、リンク長補正部２２０ａと、目標位置設定部２３０と、指令値生成部２４０ｇとを備える。図３０に示されたロボット制御装置２００ｇは、指令値生成部２４０ｇを除いて、図８に示されたロボット制御装置２００ａと同様の構成となる。
【０１２６】
図３１は、本発明の実施の形態７によるロボット制御装置２００ｇにおける指令値生成部２４０ｇの構成の一例を示す図である。図３１では、指令値生成部２４０ｇの構成が、記憶部２０２、リンク長補正部２２０ａ、目標位置設定部２３０、及びロボットアーム３００ａとともに示されている。指令値生成部２４０ｇは、第１の角度算出部２４１と、第２の角度算出部２４２と、関節角度評価部２４３と、第３の角度算出部２４４と、指令値出力部２４５とを備える。第１の角度算出部２４１は、記憶部２０２に記憶される基準リンク長と、目標位置設定部２３０から出力される目標位置とに基づいて、手先が目標位置に到達するためのロボットアーム３００ａの関節の角度を第１の目標角度θ１ｑとして算出する。なお、目標位置には、目標となる手先の向きも含まれる。第１の目標角度θ１ｑは、ロボットアーム３００ａの各リンクの長さが基準リンク長である場合における関節の目標角度である。なお、ｑは、ロボットアーム３００ａの関節を識別するための識別子である。
【０１２７】
第２の角度算出部２４２は、リンク長補正部２２０ａから出力される補正後のリンク長と、目標位置設定部２３０から出力される目標位置とに基づいて、手先が目標位置に到達するためのロボットアーム３００ａの関節の角度を第２の目標角度θ２ｑとして算出する。第２の目標角度θ２ｑは、ロボットアーム３００ａの各リンクの長さが補正後のリンク長である場合における関節の目標角度である。関節角度評価部２４３は、第２の目標角度θ２ｑが望ましくない角度に近付いていないかを評価し、補正係数ａ１を生成する。
【０１２８】
ここで、望ましくない角度とは、ロボットアーム３００ａの姿勢が特異点に近付くような関節の角度である。また、多くの関節が伸びきるような関節の角度も、望ましくない角度となる。関節の角度が望ましくない角度となるようなロボットアーム３００ａの姿勢は、許容されない姿勢となる。望ましくない関節の角度は、許容されない関節の角度と言い換えることもできる。望ましくない関節の角度は、関節の角度に関する制約条件として予め設定される。したがって、関節角度評価部２４３は、第２の目標角度θ２ｑと予め設定された制約条件とを比較することで、第２の目標角度θ２ｑが望ましくない角度に近いか否かを評価する。
【０１２９】
第２の目標角度θ２ｑで表されるロボットアーム３００ａの姿勢が、許容されない姿勢に近い場合、関節角度評価部２４３は補正係数ａ１を０とする。また、第２の目標角度θ２ｑで表されるロボットアーム３００ａの姿勢が、許容されない姿勢から離れるに従って、関節角度評価部２４３は補正係数ａ１を徐々に大きくする。そして、第２の目標角度θ２ｑで表されるロボットアーム３００ａの姿勢が、許容されない姿勢から十分離れている場合、関節角度評価部２４３は補正係数ａ１を１とする。第３の角度算出部２４４は、第１の目標角度θ１ｑ、第２の目標角度θ２ｑ、補正係数ａ１を用いた下記の式（７）の演算によって、第３の目標角度θ３ｑを算出する。
【０１３０】
【数７】
2019163116.tif 000009
【０１３１】
指令値出力部２４５は、ロボットアーム３００ａの関節の角度が第３の目標角度θ３ｑとなるように動作指令値を生成し、ロボットアーム３００ａに出力する。指令値生成部２４０ｇは、以上のように動作する。ロボット制御装置２００ｇにおいて、指令値生成部２４０ｇ以外の動作は実施の形態１におけるロボット制御装置２００ａの動作と同様である。本実施の形態のロボット制御システム２ｇ及びロボットシステム１ｇによれば、ロボットアーム３００ａが許容されない姿勢となることを防止することが可能となる。
【０１３２】
例えば、ロボットアーム３００ａの姿勢が特異点に陥ると、動作を継続するためにはロボットアーム３００ａは姿勢を大幅に変更する必要がある。この結果、ロボットアーム３００ａは、滑らかな動作を実現することが困難となる。本実施の形態のロボット制御システム２ｇ及びロボットシステム１ｇによれば、ロボットアーム３００ａに滑らかな動作を継続させながら、ロボットアーム３００ａの手先の位置を更に高精度に制御することも可能となる。また、例えば、ロボットアーム３００ａが縮むことによって、目標とする位置がロボットアーム３００ａの手先が到達できない位置となると、ロボットアームの動作が停止することが考えられる。本実施の形態のロボット制御システム２ｇ及びロボットシステム１ｇによれば、ロボットアーム３００ａの動作を停止させず、安定して動作を継続させながら、ロボットアーム３００ａの手先の位置を更に高精度に制御することも可能となる。
【符号の説明】
【０１３３】
１ａ、１ｂ、１ｃ、１ｄ、１ｅ、１ｆ、１ｇ  ロボットシステム、２ａ、２ｂ、２ｃ、２ｅ、２ｆ、２ｇ  ロボット制御システム、３ａ、３ｂ  手先位置計測装置、１００ａ、１００ｂ、１００ｃ、１００ｅ  補正関数生成装置、１１０ａ、１１０ｂ、１１０ｃ  情報取得部、１２０ａ、１２０ｂ、１２０ｃ、１２０ｅ  手先位置推定部、１２１ａ、１２１ｃ  候補関数生成部、１２２ａ、１２２ｂ、１２２ｃ、１２２ｅ  手先位置演算部、１２３ａ、１２３ｂ、１２３ｃ  リンク長演算部、１２４ａ、１２４ｂ  手先位置変換部、１２５  候補リンク長生成部、１３０ａ、１３０ｂ、１３０ｅ  補正関数決定部、１３１ａ、１３１ｂ  手先位置比較部、１３２ａ、１３２ｂ  補正関数評価部、１３５  リンク長評価部、１３６  補正関数生成部、１３８  リンク長比較部、２００ａ、２００ｃ、２００ｆ、２００ｇ  ロボット制御装置、２０１ａ、２０１ｃ、２０１ｆ  計測制御部、２０２  記憶部、２１０  補正関数取得部、２２０ａ、２２０ｃ  リンク長補正部、２３０  目標位置設定部、２４０ａ、２４０ｇ  指令値生成部、２４１  第１の角度算出部、２４２  第２の角度算出部、２４３  関節角度評価部、２４４  第３の角度算出部、２４５  指令値出力部、２５０  補正関数記憶部、２６０  補正関数選択部、３００ａ、３００ｄ  ロボットアーム、３１１  第１のリンク、３１２  第２のリンク、３１３  第３のリンク、３１４  第４のリンク、３２１  第１の温度センサ、３２２  第２の温度センサ、３２３  第３の温度センサ、３２４  第４の温度センサ、３２５  第５の温度センサ、３２６  第６の温度センサ、４  環境温度計測装置、４０１  プロセッサ、４０２メモリ、４０３  データバス、３１１１、３１１２、３１２１、３１２２、３１３１、３１３２、３１３３  部位。
【図１】
2019163116.tif 000010
【図２】
2019163116.tif 000011
【図３】
2019163116.tif 000012
【図４】
2019163116.tif 000013
【図５】
2019163116.tif 000014
【図６】
2019163116.tif 000015
【図７】
2019163116.tif 000016
【図８】
2019163116.tif 000017
【図９】
2019163116.tif 000018
【図１０】
2019163116.tif 000019
【図１１】
2019163116.tif 000020
【図１２】
2019163116.tif 000021
【図１３】
2019163116.tif 000022
【図１４】
2019163116.tif 000023
【図１５】
2019163116.tif 000024
【図１６】
2019163116.tif 000025
【図１７】
2019163116.tif 000026
【図１８】
2019163116.tif 000027
【図１９】
2019163116.tif 000028
【図２０】
2019163116.tif 000029
【図２１】
2019163116.tif 000030
【図２２】
2019163116.tif 000031
【図２３】
2019163116.tif 000032
【図２４】
2019163116.tif 000033
【図２５】
2019163116.tif 000034
【図２６】
2019163116.tif 000035
【図２７】
2019163116.tif 000036
【図２８】
2019163116.tif 000037
【図２９】
2019163116.tif 000038
【図３０】
2019163116.tif 000039
【図３１】
2019163116.tif 000040
【手続補正書】
【提出日】平成30年10月16日(2018.10.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置であって、
前記ロボットアームの所定位置で計測された温度情報、前記温度情報が計測された時点の前記関節の角度、及び前記温度情報が計測された時点の前記手先の位置を計測して得られる計測位置を取得する情報取得部と、
前記関節の角度に基づいて、前記温度情報を取得した時点の前記手先の位置を推定して推定位置を求める手先位置推定部と、
前記計測位置と前記推定位置とを比較した結果に基づいて、前記温度情報を変数として前記ロボットアームを分割して得られる複数の部位のそれぞれの長さを補正する関数である前記補正関数を決定する補正関数決定部と
を備え、
前記手先位置推定部は、前記複数の部位のそれぞれの長さを補正又は推定し、補正又は推定された前記複数の部位のそれぞれの長さと前記関節の角度とに基づいて前記推定位置を求め、
前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が所定の条件を満たす場合に、前記推定位置に対応する前記補正関数を出力する
補正関数生成装置。
【請求項２】
前記温度情報、前記関節の角度及び前記計測位置は、複数の時刻のそれぞれにおいて取得され、
前記手先位置推定部は、前記複数の時刻のそれぞれにおける前記推定位置を求め、
前記補正関数決定部は、前記複数の時刻のそれぞれにおける前記計測位置と前記推定位置とを比較した結果に基づいて、前記補正関数を決定する
請求項１に記載の補正関数生成装置。
【請求項３】
前記計測位置は、所定の基準位置からの変位として取得される請求項１又は請求項２に記載の補正関数生成装置。
【請求項４】
前記補正関数決定部は、
前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たさない場合には、前記手先の位置の推定を再実施するように前記手先位置推定部に要請する
請求項１から請求項３のいずれか１項に記載の補正関数生成装置。
【請求項５】
前記手先位置推定部は、
前記補正関数の候補となる候補関数を生成する候補関数生成部と、
前記温度情報及び前記候補関数に基づいて前記複数の部位のそれぞれの長さを補正し、補正された前記複数の部位のそれぞれの長さ及び前記関節の角度に基づいて前記推定位置を求める手先位置演算部と
を備える請求項１から請求項４のいずれか１項に記載の補正関数生成装置。
【請求項６】
前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たす場合には、前記推定位置を求めるために使用された前記候補関数を前記補正関数として出力する請求項５に記載の補正関数生成装置。
【請求項７】
前記候補関数は、前記ロボットアームの周囲環境の温度を変数とする関数である請求項５又は請求項６に記載の補正関数生成装置。
【請求項８】
前記複数の部位のそれぞれが存在する範囲は、前記関節を跨がない請求項５から請求項７のいずれか１項に記載の補正関数生成装置。
【請求項９】
前記手先位置推定部は、
前記複数の部位のそれぞれの長さを推定する長さ推定部と、
前記関節の角度及び推定された前記複数の部位のそれぞれの長さに基づいて、前記推定位置を求める手先位置演算部と
を備える請求項１から請求項４のいずれか１項に記載の補正関数生成装置。
【請求項１０】
前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たす場合には、前記推定位置を求めるために使用された前記複数の部位のそれぞれの長さと、前記温度情報とに基づいて前記補正関数を生成する
請求項９に記載の補正関数生成装置。
【請求項１１】
請求項１から請求項１０のいずれか１項に記載の補正関数生成装置と、ロボット制御装置とを備えるロボット制御システムであって、
前記ロボット制御装置は、
前記補正関数生成装置から前記補正関数を取得する補正関数取得部と、
前記補正関数及び前記温度情報を用いて前記複数の部位のそれぞれの長さを補正するリンク長補正部と、
補正された前記複数の部位のそれぞれの長さに基づいて、前記手先が目標位置に到達するように前記ロボットアームを制御するための動作指令値を生成する指令値生成部と
を備えるロボット制御システム。
【請求項１２】
前記ロボット制御装置は、
前記ロボットアームの互いに異なる動作条件のそれぞれにおいて前記補正関数生成装置が生成した複数の前記補正関数を記憶する補正関数記憶部と、
前記ロボットアームの前記動作条件に基づいて、前記補正関数記憶部が記憶する複数の前記補正関数のうちの１つを選択する補正関数選択部と
を備え、
前記リンク長補正部は、前記補正関数選択部が選択した前記補正関数と、前記温度情報とを用いて前記複数の部位のそれぞれの長さを補正する請求項１１に記載のロボット制御システム。
【請求項１３】
前記指令値生成部は、
基準となる前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第１の目標角度として算出する第１の角度算出部と、
補正された前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第２の目標角度として算出する第２の角度算出部と、
前記第２の目標角度と予め設定された制約条件とを比較して補正係数を生成する関節角度評価部と、
前記第１の目標角度と、前記第２の目標角度と、前記補正係数とに基づいて、第３の目標角度を算出する第３の角度算出部と
を備え、前記第３の目標角度に基づいて前記動作指令値を生成する請求項１１又は請求項１２に記載のロボット制御システム。
【請求項１４】
請求項１１から請求項１３のいずれか１項に記載のロボット制御システムと、前記ロボット制御システムによって制御される前記ロボットアームとを備えるロボットシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
この発明における補正関数生成装置は、関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置であって、ロボットアームの所定位置で計測された温度情報、温度情報が計測された時点の関節の角度、及び温度情報が計測された時点の手先の位置を計測して得られる計測位置を取得する情報取得部と、関節の角度に基づいて、温度情報を取得した時点の手先の位置を推定して推定位置を求める手先位置推定部と、計測位置と推定位置とを比較した結果に基づいて、温度情報を変数としてロボットアームを分割して得られる複数の部位のそれぞれの長さを補正する関数である補正関数を決定する補正関数決定部とを備え、手先位置推定部は、複数の部位のそれぞれの長さを補正又は推定し、補正又は推定された複数の部位のそれぞれの長さと関節の角度とに基づいて推定位置を求め、補正関数決定部は、計測位置と推定位置とを比較した結果が所定の条件を満たす場合に、推定位置に対応する補正関数を出力するものである。
【手続補正書】
【提出日】平成31年1月10日(2019.1.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置であって、
前記ロボットアームの所定位置で計測された温度情報、前記温度情報が計測された時点の前記関節の角度、及び前記温度情報が計測された時点の前記手先の位置を計測して得られる計測位置を取得する情報取得部と、
前記関節の角度に基づいて、前記温度情報を取得した時点の前記手先の位置を推定して推定位置を求める手先位置推定部と、
前記計測位置と前記推定位置とを比較した結果に基づいて、前記温度情報を変数として前記ロボットアームを分割して得られる複数の部位のそれぞれの長さを補正する関数である前記補正関数を決定する補正関数決定部と
を備え、
前記手先位置推定部は、前記複数の部位のそれぞれの長さを補正又は推定し、補正又は推定された前記複数の部位のそれぞれの長さと前記関節の角度とに基づいて前記推定位置を求め、
前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が所定の条件を満たす場合に、前記推定位置に対応する前記補正関数を出力する
補正関数生成装置。
【請求項２】
前記温度情報、前記関節の角度及び前記計測位置は、複数の時刻のそれぞれにおいて取得され、
前記手先位置推定部は、前記複数の時刻のそれぞれにおける前記推定位置を求め、
前記補正関数決定部は、前記複数の時刻のそれぞれにおける前記計測位置と前記推定位置とを比較した結果に基づいて、前記補正関数を決定する
請求項１に記載の補正関数生成装置。
【請求項３】
前記計測位置は、所定の基準位置からの変位として取得される請求項１又は請求項２に記載の補正関数生成装置。
【請求項４】
前記補正関数決定部は、
前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たさない場合には、前記手先の位置の推定を再実施するように前記手先位置推定部に要請する
請求項１から請求項３のいずれか１項に記載の補正関数生成装置。
【請求項５】
前記手先位置推定部は、
前記補正関数の候補となる候補関数を生成する候補関数生成部と、
前記温度情報及び前記候補関数に基づいて前記複数の部位のそれぞれの長さを補正し、補正された前記複数の部位のそれぞれの長さ及び前記関節の角度に基づいて前記推定位置を求める手先位置演算部と
を備える請求項１から請求項４のいずれか１項に記載の補正関数生成装置。
【請求項６】
前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たす場合には、前記推定位置を求めるために使用された前記候補関数を前記補正関数として出力する請求項５に記載の補正関数生成装置。
【請求項７】
前記候補関数は、前記ロボットアームの周囲環境の温度を変数とする関数である請求項５又は請求項６に記載の補正関数生成装置。
【請求項８】
前記複数の部位のそれぞれが存在する範囲は、前記関節を跨がない請求項５から請求項７のいずれか１項に記載の補正関数生成装置。
【請求項９】
前記手先位置推定部は、
前記複数の部位のそれぞれの長さを推定する長さ推定部と、
前記関節の角度及び推定された前記複数の部位のそれぞれの長さに基づいて、前記推定位置を求める手先位置演算部と
を備える請求項１から請求項４のいずれか１項に記載の補正関数生成装置。
【請求項１０】
前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たす場合には、前記推定位置を求めるために使用された前記複数の部位のそれぞれの長さと、前記温度情報とに基づいて前記補正関数を生成する
請求項９に記載の補正関数生成装置。
【請求項１１】
請求項１から請求項１０のいずれか１項に記載の補正関数生成装置と、ロボット制御装置とを備えるロボット制御システムであって、
前記ロボット制御装置は、
前記補正関数生成装置から前記補正関数を取得する補正関数取得部と、
前記補正関数及び前記温度情報を用いて前記複数の部位のそれぞれの長さを補正するリンク長補正部と、
補正された前記複数の部位のそれぞれの長さに基づいて、前記手先が目標位置に到達するように前記ロボットアームを制御するための動作指令値を生成する指令値生成部と
を備えるロボット制御システム。
【請求項１２】
前記ロボット制御装置は、
前記ロボットアームの互いに異なる動作条件のそれぞれにおいて前記補正関数生成装置が生成した複数の前記補正関数を記憶する補正関数記憶部と、
前記ロボットアームの前記動作条件に基づいて、前記補正関数記憶部が記憶する複数の前記補正関数のうちの１つを選択する補正関数選択部と
を備え、
前記リンク長補正部は、前記補正関数選択部が選択した前記補正関数と、前記温度情報とを用いて前記複数の部位のそれぞれの長さを補正する請求項１１に記載のロボット制御システム。
【請求項１３】
前記指令値生成部は、
基準となる前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第１の目標角度として算出する第１の角度算出部と、
補正された前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第２の目標角度として算出する第２の角度算出部と、
前記第２の目標角度と予め設定された制約条件とを比較して補正係数を生成する関節角度評価部と、
前記第１の目標角度と、前記第２の目標角度と、前記補正係数とに基づいて、第３の目標角度を算出する第３の角度算出部と
を備え、前記第３の目標角度に基づいて前記動作指令値を生成する請求項１１又は請求項１２に記載のロボット制御システム。
【請求項１４】
関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置と、ロボット制御装置とを備えるロボット制御システムであって、
前記ロボット制御装置は、
前記補正関数生成装置から前記補正関数を取得する補正関数取得部と、
前記補正関数及び前記ロボットアームの所定位置で計測された温度情報を用いて、前記ロボットアームを分割して得られる複数の部位のそれぞれの長さを補正するリンク長補正部と、
補正された前記複数の部位のそれぞれの長さに基づいて、前記手先が目標位置に到達するように前記ロボットアームを制御するための動作指令値を生成する指令値生成部と、
前記ロボットアームの互いに異なる動作条件のそれぞれにおいて前記補正関数生成装置が生成した複数の前記補正関数を記憶する補正関数記憶部と、
前記ロボットアームの前記動作条件に基づいて、前記補正関数記憶部が記憶する複数の前記補正関数のうちの１つを選択する補正関数選択部と
を備え、
前記リンク長補正部は、前記補正関数選択部が選択した前記補正関数と、前記温度情報とを用いて前記複数の部位のそれぞれの長さを補正するロボット制御システム。
【請求項１５】
関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置と、ロボット制御装置とを備えるロボット制御システムであって、
前記ロボット制御装置は、
前記補正関数生成装置から前記補正関数を取得する補正関数取得部と、
前記補正関数及び前記ロボットアームの所定位置で計測された温度情報を用いて、前記ロボットアームを分割して得られる複数の部位のそれぞれの長さを補正するリンク長補正部と、
補正された前記複数の部位のそれぞれの長さに基づいて、前記手先が目標位置に到達するように前記ロボットアームを制御するための動作指令値を生成する指令値生成部と
を備え、
前記指令値生成部は、
基準となる前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第１の目標角度として算出する第１の角度算出部と、
補正された前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第２の目標角度として算出する第２の角度算出部と、
前記第２の目標角度と予め設定された制約条件とを比較して補正係数を生成する関節角度評価部と、
前記第１の目標角度と、前記第２の目標角度と、前記補正係数とに基づいて、第３の目標角度を算出する第３の角度算出部と
を備え、前記第３の目標角度に基づいて前記動作指令値を生成するロボット制御システム。
【請求項１６】
請求項１１から請求項１５のいずれか１項に記載のロボット制御システムと、前記ロボット制御システムによって制御される前記ロボットアームとを備えるロボットシステム。
【国際調査報告】
2019163116.tif 000041
2019163116.tif 000042
2019163116.tif 000043
2019163116.tif 000044