(57)【要約】【課題】作業者とロボットとの位置関係によらず、ロボットが作業者または他の物体と接触する危険性を軽減できるロボット制御装置を提供する。【解決手段】ロボット制御装置は、作業者が所持または装着する表示機器２に取り付けられ、作業者の周囲の環境を撮影して、その環境の画像を生成する撮像部３と、その環境に含まれる所定のロボットが表示機器２に表示されていない場合、その所定のロボットの一部しか表示されていない場合、または、表示機器２の表示領域に対するその所定のロボットが表された領域の比が所定の閾値以下である場合にその所定のロボットの動作を減速または停止させる制御部２２とを有する。【選択図】図２
2020059112.tif 000002
【特許請求の範囲】
【請求項１】
作業者が所持または装着する表示機器に取り付けられ、前記作業者の周囲の環境を撮影して、当該環境の画像を生成する撮像部と、
前記環境に含まれる所定のロボットが前記表示機器に表示されていない場合、前記ロボットの一部しか表示されていない場合、または、前記表示機器の表示領域に対する前記ロボットが表された領域の比が所定の閾値以下である場合に前記ロボットの動作を減速または停止させる制御部と、
を有するロボット制御装置。
【請求項２】
前記ロボットには、前記ロボットを識別するための識別マーカが付され、
前記表示機器に表示された画像から、前記ロボットを示す前記識別マーカを検出できない場合、前記制御部は前記ロボットの動作を減速または停止させる、請求項１に記載のロボット制御装置。
【請求項３】
前記表示機器に表示されたロボットの動作と、前記所定のロボットについて指示された動作とが異なる場合、前記制御部は前記ロボットの動作を減速または停止させる、請求項１または２に記載のロボット制御装置。
【請求項４】
作業者が装着し、かつ、コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能な表示機器と、
前記表示機器または前記作業者の頭部に取り付けられ、前記表示機器または前記作業者の頭部の変位量を表す測定信号を出力する変位測定部と、
前記測定信号に基づいて、前記作業者が前記表示機器を通して視認できる視認範囲を推定し、推定した前記視認範囲に前記環境に含まれる所定のロボットが含まれるか否かを判定する判定部と、
前記視認範囲に前記ロボットが含まれない場合に前記ロボットの動作を減速または停止させる制御部と、
を有するロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ロボットを制御するロボット制御装置に関する。
【背景技術】
【０００２】
アームなどの可動部を有し、その可動部がサーボモータを用いて駆動されるロボットに実行させる動作を作業者が教示する際、あるいは、そのようなロボットと作業者とが協働作業する際に、作業者とロボットとが接触する可能性がある。そのような接触が、作業者が意図することなく生じると、作業者にとって危険である。そこで、人間を含む画像から抽出される人間に関する所定の情報に基づいて、ロボットについての人間の認識状態を推定し、その推定結果とロボットと人間との接触の予測結果とに基づいて、ロボットの動作を制御する技術が提案されている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２０９９９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の技術では、視覚センサにより取得された画像に基づいて人間の視認範囲が推定され、人間と接触する可能性のあるロボットの位置が人間の視認範囲内にあるか否かの判断結果に基づいて人間がロボットを認識しているか否かが推定される。しかし、ロボットが設置される環境によっては、ロボットと作業者以外にも、他の装置など、様々な物体が存在することがある。このような場合、視覚センサと人間との位置関係によっては、何らかの物体が視覚センサの撮影範囲を遮ってしまい、視覚センサにより取得された画像に人間の頭部が写っておらず、人間の視認範囲を推定することが困難となる。
【０００５】
一つの側面では、作業者とロボットとの位置関係によらず、ロボットが作業者または他の物体と接触する危険性を軽減できるロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの実施形態によれば、ロボット制御装置が提供される。このロボット制御装置は、作業者が所持または装着する表示機器に取り付けられ、作業者の周囲の環境を撮影して、その環境の画像を生成する撮像部と、その環境に含まれる所定のロボットが表示機器に表示されていない場合、その所定のロボットの一部しか表示されていない場合、または、表示機器の表示領域に対するその所定のロボットが表された領域の比が所定の閾値以下である場合にその所定のロボットの動作を減速または停止させる制御部とを有する。
【０００７】
他の実施形態によれば、ロボット制御装置が提供される。このロボット制御装置は、作業者が装着し、かつ、コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能な表示機器と、表示機器または作業者の頭部に取り付けられ、表示機器または作業者の頭部の変位量を表す測定信号を出力する変位測定部と、その測定信号に基づいて、作業者が表示機器を通して視認できる視認範囲を推定し、推定した視認範囲に環境に含まれる所定のロボットが含まれるか否かを判定する判定部と、視認範囲にその所定のロボットが含まれない場合にその所定のロボットの動作を減速または停止させる制御部とを有する。
【発明の効果】
【０００８】
一つの側面によれば、作業者とロボットとの位置関係によらず、ロボットが作業者または他の物体と接触する危険性を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態によるロボット制御装置の概略構成図である。
【図２】ロボット制御処理に関する、プロセッサの機能ブロック図である。
【図３】表示機器に表示される画像とロボットの制御との関係の一例を示す図である。
【図４】第１の実施形態による、ロボット制御処理の動作フローチャートである。
【図５】第２の実施形態によるロボット制御装置に含まれる、表示機器の概略構成図である。
【図６Ａ】作業者の視認範囲とロボットの位置関係と、ロボットの制御との関係の一例を示す図である。
【図６Ｂ】作業者の視認範囲とロボットの位置関係と、ロボットの制御との関係の他の一例を示す図である。
【図７】第２の実施形態によるロボット制御処理の動作フローチャートである。
【発明を実施するための形態】
【００１０】
以下、図を参照しつつ、ロボット制御装置について説明する。このロボット制御装置は、作業者が所持または装着した表示機器のディスプレイに、表示機器に取り付けられたカメラが撮影することにより得られた作業者の周囲の環境が表された画像を表示させる。そしてこのロボット制御装置は、ディスプレイに表示された画像の表示範囲に、ロボット制御装置により制御されるロボットが表されていない場合に、そのロボットの動作を停止させる。あるいは、このロボット制御装置は、作業者が装着した、透過型ディスプレイを有する表示機器に取り付けられた、作業者の頭部の動きを測定するセンサによる測定信号に基づいて、作業者がそのディスプレイを介して視認できる範囲を推定し、推定したその視認できる範囲にロボットが存在しない場合に、そのロボットの動作を停止させる。
【００１１】
このロボット制御装置は、例えば、ロボットに対する教示の際、あるいは、ロボットを運用して何らかの作業を実行する際、または、ロボットに対する保守作業を行う際に適用される。
【００１２】
図１は、第１の実施形態によるロボット制御装置の概略構成図である。ロボット制御装置１は、表示機器２と、カメラ３と、無線通信インターフェース４と、通信インターフェース５と、メモリ６と、プロセッサ７とを有する。このうち、無線通信インターフェース４、通信インターフェース５、メモリ６及びプロセッサ７は、ロボット制御装置１の本体１２に収容される。また、無線通信インターフェース４、通信インターフェース５及びメモリ６は、プロセッサ７と信号線を介して互いに通信可能に接続される。さらに、表示機器２及びカメラ３は、それぞれ、例えば、Bluetooth(登録商標)といった所定の無線通信規格に準拠した無線通信により、無線通信インターフェース４を介して本体１２と通信可能に接続される。そしてロボット制御装置１は、通信回線１３を介してロボット１１を制御する。
【００１３】
この例では、ロボット１１は、少なくとも一つの軸を有し、その少なくとも一つの軸のそれぞれが、サーボモータ（図示せず）によって駆動されることで、ロボット１１の位置及び姿勢が変化する。そしてロボット制御装置１は、作業者の操作、あるいは、予め設定されたロボット１１の制御プログラムに従って、ロボット１１が所定の位置及び姿勢となるよう、通信回線１３を介してサーボモータを制御する。またロボット制御装置１は、サーボモータにより駆動される各軸の回転量などを、通信回線１３を介してロボット１１から受信することにより、ロボット１１の位置及び姿勢を検知する。
【００１４】
表示機器２は、例えば、タブレット端末といった携帯端末、あるいは、作業者の頭部に装着されるヘッドマウントディスプレイを含むウェアラブル端末といった、作業者が所持または装着可能な携帯型の表示機器であり、カメラ３が作業者の周囲の環境を撮影することで得られた画像などを表示する。表示機器２は、携帯端末である場合、例えば、タッチパネルディスプレイと、タッチパネルディスプレイを介した操作に対応する操作信号を生成し、あるいは、本体１２から受信した、ロボット１１の操作に用いられる、操作アイコンなどの表示用データまたはカメラ３から受け取った画像をタッチパネルディスプレイに表示させるプロセッサと、プロセッサにより生成された操作信号を含む無線信号を生成して本体１２へ送信し、あるいは、本体１２からの無線信号を受信するための無線通信インターフェースとを有する。なお、タッチパネルディスプレイは、表示部の一例である。
【００１５】
例えば、タッチパネルディスプレイに表示された操作アイコンなどを作業者がタッチすることで、表示機器２のプロセッサが、その操作アイコンに応じた操作（例えば、ロボット１１の所定部位を何れかの方向へ移動させる操作、あるいは、所定部位に設定される直交座標系の何れかの軸を回転軸としてロボットを回転させる操作など）を表す操作信号を生成する。また、作業者がタッチパネルディスプレイに対する所定の操作を行うことで、表示機器２のプロセッサは、タッチパネルディスプレイに表示された、カメラ３から得た画像を拡大または縮小表示し、あるいは、カメラ３から得た画像の一部をトリミングしてタッチパネルディスプレイに表示させてもよい。この場合、表示機器２のプロセッサは、タッチパネルディスプレイに表示されている画像の範囲（以下、単に表示範囲と呼ぶ）が変更される度に、その表示範囲を表す情報（例えば、画像上での表示範囲の左上端及び右下端の座標）も無線信号に含めて、本体１２へ送信してもよい。なお、表示範囲が予め設定されており、かつ、変更されない場合には、表示機器２は、表示範囲を本体１２へ通知しなくてもよい。また、表示機器２がタッチパネルディスプレイに画像全体を表示させる場合には、画像全体が表示範囲となる。
【００１６】
また、表示機器２がウェアラブル端末である場合、表示機器２は、タッチパネルディスプレイの代わりに液晶ディスプレイといった、単に表示を行うディスプレイを有していてもよい。さらに、そのディスプレイは、透過型のディスプレイであってもよい。この場合には、ロボット制御装置１は、本体１２と無線通信可能であり、かつ、ロボット１１の操作を行うための入力機器（図示せず）を表示機器２と別個に有していてもよい。
なお、以下では、表示機器２が有するタッチパネルディスプレイについても、単にディスプレイと呼ぶことがある。
【００１７】
カメラ３は、撮像部の一例であり、例えば、表示機器２に取り付けられる。例えば、表示機器２が携帯端末である場合、カメラ３は、表示機器２のディスプレイが設けられる面の背面側に取り付けられる。あるいは、カメラ３は、例えば、作業者が表示機器２のディスプレイを見て作業するよう表示機器２を所持したときの表示機器２の上端に、表示機器２の上方を向くように（すなわち、表示機器２のディスプレイが水平となるように作業者が表示機器２を所持したときに、作業者から見て前方を向くように）、表示機器２に取り付けられてもよい。これにより、作業者がロボット１１の方を向いていない場合でも、カメラ３は、ロボット１１をその撮影範囲に含めることができる。また表示機器２がウェアラブル端末である場合、表示機器２を装着した作業者の正面方向を向くように、カメラ３は取り付けられる。そしてカメラ３は、例えば、表示機器２と通信可能に接続される。カメラ３は、ロボット制御装置１がロボット１１を制御している間、所定の撮影周期ごとに、作業者の周囲の環境を撮影してその環境の画像を生成し、生成した画像を表示機器２及び表示機器２を介して無線信号にて本体１２へ送信する。
【００１８】
無線通信インターフェース４は、所定の無線通信規格に準じた無線信号の送受信に関する処理を実行するための回路などを含む。そして無線通信インターフェース４は、表示機器２から受信した無線信号に含まれる、操作信号、画像または表示範囲等の情報を取り出して、プロセッサ７へわたす。また無線通信インターフェース４は、プロセッサ７から受け取った、表示機器２に表示させる表示用データなどを含む無線信号を生成し、生成した無線信号を表示機器２へ送信する。
【００１９】
通信インターフェース５は、例えば、ロボット制御装置１を通信回線１３と接続するための通信インターフェース及び通信回線１３を介した信号の送受信に関する処理を実行するための回路などを含む。そして通信インターフェース５は、例えば、プロセッサ７から受け取った、ロボット１１のサーボモータに対するトルク指令値といった制御情報を、通信回線１３を介してロボット１１へ出力する。また通信インターフェース５は、ロボット１１から、通信回線１３を介して、サーボモータのフィードバック電流の値、サーボモータにより駆動されるロボット１１の軸の回転量を表すエンコーダからのエンコーダ信号など、サーボモータの動作状況を表す情報を受信して、その情報をプロセッサ７へわたす。
【００２０】
メモリ６は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。さらに、メモリ６は、半導体メモリカード、ハードディスク、あるいは光記憶媒体といった記憶媒体及びその記憶媒体にアクセスする装置を有していてもよい。
【００２１】
メモリ６は、プロセッサ７で実行される、ロボット１１の制御処理用のコンピュータプログラムなどを記憶する。また、メモリ６は、表示機器２に表示させる、ロボット１１の操作用アイコンといったロボット１１の操作に用いられる表示用データなどを記憶する。さらに、メモリ６は、ロボット１１の動作中においてロボット１１から得られるサーボモータの動作状況を表す情報、ロボット制御処理の途中において生成される各種のデータ、及び、カメラ３から得られる画像などを記憶する。
【００２２】
プロセッサ７は、例えば、Central Processing Unit(CPU)及びその周辺回路を有する。さらにプロセッサ７は、数値演算用のプロセッサユニットを有していてもよい。そしてプロセッサ７は、ロボット制御処理を実行する。
【００２３】
図２は、ロボット制御処理に関する、プロセッサ７の機能ブロック図である。プロセッサ７は、判定部２１と、制御部２２とを有する。プロセッサ７が有するこれらの各部は、例えば、プロセッサ７上で実行されるコンピュータプログラムにより実現される機能モジュールである。あるいは、これらの各部は、プロセッサ７の一部に設けられる専用の演算回路として、プロセッサ７に実装されてもよい。
【００２４】
判定部２１は、カメラにより生成された画像を、無線通信インターフェース４を介して受信する度に、表示機器２を介してロボット１１が作業者に認識可能な状態になっているか否かを判定する。本実施形態では、判定部２１は、受信した画像の表示範囲にロボット１１が表されているか否か判定し、受信した画像の表示範囲にロボット１１が表されている場合、表示機器２を介してロボット１１が作業者に認識可能な状態になっていると判定する。
【００２５】
例えば、判定部２１は、ロボット１１を検出するように予め学習された識別器に、画像のうちの表示範囲内の各画素の値、または、表示範囲内の各画素の値から算出される、HOG等の特徴量を入力することで、画像の表示範囲内でロボット１１が写っている領域を検出する。判定部２１は、そのような識別器として、例えば、ニューラルネットワーク、あるいはAdaBoostといった識別器を利用できる。あるいは、判定部２１は、ロボット１１が表されたテンプレートと画像の表示範囲との相対的な位置を変えながら、テンプレートとその表示範囲との間でテンプレートマッチングを実行することで、画像の表示範囲内でロボット１１が写っている領域を検出してもよい。なお、カメラ３とロボット１１間の想定される複数の相対的な位置関係のそれぞれについて、その相対的な位置関係においてカメラ３から見えるロボット１１の姿勢を表す複数のテンプレートがメモリ６に予め記憶されてもよい。そして判定部２１は、それら複数のテンプレートのそれぞれと画像の表示範囲との間でテンプレートマッチングを実行してもよい。また、ロボット１１に識別用の何らかのマーカが付されている場合には、テンプレートはそのマーカを表すものであってもよい。この場合には、判定部２１は、例えば、マーカを表すテンプレートと画像の表示範囲との間でテンプレートマッチングを実行して、そのマーカが検出できた場合に、ロボット１１が表された領域を検出できたと判定してもよい。
【００２６】
なお、判定部２１は、画像全体に対して上記の処理を行って、画像にロボット１１が表されているか否かを判定してもよい。そして判定部２１は、画像全体においてロボット１１が表された領域を検出できない場合、あるいは、ロボット１１が表された領域が表示範囲から外れている場合に、画像の表示範囲からロボット１１が表された領域が検出できなかったと判定してもよい。
【００２７】
判定部２１は、画像の表示範囲からロボット１１が表された領域が検出できた場合、画像の表示範囲にロボット１１が表されていると判定する。一方、判定部２１は、画像の表示範囲からロボット１１が表された領域が検出できなかった場合、画像の表示範囲にロボット１１が表されていない、すなわち、表示機器２を介してロボット１１が作業者に認識可能な状態になっていないと判定する。
【００２８】
判定部２１は、画像の表示範囲にロボット１１が表されているか否かを判定する度に、その判定結果を制御部２２へ通知する。
【００２９】
制御部２２は、判定部２１から、画像の表示範囲にロボット１１が表されているか否かの判定結果が通知される度に、その判定結果に応じて、ロボット１１の動作を停止させるか否かを制御する。
【００３０】
本実施形態では、制御部２２は、通知された判定結果において、画像の表示範囲にロボット１１が表されていることが示されている場合、ロボット１１の実行中の動作を継続させる。一方、制御部２２は、通知された判定結果において、画像の表示範囲にロボット１１が表されていないことが示されている場合、通信インターフェース５及び通信回線１３を介して、ロボット１１の動作を停止させる制御信号をロボット１１へ出力して、ロボット１１の動作を停止する。
【００３１】
なお、判定部２１は、画像の表示範囲にロボット１１が表されていないと判定した場合に限り、その判定結果を制御部２２へ通知してもよい。そして制御部２２は、判定部２１から、画像の表示範囲にロボット１１が表されていないという判定結果が通知されると、通信インターフェース５及び通信回線１３を介して、ロボット１１の動作を停止させる制御信号をロボット１１へ出力して、ロボット１１の動作を停止させてもよい。
【００３２】
また、判定部２１は、判定結果とともに、画像上でロボット１１が表された領域を制御部２２へ通知してもよい。そして制御部２２は、画像の表示範囲に対する、画像上でロボット１１が表された領域のサイズの比が所定の閾値（例えば、0.2〜0.3）以下である場合も、通信インターフェース５及び通信回線１３を介して、ロボット１１の動作を停止させる制御信号をロボット１１へ出力してもよい。これにより、画像の表示範囲に表されたロボット１１があまりにも小さいか、その表示範囲にロボット１１の一部しか表されておらず、作業者がロボット１１の動作の詳細を確認することが困難な場合も、制御部２２は、ロボット１１の動作を停止できる。
【００３３】
図３は、表示機器２に表示される画像とロボット１１の制御との関係の一例を示す図である。表示機器２のディスプレイに表示される、画像中の表示範囲３０１のように、その表示範囲３０１内にロボット１１全体が表されている場合、作業者は表示機器２を介してロボット１１を視認できるので、ロボット制御装置１は、ロボット１１の動作を停止しない。同様に、表示範囲３０２のように、ロボット１１の検出に利用されるマーカ３１０がその表示範囲３０２に表されている場合、ロボット制御装置１は、ロボット１１の動作を停止しない。一方、表示範囲３０３のように、ロボット１１が表される領域が非常に小さいか、あるいは、表示範囲にロボット１１が表されていない場合、作業者は表示機器２を介してロボット１１の動作の詳細を確認できないので、ロボット制御装置１は、ロボット１１の動作を停止させる。
【００３４】
図４は、第１の実施形態による、ロボット制御処理の動作フローチャートである。プロセッサ７は、例えば、カメラ３により生成された画像を受信する度、下記の動作フローチャートに従ってロボット制御処理を実行する。
【００３５】
判定部２１は、カメラ３により生成された画像の表示範囲にロボット１１が表されているか否か判定する（ステップＳ１０１）。画像の表示範囲にロボット１１が表されていない場合（ステップＳ１０１−Ｎｏ）、制御部２２は、ロボット１１の動作を停止させる（ステップＳ１０２）。
【００３６】
一方、画像の表示範囲にロボット１１が表されている場合（ステップＳ１０１−Ｙｅｓ）、制御部２２は、ロボット１１の実行中の動作を継続させる（ステップＳ１０３）。
ステップＳ１０２またはＳ１０３の後、プロセッサ７は、ロボット制御処理を終了する。
【００３７】
以上に説明してきたように、第１の実施形態によるロボット制御装置は、作業者が所持し、あるいは作業者が装着する表示機器に取り付けられたカメラにより生成された画像のうちの表示機器に表示される範囲内にロボットが表されていない場合に、ロボットの動作を停止させる。そのため、このロボット制御装置は、作業者とロボットとの位置関係によらず、作業者がロボットの動作を確認できない場合にロボットの動作を停止させることができる。その結果として、このロボット制御装置は、ロボットが作業者または他の物体と接触する危険性を軽減することができる。さらに、このロボット制御装置は、表示機器に表示される画像に基づいて、ロボットの動作を停止させるか否かを判定するので、作業者がロボットの方を見ずに、表示機器を見ながら何らかの作業を行っている場合でも、ロボットの動作を停止させるか否かを適切に判定できる。
【００３８】
なお、変形例によれば、一定期間（例えば、1〜3秒間）にわたってカメラ３から受信した各画像について、判定部２１がその画像の表示範囲にロボット１１が表されていないと判定した場合に、制御部２２は、ロボット１１の動作を停止させてもよい。これにより、ロボット制御装置１は、作業者が表示機器２に表示された画像の表示範囲においてロボット１１を一瞬だけ視認できなくなり、その後直ぐにロボット１１を視認できるようになった場合には、ロボット１１の動作を継続できるので、ロボット１１が頻繁に停止して、作業効率が低下することを防止できる。
【００３９】
なお、環境によっては、同じ形式のロボットが複数設置されており、カメラ３の撮影方向を変更することで、それら複数のロボットの何れかがカメラ３により撮影されることがある。このような場合、画像上に何れかのロボットが表されていたとしても、そのロボットが、ロボット制御装置１により制御されるロボット１１とは限らない。
【００４０】
そこで、他の変形例によれば、判定部２１は、画像の表示範囲からロボットを検出できた場合に、その検出されたロボットが、ロボット制御装置１により制御されるロボット１１か否かを判定してもよい。そして判定部２１は、検出されたロボットが、ロボット制御装置１により制御されるロボット１１であることを確認できた場合に限り、画像の表示範囲にロボット１１が表されていると判定してもよい。
【００４１】
この場合、例えば、ロボットごとに、そのロボットを他のロボットと区別するためのロボット識別情報を含むマーカ（識別マーカ）が取り付けられる。マーカは、例えば、ＱＲコード（登録商標）、バーコード、あるいは、識別番号が記載されたマーカであってよい。
【００４２】
判定部２１は、画像の表示範囲からロボットが表された領域が検出された場合、その領域からマーカが表されたマーカ領域を検出する。そのために、判定部２１は、例えば、ロボットを検出する場合と同様に、マーカを検出するように予め学習された識別器に、ロボットが表された領域あるいはその領域から抽出された特徴量を入力することで、マーカ領域を検出する。判定部２１は、そのような識別器として、例えば、ニューラルネットワーク、あるいはAdaBoostといった識別器を利用できる。あるいは、判定部２１は、マーカが表されたテンプレートとロボットが表された領域との相対的な位置を変えながら、テンプレートとロボットが表された領域との間でテンプレートマッチングを実行することで、ロボットが表された領域内でマーカ領域を検出してもよい。そして判定部２１は、マーカ領域に対してマーカに表されたロボット識別情報を解析するための処理を実行することで、マーカに表されたロボット識別情報を読み取る。例えば、マーカがＱＲコードあるいはバーコードである場合には、判定部２１は、ＱＲコードまたはバーコード読み取り用の処理を実行し、マーカに識別番号が記載されている場合には、所定の文字認識処理を実行すればよい。そして判定部２１は、読み取ったロボット識別情報に表されるロボットの識別番号が、メモリ６に予め記憶されている、ロボット制御装置１が制御するロボット１１の識別番号と一致するか否か判定する。ロボット識別情報に表されるロボットの識別番号が、ロボット制御装置１が制御するロボット１１の識別番号と一致する場合、判定部２１は、画像の表示範囲に表されているロボットが、ロボット制御装置１が制御するロボット１１であると判定する。一方、ロボット識別情報に表されるロボットの識別番号が、ロボット制御装置１が制御するロボット１１の識別番号と一致しない場合、判定部２１は、画像の表示範囲に表されているロボットは、ロボット制御装置１が制御するロボット１１でないと判定する。
【００４３】
あるいは、判定部２１は、作業者の指示によるロボットの動作と、カメラ３により生成された時系列の一連の画像の表示範囲に表されたロボットの動作とが異なる場合に、判定部２１は、画像の表示範囲にロボット１１が表されていない、すなわち、表示機器２を介してロボット１１が作業者に認識可能な状態になっていないと判定してもよい。この場合には、例えば、作業者が表示機器２あるいは入力機器を介してロボット１１に所定の動作をさせる操作を行ってから一定期間内にカメラ３により生成された時系列の一連の画像のそれぞれから、判定部２１は、その所定の動作で移動するロボットの部位（例えば、ロボットのアームの先端）を検出する。そして判定部２１は、その一連の画像のそれぞれにおける、その部位の位置を結ぶ、その部位の移動軌跡を求める。その移動軌跡に沿った部位の移動量が所定の閾値未満である場合、画像の表示範囲に表されたロボットの所定の部位は、指示した操作に応じて移動していないと考えられる。そこで判定部２１は、画像の表示範囲に表されているロボットは、ロボット制御装置１が制御するロボット１１でないと判定する。
【００４４】
また、第２の実施形態に関連して詳細は後述するように、表示機器２に、表示機器２の動きを測定するためのジャイロセンサなどのセンサが設けられ、そのセンサによる測定信号に基づいて表示機器２とロボット１１との相対的な位置関係が推定可能である場合には、判定部２１は、作業者が指示した操作に応じたロボット１１の所定の部位の移動軌跡を画像上に仮想的に投影してもよい。そして判定部２１は、仮想的に投影された移動軌跡と、一連の画像から求められた移動軌跡とを比較することで、画像の表示範囲に表されているロボットが、ロボット制御装置１が制御するロボット１１か否かを判定してもよい。この場合、判定部２１は、表示機器２とロボット１１との相対的な位置関係に基づいて、実空間上の所定の基準点を原点として設定されるワールド座標系で表される、作業者が指示した操作に応じたロボット１１の所定の部位の移動軌跡を、カメラ３を基準とするカメラ座標系での移動軌跡に変換する。そして判定部２１は、カメラ座標系での移動軌跡に対して投影処理を実行することで、作業者が指示した操作に応じたロボット１１の所定の部位の移動軌跡を、画像上に仮想的に投影すればよい。そして、仮想的に投影された移動軌跡上の何れかの点について、一連の画像から求められた移動軌跡からの距離が所定の閾値以上である場合、画像の表示範囲に表されたロボットの所定の部位の動作は、指示した操作に応じた動作とは異なると考えられる。そこで判定部２１は、画像の表示範囲に表されているロボットは、ロボット制御装置１が制御するロボット１１でないと判定すればよい。
【００４５】
さらに、表示機器２に、カメラ３とは別個に、あるいは、カメラ３の代わりに、表示機器２の周囲の物体までの距離を測定して、その距離を表す距離画像を生成する３Ｄセンサ（図示せず）が設けられてもよい。この３Ｄセンサは、撮像部の他の一例である。この場合には、例えば、作業者が表示機器２あるいは入力機器を介してロボット１１に所定の動作をさせる操作を行ってから一定期間内に３Ｄセンサにより生成された複数の距離画像のそれぞれから、判定部２１は、その所定の動作で移動するロボットの部位を検出する。その際、判定部２１は、例えば、カメラ３により得られた画像上のその部位の位置と、カメラ３と３Ｄセンサとの位置関係に基づいて、距離画像上でのその部位の位置を特定してもよい。あるいは、判定部２１は、距離画像上でのその部位を表すテンプレートと距離画像との間でテンプレートマッチングを実行することで、その部位の位置を特定してもよい。そして、その一定期間の最初の距離画像で表される、その部位までの距離と、その一定期間内の各距離画像で表される、その部位までの距離との差の絶対値が所定の閾値未満である場合、画像の表示範囲に表されたロボットの所定の部位は、指示した操作に応じて移動していないと考えられる。そこで判定部２１は、画像の表示範囲に表されているロボットは、ロボット制御装置１が制御するロボット１１でないと判定すればよい。
【００４６】
あるいは、判定部２１は、ある時点の距離画像から検出したロボットの所定の部位の位置及び姿勢と、通信インターフェース５を介してロボット１１から取得したエンコーダ信号などからもとめられるロボット１１の各軸の位置情報とに基づいて、ある時点のロボット１１の原点位置を計算する。また、判定部２１は、ある時点から所定時間経過後に得られた距離画像から検出したロボットの所定の部位の位置及び姿勢と、通信インターフェース５を介してロボット１１から取得したエンコーダ信号などからもとめられるロボット１１の各軸の位置情報とに基づいて、ある時点から所定時間経過後のロボット１１の原点位置を計算する。そして判定部２１は、ある時点のロボット１１の原点位置と、ある時点から所定時間経過後のロボット１１の原点位置との差が所定の閾値以上であれば、画像の表示範囲に表されているロボットは、ロボット制御装置１が制御するロボット１１でないと判定してもよい。
【００４７】
なお、画像の表示範囲に複数のロボットが表されている場合、判定部２１は、その複数のロボットごとに上記の処理を実行すればよい。そして複数のロボットの何れもが、ロボット制御装置１が制御するロボット１１と異なる場合、判定部２１は、画像の表示範囲にロボット１１が表されていないと判定すればよい。
【００４８】
次に、第２の実施形態によるロボット制御装置について説明する。第２の実施形態によるロボット制御装置は、表示機器が透過型ディスプレイと、作業者の頭部の動きを計測するセンサとを有し、そのセンサにより得られた、作業者の頭部の変位量を表す測定信号に基づいて、作業者がそのディスプレイを介して視認できる範囲を推定し、推定した視認範囲にロボットが存在しない場合に、そのロボットの動作を停止させる。
【００４９】
第２の実施形態によるロボット制御装置は、第１の実施形態によるロボット制御装置と比較して、表示機器の構成及びロボット制御装置のプロセッサの処理に関して相違する。そこで以下では、その相違点及び関連部分について説明する。それ以外のロボット制御装置の構成要素については、上記の第１の実施形態における対応する構成要素の説明を参照されたい。
【００５０】
図５は、第２の実施形態によるロボット制御装置に含まれる、表示機器の概略構成図である。第２の実施形態による表示機器３０は、コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能な表示機器の一例であり、例えば、ヘッドマウント型または眼鏡装着型のウェアラブル端末であり、透過型ディスプレイ３１と、センサ３２と、無線通信インターフェース３３と、メモリ３４と、プロセッサ３５とを有する。さらに、表示機器３０は、表示機器３０が作業者の頭部または眼鏡に装着されたときに透過型ディスプレイ３１が作業者の視野と重なるように配置されるようにするための装着部材（図示せず）を有する。そして表示機器３０には、カメラ３が、表示機器３０を装着した作業者の正面方向を向くように取り付けられる。カメラ３、透過型ディスプレイ３１、センサ３２、無線通信インターフェース３３及びメモリ３４は、信号線を介してプロセッサ３５と通信可能に接続される。
【００５１】
透過型ディスプレイ３１は、例えば、液晶ディスプレイで構成され、プロセッサ３５から受信した各種の表示用データを、作業者の視野に重畳して表示する。
【００５２】
センサ３２は、変位測定部の一例であり、一定の周期ごとに、表示機器３０または作業者の頭部の動きを測定し、表示機器３０または頭部の変位量を表す測定信号をプロセッサ３５へ出力する。センサ３２には、例えば、ジャイロセンサ、加速度センサ、あるいは、表示機器３０または作業者の頭部の動きを測定することができる他のセンサのうちの少なくとも一つが含まれる。なお、センサ３２は、表示機器３０とは別個に作業者の頭部に取り付けられてもよい。
【００５３】
無線通信インターフェース３３は、所定の無線通信規格に準じた無線信号の送受信に関する処理を実行するための回路などを含む。そして無線通信インターフェース３３は、プロセッサ３５から受信した、カメラ３により得られた画像またはセンサ３２により得られた測定信号などを含む無線信号を生成し、生成した無線信号を本体１２へ送信する。また、無線通信インターフェース３３は、本体１２から受信した無線信号に含まれる、表示機器２に表示させる表示用データなどを取り出して、プロセッサ３５へわたす。
【００５４】
メモリ３４は、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。そしてメモリ３４は、例えば、センサ３２から受信した測定信号、カメラ３から受信した画像、あるいは表示用データなどを一時的に記憶する。さらに、メモリ３４は、プロセッサ３５による処理で用いられる各種のデータを記憶してもよい。
【００５５】
プロセッサ３５は、例えば、Central Processing Unit(CPU)及びその周辺回路を有する。さらに、プロセッサ３５は、グラフィック処理用のプロセッサユニットを有していてもよい。そしてプロセッサ３５は、受信した無線信号から取り出された表示用データなどを透過型ディスプレイ３１に表示させる。またプロセッサ３５は、カメラ３から受信した画像、あるいは、センサ３２から受信した測定信号を無線通信インターフェース３３へわたす。
【００５６】
本実施形態では、プロセッサ７は、ロボット制御処理に先立って、表示機器３０とロボット１１との相対的な位置関係をもとめるためのキャリブレーション処理を実行する。キャリブレーション処理では、先ず、作業者が表示機器３０を装着して、透過型ディスプレイ３１を介して、所定の姿勢にて停止した状態のロボット１１を視認できる状態で、カメラ３によりロボット１１が撮影される。そしてロボット１１が表された画像が、表示機器３０から無線信号にて本体１２へ送信される。
【００５７】
プロセッサ７は、表示機器３０とロボット１１間の想定される相対的な位置関係のそれぞれに対応する複数のテンプレートと受信した画像との間でテンプレートマッチング処理を実行することで、複数のテンプレートのうち、受信した画像と最も一致するテンプレートとを特定する。なお、複数のテンプレートは、例えば、メモリ６に予め記憶される。そしてプロセッサ７は、特定したテンプレートに対応する、表示機器３０とロボット１１間の相対的な位置関係を、表示機器３０とロボット１１間のロボット制御処理開始時の相対的位置としてメモリ６に記憶する。なお、この相対的位置は、例えば、ロボット１１の設置位置または実空間上の他の基準点を原点とするワールド座標系における、ロボット１１及び表示機器３０のそれぞれの位置、及び、作業者の顔の向きとして表される。なお、画像上の各画素は、カメラ３から見た方向と１対１に対応するので、特定したテンプレートと一致した画像上の領域の重心の位置により、カメラ３からロボット１１へ向かう方向が分かる。そこで、プロセッサ７は、特定したテンプレートと一致した画像上の領域の重心の位置と、カメラ３と作業者の頭部の向きの関係から、ロボット制御処理開始時の作業者の頭部の向きをもとめることができる。
さらに、プロセッサ７は、ロボット１１の所定の姿勢における、通信インターフェース５を介してロボット１１から受信した、エンコーダ信号などのサーボモータの動作状況を表す情報をメモリ６に記憶してもよい。
【００５８】
なお、ロボット１１と同形式の複数のロボットが設置されている場合には、プロセッサ７は、上述した第１の実施形態の変形例において説明した、画像に表されたロボットが、ロボット制御装置１により制御されるロボット１１か否かを判定する処理と同様の処理を実施して、画像に表されたロボットがロボット１１であることを確認してから、キャリブレーション処理を実行してもよい。
【００５９】
ロボット制御処理が開始されると、プロセッサ７の判定部２１は、表示機器３０から測定信号を受信する度に、ロボット１１が作業者に認識可能な状態となっているか否かを判定する。本実施形態では、判定部２１は、作業者が透過型ディスプレイ３１を介して視認可能な視認範囲にロボット１１が含まれるか否か判定し、その視認可能な視認範囲にロボット１１が含まれる場合、ロボット１１が作業者に認識可能な状態となっていると判定する。そのために、判定部２１は、キャリブレーション処理の実施以降に表示機器３０から受信した無線信号に含まれる測定信号に基づいて作業者の頭部の動きを推定することで視認範囲を推定する。例えば、判定部２１は、測定信号が得られる度に、前回の測定信号受信時から最新の測定信号受信時までの作業者の頭部の位置及び向きの変位量を算出する。例えば、測定信号が、表示機器３０または作業者の頭部の角加速度または加速度を表していれば、判定部２１は、その角加速度または加速度を２階積分することで、作業者の頭部の位置及び向きの変位量を算出できる。そして判定部２１は、キャリブレーション処理の実施以降の作業者の頭部の位置及び向きの変位量の総和を求めることで、最新の測定信号受信時の作業者の頭部の位置及び向きを推定できる。さらに、表示機器３０が作業者に装着されたときの作業者の目と透過型ディスプレイ３１間の距離、及び、透過型ディスプレイ３１の表示領域のサイズにより、作業者が透過型ディスプレイ３１を介して視認できる視認可能範囲が決まる。この視認可能範囲は、例えば、作業者の正面方向を基準とする水平方向及び垂直方向の角度範囲で表され、メモリ６に予め記憶される。そこで、判定部２１は、推定された、最新の測定信号受信時の作業者の頭部の位置及び向きとその視認可能範囲とにより、ワールド座標系で表される、最新の測定信号受信時の作業者の視認範囲を推定できる。
【００６０】
さらに、判定部２１は、最新の測定信号受信時における、ロボット１１からのエンコーダ信号から、最新の測定信号受信時における、ロボット１１の位置及び姿勢を推定できる。そして判定部２１は、最新の測定信号受信時における、作業者の視認範囲とロボット１１の位置及び姿勢を比較することで、作業者の視認範囲にロボット１１が含まれるか否かを判定できる。なお、判定部２１は、作業者の視認範囲にロボット１１全体が含まれる場合だけでなく、ロボット１１の所定の部位（例えば、ロボット１１の各アーム、先端あるいは先端に取り付けられたツール）の少なくとも一つが含まれる場合も、作業者の視認範囲にロボット１１が含まれると判定してもよい。
判定部２１は、作業者の視認範囲にロボット１１が含まれるか否かを判定する度に、その判定結果を制御部２２へ通知する。
【００６１】
制御部２２は、判定部２１から作業者の視認範囲にロボット１１が含まれるか否かの判定結果を受信する度に、その判定結果に基づいて、ロボット１１の動作を停止させるか否かを判定する。すなわち、制御部２２は、作業者の視認範囲にロボット１１が含まれる場合、ロボット１１の動作を継続させる。一方、作業者の視認範囲にロボット１１が含まれない場合、制御部２２は、通信インターフェース５及び通信回線１３を介して、ロボット１１の動作を停止させる制御信号をロボット１１へ出力する。
【００６２】
なお、判定部２１は、作業者の視認範囲にロボット１１が含まれていないと判定したときに限り、その判定結果を制御部２２へ通知してもよい。そして制御部２２は、判定部２１から、作業者の視認範囲にロボット１１が含まれていないという判定結果が通知されると、通信インターフェース５及び通信回線１３を介して、ロボット１１の動作を停止させる制御信号をロボット１１へ出力してもよい。
【００６３】
図６Ａ及び図６Ｂは、それぞれ、作業者の視認範囲とロボット１１の位置関係と、ロボット１１の制御との関係の一例を示す図である。図６Ａに示されるように、作業者６００が表示機器３０の透過型ディスプレイを介して視認できる視認範囲６０１にロボット１１が含まれている場合、作業者は表示機器３０を介してロボット１１を視認できるので、ロボット制御装置１は、ロボット１１の動作を停止しない。一方、図６Ｂに示されるように、作業者６００が表示機器３０の透過型ディスプレイを介して視認できる視認範囲６０２にロボット１１が含まれていない場合、作業者６００は表示機器３０を介してロボット１１を視認できないので、ロボット制御装置１は、ロボット１１の動作を停止させる。
【００６４】
図７は、第２の実施形態によるロボット制御処理の動作フローチャートである。プロセッサ７は、例えば、センサ３２により生成された測定信号を受信する度、下記の動作フローチャートに従ってロボット制御処理を実行する。
【００６５】
判定部２１は、受信した測定信号に基づいて、作業者が表示機器３０の透過型ディスプレイ３１を介して視認できる視認範囲を推定する（ステップＳ２０１）。そして判定部２１は、その視認範囲にロボット１１が含まれるか否か判定する（ステップＳ２０２）。作業者の視認範囲にロボット１１が含まれていない場合（ステップＳ２０２−Ｎｏ）、制御部２２は、ロボット１１の動作を停止させる（ステップＳ２０３）。
【００６６】
一方、作業者の視認範囲にロボット１１が含まれる場合（ステップＳ２０３−Ｙｅｓ）、制御部２２は、ロボット１１の実行中の動作を継続させる（ステップＳ２０４）。
ステップＳ２０３またはＳ２０４の後、プロセッサ７は、ロボット制御処理を終了する。
【００６７】
以上に説明してきたように、第２の実施形態によるロボット制御装置は、作業者が装着する表示機器の透過型ディスプレイを介して視認できる視認範囲にロボットが含まれない場合に、ロボットの動作を停止させる。そのため、第２の実施形態によるロボット制御装置も、作業者とロボットとの位置関係によらず、作業者がロボットの動作を確認できない場合にロボットの動作を停止させることができる。その結果として、このロボット制御装置は、ロボットが作業者または他の物体と接触する危険性を軽減することができる。
【００６８】
なお、変形例によれば、一定期間（例えば、1〜3秒間）にわたって、判定部２１が作業者の視認範囲にロボット１１が含まれていないと判定した場合に、制御部２２は、ロボット１１の動作を停止させてもよい。これにより、ロボット制御装置１は、作業者の視認範囲から一瞬だけロボット１１が外れ、その後直ぐにロボット１１が視認範囲に含まれるようになった場合には、ロボット１１の動作を継続できるので、ロボット１１が頻繁に停止して、作業効率が低下することを防止できる。
【００６９】
他の変形例によれば、キャリブレーション処理の実行時において、プロセッサ７は、表示機器３０とロボット１１間の想定される相対的な位置関係のそれぞれに対応する複数のテンプレートを無線信号に含めて表記機器３０へ送信してもよい。そして表示機器３０のプロセッサ３５は、受信した複数のテンプレートを透過型ディスプレイ３１に順次表示する。作業者は、各テンプレートのうち、表示されたテンプレートとロボット１１とを重ね合わせてみたときに、ロボット１１と最も一致するテンプレートを選択する操作を、例えば、入力機器（図示せず）を介して実行する。これにより、プロセッサ７は、作業者により選択されたテンプレートに対応する相対的な位置を、表示機器３０とロボット１１間のロボット制御処理開始時の相対的位置とすればよい。
【００７０】
あるいは、キャリブレーション処理の実行時において、プロセッサ７は、表示機器３０とロボット１１間の想定される相対的な位置関係に対応する一つのテンプレートを無線信号に含めて表記器３０へ送信してもよい。そして表示機器３０のプロセッサ３５は、受信したテンプレートを透過型ディスプレイ３１に表示する。作業者は、表示されたテンプレートとロボット１１とを重ね合わせてみたときに、ロボット１１とテンプレートとが一致するように移動し、ロボット１１とテンプレートとが一致したときに、そのことを表す操作を、例えば、入力機器（図示せず）を介して実行してもよい。これにより、プロセッサ７は、テンプレートに対応する相対的な位置を、表示機器３０とロボット１１間のロボット制御処理開始時の相対的位置とすればよい。
この変形例によれば、カメラ３は省略されてもよい。
【００７１】
また他の変形例によれば、カメラ３の代わりに、３Ｄセンサが表示機器３０に取り付けられてもよい。この場合、キャリブレーション処理の実行時に、表示機器３０は、３Ｄセンサにより生成された距離画像を含む無線信号を本体１２へ送信する。そしてプロセッサ７は、受信した無線信号に含まれる距離画像からロボット１１またはロボット１１の所定の部位を検出する処理（例えば、識別器を用いた検出処理またはテンプレートマッチング）を実行して、距離画像上でのロボット１１または所定の部位が表された領域を特定することで、表示機器３０とロボット１１間の相対的な位置を検出してもよい。すなわち、プロセッサ７は、特定された領域の重心に対応する方向を、表示機器３０からロボット１１へ向かう方向とし、その領域内の各画素の値の平均値で表される距離を、表示機器３０とロボット１１間の距離とすることができる。
【００７２】
さらに他の変形例によれば、制御部２２は、作業者が装着する表示機器３０の透過型ディスプレイ３１を介して視認できる視認範囲にロボット１１が含まれていても、作業者とロボット１１間の距離が所定の下限値以下の場合、ロボット１１の動作を停止させてもよい。これにより、ロボット制御装置１は、作業者とロボット１１とが近付き過ぎている場合にロボット１１が作業者と衝突する危険性を軽減できる。また、制御部２２は、作業者が装着する表示機器３０の透過型ディスプレイ３１を介して視認できる視認範囲にロボット１１が含まれていても、作業者とロボット１１間の距離が所定の上限値以上の場合も、ロボット１１の動作を停止させてもよい。これにより、ロボット制御装置１は、作業者とロボット１１とが離れすぎていて、ロボット１１の動作の詳細の確認が困難な場合にロボット１１の動作を停止させて、ロボット１１が他の物体と衝突する危険性を軽減できる。
【００７３】
さらに、上記の各実施形態または変形例において、制御部２２は、表示機器または表示機器の透過型ディスプレイを介してロボット１１が作業者に認識可能な状態になっていないと判定された場合、すなわち、ロボット１１が表示機器３０に表示されていないか、ロボット１１の一部しか表示機器３０に表示されていない場合、あるいは、表示機器３０の表示領域に対するロボット１１が表された領域の比が所定の閾値以下である場合若しくは推定された視認範囲にロボット１１が含まれない場合に、通信インターフェース５及び通信回線１３を介して、ロボット１１の動作を減速させる制御信号をロボット１１へ出力してもよい。
【００７４】
なお、上記の各実施形態またはその変形例において、判定部２１及び制御部２２のうちの両方の処理、あるいは、判定部２１の処理は、表示機器２が有するプロセッサにより実行されてもよい。また、無線通信インタフェース４、３３は、有線通信インタフェースにより代替されてもよい。
【００７５】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【００７６】
１    ロボット制御装置
２、３０    表示機器
３    カメラ
４、３３    無線通信インターフェース
５    通信インターフェース
６    メモリ
７、３５    プロセッサ
１１    ロボット
１２    本体
１３    通信回線
２１    判定部
２２    制御部
３１    透過型ディスプレイ
３２    センサ
３４    メモリ
【図１】
2020059112.tif 000003
【図２】
2020059112.tif 000004
【図３】
2020059112.tif 000005
【図４】
2020059112.tif 000006
【図５】
2020059112.tif 000007
【図６Ａ】
2020059112.tif 000008
【図６Ｂ】
2020059112.tif 000009
【図７】
2020059112.tif 000010