(57)【要約】 【課題】  人間とロボットとの接触を回避すると共に、ロボットの作業効率を向上することができるロボット制御装置を提供すること。【解決手段】  ロボット制御装置は、ロボットの位置を取得する取得手段と、人間を含む画像から前記人間の位置を検出する検出手段と、前記ロボットの位置と前記人間の位置とに基づいて、前記ロボットと前記人間との接触を予測する予測手段と、前記画像から抽出される前記人間に関する所定の情報に基づいて、前記ロボットについての前記人間の認識状態を推定する推定手段と、前記予測手段の予測結果と前記推定手段の推定結果とに基づいて、前記ロボットの動作を制御する制御手段とを備える。【選択図】  図１
2016209991.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの位置を取得する取得手段と、
人間を含む画像から前記人間の位置を検出する検出手段と、
前記ロボットの位置と前記人間の位置とに基づいて、前記ロボットと前記人間との接触を予測する予測手段と、
前記画像から抽出される前記人間に関する所定の情報に基づいて、前記ロボットについての前記人間の認識状態を推定する推定手段と、
前記予測手段の予測結果と前記推定手段の推定結果とに基づいて、前記ロボットの動作を制御する制御手段と、
を備えることを特徴とするロボット制御装置。
【請求項２】
前記推定手段は、前記人間の認識状態として、前記人間が前記ロボットを見ているかを推定することを特徴とする請求項１記載のロボット制御装置。
【請求項３】
前記画像から抽出される前記人間に関する所定の情報は、前記人間の視線の向きまたは前記人間の顔の向きであることを特徴とする請求項１記載のロボット制御装置。
【請求項４】
前記推定手段は、前記人間の認識状態として、前記人間が所定の領域または方向を見ているかを推定することを特徴とする請求項１記載のロボット制御装置。
【請求項５】
前記推定手段は、前記人間の認識状態として、前記人間が前記ロボットを見ていて、かつ、前記ロボットを意識しているかを推定することを特徴とする請求項１記載のロボット制御装置。
【請求項６】
前記推定手段は、前記人間の視線の動きが前記ロボットの動きに追従している場合に、前記人間が前記ロボットを意識していると推定することを特徴とする請求項５記載のロボット制御装置。
【請求項７】
前記推定手段は、前記人間の視野範囲内に前記ロボットの位置が入っている場合に、前記人間が前記ロボットを見ていると推定することを特徴とする請求項２、５または６に記載のロボット制御装置。
【請求項８】
前記推定手段が、前記ロボットについての前記人間の認識状態は所定の認識状態にないと推定した場合、前記制御手段は、前記ロボットの第一の危険回避動作の制御を実行し、前記推定手段が、前記ロボットについての前記人間の認識状態は所定の認識状態にあると推定した場合、前記ロボットの第一の危険回避動作の制御と異なる、前記ロボットの第二の危険回避動作の制御を実行することを特徴とする請求項１乃至７のいずれか１項に記載のロボット制御装置。
【請求項９】
前記第一の危険回避動作の制御とは、前記ロボットの動作を変更する制御であることを特徴とする請求項８記載のロボット制御装置。
【請求項１０】
前記第二の危険回避動作の制御とは、前記ロボットの動作を変更する、または、前記予測手段で前記ロボットと前記人間との接触予測に用いる距離のマージンを設定変更する、のうち少なくともいずれか一つを変更する制御であることを特徴とする請求項８または９に記載のロボット制御装置。
【請求項１１】
さらに、人間が知覚可能な報知情報を報知する報知手段と、を備えることを特徴とする請求項１乃至１０のいずれか１項に記載のロボット制御装置
【請求項１２】
ロボットの位置を取得するステップと、
人間を含む画像から前記人間の位置を検出するステップと、
前記ロボットの位置と前記人間の位置とに基づいて、前記ロボットと前記人間との接触を予測する予測ステップと、
前記画像から抽出される前記人間に関する所定の情報に基づいて、前記ロボットについての前記人間の認識状態を推定する推定ステップと、
前記予測ステップの予測結果と前記推定ステップの推定結果とに基づいて、前記ロボットの動作を制御するステップと、
を有することを特徴とするロボット制御方法。
【請求項１３】
請求項１乃至１１のいずれか１項に記載のロボット制御装置に、センサまたは前記ロボットのうち、少なくとも何れか１つ、を備えるロボットシステム。
【請求項１４】
コンピュータが読み取り実行することで、前記コンピュータを、請求項１乃至１１のいずれか１項に記載のロボット制御装置の各部として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの制御装置、制御方法およびシステムに関する。
【背景技術】
【０００２】
産業用ロボットを使用する際には、人間とロボットとの接触を回避するための安全制御装置（ロボット制御装置）が必要である。例えば、特許文献１には、作業者が進入禁止領域に侵入した場合、ロボットを停止するか動力電源を遮断するロボット制御装置が開示されている。特許文献２には、作業者とロボットの現在位置および移動速度から、作業者とロボットの将来位置を予測する安全制御装置が開示されている。特許文献２の安全制御装置は、作業者とロボットの将来位置に基づいて、作業者とロボットとが接触するかを予測し、接触すると予測した場合に安全制御を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−５０９５８号公報
【特許文献２】特開２０１０−１２０１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のロボット制御装置では、作業者が進入禁止領域（ロボットの動作領域）に侵入する度にロボットが停止してしまう。ロボットが停止する度に、ロボットの作業効率が低下する。
特許文献２の安全制御装置は、ロボットと作業者が将来接触すると予測する場合には、ロボットを停止する。この予測は、作業者とロボットの現在位置および移動速度に基づいて行われる。したがって、特許文献２の安全制御装置では、作業者がロボットとの接触可能性を認識しているか否かに関わらずロボットを停止してしまうことがある。
本発明は、上記した従来技術の課題を解決すべく考案されたものであり、本発明の目的は、人間とロボットとの接触を回避すると共に、ロボットの作業効率をより向上することができるロボット制御装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明の１つの態様によるロボット制御装置は、ロボットの位置を取得する取得手段と、人間を含む画像から前記人間の位置を検出する検出手段と、前記ロボットの位置と前記人間の位置とに基づいて、前記ロボットと前記人間との接触を予測する予測手段と、前記画像から抽出される前記人間に関する所定の情報に基づいて、前記ロボットについての前記人間の認識状態を推定する推定手段と、前記予測手段の予測結果と前記推定手段の推定結果とに基づいて、前記ロボットの動作を制御する制御手段と、を備える。
【発明の効果】
【０００６】
本発明によれば、人間とロボットとの接触を回避すると共に、ロボットの作業効率をより向上することができる。
【図面の簡単な説明】
【０００７】
【図１】実施形態１のロボットシステムの構成を示す図である。
【図２】実施形態１のロボット制御装置の処理の流れを示すフローチャートである。
【図３】実施形態１の変形例のロボットシステムの構成を示す図である。
【図４】実施形態２のロボットシステムの構成を示す図である。
【図５】実施形態２のロボット制御装置の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態によるロボット制御装置を含むロボットシステムについて、図面を参照しながら詳細に説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の実施形態によって限定されない。例えば、実施形態の構成は、本発明が適用される装置の仕様や各種条件（使用条件、使用環境等）によって適宜修正又は変更され得る。
（実施形態１）
実施形態１では、撮像画像から取得される、ロボットと人間の接触を予測するのに用いる人間の位置情報と人間の認識状態を推定するのに用いる人間の情報とに基づいて、ロボットの危険回避動作を制御する。
図１は、実施形態１のロボットシステム１００の構成を示している。ロボットシステム１００は、ロボット１０１と、視覚センサ１０２と、ロボット制御装置１０と、を有する。
【０００９】
ロボット１０１は、アーム（図示せず）とハンド（図示せず）とを有する。ロボット１０１が多関節型ロボットである場合、ロボット１０１は、複数のアームと関節を有する。ロボット１０１のハンドは、ロボット１０１の用途に応じたツールであり、本実施形態では、部品を把持して１つの位置（以下、「位置Ａ」と称する。）から他の位置（以下、「位置Ｂ」と称する。）に移動するときに使用される。ロボット１０１は、後述するロボット制御装置１０の制御部２０１に接続されている。ロボット１０１は、必要に応じて、アームの土台となるベース部、アームを駆動するサーボモータ、および当該サーボモータの角度位置を検出する手段（エンコーダ）等を備える。
【００１０】
視覚センサ１０２は、画像を撮像する手段である。本実施形態では、視覚センサ１０２は、視点の異なる複数の撮像カメラを含む。視覚センサ１０２は、複数の撮像カメラのうち任意の数のカメラを使用して撮像を行うことができる（例えば、全ての撮像カメラを使用することもできるし、１つの撮像カメラだけを使用することもできる）。視覚センサ１０２は、撮像カメラにより撮像される画像に、人間（作業者）が含まれるように撮像を行う。視覚センサ１０２は、後述するロボット制御装置１０の画像情報取得部２０３に接続されている。
【００１１】
ロボット制御装置１０は、制御部２０１、ロボット位置取得部２０２、画像情報取得部２０３、人間位置検出部２０４、接触予測部２０５、人間情報抽出部２０６、認識状態推定部２０７、および危険回避対応動作決定部２０８を備える。
ロボット制御装置１０の制御部２０１は、ロボット１０１の動作を制御する。ロボット制御部２０１は、まず、作業者から指示（ティーチング）を受ける。具体的には、例えば、制御部２０１は、ロボット１０１により部品を位置Ａから位置Ｂへ移動させる動作を指示（ティーチング）される。この指示は、例えば、作業者によって入力される。当該指示に基づき、制御部２０１は、障害物を回避して当該部品を位置Ａから位置Ｂに移動するロボット１０１の軌道を生成（プランニング）する。ロボット１０１の軌道のデータは、ロボット１０１が位置Ａから位置Ｂに部品を移動する際の、ロボット１０１を構成するアームとハンドの各部材の時系列の位置と関節角、および各部材の形状寸法を含む。
【００１２】
位置Ａは、ロボット１０１の動作開始点で、位置Ｂはロボット１０１の動作終了点となる。そして、制御部２０１は、ロボット１０１で位置Ａから位置Ｂへ部品を移動させるためのロボット１０１の軌道のデータを保持する。
また、制御部２０１は、後述する危険回避対応動作決定部２０８で決定された危険回避対応動作に従って、ロボット１０１を制御する。
なお、部品の当初の位置が予め指定された位置でない場合は、視覚センサ１０２により部品の置いてある位置（当初の位置）Ａを検出（取得）する。そして、取得した位置Ａに基づき部品の移動先である位置Ｂへ部品を移動するロボット１０１の軌道をプランニングしてもよい。
【００１３】
ロボット位置取得部２０２は、ロボット１０１の位置を算出することによりロボット１０１の位置を取得する。本実施形態で、ロボット１０１の位置とは、ロボット１０１を構成するアームとハンドが位置Ａから位置Ｂへ部品を移動する際に通過する空間的な領域を意味する。つまり、ロボット１０１の位置は、位置Ａから位置Ｂまでのロボット１０１の動作範囲（移動経路）を意味する。ロボット１０１の位置を、ロボット１０１が位置Ａから位置Ｂに移動する際に通過する空間的な領域（経路）としたのは、人間が位置Ａから位置Ｂの間で移動するロボット１０１と接触する可能性があるかを推定するためである。
ロボット位置取得部２０２は、制御部２０１に接続されており、制御部２０１が保持しているロボット１０１の軌道のデータを、制御部２０１から受け取る（取得する）。ロボット位置取得部２０２は、ロボット１０１の軌道のデータから、ロボット１０１を構成するアームとハンドが位置Ａから位置Ｂへ部品を移動する際に通過する空間的な領域を、ロボット１０１の位置として算出する。
【００１４】
なお、ロボット１０１が部品を位置Ａから位置Ｂに移動するときの空間的な領域の全てをロボットの位置としなくてもよい。例えば、ロボット１０１が位置Ａと位置Ｂの途中にあるとき、ロボット１０１の現在の位置から位置Ｂへ部品を移動する際に通過する空間的な領域を、ロボット１０１の位置としてもよい。この際、ロボット位置取得部２０２は、ロボット１０１の現在の位置を、制御部２０１から受け取る。このようにすることで、ロボット１０１が位置Ａからロボット１０１の現在の位置へ移動するまでに通過した空間的な領域を、上記した「ロボット１０１の位置」から除くことが出来る。
【００１５】
画像情報取得部２０３は、二次元画像と距離画像を取得する手段である。画像情報取得部２０３は、例えば、ビデオキャプチャボードやメモリなどで構成されている。画像情報取得部２０３は、視覚センサ１０２に接続されている。画像情報取得部２０３は、二次元画像と距離画像を算出するために、まず、視覚センサ１０２が撮像した画像を視覚センサ１０２から受け取る。そして、画像情報取得部２０３は、受け取った当該撮像画像から、二次元画像と距離画像を生成（算出）する。二次元画像と距離画像には、人間（作業者）の画像が含まれるようにする。距離画像を生成する場合、画像情報取得部２０３は、視覚センサ１０２の複数の撮像カメラによって撮像された複数の画像を基に、ステレオ法で撮影物体の距離画像を算出する。各距離画像は点群により形成されている。
【００１６】
なお、距離画像の生成は、画像情報取得部２０３を使用せずに行ってもよい。例えば、視覚センサ１０２が、距離画像を生成してもよい。また、図示しない距離画像生成手段を設け、当該距離画像生成手段により距離画像を生成してもよい。さらに、撮像カメラと、当該撮像カメラとは異なる位置から撮影物体に光のパターンを投影する手段とを用いて、パターン投影法などのアクティブ方式の三次元計測手法により、撮影物体の距離画像を生成してもよい。
【００１７】
人間位置検出部２０４は、人間（作業者）の位置を検出する手段である。人間の位置を検出するために、人間位置検出部２０４は、まず、画像情報取得部２０３で取得した距離画像を領域分割（セグメンテーション）する。また、人間位置検出部２０４は、画像情報取得部２０３で取得した二次元画像から人間の頭部を検出する。そして、人間位置検出部２０４は、領域分割して得られた距離画像の複数の領域のうち、二次元画像の人間の頭部に対応する部分を含む領域を人間の領域とし、その距離画像の点群を現在の人間の位置とする。人間の頭部の検出は、例えば、人間の肩から頭部の形状であるΩ形状を検出することにより行う。
【００１８】
接触予測部２０５は、人間とロボット１０１が接触するかを推測する手段である。接触予測部２０５は、ロボット位置取得部２０２と人間位置検出部２０４とに接続されており、ロボット位置取得部２０２の算出結果（ロボットの位置）と人間位置検出部２０４の検出結果（人間の位置）とを受け取る。接触予測部２０５は、ロボット１０１の位置と人間の位置とが重なる位置を、人間とロボット１０１が接触する可能性がある位置（接触予測情報）と予測する。
【００１９】
人間情報抽出部２０６は、画像から人間（作業者）の情報を抽出する手段である。本実施形態では、人間の情報は、作業者の顔の向きまたは視線の向きである。人間情報抽出部２０６は、画像情報取得部２０３に接続されており、画像情報取得部２０３で算出した二次元画像を画像情報取得部２０３から受け取る。そして、人間情報抽出部２０６は、当該二次元画像から人間の頭部を検出し、人間の情報として当該頭部から顔の向きまたは視線の向きを抽出（検出）する。人間の頭部の検出は、例えば、人間の肩から頭部の形状であるΩ形状を検出することにより行う。頭部からの顔の向きの検出は、例えば、顔の器官である目、鼻、口の局所的な明暗差を利用したHaar-like特徴に基づいて顔の向きを検出することにより行う。頭部から視線の向きを検出する場合は、まず、顔の器官である目、鼻、口の局所的な明暗差を利用したHaar-like特徴に基づいて顔の向きを検出すると共に目の領域を抽出する。そして、抽出した目の領域の中の瞳の位置と顔の向きとから視線の向きを検出する。
【００２０】
認識状態推定部２０７は、人間（作業者）がロボット１０１を見ているか否かを推定する手段である。認識状態推定部２０７は、接触予測部２０５と人間情報抽出部２０６に接続されており、接触予測部２０５で予測した接触予測位置と人間情報抽出部２０６で抽出した顔または視線の向きの情報を、接触予測部２０５と人間情報抽出部２０６から受け取る。そして、認識状態推定部２０７は、当該予測した接触予測位置と抽出した顔または視線の向きから、人間と接触する可能性のあるロボット１０１の位置が人間の視野範囲内にあるか否かを判断し、当該判断に基づいて、人間がロボット１０１を見ているか否かを推定する。認識状態推定部２０７は、人間がロボット１０１を見ていると推定した場合、人間がロボット１０１を認識していると推定する。
【００２１】
危険回避対応動作決定部２０８は、人間がロボット１０１を認識しているか否かによって、どのような危険回避対応動作を取るかを決定する手段である。危険回避対応動作決定部２０８は、認識状態推定部２０７に接続されており、認識状態推定部２０７の推定結果を認識状態推定部２０７から受け取る。接触予測部２０５で人間とロボット１０１が接触すると予測され、かつ、認識状態推定部２０７が人間はロボット１０１を認識していないと推定した場合、危険回避対応動作決定部２０８は、ロボット１０１の動作を変更して第一の危険回避対応動作を取るという決定をする。第一の危険回避対応動作とは、ロボットの動作速度を（接触予測前の速度より）減速し、その後、ロボットと人との間の距離が予め設定したマージン以下の距離になったらロボットを停止する動作である。接触予測部２０５で人間とロボット１０１が接触すると予測され、かつ、認識状態推定部２０７で人間がロボット１０１を認識していると推定された場合、第二の危険回避対応動作を取るという決定をする。第二の危険回避対応動作とは、接触予測部２０５でロボットと人間との接触予測に用いる、人間の位置とロボット１０１の位置との間の距離のマージンと、ロボットの動作速度とのうち少なくとも何れかひとつを変更する危険回避対応動作である。この場合もまた、ロボットと人との間の距離が予め設定したマージン以下の距離になったらロボットを停止する。
【００２２】
危険回避対応動作決定部２０８が決定した内容は、制御部２０１に伝達される。制御装置２０１は、当該決定の内容に基づいて、ロボット１０１の動作を制御する。
図２は、実施形態１のロボット制御装置１０の処理の流れを示すフローチャートである。図２では、人間情報抽出部２０６が、人間の情報として、作業者の視線の向きを抽出（検出）する場合を説明する。
Ｓ１００では、ロボット位置取得部２０２が、制御部２０１から受け取ったロボット１０１の軌道のデータに基づいて、ロボット１０１の位置（動作範囲）を算出する。より詳しくは、ロボット位置取得部２０２は、ロボットの軌道データに基づいて、ロボット１０１が位置Ａから位置Ｂに移動する際に通過する空間的な領域を算出し、これをロボット１０１の位置とする（ロボット位置の取得）。
【００２３】
なお、上記したように、ロボット１０１の現在の位置から位置Ｂへ部品を移動する際に通過する空間的な領域を、ロボット１０１の位置としてもよい。この場合、ロボット１０１の軌道のデータと、制御部２０１が保持しているロボット１０１の現在の位置とから、ロボット１０１の位置を算出する。このようにすることで、ロボット１０１が位置Ａからロボット１０１の現在の位置へ移動する際にすでに通過した空間的な領域を、ロボット１０１の位置から除くことが出来る。Ｓ１００の後、Ｓ２００に進む。
【００２４】
Ｓ２００では、画像情報取得部２０３が、視覚センサ１０２から受け取った画像に基づいて、二次元画像と距離画像を算出（取得）する。Ｓ２００の後、Ｓ３００に進む。
Ｓ３００では、人間位置検出部２０４が、現在の人間の位置を検出する。より詳しくは、人間位置検出部２０４は、Ｓ２００で取得した距離画像の点群を領域分割すると共に、二次元画像から人間の頭部を検出する。領域分割した距離画像の複数領域のうち、二次元画像の頭部に対応する点群を含む分割領域を人間の領域とし、この領域の点群を現在の人間の位置とする。人間の頭部の検出は、例えば、人間の肩から頭部の形状であるΩ形状を検出することにより行う。Ｓ３００の後、Ｓ４００に進む。
【００２５】
Ｓ４００では、接触予測部２０５が、人間とロボット１０１との接触の可能性を予測する（接触予測）。より詳しくは、Ｓ３００で検出した人間の位置である点群のうち、Ｓ１００で取得したロボット１０１の位置である空間的な領域の中に存在する点群の位置を、人間とロボット１０１が接触する可能性がある位置（接触予測情報）とする。
Ｓ４００で予測した位置は、人間とロボット１０１が接触する可能性があるロボットの接触予測部分の位置となる。
【００２６】
なお、ロボット１０１の位置は、位置Ａから位置Ｂにロボット１０１が移動する際にロボット１０１が通過する領域としなくてもよい。例えば、現在のロボット１０１の位置および移動速度、ならびに、現在の人間の位置および移動速度から、ロボット１０１と人間の将来位置を予測して、ロボット１０１と人間との接触予測位置を推定してもよい。Ｓ４００の後、Ｓ５００に進む。Ｓ５００では、接触可能性の有無を判定する。Ｓ４００で人間とロボット１０１が接触する可能性がある位置がない場合は、接触可能性が無いと判定され（Ｓ５００：Ｎｏ）、Ｓ６００に進む。Ｓ６００では、危険回避対応動作決定部２０８が、ロボット１０１の動作を変更しないという決定をする。そして、制御部２０１は、この決定に基づいて、ロボット１０１の動作を変更しないという制御を行う。Ｓ６００の後、Ｓ１００に戻り、Ｓ１００〜Ｓ５００の処理を行う。
【００２７】
Ｓ４００で人間とロボット１０１が接触する可能性がある位置がある場合は、Ｓ５００で接触可能性が有ると判定され（Ｓ５００：Ｙｅｓ）、Ｓ７００に進む。
Ｓ７００では、人間情報抽出部２０６が、Ｓ２００で取得した二次元画像から人間の頭部を検出し、人間の情報として、当該頭部から作業者の視線の向きを抽出（検出）する。作業者の視線の向きを検出するには、まず、顔の器官である目、鼻、口の局所的な明暗差を利用した、例えば、Haar-like特徴により顔の向きを検出して、その後、目の領域を抽出する。さらに、抽出した目の領域の中の瞳位置と顔の向きとから視線の向きを検出する。Ｓ７００の後、Ｓ８００に進む。Ｓ８００では、認識状態推定部２０７が、人間の視野範囲を算出する。認識状態推定部２０７は、Ｓ７００で検出した視線の向きを、人間の視野の中心とし、人間の視野角を、例えば、視野の中心に対して、横方向は左右に９０度、縦方向は上が６０度、下が７０度として、視野範囲を算出する。Ｓ８００の後、Ｓ９００に進む。
【００２８】
Ｓ９００では、認識状態推定部２０７が、Ｓ８００で算出した視野範囲（視野角）内に、Ｓ４００で予測した、人間とロボット１０１が接触する可能性がある位置（ロボット接触予測部分位置）が含まれているかを算出する。Ｓ９００の後、Ｓ１０００に進む。Ｓ１０００では、認識状態推定部２０７が、Ｓ９００の算出結果に基づいて、人間とロボット１０１が接触する可能性がある位置を、人間が見ているか否かを判定する。より詳しくは、Ｓ９００でロボット１０１の接触する可能性がある位置が、人間の視野範囲内にあるという算出がなされていれば、Ｓ１０００でロボット１０１の接触予測部分の位置が見えていると判定する（Ｓ１０００：Ｙｅｓ）。一方、Ｓ９００でロボット１０１の接触予測部分の位置が、人間の視野範囲内にないという算出がなされていれば、Ｓ１０００でロボット１０１の接触する可能性がある位置が人間には見えていないと判定する（Ｓ１０００：Ｎｏ）。
【００２９】
本実施形態では、Ｓ８００からＳ１０００で、ロボット１０１についての人間の認識状態の推定（判定）を行っている。人間が人間とロボット１０１が接触する可能性があるロボットの位置を見ている状態であれば、人間がロボット１０１を認識していると推定する（Ｓ１０００：Ｙｅｓ）。つまり、人間の視野範囲（視野角）内にロボット１０１の接触予測部分の位置が入っている状態を、ロボット１０１について人間が認識している状態であると推定（判定）する。人間が人間とロボット１０１が接触する可能性があるロボットの位置を見ていない状態であれば、人間がロボット１０１を認識していない状態と推定する（Ｓ１０００：Ｎｏ）。
Ｓ１０００の判定がＮｏの場合、Ｓ１１００に進む。Ｓ１１００では、人間とロボット１０１との接触による危険を回避するため、ロボット１０１の動作を変更して第一の危険回避対応動作を実行する。第一の危険回避対応動作とは、ロボット１０１の動作を止めたり速度を遅くしたりといった変更を行う制御である。Ｓ１１００の後、Ｓ１３００に進む。
【００３０】
Ｓ１０００の判定がＹｅｓの場合、Ｓ１２００に進む。Ｓ１２００では、人間がロボット１０１を認識していると推定されるので、第一の危険回避対応動作とは異なる、第二の危険回避対応動作を実行する。第二の危険回避対応動作とは、ロボット１０１の動作を変更する、または、Ｓ４００で予測する人間とロボット１０１が接触する可能性がある位置を求める際に用いる、人間の位置とロボット１０１の位置の距離のマージンを変更する、のうち少なくともいずれか一つを変更する制御である。本来、人間の位置とロボット１０１の位置の距離がゼロで接触するが、より安全性を持たせるため、距離のマージンを設定している。距離のマージンとは、接触予測判定をする際の人間の位置とロボットの位置との間の距離の余裕である。例えばマージンを０ｍｍと設定すると、人間の位置とロボットの位置との間の距離が０ｍｍのときに接触すると予測判定する。それに対してマージンを１００ｍｍと設定することにより、人間の位置とロボットの位置との間の距離が１００ｍｍ以下の場合に接触すると予測判定して、その距離以下になった場合にロボットの動きを止める。こうすることで実際にはロボットと人が衝突することなくロボットを事前に止めることが確実となり、より安全性を高めることが出来る。Ｓ１２００の後、Ｓ１３００に進む。Ｓ１３００では、ロボット１０１の移動が完了しているかを判定する。つまり、Ｓ１３００では、ロボット１０１が位置Ｂに到達したかを判定する。ロボット１０１の移動が完了していなければ（Ｓ１３００：Ｎｏ）、Ｓ１００に戻る。ロボット１０１の移動が完了していれば（Ｓ１３００：Ｙｅｓ）、処理を終了する。
【００３１】
人間が認識していないと推定された場合の第一の危険回避対応動作と、認識していると推定された場合の第二の危険回避対応動作の、より詳しい内容について、数値例を挙げて説明する。本実施形態では、人間がロボット１０１を認識していないと推定された場合、第一の危険回避対応動作の一つとして、例えば、ロボット１０１の動作速度を接触予測前の速度２００ｍｍ／ｓｅｃより減速した５０ｍｍ／ｓｅｃとしたり止めてもよい。なお、人間の位置とロボット１０１の位置の現在の距離が、予め定められた距離のマージン１００ｍｍ以下の場合は、ロボット１０１を停止する。また、第一の危険回避対応動作として、人間との接触を避けるため、Ｓ４００で予測された人間とロボット１０１が接触する可能性がある位置をロボット１０１が通過しないように、制御部２０１で生成されたロボット１０１の軌道データを、変更してもよい。人間がロボット１０１を認識していると推定された場合、安全性を保持した上、ロボットが作業を継続するように、第一の危険回避対応動作とは異なる、第二の危険回避対応動作を実行する。第二の危険回避対応動作とは、ロボット１０１の動作を変更する、または、Ｓ４００で予測する人間とロボット１０１が接触する可能性がある位置を求める際に用いる、人間の位置とロボット１０１の位置の距離のマージンを変更する、のうち少なくともいずれか一つ(どちらか一方、または、両方)を変更する制御を実行する。第二の危険回避対応動作の一つとして、例えば、接触予測に用いるロボット位置と人間の位置との距離のマージンである初期値１００ｍｍを２００ｍｍに変更し、かつ、ロボットの動作速度は接触予測前の速度２００ｍｍ／ｓｅｃと変えない、危険回避対応動作を実行する。別の第二の危険回避対応動作として、接触予測に用いるロボット位置と人間の位置との距離のマージンである初期値１００ｍｍは変えず、かつ、ロボットの動作速度は接触予測前の速度２００ｍｍ／ｓｅｃと第一の危険回避対応動作の減速速度５０ｍｍ／ｓｅｃとの中間の１００ｍｍ／ｓｅｃに変更してもよい。更に、接触予測に用いるロボット位置と人間の位置との距離のマージンである初期値１００ｍｍを５０ｍｍに変更し、かつ、ロボットの動作速度は接触予測前の速度２００ｍｍ／ｓｅｃから１００ｍｍ／ｓｅｃに減速してもよい。この場合も、人間とロボットの距離が予め定められた距離のマージン以下の場合は、ロボット１０１を停止する。
【００３２】
以上述べたように、本実施形態では、Ｓ１００〜Ｓ５００でロボット１０１との接触可能性を予測し、更に、Ｓ７００〜Ｓ１０００でロボット１０１についての人間の認識状態の推定を行っている。つまり、本実施形態では、ロボット１０１と接触する可能性がある場合（Ｓ５００：Ｙｅｓ）に、ただちにロボット１０１に対して危険回避のための制御を行わない。ロボットと接触する可能性がある場合には、人間がロボット１０１を見ているかを推定し、危険回避のためどのような制御を行う（危険回避対応動作を取る）かの決定を行っている。このようにすることで、人間がロボット１０１を認識している場合は、認識していない場合の第一の危険回避対応動作とは異なる、第二の危険回避対応動作を行うという設定をすることができる。従って、ロボット１０１の停止や減速に起因するロボット１０１の作業停滞・遅延が減り、ロボット１０１の作業効率の低下が抑制される。その結果、ロボット１０１との接触を回避することができると共に、ロボット１０１の作業効率を向上することができる。
【００３３】
実施形態１では、人間との共存環境下で運用できるロボットと、人間との接触を回避する制御をどのように行うかは、接触予測に加え、人間がロボットを見ている状態であるか否かに基づいて、判断（決定）される。換言すると、実施形態１では、ロボットと人間の接触を回避する制御をどのように行うかは、ロボットについての人間の認識状態に基づいて、判断される。
なお、図２の例では、Ｓ７００において、人間情報抽出部２０６が、人間の情報として、人間の視線の向きを抽出（検出）するとしたが、人間の情報として、人間の顔の向きを抽出してもよい。つまり、人間の情報は、人間の視線の向きではなく、人間の顔の向きであってもよい。その場合、例えば、人間の顔がロボット１０１側にあるならば人間がロボット１０１を認識していると推定（判定）する。そして、人間の顔がロボット１０１を背にしているならば、人間がロボット１０１を認識していない（見ていない）と推定する。
【００３４】
また、上記した「人間」はロボット１０１を使用して作業をする作業者に限定されない。本実施形態では、画像情報取得部２０３で取得した画像に含まれている任意の人間（視覚センサ１０２の撮像カメラで撮像した画像に映っている人間）に対して、当該人間のための危険回避対応動作を行うことができる。従って、危険回避の対象となる人間は、ロボットを使用して作業をする作業者以外の人間（例えば、侵入者や部品補充者やメンテナンス者など）であってもよい。換言すると、上記した「人間」は、視覚センサ１０２によって撮像された全ての人間（一人ひとり）を意味する場合もある。本明細書の以下の説明においても、「人間」という用語はこの意味で用いられる。
さらに、本実施形態では、ロボット１０１の動作を変更した後に（Ｓ１１００）、人間が移動した場合、再度Ｓ５００の判断またはＳ１０００の判断を行う。そして、Ｓ５００で、ロボット１０１との接触の可能性がないと判断されれば、ロボット１０１の作業を元の速度で行うようにする。
【００３５】
（変形例）
図３は、実施形態１の変形例のロボットシステム１１０の構成を示す図である。この変形例の説明において、実施形態１と同様な構成要素には同じ参照符号を付け、当該構成要素の詳細な説明は省略する。
変形例のロボットシステム１１０は、ロボット１０１と、視覚センサ１０２と、ロボット制御装置１４とを備えている。変形例のロボット１０１と視覚センサ１０２は、実施形態１と同じである。変形例のロボットシステム１１０のロボット制御装置１４は、実施形態１のロボットシステム１００のロボット制御装置１０と異なっている。より詳しくは、実施形態１の危険回避対応動作決定部２０８が、変形例では危険回避対応動作決定部２３８になっている。また、実施形態１の認識状態推定部２０７が、変形例では認識状態推定部２３７になっている。
【００３６】
さらに、実施形態１では、接触予測部２０５で予測された、人間とロボット１０１が接触する可能性がある位置（接触予測情報）が、認識状態推定部２０７に入力されているが、変形例では危険回避対応動作決定部２３８に入力されている。変形例の認識状態推定部２３７は、人間がロボット１０１を見ている状態なのかを推定（判定）する際、人間とロボット１０１が接触する可能性のある位置（接触予測情報）は用いない。
認識状態推定部２３７は、人間情報抽出部２０６で抽出した人間の顔の向きまたは視線の向きから、当該人間が予め設定した領域または方向を見ているかを判断する。そして、認識状態推定部２３７は、その判断結果に基づいて、人間がロボット１０１を見ている状態にあるのかを推定する。例えば、ロボット１０１が部品を位置Ｂに置いた後、人間が当該部品に他の部品を組み付ける場合、位置Ｂで人間とロボット１０１が接触する可能性がある。そこで、位置Ｂを含む位置Ｂの近傍の領域を予め設定しておき、当該領域が人間の視野範囲内にあるか否かで、人間がロボット１０１を見ているか否かを推定する。
【００３７】
危険回避対応動作決定部２３８は、認識状態推定部２３７で推定した人間のロボット認識状態と、接触予測部２０５で予測した接触予測情報（人間とロボット１０１が接触する可能性がある位置）の有無とから、危険回避対応動作を決定する。人間がロボット１０１と接触する可能性のある位置を見ていなくて、かつ、接触予測情報がある場合、危険回避対応動作決定部２３８は、接触による危険を回避するため、例えば、ロボット１０１の動作を停止するという第一の危険回避動作を実行する決定を出す。人間がロボット１０１と接触する可能性のある位置を見ていて、かつ、接触予測情報がある場合は、この変形例では、ロボット１０１の動作は第二の危険回避動作を実行する。つまり、予め設定した領域であるロボット１０１と接触する可能性のある位置の方向を人間が見ているか否かと、人間とロボット１０１との接触の可能性の有無とから、どのような危険回避対応動作が必要であるかを判断する。
よって、この変形例においても、接触予測と作業者の認識状態とに基づいてどのような危険回避制御を行うかを決定している。このような危険回避対応動作の決定を行うことにより、ロボット１０１の停止や減速の回数が減少する。つまり、ロボット１０１の作業が滞る機会が減少する。したがって、ロボット１０１との接触を回避することができると共に、ロボット１０１の作業効率（生産性）を向上することができる。
【００３８】
（実施形態２）
実施形態１では、ロボット１０１についての人間の認識状態は、人間がロボット１０１を見ているか否かで判断した。本発明は、このような態様に限定されない。例えば、ロボット１０１についての人間の認識状態は、人間がロボット１０１を見ていること以外のことも考慮してよい。実施形態２では、ロボット１０１と人間との接触回避のためどのような危険回避対応動作を行うかを判断する際の、ロボット１０１についての人間の認識状態は、人間がロボット１０１を見ていて、かつ、ロボット１０１を意識している状態にあるか否かで判断する。
【００３９】
図４は、実施形態２のロボットシステム１２０の構成を示している。実施形態２の説明において、実施形態１と同様な構成要素には同じ参照符号を付け、当該構成要素の詳細な説明は省略する。実施形態２のロボットシステム１２０は、ロボット１０１と、視覚センサ１０２と、ロボット制御装置１１とを備えている。実施形態２のロボット１０１と視覚センサ１０２は、実施形態１と同じである。実施形態２のロボットシステム１２０のロボット制御装置１１は、実施形態１のロボットシステム１００のロボット制御装置１０と異なっている。より詳しくは、実施形態１の認識状態推定部２０７が、実施形態２では認識状態推定部２１７になっている。また、実施形態２では、制御部２０１が、認識状態推定部２１７に、ロボット１０１の軌道に関する情報（データ）を入力する。
【００４０】
実施形態２のロボット制御装置１１の認識状態推定部２１７は、人間がロボット１０１を見ている状態であって、かつ、ロボット１０１を意識している状態を、人間がロボット１０１を認識している状態と推定（判断）する。人間と接触する可能性があるロボット１０１の位置を人間が見ているか否かに加えて、人間がロボットを意識しているか否かを判定することで、さらに安全性を高めることが出来る。そこで、本実施形態では、人間がロボットを意識しているかについても推定を行う。本実施形態では、ロボット１０１と接触する可能性がある位置を、人間が目で追っているか否かで、ロボット１０１を意識しているか否かを推定する。
【００４１】
図５は、実施形態２のロボット制御装置１１の処理の流れを示すフローチャートである。図５のフローチャート（実施形態２）と図２のフローチャート（実施形態１）を比較すると、図２のＳ８００、Ｓ９００およびＳ１０００が、図５ではＳ８１０、Ｓ９１０およびＳ１０１０になっている。それ以外のステップは、図２と図５において同じである。図５のＳ８１０、Ｓ９１０およびＳ１０１０は、ロボット１０１についての認識状態の推定にかかわるステップである。つまり、実施形態２は、ロボット１０１についての認識状態の推定に関する処理が実施形態１と異なる。
【００４２】
Ｓ１００〜Ｓ７００までは実施形態１と同じであるので説明を省略する。図５のフローチャートでは、Ｓ７００の後、Ｓ８１０に進む。
Ｓ８１０では、Ｓ７００で抽出した人間の視線の向きから、人間の視線の動きを算出する。実施形態１では、画像情報取得部２０３で取得した現在の画像から、現在の人間の情報（視線の向き）を抽出した。実施形態２では、現在の人間の情報だけでなく、過去に抽出した人間の情報（視線の向き）も利用することにより、視線の動きを算出する。例えば、視覚センサ１０２と画像情報取得部２０３により一定時間Δｔ毎に画像情報を取得していれば、時系列の視線の向きのデータが得られる。例えば、画像情報を取得した時刻をｔ、ｔ＋Δｔ、ｔ＋２・Δｔ、・・・とすると、時系列の視線の向きのデータは、時刻ｔにおけるデータ、時刻ｔ＋Δｔにおけるデータ、時刻ｔ＋２・Δｔにおけるデータ、・・・からなる。この時系列の視線の向きのデータから、人間の視線の動きを算出することができる。Ｓ８１０で視線の動きを算出したならば、Ｓ９１０に進む。
【００４３】
Ｓ９１０では、Ｓ４００で予測した人間とロボット１０１が接触する可能性がある位置（ロボットの接触予測部分の位置）の動きを算出する。この動きはロボット１０１の動きと言えるので、図５のＳ９１０では「ロボットの動きを算出」すると記載してある。制御部２０１が保持しているロボット１０１の軌道のデータから、Ｓ４００で予測した人間とロボット１０１が接触する可能性がある位置のうち、時刻ｔ、ｔ＋Δｔ、ｔ＋２・Δｔ、・・・におけるロボット１０１の接触予測部分の位置を算出（抽出）する。
【００４４】
Ｓ１０１０では、Ｓ８１０で取得した視線の動きが、Ｓ９１０で算出したロボット１０１の接触予測部分の位置の動き（ロボットの動き）に追従しているかを判定する。画像情報を取得した時刻ｔ、ｔ＋Δｔ、ｔ＋２・Δｔ、・・・において、人間の視線の向きの延長線上もしくは延長線付近に、ロボット１０１の接触する可能性がある部分の位置があれば、視線の動きが、ロボット１０１の動きに追従していると判定する（Ｓ１０１０：Ｙｅｓ）。人間の視線の動きがロボット１０１の動きに追従している場合、人間がロボット１０１を意識していると推定する。本実施形態では、Ｓ１０１０の判定がＹｅｓの状態が、人間がロボット１０１を見ていて、かつ、ロボット１０１を意識している状態である。
【００４５】
Ｓ１０１０の判定がＹｅｓの場合、Ｓ１２００に進む。Ｓ１２００の処理内容は実施形態１と同じである。人間の視線がロボット１０１の動きに追従しているので、実施形態１と同様に、第一の危険回避対応動作と異なる、ロボットの動作速度を変更する、または、人間の位置と、ロボット１０１の位置と、の距離のマージンの少なくともいずれか一つを変更する、第二の危険回避対応動作の制御を行う。Ｓ１２００の後、Ｓ１３００に進む。Ｓ１３００の処理内容も実施形態１と同じである。
Ｓ１０１０の判定がＮｏの場合、Ｓ１１００に進む。Ｓ１１００の処理内容も実施形態１と同じである。人間の視線がロボット１０１の動きに追従していないので、危険回避対応動作を取る必要があると判断されて、ロボットを止めたり遅くしたりといった動作の変更を行う制御を実行する。
【００４６】
以上述べたように、実施形態２では、Ｓ１００〜Ｓ５００でロボット１０１との接触可能性を予測し、更に、Ｓ７００〜Ｓ１０１０でロボット１０１についての人間の認識状態の推定を行っている。本実施形態において、人間の認識状態の推定は、人間がロボット１０１を見ていて、かつ、ロボット１０１を意識しているかを推定することにより行う。本実施形態では、人間がロボット１０１を見ていても、ロボット１０１を意識していないと推定されれば、第一の危険回避対応動作を実行する。人間がロボット１０１を見ていて、かつ、ロボット１０１を意識していると推定されれば、第二の危険回避対応動作を実行する。
【００４７】
実施形態２では、人間がロボット１０１を見ていて、かつ、ロボット１０１を意識している状態を、人間がロボットを認識している状態と推定する。そして、ロボット１０１を意識していないと推定できる場合には、人間がロボットに接触する可能性があると判断し、第一の危険回避対応動作を実行する。よって、ロボット１０１を意識していない人間が、ロボット１０１に接触することを防止することができる。
【００４８】
また、実施形態１と同じように、実施形態２では、ロボット１０１と接触する可能性がある場合（Ｓ５００：Ｙｅｓ）であっても、ただちにロボット１０１に対して危険回避のための制御を行わない。ロボットと接触する可能性がある場合には、人間の視線がロボット１０１の動きに追従しているかを推定（判定）し、危険回避のためどのような制御を行うかの決定を行っている。このようにすることで、人間がロボット１０１を見ておりかつ意識している場合（人間がロボット１０１を認識している場合）は、意識していない場合の第一の危険回避対応動作とは異なる、第二の危険回避対応動作を行うという設定をすることができる。従って、ロボット１０１の停止や減速に起因するロボット１０１の作業停滞・遅延が減り、ロボット１０１の作業効率の低下が抑制される。よって、ロボット１０１との接触を回避することができると共に、ロボット１０１の作業効率（生産性）を向上することができる。
なお、図５の説明では、人間がロボット１０１を意識しているかどうかは、人間の視線の動きに基づいて判断したが、人間の顔の向きの動きに基づいて判断してもよい。
【００４９】
さらに、人間がロボットを認識しているか否かを推定する際、ロボットから人間に対し、人間が知覚可能な報知情報を発信し、その報知情報に応じた人間の反応を検出することで、人間が認識しているか否かを判定してもよい。報知情報は、色や輝度を変化させる光学的に報知を行うことのできる液晶表示装置やＬＥＤなどのデバイスで構成される。光学的な報知を行う以外に、音声的に報知を行うスピーカやブザーなどを利用してもよい。また、触覚など、人間の他の感覚器に刺激を与えることで報知を行ってもよい。
【００５０】
（その他の実施形態）
実施形態１では、ロボット１０１についての人間の認識状態は、人間がロボット１０１を見ている状態であるとした。また、実施形態２では、ロボットについての人間の認識状態は、人間がロボット１０１を見ていて、かつ、ロボット１０１を意識している状態であるとした。しかしながら、本発明における、ロボット１０１についての人間の認識状態は、上記した状態に限定されない。本発明における、ロボット１０１についての人間の認識状態は、人間がロボット１０１を認識しているか否かを推定（判断）できる状態であればどのようなものであってもよい。例えば、人間がロボット１０１を見ていなくても、人間に注意喚起がなされている状態（例えば、音、光、振動などにより人間にロボット１０１を意識させている状態）は、人間がロボット１０１について認識している状態であるとしてもよい。
【００５１】
実施形態１および実施形態２では、人間の情報は、人間の視線の向き、または、顔の向きであるとした。しかしながら、本発明における人間の情報は、上記したものに限定されない。本発明における人間の情報は、人間がロボット１０１を認識しているか否かを推定できるものであればどのようなものであってもよい。例えば、人間の情報は、人間の体の向き（見ている向き、上半身の向き）でもよいし、人間の体が前を向いているか後ろを向いているかでもよい。例えば、人間の体の前面が視覚センサ１０２により検出（撮像）できるなら、人間の体が前を向いているとする。また、人間の情報は、人間の姿勢でもよいし（例えば、しゃがんでいるか否か）、人間の顔の表情でもよいし、顔の表情の変化であってもよい。  
【符号の説明】
【００５２】
１０…ロボット制御装置、１０１…ロボット、１０２…視覚センサ、２０１…制御部、２０２…ロボット位置取得部、２０３…画像情報取得部、２０４…人間位置検出部、２０５…接触予測部、２０６…人間情報抽出部、２０７…認識状態推定部、２０８…危険回避対応動作決定部
【図１】
2016209991.tif 000003
【図２】
2016209991.tif 000004
【図３】
2016209991.tif 000005
【図４】
2016209991.tif 000006
【図５】
2016209991.tif 000007