(57)【要約】【課題】  次の動作生成に必要な情報を用いることができる演算装置、演算方法、および演算プログラムを提供する。【解決手段】  演算装置は、複数のロボットの協調動作によって柔軟物に対してフォーミングを行うための動作シナリオから１以上の要素作業を抽出し、抽出した前記要素作業に含まれる１以上の各動作について前記複数のロボットの教示点を生成する動作生成部と、前記教示点が生成された前記動作終了時の前記複数のロボットのフォーミング状態を保存する保存部と、を備える。【選択図】  図２
2019188487.tif 000002
【特許請求の範囲】
【請求項１】
複数のロボットの協調動作によって柔軟物に対してフォーミングを行うための動作シナリオから１以上の要素作業を抽出し、抽出した前記要素作業に含まれる１以上の各動作について前記複数のロボットの教示点を生成する動作生成部と、
前記教示点が生成された前記動作終了時の前記複数のロボットのフォーミング状態を保存する保存部と、を備えることを特徴とする演算装置。
【請求項２】
前記動作生成部がいずれかの要素作業を抽出した場合に、抽出した当該要素作業の１つの前の要素作業の最後の動作終了時の前記フォーミング状態を参照し、抽出した当該要素作業の実行可否を判定する判定部を備えることを特徴とする請求項１記載の演算装置。
【請求項３】
前記フォーミング状態は、前記複数のロボットによる前記柔軟物の把持情報を含み、
前記判定部は、前記最後の動作終了時の前記把持情報に応じて、前記実行可否を判定することを特徴とする請求項２記載の演算装置。
【請求項４】
前記フォーミング状態は、前記複数のロボットによる前記柔軟物の把持情報を含み、
前記動作生成部は、いずれかの要素作業を抽出した場合に、抽出した当該要素作業の１つ前の要素作業の最後の動作終了時の前記フォーミング状態を参照し、抽出した当該要素作業の最初の動作と前記最後の動作終了時の前記複数のロボットによる前記柔軟物の把持状態とが重複する場合に、前記最初の動作を省略することを特徴とする請求項１記載の演算装置。
【請求項５】
前記フォーミング状態は、前記柔軟物の制御可能長を含み、
前記動作生成部は、いずれかの動作の教示点を生成する場合に、１つ前の動作終了時の前記制御可能長を用いることを特徴とする請求項１記載の演算装置。
【請求項６】
前記制御可能長は、前記柔軟物の固定位置情報と、前記複数のロボットによる前記柔軟物の把持情報とから求まることを特徴とする請求項５記載の演算装置。
【請求項７】
動作生成部が、複数のロボットの協調動作によって柔軟物に対してフォーミングを行うための動作シナリオから１以上の要素作業を抽出し、抽出した前記要素作業に含まれる１以上の各動作について前記複数のロボットの教示点を生成し、
保存部が、前記教示点が生成された前記動作終了時の前記複数のロボットのフォーミング状態を保存する、ことを特徴とする演算方法。
【請求項８】
コンピュータに、
複数のロボットの協調動作によって柔軟物に対してフォーミングを行うための動作シナリオから１以上の要素作業を抽出し、抽出した前記要素作業に含まれる１以上の各動作について前記複数のロボットの教示点を生成する処理と、
前記教示点が生成された前記動作終了時の前記複数のロボットのフォーミング状態を保存する処理と、を実行させることを特徴とする演算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、演算装置、演算方法、および演算プログラムに関する。
【背景技術】
【０００２】
複数のロボットに協調動作を教示する技術が求められている。例えば、複数のロボットの協調動作によって柔軟物を組み付ける技術が開示されている（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−０６９５８７号公報
【特許文献２】特開２０１７−１１３８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
協調動作の動作シナリオのパラメータとして、各ロボットの教示点を格納することが考えられる。しかしながら、教示点だけを格納しておいても、次の動作の実行可否や次の動作の生成ができない場合などがある。すなわち、次の動作生成に必要な情報が不足する場合がある。
【０００５】
本件は上記課題に鑑みなされたものであり、次の動作生成に必要な情報を用いることができる演算装置、演算方法、および演算プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、演算装置は、複数のロボットの協調動作によって柔軟物に対してフォーミングを行うための動作シナリオから１以上の要素作業を抽出し、抽出した前記要素作業に含まれる１以上の各動作について前記複数のロボットの教示点を生成する動作生成部と、前記教示点が生成された前記動作終了時の前記複数のロボットのフォーミング状態を保存する保存部と、を備える。
【発明の効果】
【０００７】
次の動作生成に必要な情報を用いることができる。
【図面の簡単な説明】
【０００８】
【図１】実施例１に係る演算装置を備えるロボットシステムの概略図である。
【図２】演算装置のブロック図である。
【図３】（ａ）〜（ｆ）は第１ロボットおよび第２ロボットの双腕協調作業を例示する図である。
【図４】フォーミングルートを例示する図である。
【図５】（ａ）はフォーミングルート情報を例示する図であり、（ｂ）は経由点の３次元位置座標系を例示する図であり、（ｃ）は回転座標系を例示する図である。
【図６】要素作業一覧を例示する図である。
【図７】教示点格納部に格納される教示点のテーブルを例示する図である。
【図８】動作シナリオの各要素作業と、要素作業ごとの教示点を例示する図である。
【図９】第１ロボットおよび第２ロボットが行う一連の動作シナリオの各要素作業と、要素作業ごとの教示点を例示する図である。
【図１０】（ａ）および（ｂ）は実行できない場合を例示する図である。
【図１１】（ａ）および（ｂ）は動作が重複する場合を例示する図である。
【図１２】（ａ）〜（ｃ）は倣いを例示する図である。
【図１３】フォーミング状態を参照する場合を例示する図である。
【図１４】（ａ）は把持情報を例示する図であり、（ｂ）は最終固定位置情報を例示する図であり、（ｃ）および（ｄ）は制御可能柔軟物長を例示する図である。
【図１５】（ａ）および（ｂ）はフォーミング状態を用いて実行可否を判定する場合を例示する図である。
【図１６】（ａ）および（ｂ）はフォーミング状態を用いて動作の重複を判定する場合を例示する図である。
【図１７】動作シナリオに基づく動作生成処理のフローチャートを例示する図である。
【図１８】各要素作業を実行するために、１つ前の動作終了時に満たしていなければならないケーブル把持状態を例示する図である。
【図１９】各要素作業の動作フロー構成を例示する図である。
【図２０】制御可能柔軟物長の計算が必要な要素作業と、制御可能柔軟物長の計算が不要な要素作業とを例示する図である。
【図２１】（ａ）および（ｂ）は制御可能柔軟物長を用いる場合を例示する図である。
【図２２】演算装置のハードウェア構成を例示するブロック図である。
【図２３】ロボットシステムの他の例を表す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、実施例について説明する。
【実施例１】
【００１０】
図１は、実施例１に係る演算装置３０を備えるロボットシステム１００の概略図である。ロボットシステム１００は、双腕協調動作を行う装置である。図１で例示するように、ロボットシステム１００は、複数のロボット（第１ロボット１０および第２ロボット２０）、演算装置３０、表示装置３０ａ、制御装置４０などを備える。第１ロボット１０および第２ロボット２０は、例えば垂直多関節アームロボットであり、双腕協調動作により製品の組立などを行う。例えば、第１ロボット１０および第２ロボット２０は、ケーブル等の柔軟物を把持し、ワークの所定点に固定することで組み付ける。
【００１１】
ここで、双腕協調動作について説明する。双腕協調動作は、各々のアームロボットが互いの位置および姿勢に応じて作業を行う形態である。双腕協調動作には、完全拘束協調動作および部分拘束協調動作が含まれる。完全拘束協調動作は、動作中に各アームロボットの手先位置および手先姿勢の相対変化が無い動作であり、閉リンクを構成する動作である。例えば、両手による長尺物や重量物の運搬などが含まれる。部分拘束協調動作は、手先位置および手先姿勢の相対変化が幾何学的関係で部分的に拘束される動作である。例えば、柔軟物の組み付けなどが含まれる。本実施例に係るロボットシステムは、主として部分拘束協調動作を行うが、完全拘束協調動作などの、部分拘束協調動作以外の動作を行ってもよい。また、各々のアームロボットが互いに独立して行う動作を行ってもよい。
【００１２】
第１ロボット１０は、複数のアームが１以上の関節を介して接続された構成を有し、先端に、柔軟物の把持、固定等を行うためのツール１１を備える。当該１以上の関節は、水平旋回、上下旋回などを行う。第１ロボット１０は、１以上の関節の旋回によって、ツール１１の位置および姿勢を調整する。位置は、ＸＹＺ軸の３軸で表すことができる。姿勢は、ＸＹＺ軸における回転角度で表すことができる。したがって、第１ロボット１０は、６自由度の動きを実現することができる。
【００１３】
第２ロボット２０は、複数のアームが１以上の関節を介して接続された構成を有し、先端に、柔軟物を把持、固定等を行うためのツール２１を備える。当該１以上の関節は、水平旋回、上下旋回などを行う。ツール２１は、例えば、ツール１１と協働してフォーミングを行う。フォーミングとは、柔軟物を所望の形状に固定する処理のことである。第２ロボット２０は、１以上の関節の旋回によって、ツール２１の位置および姿勢を調整する。すなわち、第２ロボット２０も、６自由度の動きを実現することができる。
【００１４】
演算装置３０は、第１ロボット１０および第２ロボット２０の動作を自動生成する。表示装置３０ａは、演算装置３０の演算結果を表示する装置であり、ディスプレイなどである。制御装置４０は、演算装置３０が自動生成した動作が実現されるように、第１ロボット１０および第２ロボット２０の動作を制御する。具体的には、制御装置４０は、第１ロボット１０の関節の角度を調整することによってツール１１の位置および姿勢を制御し、ツール１１の動作を制御する。また、制御装置４０は、第２ロボット２０の関節の角度を調整することによってツール２１の位置および姿勢を制御し、ツール２１の動作を制御する。
【００１５】
第１ロボット１０および第２ロボット２０は、部分拘束協調動作を開始する際、ツール１１とツール２１との間で互いの位置および姿勢が相対的に固定される。その後、各動作において、ツール１１とツール２１との間の位置および姿勢は変化する。
【００１６】
図２は、演算装置３０のブロック図である。図２で例示するように、演算装置３０は、製品情報格納部３１、フォーミングルート作成部３２、フォーミングルート格納部３３、動作生成部３４、教示点格納部３５、フォーミング状態保存部３６、判定部３７などとして機能する。
【００１７】
図３（ａ）〜図３（ｆ）は、第１ロボット１０および第２ロボット２０の双腕協調動作を例示する図である。まず、図３（ａ）で例示するように、経由点０において、柔軟物が固定されているものとする。次に、図３（ｂ）で例示するように、ツール１１は、柔軟物を手繰るために、経由点０近傍まで移動する。次に、図３（ｃ）で例示するように、ツール１１は、柔軟物を経由点１よりも経由点２側まで手繰る。この場合、柔軟物に撓みが無いようにする。次に、図３（ｄ）で例示するように、ツール２１は、経由点１の上方まで移動する。次に、図３（ｅ）で例示するように、ツール１１は、経由点１側に移動することで、柔軟物を弛緩させる。次に、図３（ｆ）で例示するように、ツール２１は、下方に移動し、柔軟物を経由点１に抑えながら固定する。
【００１８】
以下、双腕協調動作の自動生成の概略について、説明する。動作生成部３４は、製品情報格納部３１に格納されている柔軟物情報を参照する。柔軟物情報は、例えば、柔軟物の長さ、太さなどである。次に、フォーミングルート作成部３２は、ユーザによって入力されるフォーミングルートを受け取る。フォーミングルートとは、ワークに固定された柔軟物の完成型の情報である。図４は、フォーミングルートを例示する図である。図４で例示するように、フォーミングルートには、柔軟物の経由点、柔軟物の形状などが含まれている。なお、隣接する２つの経由点で確定される区間をセグメントと称する。
【００１９】
次に、フォーミングルート作成部３２は、入力されたフォーミングルートを実現するためのフォーミングルート情報を作成する。図５（ａ）は、フォーミングルート情報を例示する図である。図５（ａ）で例示するように、フォーミングルート作成部３２は、フォーミングルートが実現されるように、経由点（番号１，２，…）に関連付けて、経由点１：Ｐ１，経由点２：Ｐ２，…の３次元位置情報（Ｘ位置、Ｙ位置、Ｚ位置）を作成する。また、フォーミングルート作成部３２は、各経由点で柔軟物がどのような姿勢をとるかを表す３次元姿勢情報（Ｘ軸回転、Ｙ軸回転、Ｚ軸回転）を作成する。図５（ｂ）で例示するように、フォーミングルート作成部３２は、経由点１から経由点ｎ（終点）までのフォーミングルート情報を作成する。なお、各経由点における３次元姿勢情報は、図５（ｃ）で例示するような回転座標系を用いる。回転座標系において、Ｚ軸は次の経由点に向かう方向であり、Ｘ軸は柔軟物の上向きであり、Ｙ軸はＺ軸とＸ軸とに直交する軸である。作成されたフォーミングルート情報は、フォーミングルート格納部３３に格納される。
【００２０】
次に、動作生成部３４は、各経由点について、協調動作を生成する。動作生成部３４は、着目している経由点に関してユーザが設定した動作シナリオを受け取る。動作シナリオとは、協調動作によって柔軟物に対してフォーミングを行うための情報のことである。例えば、ユーザは、動作シナリオとして、予め列挙されている要素作業の組み合わせを順序付けて選択する。図６（ａ）は、要素作業一覧を例示する図である。各要素作業には、１以上の動作を含む動作フローが設定されている。動作フローとは、各要素作業を行うために必要な動作を順序付けた組み合わせのことである。図６（ｂ）は、各動作の内容を例示する図である。ユーザは、要素作業一覧に列挙されている要素作業を順序付けて組み合わせることで、動作シナリオを作成し、当該動作シナリオを動作生成部３４に入力する。例えば、柔軟物を経由点に固定するためには、図３（ａ）〜図３（ｆ）で例示したように、「ピック」、「手繰り」、「弛緩」、および「抑え」の要素作業がこの順に選択される。次に、動作生成部３４は、入力された動作シナリオを参照する。なお、弱把持とは、柔軟物を弱い力で把持する動作のことである。強把持とは、柔軟物を強い力で把持する動作のことである。中把持とは、柔軟物を中間の力で把持する動作のことである。非把持とは、柔軟物を把持していない状態を表している。
【００２１】
次に、動作生成部３４は、ユーザから、各要素作業の動作パラメータを受け取る。例えば、「手繰り」に関しては、柔軟物を手繰るためのツール１１の移動距離、組み付け面からの高さなどのパラメータがユーザから入力される。動作パラメータは、柔軟物が、着目している経由点と隣接する次の経由点とを結ぶために必要なパラメータである。
【００２２】
次に、動作生成部３４は、動作シナリオから１以上の要素作業を作業順に抽出する。動作生成部３４は、各要素作業について、入力された動作パラメータを用いて、教示点を計算する。教示点とは、各ロボットの３次元位置情報および３次元姿勢情報であり、動作シナリオにおいて各ロボットが停止する位置および姿勢を表す情報である。動作生成部３４は、着目している経由点のフォーミングルート情報と、当該経由点に隣接する次の経由点のフォーミングルート情報とが実現されるように教示点を計算する。動作生成部３４は、教示点格納部３５に動作順に教示点を格納する。動作生成部３４は、以上の処理を各経由点について行う。それにより、全ての経由点について、教示点が教示点格納部３５に格納される。図７は、教示点格納部３５に格納される教示点のテーブルを例示する図である。図７で例示するように、作業順序に、ロボットの識別情報と、３次元位置情報と、３次元姿勢情報とが格納されることになる。これにより、各動作が生成されることになる。
【００２３】
図８は、動作シナリオの各要素作業と、要素作業ごとの教示点を例示する図である。図８で例示するように、「手繰り」に関して、第１ロボット１０の教示点Ｐ１が算出されている。第１ロボット１０の教示点Ｐ１は、柔軟物を手繰った後の第１ロボット１０の３次元位置および３次元姿勢である。次に、「弛緩」に関して、第１ロボット１０の教示点Ｐ２が算出されている。第１ロボット１０の教示点Ｐ２は、柔軟物を弛緩させた後の第１ロボット１０の３次元位置および３次元姿勢である。
【００２４】
次に、「抑え」に関して、第２ロボット２０の教示点Ｐ１が算出されている。第２ロボット２０の教示点Ｐ１は、柔軟物を組み付け面に対して下降させた後の第２ロボット２０の３次元位置および３次元姿勢である。さらに、第２ロボット２０の教示点Ｐ２が算出されている。第２ロボット２０の教示点Ｐ２は、柔軟物を経由点に対して固定させた後の第２ロボット２０の３次元位置および３次元姿勢である。
【００２５】
図９は、第１ロボット１０および第２ロボット２０が行う一連の動作シナリオの各要素作業と、要素作業ごとの教示点を例示する図である。図９で例示するように、セグメントごとに、動作シナリオの各要素作業と、要素作業ごとの教示点とが算出される。
【００２６】
演算装置３０は、ロボットシミュレータ５０に、教示点格納部３５に格納されている教示点情報を出力する。また、ロボットシミュレータ５０は、製品情報格納部３１から３Ｄモデルデータを受け取る。３Ｄモデルデータは、第１ロボット１０および第２ロボット２０を仮想的に実現するために必要なデータである。ロボットシミュレータ５０は、教示点情報および３Ｄモデルデータを用いて、第１ロボット１０および第２ロボット２０の協調動作を仮想的に実現する。ロボットシミュレータ５０のシミュレーションを確認することで、第１ロボット１０および第２ロボット２０の動作を確認することができる。または、ロボットシミュレータ５０を用いずに、制御装置４０が教示点情報を受け取り、第１ロボット１０および第２ロボット２０に実際に動作を行わせてもよい。この場合においても、第１ロボット１０および第２ロボット２０の動作を確認することができる。
【００２７】
ここで、動作生成として動作シナリオから教示点のみを計算する場合には、次の動作の実行可否や次の動作の生成ができない場合などがある。すなわち、次の動作生成に必要な情報が不足する場合がある。
【００２８】
図１０（ａ）は、動作シナリオの各動作を例示する図である。図１０（ａ）の例では、柔軟物をピックしてから手繰りを行う。この場合、ピックの最後の動作（強把持）によって柔軟物が把持されているため、次の手繰り作業は実行可能である。これに対して、図１０（ｂ）の動作シナリオでは、初期移動の後に手繰りが行われることになる。この場合、初期移動の腕移動の終了時点で柔軟物が把持されていない。したがって、次の手繰り作業は実行できないことになる。
【００２９】
図１１（ａ）は、動作シナリオの動作が重複しない場合を例示する図である。図１１（ａ）の例では、ピック「強」によって柔軟物を強把持してから手繰りを行う。この場合、強把持の後に中把持が行われるため、動作が重複しない。これに対して、図１１（ｂ）の例では、ピック「中」によって柔軟物を中把持してから手繰りを行うことになる。この場合、柔軟物の中把持を行った後に、手繰りのための中把持を再度行うことになる。したがって、連続する２つの動作が重複することになる。
【００３０】
図１２（ａ）は、倣い作業を例示する図である。倣いにおいては、図１２（ａ）で例示するように柔軟物を固定位置で固定させるか一方のハンドで把持したうえで、壁などに沿って柔軟物を這わせることになる。図１２（ａ）の例は、経由点Ｎで柔軟物が曲げられるため、固定点から経由点Ｎまで柔軟物を這わせる前の制御可能柔軟物長より、固定点から経由点Ｎまで柔軟物を這わせた後の制御可能柔軟物長が短くなる。制御可能柔軟物長とは、柔軟物の一方を把持などで固定した場合に、他方を移動等させる場合の制御可能長のことである。図１２（ａ）の例では、動作の途中で制御可能柔軟物長が変化しても、柔軟物を目的点まで這わせることができる。これに対して、図１２（ｂ）は、制御可能柔軟物長が目的点までの距離よりも短いために、倣いを実行できない場合を例示している。図１２（ｃ）は、動作の途中で制御可能柔軟物長が変化することで、倣いを実行できなくなる場合があることを例示している。したがって、次の動作を生成するために、制御可能柔軟物長を計算しておくことが好ましい。
【００３１】
そこで、本実施例においては、動作生成部３４は、教示点を計算した各動作終了時の第１ロボット１０および第２ロボット２０による柔軟物のフォーミング状態をフォーミング状態保存部３６に保存しておく。図１３で例示するように、動作生成部３４は、教示点だけではなく、１つ前の動作終了時点のフォーミング状態を参照し、次の動作の入力情報として活用する。図１３の例では、動作生成部３４は、腕移動動作終了時のフォーミング状態を保存する。次に、動作生成部３４は、当該フォーミング状態を参照して強把持動作に入力情報として活用する。以下同様に、動作終了時のフォーミング状態を保存しておき、次の動作の入力情報として活用する。表１は、保存されるフォーミング状態を例示する図である。表１で例示するように、フォーミング状態は、例えば、柔軟物の把持情報、柔軟物の最終固定位置情報、制御可能柔軟物長などを含む。
【表１】
2019188487.tif 000003
【００３２】
柔軟物の把持情報には、柔軟物の把持状態（強把持、中把持、弱把持、非把持）、柔軟物原点からの柔軟物把持長さ、柔軟物原点からの３次元空間把持位置・姿勢などが含まれる。図１４（ａ）の例では、経由点０が原点であるため、柔軟物把持長さは、Ｌ０＋Ｌ１である。なお、柔軟物把持情報は、先行ハンドおよび後続ハンドのそれぞれについて計算して保存される。先行ハンドとは、柔軟物に対して先に作業を行っているハンドのことである。後続ハンドとは、先行ハンドの後に作業を行うハンドのことである。図１４（ａ）の例では、柔軟物を把持しているハンドが先行ハンドであり、柔軟物に対して押さえを行うハンドが後続ハンドである。
【００３３】
柔軟物の最終固定位置情報には、柔軟物原点からの柔軟物の固定位置までの長さ（柔軟物組付長さ）、柔軟物原点からの３次元空間固定位置・姿勢などが含まれる。図１４（ｂ）の例では、経由点０から最終固定位置までの距離（Ｌ０＋Ｌ２）が柔軟物組付長さとして計算され保存される。
【００３４】
制御可能柔軟物長は、柔軟物把持情報および最終固定位置情報から算出することができる。制御可能柔軟物長は、いずれかのロボットが柔軟物を把持している状態において計算することができる。制御可能柔軟物長は、先行ハンド情報（先行ハンドか否か）と、第１ロボット１０および第２ロボット２０の柔軟物把持情報内にある柔軟物把持長さと、柔軟物組付情報にある柔軟物組付長さとから計算することができる。図１４（ｃ）の例では、第１ロボット１０の把持位置から第２ロボット２０の把持位置までの長さが制御可能柔軟物長となる。図１４（ｄ）の例では、最終固定位置である経由点２から第２ロボット２０の把持位置までの長さが制御可能柔軟物長となる。
【００３５】
判定部３７は、フォーミング状態保存部３６に保存されたフォーミング状態を用いて、次の動作が実行可能であるか否かを判定する。図１５（ａ）は、図１０（ｂ）と同様の図であり、実行できない動作を例示する図である。本実施例においては、図１５（ｂ）で例示するように、判定部３７は、初期移動の要素作業に含まれる腕移動動作終了時のフォーミング状態を参照する。判定部３７は、フォーミング状態の柔軟物把持情報から、柔軟物の把持状態が取得可能である。この場合、手繰りの直前の動作終了時の把持状態が非把持であるため、判定部３７は、手繰りの最初の動作が実行不可であると判定する。表示装置３０ａは、手繰りの最初の動作が実行不可である旨の情報を表示する。それにより、設計者は、どの要素作業が実行不可であるかを把握することができる。
【００３６】
図１６（ａ）は、図１１（ｂ）と同様の図であり、連続する２つの動作が重複する場合を例示する図である。本実施例においては、図１６（ｂ）で例示するように、動作生成部３４は、ピックの要素作業に含まれる中把持動作終了時のフォーミング状態を参照する。動作生成部３４は、柔軟物把持情報から、柔軟物把持状態を取得する。この場合、ピックの最後の動作終了時の把持状態と手繰りの最初の動作とが重複するため、動作生成部３４は、中把持動作が重複していると判定する。動作生成部３４は、手繰りの中把持動作を省略することで、動作シナリオの動作を変更する。
【００３７】
動作生成部３４は、フォーミング状態に含まれる柔軟物把持情報と、最終固定位置情報とから、制御可能柔軟物長を算出する。それにより、動作生成部３４は、次の動作を生成することができる、すなわち、次の動作の教示点を適切に計算することができる。
【００３８】
以下、ユーザが入力する動作シナリオに基づく、動作生成処理の一例について説明する。図１７は、動作シナリオに基づく動作生成処理のフローチャートを例示する図である。図１７のフローチャートの実行前に、ユーザによってフォーミングルートが入力され、各経由点について動作シナリオが入力されている。動作生成部３４は、１以上の経由点から、未処理の経由点を抽出する（ステップＳ１）。次に、動作生成部３４は、経由点が存在するか否かを判定する（ステップＳ２）。ステップＳ２で「Ｎｏ」と判定された場合、全ての経由点についての処理が終了したことになるため、フローチャートの実行が終了する。
【００３９】
ステップＳ２で「Ｙｅｓ」と判定された場合、動作生成部３４は、抽出した経由点の動作シナリオを抽出する（ステップＳ３）。次に、動作生成部３４は、抽出した動作シナリオから未処理の要素作業を抽出する（ステップＳ４）。次に、動作生成部３４は、要素作業が存在するか否かを判定する（ステップＳ５）。ステップＳ５で「Ｎｏ」と判定された場合、ステップＳ１から再度実行される。
【００４０】
ステップＳ５で「Ｙｅｓ」と判定された場合、判定部３７は、フォーミング状態保存部３６に保存されているフォーミング状態を参照し、１つ前の動作終了時のフォーミング状態から、抽出した要素作業の実行が成立するか否かを判定する（ステップＳ６）。１つ前の動作が無ければ、把持状態は非把持状態である。１つ前の動作終了時のフォーミング状態が保存されていれば、当該フォーミング状態から把持状態を抽出することができる。図１８は、各要素作業を実行するために、１つ前の動作終了時に満たしていなければならない柔軟物把持状態を例示する図である。例えば、手繰りを実行するためには、１つ前の動作終了時に非把持状態であれば、実行できないと判定される。ステップＳ６で「Ｎｏ」と判定された場合、表示装置３０ａはステップＳ５で抽出した要素作業が実行不可である旨の表示を行う（ステップＳ７）。その後、フローチャートの実行が終了する。
【００４１】
ステップＳ６で「Ｙｅｓ」と判定された場合、動作生成部３４は、フォーミング状態に応じて、要素作業の動作フローを変更する（ステップＳ８）。例えば、図１９は、各要素作業の動作フロー構成を例示する図である。フォーミング状態を参照すれば、１つ前の動作終了時の柔軟物の把持状態と、今回の動作フローの最初の動作とが重複しているか否かを判定することができる。１つ前の動作終了時の把持状態と今回の動作フローの最初の動作とが重複している場合には、動作生成部３４は、今回の動作フローの最初の動作を省略する。
【００４２】
次に、動作生成部３４は、動作フローから未処理の動作を抽出する（ステップＳ９）。次に、動作生成部３４は、抽出した動作において、制御可能柔軟物長の計算が必要か否かを判定する（ステップＳ１０）。図２０は、制御可能柔軟物長の計算が必要な要素作業と、制御可能柔軟物長の計算が不要な要素作業とを例示する図である。
【００４３】
ステップＳ１０で「Ｙｅｓ」と判定された場合、動作生成部３４は、制御可能柔軟物長を計算する（ステップＳ１１）。ステップＳ１０で「Ｎｏ」と判定された場合またはステップＳ１１の実行後、動作生成部３４は、各動作パラメータに応じて、ツール１１およびツール２１の位置を教示点格納部３５に教示点を格納する（ステップＳ１２）。例えば、図２１（ａ）で例示するように、経由点Ｎで制御可能長が変化する場合に、当該変化を考慮して教示点を計算することができる。また、図２１（ｂ）で例示するように、経由点Ｎで把持している場合の制御可能柔軟物長を考慮して教示点を計算することができる。
【００４４】
次に、動作生成部３４は、今回の動作終了時点におけるフォーミング状態を計算し、フォーミング状態保存部３６に保存する（ステップＳ１３）。次に、動作生成部３４は、全ての動作フローについてフォーミング状態を計算したか否かを判定する（ステップＳ１４）。ステップＳ１４で「Ｎｏ」と判定された場合、ステップＳ９から再度実行される。ステップＳ１４で「Ｙｅｓ」と判定された場合、ステップＳ３から再度実行される。
【００４５】
図２２は、演算装置３０のハードウェア構成を例示するブロック図である。図２２で例示するように、演算装置３０は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、入力機器１０４などを備える。これらの各機器は、バスなどによって接続されている。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。入力機器１０４は、ユーザがデータを入力するための機器などであり、例えば、キーボード、マウスなどである。
【００４６】
ＣＰＵ１０１が記憶装置１０３に記憶されている演算プログラムを実行することによって、図２で例示するように、演算装置３０内に製品情報格納部３１、フォーミングルート作成部３２、フォーミングルート格納部３３、動作生成部３４、教示点格納部３５、フォーミング状態保存部３６および判定部３７が実現される。なお、演算装置３０は、専用の回路などのハードウェアであってもよい。
【００４７】
（他の例）
図２３は、ロボットシステムの他の例を表す図である。図２３で例示するように、ロボットシステムは、制御装置４０が、インターネットなどの電気通信回線３０１を通じてクラウド３０２と接続された構成を有する。クラウド３０２は、図２２のＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、入力機器１０４などを備え、演算装置３０としての機能を実現する。
【００４８】
本実施例によれば、教示点を生成するとともに、教示点が生成された動作の終了時のフォーミング状態が保存される。フォーミング状態を保存しておくことで、当該フォーミング状態を次の動作生成に必要な情報として用いることができる。例えば、フォーミング状態に含まれる柔軟物把持情報を用いれば、次の動作が実行可能であるか否かを判定することができる。また、フォーミング状態に含まれる柔軟物把持情報を用いれば、１つ前の動作終了時の把持状態と次の動作とが重複しているか否かを判定することができる。１つ前の動作と次の動作とが重複していれば、次の動作を省略することができる。それにより、無駄な動作を省略した主に時間効率の高い動作を生成することができる。また、フォーミング状態として制御可能ケーブル長を計算しておくことで、制御可能ケーブル長が必要な動作の教示点を算出することができる。すなわち、動作生成が可能となる。
【００４９】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５０】
１０  第１ロボット
１１  ツール
２０  第２ロボット
２１  ツール
３０  演算装置
３０ａ  表示装置
３１  製品情報格納部
３２  フォーミングルート作成部
３３  フォーミングルート格納部
３４  動作生成部
３５  教示点格納部
３６  フォーミング状態保存部
３７  判定部
４０  制御装置
５０  ロボットシミュレータ
１００  ロボットシステム
【図１】
2019188487.tif 000004
【図２】
2019188487.tif 000005
【図３】
2019188487.tif 000006
【図４】
2019188487.tif 000007
【図５】
2019188487.tif 000008
【図６】
2019188487.tif 000009
【図７】
2019188487.tif 000010
【図８】
2019188487.tif 000011
【図９】
2019188487.tif 000012
【図１０】
2019188487.tif 000013
【図１１】
2019188487.tif 000014
【図１２】
2019188487.tif 000015
【図１３】
2019188487.tif 000016
【図１４】
2019188487.tif 000017
【図１５】
2019188487.tif 000018
【図１６】
2019188487.tif 000019
【図１７】
2019188487.tif 000020
【図１８】
2019188487.tif 000021
【図１９】
2019188487.tif 000022
【図２０】
2019188487.tif 000023
【図２１】
2019188487.tif 000024
【図２２】
2019188487.tif 000025
【図２３】
2019188487.tif 000026