(57)【要約】  【課題】ロボットの移動経路をより精度よく評価する。  【解決手段】経路探索方法は、ロボットの可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成し、前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出し、前記第二の移動経路のうち前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する。【選択図】図２
2014087875.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成ステップと、
前記生成ステップで生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出ステップと、
前記第二の移動経路のうち前記算出ステップで算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新ステップと、を含む、
ことを特徴とする経路探索方法。
【請求項２】
請求項１に記載の経路探索方法であって、
前記可動部は、冗長自由度を有する、
ことを特徴とする経路探索方法。
【請求項３】
請求項２に記載の経路探索方法であって、
前記可動部は、少なくとも７つの軸を有する、
ことを特徴とする経路探索方法。
【請求項４】
請求項１〜３いずれか一項に記載の経路探索方法であって、
前記算出ステップは、
前記第二の移動経路を構成するノードにおけるジョイント位置の、前記ノード間の変化量に基づいて、第一のスコアを算出し、
前記第二の移動経路を構成するノードにおけるジョイント角度の、前記ノード間の変化量に基づいて、第二のスコアを算出し、
前記第一のスコア及び前記第二のスコアに基づいて、前記評価値を算出する、
ことを特徴とする経路探索方法。
【請求項５】
請求項４に記載の経路探索方法であって、
前記評価値、又は、前記評価値と前記第一のスコア及び前記第二のスコアを表示する表示ステップを含む、
ことを特徴とする経路探索方法。
【請求項６】
請求項５に記載の経路探索方法であって、
前記ノードにおけるジョイント角度及びジョイント位置を変更するユーザーの操作を受け付ける受付ステップを含み、
前記生成ステップは、前記受付ステップで受け付けた前記ユーザーの操作に基づいて、前記第二の移動経路を生成する、
ことを特徴とする経路探索方法。
【請求項７】
請求項４〜６いずれか一項に記載の経路探索方法であって、
前記算出ステップは、前記第一のスコアと、前記第一のスコアに関する第一の重み値と、前記第二のスコアと、前記第二のスコアに関する第二の重み値とに基づいて、前記評価値を算出する、
ことを特徴とする経路探索方法。
【請求項８】
請求項７に記載の経路探索方法であって、
前記算出ステップは、前記可動部の移動量を小さくする場合は、前記第一の重み値を増加させ、前記ロボットの消費電力量を小さくする場合は、前記第二の重み値を増加させる、
ことを特徴とする経路探索方法。
【請求項９】
ロボットの可動部の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、評価値を算出する、
ことを特徴とする経路評価方法。
【請求項１０】
ロボットの可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成部と、
前記生成部で生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出部と、
前記第二の移動経路のうち前記算出部で算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新部と、を有する、
ことを特徴とする経路探索装置。
【請求項１１】
可動部を有するロボットを制御する制御装置であって、
前記可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成部と、
前記生成部で生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出部と、
前記第二の移動経路のうち前記算出部で算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新部と、
前記更新部で更新された前記第一の移動経路を前記ロボットに出力する出力部と、を有する、
ことを特徴とする制御装置。
【請求項１２】
可動部と、
前記可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成部と、
前記生成部で生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出部と、
前記第二の移動経路のうち前記算出部で算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新部と、
前記更新部で更新された前記第一の移動経路に基づいて前記可動部の動作を制御する制御部と、を有する、
ことを特徴とするロボット。
【請求項１３】
ロボットの可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成部と、
前記生成部で生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出部と、
前記第二の移動経路のうち前記算出部で算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新部として、コンピューターを機能させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路探索方法、経路評価方法、経路探索装置、制御装置、ロボット、及び、プログラムに関する。
【背景技術】
【０００２】
特許文献１には、ロボットの関節の作動により移動する移動部の複数の候補経路のそれぞれを、前記移動部の作業空間における移動量により評価し、前記複数の候補経路から一つの移動経路を選定する経路作成方法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２６９０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ロボットの移動部の移動経路を作業空間における移動量で評価するのは十分でない。例えば、７軸などの自由度が多い、すなわち冗長自由度があるロボットアームでは、アームの先端部の位置を動かさずにアームの一部を回転させるなどの冗長な動作が可能である。このような冗長な動作は先端部の位置が変化しないため、移動量による評価を用いた場合、評価値が変化しない。そのため、このような冗長な動作を考慮して移動経路を評価することができない。結果として、所望の条件を満たす移動経路を精度よく見つけることができない。
【０００５】
そこで、本発明は、ロボットの移動経路をより精度よく評価することを目的とする。
【課題を解決するための手段】
【０００６】
本願は、上記課題を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
【０００７】
上記の課題を解決する本発明の第一の態様は、ロボットの可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成ステップと、前記生成ステップで生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出ステップと、前記第二の移動経路のうち前記算出ステップで算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新ステップと、を含む、ことを特徴とする経路探索方法である。この態様によれば、ジョイントの角度及び位置の変化量に基づいて経路の評価値が算出されるため、ロボットの移動経路をより精度よく評価し、目的により適した経路を選択することができる。
【０００８】
ここで、前記可動部は、冗長自由度を有する、ことを特徴としていてもよい。このようにすれば、冗長自由度を有する可動部の冗長な動作を含む経路であっても、より精度よく評価することができる。
【０００９】
また、前記可動部は、少なくとも７つの軸を有する、ことを特徴としていてもよい。このようにすれば、冗長自由度を有する少なくとも７つの軸の可動部の冗長な動作を含む経路であっても、より精度よく評価することができる。
【００１０】
また、前記算出ステップは、前記第二の移動経路を構成するノードにおけるジョイント位置の、前記ノード間の変化量に基づいて、第一のスコアを算出し、前記第二の移動経路を構成するノードにおけるジョイント角度の、前記ノード間の変化量に基づいて、第二のスコアを算出し、前記第一のスコア及び前記第二のスコアに基づいて、前記評価値を算出する、ことを特徴としていてもよい。このようにすれば、位置に関するスコアと角度に関するスコアを個別に算出してから総合的な評価値を算出するため、簡単な手順で評価値を算出することができる。
【００１１】
また、上記の経路探索方法は、前記評価値、又は、前記評価値と前記第一のスコア及び前記第二のスコアを表示する表示ステップを含む、ことを特徴としていてもよい。このようにすれば、ユーザーは、経路の評価値を確認し、経路を検討することができる。さらに、前記第一のスコア及び前記第二のスコアを確認し、詳細に経路を検討することができる。
【００１２】
また、上記の経路探索方法は、前記ノードにおけるジョイント角度及びジョイント位置を変更するユーザーの操作を受け付ける受付ステップを含み、前記生成ステップは、前記受付ステップで受け付けた前記ユーザーの操作に基づいて、前記第二の移動経路を生成する、ことを特徴としていてもよい。このようにすれば、ユーザーは、評価値を確認しながら様々な候補経路を試すことができ、所望の条件を満たす経路をより精度よくしかも簡単に見つけることができる。
【００１３】
また、前記算出ステップは、前記第一のスコアと、前記第一のスコアに関する第一の重み値と、前記第二のスコアと、前記第二のスコアに関する第二の重み値とに基づいて、前記評価値を算出する、ことを特徴としていてもよい。このようにすれば、重み値の設定によって様々な観点での評価を行うことができる。
【００１４】
また、前記算出ステップは、前記可動部の移動量を小さくする場合は、前記第一の重み値を増加させ、前記ロボットの消費電力量を小さくする場合は、前記第二の重み値を増加させる、ことを特徴としていてもよい。このようにすれば、移動量や消費電力量の観点での評価を行うことができる。
【００１５】
上記の課題を解決する本発明の第二の態様は、ロボットの可動部の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する、ことを特徴とする経路評価方法である。この態様によれば、ジョイントの角度及び位置の変化量に基づいて経路の評価値が算出されるため、ロボットの移動経路をより精度よく評価することができる。
【００１６】
上記の課題を解決する本発明の第三の態様は、ロボットの可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成部と、前記生成部で生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出部と、前記第二の移動経路のうち前記算出部で算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新部と、を有する、ことを特徴とする経路探索装置である。この態様によれば、ジョイントの角度及び位置の変化量に基づいて経路の評価値が算出されるため、ロボットの移動経路をより精度よく評価し、目的により適した経路を選択することができる。
【００１７】
上記の課題を解決する本発明の第四の態様は、可動部を有するロボットを制御する制御装置であって、前記可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成部と、前記生成部で生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出部と、前記第二の移動経路のうち前記算出部で算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新部と、前記更新部で更新された前記第一の移動経路を前記ロボットに出力する出力部と、を有する、ことを特徴とする制御装置である。この態様によれば、ジョイントの角度及び位置の変化量に基づいて経路の評価値が算出されるため、ロボットの移動経路をより精度よく評価し、目的により適した経路を選択することができる。
【００１８】
上記の課題を解決する本発明の第五の態様は、可動部と、前記可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成部と、前記生成部で生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出部と、前記第二の移動経路のうち前記算出部で算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新部と、前記更新部で更新された前記第一の移動経路に基づいて前記可動部の動作を制御する制御部と、を有する、ことを特徴とするロボットである。この態様によれば、ジョイントの角度及び位置の変化量に基づいて経路の評価値が算出されるため、ロボットの移動経路をより精度よく評価し、目的により適した経路を選択することができる。
【００１９】
上記の課題を解決する本発明の第六の態様は、ロボットの可動部の第一の移動経路を構成するノードにおける前記可動部のジョイント角度及びジョイント位置を所定範囲内で変更して、一以上の第二の移動経路を生成する生成部と、前記生成部で生成される前記第二の移動経路ごとに、当該第二の移動経路を構成するノードにおける前記可動部のジョイント位置及びジョイント角度の、前記ノード間の変化量に基づいて、前記変化量が大きくなるほど値が大きくなる評価値を算出する算出部と、前記第二の移動経路のうち前記算出部で算出された前記評価値が最も小さい移動経路で、前記第一の移動経路を更新する更新部として、コンピューターを機能させる、ことを特徴とするプログラムである。この態様によれば、ジョイントの角度及び位置の変化量に基づいて経路の評価値が算出されるため、ロボットの移動経路をより精度よく評価し、目的により適した経路を選択することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第一実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボットシステム１の機能構成の一例を示す図である。
【図３】経路探索処理の流れの一例を示すフロー図である。
【図４】経路の一例を説明する図である。
【図５】経路の位置評価値の算出方法を説明する図である。
【図６】経路の角度評価値の算出方法を説明する図である。
【図７】コンピューター３０のハードウェア構成の一例を示す図である。
【図８】本発明の第二実施形態に係る経路探索処理の流れの一例を示すフロー図である。
【図９】経路の編集及び評価値の表示を行う経路編集画面５００の一例を示す図である。
【発明を実施するための形態】
【００２１】
本発明の第一実施形態について、図面を参照して説明する。
【００２２】
図１は、本実施形態に係るロボットシステム１の構成の一例を示す図である。本図に示すように、ロボットシステム１は、主として、制御装置１０と、ロボット２０とを備える。
【００２３】
制御装置１０は、ロボット２０の全体を制御する。制御装置１０は、例えば、経路情報や制御命令を生成し、ロボット２０に出力する。
【００２４】
ロボット２０は、リンク２２と、ジョイント２３と、を含むアーム部２１を備える。アーム部２１は、例えば、７軸又は８軸以上の自由度が多いアーム、すなわち、冗長自由度があるアームとすることができる。なお、冗長自由度があるアームでは、アームの先端部の位置を動かさずにアームの一部を回転させるなどの冗長な動作が可能である。また、ロボット２０は、アーム部２１の先端部に、対象物（「ワーク」ともいう）を把持したり、道具を把持して対象物に対して所定の作業を行ったりすることが可能なハンド２４を備える。以下、アーム部２１及びハンド２４を可動部２２０（図２参照）という。
【００２５】
ジョイント２３及びハンド２４には、それらを動作させるためのアクチュエーター（不図示）が設けられている。アクチュエーターは、例えば、サーボモーターやエンコーダー等を備える。
【００２６】
ロボット２０は、制御装置１０から与えられる経路情報や制御命令などに従って、各ジョイント２３を連動させて駆動することにより、アーム部２１の先端部の位置を自在に（ただし、所定の可動範囲内で）移動させることができるとともに、自由な方向へ（ただし、所定の可動範囲内で）向けることもできる。
【００２７】
なお、上記のロボット２０の構成は、上記の構成に限られない。また、一般的なロボットが備える構成を排除するものではない。例えば、ジョイントの数（「軸数」ともいう）やリンクの数を増減させてもよい。また、ジョイント、リンク、ハンド等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。
【００２８】
上記のロボットシステム１の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、一般的なロボットシステムが備える構成を排除するものではない。例えば、制御装置１０は、ロボット２０に含まれていてもよい。また、例えば、対象物や作業領域の画像情報を生成するカメラなどの撮影装置を備えていてもよい。撮影装置は、例えば、制御装置１０又はロボット２０に接続されるようにしてもよいし、内蔵されるようにしてもよい。
【００２９】
図２は、ロボットシステム１の機能構成の一例を示す図である。
【００３０】
ロボット２０は、主として、可動部２２０と、制御装置１０から与えられる経路情報や制御命令に従って可動部２２０を制御する動作制御部２１０を備える。
【００３１】
制御装置１０は、主として、経路設定部１１０と、経路更新部１２０と、出力部１５０とを備える。また、経路更新部１２０は、ジョイント角度変更部１３０と、評価値算出部１４０とを備える。
【００３２】
経路設定部１１０は、可動部２２０の初期値としての移動経路（以下、「初期移動経路」ともいう）を設定する。本実施形態の移動経路の経路情報には、例えば、開始点、中継点、及び終了点の情報が含まれる。なお、「点」は、「ノード」と呼んでもよい。各点の情報には、当該点における各ジョイントの位置、各ジョイントの角度、ハンドの先端部等に設定された注目点の位置、などのパラメーター情報が含まれる。
【００３３】
なお、初期移動経路の設定方法は、既存の技術により実現可能であるため詳細な説明は省略する。例えば、外部の装置から初期移動経路の経路情報の入力を受け付けてもよいし、開始点や終了点の情報を受け付けてこれらの情報に基づいて経路設定部１１０が探索するようにしてもよい。
【００３４】
経路更新部１２０は、経路設定部１１０により設定された可動部２２０の初期移動経路の経路情報に含まれる中継点におけるパラメーターの値を変更した候補経路の経路情報を生成する処理を、ジョイント角度変更部１３０により行う。また、初期移動経路及び各候補経路の評価値を算出する処理を、評価値算出部１４０により行う。また、評価値が所定の条件を満たす経路を選択し、初期移動経路を更新する処理を行う。経路の選択処理については後に詳細に説明する。
【００３５】
ジョイント角度変更部１３０は、可動部２２０の初期移動経路の経路情報に含まれる中継点を選択し、当該選択した中継点においてジョイントを選択し、当該選択したジョイントのジョイント角度を変更する。
【００３６】
中継点の選択方法、ジョイントの選択方法、ジョイント角度の変更方法は、特に限定されない。例えば、中継点は、開始点から近い順に経路を辿って選択したり、ランダムに選択したりすることができる。例えば、ある中継点におけるジョイントは、ハンドから最も遠い側のジョイントから順に選択したり、ランダムに選択したりすることができる。例えば、ジョイント角度は、当該ジョイントの可動範囲内で、所定の回転方向又はランダムに選択した回転方向に、所定の角度ずつ変更するようにすることができる。
【００３７】
なお、ジョイント角度変更部１３０は、ジョイント角度の変更に伴って、当該ジョイントの動作に関連して動作させるべき当該ジョイントの位置、他のジョイントやハンドの位置や角度も変更するものとする。また、ジョイント角度変更部１３０は、可動部２２０が障害物に衝突しないように衝突判定を行いながらジョイント角度の変更を行うようにしてもよい。
【００３８】
評価値算出部１４０は、初期移動経路及び候補経路の評価値を算出する。本実施形態では、評価値算出部１４０は、評価値算出対象の経路の経路情報に含まれる開始点、中継点、及び終了点の各点の間の、対応するジョイントの位置及び角度の変化量を求め、当該変化量に基づいて当該経路の評価値を算出する。評価値の算出処理については後に詳細に説明する。
【００３９】
出力部１５０は、経路更新部１２０により更新された移動経路の経路情報を、ロボット２０に出力する。
【００４０】
上述した制御装置１０は、例えば、図７（コンピューター３０のハードウェア構成の一例を示す図）に示すような、ＣＰＵ（Central Processing Unit）３１０と、メモリー３２０と、ＨＤＤ（Hard Disk Drive）等の補助記憶装置３３０と、有線又は無線により通信ネットワークやロボットに接続するための通信インターフェイス（Ｉ／Ｆ）３４０と、マウス、キーボード、タッチセンサーやタッチパネルなどの入力装置３５０と、液晶ディスプレイなどの出力装置３６０と、ＤＶＤ（Digital Versatile Disk）などの持ち運び可能な記憶媒体に対する情報の読み書きを行うメディアＩ／Ｆ３７０と、を備えるコンピューター３０で実現できる。
【００４１】
例えば、経路設定部１１０、経路更新部１２０、及び出力部１５０は、補助記憶装置３３０に記憶されている所定のプログラムをメモリー３２０にロードしてＣＰＵ３１０で実行することで実現可能である。制御装置１０とロボット２０の通信は、例えば、ＣＰＵ３１０が通信Ｉ／Ｆ３４０を利用することで実現可能である。なお、上記の所定のプログラムは、例えば、通信Ｉ／Ｆ３４０を介してネットワーク上からダウンロードされてもよいし、メディアＩ／Ｆ３７０に接続された記憶媒体からロードされてもよい。
【００４２】
上記の機能構成は、ロボットシステム１の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。ロボットシステム１の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００４３】
例えば、制御装置１０の少なくとも一部の機能は、ロボット２０に含まれるようにしてもよい。また、例えば、制御装置１０は、外部の経路探索装置から入力される経路情報に基づいてロボット２０を制御する装置として構成し、当該制御装置１０に経路情報を出力する前記経路探索装置が、上述の経路設定部、経路更新部の機能を備えるように構成してもよい。
【００４４】
次に、上記の制御装置１０の特徴的な処理について説明する。
【００４５】
図３は、経路探索処理の流れの一例を示すフロー図である。本フローの開始の事前に、経路設定部１１０により初期移動経路の設定がされているものとする。図４は、経路の一例を説明する図である。図５は、経路の位置評価値の算出方法を説明する図である。図６は、経路の角度評価値の算出方法を説明する図である。
【００４６】
説明を分かり易くするため、図４〜６では、２次元平面でのアーム及びハンドの位置及び向き（姿勢）の変化を、経路として説明する。もちろん、本実施形態は、３次元空間でのアーム及びハンドの位置及び向き（姿勢）の変化である経路に適用できるのは明らかである。また、図４〜６の例では、経路は、開始点Ｓ（点Ｎ０、姿勢Ｎ０）、中継点Ｎ１（点Ｎ１、姿勢Ｎ１）、終了点Ｇ（点Ｎ２、姿勢Ｎ２）から構成されている。また、アーム及びハンドは、ジョイントＪ１〜Ｊ４を有する。なお、本実施形態では、ハンドに設定された所定の注目点をジョイントＪ４として扱う。
【００４７】
図３のフローが開始されると、評価値算出部１４０は、経路設定部１１０に設定されている初期移動経路について、位置とジョイント角度に基づいて総合評価値を算出する（ステップＳ１）。
【００４８】
ここで、本実施形態では、評価値算出部１４０は、総合評価値として、例えば、下記の式（１）で示される総合評価値Ｔｓｃｏｒｅを算出する。
【００４９】
【数１】
2014087875.tif 000003
【００５０】
Ｐｓｃｏｒｅ：位置評価値（第一のスコア）
ｐ：Ｐｓｃｏｒｅの重み値
Ａｓｃｏｒｅ：角度評価値（第二のスコア）
ｑ：Ａｓｃｏｒｅの重み値
【００５１】
ｐ及びｑの値は、予め所定の値（例えば、基準値＝１）に設定される。もちろん、評価値算出部１４０は、入力装置３５０や通信Ｉ／Ｆ３４０を介したユーザーの操作を受け付けて、ｐ及びｑの値を変更してもよい。具体的には、ｐ及びｑの組み合わせを、複数パターン用意しておき、ユーザーにパターンを選択させる。例えば、可動部の移動量をなるべく小さくするという観点での評価に使用するパターンは、ｐを基準値よりも大きくし、かつ、ｑを基準値と同じ又はそれ以下とする。また、例えば、可動部の消費電力をなるべく少なくするという観点での評価に使用するパターンでは、ｑを基準値よりも大きくし、かつ、ｐを基準値と同じ又はそれ以下とする。なお、ｐ及びｑの値をユーザーが直接設定できるようにしてもよい。重み値により、様々な観点での評価を行うことができる。
【００５２】
上記の位置評価値Ｐｓｃｏｒｅは、下記の式（２）で算出する。
【００５３】
【数２】
2014087875.tif 000004
【００５４】
Ｊ：ジョイントの総数（ロボットの自由度、ハンドを除く）
ｊ：ジョイントの番号（ｊ＝１〜Ｊ＋１、ｊ＝Ｊ＋１はハンドを示す）
Ｎ：経路中の中継点の総数（開始点Ｓ、終了点Ｇを除く）
ｔ：点の番号（ｔ＝０は開始点Ｓ、ｔ＝１〜Ｎは中継点、ｔ＝Ｎ＋１は終了点Ｇを示す）
Ｐｊｔ：点ｔにおけるジョイントｊの位置（座標値）
ΔＰｊａ＞＞ｂ：点ａから点ｂへのジョイントｊの移動距離（ＰｊａとＰｊｂの直線距離の絶対値）
【００５５】
式（２）により、ジョイントごとに、各点とその次の点（開始点とその次の中継点、中継点とその次の中継点、中継点とその次の終了点）との間の当該ジョイントの移動距離の総和が求められ、その総和から、開始点と終了点との間（開始点から終了点の間の中継点を考慮しない）の当該ジョイントの移動距離を差し引いた値（ジョイントの位置評価値）が求められる。また、各ジョイントの位置評価値の総和（経路の位置評価値Ｐｓｃｏｒｅ）が求められる。
【００５６】
例えば、図５では、各点（点Ｎ０〜Ｎ２）におけるジョイントＪ３の位置（Ｐ３０、Ｐ３１、Ｐ３２）が示されている。ジョイントの位置は、例えば、ジョイントに設定された所定の注目点のｘｙ座標である。すると、ジョイントＪ３の位置評価値は、ΔＰ３０＞＞１＋ΔＰ３１＞＞２−ΔＰ３０＞＞２となる。同様に、ジョイントＪ１、ジョイントＪ２、ジョイントＪ４（ハンド）についても位置評価値を求めることできる。従って、図４〜６の経路の位置評価値Ｐｓｃｏｒｅは、次の式（３）のように表される。
【００５７】
【数３】
2014087875.tif 000005
【００５８】
上記の角度評価値Ａｓｃｏｒｅは、下記の式（４）で算出する。
【００５９】
【数４】
2014087875.tif 000006
【００６０】
Ａｊｔ：点ｔにおけるジョイントｊの角度
ΔＡｊａ＞＞ｂ：点ａから点ｂへのジョイントｊの回転角度（ＡｊａとＡｊｂの角度の差分絶対値）
【００６１】
式（４）により、ジョイントごとに、各点とその次の点（開始点とその次の中継点、中継点とその次の中継点、中継点とその次の終了点）との間の当該ジョイントの回転角度の総和が求められ、その総和から、開始点と終了点との間（開始点から終了点の間の中継点を考慮しない）の当該ジョイントの回転角度を差し引いた値（ジョイントの角度評価値）が求められる。また、各ジョイントの角度評価値の総和（経路の角度評価値Ａｓｃｏｒｅ）が求められる。
【００６２】
例えば、図６では、各点（点Ｎ０〜Ｎ２）におけるジョイントＪ２の角度（Ａ２０、Ａ２１、Ａ２２）が示されている。ジョイントの角度は、例えば、当該ジョイントの基準角度（例えば、０度）からの回転角度（回転方向は、＋、−で表す。）である。すると、ジョイントＪ２の角度評価値は、ΔＡ２０＞＞１＋ΔＡ２１＞＞２−ΔＡ２０＞＞２となる。本図の場合、Ａ２０＝Ａ２２であるため、ΔＡ２０＞＞２は０である。同様に、ジョイントＪ１、ジョイントＪ３、ジョイントＪ４（ハンド）についても角度評価値を求めることできる。なお、角度を変更できないハンドの角度評価値は０である。従って、図４〜６の経路の角度評価値Ａｓｃｏｒｅは、次の式（５）のように表される。
【００６３】
【数５】
2014087875.tif 000007
【００６４】
以上のようにして、評価値算出部１４０は、経路設定部１１０に設定されている初期移動経路の総合評価値を算出することができる。
【００６５】
それから、ジョイント角度変更部１３０は、現在設定されている経路（初期移動経路、又はステップＳ５で最後に更新された移動経路）について、中継点におけるジョイント角度を変更する（ステップＳ２）。上述のようにジョイント角度変更部１３０は、経路情報に含まれる中継点を選択し、当該選択した中継点においてジョイントを選択し、当該選択したジョイントのジョイント角度を変更する。
【００６６】
また、評価値算出部１４０は、ステップＳ２でジョイント角度が変更された経路（候補経路）について、位置とジョイント角度に基づいて総合評価値を算出する（ステップＳ３）。具体的には、上述した式（１）により、当該候補経路の総合評価値を算出する。
【００６７】
それから、経路更新部１２０は、現在設定されている経路の総合評価値と、ステップＳ３で算出した候補経路の総合評価値とを比較し、評価値が改善されているか否か、すなわち、評価値が小さくなっているか否かを判定する（ステップＳ５）。総合評価値が改善されていない場合（ステップＳ４：Ｎ）、処理をステップＳ６に進める。
【００６８】
総合評価値が改善されている場合（ステップＳ４：Ｙ）、経路更新部１２０は、経路を更新する（ステップＳ５）。具体的には、経路更新部１２０は、現在設定されている経路に替えて、ステップＳ２で得た候補経路を、移動経路として設定する。
【００６９】
それから、経路更新部１２０は、現在設定されている経路の総合評価値が条件を満たすか否かを判定する（ステップＳ６）。具体的には、経路更新部１２０は、例えば、現在設定されている経路の総合評価値が、所定の基準値（例えば、総合評価値の取り得る極小値）を下回ったか否かを判定する。前記所定の基準値は、例えば、予め設定されていてもよいし、ユーザーが設定変更できてもよい。
【００７０】
総合評価値が条件を満たさない場合（ステップＳ６：Ｎ）、経路更新部１２０は処理をステップＳ２に戻す。総合評価値が条件を満たす場合（ステップＳ６：Ｙ）、経路更新部１２０は、本フローを終了する。
【００７１】
なお、本フローが終了した場合は、出力部１５０は、経路更新部１２０が最終的に設定した移動経路の経路情報を取得し、ロボット２０に出力する。もちろん、経路更新部１２０は、例えば、最終的に設定した移動経路の総合評価値を出力装置３６０に表示させるようにしてもよい。最終的に設定した移動経路の位置評価値、角度評価値のいずれか一つ以上をさらに表示させるようにしてもよい。また、初期移動経路の総合評価値、位置評価値、角度評価値のいずれか一つ以上を表示させるようにしてもよい。また、重み値を表示させるようにしてもよい。
【００７２】
上記のようにして、位置とジョイント角度に基づく総合評価値により移動経路の評価がされるため、所望の条件を満たす経路をより精度よく見つけて、当該経路によりロボットを制御することができる。
【００７３】
なお、上記の図３のフローの各処理単位は、制御装置１０の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。制御装置１０の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。また、本願発明の目的を達成できるのであれば、各処理単位の順序を適宜変更してもよい。
【００７４】
例えば、上記の図３のフローでは、より総合評価値の小さい候補経路で移動経路を更新する処理を繰り返すことで経路の探索を行っているが、このような手順に限られない。具体的には、現在設定されている移動経路に対して複数の候補経路を探索し、当該複数の候補経路それぞれについて総合評価値を算出し、最も総合評価値が小さい候補経路で、移動経路を更新するようにしてもよい。現在設定されている移動経路も比較対象とし、最も総合評価値が小さい経路が現在設定されている移動経路であれば、更新を行わなくてもよい。総合評価値が条件を満たさない場合は、処理を繰り返せばよい。
【００７５】
以上、本発明の第一実施形態について説明した。本実施形態によれば、ロボットの移動経路をより精度よく評価することができる。また、ジョイント角度を考慮して評価を行うので、冗長自由度を有する可動部の経路、例えば、アームの先端部の位置を動かさずにアームの一部を回転させるなどの動作を含む経路であっても、精度よく評価値を算出することができる。また、冗長な動作を含む複数の経路を評価値で区別できるため、移動距離や消費電力を小さくするといったユーザーの目的により適した経路を選択することができる。
【００７６】
本発明の第二実施形態について、図面を参照して説明する。
【００７７】
第二実施形態は、中継点におけるジョイント角度の変更をユーザーの操作に基づいて行う点が、第一実施形態と異なる。第一実施形態と異なる点を中心に説明する。
【００７８】
図８は、本発明の第二実施形態に係る経路探索処理の流れの一例を示すフロー図である。本フローの開始の事前に、経路設定部１１０により初期移動経路の設定がされているものとする。
【００７９】
ステップＳ１１は、図３のステップＳ１と同様である。それから、経路更新部１２０は、経路を編集するためのユーザーインターフェイス画面として経路編集画面を表示する（ステップＳ１２）。具体的には、経路更新部１２０は、例えば、図９（経路の編集及び評価値の表示を行う経路編集画面５００の一例を示す図）に示すような経路編集画面５００を出力装置３６０に表示させる。
【００８０】
図９に示すように、経路編集画面５００は、経路の編集を受け付ける経路編集領域５１０と、経路編集領域５１０に表示中の経路の位置評価値を表示する位置評価値領域５２０と、経路編集領域５１０に表示中の経路の角度評価値を表示する角度評価値領域５２１と、経路編集領域５１０に表示中の経路の総合評価値を表示する総合評価値領域５２２と、経路を確定するため確定ボタン５３０とを有する。
【００８１】
経路更新部１２０は、経路編集領域５１０内に、初期移動経路を編集可能にグラフィカルに表示する。本図の例では、プルダウンメニューによりノード番号を選択可能としており、選択されたノード番号のパラメーター情報に基づいて、当該ノードにおける姿勢でアームを表示する。ノード番号は、初期値として例えば開始点が設定されている。
【００８２】
ここで、経路更新部１２０は、例えば、経路編集領域５１０内に表示中のノードにおけるジョイントの選択、選択されたジョイントの角度や位置の変更を、入力装置３５０を介した操作、例えば、ドラッグ＆ドロップにより受け付けることができる。
【００８３】
また、経路更新部１２０は、ステップＳ１１で算出された初期移動経路の位置評価値、角度評価値、及び総合評価値を取得し、位置評価値領域５２０、角度評価値領域５２１、及び総合評価値領域５２２に表示する。
【００８４】
なお、上記の経路編集画面５００は、一例であり、図示したものに限られない。例えば、経路編集画面５００には、評価値として、総合評価値のみを表示するようにしてもよい。また、例えば、経路編集領域５１０には、複数のノードにおけるアームの姿勢がまとめて表示されるようにしてもよい。また、例えば、ノードにおけるパラメーター情報が表示されるようにしてもよい。また、例えば、重み値を表示してもよいし、重み値の設定変更を受け付けられるようにしてもよい。
【００８５】
図８に戻って説明する。それから、ジョイント角度変更部１３０は、中継点においてジョイント角度や位置の変更があるか否かを判定する（ステップＳ１３）。具体的には、ジョイント角度変更部１３０は、経路編集領域５１０内に表示中の中継点におけるジョイント角度や位置の変更を受け付けたか否かを判定する。
【００８６】
ジョイント角度の変更がない場合（ステップＳ１３：Ｎ）、ジョイント角度変更部１３０は、処理をステップＳ１６に進める。ジョイント角度の変更がある場合（ステップＳ１３：Ｙ）、評価値算出部１４０は、ジョイント角度や位置が変更された経路（候補経路）について、位置とジョイント角度に基づいて総合評価値を算出する（ステップＳ１４）。
【００８７】
また、経路更新部１２０は、経路編集画面５００の表示を更新する（ステップＳ１５）。具体的には、経路更新部１２０は、ステップＳ１３でジョイント角度や位置が変更された姿勢のアームを経路編集領域５１０内に表示するとともに、ステップＳ１４で算出された候補経路の位置評価値、角度評価値、及び総合評価値を取得し、位置評価値領域５２０、角度評価値領域５２１、及び総合評価値領域５２２に表示する。
【００８８】
それから、経路更新部１２０は、経路の編集が確定したか否かを判定する（ステップＳ１６）。具体的には、経路更新部１２０は、確定ボタン５３０が押下されているか否かを判定する。押下されていない場合（ステップＳ１６：Ｎ）、処理をステップＳ１３に戻す。
【００８９】
押下されている場合（ステップＳ１６：Ｙ）、経路更新部１２０は、経路を更新する（ステップＳ１７）。具体的には、経路更新部１２０は、初期移動経路に替えて、ステップＳ１６で確定時に経路編集画面５００表示中の候補経路を、移動経路として設定する。そして、本フローを終了する。
【００９０】
以上、本発明の第二実施形態について説明した。本実施形態によれば、経路の編集と当該経路の評価値の表示がほぼ同時に実行されるため、ユーザーは、評価値を確認しながら様々な候補経路を試すことができ、所望の条件を満たす経路をより精度よくしかも簡単に見つけることができる。
【００９１】
上記の本発明の各実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正および変形例が当業者にとって明らかである。
【００９２】
例えば、上記の各実施形態では、アームを構成する全てのジョイントの変化量を考慮して評価値を算出しているが、選択した一部のジョイントの変化量を考慮して評価値を算出してもよい。また、ハンドの変化量は考慮しなくてもよい。
【００９３】
例えば、位置の変化量と角度の変化量とに基づいて評価値を算出するのであれば、評価値の算出方法は、上述の式（１）、（２）、（４）に限られない。例えば、位置評価値と角度評価値の積により総合評価値を算出するようにしてもよい。また、例えば、重み値は使用しないでもよい。
【００９４】
例えば、上記の第一実施形態において、第二実施形態の経路編集画面５００のようなユーザーインターフェイス画面を介したユーザーの操作に基づいて、ジョイント角度の変更（図３のステップＳ２参照）を行うようにしてもよい。
【符号の説明】
【００９５】
１：ロボットシステム、１０：制御装置、２０：ロボット、２１：アーム部、２２：リンク、２３：ジョイント、２４：ハンド、３０：コンピューター、１１０：経路設定部、１２０：経路更新部、１３０：ジョイント角度変更部、１４０：評価値算出部、１５０：出力部、２１０：動作制御部、２２０：可動部、３１０：ＣＰＵ、３２０：メモリー、３３０：補助記憶装置、３４０：通信Ｉ／Ｆ、３５０：入力装置、３６０：出力装置、３７０：メディアＩ／Ｆ、５００：経路編集画面、５１０：経路編集領域、５２０：位置評価値領域、５２１：角度評価値領域、５２２：総合評価値領域、５３０：確定ボタン
【図１】
2014087875.tif 000008
【図２】
2014087875.tif 000009
【図３】
2014087875.tif 000010
【図４】
2014087875.tif 000011
【図５】
2014087875.tif 000012
【図６】
2014087875.tif 000013
【図７】
2014087875.tif 000014
【図８】
2014087875.tif 000015
【図９】
2014087875.tif 000016