(57)【特許請求の範囲】
【請求項１】
ロボットにおける可動部分の移動方向を制御するための情報処理装置であって、
前記制御を行うためにユーザが操作する少なくともボタンまたはレバーを備える操作盤から、ロボットの可動部分を移動させる方向を示す方向指示を取得する手段と、
前記ユーザの視点の位置を取得する手段と、
前記取得したユーザの視点の位置から前記方向指示が示す方向への移動ベクトルを、前記ロボットを基準として定義される座標系における移動ベクトルに変換する変換手段と、
前記変換手段による変換後の移動ベクトルが示す方向に、前記ロボットの可動部分を移動させる為の指示を、前記ロボットに対して出力する手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記変換手段は、
前記ロボットが操作する対象を基準として定義される座標系における前記視点の位置を求めた後、当該座標系における前記視点の位置から前記方向指示が示す方向への移動ベクトルを求め、更に、当該求めた移動ベクトルを、前記ロボットを基準として定義される座標系における移動ベクトルに変換する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記変換後の移動ベクトルに従う移動後の前記ロボットの可動部分の位置姿勢を算出する算出手段と、
前記算出手段により算出した結果を表示する表示手段と、
をさらに備えること特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記変換手段は、前記ユーザの視点と操作対象物体との水平方向の角度に基づいて、前記変換後の移動ベクトルの大きさを決定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記方向指示が前記視点から遠ざかる方向を示す場合、前記変換手段による前記変換後の移動ベクトルが示す方向は前記ユーザの視点位置から求められた前記ユーザの視線方向に一致することを特徴とする、請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記方向指示が鉛直方向を示す場合、前記変換手段による前記変換後の移動ベクトルが示す方向は鉛直方向に一致することを特徴とする、請求項５に記載の情報処理装置。
【請求項７】
ロボットにおける可動部分の移動方向を制御するための情報処理装置が行う情報処理方法であって、
前記制御を行うためにユーザが操作する少なくともボタンまたはレバーを備える操作盤から、ロボットの可動部分を移動させる方向を示す方向指示を取得する工程と、
前記取得したユーザの視点の位置を取得する工程と、
前記視点の位置から前記方向指示が示す方向への移動ベクトルを、前記ロボットを基準として定義される座標系における移動ベクトルに変換する変換工程と、
前記変換工程による変換後の移動ベクトルが示す方向に、前記ロボットの可動部分を移動させる為の指示を、前記ロボットに対して出力する工程と
を備えることを特徴とする情報処理方法。
【請求項８】
コンピュータに請求項７に記載の情報処理方法を実行させるためのプログラム。
【請求項９】
請求項８に記載のプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作教示における操作技術に関するものである。
【背景技術】
【０００２】
ロボットの動作教示は、駆動部分の回転角度や移動方向に対応した複数のボタンもしくはスティックを有する操作盤を用いて動作指示を行う。
【０００３】
係る動作指示は、常にそれぞれの駆動部分が有する座標系における動作方向の指示が行われるため、作業者が現状のロボットの姿勢を確認して、それぞれの駆動部分の座標系に置き換えて指示することが必要となる。ここで、ロボットのコントローラが定める座標系をベース座標系と称する。
【０００４】
複数の駆動部分を有する機械として代表的なものに産業用ロボットがある。産業用ロボットでは、動作教示により指示した一連の動作を繰り返し実行させることができる。
【０００５】
産業用ロボットに対する動作教示の方法としては、ティーチングペンダントによるダイレクト教示方法、ＣＡＤなどの作業対象のデータからロボットの位置・姿勢のデータを数値または数式で指示する方法がある。作業現場で搬送などと連動させて作業させる場合には、ダイレクト教示方法が一般的に用いられる。
【０００６】
教示を行う作業者が作業空間での移動方向とロボットの姿勢方向との関係を考慮して座標変換を行いながら教示するのは大変である。そこで、より直接的な移動方向指示を実現する方法として、ロボットを撮影した画像を用いて動作を指示する方法がある。
【０００７】
特許文献１には、次のようなロボットの教示装置が開示されている。即ち、ロボットのエンドエフェクタに装着されたカメラでワークの平面像を撮像し、その画像をタッチパネルセンサ付きのディスプレイに表示し、指または入力ペンを用いて現在の位置から目標の位置への移動指示をするロボットの教示装置が開示されている。
【０００８】
特許文献２には、ワークを撮影するカメラを装着した撮影用のロボットを用いて、自由な視点からワークを撮像し、撮像画像上において作業教示をする装置が開示されている。
【０００９】
特許文献３には、カメラの画像を表示する画面上で、ロボットの移動方向を画像面上から指示する装置が開示されている。
【００１０】
これらのロボットを撮影し、その画像上で動作教示を行う方法は、ロボットのある瞬間の撮像された画像に対する指示を2次元の画面上で指示することで、ロボットの姿勢に対する動作方向の変換を行わずに、作業者が直感的に指示を行える方法である。
【特許文献１】特開平７―３０８８７８号公報
【特許文献２】特開２００１−６０１０８号公報
【特許文献３】特開２００４−００９２０９号公報
【非特許文献１】暦本  純一、「２次元マトリックスコードを利用した拡張現実感システムの構成手法」、インタラクティブシステムとソフトウェアＩＶ、近代科学社、ｐｐ．１９９−２０８、Ｄｅｃ．  １９９６．
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ロボットの現時点の姿勢における駆動部分の移動方向と、ロボットに正対して動作を指示する作業者の見ている身体座標系は常に異なっている。作業者は、ロボットの姿勢を頭に思い描きながら座標変換を行って、適切に指示する必要がある。自由度の多い産業用ロボットでは、指示方向を間違いなく行えるようにするためには、ある程度の習熟が必要となる。
【００１２】
産業用ロボットの動作環境は、作業物体の搬送経路や工具との位置関係が用途により変化するため、現場での調整が不可欠である。ロボット全体が、他の設置物との接触や干渉がないように動作指示を行うためには、操作者はあらゆる方向からロボットを観察しなくてはならない。
【００１３】
ロボットと対象物体との干渉を様々な方向から観察しながら動作指示を行う場合、操作者とロボットとの相対位置が変化する。さらにロボットも作業に伴い姿勢を大きく変化させるため、操作者がロボットに教示する移動方向は、常にロボットの姿勢を頭に把握しながら行わなければならない。しかし、すべての姿勢の状態を把握することは難しい。そのため、作業者は自分が想定している方向へ操作入力を少しだけ与えて、そのときのロボットの姿勢の変化を確認し、操作入力を修正しながら動作指示を行うことが良く行われる。このような動作指示は、インチング動作と呼ばれている。
【００１４】
しかし、インチング動作はモータへの負担ともなり、できるだけ避けたい。また、ロボットの位置姿勢によっては、教示作業中に作業者へ危害を与える動作になることもあり、注意が必要である。
【００１５】
ティーチングペンダントによる産業用ロボットへの動作指示は、操作者の操作体系の習熟の程度により、必要な作業時間にも差が出てくる。ロボットの姿勢を頭に描きながら、動作指示への座標変換を行わなければならないこと自体が難しく、それを簡易にするための様々な提案がなされている。
【００１６】
従来技術として上述した、ロボットを撮像した画像を用いた動作教示は、画像上の2次元の方向への指示を行うことで、ロボットの姿勢を意識する必要がない方法である。しかし、実際のロボットの動作に調整が必要な現場においては、様々な方向からロボットとその他の状態を確認する必要がある。姿勢指示の度に撮像して画面上で指示を繰り返すことも可能であるが、動作を見ながら逐次調整する用途としては作業が煩雑になるため、効率的な教示作業が行えない。
【００１７】
従って、ロボットの撮像画像の２次元画面上での動作指示は入力自体は簡便になっても、全体の作業効率が良くなるとは言えない。
【００１８】
さらに、特許文献２で開示されているワークを撮影するロボットを別途用意し、そのロボットの撮像画像を用いて動作指示を行う方法は、ワークを撮影するロボットの稼働範囲にも限界がある。また、そのロボットの動作と教示対象のロボットとの干渉も実際には発生する場合があるため、自由な視点での観察は難しい。
【００１９】
このように、ダイレクト教示は実際のロボットの動作を調整するのに必要であるにもかかわらず、間接的な指示方法の他は、ダイレクト教示自体を効率的に行うことができる方法が無い。そのため、産業用ロボットを利用している多くの現場では、操作者の習熟が必要とされ、動作指示に多くの時間が費やされている。
【００２０】
本発明は、以上の問題に鑑みて成されたものであり、ロボットの動作教示において、操作者にとって直感的に指示が行える技術を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の目的を達成する為に、例えば、本発明の情報処理装置は以下の構成を備える。
【００２２】
即ち、ロボットにおける可動部分の移動方向を制御するための情報処理装置であって、
前記制御を行うためにユーザが操作する少なくともボタンまたはレバーを備える操作盤から、ロボットの可動部分を移動させる方向を示す方向指示を取得する手段と、
前記ユーザの視点の位置を取得する手段と、
前記取得したユーザの視点の位置から前記方向指示が示す方向への移動ベクトルを、前記ロボットを基準として定義される座標系における移動ベクトルに変換する変換手段と、
前記変換手段による変換後の移動ベクトルが示す方向に、前記ロボットの可動部分を移動させる為の指示を、前記ロボットに対して出力する手段と
を備えることを特徴とする。
【発明の効果】
【００２５】
本発明の構成によれば、ロボットの動作教示を、操作者にとって直感的に指示が行うことができる。本発明は、作業者の身体座標系での動作指示をロボットの動作を既定する座標系に変換させる為の技術である。操作盤に設定されている方向は、作業者とロボットの相対位置関係に応じて変換される。従来作業者が頭の中にで描いていたロボットの現状の姿勢からの座標変換を本提案の装置・方法が代替することで、教示作業負荷を減らし効率化させることができる。
【発明を実施するための最良の形態】
【００２６】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００２７】
［第１の実施形態］
図１は、駆動制御可能な可動部分を１以上有する産業用ロボットと、係る産業用ロボットの可動部分の位置や姿勢の操作制御を行うための操作装置（情報処理装置）とで構成されている、本実施形態に係るシステムの機能構成例を示すブロック図である。
【００２８】
図１において、５００は、上記産業用ロボットで、上記の通り、外部から駆動制御可能な１以上の可動部分を有する。１００は、係る産業用ロボット５００が有する可動部分の位置姿勢の制御（移動方向の制御）を行う為の操作装置である。以下では、産業用ロボット５００を単に「ロボット５００」と呼称する。
【００２９】
ここで、可動部分の駆動制御指示（動作指示）は、操作者（ユーザ）が手に持っている後述の操作盤に備わっているボタンやレバーをユーザが操作することで、操作装置１００に入力することができる。係る操作盤は、操作装置１００に備わっている操作盤接続口２０１に接続される。操作装置１００に対する操作盤の接続形態は、有線／無線の何れでも良い。
【００３０】
操作入力部２００には、操作盤に備わっているボタンやレバーのそれぞれの動作機能が登録されている。操作盤側でボタンやレバーが操作されると、ボタンが押下されたことを示す信号や、レバーを傾倒した方向を示す信号などが、上記動作指示として操作盤接続口２０１を介して操作入力部２００に入力される。操作入力部２００は、操作盤接続口２０１を介して操作盤から受けた信号に基づいて、対応する動作機能を特定し、特定した動作機能を実行させるための指示信号を、操作座標変換部４００に送出する。
【００３１】
一方、操作盤を手に持っているユーザの頭部の位置姿勢は、１以上のセンサを用いて計測される。係るセンサは、計測センサ接続口３０１に接続されている。センサによる計測結果を示す信号は、この計測センサ接続口３０１を介して操作者位置計測部３００に入力される。
【００３２】
操作者位置計測部３００は、計測センサ接続口３０１を介してセンサから受けた信号に基づいて、操作者の頭部の位置（視点の位置）を推定する（必要に応じて姿勢も推定する）。そして操作者位置計測部３００は、推定した位置を、後述するワークスペース座標系における位置に変換する。ワークスペースは、ロボットとワークが干渉する領域を示しており、ワークスペース座標系としては、ワークに対してロボットが操作する範囲の中心を座標系原点としてとることができる。そして、変換した位置を示す信号を、操作座標変換部４００に送出する。
【００３３】
操作座標変換部４００は、操作入力部２００から受けた信号と、操作者位置計測部３００から受けた信号とに基づいて後述の処理を行うことで、操作者が操作盤を用いて移動指示した対象の可動部分の移動方向を、ロボット５００を基準とする座標系に変換する。そして、変換した移動方向への移動指示を、ロボット制御接続口４０１を介してロボット５００に送出する。
【００３４】
従って、ロボット５００は、ロボット制御接続口４０１を介して操作座標変換部４００から受けた移動指示に基づいて、移動指示された対象の可動部分を可動させる。なお、本実施形態では、ロボット５００の可動部分の移動制御を行うためには、このように、ロボット５００を基準とする座標系における移動指示を行うか、移動先の位置を数値で指定することで行う。即ち、本実施形態では、ロボット５００は、数値制御型のロボットである。
【００３５】
また、本実施形態では、操作装置１００は、操作盤、ロボット５００、センサ、とは別個の装置であり、操作装置１００に操作盤とロボット５００とセンサとを接続する構成としているが、以下の説明は係る構成に限定するものではない。例えば、装置の簡便性などを考慮して、操作装置１００が操作盤に内蔵された構成であっても良いし、操作者の頭部の位置姿勢を計測するセンサと操作装置１００とが隣接していても良い。また、係るセンサが操作装置１００に内蔵されていても良い。
【００３６】
即ち、操作装置１００の構成は、以下のような構成を基本とするのであれば、図１に示した構成には限定しない。即ち、操作者とロボットとの相対位置を取得する構成、可動部分の動作指示を取得する構成、係る動作指示からロボットを基準とする座標系における動作指示に変換する構成、変換後の移動指示をロボットに対して送出する構成、である。
【００３７】
また、操作盤、ロボット５００、センサ、操作装置１００のうち、どの装置がどの装置に内蔵されていても、それぞれの装置間で通信可能であれば良い。
【００３８】
なお、操作者とロボットとの相対位置は、操作者とロボットとで同じ座標系における位置を得ることができれば、後はそれぞれの位置間の差分を相対位置として求めることができる。
【００３９】
図２は、本実施形態に係るシステムの外観例を示す図である。
【００４０】
操作者２９９は上述の通り、ロボット５００に対する動作指示を操作装置１００に入力するための操作盤２１０を手に把持している、更に、操作者２９９の頭部には、係る頭部の位置を検出するため赤外線ＬＥＤ３２０が取り付けられている。係る赤外線ＬＥＤ３２０は、計測センサ接続口３０１を介して操作装置１００に接続されている赤外線カメラ３１０により撮像することで、操作者２９９の頭部の位置を検出するために用いられるものである。
【００４１】
赤外線カメラ３１０は、レンズを通してＣＣＤ若しくはＣＭＯＳ等の光・電気変換素子により、発光中の赤外線ＬＥＤ３２０を撮像する。赤外領域に感度があるビデオカメラのレンズの前に可視光吸収フィルタを設置することで、同様な構成を実現することができる。
【００４２】
赤外線カメラ３１０によって検出される赤外線ＬＥＤ３２０の３次元位置は予め校正しておく必要がある。校正の手続きとしては、例えば次のようなものがある。即ち、ロボットを基準とする座標系上における校正参照位置に赤外線ＬＥＤ３２０を設置したときの、赤外線カメラ３１０の撮像画面上における輝度が高い領域を検出し、検出した領域の面積と重心位置を算出する。可視光はフィルタにより吸収されているため、輝度が高い領域は、赤外線ＬＥＤ３２０が映っている領域と解釈することができる。従って、輝度が高い領域の重心座標は、赤外線ＬＥＤ３２０の座標位置として検出する。また、輝度が高い領域の面積は、赤外線ＬＥＤ３２０と赤外線カメラ３１０との距離を表す。なお、校正参照位置を離散的に設定した場合は、校正参照位置間の区間内を線形補間により補間する。
【００４３】
また、本実施形態では、用いる赤外線カメラ３１０の台数を１台とするが、これに限定するものではない。即ち、２台以上の赤外線カメラ３１０を用いることで、写真計測分野で一般的なステレオ計測法を用いることができ、より高精度に赤外線ＬＥＤ３２０の３次元位置を計測することができる。
【００４４】
また、操作者２９９の頭部の位置を取得するための構成にはこれ以外にも様々なものが考えられ、本実施形態に適宜適用することができる。例えば、超音波の伝播時間の差を用いた距離計測を応用した３次元計測や、磁界中における磁場の強さを検出する３次元計測がある。また、非特許文献１に開示されているように、画像から特徴的な要素を検出し、その検出位置と、この要素の３次元位置と、の対応に基づいた３次元計測もある。
【００４５】
つまり、操作者２９９とロボット５００との相対的な位置関係を求めることができればよいので、そのための構成には、既存の３次元位置検出技術を用いることができる。ただし、ロボット５００は、アクチュエータとしてモータを用いているため、磁場や超音波へのノイズの混入が懸念される。そのため、光学式の計測方法を用いることが好ましい。
【００４６】
次に、操作盤２１０について説明する。図３は、操作盤２１０の構成例を示す図である。なお、図３には、本実施形態で用いる最低限のボタン、レバーを示しており、これ以外のボタン、レバーを操作盤２１０に備えるようにしても良い。
【００４７】
操作盤２１０には、ロボット操作装置接続用ケーブル２２０が備わっており、係るロボット操作装置接続用ケーブル２２０は、操作装置１００が有する操作盤接続口２０１に接続されている。従って、操作盤２１０に備わっている後述するボタンやレバーを操作者２９９が操作した場合には、係る操作に対応する動作指示を示す信号が操作盤２１０からロボット操作装置接続用ケーブル２２０、操作盤接続口２０１を介して操作装置１００に入力される。
【００４８】
一般的な産業用ロボットのティーチングペンダントは、動作教示におけるプログラムの指示を行うため、多くのボタンを有する。図３では、姿勢登録ボタン２１５、姿勢再生ボタン２１６、緊急停止ボタン２１４、方向指示入力スティック２１１、上方移動ボタン２１２、下方移動ボタン２１３が、操作盤２１０に設けられている。
【００４９】
姿勢登録ボタン２１５は、ロボット５００の現時点での姿勢（各可動部位の姿勢）の登録を、操作装置１００に対して指示するためのボタンである。姿勢再生ボタン２１６は、過去に姿勢登録ボタン２１５を押下して登録したそれぞれの姿勢を順次再生することで、ロボット５００の各可動部位を、再生した姿勢に一致させるべく制御する為の指示を、操作装置１００に対して入力するためのボタンである。
【００５０】
ここで、ロボット５００が図２に示したようなアームのロボットである場合、姿勢登録ボタン２１５を押下する毎に、操作盤２１０は、押下した時点での各アームの姿勢の登録を、操作装置１００に対して指示する。また、姿勢再生ボタン２１６を押下すると、操作盤２１０は、過去に登録した各姿勢をその登録順に操作装置１００に再生させる為の指示を操作装置１００に対して指示する。なお、それぞれの姿勢を再生することで、操作装置１００は、ロボット５００の各可動部位を、再生した姿勢に一致させるべく、可動部分の動作制御を行う。
【００５１】
ここで、ロボット５００の手先部に接続されるものとしては、物体を把持するためのハンドや、ネジやボルトを締結するドライバ、さらには溶接のアークホルダなどが挙げられる。このようにロボット５００の手先部に接続されるものはエンドエフェクタと呼ばれ、エンドエフェクタを接続するロボット５００の手先部はメカニカルインターフェース部と呼ぶ。
【００５２】
ここで、エンドエフェクタの基準座標は、ワークとの作用点を想定した座標系とする。例えば、把持を行う２つ指のエフェクタであれば、物体と指との接触点間の中点を座標系とすることができる。エンドエフェクタは、ロボットのメカニカルインターフェースに設置されているので、ロボットの手先位置を制御することで、エンドエフェクタを移動させることができる。
【００５３】
方向指示入力スティック２１１は、エンドエフェクタ（メカニカルインターフェース部）の移動方向を指示するためのもので、奥・手前・右・左の４方向を、移動方向として指示することができる。エンドエフェクタの移動方向は、エンドエフェクタの基準座標を通る水平面での動きと、鉛直方向の動きに分解される。その水平面において、操作している人の奥方向・手前方向、そして右手方向、左手方向を指示するものとする。なお、方向指示入力スティック２１１を用いて指示する移動方向は、操作者２９９の頭部位置に常に依存することに注意されたい。また、方向指示入力スティック２１１はスティック形状のものに限定するものではなく、例えば、各方向に対応するボタンで構成しても良い。
【００５４】
方向指示入力スティック２１１による指示内容は、動作指示として操作装置１００に送出される。
【００５５】
また、上方移動ボタン２１２を押下すると、エンドエフェクタ（メカニカルインターフェース部）の移動方向として、鉛直上向きを指示することができる。
【００５６】
また、下方移動ボタン２１３を押下すると、エンドエフェクタ（メカニカルインターフェース部）の移動方向として、鉛直下向きを指示することができる。
【００５７】
緊急停止ボタン２１４を押下すると、ロボット５００に対してその動作を停止させるための指示を入力することができる。
【００５８】
上方移動ボタン２１２、下方移動ボタン２１３、緊急停止ボタン２１４による指示内容は、動作指示として操作装置１００に送出される。
【００５９】
ここで、エンドエフェクタに対する移動方向指示は、操作者２９９の身体位置から観察されるロボット５００に対して、右手方向、左手方向、奥行き方向、手前方向、鉛直上向き、鉛直下向き、で定義される８方向への動作指示が行えれば良い。そのため、スティックやボタンの形態、大きさ、色、接点条件等は、操作者２９９の動作入力作業が簡便に済む方が望ましいが、ここでは任意の形態で構わない。
【００６０】
次に、本実施形態で取り扱う様々な座標系について説明すると共に、係る座標系を用いた、ロボット５００への動作指示について説明する。
【００６１】
図４は、本実施形態で取り扱う様々な座標系を示す図である。
【００６２】
先ず、ロボット５００を基準とする座標系について説明する。ロボット５００を基準とする座標系とは、例えば、ロボット５００の据付面上におけるロボット５００の位置を原点とし、係る原点で互いに直交する３軸をそれぞれ、Ｘ１軸、Ｙ１軸、Ｚ１軸とする座標系である。なお、Ｚ１軸は、鉛直方向に沿った軸とする。以下では、ロボット５００を基準とする座標系を「ベース座標系」と呼称する場合がある。ベース座標系は、ロボット５００に対する動作指示を行う上で基準となる座標系である。また、ロボット５００にはエンドエフェクタとして、物体を把持するハンド５０１が設けられている。ここで、ハンド５０１を基準とする座標系を設けるのであるが、係る座標系は、例えば、ハンド５０１の位置を原点とし、係る原点で互いに直交する３軸をそれぞれＸｍ軸、Ｙｍ軸、Ｚｍ軸とする座標系である。以下では、ハンド５０１を基準する座標系を「メカニカルインターフェース座標系」と呼称する場合がある。
【００６３】
更には、ハンド５０１による把持対象としての現実物体４９９を配置する領域（ワークスペース）中にも座標系を設ける。例えば、ワークスペース中の１点を原点３２１とし、係る原点３２１から鉛直方向に延長する軸をＺ２軸とし、更に、係る原点でＺ２軸に直交する２軸（水平面内で直交する２軸）をそれぞれＸ２軸、Ｙ２軸とする座標系を設ける。以下では係る座標系を「ワークスペース座標系」と呼称する場合がある。
【００６４】
作業対象にもよるが、なぞり作業のようにエンドエフェクタの位置指示が重要な場合は、メカニカルインターフェース座標系において指示することが良い。また、ワークに対してハンドの位置を調整する場合は、ワークとの干渉状態を確認しながら行うので、ワークスペース座標系で指示することが良いと思われる。ここでは、ワークの設置した付近に設定したワークスペース座標系での操作に関して説明する。
【００６５】
赤外線カメラ３１０は上述の通り、赤外線ＬＥＤ３２０を撮像する。操作装置１００は、赤外線カメラ３１０による撮像画像に基づいて、ベース座標系における赤外線ＬＥＤ３２０の３次元位置（Ｘｕ，Ｙｕ，Ｚｕ）を求める。
【００６６】
本実施形態では、ロボット５００の操作において、鉛直方向への動きを操作者２９９の位置に関係なく固定して操作する。一般に人の頭部の動きは、内耳の働きにより身体および頭部の傾斜角度を知覚することができる。そのため、人は、頭部を斜めに傾斜させた場合や前・後ろに反らせた場合でも、重力方向を正しく知覚することができるため、自分にとって上方というのは常に鉛直上方と一致することが知られている。
【００６７】
従って、ロボット５００に対する動作指示を行う都度、操作者２９９の頭部の位置姿勢が変わっていても、操作者２９９の頭部の鉛直方向を重力軸と一致させることで、姿勢の変動による動作指示の誤差を抑えることができる。
【００６８】
図５は、方向指示入力スティック２１１、上方移動ボタン２１２、下方移動ボタン２１３のそれぞれが指示する移動方向と、それぞれの指示に応じた、ワークスペース座標系におけるハンド５０１（エンドエフェクタ）の移動方向と、を示す図である。
【００６９】
図５（ａ）は、方向指示入力スティック２１１、上方移動ボタン２１２、下方移動ボタン２１３のそれぞれによる移動方向指示を示す図である。
【００７０】
上方移動ボタン２１２を押下すると、鉛直上方へのハンド５０１の移動方向指示Ｂｕｐが入力される。
【００７１】
一方、下方移動ボタン２１３を押下すると、鉛直下方へのハンド５０１の移動方向指示Ｂｄｏｗｎが入力される。
【００７２】
一方、方向指示入力スティック２１１を、紙面上方に傾倒すると、操作者２９９の正面向きに、ハンド５０１が離れていくような移動方向指示Ｂｆａｒが入力される。
【００７３】
一方、方向指示入力スティック２１１を、紙面下方に傾倒すると、操作者２９９の正面向きに、ハンド５０１が近づいてくるような移動方向指示Ｂｎｅａｒが入力される。
【００７４】
一方、方向指示入力スティック２１１を、紙面左方に傾倒すると、操作者２９９の左手側に、ハンド５０１が離れていくような移動方向指示Ｂｌｅｆｔが入力される。
【００７５】
一方、方向指示入力スティック２１１を、紙面右方に傾倒すると、操作者２９９の右手側に、ハンド５０１が離れていくような移動方向指示Ｂｒｉｇｈｔが入力される。
【００７６】
図５（ｂ）は、図５（ａ）に示した各移動方向指示に対応する、ハンド５０１のワークスペース座標系における移動方向を示す図である。ここで、操作者２９９は、ワークスペース座標系における原点を注視しているものとする。即ち、操作者２９９の頭部に装着している赤外線ＬＥＤ３２０の位置から、ワークスペース座標系における原点３２１に視線を向けているものとして考える。
【００７７】
なお、実際には操作者２９９の視線方向は、ロボット５００のエンドエフェクタであったり、ワークの一部であったりする。ここでは、赤外線ＬＥＤ３２０が１つであるとしているので、頭部の姿勢については求めていないが、複数の赤外線ＬＥＤを用いるか、頭部の姿勢のみを検出するセンサを用いることで、姿勢を求めることも可能である。
【００７８】
上方移動ボタン２１２を押下することで鉛直上方への移動方向指示Ｂｕｐが入力されると、エンドエフェクタの移動ベクトルは、鉛直上方への方向ベクトルΔｄ’ｕｐとなる。
【００７９】
一方、下方移動ボタン２１３を押下することで鉛直下方への移動方向指示Ｂｄｏｗｎが入力されると、エンドエフェクタの移動ベクトルは、鉛直下方への方向ベクトルΔｄ’ｄｏｗｎとなる。
【００８０】
一方、方向指示入力スティック２１１を紙面上方に傾倒すると、エンドエフェクタの移動ベクトルは、水平面内（Ｘ２−Ｙ２平面内）で、ワークスペース座標系における赤外線ＬＥＤ３２０の位置から遠ざかる方向への移動ベクトルΔｄ’ｆａｒとなる。
【００８１】
一方、方向指示入力スティック２１１を紙面下方に傾倒すると、エンドエフェクタの移動ベクトルは、水平面内（Ｘ２−Ｙ２平面内）で、ワークスペース座標系における赤外線ＬＥＤ３２０の位置に近づく方向への移動ベクトルΔｄ’ｎｅａｒとなる。
【００８２】
一方、方向指示入力スティック２１１を紙面左方に傾倒すると、エンドエフェクタの移動ベクトルは、水平面内（Ｘ２−Ｙ２平面内）でワークスペース座標系における赤外線ＬＥＤ３２０の位置から左手側にエンドエフェクタが離れる移動方向ベクトルとなる。係る移動ベクトルをΔｄ’ｌｅｆｔと表す。
【００８３】
一方、方向指示入力スティック２１１を紙面右方に傾倒すると、エンドエフェクタの移動ベクトルは、水平面内（Ｘ２−Ｙ２平面内）でワークスペース座標系における赤外線ＬＥＤ３２０の位置から右手側にエンドエフェクタが離れる移動方向ベクトルとなる。係る移動ベクトルをΔｄ’ｒｉｇｈｔと表す。
【００８４】
ここで、各移動ベクトルを水平面内の動きに制限することで、構造物との干渉を容易に観察しながら指示を与えることができる。
【００８５】
また、図５（ｂ）において、ワークスペース座標系における赤外線ＬＥＤ３２０の位置を(Xu’,Yu’,Zu’)とする。また、方向指示入力スティック２１１を傾倒することで移動するエンドエフェクタの単位時間あたりの移動量をｋとする。
【００８６】
さらに、鉛直方向に対する移動をＺ２軸に沿って固定すると、Δd’up、Δd’downはそれぞれ、ワークスペース座標系におけるＺ２軸の上方、下方となる。
【００８７】
【数１】
0005022868.tif 000002
【００８８】
ここで、Δd’left、Δd’rightは、視線方向ベクトルとＺ２軸に対して垂直になるように設定する。Δd’left、Δd’rightは、視線方向ベクトルとＺ２軸との外積ベクトルにより求める。
【００８９】
【数２】
0005022868.tif 000003
【００９０】
ここで、Ｌは、ワークスペース座標系における原点３２１から、ワークスペース座標系における赤外線ＬＥＤ３２０の位置(Xu’,Yu’,Zu’)までの距離であり、以下のようにして計算される。
【００９１】
【数３】
0005022868.tif 000004
【００９２】
係る距離Ｌは、視線方向ベクトルを正規化するために用いられる。
【００９３】
さらに、Δd’nearはワークスペース座標系における位置(Xu’,Yu’,0)からワークスペース座標系における原点３２１の位置に向かう方向における移動ベクトルで、Δd’farはΔd’nearとは逆の向きの移動ベクトルとなる。それぞれの移動ベクトルΔｄ’ｎｅａｒ、Δｄ’ｆａｒは以下の式で表される。
【００９４】
【数４】
0005022868.tif 000005
【００９５】
ただし、Ｌ２は、ワークスペース座標系における原点３２１の位置と、ワークスペース座標系における位置(Xu’,Yu’,0)との間の距離を表す。距離Ｌ２は以下の式に基づいて決まる。
【００９６】
【数５】
0005022868.tif 000006
【００９７】
ここで、ワークスペース座標系における赤外線ＬＥＤ３２０の位置(Xu’,Yu’,Zu’)を、ベース座標系における位置に変換する為には、以下に説明する変換処理が必要となる。以下では、係る変換処理について説明する。
【００９８】
先ず、ベース座標系からワークスペース座標系への変換行列をＭｂｔとする。変換行列Ｍｂｔは、以下の式に示す如く、ベース座標系からワークスペース座標系への並進移動Ｔｂｔと、回転行列Ｒｂｔとで構成されている。
【００９９】
【数６】
0005022868.tif 000007
【０１００】
ここで、ベース座標系における赤外線ＬＥＤ３２０の位置(Xu,Yu,Zu)は、変換行列Ｍｂｔを用いて、ワークスペース座標系における赤外線ＬＥＤ３２０の位置(Xu’,Yu’,Zu’)に変換することができる。以下に、係る変換を示す式を示す。
【０１０１】
【数７】
0005022868.tif 000008
【０１０２】
従って、ワークスペース座標系における赤外線ＬＥＤ３２０の位置(Xu’,Yu’,Zu’)から、ベース座標系における赤外線ＬＥＤ３２０の位置(Xu,Yu,Zu)は、以下のようにして求めることができる。
【０１０３】
【数８】
0005022868.tif 000009
【０１０４】
ここで、ワークスペース座標系におけるエンドエフェクタの移動ベクトルを(Dx’,Dy’,Dz’)とする。この場合、係る移動ベクトルに相当する、ベース座標系における移動ベクトル(Dx,Dy,Dz)は、変換行列Ｍｂｔを用いて以下のようにして求めることができる。
【０１０５】
【数９】
0005022868.tif 000010
【０１０６】
更に、ロボットの制御装置は、メカニカルインターフェース部の座標系を指示することで、逆運動学を用いて各関節角度を制御することが可能となっており、メカニカルインターフェース座標系での移動量をロボットのコントローラへ指示することも可能である。ベース座標系での移動量(Dx,Dy,Dz)をメカニカルインターフェース座標系での移動量(Dmx,Dmy,Dmz)に変換する為にはベース座標からメカニカルインターフェース座標系への変換行列Ｍｂｍを用いて次のように演算を行う。
【０１０７】
【数１０】
0005022868.tif 000011
【０１０８】
次に、移動方向指示のそれぞれに対応する、ベース座標系におけるエンドエフェクタの移動ベクトルを以下の式に基づいて求める。ここで、移動方向指示には、Bup、Bdown、Bleft、Bright、Bnear、Bfarがある。また、ベース座標系におけるエンドエフェクタの移動ベクトルには、Δdup、Δddown、Δdleft、Δdright、Δdnear、Δdfarがある。なお、係る演算処理には、ベース座標系からワークスペース座標系への変換行列Ｍｂｔと、ベース座標系からメカニカルインターフェース座標系への変換Ｍｂｍとを用いている。
【０１０９】
【数１１】
0005022868.tif 000012
【０１１０】
このように、式１〜式１１を用いて行った演算処理は、ユーザの視点の位置から、移動方向指示された方向への移動ベクトルを、ロボット５００を基準として定義される座標系における移動ベクトルに変換する演算処理に等価である。
【０１１１】
次に、ベース座標系におけるエンドエフェクタの位置をH(Xd,Yd,Zd)とする。また、移動方向指示Bupが入力された場合に、エンドエフェクタの移動先の位置をHupとする。同様に移動方向指示Bdown、Bnear、Bfar、Bleft、Brightが入力された場合に、エンドエフェクタの移動先の位置をそれぞれ、Hdown、Hnear、Hfar、Hleft、Hrightとする。この場合、それぞれの移動先の位置は以下の式に基づいて決まる。
【０１１２】
【数１２】
0005022868.tif 000013
【０１１３】
これにより、操作盤２１０からの移動方向指示に対応する、ベース座標系における移動ベクトルを求めることができるので、結果として、係る移動ベクトルで指し示される移動先を求めることができる。なお、以上説明したように、移動方向指示に基づいて移動ベクトルを求めるための一連の処理は、操作座標変換部４００により行われる。そして操作座標変換部４００は、このようにして求めた移動先の位置を示す移動指示を、ロボット制御接続口４０１を介してロボット５００に送出する。即ち、変換後の移動ベクトルに従って、制御対象の可動部分を移動させる為の指示を、ロボット５００に対して出力する。
【０１１４】
次に、操作装置１００を構成する操作入力部２００が行う処理について、図６のフローチャートを用いて、より詳細に説明する。図６は、操作入力部２００が行う処理のフローチャートである。
【０１１５】
操作者２９９が操作盤２１０に備わっている上記ボタンやスティックを操作すると、ボタンが押下されたことを示す信号や、スティックを傾倒した方向を示す信号などが、上記動作指示として操作盤接続口２０１を介して操作入力部２００に入力される。従って、ステップＳ２５０では、係る動作指示を示す信号を、操作盤接続口２０１を介して操作盤２１０から取得する。
【０１１６】
次にステップＳ２５１では、操作入力部２００は、ステップＳ２５０で取得した信号が、緊急停止ボタン２１４が押下されたことを示すものであるのかを判断する。係る判断の結果、緊急停止ボタン２１４が押下されたことを示す信号をステップＳ２５０で取得していたのであれば、処理をステップＳ２５６に進める。一方、緊急停止ボタン２１４が押下されたことを示す信号以外の信号をステップＳ２５０で取得していたのであれば、処理をステップＳ２５４に進める。ステップＳ２５１における処理を、操作盤２１０から信号を取得してから最初に行う理由としては、ロボット５００の動作を停止する命令が最優先で処理されなくてはならないからである。
【０１１７】
ステップＳ２５６では、操作入力部２００は、ロボット５００の動作を緊急停止させるための制御信号（緊急停止信号）を、操作座標変換部４００に対して送出する。係る制御信号は、操作座標変換部４００を介してロボット５００に送出される。
【０１１８】
一方、ステップＳ２５４では、操作入力部２００は、操作盤接続口２０１を介して操作盤から受けた信号に基づいて、対応する動作機能を特定する。上述の通り、操作入力部２００には、操作盤２１０に備わっているボタンやスティックのそれぞれの動作機能が登録されている。ここでは、それぞれの動作機能は、テーブル形式で登録されているものとしている。これは、操作者２９９が操作しやすいようにボタンやスティックの配置を変更した場合にも対応できるようにするためである。しかし本実施形態は、テーブル形式の登録に限定するものではない。
【０１１９】
次に、ステップＳ２５５では、操作入力部２００は、ステップＳ２５４において特定した動作機能を実行させるための指示信号を、操作座標変換部４００に送出する。
【０１２０】
次に、操作者位置計測部３００が行う処理について、図７のフローチャートを用いて、より詳細に説明する。図７は、操作者位置計測部３００が行う処理のフローチャートである。
【０１２１】
ステップＳ３５０では、操作者２９９の頭部の位置（赤外線ＬＥＤ３２０の位置）を示す信号を、計測センサ接続口３０１を介して取得する。
【０１２２】
次に、ステップＳ３５１では、ステップＳ３５０で取得した信号が示す位置について妥当性をチェックする。赤外線センサを用いた場合、外光やリモコンなどに反応して操作者の位置を誤検出する場合がある。それを操作者の位置として処理を続けると、間違った指示をロボットに与えることになる。ここでは、操作者２９９の頭部の位置が既定した作業範囲内に位置するか否かをチェックすることで、ノイズによる誤検出であるかどうかを判断する。ここで、過去の計測結果などを保持しておき、カルマンフィルタなどを用いて計算される分散値の大小により判断することで、より誤検出を除外することができる。
【０１２３】
ステップＳ３５１における判断処理の結果、ステップＳ３５０で取得した信号が示す位置が作業範囲内であると判断した場合には、ステップＳ３５４に処理を進める。一方、作業範囲外であると判断した場合には、処理をステップＳ３５６に進める。
【０１２４】
ステップＳ３５６では、操作者２９９の頭部の位置は得られなかったとして、その旨を示す信号を操作座標変換部４００に送出する。
【０１２５】
一方、ステップＳ３５４では、ステップＳ３５０で取得した信号が示す位置、即ち、赤外線ＬＥＤ３２０の位置を、ワークスペース座標系における位置に変換する。ワークスペース座標系は、作業対象のワークやワークの搬送経路に応じて操作者２９９が設定する座標系である。ロボット５００に対する動作指示は、ワークに対するロボット５００の動作を指示ものであるので、ここでは、ベース座標系で計測された位置をワークスペース座標系における位置に変換する。なお、ベース座標系からワークスペース座標系への変換行列は、事前に設定されているものとする。従って、係る変換行列を用いれば、ステップＳ３５４における処理を行うことができる。
【０１２６】
次に、ステップＳ３５５では、ステップＳ３５４で求めた、ワークスペース座標系における操作者２９９の頭部の位置（ワークスペース座標系における赤外線ＬＥＤ３２０の位置）を示す信号を、操作座標変換部４００に対して送出する。
【０１２７】
次に、操作座標変換部４００が行う処理について、図８のフローチャートを用いて、より詳細に説明する。図８は、操作座標変換部４００が行う処理のフローチャートである。
【０１２８】
先ず、ステップＳ４５０では、操作入力部２００から送出された指示信号、若しくは緊急停止信号を取得する。
【０１２９】
ステップＳ４５１では、ステップＳ４５０で取得した信号が、緊急停止信号であるか否かを判断する。係る判断の結果、ステップＳ４５０で取得した信号が、緊急停止信号である場合には、処理をステップＳ４５３に進める。一方、ステップＳ４５０で取得した信号が、指示信号である場合には処理をステップＳ４５５に送出する。
【０１３０】
ステップＳ４５３では、操作入力部２００から取得した緊急停止信号を、ロボット制御接続口４０１（もしくは緊急停止用信号線）を介してロボット５００に送出する。これにより、ロボット５００を緊急停止させることができる。
【０１３１】
一方、ステップＳ４５５では、基本的には、操作者位置計測部３００から送出された、ワークスペース座標系における操作者２９９の頭部の位置を示す信号を取得する。しかし、本ステップでは、操作者２９９の頭部の位置は得られなかった旨を示す信号を取得する可能性もある。即ち、ステップＳ４５５では、操作者位置計測部３００から送出された信号を取得する。
【０１３２】
ステップＳ４５６では、ステップＳ４５５で取得した信号が、操作者２９９の頭部の位置は得られなかった旨を示す信号であるのか否かを判断する。係る判断の結果、操作者２９９の頭部の位置は得られなかった旨を示す信号をステップＳ４５５で受信していた場合には、本処理を終了させる。即ち、ロボット５００への制御信号は、例え、操作盤２１０からの入力があったとしても送らない。これにより、誤った位置計測結果による誤動作が発生しないように防ぐことができる。
【０１３３】
一方、ステップＳ４５６における判断の結果、ステップＳ４５５で取得した信号が、ワークスペース座標系における操作者２９９の頭部の位置を示す信号である場合には、処理をステップＳ４５９に進める。
【０１３４】
ステップＳ４５９では、ワークスペース座標系における操作者２９９の頭部の位置から、ステップＳ４５０で取得した指示信号が示す移動方向指示で指示する方向Ｂへの移動ベクトルΔｄ’を算出する。方向Ｂは、Bup,Bdown,Bleft,Bright,Bfar,Bnearの何れかを想定している。また、移動ベクトルΔｄ’は、方向Ｂに対するΔd’up、Δd’down、Δd’left、Δd’right、Δd’far、Δd’nearを想定している。
【０１３５】
ステップＳ４６０では、ワークスペース座標系において求めた移動ベクトルΔd’をベース座標系における移動ベクトルΔdに変換する。ベース座標系からワークスペース座標系への変換行列は、処理が行われる前に既定されているものとしている。
【０１３６】
ステップＳ４６１では、ベース座標系における制御対象としての可動部分（上記例ではエンドエフェクタ）の位置Ｈに、Δｄを加えることで、ベース座標系における移動先の位置を求める。
【０１３７】
ステップＳ４６２では、ステップＳ４６１で求めた移動先の位置を示す信号を、移動指示として、ロボット制御接続口４０１を介してロボット５００に送出する。
【０１３８】
＜変形例＞
操作盤２１０からの入力に対して、操作座標変換部４００ではワークスペース座標系における移動ベクトルΔd’を、図８のステップＳ４５９にて算出している。その際、方向指示入力スティック２１１を傾倒することで移動するエンドエフェクタの単位時間あたりの移動量をｋとして、Δｄ’を算出した。
【０１３９】
ロボット５００に対する動作指示を与えるときの操作者２９９の視点位置については、ワーク（エンドエフェクタによる操作対象物）とロボット５００のエンドエフェクタとの干渉および位置関係を把握する必要がある。操作者２９９は、ワークとエンドエフェクタとが良く観察できる位置から作業を行うことが一般的である。その際に干渉が確認しやすい左右方向への移動量と、干渉がわかりにくい前後方向の移動量に差を持たせることで、間違って方向を入力したときのロボット位置の変位を少なくする効果がある。
【０１４０】
係る点について一例を挙げて説明する。路面において自分に向かって近づいてくる車と自分との距離は、車の相対的な大きさの変化によって認知される。そのため、ある程度の移動を伴わないと相対的な距離が知覚されにくい。一方、車が自分に対して横方向に移動する場合は、距離によらず認知しやすい。
【０１４１】
このような知覚の性質により、移動が知覚されにくい方向への動きに対しては実際の入力単位よりも少なくすることで、間違った入力がなされたときにロボットのエンドエフェクタと他の物体との衝突による破損などの事故を抑える効果がある。
【０１４２】
図９は、操作盤２１０から、移動方向指示Bup,Bdown,Bfar,Bnearのそれぞれが入力された場合における、ワークスペース座標系における可動部分の移動ベクトルΔd’up、Δd’down、Δd’far、Δd’nearを示す図である。
【０１４３】
図９(a)のワークスペース座標系での赤外線ＬＥＤ３２０の位置を(Xu’,Yu’,Zu’)とする。この場合、ワークスペース座標系における原点と(Xu’,Yu’,Zu’)を含む平面で観察したものである。
【０１４４】
先ず、Δd’left, Δd’rightについては、以下の式に示す如く、Ｚ２軸と視線方向ベクトルの外積ベクトルから求める。この場合、視線位置の違いによる移動量の変化は無い。
【０１４５】
【数１３】
0005022868.tif 000014
【０１４６】
ここで、Ｌは、(Xu’,Yu’,Zu’)からワークスペース座標系における原点までの距離を示し、以下の式によって求めることができる。
【０１４７】
【数１４】
0005022868.tif 000015
【０１４８】
次に、ワークスペース座標系における原点と(Xu’,Yu’,Zu’)とを結ぶベクトルと、Δd’leftとの外積ベクトルをV1とする。外積ベクトルＶ１は以下の式に基づいて求めることができる。
【０１４９】
【数１５】
0005022868.tif 000016
【０１５０】
一方、ワークスペース座標系における原点と(Xu’,Yu’,Zu’)とを結ぶベクトルと、Ｘ２−Ｙ２平面とが成す角度θを用いてcosθを求める。cosθは、(Xu’,Yu’,Zu’)と、係る位置をＸ２−Ｙ２平面に射影した(Xu’,Yu’,0)との内積から求めることができる。
【０１５１】
【数１６】
0005022868.tif 000017
【０１５２】
そこで、Δd’upは、以下の式に示す如く、外積ベクトルＶ１のZ2軸への射影した結果とする。
【０１５３】
【数１７】
0005022868.tif 000018
【０１５４】
|V1|は、V1のノルムであり、以下の式が示す内容に等価である。
【０１５５】
【数１８】
0005022868.tif 000019
【０１５６】
Δd’downは、Δd’upとは対称ベクトルなので、以下の式で表される。
【０１５７】
【数１９】
0005022868.tif 000020
【０１５８】
さらに、Δd’farは、外積ベクトルＶ１をＸ２−Ｙ２平面に射影した結果としての射影ベクトルとすると、sinθを用いて、以下のように表すことができる。
【０１５９】
【数２０】
0005022868.tif 000021
【０１６０】
同様にΔd’nearは、Δd’farと対称なので、以下の式で表される。
【０１６１】
【数２１】
0005022868.tif 000022
【０１６２】
ただし、Ｌ２は、以下の式に示す如く、ワークスペース座標系における原点と(Xu’,Yu’,0)との距離とする。
【０１６３】
【数２２】
0005022868.tif 000023
【０１６４】
以上の関係を用いると、図９（ｂ）に示す如く、ワークスペース座標系における赤外線ＬＥＤ３２０の位置とワークスペース座標系における原点とを結ぶベクトルと、Ｘ２−Ｙ２平面との成す角度が小さい場合には、次のようなことが明確になる。即ち、操作者がワークを水平面に近い位置から観察している場合は、Δd’farおよびΔd’nearは図９（ｂ）に示す如く、図９(a)よりも小さくなる。これは、ワークを水平面近くから観察しているときには、ロボットのエンドエフェクタが操作者に対して遠ざかる方向および近づく方向への移動に対して知覚しづらいため、その方向への移動量を入力単位に対して小さく設定している。これにより、ワークの影により確認しずらい状態であるワークの奥の物体との接触を移動量を小さくすることで抑える効果が期待される。
【０１６５】
［第２の実施形態］
図１０には、操作者の頭部に設置したカメラ３４０と、ベース座標系で規定する空間中に貼り付けられた幾何学的な特徴を有する指標３３０と、を用いて、操作者の頭部位置を計測する為の構成を示している。図１０は、本実施形態に係るシステムの外観例を示す図である。本実施形態では、指標３３０として、非特許文献１に開示されているように、幾何学的な特徴を有するものとして図形の辺が画像処理により検出しやすい特徴を有する四角形とする。四角形の頂点の３次元位置は既知とするので、カメラ３４０による撮像画像から四角形の頂点が検出されれば、周知の技術により、カメラ３４０の位置姿勢を推定することができる。
【０１６６】
図１０において、指標画像３次元計測装置３４１は、カメラ３４０による撮像画像を取得し、係る撮像画像に対する画像処理でもって、カメラ３４０の位置姿勢を計測する。そして、計測した位置姿勢を示す信号を、操作装置１００に対して送出する。操作装置１００は、第１の実施形態と同様に動作する。
【０１６７】
なお、カメラ３４０の撮像範囲が操作者の視野と重なるように、カメラ３４０を操作者の頭部に装着することで、操作者が向いている方向の現実空間を撮像することができる。従って、操作者が指標３３０を観察している場合には、カメラ３４０もまた、この指標３３０を撮像していることになる。
【０１６８】
ここで、カメラ３４０が指標３３０を撮像していないと、指標画像３次元計測装置３４１は指標３３０を含む撮像画像を得ることができないので、結果として、カメラ３４０の位置姿勢を求めることができなくなる。すると、操作装置１００もまた、係る位置姿勢を取得することができなくなるため、ロボットの制御を行うことができなくなる。即ち、操作者の頭部がロボット側に向いていない時に操作者が操作盤に対して指示入力を行っても、係る入力は無効となってしまう。
【０１６９】
これにより、操作者がよそ見をしているときに誤入力を行ってしまったことで、操作者の意図しない動きをロボットに与える指示を行ってしまったとしても、係る指示を無効化することができるため、作業の安全性がより確保される。また、操作者の位置姿勢の計測を行う上で、コストも低く抑えられる。
【０１７０】
［第３の実施形態］
図１１は、本実施形態に係るシステムの機能構成例を示すブロック図である。本実施形態では、単にロボット５００の可動部分を制御するだけでなく、可動部分（駆動部）の動作確認シミュレートを行い、その結果を操作者に確認させるべく、かかる結果を表示する。
【０１７１】
操作装置１０１は、図１の操作入力部２００、操作者位置計測部３００、操作座標変換部４００、操作盤接続口２０１、計測センサ接続口３０１、ロボット制御接続口４０１に加え、動作出力切り替え部４１０、動作出力保持部４２０、接続口４０２を有する。
【０１７２】
動作出力切り替え部４１０は、操作者の身体感覚に近い座標系で与えられた動作指示をベース座標系に変換する操作座標変換部４００から出力された信号を、ロボット５００、駆動部動作シミュレータ装置７００、の何れか若しくは両方に出力する。
【０１７３】
このような動作出力切り替え部４１０による出力先の切り替え制御は、操作盤２１０に設けられた切り替えスイッチに対する操作に応じて行われる。即ち、係る切り替えスイッチに対する操作結果を、操作盤２１０、操作盤接続口２０１、操作入力部２００を介して動作出力切り替え部４１０が受けると、動作出力切り替え部４１０は、係る操作結果に応じて、出力先を切り替える制御処理を行う。
【０１７４】
また、動作出力保持部４２０には、操作盤２１０から順次入力されるそれぞれの動作指示を一時的に保持しておくことができる。これにより、動作出力切り替え部４１０によって、一連の動作入力の結果をまとめて駆動部動作シミュレータ装置７００、若しくはロボット５００に対して出力することができる。
【０１７５】
駆動部動作シミュレータ装置７００は、操作座標変換部４００からの信号に基づいて、ロボット５００の動き（ロボット５００の各関節の位置姿勢情報）をシミュレートする。係るシミュレートでは、操作装置１０１側で求めた各可動部分の移動先の位置に基づいて、実際のロボット５００の各可動部分の各関節の位置姿勢情報を求める。
【０１７６】
動作確認画像生成装置７１０は、駆動部動作シミュレータ装置７００から得られたロボット５００の各関節の位置姿勢情報に基づいて、各可動部分を表す仮想物体を配置することで、ロボット５００を表す３次元グラフィックスを描画する。なお、３次元グラフィックスを描画する際の視点の位置姿勢は、指標画像３次元計測装置３４１から得られるカメラ３４０の位置姿勢を利用する。
【０１７７】
画像提示装置６００は、例えば、ＨＭＤ（ヘッドマウントディスプレイ）であり、動作確認画像生成装置７１０が生成した画像を表示する。
【０１７８】
操作者は、自身の視点の位置姿勢に応じて、ロボットへの入力を行うとどのようにロボットが動くのかをコンピュータグラフィックスにより検証することが可能となる。
【０１７９】
さらに、観察したシミュレータの動作に対して、操作者が意図した動きであると判断した場合は、ロボットへの実際の動作指示として実行するように操作盤から切り替えスイッチを用いて入力すれば良い。即ち、ロボットの動きを一度シミュレータで確認し、目的の動作であることを確認した上で、実際のロボットを動作させることで、操作入力の間違いによる誤動作を抑えることができる。さらに、インチング動作による僅かな動作入力が低減するため、ロボットのアクチュエータへのダメージも軽減できる。
【０１８０】
［第４の実施形態］
本実施形態では、制御対象のロボットが移動可能である場合に、係るロボットが有する可動部分についての制御を行う。
【０１８１】
図１２は、本実施形態に係るシステムの外観例を示す図である。
【０１８２】
移動型ロボット５５０は、車輪により床面上を自由に移動することができる。また、移動型ロボット５５０は、可動部分としてのマニュピレータを有しており、係るマニュピレータにより物体を把持したり、移動させたりすることができる。この場合、移動型ロボット５５０のベース座標系は移動型ロボット５５０の移動に伴い変化する。本実施形態では、可動部分を有するロボットと、係るロボットを操作制御する操作者との相対位置関係が求められれば良いので、何らかの方法で係る移動型ロボット５５０の位置を取得できればよい。
【０１８３】
例えば、移動型ロボット５５０に、幾何学的な特徴を有する指標３３４を貼付し、操作者の頭部には、その指標３３４を撮像するカメラ３４０を装着する。また、指標３３４とロボット５５０のベース座標系とのローカルトランスフォームは既定されているものとする。ローカルトランスフォームとは、指標を既定するローカル座標系と、ロボット５５０のベース座標系との変換行列である。
【０１８４】
係る構成の場合、カメラ３４０による撮像画像中に指標３３４が含まれている場合は、指標画像３次元計測装置３４１により、指標３３４が貼付されている移動型ロボット５５０のベース座標系におけるカメラ３４０の位置姿勢を計測することができる。そして指標画像３次元計測装置３４１は、求めた位置姿勢を示す信号を、操作装置１００に送出する。操作装置１００の動作については第１の実施形態で説明したとおりである。なお、本実施形態では、操作装置１００は、移動型ロボット５５０への指示を、無線装置４０４を介して、無線でもって移動型ロボット５５０に送信する。
【０１８５】
これにより、操作者が観察するときの身体の座標系に近い操作が可能となる。これにより、障害物を回避するように操作者から右手方向へ移動させたい場合は、操作盤から右手方向への移動指示を入力することにより、移動型ロボット５５０の進行方向によらず、右手方向へ移動するように指示することができる。
【０１８６】
［第５の実施形態］
図１，１１にそれぞれ示した操作装置１００、１０１を構成する各部はソフトウェアで実装しても良い。この場合、操作装置１００、１０１として一般のＰＣを適用し、係るＰＣが有するメモリに上記ソフトウェアをインストールする。そして、係るソフトウェアを、係るＰＣが有する制御部が読み出して実行すれば、係るＰＣは、上記操作装置１００、１０１と同様の動作を行うことになる。
【０１８７】
図１３は、操作装置１００、１０１に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【０１８８】
ＣＰＵ１３０１は、ＲＡＭ１３０２やＲＯＭ１３０３に格納されているプログラムやデータを用いて、本コンピュータ全体の制御を行うと共に、操作装置１００、１０１が行うものとして上述した各処理を実行する。
【０１８９】
ＲＡＭ１３０２は、外部記憶装置１３０６からロードされたプログラムやデータ、Ｉ／Ｆ（インターフェース）１３０７を介して外部から受信した様々なデータ、を一時的に記憶するためのエリアを有する。更に、ＲＡＭ１３０２は、ＣＰＵ１３０１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ１３０２は、各種のエリアを適宜提供することができる。
【０１９０】
ＲＯＭ１３０３には、本コンピュータの設定データや、ブートプログラムなどが格納されている。
【０１９１】
操作部１３０４は、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をＣＰＵ１３０１に対して入力することができる。
【０１９２】
表示部１３０５は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１３０１による処理結果を画像や文字などでもって表示することができる。
【０１９３】
外部記憶装置１３０６は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１３０６には、ＯＳ（オペレーティングシステム）や、操作装置１００、１０１が行うものとして上述した各処理をＣＰＵ１３０１に実行させるためのプログラムやデータ等が保存されている。係るプログラムには、操作入力部２００、操作者位置計測部３００、操作座標変換部４００、動作出力切り替え部４１０、動作出力保持部４２０のそれそれの機能をＣＰＵ１３０１に実行させるためのプログラムが含まれている。更に、係るデータには、上述の説明において、既知の情報として説明したものや、操作装置１００、１０１が保持しているものとして説明した情報、更には、当業者であれば当然の如く用いるであろう情報が含まれている。外部記憶装置１３０６に保存されているプログラムやデータは、ＣＰＵ１３０１による制御に従って適宜ＲＡＭ１３０２にロードされ、ＣＰＵ１３０１による処理対象となる。
【０１９４】
Ｉ／Ｆ１３０７は、上記操作盤接続口２０１、計測センサ接続口３０１、ロボット制御接続口４０１、接続口４０２、に対応するものである。図１３では、Ｉ／Ｆ１３０７は１つしか示しておらず、この１つのＩ／Ｆ１３０７でもって、操作盤接続口２０１、計測センサ接続口３０１、ロボット制御接続口４０１、接続口４０２、を兼ねている。しかし、操作盤接続口２０１、計測センサ接続口３０１、ロボット制御接続口４０１、接続口４０２のそれぞれに対応するＩ／Ｆ１３０７（即ち４つのＩ／Ｆ１３０７）を本コンピュータに設けても良い。Ｉ／Ｆ１３０７を介して受信した情報はＲＡＭ１３０２や外部記憶装置１３０６に送出される。
【０１９５】
１３０８は上述の各部を繋ぐバスである。
【０１９６】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１９７】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１９８】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１９９】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０２００】
【図１】駆動制御可能な可動部分を１以上有する産業用ロボットと、係る産業用ロボットの可動部分の位置や姿勢の操作制御を行うための操作装置とで構成されている、本発明の第１の実施形態に係るシステムの機能構成例を示すブロック図である。
【図２】本発明の第１の実施形態に係るシステムの外観例を示す図である。
【図３】操作盤２１０の構成例を示す図である。
【図４】本発明の第１の実施形態で取り扱う様々な座標系を示す図である。
【図５】方向指示入力スティック２１１、上方移動ボタン２１２、下方移動ボタン２１３のそれぞれが指示する移動方向と、それぞれの指示に応じた、ワークスペース座標系におけるハンド５０１（エンドエフェクタ）の移動方向と、を示す図である。
【図６】操作入力部２００が行う処理のフローチャートである。
【図７】操作者位置計測部３００が行う処理のフローチャートである。
【図８】操作座標変換部４００が行う処理のフローチャートである。
【図９】操作盤２１０から、移動方向指示Bup,Bdown,Bfar,Bnearのそれぞれが入力された場合における、ワークスペース座標系における可動部分の移動ベクトルΔd’up、Δd’down、Δd’far、Δd’nearを示す図である。
【図１０】本発明の第２の実施形態に係るシステムの外観例を示す図である。
【図１１】本発明の第３の実施形態に係るシステムの機能構成例を示すブロック図である。
【図１２】本発明の第４の実施形態に係るシステムの外観例を示す図である。
【図１３】操作装置１００、１０１に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【図１】
0005022868.tif 000024
【図２】
0005022868.tif 000025
【図３】
0005022868.tif 000026
【図４】
0005022868.tif 000027
【図５】
0005022868.tif 000028
【図６】
0005022868.tif 000029
【図７】
0005022868.tif 000030
【図８】
0005022868.tif 000031
【図９】
0005022868.tif 000032
【図１０】
0005022868.tif 000033
【図１１】
0005022868.tif 000034
【図１２】
0005022868.tif 000035
【図１３】
0005022868.tif 000036