(57)【要約】【課題】  ワークの第１の位置及び第２の位置を含むレイアウト情報に基づいて、極座標系を用いた処理を行うことで、ユーザーにとって容易な入力により適切なロボット動作情報の生成を行う制御装置、ロボットシステム、ロボット、ロボット動作情報生成方法及びプログラム等を提供すること。【解決手段】  制御装置１００は、作業空間におけるワークの第１の位置、及び第２の位置を含むレイアウト情報を取得する情報取得部１１０と、ロボット動作情報を生成する処理部１２０を含み、処理部１２０は、ロボットの第１のアームに対応する第１の極座標系と、第２のアームに対応する第２の極座標系を設定し、ワークの第１の位置から第２の位置までの移動を、第１の極座標系及び第２の極座標系の少なくとも一方を用いて表したワーク移動情報を生成し、ワーク移動情報に基づいて、ロボット動作情報を生成する。【選択図】      図１
2015058493.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの作業空間におけるワークの第１の位置、及び前記第１の位置とは異なる前記ワークの第２の位置を含むレイアウト情報を取得する情報取得部と、
前記レイアウト情報に基づいて、ロボット動作情報を生成する処理部と、
を含み、
前記処理部は、
前記作業空間において、前記ロボットの第１のアームに対応する第１の極座標系を設定する処理と、前記作業空間において、前記ロボットの前記第１のアームとは異なる第２のアームに対応する第２の極座標系を設定する処理を行い、
前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方を用いて表したワーク移動情報を生成し、
前記ワーク移動情報に基づいて、前記ロボット動作情報を生成することを特徴とする制御装置。
【請求項２】
請求項１において、
前記ロボット動作情報は、
前記ロボットの前記第１のアームと前記第２のアームのうちのいずれのアームを用いて、前記ワークを前記第１の位置から前記第２の位置まで移動させるのかを表す情報であることを特徴とする制御装置。
【請求項３】
請求項１又は２において、
前記処理部は、
前記第１のアームの可動範囲に対応する第１の角度範囲、及び前記第１のアームの前記可動範囲に対応する第１の距離範囲に、前記第１の極座標系を設定し、
前記第２のアームの可動範囲に対応する第２の角度範囲、及び前記第２のアームの前記可動範囲に対応する第２の距離範囲に、前記第２の極座標系を設定することを特徴とする制御装置。
【請求項４】
請求項３において、
前記処理部は、
前記レイアウト情報により表される前記ワークの配置位置が、前記第１の角度範囲及び前記第１の距離範囲に設定された前記第１の極座標系により表される場合には、前記配置位置を始点又は終点として、前記第１のアームにより前記ワークを移動させる前記ロボット動作情報を生成し、
前記レイアウト情報により表される前記ワークの前記配置位置が、前記第２の角度範囲及び前記第２の距離範囲に設定された前記第２の極座標系により表される場合には、前記配置位置を始点又は終点として、前記第２のアームにより前記ワークを移動させる前記ロボット動作情報を生成することを特徴とする制御装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記ロボットは、
所定軸まわりに回転可能な本体部と、前記本体部に設けられる前記第１のアーム及び前記第２のアームとを含むことを特徴とする制御装置。
【請求項６】
請求項５において、
前記処理部は、
前記ロボットの前記本体部に対応する第３の極座標系を設定する処理を行い、
前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方と、前記第３の極座標系とを用いて表した前記ワーク移動情報を生成し、
前記ワーク移動情報に基づいて、前記ロボット動作情報を生成することを特徴とする制御装置。
【請求項７】
請求項１乃至４のいずれかにおいて、
前記処理部は、
前記第１の極座標系及び前記第２の極座標系を回転させる第３の極座標系を設定する処理を行い、
前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方と、前記第３の極座標系とを用いて表した前記ワーク移動情報を生成し、
前記ワーク移動情報に基づいて、前記ロボット動作情報を生成することを特徴とする制御装置。
【請求項８】
請求項１乃至７のいずれかに記載の制御装置と、
前記ロボットと、
を含むことを特徴とするロボットシステム。
【請求項９】
所定の作業空間におけるワークの第１の位置、及び前記第１の位置とは異なる前記ワークの第２の位置を含むレイアウト情報を取得する情報取得部と、
前記レイアウト情報に基づいて、ロボット動作情報を生成する処理部と、
を含み、
前記処理部は、
前記作業空間において、第１のアームに対応する第１の極座標系を設定する処理と、前記作業空間において、前記第１のアームとは異なる第２のアームに対応する第２の極座標系を設定する処理を行い、
前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方を用いて表したワーク移動情報を生成し、
前記ワーク移動情報に基づいて、前記ロボット動作情報を生成することを特徴とするロボット。
【請求項１０】
ロボットの作業空間におけるワークの第１の位置、及び前記第１の位置とは異なる前記ワークの第２の位置を含むレイアウト情報を取得する処理を行い、
前記レイアウト情報に基づいて、ロボット動作情報を生成するロボット動作情報生成処理を行い、
前記ロボット動作情報生成処理として、
前記作業空間において、前記ロボットの第１のアームに対応する第１の極座標系を設定し、前記作業空間において、前記ロボットの前記第１のアームとは異なる第２のアームに対応する第２の極座標系を設定し、
前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方を用いて表したワーク移動情報を生成し、
前記ワーク移動情報に基づいて、前記ロボット動作情報を生成する処理を行うことを特徴とするロボット動作情報生成方法。
【請求項１１】
ロボットの作業空間におけるワークの第１の位置、及び前記第１の位置とは異なる前記ワークの第２の位置を含むレイアウト情報を取得する情報取得部と、
前記レイアウト情報に基づいて、ロボット動作情報を生成する処理部として、
コンピューターを機能させ、
前記処理部は、
前記作業空間において、前記ロボットの第１のアームに対応する第１の極座標系を設定する処理と、前記作業空間において、前記ロボットの前記第１のアームとは異なる第２のアームに対応する第２の極座標系を設定する処理を行い、
前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方を用いて表したワーク移動情報を生成し、
前記ワーク移動情報に基づいて、前記ロボット動作情報を生成することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ロボットシステム、ロボット、ロボット動作情報生成方法及びプログラム等に関する。
【背景技術】
【０００２】
ロボットに対して所望の動作を行わせるために、ユーザーによる教示を用いる手法が広く知られている。具体的には、ユーザー（教示者）がロボットのアーム等を手で動かすことでロボット動作を教示するダイレクトティーチングや、ティーチングペンダント等の操作部を操作することでロボット動作を教示するティーチングプレイバック、或いはロボットの実機は使用せずにコンピューター上でシミュレーションを用いて教示を行うオフラインティーチング等が知られている。特許文献１には、ティーチングペンダントを用いてロボットシミュレーターを動作させることで、実機を用いた教示に近い操作感覚でオフラインティーチングを行う手法が開示されている。
【０００３】
また、ユーザーがティーチングペンダント等を用いて逐一ロボット動作を指定するのではなく、ユーザーの教示により所与の条件が与えられた場合に、当該条件に従ったロボット動作を自動的に生成する（狭義には教示プログラムを自動生成する）手法も知られるようになっている。例えば特許文献２には、接触による組み立て作業を対象とした場合に、部品の接触状態に基づいて、実環境に適応した教示プログラムを自動生成する手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２３６７８４号公報
【特許文献２】特開２０００−２６７７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のようにティーチングペンダントを用いた教示では、教示を行うユーザーはロボットについての知識、及びロボットに行わせようとする作業についての知識（例えば溶接作業を行わせたいのであれば溶接についての知識）が求められる。
【０００６】
特許文献２では、実環境の変化に対しても適応できるとの記載があるが、レンジファインダーによって取得される姿勢を見え方（アスペクト）と一致させ教示するのは人の作業である。よって、レイアウトが変更された場合に、特許文献２のシステムにおいてはそのレイアウトに対応するレンジデータをアスペクトと自動的に結びつけることはできない。結果として、特許文献２等の従来手法ではレイアウトが変更された場合に、ユーザーによる作業が必要となるためユーザーの負担が大きいことになる。
【課題を解決するための手段】
【０００７】
本発明の一態様は、ロボットの作業空間におけるワークの第１の位置、及び前記第１の位置とは異なる前記ワークの第２の位置を含むレイアウト情報を取得する情報取得部と、前記レイアウト情報に基づいて、ロボット動作情報を生成する処理部と、を含み、前記処理部は、前記作業空間において、前記ロボットの第１のアームに対応する第１の極座標系を設定する処理と、前記作業空間において、前記ロボットの前記第１のアームとは異なる第２のアームに対応する第２の極座標系を設定する処理を行い、前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方を用いて表したワーク移動情報を生成し、前記ワーク移動情報に基づいて、前記ロボット動作情報を生成する制御装置に関係する。
【０００８】
本発明の一態様では、ワークの第１の位置と第２の位置を含むレイアウト情報を取得し、極座標系を用いてロボット動作情報を生成する。よって、ユーザーにとってはレイアウト情報を入力すれば、第１の位置と第２の位置の間の移動経路や、当該移動経路に沿ったワークの移動を実現するロボット動作等が自動生成されるため、使いやすいシステムを実現すること等が可能になる。また、極座標系が各アームに対応して設定されることで、動作に用いるアームの適切な選択等も可能になる。
【０００９】
また、本発明の一態様では、前記ロボット動作情報は、前記ロボットの前記第１のアームと前記第２のアームのうちのいずれのアームを用いて、前記ワークを前記第１の位置から前記第２の位置まで移動させるのかを表す情報であってもよい。
【００１０】
これにより、いずれのアームを用いてワークを移動させるかという情報を、ロボット動作情報として生成すること等が可能になる。
【００１１】
また、本発明の一態様では、前記処理部は、前記第１のアームの可動範囲に対応する第１の角度範囲、及び前記第１のアームの前記可動範囲に対応する第１の距離範囲に、前記第１の極座標系を設定し、前記第２のアームの可動範囲に対応する第２の角度範囲、及び前記第２のアームの前記可動範囲に対応する第２の距離範囲に、前記第２の極座標系を設定してもよい。
【００１２】
これにより、アームの可動範囲と極座標系の距離範囲、角度範囲が対応することになり、より適切なアームの選択等が可能になる。
【００１３】
また、本発明の一態様では、前記処理部は、前記レイアウト情報により表される前記ワークの配置位置が、前記第１の角度範囲及び前記第１の距離範囲に設定された前記第１の極座標系により表される場合には、前記配置位置を始点又は終点として、前記第１のアームにより前記ワークを移動させる前記ロボット動作情報を生成し、前記レイアウト情報により表される前記ワークの前記配置位置が、前記第２の角度範囲及び前記第２の距離範囲に設定された前記第２の極座標系により表される場合には、前記配置位置を始点又は終点として、前記第２のアームにより前記ワークを移動させる前記ロボット動作情報を生成してもよい。
【００１４】
これにより、ワークの位置が各極座標系により表されるか否かに基づいて、ワークの移動に用いるアームを選択すること等が可能になる。
【００１５】
また、本発明の一態様では、前記ロボットは、所定軸まわりに回転可能な本体部と、前記本体部に設けられる前記第１のアーム及び前記第２のアームとを含んでもよい。
【００１６】
これにより、本体部の動作を含んだロボット動作情報を生成すること等が可能になる。
【００１７】
また、本発明の一態様では、前記処理部は、前記ロボットの前記本体部に対応する第３の極座標系を設定する処理を行い、前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方と、前記第３の極座標系とを用いて表した前記ワーク移動情報を生成し、生成した前記ワーク移動情報に基づいて、前記ロボット動作情報を生成してもよい。
【００１８】
これにより、本体部に対応する第３の極座標系を用いてロボット動作情報を生成すること等が可能になる。
【００１９】
また、本発明の一態様では、前記処理部は、前記第１の極座標系及び前記第２の極座標系を回転させる第３の極座標系を設定する処理を行い、前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方と、前記第３の極座標系とを用いて表した前記ワーク移動情報を生成し、前記ワーク移動情報に基づいて、前記ロボット動作情報を生成してもよい。
【００２０】
これにより、第１の極座標系と第２の極座標系を回転させる座標系を、第３の極座標系として設定すること等が可能になる。
【００２１】
また、本発明の他の態様は、上記のいずれかの制御装置と、前記ロボットと、を含むロボットシステムに関係する。
【００２２】
これにより、ワークの第１の位置と第２の位置を含むレイアウト情報を取得し、極座標系を用いてロボット動作情報を生成する。よって、ユーザーにとってはレイアウト情報を入力すれば、第１の位置と第２の位置の間の移動経路や、当該移動経路に沿ったワークの移動を実現するロボット動作等が自動生成されるため、使いやすいシステムを実現すること等が可能になる。また、極座標系が各アームに対応して設定されることで、動作に用いるアームの適切な選択等も可能になる。
【００２３】
また、本発明の他の態様は、所定の作業空間におけるワークの第１の位置、及び前記第１の位置とは異なる前記ワークの第２の位置を含むレイアウト情報を取得する情報取得部と、前記レイアウト情報に基づいて、ロボット動作情報を生成する処理部と、を含み、前記処理部は、前記作業空間において、第１のアームに対応する第１の極座標系を設定する処理と、前記作業空間において、前記第１のアームとは異なる第２のアームに対応する第２の極座標系を設定する処理を行い、前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方を用いて表したワーク移動情報を生成し、前記ワーク移動情報に基づいて、前記ロボット動作情報を生成するロボットに関係する。
【００２４】
これにより、上述したロボット動作情報を生成するとともに、生成したロボット動作情報に基づいた動作を行うロボットを実現することが可能になる。
【００２５】
また、本発明の他の態様は、ロボットの作業空間におけるワークの第１の位置、及び前記ワークの第２の位置を含むレイアウト情報を取得する処理を行い、取得した前記レイアウト情報に基づいて、ロボット動作情報を生成するロボット動作情報生成処理を行い、前記ロボット動作情報生成処理として、前記作業空間において、前記ロボットの第１のアームに対応する第１の極座標系を設定し、前記作業空間において、前記ロボットの前記第１のアームとは異なる第２のアームに対応する第２の極座標系を設定し、前記ワークの前記第１の位置から前記第２の位置までの移動を、前記第１の極座標系及び前記第２の極座標系の少なくとも一方を用いて表したワーク移動情報を生成し、生成した前記ワーク移動情報に基づいて、前記ロボット動作情報を生成する処理を行うロボット動作情報生成方法に関係する。
【００２６】
これにより、ワークの第１の位置と第２の位置を含むレイアウト情報を取得し、極座標系を用いてロボット動作情報を生成する。よって、ユーザーにとってはレイアウト情報を入力すれば、第１の位置と第２の位置の間の移動経路や、当該移動経路に沿ったワークの移動を実現するロボット動作等が自動生成されるため、使いやすいシステムを実現すること等が可能になる。また、極座標系が各アームに対応して設定されることで、動作に用いるアームの適切な選択等も可能になる。
【００２７】
また、本発明の他の態様は、上記の各部としてコンピューターを機能させるプログラムに関係する。
【００２８】
これにより、ワークの第１の位置と第２の位置を含むレイアウト情報を取得し、極座標系を用いてロボット動作情報を生成する。よって、ユーザーにとってはレイアウト情報を入力すれば、第１の位置と第２の位置の間の移動経路や、当該移動経路に沿ったワークの移動を実現するロボット動作等が自動生成されるため、使いやすいシステムを実現すること等が可能になる。また、極座標系が各アームに対応して設定されることで、動作に用いるアームの適切な選択等も可能になる。
【００２９】
このように、本発明の幾つかの態様によれば、ワークの第１の位置及び第２の位置を含むレイアウト情報に基づいて、極座標系を用いた処理を行うことで、ユーザーにとって容易な入力により適切なロボット動作情報の生成を行う制御装置、ロボットシステム、ロボット、ロボット動作情報生成方法及びプログラム等を提供することができる。
【図面の簡単な説明】
【００３０】
【図１】本実施形態に係る制御装置のシステム構成例。
【図２】本実施形態に係る制御装置の詳細なシステム構成例。
【図３】本実施形態に係るロボットシステムの構成例。
【図４】本実施形態に係るロボットシステムの他の構成例。
【図５】ワークの初期位置に対応する初期状態の例。
【図６】図６（Ａ）、図６（Ｂ）は作業空間に設定される極座標系の例。
【図７】図７（Ａ）、図７（Ｂ）はワークの初期位置と極座標系の対応関係の例。
【図８】図８（Ａ）、図８（Ｂ）はワークの最終位置に対応する最終状態、及び最終位置と極座標系の対応関係例。
【図９】図９（Ａ）、図９（Ｂ）はワークの途中位置に対応する途中状態、及び途中位置と極座標系の対応関係例。
【図１０】図１０（Ａ）、図１０（Ｂ）は２つのワークの組み付け作業を説明する図。
【図１１】図１１（Ａ）、図１１（Ｂ）はアームの可動範囲と設定される極座標系の関係図。
【図１２】ワークの初期位置等と極座標系の対応関係を説明する図。
【図１３】使用するアームを決定することで得られるロボット動作情報の例。
【図１４】図１４（Ａ）〜図１４（Ｄ）はロボット動作の具体例の説明図。
【図１５】図１５（Ａ）〜図１５（Ｄ）はロボット動作の具体例の他の説明図。
【図１６】図１６（Ａ）〜図１６（Ｄ）はロボット動作の具体例の他の説明図。
【図１７】図１７（Ａ）〜図１７（Ｄ）はロボット動作の具体例の他の説明図。
【図１８】複数の移動経路及びロボット動作情報が求められる例。
【図１９】図１９（Ａ）〜図１９（Ｃ）は極座標系の距離範囲及び角度範囲とアーム構造の関係を説明する図。
【図２０】図２０（Ａ）、図２０（Ｂ）は本体部の回転動作の説明図。
【図２１】図２１（Ａ）、図２１（Ｂ）はロボットの移動速度の設定例。
【図２２】本実施形態の処理を説明するためのフローチャート。
【図２３】作業コスト算出処理を説明するためのフローチャート。
【図２４】図２４（Ａ）、図２４（Ｂ）は本体部が回転した場合の第３の極座標系での座標値の変化を説明する図。
【発明を実施するための形態】
【００３１】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３２】
１．本実施形態の手法
まず本実施形態の手法について説明する。従来、ロボットに対して所望の動作を行わせるために、ユーザーによる教示を用いる手法が広く知られている。具体的には上述したように、ダイレクトティーチング、ティーチングプレイバック、オフラインティーチング等が知られている他、特許文献１のように組み合わせに近い手法も開示されている。
【００３３】
しかし近年、非常に広汎な領域でロボットが利用されるようになってきている。そのため、ロボットに対して教示を行うユーザーが、当該ロボットについての専門知識を充分有していないというケースも多くなると想定される。つまり、ロボットに対する教示は専門知識が充分でないユーザーであっても実行可能な程度に、わかりやすい形態で行われることが望ましい。その点、上述したように特許文献１の手法は好ましいと言えない。
【００３４】
それに対して、特許文献２の手法であれば、ユーザーがティーチングペンダント等を用いて逐一ロボット動作を指定する必要はない。さらに、ロボットによる動作は、作業空間における作業対象物（ワーク）の配置等を表すレイアウト（作業レイアウト）に大きく依存する。よって、ユーザーが目標状態となるレイアウト等を指定した場合に、当該レイアウトを実現する教示プログラムを自動的に作成するシステムの有用性は高い。しかし上述したように、特許文献２ではレイアウトが変更された場合に、ユーザーによる作業が必要となるためユーザーの負担が大きく、やはり好ましい手法とは言えない。
【００３５】
そこで本出願人は、ワークの初期位置及び最終位置を含むレイアウト情報が与えられた場合に、当該ワークを初期位置から最終位置まで移動させるロボット動作を自動的に作成する制御装置を提案する。その際、ロボットが有する第１のアームに対応する第１の極座標系と、第２のアームに対応する第２の極座標系を設定し、設定した極座標系を用いて処理を行う。
【００３６】
具体的には、本実施形態の制御装置１００は図１に示すように、ロボット（後述する図３等のロボット本体３００に対応）の作業空間におけるワークの第１の位置、及びワークの第２の位置を含むレイアウト情報を取得する情報取得部１１０と、レイアウト情報に基づいて、ロボット動作情報を生成する処理部１２０を含む。そして、処理部１２０は、作業空間において、ロボットの第１のアームに対応する第１の極座標系を設定する処理と、作業空間において、ロボットの第１のアームとは異なる第２のアームに対応する第２の極座標系を設定する処理を行い、ワークの第１の位置から第２の位置までの移動を、第１の極座標系及び第２の極座標系の少なくとも一方を用いて表したワーク移動情報を生成し、ワーク移動情報に基づいて、ロボット動作情報を生成する。
【００３７】
ここで、ワークの第１の位置とは、作業空間における所与のワークの位置を表し、第２の位置とは、作業空間における所与のワークの位置であって第１の位置とは異なる位置を表す。また、本実施形態では第１の位置から第２の位置へのワークの移動を想定していることから、ワークは第１のタイミングで第１の位置にあり、第１のタイミングよりも後の第２のタイミングにおいて第２の位置にあるということになる。具体的には、ワークの第１の位置とは、作業の初期状態でのワークの位置を表す初期位置に相当する位置であってもよい。また、ワークの第２の位置とは、作業の最終状態（目標状態）でのワークの位置を表す最終位置に相当する位置であってもよい。以下、本明細書では第１の位置を初期位置、第２の位置を最終位置として説明をするが、これに限定されるものではなく、第１、第２の位置は作業空間におけるワークの任意の２つの位置を表すものである。
【００３８】
後述するように、図５の状態にあるワークＡとワークＢを組み付けて、図８（Ａ）の状態となるように除材エリアＣに配置する作業を想定した場合には、ワークの初期位置は図５のワークＡの位置や、ワークＢの位置を表す。また、ワークの最終位置とは、例えば図８（Ａ）のワークＡ＋Ｂ（ワークＡとワークＢが組み付けられたもの）の位置を表す。或いは、初期位置や最終位置はワークの位置を一意に決定するものでなくてもよい。例えば図８（Ａ）の除材エリアＣに示したように、ワークに比べてサイズの大きい領域を初期位置或いは最終位置を表す情報として用いてもよい。図８（Ａ）の例であれば、最終状態においてワークＡ＋Ｂは除材エリアＣのいずれかの位置にあればよく、除材エリアＣ内の細かい位置までは問わないことになる。
【００３９】
また、レイアウト情報とは、作業空間上でのワークの位置を表す情報であり、例えば図５や図８（Ａ）等に示すようなワークの状態を表す何らかの情報となる。具体的には、図５等の状態を撮像した撮像画像や当該撮像画像から求められる情報であってもよいし、作業空間に設定される所与の座標系での座標値であってもよい。なお、本実施形態のレイアウト情報はワークの初期位置と最終位置に限定されるものではなく、例えば初期位置と最終位置の途中でのワークの位置を表す途中位置の情報を含んでもよい。
【００４０】
また、ワーク移動情報とは、例えば後述する図１８のＲ１やＲ２に示すように、ワークを初期位置から最終位置まで移動させる経路を表現した情報であり、具体的には設定された極座標系により表される。ロボット動作情報とは、ワーク移動情報により表されるワークの移動を実現するためのロボット動作を表現する情報である。ワークの移動経路がワーク移動情報で規定されたとしても、当該ワークをロボットの右手で移動させるのか、左手で移動させるのか、或いはいずれかの腕で把持した状態で腰部分を回転させることで実現するのかは不明である。本実施形態でのロボット動作情報とは、使用するアームの決定等、ワークの移動を実現するロボットの動作を規定した情報である。
【００４１】
これにより、ワークの初期位置と最終位置を含むレイアウト情報が入力された場合に、当該ワークを初期位置から最終位置まで移動させるためのロボット動作を表すロボット動作情報を生成することが可能になる。ユーザーが初期状態と所望の状態（最終状態）を入力すれば、その間の移動経路や移動に必要なロボット動作を、制御装置１００が自動的に生成することになる。よってユーザーにとっては複雑な入力をせずとも、ワークに対する所望の作業をロボットに実行させることが可能になる。
【００４２】
また、レイアウト情報を極座標系を用いて処理する際には、図７（Ａ）や図７（Ｂ）に示したように、各ワークの位置と極座標系との対応関係（狭義にはワークの位置が極座標系でどのような座標値となるか）を判定すればよい。例えば図５に示したように、作業台上のワークＡ、ワークＢ、除材エリアＣの配置をレイアウト情報として取得し、且つ図６（Ａ）に示したように、各アームに対応する極座標系を設定した場合には、図５に対応するレイアウト情報は極座標系の座標値として、図１２に「初期位置」として示した列のように表現できる。つまり、レイアウト情報を極座標系に落とし込む処理は非常に容易なものであり、入力されるレイアウト情報が変化したとしても、当該変化に対してユーザーによる調整作業等が不要という利点もある。
【００４３】
なお、本実施形態でのレイアウト情報はワーク等の配置を表した情報であり、ワークの初期位置及び最終位置を含むレイアウト情報からは、ワークの初期位置から最終位置までの移動経路が求められることになる。その際、双腕ロボットのように複数のアームを有するロボットを対象とした場合、上述したようにワークを移動させる際に用いるアームは、いくつかの候補が考えられる。
【００４４】
よって本実施形態では、図１３に例示するように、ロボット動作情報は、ロボットの第１のアームと第２のアームのうちのいずれのアームを用いて、ワークを第１の位置から第２の位置まで移動させるのかを表す情報であってもよい。
【００４５】
これにより、ロボット動作情報として、ロボットのいずれのアームを用いて、ワーク移動情報により表される移動経路に沿ったワークの移動を行うかを表す情報を生成することが可能になる。図３、図４を用いて後述する双腕ロボットのように、複数のアームを有するロボットでは、所定のワークの移動が第１のアームでも第２のアームでも実現できる可能性があり、その場合どちらのアームを用いるかを決定しなくては実際のロボット制御ができない。また、第１のアームであればワークの移動ができるが、第２のアームでは移動経路上の位置に到達できない等の理由によりワークの移動ができない場合もある。その場合には、第１のアームを用いる必要があり、第２のアームを用いるロボット動作情報を生成してしまうと、当該情報に従ったロボット制御は実現不可能となり好ましくない。つまり、多腕のロボットにおいてはアームの決定は非常に重要であり、本実施形態の手法は、レイアウト情報の入力に対して使用するアームの決定まで行うことができる点で有用である。
【００４６】
第１，第２のアームからワークの移動に使用するアームを決定する処理においては、各アームの可動範囲を考慮することが重要である。なぜなら、例えば第１のアームをどのように駆動したとしても到達し得ない位置のワークを、第１のアームを用いて移動させるというロボット動作情報を生成したとしても、当該ロボット動作情報に従ったロボット制御は実現不可能となるためである。
【００４７】
よって本実施形態では、図１１（Ａ）、図１１（Ｂ）に示すように、処理部１２０は、第１のアームの可動範囲に対応する第１の角度範囲、及び第１のアームの可動範囲に対応する第１の距離範囲に、第１の極座標系を設定し、第２のアームの可動範囲に対応する第２の角度範囲、及び第２のアームの可動範囲に対応する第２の距離範囲に、第２の極座標系を設定する。
【００４８】
ここでアームの可動範囲とは、当該アームの所与の位置（狭義にはエンドポイントや、エンドポイントに設けられるエンドエフェクターの位置）が到達可能な範囲を表すものである。アームの可動範囲は、当該アームに含まれる関節がとることができる関節角の範囲等から、ロボットの設計事項として決定されているものであり、本実施形態で設定する極座標系とは無関係の形式で記憶されている。例えば、図１１（Ａ）に示したようにロボット本体に対して所与の範囲であるという形式で記憶されてもよいし、アームに含まれる各関節の関節角のとれる角度範囲の集合として記憶されてもよい。本実施形態の処理部１２０は、上記可動範囲と極座標系を対応づけて処理を行う。
【００４９】
これにより、可動範囲を考慮することで、作成されるロボット動作を実現可能なものとすることができる。なお、実現不可能なロボット動作とは、例えば可動部分を可動範囲外へ移動させる動作のことである。
【００５０】
例えば、図１９（Ａ）に示したように、それぞれ２つの自由度を持つ関節Ａ１、Ａ２と、関節Ａ１とＡ２の間、及び関節Ａ２の先に設けられるそれぞれ長さＲのフレームＡ３、Ａ４と、フレームＡ４の先端に設けられハンドＡ６等が接続されるエンドポイントＡ５とを含むアームを考える。この場合、エンドポイントＡ５の位置は、Ａ１、Ａ２のとる角度が決定されれば、Ａ３とＡ４のフレーム長がそれぞれＲであることがわかっているため、フォワードキネマティクス等により決定できる。ここで関節Ａ１を原点とする極座標系を設定すれば、当該極座標系においてエンドポイントＡ５の位置は、１つの座標値（ｒ，θ，φ）と表現される。そしてＡ５の位置に対応する座標値、ｒ、θ、φは任意の値をとることができるわけではなく、アームの構造により範囲が限定される。例えば、距離ｒを考えた場合、Ａ５が原点（Ａ１）から最も遠くなるのは、フレームＡ３とＡ４が一直線となる場合であり、その際の距離ｒ＝２Ｒとなる。一方、Ａ５が原点に最も近くなるのは、例えば図１９（Ｂ）等のように腕を折りたたんだ状態であり、アーム中の各パーツの大きさを無視して考えれば、関節Ａ２を１８０度折りたたんだ際のｒ＝０が距離の最小値となる。
【００５１】
同様に、θやφも０°から３６０°の全ての値をとらないことが一般的であり、それぞれＡ１，Ａ２の関節角の可動範囲により、とれる角度範囲が決定されることになる。例えばｘｙ平面上で考えた場合に、Ａ１，Ａ２の取り得る角度が図１９（Ｃ）の範囲であれば、φの最小値は図１９（Ｃ）のφｍｉｎとなり、φの最大値はφｍａｘとなる。
【００５２】
この点は図１９（Ａ）以外の構成のアームでも同様であり、一般的にアームの可動範囲は、フレーム長や関節角の範囲等、ロボットの設計事項として決定されるパラメーターに基づいて、空間的な範囲として求めることができる。
【００５３】
以上の点をふまえて考えると、アーム中の所与の関節を原点とする極座標系を設定した場合、原点とした関節及びそれよりも先の部分を駆動することでエンドポイントが到達することができる範囲は、当該極座標系の所与の距離範囲及び所与の角度範囲として表現されることになる。これは言い換えれば、所与の極座標系を用いてワークの位置を表現した際に、当該ワークの座標値が、アームの構造から決定される所与の距離範囲及び所与の角度範囲にあれば、当該ワークは原点となる関節及びそれより先の部分を駆動することで作業対象とすることができることになる。さらに言い換えれば、所与の極座標系を、アームの構造から決定される所与の距離範囲及び所与の角度範囲に設定した場合、ワークの位置が当該極座標系により表現することができれば、当該ワークは原点となる関節及びそれより先の部分を駆動することで作業対象とすることができることになる。
【００５４】
つまり、アームに対応する極座標系を設定するとともに、与えられたレイアウト情報に含まれるワークの位置等を、設定した極座標系に落とし込んで座標値を判定することで、当該位置にあるワークに対して各アームが作業を行うことができるか否かを容易に判定可能となる。よって、ロボットが複数のアームを有する場合であっても、ワーク等に対する作業に用いるアームの選択を適切に行った上で、ロボット動作情報を生成することが可能になる。
【００５５】
なお、設定される極座標系は図１９（Ａ）に限定されるものではない。例えば、設定される極座標系は３次元ではなく２次元であってもよい。具体的には、図１９（Ａ）に示した３次元の極座標系をｘｙ平面に射影し、ｘｙ平面に対応する２次元の極座標系を設定してもよい。本来ロボット動作は３次元的なものであることが想定されるが、２次元の極座標系を用いることで、上記ロボット動作の作成処理を高速で行うことが可能になる。
【００５６】
ただし逆に言えば、本来３次元であるロボット動作を２次元に投影することで、作成されるロボット動作情報は精度の低いものとなる。この場合、本実施形態の手法は当該誤差を許容し、より詳細なレベルでのロボット動作の作成処理が後段で行われることを前提とすればよい。つまり、ロボット動作の作成処理を幾つかの工程に分割し、上流では比較的粗いロボット動作情報を作成し、下流では上流での作成結果を利用して比較的詳細なロボット動作情報を作成するものとし、本実施形態の手法はその上流工程を担うものとする。そのようにすれば、本実施形態のロボット動作情報の生成においては極端に高い処理精度は不要となる。
【００５７】
また、アーム構造及び極座標系の設定手法は図１９（Ａ）等に示したものに限定されず、例えば６自由度や７自由度等の複雑な構成のアームを用いてもよいし、アームに対応して設定される極座標系の次元や原点の位置等も種々の変形実施が可能である。
【００５８】
以下、本実施形態に係る制御装置、ロボットシステムの構成例について説明した後、処理の詳細について説明する。
【００５９】
２．システム構成例
図２に本実施形態に係る制御装置１００の詳細なシステム構成例を示す。ただし、制御装置１００は図２の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００６０】
図２に示したように、制御装置１００の処理部１２０は、極座標系設定部１２１と、ワーク移動情報生成部１２３と、ロボット動作情報生成部１２７を含んでもよく、さらにロボット動作情報生成部１２７は作業コスト算出部１２９を含んでもよい。
【００６１】
極座標系設定部１２１は、ロボットの位置を基準とした複数の極座標系を設定する。設定される極座標系としては、第１のアームに対応する第１の極座標系、第２のアームに対応する第２の極座標系、ロボットの本体部に対応する第３の極座標系等が考えられる。極座標系の設定処理の詳細については後述する。
【００６２】
ワーク移動情報生成部１２３は、設定された極座標系を用いて、レイアウト情報に含まれるワークの位置を表現することで、ワークの初期位置から最終位置までの移動を、極座標系を用いて表現したワーク移動情報を生成する。
【００６３】
ロボット動作情報生成部１２７は、ワーク移動情報に基づいて、ロボット動作情報を生成、出力する。ロボット動作情報生成部１２７は作業コスト算出部１２９を含んでもよく、作業コスト算出部１２９は、複数のロボット動作情報が求められた場合に、各情報の作業コストを算出する。この場合ロボット動作情報生成部１２７は、各情報について算出された作業コストに基づいて、少数（狭義には１つ）のロボット動作情報を、後段のユニットに対する出力として決定する処理を行う。
【００６４】
図２に示した処理部１２０の各部において行われる処理の詳細については後述する。なお、上述したように本実施形態の手法は、ロボット動作を決定する一連の処理を複数の工程で実現する際の上流工程に対応するものであってもよい。よって本実施形態の処理結果として出力されるロボット動作情報に対して、後段のユニットにより何らかの処理を行った後に、実際のロボット制御に用いてもよいことになる。この後段のユニットは、本実施形態に係る制御装置１００に含まれるものであってもよいし、他の電子機器に含まれるものであってもよい。
【００６５】
また本実施形態の手法は、図３に示したように、上記の制御装置１００と、ロボット（ロボット本体３００）と、を含むロボットシステムに適用できる。図３の構成であれば、本実施形態の制御装置１００は、図１の情報取得部１１０、処理部１２０に加えて、ロボット動作情報に基づいてより詳細なロボット制御用の情報を生成するユニット（上述した後段のユニット）と、当該詳細なロボット制御用の情報に基づいてロボット本体３００の制御を行うロボット制御部とを含むことになる。
【００６６】
ロボット本体３００は、第１のアーム３１０と、第２のアーム３２０と、当該アーム３１０の先端等に設けられるエンドエフェクター３１９、３２９を含む。
【００６７】
これにより、レイアウト情報を取得してロボット動作情報を生成するとともに、当該ロボット動作情報に基づくロボット本体３００の制御用情報を生成してロボット制御を行う制御装置１００と、制御装置１００の制御に従って動作を行うロボットとを、１つのシステムとして実現することが可能になる。ここでのロボットシステムは、図３に示したようにロボット本体３００と制御装置１００が別体として設けられるものであってもよい。
【００６８】
なお、本実施形態に係るロボットシステムの構成例は図３に限定されない。例えば、図４に示したように、ロボットシステムは、ロボット本体３００と、ベースユニット部４００を含んでもよい。
【００６９】
ロボット本体３００は双腕ロボットであってもよく、頭部や胴体に相当する部分に加え、第１のアーム３１０と第２のアーム３２０を含む。図４では第１のアーム３１０は、関節３１１，３１３と、関節の間に設けられるフレーム３１５，３１７から構成され、第２のアーム３２０についても同様のものとしたがこれに限定されない。また、第１のアーム３１０及び第２のアーム３２０の先端にはエンドエフェクター３１９，３２９が設けられる。ここでのエンドエフェクター３１９とは、図４に示したようにハンドであってもよいし、工具等の他のものであってもよい。なお、図４では２本のアームを有する双腕ロボットの例を示したが、本実施形態のロボットは３本以上のアームを有してもよい。
【００７０】
ベースユニット部４００は、ロボット本体３００の下部に設けられ、ロボット本体３００を支持する。図４の例では、ベースユニット部４００には車輪等が設けられ、ロボット全体が移動可能な構成となっている。ただし、ベースユニット部４００が車輪等を持たず、床面等に固定される構成であってもよい。図４のロボットシステムでは、ベースユニット部４００に制御装置１００が格納されることで、ロボット本体３００と制御装置１００とが一体として構成される。
【００７１】
或いは、本実施形態の手法を上記の情報取得部１１０と、処理部１２０と、を含むロボットに適用することもできる。例えば、制御装置１００のように、特定の制御用の機器を設けることなく、ロボットに内蔵される基盤（更に具体的には基盤上に設けられるＩＣ等）により、上記の情報取得部１１０と処理部１２０を実現するとともに、ロボット制御を実行するロボットが考えられる。
【００７２】
３．処理の詳細
次に本実施形態の処理の詳細を説明する。具体的には、情報取得部１１０で取得されるレイアウト情報の詳細を説明し、極座標系設定部１２１での極座標系の設定処理について説明する。その後、ロボット動作情報の生成処理について説明する。ロボット動作情報の生成処理は、具体的にはワーク移動情報生成部１２３でのワーク移動情報の生成処理、作業コスト算出部１２９でのコスト算出処理により実現される。最後に、図２２、図２３のフローチャートを用いて、本実施形態の処理の流れを説明する。
【００７３】
３．１  レイアウト情報の取得処理
まず情報取得部１１０で取得されるレイアウト情報の詳細について説明する。以下では、上述したように図５に示した位置にあるワークＡ、ワークＢに対して、途中でワークＡに対してワークＢを組み付ける作業を行った上で、図８（Ａ）に示すように除材エリアＣに置く作業を行う例について説明する。この際、ワークＡを下にしてワークＢを上に組み付けるが、ロボット正面の作業に適した位置はワークＢの初期位置となっている。よって、図９（Ａ）に示したように、一旦ワークＢをロボットに対して奥側に移動させ、空いた位置にワークＡを移動させるという過程を経るものとする。
【００７４】
つまり、制御装置１００の情報取得部１１０は、初期位置と最終位置の間のワークの位置である、ワークの途中位置を含むレイアウト情報を取得し、処理部１２０は、ワークの途中位置と極座標系の対応関係を求めることで、ワークの初期位置から途中位置までの移動、及びワークの途中位置から最終位置までの移動を極座標系を用いて表したワーク移動情報を生成し、生成したワーク移動情報に基づいて、極座標系を用いて表されるロボット動作情報を生成してもよい。なお、初期位置が広義には第１の位置に対応し、最終位置が第２の位置に対応するように、途中位置は広義には第３の位置に対応する位置である。そして第３の位置とは、作業空間におけるワークの位置であって、第１の位置とも第２の位置とも異なる位置である。
【００７５】
ここで、ワークの途中位置とは上述したように図９（Ａ）に示したワークの位置等であり、図９（Ａ）の状態を表す情報がレイアウト情報に含まれることになる。この途中位置は、第３の位置に相当する。
【００７６】
これにより、レイアウト情報としてワークの途中位置を含む情報を記憶し、当該途中位置を経由するワーク移動情報の生成、さらにはワーク移動情報に従ったロボット動作情報の生成が可能になる。ワークの初期位置と最終位置を指定すれば、制御装置１００がその間の経路を自動的に作成することによる利点は大きいが、状況によってはその間の経路が全て許容されるとは限らない。例えば、図９（Ａ）の例であれば上述したように作業場所の確保のためにワークＢの退避が必要となる。或いは、初期位置と最終位置の間に何らかの障害物がある等の理由で、ワークが進入して欲しくない領域が設定されることもあり、その場合当該進入して欲しくない領域を避けるような経路を生成する必要がある。本実施形態では、レイアウト情報に途中位置を含めてもよいものとし、当該途中位置を設定することで、ワークの移動経路をより適切なものとすることを可能にしている。
【００７７】
以下の説明はレイアウト情報がワークの途中位置を含む場合を想定したものであり、制御装置１００に対して与えるべきレイアウト情報は、図５に示したワークＡの初期位置及びワークＢの初期位置を示す情報、図８（Ａ）に示したワークＡ＋Ｂの最終位置に対応する除材エリアＣの位置を示す情報、及び図９（Ａ）に示したワークＡの途中位置及びワークＢの途中位置を示す情報となる。
【００７８】
ここで各位置を表す情報をどのような形式とするかは種々の変形実施が可能である。例えば、実際の作業台上に図５、図８（Ａ）及び図９（Ａ）の状態となるようにワークを配置し、当該状態を作業台上方から撮像した撮像画像を用いてもよい。この場合、制御装置１００は撮像画像を取得し、当該撮像画像のうちどの画像領域が、ロボットの作業空間に対応するかを特定する。例えば作業台がロボットの作業空間に対応する場合には、撮像画像のうち作業台が撮像されている領域を抽出し、抽出された領域のどの位置にワークＡやワークＢが撮像されたかを求めることで、ワークＡ等の初期位置、最終位置、途中位置を特定する処理を行う。
【００７９】
或いは、作業空間は実際のものを用いるが、ワーク等については実物を用いなくてもよい。例えば何らかの指示器具を用いて作業空間上の点を指示し、指示された点を特定することでワークの初期位置等を取得してもよい。この場合、上述したように撮像画像の撮像を行い、撮像画像のうち指示器具が撮像された位置に基づいて初期位置等を特定してレイアウト情報を取得してもよい。或いは、指示器具自体に位置を検出するセンサー等を用いることで、撮像画像を用いずに指示器具により指示されている位置を特定し、レイアウト情報として取得してもよい。例えば、超音波や磁気を用いた位置測定システムは広く知られたものであるため、これらの手法を利用して指示器具により指示される位置を特定してもよい。
【００８０】
或いは、作業空間、ワークのいずれも実物を用いずに、シミュレーター上でレイアウト情報を生成してもよい。例えば、作業空間及びワークのサイズ、形状を再現したＣＡＤデータを作成しておき、２次元或いは３次元のシミュレーション空間上にワークを配置することで、図５等の状態を再現してもよい。その場合、情報取得部１１０では、当該シミュレーション空間と実際の作業空間を対応づける情報に基づいて、各ワークの位置を特定してレイアウト情報を取得することになる。
【００８１】
その他、情報取得部１１０が取得する情報や、取得した情報からワークの初期位置等を特定する手法は種々の変形実施が可能である。
【００８２】
３．２  極座標系の設定処理
極座標系設定部１２１では、複数の極座標系を設定する。具体的には、複数のアームを有する多腕ロボットにおいては、各アームについて当該アームに対応する極座標系を設定する。以下の説明においては、図３や図４に示したように第１，第２のアームを有する双腕ロボットを例として用いるが、３つ以上のアームを有するロボットにも拡張可能であることは言うまでもない。また、以下の説明ではレイアウト情報として平面レイアウト情報を取得するものとし、極座標系としても平面（２次元）の極座標系を設定するものとするが、これに限定されず３次元に拡張してもよい。
【００８３】
本実施形態の極座標系は、アーム上の所与の点を原点として設定されるものであり、アームが駆動されることで当該所与の点が移動した場合には、極座標系もそれに合わせて移動するものである。なお、広義には極座標系の原点はアームに対する相対位置関係が固定される点であればよく、アーム上の点以外の点を用いてもよい。この場合、極座標系の原点は、アームを動作させた場合であっても移動することがない固定点に設定されることが望ましい。上述したように、本実施形態で極座標系を設定することの利点は、当該極座標系の範囲とアームの可動範囲を対応づけることにより生じる。その点、極座標系の原点がアームが動いたときに移動してしまう点に設定されると、可動範囲との対応付けが充分でなくなるためである。
【００８４】
人間と同様のアーム構造を想定した場合の一例を示す。この場合のアームは肩関節、肘関節、手首関節を有することになる。ここで肘関節の位置は、肩関節の駆動（肩を回す動作に対応）により変化するものである。よって肘関節の位置に極座標系の原点を設定し、当該極座標系の距離範囲、角度範囲を肘から先のアームの可動範囲に対応づけたとしても、当該極座標系は肘関節の位置が決定され、決定された当該位置に肘関節がある場合に、肘から先を動かして到達することができる範囲を示すに過ぎない。よって作業空間の所与の位置にあるワークが作業対象となり得るか否かを判定する場合にも、まず肩関節の角度等を決定することで肘関節の位置を決めなければ判定をすることができない。さらに、肩関節が第１の状態であればワークを作業対象とできるが、肩関節が第２の状態であればワークを作業対象とできないというケースも生じうる。つまり、アーム全体として所与の位置のワークを作業対象とできるか否かの判定を行う必要があるのに、まず肩関節等の状態を決めなければそもそも判定ができない点、及び肩関節の状態に応じて判定結果が変化する可能性がある点で、肘関節を原点とする極座標系は好ましいものと言えない。
【００８５】
これに対して、肩関節を原点とする極座標系を設定し、その距離範囲、角度範囲を肩から先を動かすことで到達できる範囲に設定する場合を考える。この場合、腕自体をどのように動かしたとしても、肩関節の位置は変化しない（この場合腕の運動を考えているため、体の回転等は考慮していない）。つまり、対象としている腕がワークを作業対象とできるか否かという判定は、肩を原点とする極座標系を用いた判定を行えばよく、その際に何らかの付加的な条件（肘を原点とする場合で言う肩関節の角度）を設定する必要もない。これは腕の運動のみに着目した場合、肩関節は移動することのない固定点であるということに起因している。
【００８６】
以上をふまえ、本実施形態では第１のアームの固定点を原点とし、且つ当該固定点から先を動かすことでアーム（狭義にはアームのエンドポイントに設けられるハンド）が到達できる範囲に対応する距離範囲、角度範囲となる極座標系を、第１の極座標系として設定する。例えば、図６（Ａ）に示したように、第１のアーム３１０の固定点Ｓ１を原点とする第１の極座標系を設定する。なお、図６（Ａ）等では図をわかりやすく表現する便宜上、Ｓ１を固定点とし、Ｓ０の駆動は考慮していない。ただし、アームの構造を考慮すれば、図１４（Ａ）〜図１７（Ｄ）等のロボット動作に示すようにＳ０に関節が設けられてもよく、その場合は固定点、すなわち極座標系の原点はＳ０とすることが望ましい。
【００８７】
同様に、第２のアームについても、第２のアームの固定点を原点とし、且つ当該固定点から先を動かすことで第２のアームが到達できる範囲に対応する距離範囲、角度範囲となる極座標系を、第２の極座標系として設定する。具体的には図６（Ａ）に示した極座標系であってもよい。
【００８８】
また本実施形態では、第１のアーム３１０と第２のアーム３２０が設けられるロボット本体部（胴体部）の回転が行われることも想定している。具体的には、ロボットは、所定軸まわりに回転可能な本体部ＢＯと、本体部ＢＯに設けられる第１のアーム３１０及び第２のアーム３２０とを含む。
【００８９】
例えば、図２０（Ａ）に示したように、Ｐ１の位置にあるワークをＰ２まで移動させる作業は、第１のアーム３１０を駆動させることで実現できる。しかしこの作業は図２０（Ａ）の動作だけではなく、図２０（Ｂ）に示したように、第１のアーム３１０はワークを把持した状態で固定し、ロボット本体部ＢＯを回転させる動作でも実現可能である。そして図２０（Ａ）と図２０（Ｂ）のロボット動作を比較した場合、図２０（Ａ）では第１のアーム３１０に含まれる複数の関節を制御する必要があるのに対して、図２０（Ｂ）では本体部ＢＯの回転だけで実現可能であり制御が容易である。つまり、所望の作業によってはロボット本体部ＢＯの回転が有用なケースも多いと言うことができる。
【００９０】
しかし、本体部ＢＯの回転まで考慮した場合、第１，第２の極座標系と、ワークとの相対関係（広義には第１，第２の極座標系とロボットの作業空間との相対関係）が変化することになる。以下、図面等を用いた説明をわかりやすくするために第１の極座標系について説明するが、第２の極座標系についても同様である。
【００９１】
第１のアーム３１０は本体部ＢＯに設けられているため、本体部ＢＯが回転した場合には第１のアーム３１０も連動して回転移動することになる。そして本実施形態では第１の極座標系は第１のアーム３１０の可動範囲に対応するものとしているため、第１のアーム３１０と連動して移動することになり、第１の極座標系は図２０（Ａ）から図２０（Ｂ）に示したように変化することになる。
【００９２】
しかし、そもそも作業対象であるワークはロボットの作業空間（狭義には作業台に対応する空間、或いは平面）に配置されるものであり、レイアウト情報も作業空間上でのワークの初期位置等を表すものである。レイアウト情報は、例えば作業空間に対して設定される座標系（以下、作業空間座標系と記載）の座標値として与えられてもよい。よって、本体部ＢＯの回転により第１のアーム３１０の位置、及び第１の極座標系の位置が変化したとしても、ワークの絶対位置は不変であり、結果として第１の極座標系とワークの相対位置関係が変化することになる。
【００９３】
上述したように、本実施形態では、第１のアーム３１０の可動範囲に対応する距離範囲、角度範囲に設定された第１の極座標系と、所与のワークとの関係から、当該ワークが第１のアーム３１０の作業対象とできるか否かを判定する。具体的には、所与のワークが上記距離範囲、角度範囲にあれば、当該ワークは第１のアーム３１０で作業可能とする。つまり、第１の極座標系とワークの相対関係が変化したのであれば、変化後の状態を用いなければ適切な判定は不可能であり、本体部ＢＯの回転が行われるごとに、作業空間座標系と第１の極座標系との相対関係を求め直す必要がある。しかし、第１の極座標系の原点はロボット本体部ＢＯの回転軸とは一致しないものであるため、図２０（Ａ）、図２０（Ｂ）に示したように、本体部ＢＯの回転により、作業空間座標系における第１の極座標系の原点の位置が変化してしまう。そのため、作業空間座標系と第１の極座標系との相対関係を求め直すには、一般的に三角関数を用いた回転を表す演算が必要となり、これは通常の加減算に比べて処理負荷が重いものとなる。
【００９４】
それに対して本実施形態では、図６（Ｂ）に示したようにロボットの本体部ＢＯに対応する（狭義には本体部ＢＯの回転軸を原点とする）第３の極座標系を設定してもよい。具体的には、処理部１２０は、ロボットの本体部ＢＯに対応する第３の極座標系を設定する処理を行い、ワークの第１の位置から第２の位置までの移動を、第１の極座標系及び第２の極座標系の少なくとも一方と、第３の極座標系とを用いて表したワーク移動情報を生成し、ワーク移動情報に基づいて、ロボット動作情報を生成する。
【００９５】
この場合、第３の極座標系の原点は、本体部ＢＯによる回転があったとしても位置が変化しない固定点となる。つまり、本体部ＢＯでの回転の前後でも、第３の極座標系の原点は変化せず、角度方向が変化するのみである。図２４（Ａ）に示したように、作業空間座標系における所与の点Ｐ３に配置されたワークが、回転動作前の第３の極座標系で（ｒ１，θ１）である場合に、本体部ＢＯがθ’だけ回転したとする。その場合、回転動作後の第３の極座標系でのＰ３の座標値（ｒ２，θ２）の関係を考えると、図２４（Ｂ）に示したように回転前後でも第３の極座標系の原点とＰ３との距離は不変であるため、ｒ１＝ｒ２となる。また、角度についても、第３の極座標系がθ’だけ回転したのであるから、作業空間座標系における定点であるＰ３は、第３の極座標系に対して相対的に−θ’だけ回転していることになり、θ２＝θ１−θ’となる（なお図２４（Ａ）等ではθ１とθ２が負の値であるため｜θ２｜＝｜θ１｜＋θ’である）。つまり、第３の極座標系を設定することで、本体部ＢＯでの回転があったとしても、回転後の第３の極座標系とワークの相対関係を、角度の加減算により容易に求めることが可能になる。
【００９６】
ここで、第１の極座標系と第３の極座標系は、ともにロボットに対応して設定される座標系であるため、本体部ＢＯの回転があったとしてもその相対関係は不変である。つまり、座標系の設定の際に、第１のアーム３１０の可動範囲に対応する第１の極座標系の範囲を、第３の極座標系を用いて表現した情報を取得しておけば、当該情報は本体部ＢＯの回転があった後もそのまま利用可能である。よって、本体部ＢＯの回転によりロボットとワークの相対関係が変化した場合であっても、変化後のワークの位置を第３の極座標系で表現した情報と、座標系設定時に求めておいた第３の極座標系で表現した第１の極座標系の範囲の情報との比較処理から、回転後のワークが第１のアーム３１０で作業対象とすることができるか否かを容易に判定することができる。或いは、第１の極座標系と第３の極座標系の関係が不変であることから、第３の極座標系での座標値を第１の極座標系に変換する座標変換処理の内容を事前に求めておいてもよい。そして、角度の加減算により第３の極座標系における回転後のワーク位置の座標値が求められた場合に、当該座標値に対して既知の座標変換処理を行うことで、第１の極座標系における回転後のワーク位置の座標値を求めてもよい。
【００９７】
以上のことから、第３の極座標系を設定することで、三角関数等を用いた負荷の高い演算を行うことなく、角度の加減算により本体部ＢＯの回転を考慮した処理を行うことが可能になる。なお、実際にロボット制御を行う段階においては、位置を表す情報はロボットに設定された座標系（第１〜第３の極座標系）ではなく、作業空間に設定された作業空間座標系で表現することになる。そのため、本実施形態の処理においてワークの初期位置等を第１〜第３の極座標系で表現して処理を行ったとしても、ロボット制御を行うまでのいずれかのフェーズにおいて、作業空間座標系へ座標変換処理を行う必要がある。その際には、ロボット本体部ＢＯの回転量等に応じて、三角関数を用いた回転についての演算を行う必要があり、この演算については第３の極座標系を設定したとしても回避することはできない。ただし、この処理負荷の高い演算は、極座標系を用いたロボット動作情報の生成後、変換用に１回行えば充分であり、本体部ＢＯの回転毎での高負荷の演算を抑止できる点で、第３の極座標系を設定することは有用と言える。
【００９８】
なお、処理部１２０は、第１の極座標系及び第２の極座標系を回転させる第３の極座標系を設定する処理を行い、ワークの第１の位置から第２の位置までの移動を、第１の極座標系及び第２の極座標系の少なくとも一方と、第３の極座標系とを用いて表したワーク移動情報を生成し、ワーク移動情報に基づいて、ロボット動作情報を生成してもよい。
【００９９】
上述した第３の極座標系を設定する利点は、当該極座標系に対応する点が作業空間座標系で移動しないこと、及び第３の極座標系と、第１，第２の極座標系との相対関係が不変であることが満たされるということに起因している。つまり、第３の極座標系が設定される点は、第１のアーム３１０と第２のアーム３２０が直接的に接続されるロボット本体部ＢＯである必要はない。具体的には、当該点まわりの回転を行うことで、第１の極座標系と第２の極座標系が連動して回転する点に第３の極座標系を設定すればよいことになる。
【０１００】
３．３  ロボット動作情報生成処理
次にレイアウト情報と設定した極座標系に基づいて、ロボット動作情報を作成する処理について説明する。
【０１０１】
まずは、ワーク移動情報生成部１２３において、与えられたレイアウト情報を、設定した極座標系に落とし込む処理を行う。具体的には、ワークの初期位置、最終位置、途中位置を極座標系の座標値を用いて表現する。なお、第３の極座標系は特にロボットの可動範囲と対応するものではないため、距離範囲や角度範囲が限定されない。よってワークの初期位置等は第３の極座標系においては何らかの値として表現可能である。一方、第１の極座標系及び第２の極座標系は、各アームの可動範囲に対応する距離範囲や角度範囲に設定される。よって、ワークの位置によっては、当該位置が第１の極座標系と第２の極座標系の一方では表現できるが他方では表現できない、或いは両方で表現することができないといったケースが生じうる。上述したように、本実施形態では第１，第２の極座標系で表現できるか否かを判断基準として、ワークの移動に用いるアームの決定等を行う。
【０１０２】
具体例を図を用いて説明する。ワークＡ、ワークＢの初期位置は図５に示した位置であることがレイアウト情報からわかっている。また、第１の極座標系及び第２の極座標系は図６（Ａ）の示したように設定されるため、これらを合わせることで図７（Ａ）のようになる。これにより、ワークＡの初期位置は、第１の極座標系では角度が−１０°、距離が４５０となるため（−１０，４５０）Ｌと表記できる。一方、ワークＡの初期位置は第２の極座標系の距離範囲、角度範囲には含まれないため、第２の極座標系によりワークＡの初期位置を表現することはできないという結果が得られる。なお、以下の説明では角度をθ、距離をｒ、極座標系を表す文字をＸとした場合に、（θ，ｒ）Ｘにより極座標系での位置を表記するがこれに限定されるものではない。なお以下の説明では、所与の位置を第１の極座標系で表した場合にＸ＝Ｌとし、第２の極座標系ではＸ＝Ｒ、第３の極座標系ではＸ＝Ｗとする。
【０１０３】
また、第３の極座標系は図６（Ｂ）に示したように設定されるため、図５と図６（Ｂ）を合わせることで図７（Ｂ）のようになる。これにより、ワークＡの初期位置は（−２０，４８０）Ｗと表記することができる。
【０１０４】
同様に、ワークＢの初期位置は（−５，２００）Ｗ、（２５，３００）Ｌ、（−４０，４００）Ｒと表現できる。また、ワークＡとワークＢが組み付けられたワークＡ＋Ｂについては、除材エリアＣが最終位置となり、除材エリアＣは図５に示したようにワークに比べて大きい領域となる。よって本実施形態においては、除材エリアＣの複数の代表点の座標値を表記することで、所与の範囲を有する除材エリアＣの位置を表現するものとし、具体的には、図５等における除材エリアＣの左上の点と右下の点の座標値を並べて表記する。これにより、図１２に示したように、ワークＡ＋Ｂの最終位置は［（１０，４００），（３０，３８０）］Ｗ、［（−１０，４２０），（１５，３００）］Ｒと表現できる。
【０１０５】
途中位置についても同様であり、図９（Ａ）、図９（Ｂ）よりワークＡの途中位置は（０，２１０）Ｗ、（３０，３７０）Ｌ、（−３０，３９０）Ｒと表現され、ワークＢの途中位置は（−５，３８０）Ｗ、（２０，４５０）Ｌ、（−２５，４７０）Ｒと表現される。
【０１０６】
ここで、図９（Ａ）に示した途中状態から図８（Ａ）に示した最終状態へ移行するためには、ワークＡに対して上からワークＢを組み付ける作業が必要となる。つまり、図１０（Ａ）に示したように（０，２１０）Ｗの位置にあるワークＡの上に、ワークＢを移動させるステップも必要となり、図１２にはこの作業を右から２列目に記載している。つまりワークＢについては図９（Ａ）に示した途中位置（−５，３８０）Ｗだけではなく、図１０（Ａ）に示した（０，２１０）Ｗも途中位置として用いることになる。なお、図１０（Ａ）に示した組み付けに関する情報は、レイアウト情報として与えられるものであってもよいし、図８（Ａ）及び図９（Ａ）等の情報に基づいて制御装置１００の処理部１２０において作成してもよい。
【０１０７】
以上の処理により、ワークＡについて（−２０，４８０）Ｗ→（０，２１０）Ｗという移動、ワークＢについて（−５，２００）Ｗ→（−５，３８０）Ｗ→（０，２１０）Ｗという移動、ワークＡ＋Ｂについて（０，２１０）Ｗ→［（１０，４００），（３０，３８０）］Ｗという移動を行えばよいという情報が得られる。またこれに合わせて、ワークＡの初期位置（−２０，４８０）Ｗは第１の極座標系では表現できるが第２の極座標系では表現できないという情報、及びワークＡ＋Ｂの最終位置［（１０，４００），（３０，３８０）］Ｗは第２の極座標系では表現できるが第１の極座標系では表現できないという情報が取得される。
【０１０８】
さらにワーク移動情報生成部１２３では、各ワークの初期位置、途中位置、最終位置の間を必要に応じて補間することで、１又は複数のワーク移動情報を生成する。例えばワークＡの（−２０，４８０）Ｗ→（０，２１０）Ｗという移動から、この２点間の移動経路を補間する。補間により求められる移動経路は図１８のＲ２に示したような直線的な経路であってもよいし、Ｒ１に示したような曲線的な経路であってもよい。
【０１０９】
図１８のＲ１やＲ２等に示したように、初期位置、途中位置、最終位置が決定されたとしても、それらの位置から求められるワーク移動情報は１つとは限らない。よって本実施形態のワーク移動情報生成部１２３では、複数のワーク移動情報を出力してもよい。
【０１１０】
なお、上述してきたように、第１の極座標系及び第２の極座標系については、当該極座標系を用いてワークの位置を表現できない場合、当該ワークは対応するアームで作業をすることができないということになる。つまり、第１の極座標系と第２の極座標系のいずれでも表現することができない位置は、対象としているロボットではどのアームを用いたとしても到達することができない位置となる。よって、ワーク移動情報生成部１２３において、そのような位置を通過するワーク移動情報を生成したとしても、当該ワーク移動情報に沿ったロボット動作情報は実行不可能なものとなるため、当該ワーク移動情報に対して処理を行う利点はない。
【０１１１】
そこで本実施形態では、そのような不要なワーク移動情報の生成を抑止するために、第１の極座標系の距離範囲と角度範囲、及び第２の極座標系の距離範囲と角度範囲に関する情報を、ワーク移動情報生成部１２３に対して出力し、ワーク移動情報生成部１２３では当該情報を用いてワーク移動情報を生成してもよい。具体的には、ワークの初期位置、途中位置、最終位置を補間してワーク移動情報を求める際に、上記距離範囲及び角度範囲を外れる経路を除外する処理を行えばよい。このようにすれば、生成されるワーク移動情報に沿ったワークの移動は、ロボットのいずれかのアームを用いれば実現可能なものとなる。
【０１１２】
また、第１の極座標系の距離範囲と角度範囲、及び第２の極座標系の距離範囲と角度範囲に関する情報を、ワークの初期位置等の判定に用いてもよい。レイアウト情報から求められたワークの初期位置等が第１，第２の極座標系のいずれでも表現できなければ、当該ワークに対してはレイアウト情報に沿った作業を行うことができないということになる。その場合には、対象としているロボットにおいては、入力されたレイアウト情報が不適切であったと判定し、レイアウト情報の再入力を求める等のエラー処理を行ってもよい。
【０１１３】
以上の処理により生成されたワーク移動情報に基づいて、ロボット動作情報生成部１２７においてロボット動作情報を生成する。ここでロボット動作情報とは、ワーク移動情報により表されるワークの移動を実現するロボット動作に対応する情報である。ただし、後段のユニットでより詳細な処理が行われるため、本実施形態のロボット動作情報はアーム等の関節角を細かく規定するものでなくてもよい。例えば、本実施形態のロボット動作情報は、ワーク移動情報により表されるワークの移動を実行するアームを特定することで得られる情報であってもよい。つまり、ワークＡの（−２０，４８０）Ｗ→（０，２１０）Ｗの移動等について、当該移動を第１のアームで行うか、第２のアームで行うかを規定すればよい。そのため、第１のアームを用いてワークＡを（−２０，４８０）Ｗから（０，２１０）Ｗへ移動するに当たって、第１のアームに含まれる各関節の角度をどのように制御するかまでは規定しなくてよい。
【０１１４】
まず使用するアームの選択においては、第１のアームであれば到達できるが第２のアームでは到達できない位置を含む移動では第１のアームを用いる必要がある。同様に、第２のアームであれば到達できるが第１のアームでは到達できない位置を含む移動では第２のアームを用いる必要がある。よって、ワーク移動情報に含まれる移動のうち、いずれかのアームのみで到達可能な位置については、当該到達可能なアームにより移動を行うとの決定を行う。
【０１１５】
具体的には、処理部１２０は、レイアウト情報により表されるワークの配置位置が、第１の角度範囲及び第１の距離範囲に設定された第１の極座標系により表される場合には、配置位置を始点又は終点として、第１のアームによりワークを移動させるロボット動作情報を生成し、レイアウト情報により表されるワークの配置位置が、第２の角度範囲及び第２の距離範囲に設定された第２の極座標系により表される場合には、配置位置を始点又は終点として、第２のアームによりワークを移動させるロボット動作情報を生成する。
【０１１６】
例えば、ワークＡの初期位置（−２０，４８０）Ｗは、第１の極座標系では（−１０，４５０）Ｌと表現できるが、第２の極座標系では表現できないため、第１のアーム（左腕）であれば到達できるが第２のアームでは到達できない。よって図７（Ａ）の例では、ワークＡの（−２０，４８０）Ｗ→（０，２１０）Ｗへの移動は第１のアームで行うものとする。
【０１１７】
同様に、組み付け後のアームＡ＋Ｂの最終位置［（１０，４００），（３０，３８０）］Ｗは、第２の極座標系では［（−１０，４２０），（１５，３００）］Ｒと表現できるが、第１の極座標系では表現できないため、第２のアーム（右腕）であれば到達できるが第１のアームでは到達できない領域を含むことになる。よって図８（Ａ）の例では、ワークＡ＋Ｂの（０，２１０）Ｗ→［（１０，４００），（３０，３８０）］Ｗへの移動は第２のアームで行うものとする。
【０１１８】
これにより、第１，第２の極座標系でワークの位置が表されるか否かに基づいて、適切なアームの選択を行ってロボット動作情報を生成することが可能になる。そのため、生成されたロボット動作情報が、対象としているロボットでは実現不可能なものとなる可能性を抑止できる。
【０１１９】
一方、複数のアームが到達可能な位置での移動は、第１のアームで行ってもよいし、第２のアームで行ってもよい。例えば、ワークＢの（−５，２００）Ｗ→（−５，３８０）Ｗの移動は、（−５，２００）Ｗが第１の極座標系で（２５，３００）Ｌ、第２の極座標系で（−４０，４００）Ｒと表現でき、且つ（−５，３８０）Ｗが第１の極座標系で（２０，４５０）Ｌ、第２の極座標系で（−２５，４７０）Ｒと表現できることから、いずれのアームも用いることが可能である。同様に、ワークＢの（−５，３８０）Ｗ→（０，２１０）Ｗへの移動についても、（０，２１０）Ｗが第１の極座標系で（３０，３７０）Ｌ、第２の極座標系で（−３０，３９０）Ｒと表現できることから、いずれのアームも用いることが可能である。
【０１２０】
また、作業の順序としては、ワークＡを組み付け作業位置（０，２１０）Ｗに移動させるためには、ワークＢを初期位置（−５，２００）Ｗから途中位置（−５，３８０）Ｗに退避させておく必要がある。それらをふまえると、本実施形態のロボット動作情報は図１３に示した作業順序１〜４により表される情報となる。ただし、図１３に示したように、作業順序１及び作業順序３については第１のアーム３１０と第２のアーム３２０のいずれを用いてもよいため、ロボット動作情報としては用いるアームを特定した４通りの情報が生成されることになる。
【０１２１】
以上の流れを図示したものが図１４（Ａ）〜図１４（Ｄ）である。なお図１４（Ａ）〜図１４（Ｄ）は作業順序１及び作業順序３を第２のアーム３２０により実行する例である。まず、作業順序１に対応する動作として、図１４（Ａ）に示したように、ワークＢを右腕を用いて（−５，２００）Ｗから（−５，３８０）Ｗへ移動する。次に、作業順序２に対応する動作として、図１４（Ｂ）に示したように、ワークＡを左腕を用いて（−２０，４８０）Ｗから（０，２１０）Ｗへ移動する。次に、作業順序３に対応する動作として、図１４（Ｃ）に示したように、ワークＢを右腕を用いて（−５，３８０）Ｗから（０，２１０）Ｗへ移動して組み付け作業を行う。最後に、作業順序４に対応する動作として、図１４（Ｄ）に示したように、組み付け作業後のワークＡ＋Ｂを右腕を用いて（０，２１０）Ｗから［（１０，４００），（３０，３８０）］Ｗ（除材エリアＣ）へ移動する。
【０１２２】
ただし、上述したように作業順序１及び作業順序３の少なくとも一方を第１のアーム３１０により行ってもよい。具体的には、作業順序１に用いるアームを第１のアーム３１０に変更した動作は図１５（Ａ）〜図１５（Ｄ）のようになる。図１４（Ａ）と比較した場合、図１５（Ａ）に示したようにワークＢを（−５，２００）Ｗから（−５，３８０）Ｗへ移動する動作に左腕が用いられることになる。同様に、作業順序３に用いるアームを第１のアーム３１０に変更した動作が図１６（Ａ）〜図１６（Ｄ）となり、作業順序１と作業順序３の両方に用いるアームを第１のアーム３１０に変更した動作が図１７（Ａ）〜図１７（Ｄ）となる。
【０１２３】
また、上述したように個々の移動についても、始点終点間の補間経路は複数の候補が考えられる。例えば、図１８において初期位置から途中位置までワークを第１のアーム３１０を用いて移動させるという場合にも、当該移動はＲ１に沿って行われてもよいし、Ｒ２に沿って行われてもよい。
【０１２４】
以上の点を鑑みるに、１つのレイアウト情報の入力に対して、複数のロボット動作情報が候補として得られることになり、場合によっては非常に多くのロボット動作情報の候補が取得されることもある。本実施形態では取得された複数のロボット動作情報を全て出力してもよい。
【０１２５】
しかし、作成されるロボット動作は少数（狭義には１つ）に限定されることが望ましい。上述したように、本実施形態の処理が複数の処理工程のうちの上流工程に対応し、粗いロボット動作を求めるものである場合があり、下流工程での計算量を削減するためには、上流工程の比較的粗い処理において、探索空間を限定しておくことが重要となるためである。
【０１２６】
よって、制御装置１００の処理部１２０は、ロボット動作情報が複数求められた場合に、各ロボット動作情報についての作業評価値（作業コスト）を求め、求めた作業評価値に基づいて決定された１つのロボット動作情報を出力する。
【０１２７】
これにより、複数のロボット動作情報のうち、適切なものを選択することが可能になり、出力するロボット動作情報の数を限定することも可能になる。ロボット動作情報を１つ（或いは２以上であるが所与の閾値以下となる少数）に限定すれば、後段のユニットの処理負荷を抑えることが可能になる。また、作業コストを用いて出力を決定するため、より望ましいロボット動作情報を残すことが可能になる。なお、どのようなロボット動作情報を望ましいとするかは作業評価値としてどのような評価値を用いるかに依存する。例えば、アームのエンドエフェクターの移動距離や移動時間等を評価値として用いてもよい。或いは、ロボットの構造を考慮して作業評価値を算出してもよく、例えば後述する図２３に示すフローチャートのように、第１のアームと第２のアームとでそれぞれ作業評価値を算出してもよい。具体例を以下に示す。
【０１２８】
作業コストの算出手法は種々考えられるが、例えば移動時間をコストとしてもよい。例えば図１８に示したように所与のワークを初期位置から途中位置を経て最終位置まで移動させる場合に、Ｒ１とＲ２で示した２つの経路が候補となったとする。この際、アームのエンドエフェクター（ハンド）の移動距離ができるだけ短い方が好ましい経路であると考えることもできる。その場合、Ｒ１の経路長Ｌ１とＲ２の経路長Ｌ２をそれぞれ作業コストとして求めればよい。この場合、図１８から明らかなようにＬ２＜Ｌ１となるため、よりコストの低い（移動距離が短い）Ｒ２の方がＲ１よりもよいとしてＲ２を出力対象とすればよい。なお、移動速度が等速であるとの仮定をすれば、Ｌ１，Ｌ２を作業コストとする判定は移動時間が短い経路を採用する判定と同義である。
【０１２９】
また、初期位置から最終位置までの移動時間を作業コストとしてもよい。通常のアームは速度０の状態から徐々に加速して最高速度に到達し、停止する際にも徐々に減速して速度が０の状態となる。つまり、加減速を考慮しない場合の速度変化が図２１（Ａ）となるのに対して、図２１（Ｂ）に示したように、速度変化を台形近似等を用いて処理する方がより正確なものとなる。図２１（Ｂ）のような台形近似では、台形の面積が移動距離に対応する。つまりＲ１やＲ２の経路長Ｌ１，Ｌ２が求められれば、台形の面積がＬ１となるときの図２１（Ｂ）のｔがＲ１についての移動時間を表し、台形の面積がＬ２となるときの図２１（Ｂ）のｔがＲ２についての移動時間を表す。よってこのｔを作業コストとして、出力するロボット動作情報を決定してもよい。
【０１３０】
なお、図２１（Ｂ）の台形近似を行う場合、台形の傾きは加速度及び減速度により決定されるものであり、台形の高さは最大速度により決定されるものである。これらは関節を駆動するモーター（広義にはアクチュエーター）の機械的な性能により決定されてもよい。或いは台形の傾きや高さを、ユーザー入力等に応じて変更するものであってもよい。例えば、ユーザーが高速でワークを移動させることを重視しているのであれば、加速及び減速は最大値とするとよい。ここでの最大値とは、例えば関節を駆動するモーターの機械的な性能により決定される最大加速度、最大減速度に対応する値である。一方、液体が入れられたコップ等を移動させる場合のように、急激な加減速を避けてゆっくり移動させることが重要な場合もある。その場合には、「ゆっくり移動させたい」というユーザー入力に基づいて、加速及び減速を緩やかに行う設定を行えばよい。加速度及び減速度が変更されれば、それに応じて算出される作業コストも変化する。つまり、ユーザーがどのような観点を重視しているかに応じて、算出される作業コストが変更されるものとしてもよい。
【０１３１】
さらにアームの構造等の情報を用いて作業コストの算出を行ってもよい。例えば、所与のアームにより作業を行う場合、当該アームが伸びた状態で行われるよりも、当該アームを畳んだ状態で行われる動作の方が制御が容易である。これはアームが伸びている場合、手先位置はアームの動作軸（回転軸）からの距離が大きく、より大きなモーメントが発生してしまうため、所望の位置での停止が難しくなることに起因する。つまり、左右のいずれのアームでの到達可能な位置で移動を行う場合であっても、より近い方のアームを用いるロボット動作情報の方が実現が容易である。この点を考慮して、所与のワークを所与の経路で移動させる場合にも、第１のアームを用いるか第２のアームを用いるかによって、当該経路に沿って算出される作業コストの値が異なるような作業コスト算出処理を行ってもよい。具体的には、遠い方のアームを用いる場合の作業コストに比べて、近い方のアームを用いる場合の作業コストが小さくなるような算出処理を行う。
【０１３２】
また、アームが複数の関節を含む場合、当該複数の関節のうち２以上の関節を連動して駆動させる必要がある動作に比べて、１つの関節だけを駆動すれば実現可能な動作の方が制御が容易である。本実施形態の処理では細かい関節の駆動までは踏み込まないことが想定されるが、単一の関節の駆動による手先の移動は、円形（或いは３次元での円形を２次元に射影した形状）となることはアームの構造を詳細に解析せずとも理解可能である。よって、ワークの移動経路が円形に近いか否か等の観点から作業コストの算出処理を行ってもよい。
【０１３３】
その他、作業コストの算出手法及び、算出されたコストを用いたロボット動作情報の選択手法は種々の変形実施が可能である。
【０１３４】
３．４  本実施形態の処理の流れ
図２２及び図２３を用いて本実施形態の処理の流れを説明する。図２２が本実施形態の処理の基本フローであり、この処理が開始されるとまず始状態に対応するレイアウト情報を取得する（Ｓ１０１）。始状態とは例えば図５に示した状態であり、レイアウト情報としては作業台上に図５に示した位置に配置されたワークＡ及びワークＢを撮像した撮像画像等を取得すればよい。
【０１３５】
そして、Ｓ１０１で取得されたレイアウト情報からワークのサイズ情報を取得するとともに（Ｓ１０２）、作業空間のサイズも取得する（Ｓ１０３）。なお図５の例等であれば、作業空間のサイズとは作業台のサイズに対応する。
【０１３６】
次に極座標系の設定を行う（Ｓ１０４）。具体的には、第１のアーム３１０に対応する第１の極座標系と、第２のアーム３２０に対応する第２の極座標系の設定を行う。第１の極座標系は第１のアーム３１０の可動範囲に対応する距離範囲、角度範囲に設定され、第２の極座標系は第２のアーム３２０の可動範囲に対応する距離範囲、角度範囲に設定される。また、Ｓ１０４の処理において、ロボットの本体部ＢＯに対応する第３の極座標系の設定も行う。
【０１３７】
さらに、終状態に対応するレイアウト情報を取得する（Ｓ１０５）。終状態は例えば図８（Ａ）に示した状態である。なお、図２２のフローチャートでは、始状態に対応するレイアウト情報と終状態に対応するレイアウト情報を別タイミングで取得するものとしたがこれに限定されず、Ｓ１０２〜Ｓ１０４の前にＳ１０５の処理を行ってもよい。また、図２２のフローチャートではワークの途中位置に対応する途中状態（中間状態）は考慮していないが、レイアウト情報にワークの途中位置を含めてもよいことは上述したとおりである。
【０１３８】
次に、Ｓ１０１及びＳ１０５で取得されたレイアウト情報と、Ｓ１０４で設定した極座標系を用いて、ワークの初期位置、最終位置を極座標系と対応づける（Ｓ１０６）。これは例えば、各位置を極座標系を用いて表すことで、図１２に示した情報を取得する処理に対応する。
【０１３９】
Ｓ１０６で作成された情報に基づいて、ワーク移動情報を生成する（Ｓ１０７）。本実施形態でのワーク移動情報は、図１２に示した情報に加えて、初期位置と最終位置の間の経路を補間した情報を想定している。例えば、図１８のＲ１やＲ２等をワーク移動情報としてもよい。
【０１４０】
そして、ワーク移動情報に基づいてロボット動作情報の生成を行う。これは、作業コスト（作業評価値）の算出処理（Ｓ１０８）と、算出された作業コストに基づくロボット動作情報の作成（選択）、出力処理（Ｓ１０９）により実現される。Ｓ１０９では、複数のロボット動作情報の候補のうち、Ｓ１０８で算出された作業コストが最小となるロボット動作情報を出力として決定する処理が行われる。
【０１４１】
Ｓ１０８の処理の具体的な流れの例を図２３に示す。作業コストの算出処理では、まず移動経路に沿った移動距離を積算する（Ｓ２０１）。ここでは移動距離、或いは図２１（Ａ）に示したように等速での移動を想定した場合の移動速度を作業コストとして用いることを想定している。ただし、図２１（Ｂ）に示したように速度変化等を考慮した作業コストの算出を行ってもよいことは上述したとおりである。
【０１４２】
Ｓ２０１の処理結果を作業コストとしてもよいが、図２３のフローチャートでは第１，第２のアームによる違いも考慮して作業コストを求めるものとしている。具体的には、移動経路に沿った移動距離を、第１のアームによる移動距離と、第２のアームによる移動距離に分け、アームごとに積算処理を行う（Ｓ２０２）。そして各アームについての作業コストを求めることで、処理対象としているロボット動作情報全体についての作業コストを求める（Ｓ２０３）。この際、上述したように用いられるアームに応じて、算出される評価値を異なるものとしてもよい。
【０１４３】
なお、本実施形態の制御装置１００等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態の制御装置１００等が実現される。具体的には、非一時的な情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【０１４４】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また制御装置、ロボットシステム等の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１４５】
Ａ１、Ａ２  関節、Ａ３、Ａ４  フレーム、Ａ５  エンドポイント、Ａ６  ハンド、
１００  制御装置、１１０  情報取得部、１２０  処理部、１２１  極座標系設定部、
１２３  ワーク移動情報生成部、１２７  ロボット動作情報生成部、
１２９  作業コスト算出部、３００  ロボット本体、３１０  第１のアーム、
３１１，３１３  関節、３１５，３１７  フレーム、３１９  エンドエフェクター、
３２０  第２のアーム、４００  ベースユニット部、ＢＯ  本体部
【図１】
2015058493.tif 000003
【図２】
2015058493.tif 000004
【図３】
2015058493.tif 000005
【図４】
2015058493.tif 000006
【図５】
2015058493.tif 000007
【図６】
2015058493.tif 000008
【図７】
2015058493.tif 000009
【図８】
2015058493.tif 000010
【図９】
2015058493.tif 000011
【図１０】
2015058493.tif 000012
【図１１】
2015058493.tif 000013
【図１２】
2015058493.tif 000014
【図１３】
2015058493.tif 000015
【図１４】
2015058493.tif 000016
【図１５】
2015058493.tif 000017
【図１６】
2015058493.tif 000018
【図１７】
2015058493.tif 000019
【図１８】
2015058493.tif 000020
【図１９】
2015058493.tif 000021
【図２０】
2015058493.tif 000022
【図２１】
2015058493.tif 000023
【図２２】
2015058493.tif 000024
【図２３】
2015058493.tif 000025
【図２４】
2015058493.tif 000026