(57)【要約】【課題】ロボットの動作に関する設定を作業者が直感的に把握することが容易となる協調動作支援装置を提供する。【解決手段】協調動作支援装置は、作業者が表示部３の表示領域を介してロボット１１を視認可能な表示部３と、撮像部４により生成された、作業者またはロボット１１が表された画像に基づいて、作業者が表示領域を介してロボット１１を視認したときの表示領域上での、入力機器２を介して指定されたロボット１１の動作の形式に関連するロボットの部分の位置を検出する表示位置設定部２３と、指定されたロボットの動作の形式に応じて、記憶部７に記憶されている表示用データの中から、指定された形式に対応する表示用データを選択する表示用データ選択部２２と、表示領域上でのロボットの部分の位置と所定の位置関係となるように選択された表示用データを表示部３の表示領域に表示させる表示制御部２４とを有する。【選択図】図２
2020019127.tif 000002
【特許請求の範囲】
【請求項１】
ロボットと作業者とが協調動作する際の前記ロボットの動作の形式ごとに、当該形式における前記ロボットの動作を表す表示用データを記憶する記憶部と、
前記作業者に装着される表示部であって、前記作業者が前記表示部の表示領域を介して前記ロボットを視認可能な表示部と、
前記ロボットまたは前記作業者を撮影して前記ロボットまたは前記作業者が表された画像を生成する撮像部と、
前記画像に基づいて、前記作業者が前記表示領域を介して前記ロボットを視認したときの前記表示領域上での、入力機器を介して指定された前記ロボットの動作の形式に関連する前記ロボットの部分の位置を検出する表示位置設定部と、
前記指定された前記ロボットの動作の形式に応じて、前記記憶部に記憶されている前記表示用データの中から、当該指定された形式に対応する表示用データを選択する表示用データ選択部と、
前記表示領域上での前記ロボットの前記部分の位置と所定の位置関係となるように前記選択された表示用データを前記表示部の前記表示領域に表示させる表示制御部と、
を有する協調動作支援装置。
【請求項２】
前記ロボットは回転可能に設けられる少なくとも一つの軸を有し、前記指定された前記ロボットの動作の形式が前記ロボットに加えられた外力に応じて前記少なくとも一つの軸の何れかが回転する動作形式である場合、前記表示用データは、前記少なくとも一つの軸の回転を表す記号であり、
前記表示位置設定部は、前記表示領域上での前記少なくとも一つの軸のうちの回転する軸の位置を前記ロボットの部分の位置として検出し、
前記表示制御部は、前記表示領域上で前記少なくとも一つの軸のうちの回転する軸の周囲に前記少なくとも一つの軸の回転を表す記号を表示させる、請求項１に記載の協調動作支援装置。
【請求項３】
前記指定された前記ロボットの動作の形式が前記ロボットに加えられた外力に応じて前記ロボットの所定の位置に設定される座標系の位置または向きを変化させる動作形式である場合、前記表示用データは、前記座標系を表す記号であり、
前記表示位置設定部は、前記表示領域上での前記座標系が設定される前記ロボットの位置を前記ロボットの部分の位置として検出し、
前記表示制御部は、前記表示領域上で前記所定の位置と重なるように前記座標系を表す記号を表示させる、請求項１に記載の協調動作支援装置。
【請求項４】
前記ロボットは、回転可能に設けられ、かつ、サーボモータにより駆動される少なくとも一つの軸を有し、
前記表示用データ選択部は、前記入力機器により設定される、前記サーボモータを制御するための制御パラメータの値に応じて選択した前記表示用データを変化させる、請求項１に記載の協調動作支援装置。
【請求項５】
前記撮像部は、前記表示部において前記作業者の視野を撮影可能なように取り付けられ、
前記表示位置設定部は、前記画像上で前記ロボットの前記部分が表された領域を検出し、前記画像上での当該領域の位置と前記表示領域上での対応位置との位置関係に応じて前記表示領域上での前記ロボットの前記部分の位置を検出する、請求項１〜４の何れか一項に記載の協調動作支援装置。
【請求項６】
前記表示用データ選択部は、前記ロボットに加えられた外力による、前記ロボットの動作状態に応じて、選択した前記表示用データを変更する、請求項１〜５の何れか一項に記載の協調動作支援装置。
【請求項７】
前記ロボットは、回転可能に設けられ、かつ、サーボモータにより駆動される少なくとも一つの軸を有し、
前記撮像部は、前記表示部において前記作業者の視野を撮影可能なように取り付けられ、
前記画像上で前記作業者の指を検出し、前記画像上での前記作業者の指の位置に対応する前記表示領域上での位置が前記表示領域に表示された前記表示用データと重なる場合に、前記表示用データと関連する前記サーボモータを制御するための制御パラメータの値を変化させる動作制御部をさらに有する、請求項１〜３の何れか一項に記載の協調動作支援装置。
【請求項８】
前記表示制御部は、前記ロボットの前記部分の移動軌跡を前記表示領域に表示させる、請求項１〜３の何れか一項に記載の協調動作支援装置。
【請求項９】
前記ロボットは、回転可能に設けられ、かつ、サーボモータにより駆動される少なくとも一つの軸を有し、
前記作業者の音声を表す音声信号を生成する音声入力部と、
前記音声信号に含まれる前記作業者の音声を認識し、認識された前記作業者の音声に基づいて前記サーボモータを制御するための制御パラメータの値を変化させるか、または、前記ロボットの動作の形式を変更する動作制御部とをさらに有する、請求項１〜３の何れか一項に記載の協調動作支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ロボットとの協調動作を支援する協調動作支援装置に関する。
【背景技術】
【０００２】
アームなどの可動部を有し、その可動部がサーボモータを用いて駆動されるロボットに実行させる動作を作業者が教示する際、あるいは、そのようなロボットと作業者とが協働作業する際に、作業者が手動でロボットの位置または姿勢を変化させるリードスルー動作をロボットに実行させることがある。
【０００３】
リードスルー動作を介してロボットに動作を教示する場合、一般に、作業者は、ロボットの動作に関する設定を確認し、あるいはロボットの動作を設定するための制御パラメータの値を入力するために、ティーチペンダントと呼ばれる入力機器を操作する。しかし、ティーチペンダントを操作するためには、作業者は、行っている作業を一旦中断する必要があるため、作業効率が低下する。そこで、オペレータの音声から、ロボットの動作を指示する言葉を抽出して、ロボットに動作を指示するためのデータを作成する技術が提案されている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２８９５４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の技術でも、作業者が設定された制御パラメータに対してロボットが実際にどのように動作するかを直感的に把握することは容易ではない。例えば、ロボットに取り付けられたツールを基準とする所定の方向において所定の粘性値が設定されていたとしても、作業者は、その所定の方向が、実空間においてどの方向を向いているか、及び、設定された粘性値により、ロボットの動作がどの程度変わるかを直感的に把握することは困難である。
【０００６】
一つの側面では、ロボットの動作に関する設定を作業者が直感的に把握することが容易となる協調動作支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの実施形態によれば、協調動作支援装置が提供される。この協調動作支援装置は、ロボットと作業者とが協調動作する際のロボットの動作の形式ごとに、その形式におけるロボットの動作を表す表示用データを記憶する記憶部と、作業者に装着される表示部であって、作業者が表示部の表示領域を介してロボットを視認可能な表示部と、ロボットまたは作業者を撮影してロボットまたは作業者が表された画像を生成する撮像部と、撮像部により生成された画像に基づいて、作業者が表示領域を介してロボットを視認したときの表示領域上での、入力機器を介して指定されたロボットの動作の形式に関連するロボットの部分の位置を検出する表示位置設定部と、指定されたロボットの動作の形式に応じて、記憶部に記憶されている表示用データの中から、指定された形式に対応する表示用データを選択する表示用データ選択部と、表示領域上でのロボットの部分の位置と所定の位置関係となるように選択された表示用データを表示部の表示領域に表示させる表示制御部とを有する。
【発明の効果】
【０００８】
一つの側面によれば、ロボットの動作に関する設定を作業者が直感的に把握することが容易となる。
【図面の簡単な説明】
【０００９】
【図１】一つの実施形態による協調動作支援装置の概略構成図である。
【図２】協調動作支援処理に関する、プロセッサの機能ブロック図である。
【図３Ａ】リードスルー動作の形式の一例を示す図である。
【図３Ｂ】リードスルー動作の形式の他の一例を示す図である。
【図４Ａ】各軸リードスルーに関して、ヘッドマウントディスプレイに表示される表示用データの一例を示す図である。
【図４Ｂ】直交リードスルーに関して、ヘッドマウントディスプレイに表示される表示用データの一例を示す図である。
【図４Ｃ】各軸リードスルーにおいて、軸ごとのサーボモータの制御パラメータの値が異なる場合のヘッドマウントディスプレイに表示される表示用データの一例を示す図である。
【図５】協調動作支援処理の動作フローチャートである。
【発明を実施するための形態】
【００１０】
以下、図を参照しつつ、協調動作支援装置について説明する。この協調動作支援装置は、作業者が装着した透過型のディスプレイに、作業者と協調動作するロボットについて指定された動作形式と関連するロボットの部分と関連付けてその指定された動作の形式におけるロボットの動作を表す表示用データを表示することで、作業者がロボットの動作に関する設定を直感的に把握できるようにする。
【００１１】
図１は、協調動作支援装置の概略構成図である。協調動作支援装置１は、入力機器２と、ヘッドマウントディスプレイ３と、カメラ４と、無線通信インターフェース５と、通信インターフェース６と、メモリ７と、プロセッサ８とを有する。このうち、無線通信インターフェース５、通信インターフェース６、メモリ７及びプロセッサ８は、例えば、教示対象となる、あるいは作業者と協働作業するロボット１１の制御装置１２に実装される。そして無線通信インターフェース５、通信インターフェース６及びメモリ７は、プロセッサ８と信号線を介して互いに通信可能に接続される。また、入力機器２、ヘッドマウントディスプレイ３及びカメラ４は、それぞれ、例えば、Bluetooth(登録商標)といった所定の無線通信規格に準拠した無線通信により、無線通信インターフェース５を介してプロセッサ８と通信可能に接続される。
【００１２】
この例では、ロボット１１は、３個の軸１１ａ〜１１ｃを有する多関節ロボットであり、ロボット１１の先端にツール１１ｄが取り付けられる。ロボット１１の各軸１１ａ〜１１ｃのそれぞれがサーボモータ（図示せず）によって駆動されることで、ロボット１１の姿勢が変化する。なお、作業者と協調動作するロボット１１は、この例に限られず、サーボモータによって駆動される少なくとも一つの軸を有するロボットであればよい。
【００１３】
入力機器２は、いわゆるティーチペンダントといった、作業者が携帯可能な入力機器であり、ロボット１１の動作に関する設定情報を入力するために用いられる。そのために、入力機器２は、例えば、複数の操作ボタンと、複数の操作ボタンのうちの押下された操作ボタンに対応する操作信号を生成する制御回路と、制御回路により生成された操作信号を含む無線信号を生成し、その無線信号を制御装置１２へ送信するための無線通信回路とを有する。そして入力機器２は、作業者の操作に応じて、ロボット１１にリードスルー動作をさせるか否か、リードスルー動作の形式、及び、ロボット１１のリードスルー動作における、各軸を駆動するサーボモータを制御するための各種制御パラメータの値を表す操作信号を生成し、その操作信号を含む無線信号を制御装置１２へ送信する。
【００１４】
ヘッドマウントディスプレイ３は、表示部の一例であり、作業者の頭部に装着された状態で、作業者に対して制御装置１２から受信した、ロボット１１がリードスルー動作する際のロボット１１のそのリードスルー動作におけるロボット１１の動作を表す表示用データを、作業者の視野に重畳して表示する。そのために、ヘッドマウントディスプレイ３は、例えば、液晶ディスプレイにより構成される透過型ディスプレイと、ヘッドマウントディスプレイ３が作業者の頭部に装着されたときにその透過型ディスプレイが作業者の視野と重なるように配置されるようにするための装着部材と、制御装置１２と無線通信するための無線通信回路と、制御装置１２から受信した無線信号に含まれる表示用データを透過型ディスプレイに表示させ、あるいは、カメラ４から受信した画像を、無線通信回路を介して制御装置１２へ送信するための制御回路とを有する。
【００１５】
カメラ４は、撮像部の一例であり、例えば、作業者がヘッドマウントディスプレイ３を装着したときに、作業者の視野を撮影できるようにヘッドマウントディスプレイ３に取り付けられる。例えば、ヘッドマウントディスプレイ３の透過型ディスプレイの側方または上方において、カメラ４がヘッドマウントディスプレイ３を装着した作業者の正面方向を向くように、カメラ４は取り付けられる。そしてカメラ４は、例えば、ヘッドマウントディスプレイ３の制御回路と通信可能に接続される。カメラ４は、協調動作支援装置１が協調動作支援処理を実行している間、所定の撮影周期ごとに、ヘッドマウントディスプレイ３を装着した作業者の視野を含む撮影範囲を撮影して画像を生成し、生成した画像をヘッドマウントディスプレイ３の制御回路へ出力する。
【００１６】
無線通信インターフェース５は、所定の無線通信規格に準じた無線信号の送受信に関する処理を実行するための回路などを含む。そして無線通信インターフェース５は、入力機器２及びヘッドマウントディスプレイ３から受信した無線信号に含まれる、操作信号または画像等の情報を取り出して、プロセッサ８へわたす。また無線通信インターフェース５は、プロセッサ８から受け取った、ヘッドマウントディスプレイ３に表示させるデータなどを含む無線信号を生成し、生成した無線信号をヘッドマウントディスプレイ３へ送信する。
【００１７】
通信インターフェース６は、例えば、制御装置１２を通信回線１３と接続するための通信インターフェース及び通信回線１３を介した信号の送受信に関する処理を実行するための回路などを含む。そして通信インターフェース６は、例えば、プロセッサ８から受け取った、ロボット１１のサーボモータに対するトルク指令値などを、通信回線１３を介してロボット１１へ出力する。また通信インターフェース６は、ロボット１１から、通信回線１３を介して、サーボモータのフィードバック電流の値、サーボモータにより駆動される各軸１１ａ〜１１ｃの回転量を表すエンコーダからのエンコーダ信号など、サーボモータの動作状況を表す情報を受信して、その情報をプロセッサ８へわたす。
【００１８】
メモリ７は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。さらに、メモリ７は、半導体メモリカード、ハードディスク、あるいは光記憶媒体といった記憶媒体及びその記憶媒体にアクセスする装置を有していてもよい。
【００１９】
メモリ７は、プロセッサ８で実行される、ロボット１１の制御用の各種プログラム、及び、協調動作支援処理用のコンピュータプログラムなどを記憶する。また、メモリ７は、ヘッドマウントディスプレイ３に表示させる、リードスルー動作の形式ごとの、ロボット１１の動作を表す表示用データなどを、対応するリードスルー動作の形式と関連付けて記憶する。さらに、メモリ７は、ロボット１１の動作中においてロボット１１から得られるサーボモータの動作状況を表す情報、協調動作支援処理の途中において生成される各種のデータ、及び、カメラ４から得られる画像などを記憶する。
【００２０】
プロセッサ８は、制御部の一例であり、例えば、Central Processing Unit(CPU)及びその周辺回路を有する。さらにプロセッサ８は、数値演算用のプロセッサを有していてもよい。そしてプロセッサ８は、協調動作支援装置１全体を制御する。またプロセッサ８は、ロボット１１の動作を制御するとともに、協調動作支援処理を実行する。
【００２１】
図２は、協調動作支援処理に関する、プロセッサ８の機能ブロック図である。プロセッサ８は、リードスルー制御部２１と、表示用データ選択部２２と、表示位置設定部２３と、表示制御部２４とを有する。プロセッサ８が有するこれらの各部は、例えば、プロセッサ８上で実行されるコンピュータプログラムにより実現される機能モジュールである。あるいは、これらの各部は、プロセッサ８の一部に実装される専用の演算回路として実装されてもよい。
【００２２】
リードスルー制御部２１は、動作制御部の一例であり、入力機器２から無線通信インターフェース５を介して受信した無線信号に含まれる操作信号にて指定された、ロボット１１にリードスルー動作をさせるか否か、リードスルー動作の形式あるいは制御パラメータの値に基づいて、ロボット１１の動作を制御する。
【００２３】
ここで、リードスルー動作について説明する。
【００２４】
図３Ａ及び図３Ｂは、それぞれ、リードスルー動作の形式の一例を示す図である。図３Ａに示される動作形式では、ロボット１１の各関節の軸１１ａ〜１１ｃに掛かる外力に応じて、各関節の軸１１ａ〜１１ｃが追従するように、ロボット１１が動作する。例えば、図３Ａにおいて矢印３０１にて示されるように、作業者３００がロボット１１の先端を押すことに応じて、矢印３０２〜３０４に示されるように、ロボット１１の各関節の軸１１ａ〜１１ｃが回転する。以下、図３Ａに示される動作形式を、便宜上、各軸リードスルーと呼ぶ。
【００２５】
一方、図３Ｂに示される動作形式では、ロボット１１の何れかの位置に掛かる外力に応じて、その位置について設定される直交座標系が追従するように、ロボット１１が動作する。例えば、図３Ｂに示されるように、ロボット１１の先端に取り付けられたツール１１ｄに対して作業者３００が力を加えることで、そのツール１１ｄについて設定された直交座標系３１１が、その力の方向に応じて変化するように、各関節の軸１１ａ〜１１ｃの何れか、例えば、ツール１１ｄが取り付けられる軸１１ｃが回転する。以下、図３Ｂに示される動作形式を、便宜上、直交リードスルーと呼ぶ。
【００２６】
なお、各軸リードスルーにおいて、ロボット１１の何れかの軸は固定されてもよい。また、直交リードスルーにおいて、直交座標系における何れかの軸方向の動作、あるいは、直交座標系における何れかの軸周りの動作は固定されてもよい。
【００２７】
さらに、リードスルー動作では、入力機器２を介して、ロボット１１の動作を設定するために、サーボモータの制御パラメータとして、ロボット１１が動作する際における、ロボット１１の各軸１１ａ〜１１ｃについての仮想的な粘性、弾性、慣性、あるいは、各軸１１ａ〜１１ｃの回転速度が設定されてもよい。
【００２８】
そこで、リードスルー制御部２１は、操作信号にて指定されたリードスルー動作の形式及び固定される軸の指定などに応じて、固定される軸を決定する。そしてリードスルー制御部２１は、作業者によりロボット１１に外力が加えられると、その外力に応じて、指定されたリードスルー動作の形式に従って、固定される軸以外の軸を回転させる。その際、リードスルー制御部２１は、操作信号に含まれる、各軸の仮想的な粘性、弾性または慣性の値（操作信号に粘性値などが含まれない場合は、過去に設定され、あるいはデフォルトの値）に従って、その軸を駆動するサーボモータに対するトルク指令値を決定する。その際、リードスルー制御部２１は、例えば、仮想的な粘性、弾性または慣性の値の組み合わせと、トルク指令値との関係を表すテーブルを参照することで、トルク指令値を決定する。そのようなテーブルは、例えば、予めメモリ７に記憶される。あるいは、リードスルー制御部２１は、仮想的な粘性、弾性または慣性の値の組み合わせと、トルク指令値との関係を表す式に従って、トルク指令値を算出してもよい。そしてリードスルー制御部２１は、そのトルク指令値を通信インターフェース６及び通信回線１３を介してロボット１１へ出力することで、仮想的な粘性、弾性または慣性の値に相当するトルクを固定される軸以外の各軸を駆動するサーボモータに生じさせる。そしてサーボモータは、作業者によりロボット１１に加えられた外力により生じる実トルクと、トルク指令値により指定されたトルクとに基づいてProportional-Integral-Differential(PID)制御されればよい。さらに、リードスルー制御部２１は、設定された回転速度を表すサーボモータの制御値（例えば、パルス幅変調におけるデューティ比）を、通信インターフェース６及び通信回線１３を介してロボット１１へ出力する。
【００２９】
リードスルー制御部２１は、各軸あるいは各軸を駆動するサーボモータに取り付けられたエンコーダからのエンコーダ信号の受信回数をカウントすることで、各軸の回転量を求めてもよい。リードスルー制御部２１は、動作を開始した時点のロボット１１の姿勢と、着目する時点における、各軸の回転量とにより、着目する時点におけるロボット１１の姿勢をもとめることができる。
【００３０】
表示用データ選択部２２は、操作信号により指定されたリードスルー動作の形式に応じて、ヘッドマウントディスプレイ３に表示させる表示用データを、メモリ７に記憶された各動作の形式の表示用データの中から選択する。そのために、表示用データ選択部２２は、例えば、リードスルー動作の形式と表示用データとの関係を表すテーブルを参照することで、操作信号にて指定されたリードスルー動作の形式に対応する表示用データを選択する。例えば、各軸リードスルーでは、個々の軸についてその軸の回転方向を表す記号（例えば、円弧状の矢印）を表す表示用データが選択され、一方、直交リードスルーでは、直交座標系を表す記号（例えば、直交座標系の各軸を表す直線状の矢印、軸ごとの直線状の矢印を中心とする円弧状の矢印の組み合わせ）を表す表示用データが選択される。そして表示用データ選択部２２は、選択した表示用データをメモリ７から読み込む。
【００３１】
また、表示用データ選択部２２は、操作信号に含まれる制御パラメータの値（例えば、粘性値、弾性値、慣性値、回転速度など）に応じて表示用データを変化させてもよい。例えば、表示用データ選択部２２は、表示用データに表される矢印の輝度を、設定された仮想的な粘性、弾性または慣性の値が大きくなるほど高くしてもよい。あるいは、表示用データ選択部２２は、表示用データに表される矢印の色、太さ、長さまたは透明度を、設定された仮想的な粘性、弾性または慣性の値に応じて変化させてもよい。また、ロボット１１の軸ごとに、制御パラメータが異なる値に設定される場合には、軸ごとに、その軸について設定される制御パラメータの値に応じて表示用データを変化させてもよい。
【００３２】
さらに、表示用データ選択部２２は、ロボット１１が有する軸１１ａ〜１１ｃのうちの何れかが固定される場合、その固定される軸を表す表示用データをメモリ７から読み込んでもよい。
【００３３】
表示用データ選択部２２は、メモリ７から読み込んだ、選択した表示用データを表示制御部２４へわたす。
【００３４】
表示位置設定部２３は、ヘッドマウントディスプレイ３の透過型ディスプレイの表示領域において、表示用データ選択部２２により選択された表示用データを表示する位置を設定する。例えば、各軸リードスルーでは、固定されていないロボット１１の軸の周囲に、その軸の回転方向を表す記号が表示されることが好ましい。また、直交リードスルーでは、直交座標系が指定される位置に、その直交座標系を表す記号が表示されることが好ましい。このように、ロボット１１の動作を表す表示用データは、リードスルー動作においてロボット１１の動作する箇所が分かるよう、指定されたリードスルー動作の形式に関連するロボット１１の部分と関連付けて表示されることが好ましい。そこで表示位置設定部２３は、協調動作支援処理が開始されると、その開始後にカメラ４から画像が得られる度に、得られた画像において、指定されたリードスルー動作の形式に関連するロボット１１の部分を検出する。例えば、指定されたリードスルー動作の形式が各軸リードスルーである場合、表示位置設定部２３は、画像上でのロボット１１の各軸を検出する。また、指定されたリードスルー動作の形式が直交リードスルーである場合、直交座標系が指定されるロボット１１の位置、例えば、ロボット１１の先端に取り付けられたツール１１ｄを検出する。そのために、表示位置設定部２３は、例えば、検出対象となるロボット１１の部分ごとに、その部分を表すテンプレートを用いて画像とテンプレートマッチングすることで、画像上で検出対象となる部分が写っている領域を検出する。なお、そのようなテンプレートは、例えば、メモリ７に予め記憶される。その際、表示位置設定部２３は、作業者から見たロボット１１の姿勢に応じて異なる複数のテンプレートをテンプレートマッチングに使用してもよい。この場合、表示位置設定部２３は、検出対象となる部分ごとに、その部分についての複数のテンプレートのうち、画像と最も一致するテンプレートに表されるその部分の姿勢を、作業者から見たその部分の姿勢としてもよい。あるいは、表示位置設定部２３は、ロボット１１の検出対象となる部分を検出するように予め学習された識別器に画像を入力することで、画像上でロボット１１の検出対象となる部分が写っている領域を検出してもよい。表示位置設定部２３は、そのような識別器として、例えば、ディープニューラルネットワーク、あるいはAdaBoostといった識別器を利用できる。
【００３５】
本実施形態では、カメラ４は、その撮影範囲にヘッドマウントディスプレイ３を装着した作業者の視野が含まれるようにヘッドマウントディスプレイ３に取り付けられる。したがって、カメラ４により得られた画像上の所定の物体が写っている位置は、作業者がヘッドマウントディスプレイ３の透過型ディスプレイを通してその所定の物体を見たときに、その所定の物体が透過型ディスプレイの表示領域上に重畳される位置と１対１に対応付けられる。そこで、表示位置設定部２３は、カメラ４により得られた画像上の位置とヘッドマウントディスプレイ３の透過型ディスプレイの表示領域上の位置との対応関係を表すテーブルを参照することで、ロボット１１の各検出対象となる部分について、カメラ４により得られた画像上におけるその部分が写っている領域の重心に対応する表示領域上の位置を、表示領域上でのその部分の位置として求めることができる。そのようなテーブルは、例えば、予めメモリ７に記憶される。あるいは、表示位置設定部２３は、そのようなテーブルの代わりに、カメラ４により得られた画像上の位置とヘッドマウントディスプレイ３の透過型ディスプレイの表示領域上の位置との対応関係を表す位置変換式に、検出対象となる部分が写っている領域の重心の座標を入力することで、表示領域上でのその部分の位置を求めてもよい。
【００３６】
表示位置設定部２３は、カメラ４から画像が得られる度に、上記の処理を行って、表示領域上での指定されたリードスルー動作の形式に関連する各部分の位置を更新する。これにより、作業者がリードスルー動作中に移動したり、顔の向きを変えたりしても、表示位置設定部２３は、ロボット１１の指定されたリードスルー動作の形式に関連する各部分に対して所定の位置関係となるように、ヘッドマウントディスプレイ３にその部分についての指定されたリードスルー動作の形式におけるロボットの動作を表す表示用データを表示させることができる。
【００３７】
表示位置設定部２３は、カメラ４から画像が得られる度に、ロボット１１の指定されたリードスルー動作の形式に関連する各部分の位置を表示制御部２４へ通知する。
【００３８】
表示制御部２４は、ロボット１１の指定されたリードスルー動作の形式に関連する各部分と所定の位置関係となるように、指定されたリードスルー動作の形式における、その部分についての動作を表す表示用データをヘッドマウントディスプレイ３に表示させる。例えば、表示制御部２４は、ロボット１１の指定されたリードスルー動作の形式に関連する各部分についての表示領域上の位置に対して所定の位置関係になるようにその部分に対応する表示用データの表示領域上の位置を設定する。そして表示制御部２４は、ロボット１１の指定されたリードスルー動作の形式に関連する各部分について、その部分に対応する表示用データと、その表示位置とを含む信号を、無線通信インターフェース５を介してヘッドマウントディスプレイ３へ送信する。
【００３９】
図４Ａは、各軸リードスルーに関して、ヘッドマウントディスプレイ３に表示される表示用データの一例を示す図である。図４Ａに示される例では、ヘッドマウントディスプレイ３の表示領域４００において、ロボット１１の各軸１１ａ〜１１ｃが動作箇所となるため、各軸１１ａ〜１１ｃのそれぞれについて、その軸の回転方向を表す円弧状の矢印４０１〜４０３が、その軸を中心とするように表示される。
【００４０】
なお、各軸１１ａ〜１１ｃのうちの何れかが固定される場合には、その固定される軸についてはロボット１１の動作を表す表示用データは表示されなくてよい。例えば、軸１１ａが固定される場合には、軸１１ａの周囲に示される円弧状の矢印４０１は表示されなくてよい。これにより、作業者は、リードスルー動作において固定される軸及び固定されていない軸を直感的に把握することができる。
【００４１】
あるいは、表示制御部２４は、固定される軸に対して、動作しないことを表す表示用データを表示してもよい。例えば、軸１１ａが固定される場合には、表示制御部２４は、軸１１ａに対応する表示領域上の位置に、X字状の記号を表示してもよい。この場合、表示制御部２４は、通信インターフェース６を介して取得される、固定される軸のサーボモータの実トルクの絶対値が、外力が加わったことを表す所定値以上となった場合に、動作しないことを表す表示用データを表示してもよい。これにより、表示制御部２４は、作業者の視野に重畳される表示用データの数を抑制して作業者が煩雑さを感じないようするとともに、作業者がロボット１１を動かす場合には、作業者が固定される軸を直感的に把握できるようにする。
【００４２】
図４Ｂは、直交リードスルーに関して、ヘッドマウントディスプレイ３に表示される表示用データの一例を示す図である。図４Ｂに示される例では、ヘッドマウントディスプレイ３の表示領域４００において、ロボット１１に取り付けられたツール１１ｄの位置に直交座標系が設定されるため、ツール１１ｄに対応する表示領域上の位置を原点とするように直交座標系４１０及び直交座標系の各軸周りに円弧状の矢印４１１〜４１３が表示される。
【００４３】
この例についても、表示制御部２４は、固定される直交座標系の軸については、その軸を表す矢印を表示しなくてもよい。あるいは、表示制御部２４は、固定される直交座標系の軸の輝度を、直交座標系の固定されない軸の輝度よりも低くしてもよい。あるいはまた、表示制御部２４は、固定される直交座標系の軸の透明度を、直交座標系の固定されない軸の透明度よりも高くしてもよい。
【００４４】
図４Ｃは、各軸リードスルーにおいて、軸ごとの仮想的な粘性、弾性または慣性の値といった、サーボモータの制御パラメータの値が異なる場合のヘッドマウントディスプレイ３に表示される表示用データの一例を示す図である。図４Ｃに示される例では、ヘッドマウントディスプレイ３の表示領域４００において、ロボット１１の各軸１１ａ〜１１ｃが動作箇所となるため、各軸１１ａ〜１１ｃのそれぞれについて、その軸の回転方向を表す円弧状の矢印４２１〜４２３が、その軸を中心とするように表示される。さらに、この例では、設定される仮想的な粘性、弾性または慣性の値に応じて矢印の太さが変更される。例えば、軸１１ｂに設定される粘性値が軸１１ａに設定される粘性値及び軸１１ｃに設定される粘性値よりも大きい場合、軸１１ｂの周りに表示される矢印４２２は、軸１１ａの周りに表示される矢印４２１の太さ及び軸１１ｃの周りに表示される矢印４２３よりも太く表示される。これにより、作業者は、軸１１ｂの回転動作が軸１１ａ及び軸１１ｃの回転動作よりも柔らかいことを直感的に把握できる。このように、各軸について設定されるサーボモータの制御パラメータの値に応じて表示される表示用データを変化させることで、作業者は、設定される制御パラメータを直感的に把握することができる。
【００４５】
図５は、協調動作支援処理の動作フローチャートである。プロセッサ８は、例えば、入力機器２から操作信号を受信する度、下記の動作フローチャートに従って協調動作支援処理を実行する。
【００４６】
リードスルー制御部２１は、入力機器２からの操作信号に従って、ロボット１１のリードスルー動作を制御する（ステップＳ１０１）。また、表示用データ選択部２２は、操作信号により指定されたリードスルー動作の形式に従って、メモリ７に記憶されている表示用データの中から、ヘッドマウントディスプレイ３に表示させる表示用データを選択する（ステップＳ１０２）。
【００４７】
表示位置設定部２３は、カメラ４から得られた画像において、指定されたリードスルー動作の形式に関連するロボット１１の部分を検出する（ステップＳ１０３）。そして表示位置設定部２３は、画像上でのロボット１１の検出された部分の位置から、ヘッドマウントディスプレイ３の表示領域においてその部分の位置を特定する（ステップＳ１０４）。
【００４８】
表示制御部２４は、指定されたリードスルー動作の形式に関連するロボット１１の部分について、ヘッドマウントディスプレイ３の表示領域上でのその部分の位置と所定の位置関係となるように、選択された表示用データをヘッドマウントディスプレイ３に表示させる（ステップＳ１０５）。
【００４９】
ステップＳ１０５の後、プロセッサ８は、入力機器２からリードスルー動作を終了することを表す操作信号を受信したか否か判定する（ステップＳ１０６）。リードスルー動作を終了することを表す操作信号を受信していない場合（ステップＳ１０６−Ｎｏ）、プロセッサ８は、ステップＳ１０３以降の処理を繰り返す。一方、リードスルー動作を終了することを表す操作信号を受信した場合（ステップＳ１０６−Ｎｏ）、プロセッサ８は、協調動作支援処理を終了する。
【００５０】
以上に説明してきたように、この協調動作支援装置は、ロボットにリードスルー動作をさせる際、指定されたリードスルー動作の形式に関連するロボットの部分と関連付けて、指定されたリードスルー動作の形式におけるロボットの動作を表す表示用データを作業者が装着するヘッドマウントディスプレイに表示させる。そのため、この協調動作支援装置は、作業者がリードスルー動作するロボットの動作に関する設定を直感的に把握することを容易化できる。
【００５１】
変形例によれば、表示制御部２４は、表示用データとして、カメラ４から得られた画像上に写っている、指定されたリードスルー動作の形式に関連するロボット１１の部分の像、例えば、その部分の輪郭像を用いてもよい。この場合には、表示制御部２４は、画像から、表示位置設定部２３にて検出された、指定されたリードスルー動作の形式に関連する部分が写っている領域をトリミングする。表示制御部２４は、トリミングされた領域に対してSobelフィルタ等のエッジ検出フィルタを用いたエッジ検出処理を実行して、所定以上のエッジ強度を持つエッジ画素を検出する。そして表示制御部２４は、トリミングされた領域内で、水平方向の画素列ごとに、その画素列において最も左端のエッジ画素と最も右端のエッジ画素とを、指定されたリードスルー動作の形式に関連する部分の輪郭を表す輪郭画素として検出する。そして表示制御部２４は、各輪郭画素が他の画素の値と異なる画素値を持つ輪郭像を表示用データとして生成すればよい。
【００５２】
この場合、表示制御部２４は、ロボット１１の各軸のサーボモータの制御パラメータの値に応じて輪郭像のサイズを変更してもよい。例えば、表示制御部２４は、仮想的な粘性値または弾性値が大きいほど、輪郭像が大きくなるように、輪郭像を拡大してもよい。これにより、作業者は、指定されたリードスルー動作の形式に関連するロボット１１の部分のサイズでその部分について設定された制御パラメータの値を視覚的に知ることができるので、直感的に設定された制御パラメータを把握することができる。
【００５３】
他の変形例によれば、プロセッサ８のリードスルー制御部２１は、作業者がヘッドマウントディスプレイ３に表示された表示用データと重畳する位置を所定期間（例えば、1〜2秒間）にわたって指で示すことで、その表示用データと関連する部分について設定される制御パラメータの値を変更してもよい。例えば、リードスルー制御部２１は、作業者が図４Ａに示される矢印４１１の右回り側の先端を所定期間にわたって指し示すことで、軸１１ａについて、仮想的な粘性値を所定値だけ増加させ、一方、作業者が図４Ａに示される矢印４１１の左回り側の先端を所定期間にわたって指し示すことで、軸１１ａについて、仮想的な粘性値を所定値だけ減少させてもよい。
【００５４】
そのために、表示用データには、作業者の指により示されることで制御パラメータの値を所定量だけ変更する範囲（例えば、図４Ａにおける矢印４１１の各先端）が設定される。また、リードスルー制御部２１は、カメラ４により得られた画像において、作業者の指を検出する。例えば、リードスルー制御部２１は、指を検出するように予め学習された識別器に画像を入力することで、画像上で指が写っている領域を検出し、その領域の重心を指の位置とする。リードスルー制御部２１は、そのような識別器として、例えば、ディープニューラルネットワーク、あるいはAdaBoostといった識別器を利用できる。また、表示位置設定部２３に関して説明したように、カメラ４により得られた画像上の位置と、ヘッドマウントディスプレイ３の表示領域上の位置とは１対１に対応する。そこで、リードスルー制御部２１は、表示位置設定部２３と同様の処理を行って、画像上で検出された指の位置に対応する表示領域上の位置を求め、その表示領域上の位置が、制御パラメータを変更する範囲に含まれていれば、その範囲について設定された量だけ制御パラメータの値を変更すればよい。
この変形例によれば、作業者は、入力機器２を操作しなくても、制御パラメータを変更できるので、作業効率が向上する。
【００５５】
また他の変形例によれば、表示制御部２４は、ヘッドマウントディスプレイ３に、指定されたリードスルー動作の形式に関連するロボット１１の部分の移動軌跡を表示させてもよい。この場合には、表示制御部２４は、ロボット１１から通信インターフェース６を介してロボット１１の何れかの軸についてのエンコーダ信号に基づいて算出されるその軸の回転量が変化している間、すなわち、ロボット１１の姿勢が変化している間において、カメラ４から画像が得られる度に、表示位置設定部２３から、表示領域上での、指定されたリードスルー動作の形式に関連するロボット１１の部分の位置を取得する。そして表示制御部２４は、取得した各位置を時系列順に接続する線を、移動軌跡として、ヘッドマウントディスプレイ３に表示させる。
【００５６】
なお、一連の作業中に作業者が顔の向きを変化させても正確な移動軌跡が表示されるように、ヘッドマウントディスプレイ３に、ジャイロセンサといった、作業者の顔の向きの変化を表す量を測定可能なセンサが取り付けられてもよい。この場合には、ヘッドマウントディスプレイ３は、所定の周期ごとに、作業者の顔の向きの変化を表す量をセンサにより測定し、その量を含む無線信号を制御装置１２へ送信する。表示制御部２４は、カメラ４から画像が得られる度に、無線通信インターフェース５を介して受信したその無線信号に含まれる、作業者の顔の向きの変化を表す量に基づいて、前回の画像取得時から最新の画像取得時までの顔の向きの変位量を算出する。例えば、作業者の顔の向きの変化を表す量が角加速度であれば、表示制御部２４は、その角加速度を２階積分することで、作業者の顔の向きの変位量を算出できる。そして表示制御部２４は、最新の画像の取得時を基準として、各画像取得時における、表示領域上での、指定されたリードスルー動作の形式に関連するロボット１１の部分の位置を、作業者の顔の向きの変位量に相当する量だけ移動させればよい。
【００５７】
さらに他の変形例によれば、カメラ４は、ロボット１１に対する作業者の相対的な位置を検出できるように、例えば、ロボット１１が設置される部屋の天井に、下方を向けて取り付けられてもよい。またヘッドマウントディスプレイ３に、ジャイロセンサといった、作業者の顔の向きの変化を表す量を測定可能なセンサが取り付けられてもよい。さらに、メモリ７に、実空間でのロボット１１の位置が予め記憶される。この場合には、例えば、作業者は、入力機器２を操作して、ロボット１１にリードスルー動作を開始させることを入力すると、初期化のためにロボット１１の所定の位置（例えば、ロボット１１に取り付けられたツール１１ｄ）を一定期間（例えば、3〜5秒間）注視する。一方、プロセッサ８のリードスルー制御部２１は、入力機器２からロボット１１のリードスルー動作を開始することを表す操作信号を受信すると、ロボット１１が予め設定された所定の姿勢となるようにサーボモータを制御する。またプロセッサ８の表示位置設定部２３は、入力機器２からロボット１１のリードスルー動作を開始することを表す操作信号を受信すると、その一定期間中においてカメラ４が撮影することで得られた画像において作業者を検出する。例えば、表示位置設定部２３は、作業者を検出するように予め学習された識別器に画像を入力することで、画像上で作業者が写っている領域の重心を検出する。表示位置設定部２３は、そのような識別器として、例えば、ディープニューラルネットワーク、あるいはAdaBoostといった識別器を利用できる。画像上の位置は、カメラ４からの方向と１対１に対応する。また、カメラ４からロボット１１及び作業者が位置する床面までの距離も既知であるので、表示位置設定部２３は、画像上の作業者が写っている領域の重心の位置に基づいて、実空間での作業者の位置（以下、初期位置と呼ぶ）を特定できる。したがって、表示位置設定部２３は、ロボット１１と作業者の相対的な位置関係を特定できる。また作業者がロボット１１の所定位置を注視している期間における、ロボット１１の姿勢も既知であるので、作業者が初期位置にいる場合における、作業者からロボット１１の所定位置への視線方向も既知となる。そこで、表示位置設定部２３は、その視線方向とヘッドマウントディスプレイの表示領域との交点を基準点として設定する。
【００５８】
初期化後、ヘッドマウントディスプレイ３は、所定の周期ごとに、作業者の顔の向きの変化を表す量をセンサにより測定し、その量を含む無線信号を制御装置１２へ送信する。プロセッサ８の表示位置設定部２３は、無線通信インターフェース５を介して受信したその無線信号に含まれる、作業者の顔の向きの変化を表す量に基づいて、基準位置を注視しているときからの顔の向きの変位量を算出する。例えば、作業者の顔の向きの変化を表す量が角加速度であれば、表示位置設定部２３は、その角加速度を２階積分することで、作業者の顔の向きの変位量を算出できる。また表示位置設定部２３は、カメラ４により得られた画像から、上記と同様に作業者の位置を検出することで、作業者の初期位置からの移動方向及び移動量を検出できる。さらに、表示位置設定部２３は、ロボット１１の所定の姿勢からの変化を、各軸の回転量により求めることができる。したがって、表示位置設定部２３は、作業者の初期位置からの移動方向及び移動量と、作業者が初期位置においてロボット１１の基準位置を注視しているときの顔の向きからの作業者の顔の向きの変位量と、ロボット１１の所定の姿勢からの姿勢の変化量とに基づいて、作業者の顔の正面方向に対する、作業者からロボット１１の各動作箇所へ向かう方向の角度を算出できる。そして表示位置設定部２３は、その角度に基づいて、ヘッドマウントディスプレイ３の表示領域上の各動作箇所の位置を特定すればよい。
【００５９】
さらに他の変形例によれば、表示用データ選択部２２は、作業者がロボット１１に加えた外力による、ロボット１１の動作状態に応じて、選択した表示用データを変更してもよい。例えば、表示用データ選択部２２は、通信インターフェース６を介してロボット１１から受信した、ロボット１１の各軸１１ａ〜１１ｃのサーボモータの実トルクに応じて、その軸についての表示用データに表される矢印の色または輝度を変化させてもよい。あるいは、表示用データ選択部２２は、ロボット１１の軸１１ａ〜１１ｃごとに、通信インターフェース６を介してロボット１１から受信した、その軸のエンコーダ信号に基づいて算出される、その軸の回転量と、その軸の回転範囲とから、その軸について回転可能な残回転量を算出し、残回転量が少ないほど、表示用データに表される矢印の長さを短くしてもよい。あるいはまた、表示用データ選択部２２は、ロボット１１の各軸１１ａ〜１１ｃのうち、通信インターフェース６を介してロボット１１から受信した、サーボモータの実トルクの絶対値が所定値以上となる軸について、その軸についての表示用データの矢印を点滅させるようにしてもよい。これにより、作業者は、ロボット１１の動作状態を把握することがさらに容易となる。
【００６０】
さらに他の変形例によれば、作業者が音声にて制御パラメータの値などを変更できるよう、入力機器２は、マイクロホンといった音声入力部を有していてもよい。そして入力機器２は、音声入力部により得られた作業者の音声を表す音声信号を含む無線信号を制御装置１２へ送信する。あるいは、音声入力部は、ヘッドマウントディスプレイ３に取り付けられ、音声入力部により得られた作業者の音声を表す音声信号を含む無線信号は、ヘッドマウントディスプレイ３から制御装置１２へ送信されてもよい。制御装置１２のプロセッサ８のリードスルー制御部２１は、無線通信インターフェース５を介して受信した無線信号に含まれる音声信号に対して、隠れマルコフモデルを利用するワードスポッティング法といった所定の音声認識処理を実行することで、作業者の音声を認識して、その認識結果に応じて、制御パラメータの値を変更したり、指定するリードスルー動作の形式を変更してもよい。これにより、作業者は、入力機器２を操作する手間を軽減できるので、作業効率を向上できる。
【００６１】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【００６２】
１    協調動作支援装置
２    入力機器
３    ヘッドマウントディスプレイ
４    カメラ
５    無線通信インターフェース
６    通信インターフェース
７    メモリ
８    プロセッサ
１１    ロボット
１１ａ〜１１ｃ    軸
１１ｄ    ツール
１２    制御装置
１３    通信回線
２１    リードスルー制御部
２２    表示用データ選択部
２３    表示位置設定部
２４    表示制御部
【図１】
2020019127.tif 000003
【図２】
2020019127.tif 000004
【図３Ａ】
2020019127.tif 000005
【図３Ｂ】
2020019127.tif 000006
【図４Ａ】
2020019127.tif 000007
【図４Ｂ】
2020019127.tif 000008
【図４Ｃ】
2020019127.tif 000009
【図５】
2020019127.tif 000010