(57)【特許請求の範囲】
【請求項１】
作業の開始から終了までの人の動作に関わる情報を作業データとして記録する作業データ記録部と、
作業の開始から終了までの全体動作を複数の部分動作に分ける動作分類部と、
同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成する動作合成部と、
同じ作業を複数回行い記録された作業データの複数のサンプルのうちから、作業効率の良い２つ以上の良サンプルを選択する動作選択部と、
を有し、
前記動作合成部は、選択された前記２つ以上の良サンプルを用いて前記最適動作のデータを生成する
ことを特徴とする動作情報生成装置。
【請求項２】
作業の開始から終了までの人の動作に関わる情報を作業データとして記録する作業データ記録部と、
作業の開始から終了までの全体動作を複数の部分動作に分ける動作分類部と、
同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成する動作合成部と、
を有し、
前記動作合成部は、異なるサンプルの第１の部分動作と第２の部分動作を接続する場合に、前記第１の部分動作の最後の動きと前記第２の部分動作の最初の動きを整合させる部分動作整合部を有する
ことを特徴とする動作情報生成装置。
【請求項３】
作業の開始から終了までの人の動作に関わる情報を作業データとして記録する作業データ記録部と、
作業の開始から終了までの全体動作を複数の部分動作に分ける動作分類部と、
同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分
動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成する動作合成部と、
作業者の動きを検出する１つ以上のセンサと、
を有し、
前記作業データ記録部は、前記センサから得られるセンサデータを記録する
ことを特徴とする動作情報生成装置。
【請求項４】
作業の開始から終了までの人の動作に関わる情報を作業データとして記録する作業データ記録部と、
作業の開始から終了までの全体動作を複数の部分動作に分ける動作分類部と、
同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成する動作合成部と、
を有し、
前記動作分類部は、前記作業データに基づき作業者の身体の動きの変化点を検出し、前記動きの変化点を基に前記全体動作を前記複数の部分動作に分ける
ことを特徴とする動作情報生成装置。
【請求項５】
作業の開始から終了までの人の動作に関わる情報を作業データとして記録する作業データ記録部と、
作業の開始から終了までの全体動作を複数の部分動作に分ける動作分類部と、
同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成する動作合成部と、
を有し、
前記動作分類部は、分類機能を学習した深層ニューラルネットワークを含む
ことを特徴とする動作情報生成装置。
【請求項６】
同じ作業を複数回行い記録された作業データの複数のサンプルのうちから、作業効率の良い２つ以上の良サンプルを選択する動作選択部をさらに有し、
前記動作合成部は、選択された前記２つ以上の良サンプルを用いて前記最適動作のデータを生成する
ことを特徴とする請求項２〜５のうちいずれか１項に記載の動作情報生成装置。
【請求項７】
前記動作選択部は、作業全体の作業時間に応じて所定数または所定割合のサンプルを前記良サンプルとして選択する
ことを特徴とする請求項１または６に記載の動作情報生成装置。
【請求項８】
前記動作選択部は、作業全体の作業時間が最も短いものから順に所定数または所定割合のサンプルを前記良サンプルとして選択する
ことを特徴とする請求項７に記載の動作情報生成装置。
【請求項９】
前記動作合成部は、所定の評価基準を用いて各サンプルの部分動作を評価することにより、前記最良の部分動作を選択する
ことを特徴とする請求項１〜８のうちいずれか１項に記載の動作情報生成装置。
【請求項１０】
前記所定の評価基準は、部分動作の作業時間、作業品質、作業者の安全性、作業者の疲労度、動作の再現容易性のうちの少なくとも１つを含む
ことを特徴とする請求項９に記載の動作情報生成装置。
【請求項１１】
前記動作合成部は、異なるサンプルの第１の部分動作と第２の部分動作を接続する場合に、前記第１の部分動作の最後の動きと前記第２の部分動作の最初の動きを整合させる部分動作整合部を有する
ことを特徴とする請求項１、３、４、５のうちいずれか１項に記載の動作情報生成装置。
【請求項１２】
前記部分動作整合部は、前記第１の部分動作の最後と前記第２の部分動作の最初の間で、作業者もしくは作業対象の位置が少なくとも一致するように整合を行う
ことを特徴とする請求項２または１１に記載の動作情報生成装置。
【請求項１３】
前記部分動作整合部は、前記第１の部分動作から前記第２の部分動作にかけて動きベクトルが連続的に変化するように、前記第１の部分動作と前記第２の部分動作の動きベクトルを調整する
ことを特徴とする請求項２または１１に記載の動作情報生成装置。
【請求項１４】
作業者の動きを検出する１つ以上のセンサを有し、
前記作業データ記録部は、前記センサから得られるセンサデータを記録する
ことを特徴とする請求項１、２、４、５のうちいずれか１項に記載の動作情報生成装置。
【請求項１５】
前記センサは、作業者の身体に装着された動きセンサを含む
ことを特徴とする請求項３または１４に記載の動作情報生成装置。
【請求項１６】
前記動作分類部は、前記作業データに基づき作業者の身体の動きの変化点を検出し、前記動きの変化点を基に前記全体動作を前記複数の部分動作に分ける
ことを特徴とする請求項１、２、３、５のうちいずれか１項に記載の動作情報生成装置。
【請求項１７】
前記動作分類部は、分類機能を学習した深層ニューラルネットワークを含む
ことを特徴とする請求項１〜４のうちいずれか１項に記載の動作情報生成装置。
【請求項１８】
作業の開始から終了までの人の動作に関わる情報を作業データとして記録するステップと、
作業の開始から終了までの全体動作を複数の部分動作に分けるステップと、
同じ作業を複数回行い記録された作業データの複数のサンプルのうちから、作業効率の良い２つ以上の良サンプルを選択するステップと、
選択された前記２つ以上の良サンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成するステップと、
を有することを特徴とする動作情報生成方法。
【請求項１９】
作業の開始から終了までの人の動作に関わる情報を作業データとして記録するステップと、
作業の開始から終了までの全体動作を複数の部分動作に分けるステップと、
同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成する動作合成ステップと、
を有し、
前記動作合成ステップは、異なるサンプルの第１の部分動作と第２の部分動作を接続する場合に、前記第１の部分動作の最後の動きと前記第２の部分動作の最初の動きを整合させるステップを含む
ことを特徴とする動作情報生成方法。
【請求項２０】
作業者の動きを検出する１つ以上のセンサを用いて、前記作業者による作業の開始から終了までに前記センサから得られるデータを作業データとして記録するステップと、
作業の開始から終了までの全体動作を複数の部分動作に分けるステップと、
同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成するステップと、
を有することを特徴とする動作情報生成方法。
【請求項２１】
作業の開始から終了までの人の動作に関わる情報を作業データとして記録するステップと、
作業の開始から終了までの全体動作を複数の部分動作に分ける動作分類ステップと、
同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成するステップと、
を有し、
前記動作分類ステップは、
前記作業データに基づき作業者の身体の動きの変化点を検出するステップと、
前記動きの変化点を基に前記全体動作を前記複数の部分動作に分けるステップと、を含む
ことを特徴とする動作情報生成方法。
【請求項２２】
作業の開始から終了までの人の動作に関わる情報を作業データとして記録するステップと、
分類機能を学習した深層ニューラルネットワークにより、作業の開始から終了までの全体動作を複数の部分動作に分けるステップと、
同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成するステップと、
を有することを特徴とする動作情報生成方法。
【請求項２３】
請求項１８〜２２のうちいずれか１項に記載の動作情報生成方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、作業を効率的に行うための最適動作を生成し伝承するための技術に関する。
【背景技術】
【０００２】  ものづくりの現場などでは、熟練者（エキスパート）の技能をどのように伝承させるか、という問題が顕在化している。そのため、従来より、熟練者の技能伝承を支援する方法や熟練者の技能をデジタル化する方法などが提案されている（特許文献１〜３参照）。【０００３】  産業用ロボットに、熟練者が手本を示して、ティーチングを行う方法がある。機械学習によってロボットに自己学習させる方法も提案されているが、所定の作業効率を獲得するまでに非常に多くのトライを繰り返す必要があるため、実用的でない。それゆえ、ロボットのティーチングに関しては、機械学習よりも人によるティーチングの方が効率的であることが多い。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２１５３１４号公報
【特許文献２】特開２００７−２７５９３３号公報
【特許文献３】特開２０１３−１７２１９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】  新しい作業をロボットにティーチングするためには、まずは作業者自身がその作業を何度も繰り返し、その作業に習熟しなければならない。熟練者の効率的な動作をロボットに記憶させなければ、意味がないからである。しかしながら、限られた時間のなかで、新しい作業の最適手順を見出し、それを再現できる程度まで習熟することは、たとえその分野のエキスパートであっても簡単ではない。その作業が複雑な形状の部品の組み立てであったり、動線が複雑であったり、作業ステップが多い場合などは、なおさらである。【０００６】  なお、ここまでの文脈では、産業用ロボットのティーチングを例に挙げて課題の説明を行ったが、同様の課題は他の技術分野や他のアプリケーションにおいても起こり得る。【０００７】  本発明は上記実情に鑑みなされたものであり、作業を効率的に行うための最適な動作を自動的に生成する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】  上記目的を達成するため、本発明は以下の構成を採用する。【０００９】  本発明に係る動作情報生成装置は、作業の開始から終了までの人の動作に関わる情報を作業データとして記録する作業データ記録部と、作業の開始から終了までの全体動作を複数の部分動作に分ける動作分類部と、同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成する動作合成部と、を有することを特徴とする。この構成によれば、作業データの複数のサンプルから、作業全体の最適化だけでなく部分動作ごとの局所最適化も図られた、より良い最適動作（手本）を自動で生成することができる。【００１０】  同じ作業を複数回行い記録された作業データの複数のサンプルのうちから、作業効率の良い２つ以上の良サンプルを選択する動作選択部をさらに有し、前記動作合成部は、選択された前記２つ以上の良サンプルを用いて前記最適動作のデータを生成するとよい。これにより、無駄な動作を含むサンプルを除外することができ、より信頼性の高い最適動作の生成が可能となる。前記動作選択部は、作業全体の作業時間に応じて所定数または所定割合のサンプルを前記良サンプルとして選択するとよい。例えば、前記動作選択部は、作業全体の作業時間が最も短いものから順に所定数または所定割合のサンプルを前記良サンプルとして選択するとよい。【００１１】  作業者の動きを検出する１つ以上のセンサを有し、前記作業データ記録部は、前記センサから得られるセンサデータを記録するとよい。これにより、作業者の動きを自動で収集することができる。またセンサデータにより作業者の動きを客観的な物理量として捉えることができる。例えば、前記センサは、作業者の身体に装着された動きセンサを含むとよい。身体に装着された動きセンサを用いることで、作業者の身体の動きを直接的かつ正確に捉えることができる。【００１２】  前記動作分類部は、前記作業データに基づき作業者の身体の動きの変化点を検出し、前記動きの変化点を基に前記全体動作を前記複数の部分動作に分けるとよい。これにより、妥当な単位で部分動作の分類が可能となる。【００１３】  前記動作合成部は、所定の評価基準を用いて各サンプルの部分動作を評価することにより、前記最良の部分動作を選択するとよい。例えば、前記所定の評価基準は、部分動作の作業時間を含むとよい。また、前記所定の評価基準は、作業品質、作業者の安全性、作業者の疲労度、動作の再現容易性のうちの少なくとも１つを含むことも好ましい。【００１４】  前記動作合成部は、異なるサンプルの第１の部分動作と第２の部分動作を接続する場合に、前記第１の部分動作の最後の動きと前記第２の部分動作の最初の動きを整合させる部分動作整合部を有するとよい。これにより動きがスムーズで且つ矛盾のない最適動作を生成することができる。【００１５】  なお、本発明は、上記構成ないし機能の少なくとも一部を有する動作情報生成装置として捉えることができる。動作情報生成装置は、単体の装置で構成してもよいし、複数の装置の組み合わせで構成してもよい。また、本発明は、上記処理の少なくとも��部を含む動作情報生成方法、または、かかる方法をコンピュータに実行させるためのプログラム、または、そのようなプログラムを非一時的に記録したコンピュータ読取可能な記録媒体として捉えることもできる。上記構成および処理の各々は技術的な矛盾が生じない限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００１６】  本発明によれば、作業を効率的に行うための最適な動作を自動的に生成することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は動作情報生成装置のハードウェア構成を示す外観図である。
【図２】図２は動作情報生成装置の機能構成を示すブロック図である。
【図３】図３は作業と部分動作の関係を模式的に示す図である。
【図４】図４は動作情報生成処理のフローチャートである。
【図５】図５は組み立て作業の一例を示す図である。
【図６】図６は作業データ記録部のフローチャートである。
【図７】図７は作業データ記録部のＧＵＩの例である。
【図８】図８は動作選択部のフローチャートである。
【図９】図９Ａと図９Ｂは動作分類部の内部構成を示す図である。
【図１０】図１０は動作分類部のフローチャートである。
【図１１】図１１は動作合成部の内部構成を示す図である。
【図１２】図１２は動作合成部のフローチャートである。
【図１３】図１３は最適動作の画面表示例を示す図である。
【図１４】図１４は最適動作の画面表示例を示す図である。
【発明を実施するための形態】
【００１８】  本発明に係る動作情報生成装置は、ある作業を行う人の動作を複数回記録したデータを基にして、その作業に対する最適な動作（手本の動作）を自動的に生成するための装置である。以下に述べる実施形態では、工場での製品組み立て作業の最適化に本発明を適用した例を挙げるが、本発明の適用範囲はこの例に限られない。例えば、工芸品の作製、装置やシステムの操作・運転・メンテナンス、手術における手技や手順など、様々な分野やアプリケーションにおける最適動作（手本）の生成に適用することができる。また、本発明に係る装置で生成される最適動作のデータは、ロボットや各種装置の制御、エキスパートの技能のアーカイブ、新人作業者などの教育ツール、シミュレータの開発など、様々なアプリケーションへの応用が可能である。
【００１９】  ＜動作情報生成装置の構成＞  図１と図２を参照して、本発明の実施形態に係る動作情報生成装置の全体構成について説明する。図１は、動作情報生成装置のハードウェア構成を示す外観図であり、図２は、動作情報生成装置の機能構成を示すブロック図である。本実施形態の動作情報生成装置１００は、人１１０または物１１１に装着したセンサ１０１から取得されるセンサデータにより、作業を行う人１１０の動作を分析し、より良い動作を客観的に評価できるようにする。
【００２０】  （ハードウェア構成）  動作情報生成装置１００は、主なハードウェアとして、１つ以上のセンサ１０１と情報処理装置１０２を有して構成される。
【００２１】  情報処理装置１０２は、例えば、プロセッサ（ＣＰＵ）、メモリ、記憶装置（ハードディスク、半導体ディスクなど）、入力装置（キーボード、マウス、タッチパネルなど）、表示装置、通信装置などのハードウェア資源を有する汎用のコンピュータにより構成することができる。図２に示す動作情報生成装置１００の機能は、記憶装置に格納されたプログラムがメモリにロードされ、プロセッサにより実行されることにより、実現されるものである。なお、情報処理装置１０２は、一台のコンピュータにより構成してもよいし、複数台のコンピュータによる分散コンピューティングにより構成してもよい。また、情報処理装置１０２の機能の一部をクラウドサーバにより実現してもよい。また、処理の高速化のため、情報処理装置１０２の機能の一部または全部を専用のハードウェア（例えばＧＰＵやＦＰＧＡ、ＡＳＩＣなど）を用いて実現することも可能である。
【００２２】  センサ１０１は、作業を行う人１１０の動作をデータとして記録するためのデバイスである。人１１０の動作を直接的または間接的に検出ないし推定することができれば、いかなる種類・方式のセンサを用いてもよい。例えば、センサ１０１には、人１１０をセンシングするセンサ、人１１０が作業中に取り扱う物（以下「作業対象」と呼ぶ）１１１をセンシングするセンサ、人１１０と作業対象１１１の間の介在物をセンシングするセンサなどが含まれる。以下、センサ１０１の一例を挙げるが、動作情報生成装置１００はすべてのセンサ１０１を備える必要はなく、装置構成、作業の種類や内容、用途などに応じて必要なセンサ１０１を設ければよい。
【００２３】  人１１０をセンシングするセンサ１０１としては、頭部・視線・手・足・胴体などの動きをセンシングする動きセンサを用いることができる。例えば、人１１０の左右の手首に装着した加速度センサや角加速度センサを用いることで、組み立て作業における右手と左手の動きを検出できる。さらに、指先に加速度センサや角加速度センサを装着することで、指先の動きを検出することもできる。人１１０に装着するセンサでなく、画像センサ（カメラ）で撮影した動画を解析することで人１１０の動きや周囲の物との関係をセンシングすることもできる。或いは、人１１０に装着したマーカを、磁気センサや赤外線センサで検知することで、人１１０の動きをセンシングすることもできる。
【００２４】  また、人１１０をセンシングするセンサ１０１としては、表情・目の動き・顔の動かし方をセンシングする顔画像センサ、手・足・首・胴など身体の各部に取り付けた電極で筋肉の動きをセンシングする筋電センサ、人１１０の視線の方向や注視している箇所をセンシングする画像センサなどを用いることができる。
【００２５】  センサ１０１の形態は問わない。例えば、スマートフォンの備えるセンサを利用してもよいし、スマートウォッチやスマートグラスなどのウェアラブル装置の備えるセンサを利用してもよい。
【００２６】  作業対象１１１とは、組み立て作業の場合であれば組み立ての対象となる部品であるし、装置の操作・運転の場合であればその装置である。作業対象１１１の状態も人１１０の動作に影響を与え得るので、間接的な情報として作業対象１１１の状態をセンシングした情報を用いることで、人１１０の動作の正確な評価に役立つ可能性がある。例えば、作業対象１１１の空間的な位置を検出するセンサ、作業対象１１１の姿勢を検出するセンサ、作業対象１１１の状態（加速度、温度、色、形状などの状態の変化）を検出するセンサ、作業対象１１１の環境状態（周囲の温度、湿度など環境に関する物理量や情報）を検出するセンサなどを例示できる。
【００２７】  人１１０と作業対象１１１の間の介在物とは、組み立て作業の場合であれば組み立てに用いる工具や装置である。このような介在物の状態も人１１０の動作に影響を与え得るので、間接的な情報として介在物の状態をセンシングした情報を用いることで、人１１０の動作の正確な評価に役立つ可能性がある。例えば、介在物の空間的な位置を検出するセンサ、介在物の姿勢を検出するセンサ、介在物の状態（温度、色、形状などの状態の変化）を検出するセンサ、介在物の環境状態（周囲の温度、湿度など環境に関する物理量や情報）を検出するセンサなどを例示できる。また、人１１０の操作により介在物に作用する力、介在物に関連する物理量（加速度、振動、切削音など）などを検出するセンサを用いてもよい。例えば、自動車の運転の場合であれば、運転操作部に取り付けたセンサにより、ステアリング操作、アクセル操作、ブレーキ操作、各種のスイッチ操作などを検出してもよい。
【００２８】  （機能構成）  図２に示すように、動作情報生成装置１００は、センサ情報入力部２０１、対象情報入力部２０２、隣接作業情報入力部２０３、作業データ記録部２０４、動作選択部２０５、動作分類部２０６、動作合成部２０７、動作評価部２０８、動作改善部２０９、データ変換部２１０、結果出力部２１１を有する。
【００２９】  センサ情報入力部２０１は、センサ１０１からセンサデータを取得する機能である。対象情報入力部２０２は、作業対象１１１の情報（例えば、部品ＩＤ、部品の内部情報や関係状態、装置の仕様など）を取得する機能である。隣接作業情報入力部２０３は、隣接作業の情報（例えば、生産ラインにおける上流工程や下流工程の作業の内容や進捗など）を取得する機能である。作業データ記録部２０４は、センサ情報入力部２０１、対象情報入力部２０２、および隣接作業情報入力部２０３により取得した情報に基づき、作業の開始から終了までの人の動作に関わる情報（「作業データ」と呼ぶ）を記憶装置に記録する機能である。例えば、同じ作業を複数の人に複数回ずつ行わせることで、作業者や習熟度の異なる複数の作業データが記録される。
【００３０】  動作選択部２０５は、作業データ記録部２０４により記録された複数の作業データのうちから良いものを選択する機能である。動作分類部２０６は、選択された作業データをもとに、作業の全体動作を複数の部分動作に分割・分類する機能である。動作合成部２０７は、部分動作ごとに最良の部分動作を選択し、それらを合成することで作業全体として最適化された最適動作を生成する機能である。動作評価部２０８は、動作合成部２０７により生成された最適動作を評価する機能であり、動作改善部２０９は、必要に応じて、最適動作のさらなる改善を行う機能である。動作評価部２０８と動作改善部２０９の処理は任意であるため、これらの機能部を省略しても構わない。
【００３１】  データ変換部２１０は、動作合成部２０７により生成された最適動作のデータを、利用方法に合わせた形式に変換する機能である。結果出力部２１１は、データ変換部２１０により変換された最適動作のデータを出力する機能である。
【００３２】  ＜作業の定義＞  本実施形態では「作業」を「設定された目的（課題）を遂行するために人が身体の一部または全部を使って行う行為」と定義する。したがって、作業の実施過程では必ず人の動作が発生する。また、目的を遂行するための手続きや手順は任意とすることで、作業データの記録時には、作業を実施する人によって、あるいは、作業の習熟度合によって、作業の実施過程で行われる動作にある程度の違いが生じるようにしてもよい。
【００３３】  図３に模式的に示すように、一つの作業には開始と終了があり、作業の全体動作は連続した複数の部分動作の組み合わせによって構成されると考えることができる。ある部分動作は次の部分動作に影響を与える。逆にいうと、途中の部分動作は、それまでの動作の結果を引き継いで行われる。多くの場合、途中の部分動作を省くことはできない。
【００３４】  作業の実施には制約要件がある。例えば、作業対象に関する要件として、作業対象の初期状態・途中経過状態・最終状態に関する条件、作業対象の状態に関する条件などがある。人（作業者）に関する要件としては、身体が危険な領域に入らないような動作範囲の制限、人の動作速度の限界、人の動作精度の限界、運動性能、身体の部分（手、足、指など）の物理的大きさなどがある。介在物に関する要件としては、作業者や作業対象を傷つけないような使い方の制限などがある。また、最適動作を機械に実施させるのであれば、機械の性能、可動域、動作コストなどの要件もある。最適動作は、これらの制約要件を満たすように生成する必要がある。
【００３５】  ＜最適動作の生成方法＞  次に、動作情報生成装置１００による最適動作の生成方法の概要を説明する。図４に動作情報生成処理のフローチャートを示す。
【００３６】  （１）作業データの記録  ある一つの作業を作業者に複数回実施させて、作業データ記録部２０４によって、それぞれの作業データを記録する（ステップＳ４００）。作業の開始と終了（データ記録の開始と終了）は、人がボタン押下などで指示してもよいし、センサ１０１の信号に基づき自動で判定してもよい。作業の実施は、一人の作業者が複数回行ってもよいし、複数の作業者が一回ずつまたは複数回ずつ行ってもよい。人による手順の違いや習熟によるノウハウ・技能を生かすため、望ましくは、複数の作業者それぞれに複数回ずつ実施させるとよい。これにより、同じ作業について複数の作業データが取得される。以下、個々の作業データを「作業サンプル」または単に「サンプル」とも呼ぶ。
【００３７】  作業データは、少なくとも、センサ情報入力部２０１から取得されるセンサデータを含む。また、必要に応じて、作業データは、対象情報入力部２０２から取得される作業対象の情報、隣接作業情報入力部２０３から取得される隣接作業の情報を含む場合もある。
【００３８】  （２）サンプルの選択  作業データ記録部２０４によって複数の（例えば、数十から数百の）作業サンプルが収集されたら、動作選択部２０５が、複数の作業サンプルのうちから作業効率の良いサンプルを選び出す（ステップＳ４０１）。このステップは、最適動作（手本）の候補を大まかに絞り込む処理である。例えば、動作選択部２０５は、所定の評価基準を用いて各サンプルの作業効率を評価し、作業効率の良いものから順に所定数または所定割合のサンプルを選択するとよい（あるいは、作業効率の悪いサンプルを除外してもよい）。
【００３９】  このような選択操作により、無駄な動作が多い作業サンプルを除くことができる。選ばれた作業サンプルは、効率的な動作を含むサンプルといえる（以下、「良サンプル」と呼ぶ）。ただし、最上位の作業サンプルであっても、全ての部分動作が最良であるとは限らない。そこで、以降のステップでは、ここで選択した複数の良サンプルを基に、最良の部分動作を組み合わせることで最適動作（理想の手本）を生成する処理を行う。
【００４０】  （３）動作の分類  動作分類部２０６は、動作選択部２０５によって選択された作業サンプルを解析することにより、作業の開始から終了までの全体動作を複数の部分動作に分割・分類する（ステップＳ４０２）。
【００４１】  動作の分類は、作業者の動作の分類もしくは作業対象の中間状態の分類、またはその両方の分類に基づいて行うことができる。作業者の動作は、部分動作がつながった一連の動作となる。作業サンプルごとに作業者の動作は少しずつ異なるが、制約要件があるため、各部分動作は概ね同じような動作となる。作業者の動作によって、作業対象は初期状態から一連の中間状態を経て最終状態となる。作業対象の位置、姿勢、状態などの変化に基づいて作業対象の中間状態を分類できる。作業者の部分動作に対してセンサ１０１により検出された情報と、作業対象のそれぞれの中間状態に対してセンサ１０１により検出された情報を用いて、動作の分類を行うことができる。
【００４２】  動作の分類は、動きの変化に基づき行うことができる。例えば、作業者の手に装着したセンサにより、手の動き情報（位置、向き、速度、角速度、加速度、角加速度など）を表す動きベクトルの時系列データが得られる。この動きベクトルの変化点に着目すると、手の加速・減速・停止・方向転換などが分かるので、動きの変化（部分動作の切り替わり）を捉えることができる。あるいは、Ｄｅｅｐ  Ｌｅａｒｎｉｎｇによる分類技術を利用してもよい。例えば、Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ技術であるリカレントニューラルネットワーク（ＲＮＮ）を用いて、時系列のデータを学習させることができる。複数の作業サンプルそれぞれの時系列データを学習データとして与え、Ｄｅｅｐ  Ｌｅａｒｎｉｎｇによる学習を行うと、分類に適した特徴が自動抽出されて、作業内の一連の動作が所定の個数の部分動作に自動で分類される。作業対象の中間状態を用いて動作の分類を行う場合も、同じような処理を適用できる。例えば、作業対象の状態（部品の組み合わせ、位置、姿勢など）を用いて中間状態を設定して、隣接する中間状態の間を所定の個数の部分動作に分割してもよい。そうすると各部分動作が同じ状態間の遷移となるので、分類が容易になる。なお、本実施形態では動作の分類はデータ解析により自動で行うことを想定しているが、分類作業の一部を人が行うようにしてもよい。
【００４３】  分類の結果、動作全体が複数のグループに分類されることがある。その場合には、それぞれのグループごとに以下の処理を行い、最良のグループを選択する。例えば、組み立て作業で、部品の取り付け順序が相違した場合や異なる手で作業を行った場合などに、複数のグループに分類される。人がその作業にある程度習熟した段階になれば、無駄な部分動作が少なくなっていることが期待できる。したがって、複数のグループは、それぞれ比較的良い作業を含む。
【００４４】  動作の分類を行う際には、作業対象から検出された情報を用いるとよい。また、工具やアクチュエータ、他の機械など、介在物から検出された情報を加えて分類を行うこともできる。例えば、工具の振動や反力、位置、稼働状況などを検出して、分類情報として用いることができる。あるいは、隣のロボットのセンサ情報を分類情報として用いることができる。作業者の属性や作業対象の属性ごとに分類を行うようにしてもよい。分類は、個々の部分動作が同じ基準で分類されるようになっていればよい。必ずしも、人が見たときの分類と一致していなくてもよい。作業のバリエーションが多く、所定の分類数まで分類できない場合は、一つの作業を複数の作業に分割し、それぞれの分割作業について分類を行うとよい。分類が適切であるかは、同じ分類に属するサンプルの間の類似度を用いて評価できる。適切に分類されていれば、サンプル間の類似度が高くなる。
【００４５】  （４）動作の合成  動作合成部２０７が、複数の良サンプルから部分動作ごとに最良の部分動作を選択し、選択した最良の部分動作を合成することによって作業全体の最適動作のデータを生成する（ステップＳ４０３）。具体的な方法としては、いずれかの良サンプルをベースとし、そのうちの一部の部分動作を他のサンプルのより良い部分動作に置き換えていく方法と、部分動作ごとに最良のサンプルを特定し、特定されたサンプルの部分動作を順番に合成する方法とがあり、どちらの方法を用いてもよい。本実施形態では前者の方法を用いる。
【００４６】  まず、動作合成部２０７は、ステップＳ４０１で選択された作業サンプルのなかから最も作業時間の短いサンプルをベースサンプルに選ぶ。このベースサンプルのなかの一部の部分動作を、より効率のよい他のサンプルの部分動作に置き換えることによって、全体として最適動作とすることができる。ただし、ベースサンプルが所定の条件を満たしたとき（例えば、作業時間が目標時間を下回ったときなど）には、ステップＳ４０３〜Ｓ４０５の処理をスキップし、ベースサンプルをそのまま最適動作のデータとして出力してもよい。
【００４７】  次に、動作合成部２０７は、部分動作ごとに、ベースサンプルと他のサンプルの作業効率を比較し、より良いサンプルがあればその部分動作に置き換える。例えば、ある位置から別の位置に作業対象を移動させる経路が、サンプルごとに微妙にぶれているときに、最短距離の移動に置き換えることができる。
【００４８】  ただし、人の動作にはばらつきがあるので、同じ作業をしても異なる動きをする。これに伴い作業対象の動きも異なることになる。したがって、部分動作を置き換える場合には、人の動きや作業対象の動きが不連続とならないよう、次のような制約要件を考慮する必要がある。動作は連続して行われるので、前の部分動作の最後と次の部分動作の最初とで、人の身体の位置は同じでなければならない。作業対象の位置や姿勢についても、前の部分動作の最後と次の部分動作の最初とで、同じでなければならない。また、組み立て作業は３次元空間のなかで行われるので、異なる物体が同じ位置を占めることはできないとか、物体は他の物体を避けて移動しなければならない、といった空間的な制約がある。また、人や作業対象の速度には上限がある。また、前の部分動作の最後と次の部分動作の最初とで、人や作業対象の速度（速さと方向）は同じでなければならない。
【００４９】  部分動作を合成するときに、制約要件を満たすように部分動作の一部を変形させて接続することもできる。接続は、人の動作の接続と、作業対象の動きの接続とがある。人の動作や作業対象の動きを接続するとき、前の部分動作の最終状態と後の部分動作の開始状態とで、位置や姿勢が異なる場合がある。その場合、前後の部分動作の間で位置、向き、速度などが一致するように、各部分動作の動きベクトルを微調整するとよい。
【００５０】  動作評価部２０８により、上記手順で生成した最適動作の評価（ステップＳ４０４）を行うことも好ましい。最適動作かどうかの評価基準は、最も単純には、作業時間（作業の開始から終了までに要する時間）が最短かどうかという基準である。評価基準には、作業時間以外にも、作業品質、安全性、疲労度、再現容易性、対象に与える影響度などを加えることもできる。その他組み立て作業全体のなかで、他に与える影響を評価するようにしてもよい。
【００５１】  その後、動作改善部２０９が、必要に応じて、最適動作を微調整する（ステップＳ４０５）。ステップＳ４０４の評価において改善点が見つかれば、関連する部分動作について、評価結果が改善するように変更することができる。改善方法としては、他のサンプルに含まれる部分動作に置き換える方法、改善すべき点を作業者に明示し作業者に作業を再トライさせることでより良いサンプルを取得する方法、部分動作の一部を変形させて接続する方法などがある。作業中のどの部分動作に関わる動作をどのように改善すべきか、ということを客観的に明示することで、さらなる効率化を期待できる。ここでは、動作を、作業時間で最適化した後に微調整する例を示したが、１つの評価関数で複数の評価基準を同時に評価するようにしてもよい。その場合、改善ステップＳ４０５は不要となる。
【００５２】  （５）データの変換  データ変換部２１０は、上記手順で得られた最適動作のデータを、出力先の要求仕様（利用方法）に合わせた形式に変換する（ステップＳ４０６）。合成された最適動作のデータは、例えば、人や作業対象の動きを表すベクトル列で与えられる。具体的には、単位時間ごとの位置および向きを表す動きベクトルの時系列データなどの形式で最適動作が表現される。最適動作のデータを利用する装置やアプリケーションが要求する仕様が、同じであれば、データ変換は省略できる。
【００５３】  （６）結果の出力  結果出力部２１１は、合成した最適動作を出力する。出力の方法、出力先、データの利用法は様々考えられる。
【００５４】  例えば、最適動作の動きベクトルの時系列データを記録した電子ファイルを出力してもよい。これによって、別の装置やアプリケーションにおいて最適動作のデータを利用することができる。また、結果出力部２１１は、画面上に動きベクトルをグラフ表示してもよい。これによって、センサで検出した項目ごとに動作の内容を確認できる。部分動作に名前や識別番号を付与することで、部分動作を特定して詳細に確認できるようにしてもよい。あるいは、合成された最適動作と、個々の作業者の個々の動作または平均動作とを比較した表示を行ってもよい。
【００５５】  最適動作の動きベクトルを３次元ＣＧによる身体の動きに変換し、ＣＧによる最適動作の再現動画を表示してもよい。これによって、最良のサンプルや合成された最適動作について、人の動作や作業対象の動きを動画で確認することができる。このとき、個々の作業者の作業を撮影した動画と、ＣＧによる最適動作の動画とを並べて表示することで、作業効率が悪い部分を見つけることができる。このような表示は作業者教育に好適である。
【００５６】  作業者のリアルタイムの動きと最適動作とを比較し、作業者に比較結果を通知してもよい。例えば、作業者の動きをセンサで監視し、最適動作のデータとリアルタイムで比較する。作業者の動きと最適動作の差が所定の閾値より大きいときに、作業者が装着したセンサやウェアラブル端末から、通知音や振動によって、作業者の動きが適切でない旨を通知する。このような仕組みによれば、作業者は自身の動きが最適な動きに沿っているかどうかをリアルタイムに把握できる。また作業を繰り返すことで、作業者は部分動作のそれぞれについて最適な動作を効率よく習得することができる。
【００５７】  最適動作のデータを、他の装置の制御データとして利用することができる。例えば、最適動作のデータをロボットや製造装置などの機械を制御するデータに変換して出力することができる。これにより、従来人が行っていたロボットのティーチングが不要となる。しかも、人のエキスパートが習得した技能やノウハウを機械に伝承することができる。
【００５８】  ＜実施例＞  次に、工場での組み立て作業を例にとり、動作情報生成装置１００のより詳しい実施例を説明する。この実施例では、複数の作業者が実際に組み立て作業を行って得られる知見を、他の作業者や機械に伝承できるようにする。作業者に人型ロボットのような機械を含むようにしてもよい。
【００５９】  （組み立て作業）  評価は作業全体を部分に分けて行うことができる。段階的に評価を進めることで、全体として複雑な作業であっても、各部分は比較的シンプルな動作となる。例えば３０個の部品を組み立てる作業になると、中間状態の組み合わせが膨大になるので、容易には類推できない。しかし、３個の部品を取り付ける例であれば、効率の良い作業手順が容易に類推できる。
【００６０】  例えば、以下の部分の分析を行う。図５に示すように、３つの穴があるベース部品５０１に、長さが違う３個の部品５０２ａ、５０２ｂ、５０２ｃを取り付ける作業を想定する。ベース部品５０１にある穴５０１ａ、穴５０１ｂ、穴５０１ｃに、部品箱５０３ａにある部品５０２ａ、部品箱５０３ｂにある部品５０２ｂ、部品箱５０３ｃにある部品５０２ｃをそれぞれ挿入して取り付ける。ベース部品５０１には前後にフレーム５０１ｄ，５０１ｅが取り付けられているため、部品５０２ａ、部品５０２ｂ、部品５０２ｃの取り付けは、フレーム５０１ｄ，５０１ｅを避けて行う必要がある。
【００６１】  この例では、部品５０２ａを位置５０４ａを経由して手前のフレーム５０１ｄの奥を通して穴５０１ａに挿入した後、部品５０２ｂを位置５０４ｂを経由して手前フレーム５０１ｄの奥を通して穴５０１ｂに挿入し、部品５０２ｃを位置５０４ｃを経由して手前フレーム５０１ｄの手前から通して穴５０１ｃに挿入する作業手順が早い。奥の部品５０２ａを先に挿入して、部品５０２ｃを後にすることで、部品５０２ｃを手前フレーム５０１ｄを回避して穴５０１ｃの位置まで移動させる動作が容易になる。
【００６２】  上記作業を行った時の各センサ１０１の出力を、作業データ記録部２０４により記録する。作業を所定の回数繰り返すと、各作業者は作業に習熟してくるため、作業時間が短くなる。ただし、最も短い時間で作業を行った作業者の組み立て動作が最適であるとは限らない。部分動作の単位でみれば、他の作業者の部分動作の方が良い場合があり得るからである。
【００６３】  この例の場合、部品の組み合わせは４！通りあるが、組み合わせた状態を保持できない組み合わせは使えない。この例では、３個の部品を取り付ける順序の組み合わせがある。それぞれの取り付け順序は、作業性が異なる。先に取り付けた部品が、後に取り付ける部品の取り付け作業に影響を与えるためである。例えば、先に手前の２個を取り付けると、手前の２個が邪魔するため、奥に取り付ける部品の取り付け作業の作業性が悪くなる。
【００６４】  工場においては、作業ごとに最適な作業手順を規定する必要がある。従来は、人の手で事前に作業手順書が作成されて、作業者は渡された手順書に従って作業を行っていた。しかし、多品種少量生産の場合には、作業手順が多岐にわたるため、現場での学習によって効率の良い作業手順が見いだせることが望ましい。これに対し、本実施例の装置では、実際の作業を行ったときの作業性に関連するさまざまなセンサデータをもとに、より効率の良い動作を評価できるようになる。
【００６５】  評価する作業の例は次のようなものである。この例では、ベース部品５０１に３個の部品５０２ａ，５０２ｂ，５０２ｃを取り付ける作業について記録が行われる。記録される一連の動作は以下のようになる。作業者は、３個の部品５０２ａ，５０２ｂ，５０２ｃそれぞれについて、部品を部品箱からピックアップして、ベース部品５０１の穴に向けて近づけていき、穴に嵌め込む動作を行う。作業者は、移動する途中で、他の物体を避けて部品を移動させる。穴に近づいたら穴に嵌め込めるように、穴と部品の空間的姿勢を合わせて、穴に沿って嵌め込めるような位置関係に近づける。穴の入り口に部品の先端を差し込む。嵌め込みが完了したことを確認し、手を離す。このような、一連の動作のそれぞれの作業速度が、全体の作業時間に影響を与える。一連の動きは、複数のセンサで検出されて、多次元のベクトルとして記録される。
【００６６】  （装置の動作）  （１）作業データの記録  図６に作業データ記録部２０４の処理フローを示す。まず、作業データ記録部２０４は、組み立て作業に対し複数の中間状態を設定し、中間状態のリストを作成する（ステップＳ６００）。作業データ記録部２０４は、図７に示すように中間状態のリスト７００を表示装置に表示し、作業者に２つの中間状態を選択させる（ステップＳ６０１）。図７は、中間状態１（作業の開始点）として「ベース部品の設置」が、中間状態２（作業の終了点）として「棒状部品を組み付け」が、それぞれ選択された例である。作業データ記録部２０４は、選択された中間状態１から中間状態２までの作業の実施を作業者に指示する（ステップＳ６０２）。図７の例では、作業の開始を促すメッセージ７０１とともに開始ボタン７０２と終了ボタン７０３が表示されている。作業者が開始ボタン７０２を押すと動作情報生成装置１００がセンサ１０１から各種センサデータの取り込みを開始する。作業データ記録部２０４は、センサ１０１から取り込まれたデータに基づき、中間状態１から中間状態２までの動作を記録した作業データを生成し、記憶装置に格納する（ステップＳ６０３）。作業者が終了ボタン７０３を押すまで、作業データの記録が行われる。
【００６７】  本実施例では、作業者の右手首に装着された動きセンサにより、単位時間ごと（例えば０．１秒ごと）の作業者の右手首の位置および向きを記録した多次元ベクトルの時系列データが作業データとして記録される。例えば、５人の作業者がそれぞれ１０回ずつ作業を行い、その動作を記録することにより、５０個の作業サンプルが得られる。
【００６８】  （２）サンプルの選択  図８に動作選択部２０５の処理フローを示す。動作選択部２０５は、作業データ記録部２０４によって記録された５０個の作業サンプルを、所定の評価基準を用いて、評価の良いものから順にソートする（ステップＳ８００）。本実施例では作業時間が短い順にソートする。ただし、評価基準としては、作業の安全性や作業者あるいは部品に与える影響を評価する評価尺度を用いてもよい。次に、動作選択部２０５は、５０個の作業サンプルのなかから評価の良い上位２０％のサンプルを選択し（ステップＳ８０１）、選択したサンプルをリストにする（ステップＳ８０２）。本実施例では、作業時間が短い順に１０個のサンプルの作業データが記述されたリストが得られる。以下、選択された評価の良いサンプルを「良サンプル」、良サンプルのうち最も評価の良いものを「最良サンプル」と呼ぶ。
【００６９】  （３）動作の分類  図９Ａに、動作分類部２０６の内部構成の一例として、動きの変化に基づき動作を分類する場合の構成例を示す。この動作分類部２０６は、動きベクトル抽出部９０１、変化点検出部９０２、類似点検出部９０３、分類生成部９０４、分類結果出力部９０５を有する。
【００７０】  図１０のフローチャートに沿って、動作分類部２０６の処理フローを説明する。まず、リストから良サンプルの作業データが１つ読み込まれる（ステップＳ１０００）。動きベクトル抽出部９０１は、作業データから作業者の右手首の位置および向きを記録した多次元ベクトルの時系列データを読み出し、それを時間微分することによって速度および角速度を要素としてもつ動きベクトルの時系列データを生成する（ステップＳ１００１）。変化点検出部９０２は、動きベクトルの時系列データを解析することで、作業者の動きの変化点を検出する（ステップＳ１００２）。例えば、停止状態から動き始めた時、動きを止めた時、速度を急に上げた／下げた時、移動方向を変えた時などを動きの変化点として検出することができる。変化点検出部９０２は、検出した変化点を記述した変化点リストを作成する（ステップＳ１００３）。ステップＳ１０００〜Ｓ１００３の処理をすべての良サンプルについて行うことで（ステップＳ１００４）、１０個の良サンプルそれぞれの変化点リストが得られる。
【００７１】  次に、類似点検出部９０３が、変化点リストを参照し、最良サンプルにおける変化点のそれぞれについて、他の良サンプルにおける変化点のなかから動きの変化が類似する類似点を検出する（ステップＳ１００５）。これは、最良サンプルと残りの良サンプルとの間で動作の対応点を探索する処理である。１つの変化点について類似点がみつからない場合もあれば、複数の類似点がみつかる場合もある。類似点の検出には、伸縮マッチングや遺伝的アルゴリズムを利用することができる。類似点検出部９０３は、最良サンプルにおける各変化点に対応する類似点を記述した類似点リストを作成する（ステップＳ１００６）。
【００７２】  次に、分類生成部９０４が、最良サンプルの変化点リストを基に、最良サンプルにおける作業の全体動作を複数の部分動作に分ける（ステップＳ１００７）。最良サンプルに含まれる変化点が少なければ（例えば数個であれば）、変化点で区切られる単位を部分動作としてもよい。変化点の数が多い場合（例えば数十以上）などは、変化点リストに含まれる変化点のうちから数個の特異点を抽出し、その特異点で区切られる単位を部分動作とすればよい。この場合、変化が特に大きい点、移動方向が変わる点、他の良サンプルに類似点が存在する点などを優先的に特異点に選んでもよい。なお、部分動作の分類作業の一部をユーザが行うようにしてもよい。例えば、分類生成部９０４により分類された部分動作を表示装置に提示し、ユーザによる修正（部分動作の統合や再分割）を可能にすることができる。
【００７３】  次に、分類生成部９０４は、最良サンプルの動きベクトルの時系列データを部分動作ごとのデータに分割するとともに、類似点リストに基づき、他の良サンプルの動きベクトルの時系列データについても部分動作ごとのデータに分割する（ステップＳ１００８）。最後に、分類結果出力部９０５が、部分動作リストを作成し出力する（ステップＳ１００９）。部分動作リストは、部分動作ごとに、１０個の良サンプルの動きベクトルのデータが記述されたリストである。
【００７４】  なお、ここまで動きの変化に基づき動作を分類する場合の構成および処理の例を説明したが、Ｄｅｅｐ  Ｌｅａｒｎｉｎｇの技術を利用して動作の分類を行うことも可能である。その場合の動作分類部２０６は、図９Ｂのように、良サンプルの作業データを入力する作業データ入力部９１０と、入力された作業データを分類する深層ニューラルネットワーク９１１と、分類結果に基づき部分動作リストを作成し出力する分類結果出力部９１２とで構成できる。この構成の場合も、深層ニューラルネットワーク９１１による分類結果を提示し、ユーザによる修正を可能にしてもよい。
【００７５】  （４）動作の合成  図１１に、動作合成部２０７の内部構成の一例を示す。動作合成部２０７は、最良部分動作判定部１１０１、最良全体動作判定部１１０２、部分動作更新部１１０３、部分動作整合部１１０４、合成動作リスト出力部１１０５を有する。
【００７６】  図１２のフローチャートに沿って、動作合成部２０７の処理フローを説明する。まず、最良部分動作判定部１１０１が、部分動作リストを読み込む（ステップＳ１２００）。そして最良部分動作判定部１１０１は、所定の評価基準を用いて各サンプルの部分動作を評価し、評価の良い１つまたは所定数のサンプルを記述した最良部分動作リストを作成する（ステップＳ１２０１）。本実施例では部分動作の作業時間が短いものから順に３個のサンプルを選び、それらのデータを最良部分動作リストに記述する。ただし、評価基準としては、作業時間、作業品質、作業者の安全性、作業者の疲労度、動作の再現容易性、対象に与える影響度のうちの１つまたは複数の評価尺度を用いてもよい。ステップＳ１２００〜Ｓ１２０１の処理をすべての部分動作について行うことで、部分動作ごとの最良の動き（局所最適解）のデータを取得することができる。
【００７７】  次に、最良全体動作判定部１１０２が、１０個の良サンプルのなかからベースとなるベースサンプルを選択する（ステップＳ１２０３）。例えば、作業全体の作業時間が最も短い最良サンプルをベースサンプルに選べばよい。あるいは、ステップＳ１２０１で作成した最良部分動作リストにおいて最も登場回数の多いサンプルをベースサンプルに選んでもよい。
【００７８】  次に、部分動作更新部１１０３が、先頭の部分動作から順に、ベースサンプルの部分動作と最良部分動作リストの部分動作とを比較し（ステップＳ１２０４）、最良部分動作リストの部分動作の方が良い場合には（ステップＳ１２０５）、ベースサンプルの部分動作を最良部分動作リストの部分動作で置き換える（ステップＳ１２０６）。ここでも、ステップＳ１２０１で用いた評価基準と同じ基準でどちらの部分動作が良いかを判定すればよい。ただし、後段の整合処理を簡単にするため、作業時間や作業品質などの評価基準だけで単純に判定するのではなく、前後の部分動作との整合性（接続のしやすさ）を考慮することも好ましい。ステップＳ１２０４〜Ｓ１２０６の処理がすべての部分動作について行われる（ステップS１２０７）。
【００７９】  ステップＳ１２０６において部分動作の置き換えが行われた場合、前後の部分動作との間で動きの整合（接続）を行う必要がある。そこで、部分動作整合部１１０４が、異なるサンプル間での部分動作の整合（接続）を行う（ステップＳ１２０８）。サンプル１の部分動作Ａとサンプル２の部分動作Ｂを接続する例を説明する。作業者が部品の組み立て作業をスムーズに且つ矛盾なく行うには、部分動作Ａの最後と部分動作Ｂの最初において、少なくとも、作業者の手の位置・向き・速度および作業対象の位置・姿勢が一致している必要がある。したがって、部分動作整合部１１０４は、部分動作Ａの後半部分と部分動作Ｂの前半部分それぞれの動きベクトルを微調整し、部分動作Ａから部分動作Ｂにかけて動きベクトルが連続的に変化するようにする。例えば、遺伝的アルゴリズムやカーブフィッティングなどの手法により、動きベクトルの調整を行うことができる。遺伝的アルゴリズムを用いる場合は、手や作業対象の動きのなめらかさを評価基準として、各世代の動きを比較することで、動きベクトルの変化のさせかたを最適化できる。
【００８０】  上記のように部分動作の置き換えおよび整合が行われた後、合成動作リスト出力部１１０５が、各部分動作の動きベクトルのデータを記述した合成動作リストを出力する（ステップＳ１２０９）。この合成動作リストが、前述した組み立て作業の最適動作を表すデータである。合成動作リストで規定される動きベクトルに従って作業を行えば、作業時間を最も短くすることができる。
【００８１】  動作評価部２０８により、他の評価基準を用いて合成動作リストの良否を評価してもよい。このとき、合成動作リストの作業全体を評価してもよいし、合成動作リストを構成する個々の部分動作を評価してもよい。有用な評価基準としては以下のものが例示できる。
【００８２】  ・「作業品質」  作業品質は高い方が望ましい。例えば、組み立て後の組み付け精度、組み立て工程後の検査結果などを評価尺度として用いることができる。
【００８３】  ・「安全性」  組み立て作業中に怪我や事故が発生してはならないので、安全性は高い方が望ましい。例えば、作業者の身体や作業対象と他の物体との間の距離（干渉や衝突の危険性の低さ）、作業者の身体と進入禁止エリアの間の距離、工具の扱い方法などを評価尺度として用いることができる。
【００８４】  ・「疲労度」  作業者の疲労度が少ない方が望ましい。例えば、作業者の手の加速度の積分値、作業者の移動距離、血圧・心拍・血流などの身体的変化をセンシングした結果などを評価尺度として用いることができる。
【００８５】  ・「再現容易性」  合成により最適動作を作成しても、作業者あるいはロボットがその動作を再現できなければ意味が無い。例えば、最大速度が大きすぎないこと、速度変化が大きすぎないこと、位置や姿勢の許容誤差が大きいこと（少しずれてもリカバリが容易であること）などを評価尺度として用いることができる。
【００８６】  ・「作業対象に与える影響」  例えば、部品をつかむときの位置や圧力、組み立て中の変形、台に作業対象を置くときの衝撃、作業中の温度変化など、作業対象に与える影響の大きさを評価尺度として用いることができる。
【００８７】  その他、組み立て作業全体のなかで他に与える影響を評価するようにしてもよい。例えば、搬送機に乗せるときの作業対象の姿勢などは下流工程への影響があるため、評価尺度に加えてもよい。また上述した複数の評価尺度を組み合わせてもよい。評価尺度を組み合わせる場合には、重み付けすることもできる。
【００８８】  動作改善部２０９は、必要に応じて、合成動作リストの一部を改善することができる。作業時間で評価した場合は、動作合成部２０７で生成された合成動作リストが最適かもしれないが、他の評価基準に着目したときには、他のサンプルの動作の方が良いことがあり得るからである。例えば、合成動作リストのなかのある部分動作の安全性が所定のレベルに到達していない場合、安全性のより高い別のサンプルの部分動作に置き換えることができる。
【００８９】  （５）データの変換  データ変換部２１０は、上記手順で得られた合成動作リストを、出力先の要求仕様（利用方法）に合わせた形式に変換する。
【００９０】  （６）結果の出力  結果出力部２１１は、合成動作リストで規定される最適動作を出力する。出力の方法、出力先、データの利用法は様々考えられる。
【００９１】  例えば、動作をパラメータ化した情報をそのまま出力してもよい。図１３は、作業者の手の水平面（ＸＹ平面）内の動きをグラフ化して、画面表示した例である。実線が合成動作リストで規定される最適動作を示し、破線はある作業者が行った動きを示している。実線グラフを見ることで、最適な動かし方を把握できる。また、実線グラフと破線グラフを比較することで、自分の動きの無駄を容易に知ることができる。
【００９２】  合成動作リストに基づき３次元ＣＧによる最適動作の再現動作を生成し、画面表示してもよい。図１４は、ＣＧによる最適動作の動画と、比較対象である作業者の組み立て作業の撮影動画を並べて表示した例である。２つの動画を見比べることで、作業者は自分の動作の改善点を把握することができる。この画面において、最適動作と作業者の動作の差が大きい部分を強調表示したり、そのときの動きをグラフ表示してもよい。さらに、動作の差や改善ポイントを言語情報として出力してもよい。例えば部品のピックアップのときの指摘事項として、「部品をつまんだ後、上に持ち上げるときの速度が遅いようです。」と表現することで、作業者に改善ポイントをわかりやすく通知することができる。
【００９３】  また、動作の評価結果を出力してもよい。個々の部分動作ごとに、様々な評価基準で評価した結果を画面に出力することができる。例えば、作業時間のみでなく禁止動作の有無や対象にかかる負担、消費エネルギー量など様々な評価基準を用いて客観的に判断できるようになる。
【００９４】  結果出力部２１１は、各種データを電子ファイルで出力してもよい。例えば、後の分析用に個々の作業データや最適化された動作を電子ファイルとして出力して、属性を付与してデータベースに登録することができる。
【００９５】  また、最適動作のデータを機械の制御情報に変換することができる。これにより、ベテラン作業者の技能を機械に伝承することができる。例えば、工具の振動や反力、対象の色や温度などをセンサで検出して、作業の分類に用いることで、切削作業や溶接作業など、組み立て作業よりも伝承が困難な作業についてパラメータ化して伝承することができる。例えば、切削工程で反力が増減する特定の事象や、切削音が変化する特定の事象を基点にしてベテラン作業者が作業を行っている場合、それが作業の分類に反映されることで、機械に伝承されるようになる。
【００９６】  以上述べた本実施形態の動作情報生成装置１００によれば、複数の作業サンプルを基に、作業全体の最適化だけでなく部分動作ごとの局所最適化も図られた、より良い最適動作（手本）を自動で生成することができる。
【００９７】  なお、上述した実施形態の構成は本発明の一具体例を示したものにすぎず、本発明の範囲を限定する趣旨のものではない。本発明はその技術思想を逸脱しない範囲において、種々の具体的構成を採り得るものである。
【００９８】  本明細書に開示された技術思想は以下のような発明として特定することもできる。  （付記１）  動作情報生成装置であって、  ハードウェアプロセッサと、プログラムを記憶するメモリとを有し、  前記ハードウェアプロセッサは、前記プログラムにより、  作業の開始から終了までの人の動作に関わる情報を作業データとして記録し、  作業の開始から終了までの全体動作を複数の部分動作に分け、  同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成することを特徴とする動作情報生成装置。  （付記２）  動作情報生成方法であって、  少なくとも１つのハードウェアプロセッサによって、作業の開始から終了までの人の動作に関わる情報を作業データとして記録するステップと、  少なくとも１つのハードウェアプロセッサによって、作業の開始から終了までの全体動作を複数の部分動作に分けるステップと、  少なくとも１つのハードウェアプロセッサによって、同じ作業に対する作業データの複数のサンプルのうちから、部分動作ごとに最良の部分動作を選択し、選択した前記最良の部分動作を合成することによって作業全体の最適動作のデータを生成するステップと、を含むことを特徴とする動作情報生成方法。
【符号の説明】
【００９９】１００：動作情報生成装置、１０１：センサ、１０２：情報処理装置、１１０：人（作業者）、１１１：作業対象２０１：センサ情報入力部、２０２：対象情報入力部、２０３：隣接作業情報入力部、２０４：作業データ記録部、２０５：動作選択部、２０６：動作分類部、２０７：動作合成部、２０８：動作評価部、２０９：動作改善部、２１０：データ変換部、２１１：結果出力部５０１：ベース部品、５０１ａ，５０１ｂ，５０１ｃ：穴、５０１ｄ，５０１ｅ：フレーム、５０２ａ，５０２ｂ，５０２ｃ：部品、５０３ａ，５０３ｂ，５０３ｃ：部品箱、５０４ａ，５０４ｂ，５０４ｃ：位置７００：中間状態のリスト、７０１：メッセージ、７０２：開始ボタン、７０３：終了ボタン９０１：ベクトル抽出部、９０２：変化点検出部、９０３：類似点検出部、９０４：分類生成部、９０５：分類結果出力部、９１０：作業データ入力部、９１１：深層ニューラルネットワーク、９１２：分類結果出力部１１０１：最良部分動作判定部、１１０２：最良全体動作判定部、１１０３：部分動作更新部、１１０４：部分動作整合部、１１０５：合成動作リスト出力部
【図１】
0006583537.tif 000002
【図２】
0006583537.tif 000003
【図３】
0006583537.tif 000004
【図４】
0006583537.tif 000005
【図５】
0006583537.tif 000006
【図６】
0006583537.tif 000007
【図７】
0006583537.tif 000008
【図８】
0006583537.tif 000009
【図９】
0006583537.tif 000010
【図１０】
0006583537.tif 000011
【図１１】
0006583537.tif 000012
【図１２】
0006583537.tif 000013
【図１３】
0006583537.tif 000014
【図１４】
0006583537.tif 000015