明 細 書
作業ロボッ卜
技術分野
[0001] 本発明は、操作の対象となる対象物について作業を行う作業ロボットに関する。
背景技術
[0002] 近年では、種々のロボットが実用化されており、例えば人間にとって危険な場所で 作業を行うため、人間が遠隔制御するロボットや、予め定められたプログラムに従って
[0003] これら遠隔制御ロボットでは、操作に熟練を要し、利便性が低い。また予め定めら れたプログラムに従って動作するロボットの場合、作業の対象物が予め定められた位 置に置かれる必要があって自由度が低ぐ利用場面が限られてしまう。
発明の開示
発明が解決しょうとする課題
[0004] 以上のような状況の下にあって、操作性'利便性を向上し、ロボットの利用可能範囲 を拡大するために、人為的な操作をなるベく少なくして、 自律的に動作可能なロボッ トが求められている。
[0005] 本発明は上記実情に鑑みて為されたもので、人為的な操作をなるベく少なくして、 自律的に動作可能な作業ロボットを提供することを、その目的の一つとする。
課題を解決するための手段
[0006] 上記従来例の問題点を解決するための本発明は、対象物を操作する作業を実行 する作業ロボットであって、前記対象物を含む映像を撮像する撮像手段と、教示時に おいて、前記撮像手段にて撮像された映像とオペレータにより教示された操作内容 とを関連づけて保持する保持手段と、作業時において、前記撮像手段にて撮像され た映像を取得し、当該取得した映像に類似する映像を前記保持手段から検索し、当 該検索の結果、前記保持手段から見レ、だされた映像に関連づけられた操作内容に 基づき、対象物を操作する制御手段と、を含むことを特徴としている。
図面の簡単な説明
[0007] [図 1]図 1は本発明の実施の形態に係る作業ロボットの一例を表す概略構成図である
[図 2]図 2は本発明の実施の形態に係る作業ロボットのロボット本体の構成例を表す ブロック図である。
[図 3]図 3は本発明の実施の形態に係るロボット本体のアーム及びパケット部分の構 造例を表す説明図である。
[図 4]図 4は本発明の実施の形態に係る作業ロボットの遠隔制御装置の構成例を表 すブロック図である。
[図 5]図 5は本発明の実施の形態に係る作業ロボットの遠隔操作装置の構成例を表 すブロック図である。
[図 6]図 6は本発明の実施の形態に係る作業ロボットの遠隔制御装置の教示時の動 作例を表すフローチャート図である。
[図 7]図 7は本発明の実施の形態に係る作業ロボットの遠隔制御装置が保持する教 示データベースの例を表す説明図である。
[図 8]図 8は本発明の実施の形態に係る作業ロボットの遠隔制御装置の教示時にお ける記録前処理の一例を表すフローチャート図である。
[図 9]図 9は本発明の実施の形態に係る作業ロボットにおける記録前処理の動作で 生成されるテーブルの例を表す説明図である。
[図 10]図 10は本発明の実施の形態に係る作業ロボットの遠隔制御装置が生成する 検索用データの例を表す説明図である。
[図 11]図 11は本発明の実施の形態に係る作業ロボットの遠隔制御装置の作業時の 動作例を表すフローチャート図である。
[図 12]図 12は本発明の実施の形態に係る作業ロボットの遠隔制御装置が生成する 教示データベースの一例を表す説明図である。
発明を実施するための最良の形態
[0008] 本発明の実施の形態に係る作業ロボットは、撮像された画像に基づき、保持してい る画像を想起して、想起された画像に関連づけられた作業を遂行することで、自律的 な動作を可能としている。一般に、事例ベースの推論(CBR— Case Based Reasoning
)ないし記憶ベースの推論(MBR— Memory-Based Reasoning)は、コンピュータ上で 動作する仮想的なエージェントの実現に用いられる技術である力 S、本実施の形態は 、これら CBRや MBRが、現実の作業ロボットの制御にも有用であることに着眼して得 られたものである。すなわち、本実施の形態の一例によれば、 CBRや MBRによる推 論の結果に従って、作業を遂行する。
[0009] 本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形 態に係る作業ロボットは、図 1に示すように、ロボット本体 1と、遠隔制御装置 2と、遠 隔操作装置 3とを含んで構成される。またロボット本体 1は、図 2に示すように、制御部 11、撮像部 14、通信部 15、駆動部 16、及び作業部 17を含んで構成されている。こ こで駆動部 16は、ロボット本体 1が自走するために、ロボット本体 1の左右側面に夫 々設けられた無限軌道 Cと、各無限軌道 Cに対応して設けられ、それぞれを独立して 回転駆動可能な 2つのモーター Mとを含んで構成される。なお、この自走のための無 限軌道 Cは必ずしも必要なものではな!/、。
[0010] また、作業部 17は、図 3に例示するように、アーム Aに、対象物を把持するパケット Hを備えたものである。アーム Aは、ロボット本体 1に支持され、モータ Mlにてその仰 角を制御可能な第 1アーム部と、この第 1アーム部先端近傍で支持され、鉛直下方に 懸垂する第 2アームとを備える。この第 2アームの先端部に把持部 Hが設けられる。
[0011] パケットの 略 Z字状のパケット部材が 2つ、対向して配置され、 Z字状のパケット 部材は、モータ M2により開位置(図 3破線で示した位置)と、閉位置(図 3実線で示し た位置)との間で駆動される。
[0012] 遠隔制御装置 2は、図 4に示すように、制御部 21、記憶部 22、ストレージ部 23、操 作部 24、表示部 25、入力ポート 26、及び通信部 27を含んで構成される。さらに遠隔 操作装置 3は、図 5に示すように、制御部 31、操作部 32、出力ポート 33を含んで構 成される。
[0013] ロボット本体 1の制御部 11は、マイクロコンピュータ等であり、通信部 15を介して遠 隔制御装置 2から入力される指示操作により、駆動部 16や作業部 17等の各部を制 御する。例えば、前進、後退、右方向回転、左方向回転等の移動指示を受けると、制 御部 11は、駆動部 16を制御して、ロボット本体 1を指示された方向に移動させる。本
実施の形態では、駆動部 16は 2つの無限軌道(クローラー) Cを備えるので、制御部 11は、入力される指示操作により、各無限軌道の回転方向及び速度を制御して、口 ボット本体 1を前進、後退、左回転、右回転等して移動する。この無限軌道の駆動に よるロボット本体 1の移動制御については広く知られているので、ここでの詳細な説明 を省略する。
[0014] また、この制御部 11は、遠隔制御装置 2から、作業部 17のアームの上げ下ろしや、 パケット Hの開閉の指示を受けて、作業部 17の各モータ Ml , M2を制御する。
[0015] さらに制御部 11は、撮像部 14が撮像した映像データを通信部 15を介して遠隔制 御装置 2へ送出する。
[0016] 撮像部 14は、 CCDカメラ等であり、ロボット本体 1の進行方向所定範囲(一般に作 業部 17のアームを下ろしたときのパケットの位置をその中心部分に含む)を周期的( 例えば 1/30秒ごと)に撮像し、撮像して得たディジタルの映像データを制御部 11に 出力する。
[0017] 通信部 15は、例えば無泉 LAN (Local Area Network)インタフェースであり、遠隔 制御装置 2からロボット本体 1への指示操作のデータを受信して、制御部 11へ出力 する。また、この通信部 15は、制御部 11から入力される映像データを遠隔制御装置 2へ送信出力する。
[0018] 遠隔制御装置 2は、パーソナルコンピュータを用いて実現でき、その制御部 21は、 例えば MPU (Micro Processing Unit)であって、記憶部 22に格納された、ロボットの 制御プログラムに従って動作する。本実施の形態では、制御部 21は、ロボットの制御 プログラムを実行する際に、教示モードと作業モードとの 2つのモードの!/、ずれかを オペレータに選択させる。そして教示モードでは、オペレータによって行われた指示 操作の内容をそのままロボット本体 1へ送出するとともに、ロボット本体 1から受信され る映像データと、その映像データが受信されたときにオペレータが行った指示操作の 内容とを関連づけて教示データとしてストレージ部 23に格納する。
[0019] また、作業モードでは、ロボット本体 1から受信される映像データをキーとして、教示 データから、類似の映像データを検索し、見いだされた類似映像に関連づけられて 保持されている、オペレータが過去に行った操作の内容をロボット本体 1へ送出する
。この制御部 21の具体的な処理の内容については後に詳しく述べる。
[0020] 記憶部 22は、 RAM (Random Access Memory)や EEPROM (電気的消去可能 RO M)等の記憶素子を含んで構成される。この記憶部 22には、制御部 21によって実行 されるプログラムが格納される。また、この記憶部 22は制御部 21のワークメモリとして も動作する。ストレージ部 23は、ハードディスクなどであり、制御部 21が教示モードの 動作を実行している間に生成した教示データベースを保持する。
[0021] 操作部 24は、キーボード等であり、オペレータの指示操作を受け付けて、その内容 を制御部 21に出力する。オペレータはこの操作部 24を介して、教示モードと作業モ 一ドとを切り替える指示を入力する。表示部 25は、ディスプレイ等であり、制御部 21 による指示に従って、情報を表示する。
[0022] 入力ポート 26は、例えば RS— 232Cや USB等であり、この入力ポート 26に接続さ れた外部デバイスから入力される信号を制御部 21に出力する。本実施の形態では、 この入力ポート 26には、遠隔操作装置 3が接続され、入力ポート 26は、遠隔操作装 置 3が出力する信号を受け入れて制御部 21に出力するものとする。
[0023] 通信部 27は、例えば無線 LANインタフェースであり、制御部 21から入力されるロボ ット本体 1への指示を、ロボット本体 1へ送出する。また、この通信部 27は、ロボット本 体 1側から送信される映像データを受信し、制御部 21に出力する。
[0024] なお、撮像部 14がアナログの信号、例えば NTSC信号を出力する場合は、ロボット 本体 1側の通信部 15は当該 NTSC信号を変調したテレビ信号を送信するデバイス を備えて、 NTSC信号をそのまま送信するようにしてもよい。この場合、通信部 27もま た、テレビ信号を受信するデバイスを備えて、当該テレビ信号を復調して NTSC信号 を得て、さらに当該 NTSC信号をデイジタイズして映像データを生成し、この映像デ ータを制御部 21に出力するようにしてもよい。
[0025] 遠隔操作装置 3の制御部 31は、マイクロコンピュータ等であり、操作部 32にて行わ れたオペレータの操作内容を表わす信号を出力ポート 33を介して出力する。操作部 32は、一般的なラジオコントロールユニットのプロポーショナルコントローラでよぐ口 ボット本体 1の進行を制御するために、進行方向に対して左右に設けられた 2つのク ローラの前進 ·後退を制御する、前後に傾倒可能な 2つのジョイスティックを備える。ま
た、この操作部 32は、アームの方向、角度及びパケットの開閉を制御するため前後 左右に傾倒可能なさらに 2つのジョイスティックを備える。操作部 32は、これらのジョイ スティックの傾倒の角度に応じたディジタル信号を制御部 31に出力する。例えば、ク ローラを制御する 2つのジョイスティックからはそれぞれ前後方向の傾倒角度を得て、 これらの角度を表わすディジタル値を出力する。また、アームの方向などを制御する ジョイスティックからは、それぞれの前後方向の傾倒角度と、左右方向の傾倒角度と を得て、これらの角度を表わすディジタル値を出力する。なお、これらのジョイステイツ クを用いたロボットの操作については、例えば JIS規格に定めのあるものを用いること ができるので、ここでの詳細な説明を省略する。
[0026] 出力ポート 33は、制御部 31が出力する信号を出力する。本実施の形態では、この 出力ポート 33が、遠隔制御装置 2の入力ポート 26に接続され、信号を遠隔制御装置 2へ出力する。
[0027] 次に、遠隔制御装置 2の制御部 21が行う処理の内容について説明する。本実施の 形態の制御部 21は、教示時と、作業時とで異なる処理を実行するので、次にこれら を分けて説明する。
[0028] [教示時動作]
オペレータが操作部 24を操作して教示モードでの動作を指示すると、制御部 21は 、図 6に示す処理を開始し、まず画像取り込み用のバッファや、操作の信号を蓄積す る操作データバッファを記憶部 22に確保するなど、初期化処理を実行する(Sl)。そ して、通信部 27を介して受信する映像データを取り込んで記憶部 22に格納する(S2 )。
[0029] また、オペレータが遠隔操作装置 3の操作部 32を操作しており、制御部 21は、入 力ポート 26を介して遠隔操作装置 3が出力する信号の入力を受けて記憶部 22の操 作データバッファに蓄積して格納する(S3)。この信号は、オペレータの操作の内容 を表す信号であり、制御部 21は、この操作の内容に係る信号を通信部 27を介して口 ボット本体 1へ送出する(S4)。
[0030] 制御部 21は、オペレータが操作を完了したか否かを調べる(S 5)。例えば所定時 間に亘つて信号の入力がないか否かを調べる。ここでオペレータが操作を完了して
いなければ、処理 S3に戻って処理を続け、オペレータが操作を完了していれば、処 理 S2にて取り込んだ映像データに基づいて、映像データを検索する際に用いる検 索用データを生成する(記録前処置: S6)。
[0031] そして制御部 21は、ここで生成した検索用データと、取り込んだ映像データと、操 作データバッファに記録されている内容(操作内容データと呼ぶ)とを関連づけて、ス トレージ部 23に教示データベースとして保持する(S7)。
[0032] 制御部 21は、操作データバッファをクリアし、処理 S2に戻って処理を続ける。制御 部 21は、この教示時の処理を、オペレータがプログラム実行の中断を命じるまで、繰 り返して実行する。
[0033] この結果、ストレージ部 23には、オペレータが教示モードでの動作を指示してから、 プログラム実行の中断を命じるまでに受信した映像データと、その検索用データ、並 びに、映像データを撮像したときにオペレータによって行われた操作が互いに関連 づけて教示データベースとして保持されることとなる(図 7)。
[0034] [検索用データの例]
ここで、映像データの検索に用いられる検索用データは、類似画像の検索ができる ものであれば、ネオコグニトロンなどのニューラルネットワークを用いる方法、色の頻 度ヒストグラムを用いる方法その他、種々の方法を採用できる。本実施の形態におい ては類似画像の検索方法として、相関の高レ、画像を「想起」する処理を用いることと する。力、かる処理の具体的な例として、ここではネオコグニトロンを用いてもよい。
[0035] ネオコグニトロンでは、対象物の撮像位置に関わらず、対象物の種類、数量などを 検出可能となる。このため、多少の姿勢のずれによって映像データが検索されなくな るということがなくなる。本実施の形態では、作業時に映像データを想起する際に利 用するパターンとして、この検索用データを用いればよ!/、。
[0036] しかしながら、ネオコグニトロンによる想起に利用する多層構造は一般に複雑にな つており、作業用のロボットを動作させるなど、撮像した映像に基づく動作の迅速な 想起には適していないのが現状である。これに対して本実施の形態において特徴的 なことは、検索用データの一例として、映像データから方向線素特徴量を抽出して検 索用データとしたことである。このように本実施の形態では、方向線素特徴量を用い
ることとしたので、映像データのサイズ (映像データに含まれる画素数)が多くなつても 処理負担の増加量を抑制できる。方向線素の数は、映像データの画素数に必ずしも 依存しないからである。
[0037] 制御部 21は、検索用データを生成する記録前処置では、図 8に例示すように、映 像データを二値化し(S 11)、互いに重なり合うことを許した所定画素数の領域を画定 し(S 12)、各領域に含まれている線素の方向に係る情報を生成する(S13)。なお、 二値化の際には、対象となる映像データに含まれる色のヒストグラムを生成し、当該ヒ ストグラムに応じて二値化の基準値を変更してもよい。例えばヒストグラムにおいて明 度順に、頻度が所定しきい値以上となっている最低明度の値を取り出し、当該最低 明度から最大明度の範囲の中点を二値化の基準値としてもよい。この基準値より高 い値であれば「白」、基準値以下であれば「黒 (有意画素)」とするのである。
[0038] また、対象となる映像データに含まれる部分のうち、背景部分を除去してもよい。一 般に、背景は前景に対して広い面積となっているので、色のヒストグラムにおいて、最 頻値に対応する色を、対象となる映像データから除去することで背景除去の処理とし てもよい。
[0039] 本実施の形態では、例えば鉛直方向の線分に対し、 0度、 10度、 20度…と、 10度 ごとに傾きをもって交差する線分の各々を描画した画像を線素パターンとして、これ ら線素パターンを含む線素パターン群を予め、ストレージ部 23に格納しておく。
[0040] そして制御部 21の処理 S 13では、処理 S 12で画定した各領域の画像を順次、注 目領域として選択しながら、注目領域と線素パターン群に含まれる線素パターンとの スコア(一致度を表わす情報)を演算する。ここでスコアは、注目領域の画像を構成 する画素と、線素パターンの画素とにおいて、対応する画素が、ともに有意な画素( 抽出された線分、または規定された線分を構成する画素)となっているような画素の 個数として定める。
[0041] 制御部 21は、スコアの最も高い線素パターンを、注目領域を表わす線素パターン( 注目領域に含まれている線素の方向に係る情報)とする。そして、制御部 21は、注目 領域を特定する情報 (例えば、二値化した映像データの座標系であって、注目領域 の左上 X, y座標値)と、注目領域を表わす線素パターンを特定する情報と、スコアと
を関連づけて、教示データベースに含め、記憶部 22に格納する(S14)。
[0042] この処理 S14では、注目領域を順次選択しつつ、領域の数だけ繰り返して処理を 実行する。これにより制御部 21は、各領域を特定する情報に対して、それぞれ選択 された線素パターンを関連づけたリストを生成する(図 9)。さらに制御部 21は、検索 を容易にするため、線素パターンによって表わされる線分の角度ごとに、対応する線 素パターンに関連づけられて!/、る注目領域を特定する情報のリストを関連づけたもの
(位相順データと呼ぶ)を検索用データとして生成し(図 10)、教示データベースに含 めて格納する。
[0043] [作業時動作]
次に、この教示時動作によって生成された教示データベースを利用した、作業時の 動作につ!/、て説明する。オペレータが操作部 24を操作して作業モードでの動作を指 示すると、制御部 21は、図 11に示す処理を開始し、映像データの保持を行う領域を 確保するなど初期化処理を実行する(S21)。そして、制御部 21は通信部 27を介し て受信する映像データを取り込んで記憶部 22に格納し(S22)、この処理 S22にて取 り込んだ映像データを検索のキーとして、当該キーに最も類似する映像データを教 示データベースから検索する(S 23)。
[0044] 制御部 21は、当該最も類似する映像データに関連づけられている操作内容データ を読み出し(S24)、当該操作内容データによって表わされる操作を指示する信号を 、通信部 27を介して、ロボット本体 1へ送出する(S25)。以下制御部 21は、予め定め た時間だけ待機して、処理 S22に戻って処理を続ける。
[0045] 制御部 21は、例えば、オペレータがプログラムの実行停止を指示するまで、上記の 処理を繰り返して実行する。これにより、ロボット本体 1からの視点で撮像された映像 データを用い、過去、当該映像データに近似する映像データが撮像されたときに行 われた操作を参照してロボット本体 1を制御する。つまり、一度熟練したオペレータが 行った操作を教示しておくか、過去に作業に成功したときの操作を教示しておくこと で、類似場面において当該時点の操作を再現させ、作業時のオペレータが必ずしも 操作に熟練している必要がなぐ利便性を向上でき、また人為的な操作をなるベく少 なくして、自律的に動作可能にすることができる。
[0046] なお、本実施の形態の処理 S23の検索では、既に述べたようにネオコグニトロンの 処理を実行することとなる。すなわち、この検索の処理 S23では、制御部 21は、処理 S22にて取得した、キーとなる映像データを複数のブロックに分割し、各ブロックの方 向線素特徴量を演算する。この方向線素特徴量の演算は、教示時と同様に行っても よい。
[0047] さらに制御部 21は、キーとなる映像データに含まれる各画素と、それに隣接する画 素との色の差の絶対値を演算しておく。例えば、制御部 21は、キーとなる映像データ に含まれる画素を順次、注目画素として選択する。そして注目画素に隣接する画素と 、注目画素との色の差の絶対値 (色空間上の距離)を演算する。この色の差は、例え ば注目画素をラスタスキャン順(映像データの左上の画素から順に、左から右へ 1ラ イン走査し、次に一つ下のラインへ移行して左から右へ…と、順次走査する順)に走 查して選択する場合、直前の注目画素の画素値と、現在の注目画素の画素値との差 としてもよ!/、し、 4近傍の各画素との差の平均などとしてもょレ、。
[0048] 各ブロックの方向線素特徴量が得られると、制御部 21は、教示データベースに格 納されている検索用データを順次読み出す。ここでは各検索用データとして、位相順 データ(線素パターンによって表わされる線分の角度ごとに、各角度の線素パターン に関連づけられている領域を特定する情報のリストを関連づけたデータ)を用いる場 合を例として説明する。
[0049] 制御部 21は、キーとなる映像データに基づいて、演算により得た各ブロックの方向 線素特徴量を参照し、予め定められた各線素パターンが表わす線分の角度ごとに、 対応する角度の線素パターンに関連する方向線素特徴量となっているブロックを特 定する情報のリストを関連づけたデータを生成する。このデータを、以下、比較対象 位相順データと呼ぶ。
[0050] 制御部 21は、次に、比較対象位相順データの角度ごとのリスト(ブロックを特定する 情報の各々)と、読み出した検索用データとしての位相順データ(注目検索用データ と呼ぶ)に含まれるリストの差を演算する。具体的な例として、角度 Θの線分について 、比較対象位相順データにおいて、 (dxi, dyi) (ここで i = 0, 1 , 2· · ·)、検索用データ である位相順データにおいて(xj , yj) (ここで i = 0, 1 , 2· · ·)とのリストが含まれている
ときには、
國 い)
を演算して、この演算結果を、さらに角度 Θについて総和したものを、処理 S 22で取 得したキーとなる映像データと、注目検索用データとの距離 dであるとする。
[0051] なお、制御部 21は、距離 dに対して、キーとなる映像データに含まれる画素の値( 色)と、教示データベースにおいて注目検索用データに関連づけられている映像デ ータの画素の値 (色)との差に基づく重みを与えてもよい。この場合、キーとなる映像 データと、注目検索用データに関連づけられている映像データとの各画素について 、対応する画素値の差の絶対値を総和したもの I e Iと、先に演算した距離 dとの加 重和
Ό = a \ e \ + [i d
を補正距離 Dとする( α、 /3は正の重みの値)。
[0052] さらに、制御部 21は、次の演算によって補正距離 Dを求めてもよい。すなわち制御 部 21は、注目検索用データに係る映像データにおいても、当該映像データに含まれ る各画素と、それに隣接する画素との色の差の絶対値 (色空間上の距離)を演算して おく。そして制御部 21は、キーとなる映像データと注目検索用データとにおける各対 応画素の、それぞれの周辺画素との色差の値 cpz、 cpdzを用い、その差 f = cpz— cp dzを算出する。
[0053] 制御部 21は、この値 fの絶対値 I f Iを用いて、補正距離 Dを、画素値の差の絶対 値と I e Iとともに距離 dに加重して加算し、
D = a I e I + β ά + y | f |
としてもよい(α、 β , γは正の重みの値)。
[0054] これによると、色差が著し!/、部分が一致する場合とそうでな!/、場合とを補正距離 D に影響させることができるようになり、例えば背景など色差が一般に大きくない部分の 影響を軽減できる。
[0055] また処理速度を向上するため、キーとなる映像データと、注目検索用データに関連
づけられて!/、る映像データとを!/、ずれも所定サイズの画像に縮小処理し、縮小処理 後の各画素について、対応する画素値の差の絶対値を総和した eや、隣接画素との 差に係る値 fの少なくとも一方、及び、先に演算した距離 dとの加重和を以て補正距 離 Dを演算してもよい。
[0056] 制御部 21は、各検索用データを順次、注目検索用データとして選択しつっこの処 理を行い、キーとなる映像データと各検索用データとの補正距離 Dをそれぞれ演算 する。
[0057] そして補正距離 Dが最小となっている検索用データに関連づけて教示データべ一 スに登録されている映像データを、キーに最も類似する映像データとして選択する。
[0058] [補正動作]
制御部 21は、さらにここで選択した映像データと、キーとなっている映像データとを 比較し、その結果に基づいて次のようにロボット本体 1の位置を移動させる、補正動 作を行わせてもよい。例えば、比較に係る各映像データにおいて、同じ方向線素特 徴量となっているブロック同士の X方向、及び y方向のずれ量(どれだけのブロック数 離れている力 の平均を演算する。そして、得られた X方向及び y方向のずれ量に対 応して予め定められた距離だけロボット本体 1を移動してもよい。例えば X軸正の方向 (ロボット前方に向かって右側)へ px、 y軸(ロボットの前後方向)負の方向(ロボットの 後方向き)へ pyだけずれていれば、当該 px、 pyに対応する量だけ、ロボット本体 1を 右後方へ移動させることとしてあよレ、。
[0059] [動き検出]
なお、ここまでの説明においては、教示時、及び作業時に取り込まれる映像データ は静止画像(1コマぶんの映像)であるとして説明した。し力もながら、現実の動作に おいては、映像データから作業の対象物の線分が検出されるだけでなぐ対象物が 配置されている場所の背景からも線分が検出される。このことにより、背景の映像が 類似する映像データの検索に影響してしまう場合もある。
[0060] そこで、作業の対象物が移動する物体である場合などであって、移動の有無によつ て背景と区別できる場合は、映像データについて方向線素特徴量を演算するにあた り、予め複数コマの映像データを連続的に取得して、連続的に取得した映像データ
の差分に基づいて、動きのある部分を抽出し、当該動きのある部分について方向線 素特徴量を演算するようにしても構わなレ、。
[0061] [三次元処理]
さらに、作業の対象物を立体的に視認し、ロボット本体 1に取り付けられた撮像部 1 4から対象物までの距離と、撮像部 14から背景である机の面などまでの距離との差 によって作業対象物を認識できるようにしてもよい。
[0062] この場合は、ロボット本体 1の幅方向両端にそれぞれ撮像部 14を設けて、遠隔制 御装置 2が各撮像部 14にて撮像した映像データをともに取得する。そして、制御部 2 1は、各映像データについて方向線素特徴量を演算した上で、それぞれの映像デー タから方向線素特徴量が共通する線素のペアのうち、距離が最も近接しているペア を検索し、当該距離の差を算出させる。そして、当該距離の差がしきい値未満のもの は、ロボット本体 1から比較的遠方にあるものとして、すなわち背景から抽出された線 素であるとして、検索したペアを、記憶部 22から削除する。
[0063] これにより、後の演算において、ロボット本体 1からの距離が比較的近い物体(一般 に作業対象物と考えられる)から抽出された線素を処理の対象として選択的に极うこ とができ、作業対象物の認識精度を向上できる。
[0064] [動作]
本発明の実施の形態は、以上の構成を備えてなり、従って次のように動作する。こ こでは 2つの直方体のブロックを用い、一方のブロックを他方のブロックの上に配置す る作業を例として説明する。まずオペレータは、遠隔制御装置 2を操作して教示処理 の開始を指示する。すると、ロボット本体 1に設置された撮像部 14にて撮像された映 像データを、遠隔制御装置 2が受信して取り込む。遠隔制御装置 2は、この映像デー タに含まれる線分の位置と角度に関する情報を、検索用データとして生成しておく。
[0065] ここでは映像データとして、 2つのブロックが比較的遠方にバラバラに置かれた状態 が撮像されているものとする(図 12における (A)を参照)。ここから抽出される線分は 、各ブロックの輪郭線に係る線分となる。遠隔制御装置 2は、この輪郭線の位置及び 角度の情報を生成することになる。
[0066] オペレータは、遠隔操作装置 3を操作して、ブロックをパケット Hで把持可能な位置
までロボット本体 1を移動する操作 (前進操作)を行う。遠隔制御装置 2は、この遠隔 操作装置 3から入力される信号に基づいて、操作の内容を表す情報を生成するととも に、当該操作の内容を指示する信号をロボット本体 1へ送出する。ロボット本体 1では 、この信号を受信して前進動作を行う。
[0067] 遠隔制御装置 2は、当初撮像された映像データと、当該映像データから生成した検 索用データと、操作の内容を表す情報とを互いに関連づけて、教示データベースに 格納する。
[0068] 以下、オペレータが、アームを操作し、またパケットの開閉操作を行って一方のブロ ックをつかみあげ、次いでアームを移動する操作及びロボット本体 1を移動する操作 をして、他方のブロック上に、つかみあげたブロックを載せる操作を行うと、遠隔制御 装置 2は、各操作の行われる前に取得した映像データと、それに基づいて生成した 検索用データとに、各操作の内容を表す情報を関連づけて教示データベースに格 納していく(図 12)。オペレータは、作業を完遂すると、遠隔制御装置 2に対してプロ グラム実行の中断を命じる。
[0069] 次いで、他の場面において、 2つのブロックがバラバラに置かれた状況において、 オペレータが、ロボット本体 1を、各ブロックから教示時よりもさらに遠方に置き、遠隔 制御装置 2に対して作業の処理開始を指示すると、遠隔制御装置 2が作業モードで の動作を開始する。
[0070] すなわち、遠隔制御装置 2は、ロボット本体 1が撮像している映像データを受信し、 当該受信した映像データをキーとして、このキーとなる映像データから線分を抽出し て、当該抽出した線分の位置及び角度の情報を生成する。次に、遠隔制御装置 2は
、当該生成した線分の位置及び角度の情報やキーとなった映像データを用いて、教 示データベースに格納されている映像データから、現在ロボット本体 1が撮像してい る映像データに最も類似する映像データを検索する。
[0071] ここでは遠隔制御装置 2は、例えばキーとなった映像データから生成した線分の位 置及び角度と、教示データベースにおいて映像データに関連づけて記録されている 検索用データとを比較し、最も近接している検索用データを選択する。そして、当該 検索用データに関連づけられた映像データを、現在撮像している映像に最も類似す
る映像データであると判断する。既に説明したように、映像データ自体を比較の対象 として、色の類似度や、隣接画素との色の差分などに基づく重みを加えても構わない
[0072] 遠隔制御装置 2は、現在撮像している映像に最も類似すると判断された映像デー タに関連づけて教示データベースに記録されている、操作の内容の情報を読み出し 、当該読み出した操作の内容に関わる信号を、ロボット本体 1に送出する。
[0073] ここでの例では、まず、 2つのブロックがバラバラに配置されている映像が撮像され る力 その位置が、各ブロックに対する作業が可能な位置にあるので、図 12に示した 教示データベースの内容例にあって、(A)の検索用データが最も近接したデータと して選択される。そしてこの (A)の映像データが、現在撮像している映像に最も類似 すると判断される。ここでは (A)の映像データに対し、オペレータが過去に行った前 進移動の操作が関連づけられているので、遠隔制御装置 2は、当該前進移動をロボ ット本体 1側へ指示する。
[0074] オペレータが過去に行った前進移動が完了すると、遠隔制御装置 2は、さらにロボ ット本体 1にて撮像されている映像データを取得する。ここでは、教示時よりもブロック 力、ら遠い場所にロボット本体 1を置いたので、オペレータが過去に行った前進操作だ けでは、移動距離が不足しており、ブロックに対する作業が可能な位置までロボット 本体 1は移動していない。
[0075] このため、ここで取得した映像データに対しては、再度 (A)の検索用データが最も 近接したデータとして選択される。そしてこの (A)の映像データが、現在撮像している 映像に最も類似すると判断される。ここでは (A)の映像データに対し、オペレータが 過去に行った前進移動の操作が関連づけられているので、遠隔制御装置 2は、当該 前進移動をロボット本体 1側へ指示する。
[0076] こうしてロボット本体 1がさらに前進を行い、ブロックに対する作業が可能な位置まで ロボット本体 1が移動する。この段階になると、遠隔制御装置 2が、ロボット本体 1にて 撮像されている映像データを取得すると、当該取得した映像データに対しては、ァー ムの移動及びパケットの開閉操作が関連づけられている映像データ(B)が最も類似 したデータとして選択される。そこで遠隔制御装置 2は、このアームの移動及びバケツ
トの開閉操作をロボット本体 1側へ指示する。
[0077] この指示によりロボット本体 1は、その位置を移動することなぐアームを移動してパ ケットを開き、さらにアームをおろしてアームを閉じ、ブロックをつかみあげる作業を開 始する。
[0078] すなわち、本実施の形態の作業ロボットでは、ロボット本体 1が撮像している映像に 対して、当該映像に類似する映像が撮像されたときに、オペレータが行った作業を繰 り返して実行する。
[0079] このように本実施の形態によると、オペレータは一度でも作業に成功したときの記録 を作業ロボットに記憶させておけば、必ずしも操作に熟練を要する必要がなぐ利便 性を向上できる。また、撮像されている映像を想起しつつ、当該想起した映像に関連 づけられている作業を実行するので、上記した動作の例のように、作業の対象物が 予め定められた位置に置かれていない場合も、対象物をつかみあげる作業を行った 時点で撮像された映像が想起されるまでは、対象物までの移動を行う作業が行われ 、次いで対象物をつかみあげる操作などが行われることとなり、利用場面を拡大でき
[0080] こうして本実施の形態によると、人為的な操作をなるベく少なくして、自律的に動作 可能な作業ロボットとすることができる。
[0081] [その他のセンサ]
ここまでの説明では、ロボット本体 1側にて撮像された映像データに対して、行われ た作業が記録され、現在撮像されている映像データをキーとして、過去に取得した映 像データを想起し、当該想起した映像データに関連づけられている作業を実行する 例について述べたが、本実施の形態はこれに限られず、例えば、ロボット本体 1に前 方、側方、後方にある物体 (対象物ないし障害物)までの距離を測定するセンサ(距 離センサ)や、ロボット本体 1の進行方向や車幅方向の傾きを測定する傾斜センサ、 さらにパケットに対象物が把持されて!/、るか否かを検出するためのひずみゲージや 距離センサなどを備えてもょレ、。
[0082] この場合、各センサの情報を検索用データに含め、作業時の動作において、各セ ンサで測定した値と、各検索用データに含まれる値との差を演算し、各検索用データ
との類似度を映像データの類似度とともに重み付け加算して、現在取得されている 映像データや測定データと、過去の映像データや測定データとの類似度を演算し、 類似度の最も高い映像データや測定データに関連づけられている操作の内容を取 得して、ロボット本体 1に対し、当該操作の内容に基づく信号を送出して、ロボット本 体 1を制御する。
[0083] これによると、例えばパケットにより対象物をつかみ損ねた場合に、ひずみゲージに よる検出結果により、対象物をつかんでいる過去の状態とは異なることとなり、作業を 続行して、つかんだと考えられる対象物を移動する操作を行ってしまうとレ、つた不具 合が回避される。
[0084] [距離センサの利用例]
さらに、ロボット本体 1の外周に、例えば床面までの距離を測定する距離センサを設 けておいてもよい。ロボット本体 1の制御部 11は、いずれかの距離センサ(注目セン サとする)が測定した床面までの距離力 予め定められた値を超えている場合ほた は他の距離センサの測定結果の平均から所定しきレ、値を超えて離れて!/、る場合)、 遠隔制御装置 2から入力される指示にかかわらず、ロボット本体 1の動作を停止させ る力、、または注目センサの位置とは逆方向へロボット本体 1を移動させるよう制御して もよい。これにより、ロボット本体 1を台の上で動作させているときに、ロボット本体 1が 台などから落下することを防止できる。
[0085] また、ここでは床面までの距離を測定する例とした力 壁面や障害物などを検出す るべぐ水平方向へ向けた距離センサを設け、いずれかの距離センサが、所定距離 範囲内の障害物を検出したときに、制御部 11において、遠隔制御装置 2から入力さ れる指示にかかわらず、ロボット本体 1の動作を停止させる力、、または注目センサの 位置とは逆方向へロボット本体 1を移動させるよう制御してもよい。
[0086] [達成状態までの経路探索]
ここまでの説明では、操作開始前の映像データや測定データに対して、オペレータ が過去に行った操作を関連づけることで、過去に取得したものと類似する映像データ や測定データが再び得られたときに、当該過去に取得した、類似する映像データや 測定データに関連づけされたオペレータの操作が再度実行されることとした。しかし
ながら、操作開始前の映像データや測定データとともに、操作完了後の映像データ や測定データを、オペレータがその間に行った操作に関連づけて、教示データべ一 スに格納しておくこととしてもよい。
[0087] これによると、初期状態と、完了状態と、操作の内容といった操作要素が教示デー タベースに蓄積されることとなる。そして、遠隔制御装置 2は、作業の指示を受けた時 点での映像データや測定データと、所与の目標状態における映像データや測定デ ータを特定する情報とに基づき、 目標状態に至るまでの操作の組み合わせを、教示 データベースに格納された操作要素のデータの組み合わせに基づいて決定してもよ い。この決定は、例えばコンピュータにより記号推論を行うプログラムを実行して、試 行錯誤的方法によって行うことができる。かかるプログラムは、人工知能プログラムと して種々開発されているので、ここでの詳細な説明を省略する。
[0088] 操作の組み合わせを決定すると、遠隔制御装置 2は、各操作を時系列の順に、ロボ ット本体 1へ指示する。そしてロボット本体 1が当該指示に従って、移動し、または作 業を行う。
[0089] [撮像部 14の配置]
さらに本実施の形態のロボット本体 1に設けた撮像部 14は、ロボット本体 1のアーム Aの動きに連動して、撮像範囲を変化させるよう制御してもよい。例えばアーム Aのう ち、第 1アーム部の仰角に連動して、仰角が高いほど水平方向に近い方向を撮像し 、仰角が小さくなると(第 1アーム部が水平に近くなり、パケット Hが床面に近接すると )、パケット Hの方向(床面方向)を撮像するようにそのチルト角を変化させる。
[0090] また別の例では、撮像部 14として、水平方向を撮像する第 1カメラと、ノ ケット Hの 方向を撮像する第 2カメラとを設けてもよい。この場合、例えばアーム Aの第 1アーム 部の仰角が、予め定めたしきい値より大であるときに第 1カメラの映像を選択的にキー として用いて想起動作を行う。また、アーム Aの第 1アーム部の仰角が、予め定めたし きい値より小さくなると、第 2カメラの映像を選択的にキーとして用いて想起動作を行う 。なお、教示時にも同様に、予め定めたしきい値より大であるときに第 1カメラの映像 を選択的に用いて検索用データを生成し、教示データベースを更新し、アーム Aの 第 1アーム部の仰角が、予め定めたしきい値より小さくなると、第 2カメラの映像を選択
的に用いて検索用データを生成し、教示データベースを更新してもよい。
[0091] また、アーム Aに連動するのではなぐ例えばロボット本体 1の前方に設けた距離セ ンサなどにより、対象物までの距離が測定できれば、当該距離に応じて撮像部 14の 撮像範囲を変更してもよい。例えば撮像部 14は、対象物方向を向くように、そのパン とチルトとが制御されてもよ!/、。
[0092] また撮像部 14のパンやチルト角を変化させるば力、りでなぐ撮像した画像から一部 を切り出してキーとなる映像ほたは教示の対象となる映像)を得ることとする場合、当 該切り出す範囲を変更することで、撮像範囲を変更制御してもよい。
[0093] [その他の変形例]
以上の説明では、ロボット本体 1が無限軌道によって駆動され、アームとパケットとを 備えた、いわばショベルカーの一種である例について述べたが、これに限られるもの ではなぐ一般的なマニピュレータなどであってもよいし、さらにロボット相撲などの競 技用ロボットであっても構わない。