(57)【要約】【課題】所定温度において、設定した通りにマニプレータを動作させることが可能か否か判定することのできるマニプレータの動作判定装置を提供する。【解決手段】複数のリンクＬ１，Ｌ２と、複数のリンクを相対回転可能に接続する関節Ｊ１，Ｊ２と、を備えるマニプレータ１０の動作可否を判定する動作判定装置２０であって、マニプレータの所定点を移動させる位置である動作点の設定時に、設定時の温度における複数のリンクの長さ及び動作点に基づいて、所定点が移動する位置である第１位置を算出する第１位置算出部と、所定温度における複数のリンクの長さに基づいて、第１位置算出部により算出された第１位置に前記所定点を移動させる時の前記関節の角度を算出する角度算出部と、角度算出部による角度の算出結果に基づいて、所定温度において第１位置に前記所定点を移動させることが可能であるか否か判定する角度判定部と、を備える。【選択図】      図１
2018103310.tif 000002
【特許請求の範囲】
【請求項１】
複数のリンクと、前記複数のリンクを相対回転可能に接続する関節と、を備えるマニプレータの動作可否を判定する動作判定装置であって、
前記マニプレータの所定点を移動させる位置である動作点の設定時に、前記設定時の温度における前記複数のリンクの長さ及び前記動作点に基づいて、前記所定点が移動する位置である第１位置を算出する第１位置算出部と、
所定温度における前記複数のリンクの長さに基づいて、前記第１位置算出部により算出された前記第１位置に前記所定点を移動させる時の前記関節の角度を算出する角度算出部と、
前記角度算出部による前記角度の算出結果に基づいて、前記所定温度において前記第１位置に前記所定点を移動させることが可能であるか否か判定する角度判定部と、
を備えるマニプレータの動作判定装置。
【請求項２】
前記角度判定部は、前記角度算出部により前記角度が算出されなかった場合、又は前記角度算出部により算出された前記角度が、前記関節により実現不可能な角度であった場合に、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定する請求項１に記載のマニプレータの動作判定装置。
【請求項３】
前記角度判定部は、前記角度算出部により算出された前記角度が、前記関節により実現可能な角度であった場合に、前記所定温度において前記第１位置に前記所定点を移動させることが可能であると判定する請求項１又は２に記載のマニプレータの動作判定装置。
【請求項４】
前記第１位置は、複数の前記動作点により規定される動作軌道上の点を含む請求項１〜３のいずれか１項に記載のマニプレータの動作判定装置。
【請求項５】
前記所定点を含むリンクと異なるリンクにおける１点が基点に設定されており、
前記動作点の設定時の温度における前記基点から前記第１位置までの距離と、前記所定温度において前記関節を完全に伸ばした状態での前記基点から前記所定点までの長さとに基づいて、前記所定温度において前記第１位置に前記所定点を移動させることが可能であるか否か判定する長さ判定部を備える請求項１〜４のいずれか１項に記載のマニプレータの動作判定装置。
【請求項６】
複数のリンクと、前記複数のリンクを相対回転可能に接続する関節と、を備えるマニプレータの動作可否を判定する動作判定装置であって、
前記マニプレータの所定点を含むリンクと異なるリンクにおける１点が基点に設定されており、
前記所定点を移動させる位置である動作点の設定時に、前記設定時の温度における前記複数のリンクの長さ及び前記動作点に基づいて、前記所定点が移動する位置である第１位置を算出する第１位置算出部と、
前記動作点の設定時の温度における前記基点から前記第１位置までの距離と、所定温度において前記関節を完全に伸ばした状態での前記基点から前記所定点までの長さとに基づいて、前記所定温度において前記第１位置に前記所定点を移動させることが可能であるか否か判定する長さ判定部と、
を備えるマニプレータの動作判定装置。
【請求項７】
前記長さ判定部は、前記動作点の設定時の温度における前記基点から前記第１位置までの距離が、前記所定温度において前記関節を完全に伸ばした状態での前記基点から前記所定点までの長さよりも長い場合に、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定する請求項５又は６に記載のマニプレータの動作判定装置。
【請求項８】
前記長さ判定部は、前記動作点の設定時の温度における前記基点から前記第１位置までの距離が、前記所定温度において前記関節を完全に伸ばした状態での前記基点から前記所定点までの長さよりも短い場合に、前記所定温度において前記第１位置に前記所定点を移動させることが可能であると判定する請求項５〜７のいずれか１項に記載のマニプレータの動作判定装置。
【請求項９】
前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であることを通知する不可通知部を備える請求項２又は７に記載のマニプレータの動作判定装置。
【請求項１０】
前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記第１位置に前記所定点を移動させることが不可能となる温度を通知する温度通知部を備える請求項２、７、９のいずれか１項に記載のマニプレータの動作判定装置。
【請求項１１】
前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記動作点の設定時に前記関節の角度を修正すべき方向を通知する角度通知部を備える請求項２、７、９、１０のいずれか１項に記載のマニプレータの動作判定装置。
【請求項１２】
前記角度通知部は、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記動作点の設定時に前記関節の角度を修正すべき量を通知する請求項１１に記載のマニプレータの動作判定装置。
【請求項１３】
前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記動作点の設定時に前記動作点の位置を修正すべき方向を通知する位置通知部を備える請求項２、７、９〜１２のいずれか１項に記載のマニプレータの動作判定装置。
【請求項１４】
前記位置通知部は、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記動作点の設定時に前記動作点の位置を修正すべき量を通知する請求項１３に記載のマニプレータの動作判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マニプレータの動作可否を判定する動作判定装置に関する。
【背景技術】
【０００２】
従来、ロボットのアーム（マニプレータ）の先端を移動させる位置である動作点を教示（設定）して、教示した動作点をアームの先端が通るように、アームを動作させるものがある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１４４８６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、動作点の教示を行った時のアームの温度と、ロボットにより作業を行う時のアームの温度とが異なることがある。その場合、教示した通りにアームを動作させることができない場合があることに、本願発明者は着目した。
【０００５】
本発明は、こうした課題を解決するためになされたものであり、所定温度において、設定した通りにマニプレータを動作させることが可能か否か判定することのできるマニプレータの動作判定装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するための第１の手段は、
複数のリンクと、前記複数のリンクを相対回転可能に接続する関節と、を備えるマニプレータの動作可否を判定する動作判定装置であって、
前記マニプレータの所定点を移動させる位置である動作点の設定時に、前記設定時の温度における前記複数のリンクの長さ及び前記動作点に基づいて、前記所定点が移動する位置である第１位置を算出する第１位置算出部と、
所定温度における前記複数のリンクの長さに基づいて、前記第１位置算出部により算出された前記第１位置に前記所定点を移動させる時の前記関節の角度を算出する角度算出部と、
前記角度算出部による前記角度の算出結果に基づいて、前記所定温度において前記第１位置に前記所定点を移動させることが可能であるか否か判定する角度判定部と、
を備える。
【０００７】
上記構成によれば、マニプレータにおいて、複数のリンクが関節により相対回転可能に接続されている。ここで、複数のリンクが相対回転することにより、リンクの温度が上昇する。リンクは温度の上昇に伴って熱膨張するため、リンクの長さは温度に応じて変化する。これに対して、マニプレータの所定点を移動させる位置である動作点の設定時に、設定時の温度における複数のリンクの長さ及び動作点に基づいて、所定点が移動する位置である第１位置が算出される。
【０００８】
しかしながら、動作点の設定時とマニプレータによる作業時とで、リンクの温度が異なると、作業時に第１位置に所定点を移動させることができないおそれがある。例えば、高温時に関節を完全に伸ばした状態で動作点を設定すると、低温時にリンクの長さが足りず、第１位置（動作点）に所定点を移動させることができない。
【０００９】
この点、角度算出部により、所定温度における複数のリンクの長さに基づいて、第１位置に所定点を移動させる時の関節の角度が算出される。所定温度において第１位置に所定点を移動させることが可能であれば、角度算出部により有効な関節の角度が算出される。一方、所定温度において第１位置に所定点を移動させることが不可能であれば、角度算出部により有効な関節の角度が算出されない。したがって、角度算出部による角度の算出結果に基づいて、所定温度において第１位置に所定点を移動させることが可能であるか否か判定することができる。その結果、所定温度において、設定した通りにマニプレータを動作させることが可能か否か判定することができる。
【００１０】
具体的には、第２の手段のように、前記角度判定部は、前記角度算出部により前記角度が算出されなかった場合、又は前記角度算出部により算出された前記角度が、前記関節により実現不可能な角度であった場合に、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定するといった構成を採用することができる。こうした構成によれば、所定温度において第１位置に所定点を移動させることが不可能であることを容易に判定することができる。
【００１１】
具体的には、第３の手段のように、前記角度判定部は、前記角度算出部により算出された前記角度が、前記関節により実現可能な角度であった場合に、前記所定温度において前記第１位置に前記所定点を移動させることが可能であると判定するといった構成を採用することができる。こうした構成によれば、所定温度において第１位置に所定点を移動させることが可能であることを容易に判定することができる。
【００１２】
第４の手段では、前記第１位置は、複数の前記動作点により規定される動作軌道上の点を含む。
【００１３】
マニプレータの所定点が楕円軌道上やスプライン軌道上を移動する場合、設定された動作点に所定点を移動させることができても、軌道上の他の点に所定点を移動させることができない場合がある。例えば、軌道において曲率が大きい部分の両脇に、関節を伸ばした状態で動作点が設定されていると、曲率が大きい部分に所定点を移動させることができない場合がある。
【００１４】
この点、上記構成によれば、第１位置は、複数の動作点により規定される動作軌道上の点を含んでいる。したがって、設定された動作点のみならず、複数の動作点により規定される動作軌道上の点に、所定温度において所定点を移動させることが可能であるか否か判定することができる。
【００１５】
第５の手段では、前記所定点を含むリンクと異なるリンクにおける１点が基点に設定されており、前記動作点の設定時の温度における前記基点から前記第１位置までの距離と、前記所定温度において前記関節を完全に伸ばした状態での前記基点から前記所定点までの長さとに基づいて、前記所定温度において前記第１位置に前記所定点を移動させることが可能であるか否か判定する長さ判定部を備える。
【００１６】
第６の手段は、複数のリンクと、前記複数のリンクを相対回転可能に接続する関節と、を備えるマニプレータの動作可否を判定する動作判定装置であって、
前記マニプレータの所定点を含むリンクと異なるリンクにおける１点が基点に設定されており、
前記所定点を移動させる位置である動作点の設定時に、前記設定時の温度における前記複数のリンクの長さ及び前記動作点に基づいて、前記所定点が移動する位置である第１位置を算出する第１位置算出部と、
前記動作点の設定時の温度における前記基点から前記第１位置までの距離と、所定温度において前記関節を完全に伸ばした状態での前記基点から前記所定点までの長さとに基づいて、前記所定温度において前記第１位置に前記所定点を移動させることが可能であるか否か判定する長さ判定部と、
を備える。
【００１７】
第５，第６の手段によれば、マニプレータの所定点を含むリンクと異なるリンクにおける１点が基点に設定されている。所定温度において所定点を移動させることができる基点から最も離れた位置は、関節を完全に伸ばした状態での所定点の位置となる。したがって、第１位置がこの位置よりも外側にある場合は、所定温度において所定点を第１位置に移動させることができない。
【００１８】
この点、動作点の設定時の温度における基点から第１位置までの距離と、所定温度において関節を完全に伸ばした状態での基点から所定点までの長さとに基づいて、所定温度において所定点を第１位置に移動させることが可能であるか否か判定される。このため、設定した通りにマニプレータを動作させることが可能か否かを、簡易な演算により高速で判定することができる。詳しくは、第１位置に対応する各関節の角度を用いて動作可否の判定を行う場合、マニプレータの姿勢を含めた演算が必要となり、その結果動作不可能と判定されると、改めて動作点を設定し直して同様の演算を繰り返し行うことになる。第1位置によっては、上記のような演算を極めて多くこなすことになる場合があり、その場合最終的には動作可能という回答が得られるにしても、それを得るためにかなりの演算時間を必要として非効率である。それに対して、上記構成のように長さ比較により動作可否の判定を行えば、1回の演算により最終的な回答に到達できるので、極めて演算時間を短縮できる。例えばロボット（マニプレータ）において、一番手間が掛かる（時間や費用の効率が悪い）のは、導入初期の教示やキャリブレーションといった必ず人手を介さないとできない段階である。本願は元々、そのタイミングで行われるものであるので、上記構成により演算時間を短縮できれば、手間の改善につながり効率的なロボット導入も可能になることから、ロボットにとっては極めて意味のあるものである。
【００１９】
具体的には、第７の手段のように、前記長さ判定部は、前記動作点の設定時の温度における前記基点から前記第１位置までの距離が、前記所定温度において前記関節を完全に伸ばした状態での前記基点から前記所定点までの長さよりも長い場合に、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定するといった構成を採用することができる。こうした構成によれば、所定温度において第１位置に所定点を移動させることが不可能であることを、簡易な演算により高速で判定することができる。
【００２０】
具体的には、第８の手段のように、前記長さ判定部は、前記動作点の設定時の温度における前記基点から前記第１位置までの距離が、前記所定温度において前記関節を完全に伸ばした状態での前記基点から前記所定点までの長さよりも短い場合に、前記所定温度において前記第１位置に前記所定点を移動させることが可能であると判定するといった構成を採用することができる。こうした構成によれば、所定温度において第１位置に所定点を移動させることが可能であることを、簡易な演算により高速で判定することができる。
【００２１】
第９の手段では、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であることを通知する。
【００２２】
上記構成によれば、所定温度において第１位置に所定点を移動させることが不可能であると判定された場合に、所定温度において第１位置に所定点を移動させることが不可能であることが通知される。このため、ユーザは、現在の動作点の設定では、所定温度において第１位置に所定点を移動させることが不可能となることを知ることができる。その結果、動作点の設定終了後に動作点の設定をやり直す必要が生じることや、マニプレータの納入後に動作不能になることを抑制することができる。
【００２３】
第１０の手段では、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記第１位置に前記所定点を移動させることが不可能となる温度を通知する温度通知部を備える。
【００２４】
上記構成によれば、所定温度において第１位置に所定点を移動させることが不可能であると判定された場合に、第１位置に所定点を移動させることが不可能となる温度が通知される。このため、ユーザは、マニプレータを使用する環境の温度やマニプレータの使用状態を考慮して、第１位置に所定点を移動させることが可能であるか否か判断することができる。
【００２５】
第１１の手段では、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記動作点の設定時に前記関節の角度を修正すべき方向を通知する角度通知部を備える。
【００２６】
上記構成によれば、所定温度において第１位置に所定点を移動させることが不可能であると判定された場合に、動作点の設定時に関節の角度を修正すべき方向が通知される。このため、ユーザは、所定温度において第１位置に所定点を移動させることを可能とするために、動作点の設定時に関節の角度を修正する方向を容易に知ることができる。
【００２７】
第１２の手段では、前記角度通知部は、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記動作点の設定時に前記関節の角度を修正すべき量を通知する。
【００２８】
上記構成によれば、所定温度において第１位置に所定点を移動させることが不可能であると判定された場合に、動作点の設定時に関節の角度を修正すべき量が通知される。このため、ユーザは、所定温度において第１位置に所定点を移動させることを可能とするために、動作点の設定時に関節の角度を修正する量を容易に知ることができる。
【００２９】
第１３の手段では、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記動作点の設定時に前記動作点の位置を修正すべき方向を通知する位置通知部を備える。
【００３０】
上記構成によれば、所定温度において第１位置に所定点を移動させることが不可能であると判定された場合に、動作点の設定時に動作点の位置を修正すべき方向が通知される。このため、ユーザは、所定温度において第１位置に所定点を移動させることを可能とするために、動作点の設定時に動作点の位置を修正する方向を容易に知ることができる。
【００３１】
第１４の手段では、前記位置通知部は、前記所定温度において前記第１位置に前記所定点を移動させることが不可能であると判定された場合に、前記動作点の設定時に前記動作点の位置を修正すべき量を通知する。
【００３２】
上記構成によれば、所定温度において第１位置に所定点を移動させることが不可能であると判定された場合に、動作点の設定時に動作点の位置を修正すべき量が通知される。このため、ユーザは、所定温度において第１位置に所定点を移動させることを可能とするために、動作点の設定時に動作点の位置を修正する量を容易に知ることができる。
【図面の簡単な説明】
【００３３】
【図１】アーム及びコントローラを示す模式図。
【図２】電源ＯＮ直後の伸び状態のアームを示す模式図。
【図３】暖機動作後の伸び状態のアームを示す模式図。
【図４】電源ＯＮ直後の曲げ状態のアームを示す模式図。
【図５】暖機動作後の曲げ状態のアームを示す模式図。
【図６】伸び状態における位置から角度への逆変換を示す模式図。
【図７】曲げ状態における位置から角度への逆変換を示す模式図。
【図８】スプライン軌道及び動作点を示す模式図。
【発明を実施するための形態】
【００３４】
（第１実施形態）
以下、垂直多関節ロボットの第２軸及び第３軸を構成する複数のリンク及び関節に具現化した第１実施形態について、図面を参照して説明する。
【００３５】
図１に示すように、アーム１０（マニプレータに相当）は、リンクＬ１，Ｌ２、及び関節Ｊ１，Ｊ２を備えている。リンクＬ１は、関節Ｊ１により回転可能に支持されている。関節Ｊ２は、リンクＬ１とリンクＬ２とを相対回転可能に接続している。関節Ｊ１，Ｊ２は、前段のリンクに固定された軸受けと、この軸受けを介して回転可能に支持された回転軸とを備えている。この回転軸は、次段のリンクに接続されており、モータ及び減速機等を備える駆動装置により回転させられる。リンクＬ１において、関節Ｊ２と反対側の端部の中心（１点）は、リンクＬ１，Ｌ２の動作の基点Ｂに設定されている。リンクＬ２において、関節Ｊ２と反対側の端部の中心は、アーム１０の位置を表す所定点Ｃに設定されている。
【００３６】
関節Ｊ１，Ｊ２には、それぞれエンコーダ１１，１２が設けられている。エンコーダ１１，１２は、それぞれの関節において回転軸の回転角度を検出する。また、エンコーダ１１，１２は、それぞれ温度センサを備えている。温度センサは、エンコーダの温度、ひいてはモータの温度を検出する。エンコーダ１１，１２により検出された各回転軸の回転角度、及び温度センサにより検出された各エンコーダの温度は、コントローラ２０へ出力される。
【００３７】
アーム１０の動作状態は、コントローラ２０により制御される。コントローラ２０（動作判定装置に相当）は、ＣＰＵ、ＲＯＭ、ＲＡＭ、入出力インターフェース等を備えるマイクロコンピュータである。コントローラ２０は、エンコーダ１１，１２及び温度センサによる検出値に基づいて、所定点Ｃを目標位置に移動させる。
【００３８】
詳しくは、コントローラ２０は、各温度センサにより検出される温度に基づいて、リンクＬ１，Ｌ２の温度を算出する。コントローラ２０は、基準温度におけるリンクＬ１，Ｌ２の長さ、基準温度とリンクＬ１，Ｌ２の温度との差、及びリンクＬ１，Ｌ２の熱膨張係数に基づいて、リンクＬ１，Ｌ２の長さを算出する。コントローラ２０は、所定点Ｃの目標位置及びリンクＬ１，Ｌ２の長さに基づいて、関節Ｊ１，Ｊ２の目標回転角度を算出する（目標位置から目標回転角度への逆変換）。そして、コントローラ２０は、エンコーダ１１，１２によりそれぞれ検出される回転角度が、関節Ｊ１，Ｊ２のそれぞれの目標回転角度になるように、関節Ｊ１，Ｊ２のモータをそれぞれフィードバック制御する。なお、コントローラ２０は、関節Ｊ１，Ｊ２の回転角度及びリンクＬ１，Ｌ２の長さに基づいて、所定点Ｃの位置を算出する（回転角度から位置への変換）。
【００３９】
ここで、図２に示すように、コントローラ２０の電源ＯＮ直後（アーム１０の暖機動作前）は、アーム１０の温度が低く、リンクＬ１，Ｌ２の長さが短くなっている。基準温度（例えば４０℃）においてリンクＬ１，Ｌ２の長さが５００．０ｍｍであるのに対して、電源ＯＮ直後（例えば２０℃）においてリンクＬ１，Ｌ２の長さが４９９．８ｍｍになっている。
【００４０】
一方、図３に示すように、アーム１０暖機動作後は、アーム１０の温度が高く、リンクＬ１，Ｌ２の長さが長くなっている。基準温度（例えば４０℃）においてリンクＬ１，Ｌ２の長さが５００．０ｍｍであるのに対して、暖機動作後（例えば６０℃）においてリンクＬ１，Ｌ２の長さが５００．２ｍｍになっている。
【００４１】
このため、図３に示す暖機動作後にアーム１０の関節Ｊ２を完全に伸ばした状態で、所定点Ｃを移動させる位置である動作点を教示（設定）すると、図２に示す電源ＯＮ直後にアーム１０の関節Ｊ２を完全に伸ばしたとしても、教示した動作点（以下、「教示点」という）に所定点Ｃを移動させることができない。この場合、コントローラ２０は、所定点Ｃの目標位置としての教示点及びリンクＬ１，Ｌ２の長さに基づいて、関節Ｊ１，Ｊ２の目標回転角度を算出しようとしても、目標回転角度を算出することができない（目標回転角度の解なし）。
【００４２】
また、図４，５に示すように、リンクＬ２がアーム１０（ロボット）の他の部分に衝突すること等を防ぐために、アーム１０の関節Ｊ２を回転させることが可能な最大の回転角度は、最大回転角度θｍａｘ（例えば９０°）となっている。このため、図４に示す電源ＯＮ直後にアーム１０の関節Ｊ２を最大限曲げた状態で、所定点Ｃの動作点を教示（設定）すると、図５に示す暖機動作後にアーム１０の関節Ｊ２を最大限曲げたとしても、教示点に所定点Ｃを移動させることができない。この場合、コントローラ２０は、教示点及びリンクＬ１，Ｌ２の長さに基づいて、関節Ｊ１，Ｊ２の目標回転角度を算出することはできる。しかしながら、算出された関節Ｊ２の目標回転角度は、関節Ｊ２の最大回転角度θｍａｘを超えた回転角度となる。すなわち、このとき算出される目標回転角度は関節Ｊ２の可動範囲を超えた回転角度となり、関節Ｊ２により実現不可能な回転角度となる。
【００４３】
なお、暖機動作の前後でアーム１０の温度が異なる場合だけでなく、ロボットの動作環境の温度が場所や季節により変化した場合や、アーム１０の動作状態（発熱状態）が変化した場合も、同様の問題が生じ得る。
【００４４】
そこで、本実施形態では、コントローラ２０（第１位置算出部に相当）は、図６（ａ）及び図７（ａ）に示すように、ユーザによる所定点Ｃの動作点の教示時に、教示時の温度（例えば６０℃）におけるリンクＬ１，Ｌ２の長さ及び教示点に基づいて、所定点Ｃが移動する位置である第１位置を算出する。各教示点に所定点Ｃを直線的に移動させる場合は、各教示点を第１位置とすればよい。
【００４５】
しかしながら、図８に示すように、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の間を、所定点Ｃがスプライン軌道Ｔ（動作軌道に相当）で移動する場合は、スプライン軌道Ｔ上において教示点ではない点Ｐ３に所定点Ｃを移動させることができない場合がある。スプライン軌道Ｔは、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５を通る滑らかな曲線として規定される。例えば、スプライン軌道Ｔにおいて点Ｐ３の付近の曲率は他の部分の曲率よりも大きくなっており、点Ｐ３の両脇に、関節Ｊ２を完全に伸ばした状態で動作点Ｐ２，Ｐ４が設定されている。この場合、点Ｐ３に所定点Ｃを移動させることができない。
【００４６】
したがって、コントローラ２０は、スプライン軌道Ｔ上の全ての点を上記第１位置とする。すなわち、第１位置は、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５により規定されるスプライン軌道Ｔ上の点Ｐ３を含んでいる。
【００４７】
コントローラ２０（角度算出部に相当）は、図６（ｂ）及び図７（ｂ）に示すように、所定温度（例えば２０℃）におけるリンクＬ１，Ｌ２の長さに基づいて、算出された第１位置に所定点Ｃを移動させる時の関節Ｊ１，Ｊ２の回転角度を算出する。詳しくは、コントローラ２０は、基準温度（例えば４０℃）におけるリンクＬ１，Ｌ２の長さ（例えば５００．０ｍｍ）、基準温度とリンクＬ１，Ｌ２の温度との差（例えば４０℃−２０℃＝２０℃）、及びリンクＬ１，Ｌ２の熱膨張係数に基づいて、２０℃でのリンクＬ１，Ｌ２の長さを算出する。そして、コントローラ２０は、第１位置及びリンクＬ１，Ｌ２の長さに基づいて、関節Ｊ１，Ｊ２の回転角度を算出する（位置から回転角度への逆変換）。
【００４８】
そして、コントローラ２０（角度判定部に相当）は、回転角度の算出結果に基づいて、所定温度において第１位置に所定点Ｃを移動させることが可能であるか否か判定する。詳しくは、図６（ｂ）に示すように、コントローラ２０は、回転角度が算出されなかった場合に、所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定する。また、図７（ｂ）に示すように、コントローラ２０は、算出された回転角度θ１２，θ２２が、それぞれ関節Ｊ１，Ｊ２により実現可能な角度であった場合に、所定温度において第１位置に所定点Ｃを移動させることが可能であると判定する。
【００４９】
さらに、所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、コントローラ２０（不可通知部に相当）は、所定温度において第１位置に所定点Ｃを移動させることが不可能であることをユーザに通知する。具体的には、コントローラ２０に接続されたモニタやティーチングペンダントにより、所定温度において第１位置に所定点Ｃを移動させることが不可能であることを表示させたり、音声で通知させたりする。
【００５０】
加えて、所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、コントローラ２０（温度通知部に相当）は、第１位置に所定点Ｃを移動させることが不可能となる温度をユーザに通知する。具体的には、コントローラ２０は、基準温度におけるリンクＬ１，Ｌ２の長さと熱膨張係数とに基づいて、算出された第１位置に所定点Ｃを移動させる時の関節Ｊ１，Ｊ２の回転角度を算出することができなくなる温度を算出する。あるいは、コントローラ２０は、基準温度におけるリンクＬ１，Ｌ２の長さと熱膨張係数とに基づいて、算出された第１位置に所定点Ｃを移動させる時の関節Ｊ１，Ｊ２の回転角度が最大回転角度θｍａｘとなる温度を算出する。そして、コントローラ２０は、算出した温度をユーザに通知する。
【００５１】
また、コントローラ２０（角度通知部に相当）は、所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、動作点の教示時に関節Ｊ１，Ｊ２の角度を修正すべき方向をユーザに通知する。具体的には、コントローラ２０は、第１位置及びリンクＬ１，Ｌ２の長さに基づいて、関節Ｊ１，Ｊ２の回転角度を算出することができなかった場合に、関節Ｊ２を曲げる方向に教示点の位置を修正すべきであることをユーザに通知する。また、コントローラ２０は、算出された関節Ｊ２の回転角度が、関節Ｊ２の最大回転角度θｍａｘを超えた回転角度であった場合に、関節Ｊ２を伸ばす方向に教示点の位置を修正すべきであることをユーザに通知する。
【００５２】
加えて、所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、コントローラ２０は、動作点の教示時に関節Ｊ１，Ｊ２の角度を修正すべき量をユーザに通知する。具体的には、コントローラ２０は、基点Ｂと所定点Ｃとの距離が所定温度におけるリンクＬ１，Ｌ２の長さの合計になる回転角度と第１位置での回転角度との差を、関節Ｊ２の角度を修正すべき量としてユーザに通知する。また、コントローラ２０は、算出された関節Ｊ２の回転角度と最大回転角度θｍａｘとの差を、関節Ｊ２の角度を修正すべき量としてユーザに通知する。
【００５３】
また、所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、コントローラ２０（位置通知部に相当）は、動作点の教示時に教示点の位置を修正すべき方向をユーザに通知する。具体的には、コントローラ２０は、第１位置及びリンクＬ１，Ｌ２の長さに基づいて、関節Ｊ１，Ｊ２の回転角度を算出することができなかった場合に、基点Ｂに近付ける方向に教示点の位置を修正すべきであることをユーザに通知する。また、コントローラ２０は、算出された関節Ｊ２の回転角度が、関節Ｊ２の最大回転角度θｍａｘを超えた回転角度であった場合に、基点Ｂから遠ざける方向に教示点の位置を修正すべきであることをユーザに通知する。
【００５４】
加えて、所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、コントローラ２０は、動作点の教示時に教示点の位置を修正すべき量をユーザに通知する。具体的には、コントローラ２０は、基点Ｂと所定点Ｃとの距離が所定温度におけるリンクＬ１，Ｌ２の長さの合計になる回転角度を変換して算出した位置と第１位置との差を、教示点の位置を修正すべき量としてユーザに通知する。また、コントローラ２０は、算出された関節Ｊ２の回転角度を変換して算出した位置と最大回転角度θｍａｘを変換して算出した位置との差を、教示点の位置を修正すべき量としてユーザに通知する。
【００５５】
以上詳述した本実施形態は、以下の利点を有する。
【００５６】
・角度算出部により、所定温度における複数のリンクＬ１，Ｌ２の長さに基づいて、第１位置に所定点Ｃを移動させる時の関節Ｊ１，Ｊ２の回転角度が算出される。所定温度において第１位置に所定点Ｃを移動させることが可能であれば、角度算出部により有効な関節Ｊ１，Ｊ２の回転角度が算出される。一方、所定温度において第１位置に所定点Ｃを移動させることが不可能であれば、角度算出部により有効な関節Ｊ１，Ｊ２の回転角度が算出されない。したがって、角度算出部による回転角度の算出結果に基づいて、所定温度において第１位置に所定点Ｃを移動させることが可能であるか否か判定することができる。その結果、所定温度において、設定した通りにアーム１０を動作させることが可能か否か判定することができる。
【００５７】
・角度判定部は、角度算出部により回転角度が算出されなかった場合、又は角度算出部により算出された回転角度が、関節Ｊ１，Ｊ２により実現不可能な角度であった場合に、所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定する。こうした構成によれば、所定温度において第１位置に所定点Ｃを移動させることが不可能であることを容易に判定することができる。
【００５８】
・回転角度判定部は、回転角度算出部により算出された回転角度θ１２，θ２２が、関節Ｊ１，Ｊ２により実現可能な角度であった場合に、所定温度において第１位置に所定点Ｃを移動させることが可能であると判定する。こうした構成によれば、所定温度において第１位置に所定点Ｃを移動させることが可能であることを容易に判定することができる。
【００５９】
・第１位置は、複数の動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５により規定されるスプライン軌道Ｔ上の点Ｐ３を含んでいる。したがって、設定された動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５のみならず、複数の動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５により規定されるスプライン軌道Ｔ上の点Ｐ３に、所定温度において所定点Ｃを移動させることが可能であるか否か判定することができる。以下、図８を例にして、本実施形態の利点を説明する。
【００６０】
・所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、所定温度において第１位置に所定点Ｃを移動させることが不可能であることが通知される。このため、ユーザは、現在の動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５では、所定温度において点Ｐ３（第１位置）に所定点Ｃを移動させることが不可能となることを知ることができる。その結果、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示終了後に動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示をやり直す必要が生じることや、ロボットの納入後に動作不能になることを抑制することができる。
【００６１】
・所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、第１位置に所定点Ｃを移動させることが不可能となる温度が通知される。このため、ユーザは、アーム１０を使用する環境の温度やアーム１０の使用状態を考慮して、第１位置に所定点Ｃを移動させることが可能であるか否か判断することができる。
【００６２】
・所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示時に関節Ｊ１，Ｊ２の角度を修正すべき方向が通知される。このため、ユーザは、所定温度において点Ｐ３に所定点Ｃを移動させることを可能とするために、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示時に関節Ｊ１，Ｊ２の角度を修正する方向を容易に知ることができる。
【００６３】
・所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示時に関節Ｊ１，Ｊ２の角度を修正すべき量が通知される。このため、ユーザは、所定温度において点Ｐ３に所定点Ｃを移動させることを可能とするために、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示時に関節Ｊ１，Ｊ２の角度を修正する量を容易に知ることができる。
【００６４】
・所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示時に動作点Ｐ２，Ｐ４の位置を修正すべき方向が通知される。このため、ユーザは、所定温度において点Ｐ３に所定点Ｃを移動させることを可能とするために、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示時に動作点Ｐ２，Ｐ４の位置を修正する方向を容易に知ることができる。
【００６５】
・所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定された場合に、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示時に動作点Ｐ２，Ｐ４の位置を修正すべき量が通知される。このため、ユーザは、所定温度において点Ｐ３に所定点Ｃを移動させることを可能とするために、動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示時に動作点Ｐ２，Ｐ４の位置を修正する量を容易に知ることができる。
【００６６】
なお、第１実施形態を、以下のように変更して実施することもできる。
【００６７】
・上記の各通知のうち少なくとも一部を省略してもよい。
【００６８】
・ユーザによる動作点Ｐ１，Ｐ２，Ｐ４，Ｐ５の教示時に限らず、シミュレーションによるアーム１０の動作確認時に、第１位置に所定点Ｃを移動させることが可能であるか否か判定してもよい。その場合、コントローラ２０は、シミュレーションにおいて、設定した温度におけるリンクＬ１，Ｌ２の長さ、及び設定した動作点に基づいて、所定点Ｃが移動する位置である第１位置を算出し、作業時を想定した所定温度におけるリンクＬ１，Ｌ２の長さに基づいて、第１位置に所定点Ｃを移動させる時の関節Ｊ１，Ｊ２の回転角度を算出し、算出した回転角度に基づいて、所定温度において第１位置に所定点Ｃを移動させることが可能であるか否か判定すればよい。
【００６９】
（第２実施形態）
以下、所定温度において第１位置に所定点Ｃを移動させることが可能であるか否か判定する構成を変更した第２実施形態について、第１実施形態との相違点を中心に説明する。なお、第１実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【００７０】
図２に示すように、所定温度（例えば２０℃）において所定点Ｃを移動させることができる基点Ｂから最も離れた位置は、関節Ｊ２を完全に伸ばした状態での所定点Ｃの位置となる。したがって、図３に示すように、動作点の教示時（例えば６０℃）に算出した第１位置がこの位置よりも外側にある場合は、所定温度において所定点Ｃを第１位置に移動させることができない。
【００７１】
そこで、本実施形態では、コントローラ２０（長さ判定部に相当）は、動作点の教示時の温度における基点Ｂから第１位置までの距離と、所定温度において関節Ｊ２を完全に伸ばした状態での基点Ｂから所定点Ｃまでの長さとに基づいて、所定温度において第１位置に所定点Ｃを移動させることが可能であるか否か判定する。
【００７２】
詳しくは、コントローラ２０は、動作点の教示時の温度における基点Ｂから第１位置までの距離が、所定温度において関節Ｊ２を完全に伸ばした状態での基点Ｂから所定点Ｃまでの長さよりも長い場合に、所定温度において第１位置に所定点Ｃを移動させることが不可能であると判定する。また、コントローラ２０は、動作点の教示時の温度における基点Ｂから第１位置までの距離が、所定温度において関節Ｊ２を完全に伸ばした状態での基点Ｂから所定点Ｃまでの長さよりも短い場合に、所定温度において第１位置に所定点Ｃを移動させることが可能であると判定する。
【００７３】
本実施形態は、以下の利点を有する。
【００７４】
・動作点の教示時の温度における基点Ｂから第１位置までの距離と、所定温度において関節Ｊ２を完全に伸ばした状態での基点Ｂから所定点Ｃまでの長さとに基づいて、所定温度において所定点Ｃを第１位置に移動させることが可能であるか否か判定される。このため、教示した通りにアーム１０を動作させることが可能か否かを、簡易な演算により高速で判定することができる。
【００７５】
・所定温度において第１位置に所定点Ｃを移動させることが不可能であることを、簡易な演算により高速で判定することができる。
【００７６】
・所定温度において第１位置に所定点Ｃを移動させることが可能であることを、簡易な演算により高速で判定することができる。
【００７７】
なお、第２実施形態を、以下のように変更して実施することもできる。
【００７８】
・所定温度において第１位置に所定点Ｃを移動させることが不可能であることの通知、及び所定温度において第１位置に所定点Ｃを移動させることが可能であることの通知の一方のみを行ってもよい。
【００７９】
・ユーザによる動作点の教示時に限らず、シミュレーションによるアーム１０の動作確認時に、第１位置に所定点Ｃを移動させることが可能であるか否か判定してもよい。その場合、コントローラ２０は、シミュレーションにおいて、設定した温度におけるリンクＬ１，Ｌ２の長さ、及び設定した動作点に基づいて、所定点Ｃが移動する位置である第１位置を算出し、設定した温度における基点Ｂから第１位置までの距離と、作業時を想定した所定温度において関節Ｊ２を完全に伸ばした状態での基点Ｂから所定点Ｃまでの長さとに基づいて、所定温度において第１位置に所定点Ｃを移動させることが可能であるか否か判定すればよい。
【００８０】
また、第１及び第２実施形態を、以下のように変更して実施することもできる。
【００８１】
・コントローラ２０は、第１実施形態によるアーム１０の動作可否の判定、及び第２実施形態によるアーム１０の動作可否の判定の双方を実行してもよいし、一方のみを実行してもよい。
【００８２】
・基点Ｂは、リンクＬ１において、関節Ｊ２と反対側の端部の中心（１点）に限らず、関節Ｊ１と関節Ｊ２との間に設定することもできる。
【００８３】
・アーム１０の動作可否を判定する温度である所定温度は、アーム１０を動作させる環境の温度やアーム１０の動作状態（発熱状態）に応じて、任意に設定することができる。
【００８４】
・各温度におけるリンクＬ１，Ｌ２の長さを予め算出して記憶しておき、コントローラ２０は、動作点の設定時の温度や所定温度に応じて、記憶されたリンクＬ１，Ｌ２の長さを読み込んで用いてもよい。
【００８５】
・教示点にアーム１０の所定点Ｃを移動させる動作とは別に、教示点から所定方向へ所定距離だけ所定点Ｃを移動させる動作をアーム１０に実行させる場合がある。この場合、教示点から所定方向へ所定距離の位置を、所定点Ｃが移動する位置である第１位置に含めればよい。
【００８６】
・垂直多関節ロボットの第２軸及び第３軸を構成するリンクＬ１，Ｌ２及び関節Ｊ１，Ｊ２に限らず、水平多関節ロボットの第１軸及び第２軸を構成する複数のリンク及び関節に具現化することもできる。さらに、ロボットのアーム１０に限らず、複数のリンクと、複数のリンクを相対回転可能に接続する関節と、を備えるマニプレータに具現化することもできる。また、リンクの数は２つに限らず、３つ以上であっても、同様の考え方によりマニプレータの動作可否を判定することができる。
【符号の説明】
【００８７】
１０…アーム（マニプレータ）、２０…コントローラ（動作判定装置）、Ｊ１…関節、Ｊ２…関節、Ｌ１…リンク、Ｌ２…リンク。
【図１】
2018103310.tif 000003
【図２】
2018103310.tif 000004
【図３】
2018103310.tif 000005
【図４】
2018103310.tif 000006
【図５】
2018103310.tif 000007
【図６】
2018103310.tif 000008
【図７】
2018103310.tif 000009
【図８】
2018103310.tif 000010