以下、図面を参照しながら、本発明の実施形態について説明する。各実施形態と個々に独立したものではなく、適宜、組み合わせることが可能であり、また、組み合わせに基づく相乗効果も主張可能なものとする。同一の要素には同一の符号を付し、重複説明は省略する。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。図1は、システムの概略的なブロック図である。図2は、端末装置の概略図である。図3は、端末装置の使用状態を示す図である。図4は、作業ロボットの動作状態を示す図である。図5は、環境モデリングサーバの概略的なブロック図である。図6は、端末装置の概略的なブロック図である。図7は、3D画像取得部の概略的なブロック図である。図8は、位置姿勢情報取得部の概略的なブロック図である。図9は、作業ロボットの概略的なブロック図である。図10は、作業ロボットに組み込まれた位置姿勢情報取得部の概略的なブロック図である。図11は、システムの概略動作を示すフローチャートである。図12は、操作タグの配置動作を示す概略的なフローチャートである。図13〜図17は、操作タグの配置動作時の表示画像を示す図である。図18は、操作アイコンを示す図である。図19は、操作タグデータベースに格納される操作タグのデータ構造を示す模式図である。図20は、幾何プリミティブと指示動作内容との関係を示す模式図である。図21は、幾何プリミティブと指示動作内容との組み合わせの変形例を示す模式図である。図22は、操作情報の変更手順を示す概略的なフローチャートである。図23乃至図26は、操作情報の変更時の表示画像を示す図である。図27は、操作タグの配置状態を模式的に示す仮想図である。図28は、作業ロボットに対する操作指示手順を示す概略的なフローチャートである。図29乃至図33は、作業ロボットに対する操作指示時の表示画像を示す図である。図34は、幾何プリミティブのバリエーションを示す図である。
図1に示すように、システム100は、無線ネットワーク20を介して互いに通信可能に接続された環境モデリングサーバ10、端末装置30、及び作業ロボット40から構築される。なお、当業者であれば、適宜、システム変更をなすことが可能である。例えば、環境モデリングサーバ10に対して、端末装置30、作業ロボット40の一部の機能を移設することも可能である(その逆も然り)。
環境モデリングサーバ10は、一般的なサーバ装置であり、高度な演算処理を実行可能に構成され、かつデータベースサーバとして機能可能に構成されている。端末装置30は、汎用レベルの処理機能を有するコンピュータから構成される。作業ロボット40にも、汎用レベルの処理機能を有するコンピュータが組み込まれている。なお、周知のように、コンピュータは、CPU(Central Processing Unit)、ハードディスク、メモリ、マザーボード、ドーターボード、外部インターフェイス等から構成される。CPUは、ハードディスク、メモリ等の記憶領域に格納されたプログラムを実行する。このようなCPUによるプログラム処理によって、様々な機能が具現化される。
図2に示すように、端末装置30は、ユーザーにより持ち運び可能なサイズに構成されている。端末装置30の前面30aには、表示部30cが設けられ、その背面30bには、3次元計測部30d、及び画像取得部30eが設けられている。端末装置30の表示部30cは、タッチパネル装置が組み込まれている(図3も併せて参照のこと)。ユーザー210は、端末装置30のタッチパネルに表示されるアイコンを指で指定することによって、端末装置30に対して指示を入力する。画像取得部30eは、後述の画像取得部38bに相当する。3次元計測部30dは、後述の奥行き情報取得部38cに相当する。
図3に模式的に示すように、ユーザー210は、端末装置30を持ち、作業ロボット40の導入環境に固定されている構造物(被操作体)90a〜90cを順次撮影し、後述の説明のように、端末装置30により取得された立体像に対して仮想的に操作タグを設定する。ユーザー210は、端末装置30の位置/姿勢を適当なものとすることによって、任意の構造物を撮影することができる。従って、目的とする構造物を迅速に、直感的に計測することができる。この場合には、固定カメラ等の場合のように死角が問題となることは低減される。
システム100によって実行される操作タグの設定方法は、概略的に説明すれば、次のとおりである。まず、構造物の位置を示すための"位置データ(位置情報)"、その構造物の幾何形状を示すための"構造データ(幾何情報)"、その構造物に対して作業ロボットが成すべき動作内容を指定するための"操作内容データ(操作情報)"を生成し、これらを操作タグIDにて関連づけて記憶する。このようにして、導入空間内に存在する各構造物に対して作業ロボット40が為すべき操作内容が事前設定される。なお、各操作タグは、操作タグIDによって識別され、上述のデータを含んで構成される。本願では、操作タグIDに対して関連付けられたデータ群を単に"操作タグ"と簡略的に呼ぶ場合があるものとする。この点は、説明の便宜上の問題であり、この点を根拠として本願発明の技術的範囲が狭く解釈されることは許されない。
上述の構造データは、好適には、構造物の3次元計測により得られた立体像に対して幾何プリミティブを適用することによって得られる。これによって、作業ロボット40の操作対象となる構造物の実形状をシステム側が把握することが可能になり、作業ロボット40による構造物の操作精度が向上する。上述の位置データは、GPS測位、無線LANアクセスを測位基準として利用した測位、携帯電話基地局を利用した測位等によって取得される。操作内容データは、予め類型化されたデータから選択されるものである。
図3に例示的に示すように、作業ロボットの導入環境には、タンス90a、物入れ90b、および扉90c等の構造物90が設けられている。タンス90aには、取っ手91aにより開閉される引き出し、及び取っ手91bにより開閉される引き出しが設けられている。物入れ90bには、取っ手91cにより開閉される扉が設けられている。扉90cは、取っ手91dによって開閉される。
図4に模式的に示すように、作業ロボット40は、導入環境内にて様々な作業を行う。例えば、作業ロボット40は、タンス90aの取っ手91aを手前に引き、タンス90aに設けられた上段引出しの中身を撮像する。作業ロボット40は、扉90cの取っ手91dを手前に引き、扉90cの向こう側の部屋へ移動する。作業ロボット40による各構造物の操作は、ユーザーによる端末装置30の操作によって実行される。
作業ロボット40に対する操作指示は、ユーザー側から見ると、次のように実行される。端末装置30は、作業ロボット40の取得画像に操作タグアイコンが重畳表示された画像をユーザーに提示する。ユーザーは、端末装置30が提示する操作タグアイコンを指タッチし、これから導かれる操作内容を指タッチにより指定する。端末装置30から作業ロボット40に対して、ユーザーによる操作指示が転送され、作業ロボット40は所望の動作を実行する。構造物の3次元計測データに対して幾何プリミティブを適応することにより構造物の実形状が把握可能となっているため、作業ロボット40による構造物の操作は、精度よく実行可能である。また、作業ロボット40に対して伝達される操作指示は、構造物から得られたデータに対してフィッティングされた幾何プリミティブとの関係において特定される。これによって、構造物に対する作業ロボット40の操作内容を簡潔に示すことが可能になる。
なお、図4に示すように、作業ロボット40は、外観要素として、車両部40a、胴部40b、頭部40c、及び腕部40d、40eを有する。作業ロボット40の腕部40dは、リンク部40d1、40d2、ハンド部40d3が関節接続されて構成される。作業ロボット40の腕部40eについても腕部40dと同様である。車両部40aには、個別に回転制御される一組の車輪40a1が設けられている。車両部40aには、一組の車輪を個別に制御する制御機構が組み込まれている。胴部40bには、作業ロボット40が行う様々な動作を制御する制御装置が組み込まれている。頭部40cには、様々なセンシングデバイス等が組み込まれている。
作業ロボット40は、例えば、目的地までの移動経路等を自律的に決定し、決定した移動経路に沿って自律移動することが可能に構成されている。作業ロボット40は、センシングデバイスにて検出されるセンシング結果に基づいて自身の現在姿勢を検知することが可能に構成されている。作業ロボット40は、自律的又はユーザーからの指令に応じて、所望の姿勢に変化することが可能に構成されている。作業ロボット40による構造物の操作は、作業ロボット40の姿勢変化によって実行される。作業ロボット40内に組み込まれたアクチュエータ、モータ等の動作量を適当なものとすることによって、作業ロボット40の姿勢制御が実行される。
繰り返しとなるが、本実施形態では、各構造物に対して仮想的に操作タグが付与される。各構造物に対して成す作業ロボットの操作内容は、操作対象の構造物に対して事前設定された操作タグに基づいて実行される。操作タグは、より好適には、被操作体の位置を示す位置データ(位置情報)、その被操作体の3次元計測から得られた立体像に対して幾何プリミティブを適応させて得られる構造データ(幾何情報)、およびその被操作体に対して作業ロボットが成すべき操作内容を示す操作内容データ(操作内容情報)を含む。ユーザーが構造物に対して操作タグを仮想的に事前設定することで、適切な操作環境モデルを構築することができ、作業ロボット40が導入される環境のモデル化の負担を低減することが可能になる。
構造物に対して仮想的に操作タグを付与することは、仮想空間内において、構造物に対応づけて操作タグを設定することを意味し、構造物に対して直接的に情報を持たせることは意味しない。構造物に対して関連付けられた操作タグを情報として管理することは、システム100(本例では、環境モデリングサーバ10)によって実行される。
構造物を特定するための情報(構造物の位置、形状等を特定するための情報)に対して、同構造物に対して作業ロボット40が成すべき操作内容を付加して記憶することを繰り返すことによって、各構造物に対して操作タグを仮想的に付与することができる。作業ロボット40に対して実作業を実行させる場合、システム100は、作業ロボット40が得たデータ(位置データ、姿勢データ等)に基づいて、作業ロボット40が操作対象とする構造物に対して事前付与された操作タグをユーザーに対して提示する。ユーザーには、作業ロボットが成し得る動作内容が提示される。ユーザーは、端末装置30の操作によって、作業ロボット40に対して所定の操作を実行させる。
図5乃至図10を参照して、システム100の動作の詳細について説明する。なお、上述のように、システムの具体的な構成態様は任意である。端末装置30を単なる入出力装置として扱い、端末装置30が実行する演算処理機能の大部分を環境モデリングサーバ10に実行させても良い。端末装置30を用いて操作タグの設定を実行しているが、作業ロボット40を活用して操作タグの設定を実行しても良い。この場合、端末装置30に対して、3次元計測手段、位置姿勢計測手段等のセンシング機構を具備させる必要性を回避することができる。
図5に示すように、環境モデリングサーバ10は、通信部11、制御部12、操作タグデータベース13、操作タグ生成部14、及びフィッティング実行部15を有する。通信部11は、無線ネットワーク20に対して無線接続される。制御部12は、通信部11、操作タグデータベース13、及び操作タグ生成部14に対して接続される。操作タグ生成部14は、フィッティング実行部15に対して接続される。
通信部11は、無線ネットワーク20を介して、端末装置30、作業ロボット40と通信を行う。通信部11は、技術標準に準拠して構成される。制御部12は、通信制御、データベースアクセス制御、メモリアクセス制御、シーケンス制御、演算制御、データ転送制御、データ圧縮/解凍制御等を行う。操作タグデータベース13は、データを管理するユニットであり、データベースコントローラを内蔵する。操作タグ生成部14は、操作タグデータベースに格納される操作タグを生成する。フィッティング実行部15は、端末装置30、作業ロボット40から転送された3次元データに対して、予め登録されている幾何プリミティブのフィッティングを実行する。
図6に示すように、端末装置30は、通信部31、制御部32、表示画像生成部33(メニュー生成部33a、仮想画像生成部33b、合成画像生成部33c)、表示部36、指示入力部37、3D画像取得部38、および位置姿勢情報取得部39を有する。通信部31は、無線ネットワーク20に対して無線接続される。制御部32は、通信部31、表示画像生成部33、表示部36、指示入力部37、3D画像取得部38、および位置姿勢情報取得部39に対して接続される。
通信部31は、無線ネットワーク20を介して、環境モデリングサーバ10、作業ロボット40と通信を行う。通信部31は、技術標準に準拠して構成される。制御部32は、通信制御、メモリアクセス制御、シーケンス制御、演算制御、データ転送制御、データ圧縮/解凍制御等を行う。表示画像生成部33は、表示部36にて生成されるべき画像を生成する。メニュー生成部33aは、メニュー等の表示項目を生成する。仮想画像生成部33bは、実在しない仮想表示を生成する。合成画像生成部33cは、画像の合成処理を実行する。表示部36は、液晶ディスプレイ等から構成される画像表示部である。指示入力部37は、タッチパネルディスプレイに格納される指示入力位置検出装置等により構成される。3D画像取得部38は、周囲環境を写す2次元画像に加えて、画像の奥行き情報を取得する。位置姿勢情報取得部39は、端末装置30の位置姿勢情報を取得する。
3D画像取得部38の具体的構成は任意である。例えば、異なる位置に配置された2つのカメラにて画像取得し、異なる視点から取得された2つの画像に基づいて奥行き情報を算出しても良い。TOF(Time Of Flight)の原理に基づいて奥行き情報を求めても良い。或いは、コード化した光の投光によって得られる反射光の検知に基づいて奥行き情報を取得しても良い。図7に例示的に示すように、3D画像取得部38は、制御部38a、画像取得部38b、奥行き情報取得部38c、奥行き算出部38dを有する。制御部38aは、画像取得部38b、奥行き情報取得部38c、及び奥行き算出部38dに対して接続される。奥行き情報取得部38cは、奥行き算出部38dに対して接続される。制御部38aは、制御部32に対して接続される。
制御部38aは、画像取得部38b、奥行き情報取得部38c、奥行き算出部38dの動作を制御する。画像取得部38bは、好適には、カメラによって構成される。カメラは、CMOSセンサ(撮像素子)、CMOSセンサに対して被写体像を結像させるレンズ(光学系)、レンズを変位させる機構(レンズ駆動装置)、及びCMOSセンサの出力データを処理する機能回路等から構成される。画像取得部38bで取得された画像データは、バスを介して、表示部36に伝送される。奥行き情報取得部38cは、パターン光投光部と、パターン光受光部とから構成される。奥行き算出部38dは、パターン光の投光時点から反射されたパターン光の受光時点間の時間計測に基づいて、奥行き情報を算出する。或いは、パターン光投光位置とカメラの視差によるステレオ原理に基づいて、奥行き情報を算出しても良い。
位置姿勢情報取得部39の具体的構成は任意である。例えば、位置姿勢情報取得部39は、導入環境に設定された複数の発信源から発信される信号の受信強度に基づいて、現在位置を算出する。昨今においては、衛星から受信したGPS信号に基づいて現在位置を算出することが多用されている。従って、この技術を活用して現在位置を取得しても良い。姿勢情報は、本体に内蔵されたジャイロセンサ等の出力から求めることができる。
図8に例示的に示すように、位置姿勢情報取得部39は、制御部39a、GPS信号受信部39b、加速度検出部39c、地磁気検出部39dを有する。制御部39aは、GPS信号受信部39b、加速度検出部39c、地磁気検出部39dに対して接続される。制御部39aは、制御部32に対して接続される。
制御部39aは、GPS信号受信部39b、加速度検出部39c、地磁気検出部39dを制御し、各ユニットから入力されるデータに対して演算処理等する。GPS信号受信部39bは、GPS信号を受信する。加速度検出部39cは、3軸方向の加速度を検出する。地磁気検出部39dは、地磁気を検出する。
図9に示すように、作業ロボット40は、通信部41、制御部42、3D画像取得部43、位置姿勢情報取得部44、および駆動制御部45を有する。通信部31は、無線ネットワーク20に対して無線接続される。制御部42は、通信部41、3D画像取得部43、位置姿勢情報取得部44、および駆動制御部45に対して接続される。
通信部31は、無線ネットワーク20を介して、環境モデリングサーバ10、端末装置30と通信を行う。通信部41は、技術標準に準拠して構成される。制御部42は、通信制御、メモリアクセス制御、シーケンス制御、演算制御、データ転送制御、データ圧縮/解凍制御等を行う。3D画像取得部43は、周囲環境を写す2次元画像に加えて、画像の奥行き情報を取得する。位置姿勢情報取得部44は、作業ロボット40の位置姿勢情報を取得する。駆動制御部45は、作業ロボット40に内蔵される駆動機構を制御する。
図10に例示的に示すように、位置姿勢情報取得部44は、制御部44a、GPS信号受信部44b、加速度検出部44c、地磁気検出部44d、及び関節軸角度検出部44eを有する。制御部44aは、GPS信号受信部44b、加速度検出部44c、地磁気検出部44d、及び関節軸角度検出部44eに対して接続される。制御部44aは、制御部32に対して接続される。関節軸角度検出部44eは、ロータリーエンコーダ等の活用によって、リンク間の回転各等を検出する。なお、作業ロボット40には、作業ロボット40の現在姿勢を検出することに必要な様々なセンシングデバイスが内蔵されることは上述したとおりである。
図5乃至図10に開示した要素の具体的な動作内容は、後述の説明から更に明らかになる。
図11に示すように、システム100は、操作タグデータベースの構築をし、その後、操作タグデータベースの格納された操作タグを活用してロボット制御する。
図12を参照して、操作タグの配置手順について説明する。図13乃至図20も適宜参照して説明する。
まず、被操作体を表示する(S100)。具体的には、ユーザーは、図3に模式的に示すように、作業ロボット40の導入空間にて端末装置30を持ち、構造物(例えば、タンス90aの取っ手91a)を撮影する。ユーザーは、端末装置30を適切な位置とすることによって、端末装置30により取っ手91aを撮影する。端末装置30の表示部36は、図13に模式的に示すように、取っ手91aを表示する。
次に、キャプチャ動作を実行する(S101)。具体的には、ユーザーは、端末装置30の表示部36に表示されているカメラアイコンを指でタッチし、端末装置30に対してキャプチャ動作の実行を指示する。
端末装置30は、キャプチャ実行指示の入力に応じて、(1)被操作体を写す画像のキャプチャ、(2)被操作体の3次元計測、(3)端末装置の位置姿勢データの取得を同時刻に実行する。なお、キャプチャ動作の実行指示の入力は、指示入力部37を介して制御部32に伝達する。制御部32は、3D画像取得部38、位置姿勢情報取得部39に対してデータ取得動作を指示する。3次元計測の具体的な手法は任意である。例えば、3次元計測は、1以上のカメラとパターン光投影機によって実行される。他の例では、2以上のカメラによるステレオ画像計測装置によって、3次元計測が実行される。他の例では、レーザレンジスキャナによって3次元計測が実行される。
画像取得部38bは、キャプチャ実行指示の入力時に応じて、現在の取得画像を保持する。
奥行き情報取得部38cは、キャプチャ実行指示の入力に応じて、キャプチャ画像の面内における奥行き情報を取得する。例えば、光学的な手法によって奥行き情報は取得される。パターン光の出射から、パターン光が物体に反射して戻ってくる戻り光の検出までの時間を計測することによって、パターン光の照射範囲内の奥行き情報が取得される。なお、奥行き情報の取得方法は任意であり、この例に限られるべきものではない。
光学的手法により奥行き情報を取得する場合、次のような構成が採用可能である。奥行き情報取得部38cは、パターン光の出射から戻り光の受光までの時間を計測するセンシングユニットである。奥行き算出部38dは、そのセンシングユニットから出力される時間情報から距離を算出する演算ユニットである。
位置姿勢情報取得部39は、キャプチャ実行指示の入力に応じて、端末装置30の位置姿勢情報を取得する。GPS信号受信部39bは、GPS信号を受信する。加速度検出部39cは、3軸方向の加速度を検出する。地磁気検出部39dは、地磁気を検出する。制御部39aは、GPS信号から、端末装置30の現在位置を算出する。制御部39aは、3軸方向の加速度から端末装置30の鉛直からの姿勢状態を示す値を算出する。制御部39aは、検出された地磁気の値から端末装置30の水平面内の姿勢を算出する。制御部39aは、これらの鉛直および水平面内の姿勢から端末の姿勢を算出する。
キャプチャ動作の実行指示の入力に応じて取得された(1)キャプチャ画像、(2)被操作体の3次元計測データ、(3)端末装置の位置姿勢データは、バッファ等に一時的に格納される。このバッファは、例えば、制御部32内に設けられる。
次に、アイコン選択画像を生成/表示する(S102)。具体的には、制御部32は、表示画像生成部33に対して、キャプチャ画像に対して操作アイコンの選択画像を付加した表示画像の生成を指示する。これに応じて、表示画像生成部33は、メニュー生成部33aに対してアイコン選択画像の生成を指示し、合成画像生成部33cに対してキャプチャ画像とアイコン選択画像との合成処理を指示する。合成画像生成部33cで生成された合成画像は、表示部36によって表示される。これにより、端末装置30は、図14に模式的に示す画面を表示する。
図14に開示された動作A〜動作Dを示すアイコンには、図18に模式的に示すアイコンが表示されるものとする。図18(a)に示されたアイコンは、直線に沿って取っ手を押し/引きする操作を示すアイコンである。図18(b)に示されたアイコンは、曲線に沿って取っ手を押し/引きする操作を示すアイコンである。図18(c)に示されたアイコンは、直線に沿って取っ手を回転させ、続いて、曲線に沿って取っ手を押し/引きする操作を示すアイコンである。図18(d)に示されたアイコンは、直線に沿ってボタンを押し/離す操作を示すアイコンである。図18に開示されたアイコンは、構造物に対して作業ロボットが為すべき操作内容を示す。
表示画像生成部33の具体的な画像生成態様は任意である。例えば、メニュー生成部33aは、図14に示す表示領域R10に表示されるべきアイコン選択画像を生成する。合成画像生成部33cは、メニュー生成部33aにて生成された画像とキャプチャ画像とに基づく合成画像を生成する。なお、図14に示す表示領域R10、R20には、適宜、他の処理をユーザーに提示/案内するためのアイコンを表示させても良い。また、表示領域R20を画面全体として、表示領域R10を透過表示させても良い。
次に、操作タグアイコンの選択をする(S103)。具体的には、図15に模式的に示すように、ユーザーは、表示部36に表示されている構造体上へ、作業ロボット40が成すべき動作を示す適切なアイコンを選択的に移動させる。図15に表示された構造物は、図3のタンス90aの取っ手91aである。従って、ユーザーは、図18(a)に示すアイコンを選択して、これを取っ手91a上へ移動させる。このようにして、キャプチャされた構造体に対して、操作情報が関連づけられることになる。なお、ユーザーによるアイコンの選択は、指示入力部37、制御部32、表示部36等らの協調的動作によって実現される。タッチパネルセンサの制御技術は確立されているため、その詳細な動作説明は省略する。
次に、フィッティングを実行する(S104)。具体的には、端末装置30は、環境モデリングサーバ10に対してフィッティングに必要なデータを送信する。環境モデリングサーバ10は、端末装置30から受信したデータに基づいて、被操作体の3次元計測データに対して幾何プリミティブをフィッティングする。
端末装置30は、キャプチャ動作により取得したデータ(キャプチャ画像データ、3次元計測データ)を環境モデリングサーバ10へ送信する。好適には、端末装置30は、環境モデリングサーバ10のフィッティング処理の短縮のため、操作アイコンがドロップされたキャプチャ画像上の位置を示すデータも環境モデリングサーバ10へ送信する。
環境モデリングサーバ10は、端末装置30からの受信データに基づいて、被操作体の3次元計測データに対して幾何プリミティブをフィッティングし、フィッティングにより得られたデータを端末装置30へ送信する。フィッティングにより得られるデータは、幾何プリミティブの形状、位置、姿勢を指定するデータである。端末装置30は、環境モデリングサーバ10から供給されたデータに基づいて、図16に模式的に示すように、キャプチャ画像に対して幾何プリミティブが重畳された画像を合成表示する。
フィッティング実行部15は、幾何プリミティブ対(円柱プリミティブと矩形プリミティブの組)を活用して、構造物の3次元形状を示すデータを生成する。上述のように、端末装置30から環境モデリングサーバ10には、上述のデータ(キャプチャ画像データ、3次元計測データ、及び操作アイコンがドロップされたキャプチャ画像上の位置を示すデータ)が転送される。
フィッティング実行部15は、キャプチャ画像に対する操作アイコンのドロップ位置に基づいて、操作アイコンのドロップ位置周辺部分の奥行き情報(3次元計測データ)に対して幾何プリミティブをフィッティングする。
フィッティングの具体的方法は任意である。例えば、2次元画像及びその奥行き情報から構造物の輪郭及び表面形状が得られる。構造物の輪郭及び表面形状に対して円柱プリミティブを適応し、円柱プリミティブの特定データを得る。円柱プリミティブの特定データは、円柱プリミティブの初期位置姿勢を示すデータ、円柱プリミティブの形状を示すデータを含む。このようなフィッティングによって、円柱プリミティブの位置ベクトル(基準点から円柱プリミティブの中心点を結ぶベクトル)、円柱プリミティブの姿勢ベクトル(円柱の長手方向/延在方向を示すベクトル)が決定される。
次に、2次元画像及びその奥行き情報から、取っ手が取り付けられた面の表面形状が得られる。取っ手が取り付けられた面に対して矩形プリミティブを適応し、矩形プリミティブの特定データを得る。矩形プリミティブの特定データは、円柱からの距離を示すデータ、矩形の横幅を示すデータ、矩形の縦幅を示すデータを含む。このようにして、被操作体の幾何形状を特定することに十分なデータが取得される。上述の場合、円柱プリミティブの位置ベクトル、姿勢ベクトルを基準として、矩形プリミティブの位置、姿勢が把握される。矩形プリミティブは、鉛直方向に対して平行に配置されるように設定されている。
フィッティングの具体的な態様は任意である。例えば、3次元計測データから抽出される構造物の表面形状に対して幾何プリミティブを適応し、所定のアルゴリズムを活用して幾何プリミティブの形状、位置、姿勢の収束点を求める。これによって、構造物に対してフィットした状態の幾何プリミティブの形状、位置、姿勢を算出することができる。
次に、フィッティング結果を表示する(S105)。具体的には、環境モデリングサーバ10によるフィッティングにより得られた上述のデータは、端末装置30に転送され、端末装置30によって処理される。これによって、キャプチャ画像に対して幾何プリミティブが重畳された画像が合成表示される。
具体的には、次のとおりである。環境モデリングサーバ10のフィッティング実行部15で生成されたデータは、端末装置30の表示画像生成部33に転送される。表示画像生成部33は、仮想画像生成部33bに対して、受信データに基づいて、円柱プリミティブと矩形プリミティブが表示された仮想画像を生成させる。表示画像生成部33は、合成画像生成部33cに対して、キャプチャ画像に対して仮想画像が付加された画像を合成させる。これによって、図16に示すように、構造物(取っ手91a)に対して円柱プリミティブと矩形プリミティブが重畳された画像が表示される。
次に、フィッティングが成功したか否かを判断する(S106)。具体的には、ユーザーは、端末装置30に表示されたフィッティング状態が適当なものか否かを判断し、その判断結果を端末装置30に入力する。図16に模式的に示すように、端末装置30の表示部36には、OKアイコン、NGアイコンが表示される。ユーザーは、いずれかのアイコンを選択することによって、フィッティングOK又はNGの判断結果を端末装置30に入力する。フィッティングNGの場合、ステップS100に戻り、キャプチャ対象の構造物を再セットして、同様の作業を実行する。
フィッティングOKの場合、操作タグを記憶する(S107)。具体的には、端末装置30は、操作タグの記憶を指示する信号を環境モデリングサーバ10に送信する。操作タグ生成部14は、この信号に応じて、所定のデータ構造を有する操作タグを生成する(図19を用いて後述する)。次に、制御部12は、生成された操作タグを操作タグデータベース13に対して格納処理する。
図19(a)に示すように、操作タグは、ID、基準位置、操作モデル、固有パラメータから構成される。IDは、各操作タグを識別すための識別値である。基準位置は、操作タグの基準位置を示す(基準位置は、例えば、取っ手の中心、すなわち、円柱プリミティブの中心等の操作モデルの代表点とする)。操作モデルは、図18に模式的に示した操作アイコンに対応し、構造物に対して作業ロボット40が成すべき操作内容の分類を示す。固有パラメータは、図19(a)とは別のテーブルに格納されている。固有パラメータには、関連付けられたテーブルを指定するポインタがセットされている。
図19(a)に示すポインタPO1が示すテーブル内容を図19(b)に示す。図19(b)に示すように、固有パラメータは、幾何プリミティブ情報、操作モデル情報を含む。幾何プリミティブ情報は、円柱プリミティブの情報、矩形プリミティブの情報を含む。円柱プリミティブには、その特定データ(位置ベクトル、姿勢ベクトル、円柱の直径、円柱の長さ)が関連づけられている。矩形プリミティブに対しては、円柱プリミティブからの距離、縦幅、横幅が関連づけられている。
操作モデルは、被操作体に対して作業ロボット40が成すべき操作内容を定義する情報である。図13乃至図17に示す例では、作業ロボット40が取っ手に対して成す操作は、取っ手を引く又は戻す作業である。操作モデル情報は、そのような操作の指定に必要なデータから構成される。好適には、軌道と操作パラメータによって、作業ロボット40の操作内容が定義される。軌道は、初期位置と引き出しベクトルとによって定義される。操作パラメータは、最大操作力により定義される。作業ロボット40による操作動作は、操作モデルに規定されることになる。なお、操作モデルが示す操作内容は、操作モデルの種別により定まるものである。ここでは、操作モデルの種別指定から、所定の操作内容が特定されるものとする。
図19に示したデータは、図20に模式的に表現することが可能である。操作タグの基準位置は、T1に対応する。円柱プリミティブの直径cd、長さdl、矩形プリミティブの縦幅ra、横幅rbは、図20に示すとおりである。円柱プリミティブからの矩形プリミティブの間隔r1も、図20に示すとおりである。円柱プリミティブの位置ベクトルは、例えば、空間内における操作タグの基準位置からみた円柱の中心(幾何的中心)により指定される。なお、円柱プリミティブの位置、姿勢の特定方法は任意であり、この例にかぎられるべきものではない。操作モデルの軌道の初期位置は、点SPに示すとおりであり、終点位置は、点EPに示すとおりである。軌道の初期位置及び終点位置は、基準位置からみた座標値により示される。初期位置SPと終点位置EPとを結んだベクトルL1は、被操作体の操作方向を示す。操作の最大操作力は、被操作体の重量に応じて適宜設定されるべきものである。
次に、データベースに登録された操作タグアイコンを表示する(S108)。端末装置30は、図17に模式的に示すように、幾何プリミティブの表示を停止し、構造物に対して操作タグが割り当てられていることを示す操作タグアイコンを表示する。その後、適宜、ステップS100に戻り、他の被操作体に対する操作タグのセット動作が繰り返される。
制御部12は、操作タグデータベース13への操作タグの登録後、操作タグの位置を示すデータを端末装置30に転送する。表示画像生成部33は、仮想画像生成部33bに対して、操作タグの位置を示すデータから特定される位置に操作タグアイコンが配置された画像を生成させる。表示画像生成部33は、合成画像生成部33cに対して、操作タグアイコンが表示された画像をキャプチャ画像に対して合成処理させる。表示部36は、合成画像生成部33cにより生成された合成画像を表示する。
なお、上述の場合、円柱プリミティブと、矩形プリミティブとを用いて、構造物に対する幾何プリミティブの適応を実行したが、被操作体に対して適応される幾何プリミティブの種類は任意である。
図21(a)は、被操作体がボタンの場合を示す。この場合には、円柱プリミティブを用いずに、矩形プリミティブのみを用いる。同図に模式的に示すように、操作の始点/終点、操作ベクトル等によって、操作動作が定義される。
図21(b)は、被操作体が扉の場合を示す。この場合には、上記例と同様、円柱プリミティブと矩形プリミティブを扉に対して適応させる。被操作体が異なるため、円柱プリミティブの姿勢は、上記例とは異なるように設定される。また、操作動作も、異なるように定義される。
図22のフローチャートを参照して、上述のように設定した操作タグのプロパティ―変更手順について説明する。図23乃至図26も併せて参照して説明する。操作タグのプロパティ―変更とは、操作タグから特定される操作モデルの具体値等を変更することを意味する。操作モデルの具体的値は、指定の手間を省くため、操作タグの生成時に適当なデフォルト値が割り当てられているが、プロパティ―変更によって、個別に設定内容を修正し、所定の構造物に対する操作内容を最適化することが可能になる。
まず、被操作体を表示する(S200)。この動作は、上述のS100と同様である。
次に、位置姿勢データの取得/送信を実行する(S201)。具体的には、端末装置30は、自身の現在位置を示す情報を取得し、これを環境モデリングサーバ10へ送信する。
次に、操作タグのダウンロードが実行される(S202)。具体的には、環境モデリングサーバ10は、受信した位置データの近傍に位置する操作タグを特定し、特定された操作タグを端末装置30に送信する。好適には、環境モデリングサーバ10の制御部12は、操作タグデータベース13に対して、端末装置30から受信した位置データの所定範囲内に存在する操作タグを出力させる。制御部12は、操作タグデータベース13から出力された操作タグを、端末装置30に対して通信部11を介して送信する。なお、図19に示したデータ構造を有するデータを単に"操作タグ"と簡略説明する場合があることは上述したとおりである。
次に、合成画像を生成する(S203)。端末装置30は、まず、環境モデリングサーバ10から受信した操作タグ(ID、基準位置、操作モデル、固有パラメータ(各プリミティブの位置姿勢パラメータ、形状パラメータ、操作モデルの内容))を一時的にバッファする。制御部32は、操作タグの位置を示す位置データを表示画像生成部33に供給する。表示画像生成部33は、仮想画像生成部33bに対して、その位置データが示す位置に操作タグアイコンが配置された仮想画像を生成するように指示する。表示画像生成部33は、合成画像生成部33cに対して、現在撮影表示される画像と、仮想画像生成部33bにより生成される仮想画像とに基づいて合成画像を生成することを指示する。表示部36は、合成画像生成部33cにより合成された合成画像を表示する。このようにして、図23に示すように、端末装置30によりユーザーに提示される現在ビューに対して操作タグアイコンが重畳表示される。
次に、操作タグアイコンの長押し有りか否かを判定する(S204)。端末装置30は、ユーザーによるタッチパネルの操作によって、操作タグアイコンがユーザーによって所定時間以上押されたか否かを検知する。例えば、2秒〜3秒程度の時間を閾値として用いる。詳細には、制御部32は、指示入力部37の入力に基づいて、操作タグアイコンが表示されている箇所に対してユーザーの指が所定時間以上配置されたか否かを判定する。
操作タグアイコンの長押し有りの場合、操作タグのプロパティ表示が実行される(S205)。具体的には、端末装置30は、所定時間以上、ユーザーの指が操作タグアイコン上に配置されたことを検出すると、選択された操作タグに対して関連付けられているプロパティ―を表示する。制御部32は、長押しの検出に応じて、表示画像生成部33に対してプロパティ―画面が付加された画像の生成を指示する。表示画像生成部33は、メニュー生成部33aに対してプロパティ―画面の生成を指示し、合成画像生成部33cに対して現在の撮影画像に対してプロパティ―画面を付加した画像を生成させる。
プロパティ―として表示される具体的情報は、好適には、操作モデルの内容又はこれから算出される情報である。例えば、図24に示すように、図19に示した固有パラメータ(軌道:初期位置;終点位置)から算出される開き幅が表示される。また、図19に示した操作モデルの固有パラメータ(最大操作力)が表示される。
次に、プロパティ情報の変更指示が入力される(S206)。例えば、端末装置30は、最大操作力の表示箇所に対してユーザーの指がタッチしたことを検出すると、図25に示すような値変更画面をユーザーに提示する。具体的には、端末装置30は、最大操作力の表示枠を点灯表示し、かつ、値を入力するためのキーボードを表示する。これらの表示制御は、例えば、制御部32が、表示画像生成部33に対して適切な指令を与えることで実行される。一例としては、表示画像生成部33は、メニュー生成部33aに対してキーボード表示の生成を指示し、合成画像生成部33cに対してキーボード表示を現在ビューに対して組み込ませることを指示する。これによって、パラメータ変更が入力可能な状態となる。ユーザーは、表示されたキーボードをタッチして、最大操作力の値を変更する。変更値は、制御部32によって一時的に保持される。ユーザーによるキーボードの入力に応じて、表示部36の画面は、図25から図26に示す表示となる。
次に、変更値の反映準備を実行する(S207)。具体的には、端末装置30は、操作タグID、及び変更値等を環境モデリングサーバ10に対して送信する。環境モデリングサーバ10は、端末装置30からの受信データに基づいて、新たな変更値を操作タグデータベース13に格納等する。なお、実際の書き換え処理は、更新の確定を待って行われる。従って、変更値は、一時的に、データベースの空き容量にバッファされることになる。
次に、変更の確認/実行が行われる(S208)。具体的には、環境モデリングサーバ10は、端末装置30に対して更新準備完了を示す信号を送信する。端末装置30は、環境モデリングサーバ10からの信号受信に応じて、ユーザーによって入力された更新値をユーザーに対して表示する。例えば、端末装置30は、変更がなされた図26に示す枠を点灯表示する。更新値が正しければ、ユーザーは、操作プロパティ―の表示部分以外の部分を指タッチする。これによって、更新が確定される。具体的には、制御部12は、操作プロパティ―の表示部分以外の部分を指タッチの検出を指示入力部37の出力から検知し、更新値が承認されたことを環境モデリングサーバ10に対して通知する。環境モデリングサーバ10は、この通知に応じて、実際に値を書き換える処理を実行する。このようにしてプロパティ―値(本例では、図19(b)に示した最大操作力)が更新される。更新内容に誤りがある場合、ユーザーは、再度、変更作業を繰り返すことになる。
上述の作業を繰り返すことによって、図27に模式的に示すように、作業ロボット40の導入空間に配置されている構造物に対して仮想的に操作タグが付与される。
図28のフローチャートを参照して、環境モデリングサーバ10の操作タグデータベース13に格納された操作タグを活用して作業ロボット40に対して操作指示する手順について説明する。図29乃至図33も併せて参照して説明する。なお、図29乃至図33に示す画像は、端末装置30に表示されるものであるが、作業ロボット40によって取得された画像に基づいて生成された画像である。図28に示すフローチャートは、導入空間に対して作業ロボット40が配置され、ユーザーが作業ロボット40の取得画像を端末装置30を介して見ている状態が前提となっている。なお、これらの前提事項は、あくまで本発明の一態様であり、この開示に基づいて本願発明の技術的範囲が狭く解釈されることは許されない。
まず、被操作体の表示が実行される(S300)。作業ロボット40が取得した映像は、無線ネットワーク20を介して端末装置30へ転送され、端末装置30によって表示される。図9に模式的に示したように、作業ロボット40は、内蔵カメラで取得した画像を通信回線を介して端末装置30に対して供給可能に構成されている。なお、作業ロボット40と端末装置30間のデータ転送は、環境モデリングサーバ10を介在して実行されても良い。
次に、位置姿勢データの取得/送信が実行される(S301)。作業ロボット40は、作業ロボット40自身の現在位置を示す位置姿勢データを取得し、これを環境モデリングサーバ10に対して送信する。環境モデリングサーバ10は、作業ロボット40の現在位置に基づいて、その周囲に存在する操作タグを特定する。
次に、操作タグのダウンロードが実行される(S302)。環境モデリングサーバ10は、無線ネットワーク20を介して、特定した操作タグを端末装置30へ送信する。
次に、合成画像の生成をする(S303)。端末装置30は、環境モデリングサーバ10からダウンロードした操作タグに基づいて、図29に示すように、作業ロボット40から転送される現在ビューに対して操作タグアイコンが組み込まれたビューを生成して表示する(図29参照)。
次に、操作タグアイコンの選択の有無が判断される(S304)。端末装置30は、指示入力部37の出力に基づいて、操作タグアイコンの表示部分に対してユーザーの指がタッチしたか否かを判定する。
操作タグアイコンの表示部分に対してユーザーの指がタッチすると、操作メニューが表示される(S305)。端末装置30は、ユーザーによる指タッチに応じて操作メニューを表示する(図30参照)。端末装置30によって表示される操作メニューの内容は、ユーザーによって選択された操作タグに関連付けられた操作モデルの内容に応じたものである。取っ手91aに割り当てられた動作モデルは、図18(a)に示すモデルであり、これに対応した情報(掴む/離す、開ける/閉じる)が表示される。
次に、操作内容が選択される(S306)。ユーザーは、表示された操作メニューから所望の動作内容を提示する領域をタッチする。例えば、ユーザーは、表示された操作メニューのうち掴むという操作アイコンを指定する(図30参照)。これに応じて、端末装置30は、ユーザーにより選択された動作内容を検出する。
次に、操作内容が指示される(S307)。端末装置30は、ユーザーにより入力された指示内容を、無線ネットワーク20を介して作業ロボット40へ送信する。端末装置30から作業ロボット40へのデータ転送は、環境モデリングサーバ10を介して実行されても良い点は上述したとおりである。
次に、操作内容が実行される(S308)。作業ロボット40は、受信した操作指示に応じた操作内容を実行する。作業ロボット40は、掴むという指令に応じて、作業ロボット40の目標姿勢を算出し、現在姿勢を目標姿勢へ変化させる。これによって、図31に示すように、作業ロボット40が取っ手91aを把持した状態となる。
作業ロボット40の姿勢変化制御は、制御部42が、駆動制御部45を制御することによって実行される。駆動制御部45は、制御部42から伝達される制御指示に応じて、アクチュエータ等を実際に駆動制御する。
次に、端末装置30は、次操作指示有りか否かを判断する(S309)。端末装置30は、ユーザーによる次操作指示が有る場合、ステップS306〜S308を再度繰り返す。
次サイクルにおいて、操作指示の選択が実行される(S306)。図31に示す状態が端末装置30に表示されると、ユーザーは、開ける/閉じるという操作アイコンを選択する。端末装置30は、図33に模式的に示すように、開ける/閉じる動作を定義づけるためのベクトルをユーザーに対して提示する。ユーザーは、取っ手91aをどの程度まで開くのかを指示するため、操作タグが表示された部分からベクトル上を指でなぞる。取っ手91aの移動が停止する位置において、ユーザーは、タッチパネル上から指を離す。これによって、端末装置30には、取っ手91aの移動の終点位置を検出することができる。
次に、端末装置30から作業ロボット40へ操作内容が転送される。次に、作業ロボット40は、受信した指示内容に応じた作業を実行する。このようなサイクルを繰り返すことによって、多段階的に、タンスの引き出しを開ける作業が実行される。また、ユーザがタッチパネルから指を離す前のドラッグ操作を逐一作業ロボットへ転送することで連続的に引き出しを開ける作業を実行させることもできる。
上述の説明では、円柱プリミティブと矩形プリミティブを活用して構造物の3次元形状を把握したが、幾何プリミティブの種類は任意である。図34に幾何プリミティブ例を示す。幾何プリミティブの具体的な形状は任意であり、図34(a)〜(f)に例示するような幾何形状を採用することができる。図34(a)は、点プリミティブである。図34(b)は、線プリミティブである。図34(c)は、矩形プリミティブである。図34(d)は、円柱プリミティブである。図34(e)は、立体プリミティブである。図34(f)は、2面プリミティブである。
上述の説明から明らかなように、本実施形態では、各構造物に対して仮想的に操作タグが付与され、各構造物に対して成す作業ロボットの操作内容は、操作対象の構造物に対して事前設定された操作タグに基づいて実行される。操作タグは、被操作体の位置を示すデータ、その被操作体の3次元計測により取得した立体画像に対して幾何プリミティブを適応させて得られるデータ、およびその被操作体に対して成すべき操作内容を示すデータを含む。操作タグの設定自体は、システムを購入したユーザー側にて任意に行うことができるため、作業ロボットが導入される環境のモデル化の負担を大きく低減することが可能になる。また、幾何プリミティブの適応によって操作対象物の幾何特性を検知することができるため、大きさ、形状、場所等の異なる様々な構造物に対して同種の操作を実現可能になる。
実施の形態2
図35乃至図40を参照して本発明の実施の形態2について説明する。本実施形態では、実施の形態1の手順に加えて、操作タグが付与される構造物の周辺に存在する幾何特徴(特徴)を抽出して、この幾何特徴を空間的に特定するデータを操作タグ内に記憶する。操作タグは、登録された幾何特徴を空間的に特定するデータ(以下、特徴特定データと呼ぶ場合がある)を包含する。その後、同構造物に対して操作タグを重畳表示する際、過去に登録された幾何特徴を、現在取得した幾何特徴に対してフィッティングする。操作タグ内では、登録済みの位置データの相対的な関係が記憶されているため、過去に登録された幾何特徴に対して現在の幾何特徴をフィッティングすることで、今、表示すべき情報の表示位置が定まる。例えば、操作タグを重畳表示する際に、位置データ取得時の誤差(端末装置30の位置姿勢等)や表示時の誤差(端末装置或いはロボットの位置姿勢等)によって操作対象と操作タグの表示にずれが生じる。しかし、ある構造物に対して付与される操作タグ内に、その構造物の周囲にある幾何特徴の空間位置を盛り込むことによって、表示されるべき情報の位置を修正した状態でその情報を表示することが可能になる。また、操作によって可動する構造物(半開きの扉等)のように、その軌道上ではあるがデータ記録時とは異なる場所に位置することもある。そのような場合、記録されたタグ位置から軌道に沿って、幾何学特徴の探索範囲を広げることで効率良くフィッティングを実施可能となる。これによって、より的確な表示をユーザーに対して提示することが可能になる。また、構造物の位置の変動を吸収することが可能になる。なお、抽出される特徴の種類は任意であり、幾何的な特徴に限らず、周囲に存在する物の色等であっても構わない。
図35に示すように、環境モデリングサーバ10は、周辺特徴抽出部16、特徴フィッティング実行部17を有する。周辺特徴抽出部16は、図36に模式的に示すように、キャプチャ画像に対して画像処理によって、取っ手91aと取っ手91aの取り付け面との間にある任意の種類と数の幾何特徴SL1〜SL4を抽出する。周辺特徴抽出部16は、図37に模式的に示すように、キャプチャ画像内において抽出された幾何特徴位置を操作タグデータベースに格納する。幾何特徴SL1、SL3は、円柱面によって位置、姿勢、直径、及び長さが特定される。幾何特徴SL2、SL4は、円弧エッジによって、中心、半径、傾き、始点終点角度が特定される。なお、操作タグには、特徴画像として、特徴的な画像部分のピクセルデータも格納可能に構成されている。このようにして過去の時点において、抽出された特徴の空間的な位置が操作タグ内に記憶される。
その後、周辺特徴抽出部16は、同構造物に対して操作タグを表示させる際、同様に、同構造物の周囲にある幾何特徴を抽出する。特徴フィッティング実行部17は、今回抽出された幾何特徴に対して過去の幾何特徴をフィッティングさせる。これによって、操作タグに格納された他の位置データ(図19(a)に示す基準位置、図19(b)に示される初期位置等)の表示位置を実際の操作対象物に対してより精度良く位置決め可能となる。これによって、操作タグ内に登録された位置データの誤差や端末或いはロボットの位置姿勢計測誤差等に依存することなく、適切な表示位置にて情報をユーザーに提示することが可能になる。
図38に示すように、S106のステップによりフィッティングOKが判定されると、上述のように、特徴の抽出をする(S109)。次に、上述のように、抽出された特徴の空間位置を特定するためのデータも含めて操作タグを記憶する(S107)。
図39に示すように、端末装置30に対して操作タグ内に包含される位置データに基づいた情報を提示する場合、まず、周辺の幾何特徴の抽出を行う(S201)。次に、現在ビューに表示されるべき操作タグを検索する(S202)。次に、検索により得られた操作タグの幾何特徴を、S201によって得られた幾何特徴に対してフィッティングする(S203)。次に、フィッティングにより特定される位置姿勢と操作タグの幾何プリミティブとの相対関係の記録データから操作タグの幾何プリミティブの位置姿勢を修正して情報を表示する(S204)。このようにして、新旧の特徴の空間的な位置のフィッティングから情報の表示位置精度をより高めることができる。これにより、適当な位置に情報を提示することが可能になる。フィッティングから得られる位置に基づいて、データベースにある操作タグ内の位置データの値を修正しても良い。このような修正作業を繰り返すことによって、操作タグ内の位置データの精度を高めることが可能になる。
図40に模式的に示すように、被操作体が図18(d)に示すものであれば、その周囲に存在する枠のエッジを特徴点として抽出するとよい。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、端末装置30の機能と作業ロボット40の機能とを部分的に共通化しても良い。端末装置30の具体的な形状は任意である。