(57)【要約】【課題】移動経路に自由度を持たせながらも、ユーザによる移動位置の指定操作が煩雑になるのを防止することが可能なロボット操作装置等を提供する。【解決手段】ロボットに動作指示を与え、ロボットを動作させるためのロボット操作装置であって、ユーザが操作をする操作入力部１０２と、操作入力部１０２の操作によってユーザから入力された動作指示の履歴を蓄積するベースポイントデータベース１０５と、ベースポイントデータべース１０５に蓄積された動作指示の履歴に基づいてロボットが次に動作する動作候補を複数生成する動作候補生成部１０８ｂと、動作候補生成部１０８ｂで生成された複数の動作候補をユーザにより選択可能に提示する情報提示部１０３とを備えたものである。【選択図】図２
2010079654.tif 000002
【特許請求の範囲】
【請求項１】
ロボットに動作指示を与え、ロボットを動作させるためのロボット操作装置であって、
ユーザが操作をする入力部と、
該入力部の操作によってユーザから入力された動作指示の履歴を蓄積するデータベースと、
該データべースに蓄積された動作指示の履歴に基づいて前記ロボットが次に動作する動作候補を複数生成する動作候補生成部と、
該動作候補生成部で生成された複数の動作候補をユーザにより選択可能に提示する情報提示部と
を備えたことを特徴とするロボット操作装置。
【請求項２】
動作指示の履歴は、ロボットが移動する際の目標とする位置を示す目標位置の履歴及び／又は前記入力部を介して前記ユーザから動作方向の変更が指示されたときの前記ロボットの位置の履歴であることを特徴とする請求項１記載のロボット操作装置。
【請求項３】
前記データベースは更に、前記入力部から新たな動作指示が入力されない場合の前記ロボットの現在位置を、ロボットの滞在位置を示す位置データとして蓄積し、及び／又は、ユーザにより予め指定された指定位置を位置データとして蓄積し、前記動作候補生成部は、前記データベースに蓄積された前記複数の位置データに基づいて前記ロボットが次に動作する動作候補を生成することを特徴とする請求項１又は請求項２記載のロボット操作装置。
【請求項４】
前記動作候補生成部は、前記ロボットの現在位置を示す現在位置データと前記データベースに蓄積された前記複数の位置データとに基づいて前記動作候補を生成することを特徴とする請求項３記載のロボット操作装置。
【請求項５】
前記動作候補生成部は、前記データベースに記憶された複数の位置データのうち、前記ロボットの現在位置に近い順に所定数選択した複数の位置データと、前記ロボットの現在位置とに基づいて前記動作候補を生成することを特徴とする請求項３記載のロボット操作装置。
【請求項６】
前記動作候補生成部は、前記データベースに蓄積された前記複数の位置データが示す複数の位置のそれぞれの位置と位置との間の幾何学的な関係から前記動作候補を生成することを特徴とする請求項２乃至請求項５の何れかに記載のロボット操作装置。
【請求項７】
前記動作候補生成部は、前記データベースに蓄積された前記複数の位置データのうちの２点間を結ぶ直線に平行な方向を動作方向とした動作候補を生成することを特徴とする請求項３乃至請求項６の何れかに記載のロボット操作装置。
【請求項８】
前記動作候補生成部は、前記データベースに蓄積された前記複数の位置データのうちの２点間を結ぶ直線に垂直な方向を動作方向とした動作候補を生成することを特徴とする請求項３乃至請求項６の何れかに記載のロボット操作装置。
【請求項９】
請求項１乃至請求項８の何れかのロボット操作装置と、該ロボット操作装置とネットワークを介して接続され、前記ネットワーク及び前記ロボット操作装置を介して前記ロボットに動作指示を送信して前記ロボットを遠隔操作する遠隔操作クライアントと、前記ネットワークに接続されたサーバとを備え、
前記ロボット操作装置の前記データベース及び前記動作候補生成部を、前記ロボット操作装置に代えて前記サーバに設け、
前記ロボット操作装置及び前記遠隔操作クライアントのそれぞれからの前記ロボットに対する動作指示の履歴を前記サーバに設けた前記データベースに蓄積するようにし、該データベースに蓄積された動作指示の履歴に基づいて前記サーバに設けた前記動作候補生成部が前記ロボットが次に動作する動作候補を生成し、前記ロボット操作装置及び前記遠隔操作クライアントに送信するようにしたことを特徴とするロボット操作システム。
【請求項１０】
前記ロボット操作装置は、前記遠隔操作クライアントから前記ネットワークを介して前記ロボットに対する動作指示を受信すると、該動作指示に基づき前記ロボットを実際に動作させる前に、前記動作指示に基づく動作予告を、予め設定された一定時間が経過するまで自装置の前記情報提示部に表示し、その間に自装置の前記入力部から別の動作指示が入力されなければ、前記遠隔操作クライアントからの前記動作指示に基づき前記ロボットを動作させ、一方、自装置の前記入力部から別の動作指示が入力されれば、該動作指示を優先して前記ロボットに動作させることを特徴とする請求項９記載のロボット操作システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに動作指示を与えて動作させるためのロボット操作装置及びロボット操作システムに関するものある。
【背景技術】
【０００２】
人々の日常生活支援のためのロボティクス・メカトロニクス技術の応用や実用化が期待されており、人と同じ生活空間で動作するロボットが増加すると考えられる。人間と関わりながら動作するロボットは、人間に対して自分自身の動作を予告的に表示する必要がある。そこで、従来より、レーザーなどを用いてロボットが次に動く方向を提示するロボット操作システムが存在した（例えば、特許文献１参照）。
【０００３】
また、動作メニューをロボットの前方の床面上に投影表示し、その投影表示部分にユーザが足を位置させる等して所望のメニュー項目を指定すると、その位置に対応する項目の動作を実行するようにした作動装置があった（例えば、特許文献２参照）。
【０００４】
また、従来のロボットは、予め複数の教示点を設定しておき、その教示点を順次通過する動作（先行技術１という）や、ジョイスティックのような入力操作手段を用い、ロボットの動作を見ながら入力操作手段を操作して、所望の位置に移動させるなどの動作（先行技術２という）を行うものが一般的であった。
【特許文献１】特開２００７−３１０５６３号公報（第４頁）
【特許文献２】特開２００８−６５５１号公報（第７頁、第８頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１，２及び先行技術１では、ロボットは、予めプログラミングされた決まった動作を行うものであり、移動経路が固定のものになってしまい自由度が無く、その場の状況に応じて移動経路を変更することは困難であった。また、先行技術２では、ユーザが、その場の状況に応じて移動位置を任意に細かく指定することが可能であるが、逆に移動位置の指定操作が煩雑になってしまうという問題があった。
【０００６】
本発明は、このような点に鑑みなされたもので、移動経路に自由度を持たせながらも、ユーザによる移動位置の指定操作が煩雑になるのを防止することが可能なロボット操作装置及びロボット操作システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るロボット操作装置は、ロボットに動作指示を与え、ロボットを動作させるためのロボット操作装置であって、ユーザが操作をする入力部と、入力部の操作によってユーザから入力された動作指示の履歴を蓄積するデータベースと、データべースに蓄積された動作指示の履歴に基づいてロボットが次に動作する動作候補を複数生成する動作候補生成部と、動作候補生成部で生成された複数の動作候補をユーザにより選択可能に提示する情報提示部とを備えたものである。
【発明の効果】
【０００８】
本発明によれば、動作指示の履歴に基づいてロボットが次に動作する動作候補を複数生成し、ユーザにより選択可能に提示するので、ロボットの移動経路に自由度を持たせながらも、ユーザによる移動位置の指定操作が煩雑になるのを防止することが可能なロボット操作装置を得ることができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態を図を参照しながら説明する。なお、各図中、同一部分には同一符号を付すものとする。なお、本実施の形態では、ビデオ会議システムに本発明のロボット操作装置を組み込んだロボットを適用した場合を例に説明する。
【００１０】
実施の形態１．
図１は、本発明の実施の形態１のロボット操作装置を組み込んだロボット１００の利用形態の模式図で、ここでは、テレビ会議システムに利用した例を示している。図１には自会議室を示しており、ネットワークを介して相手会議室との間で映像及び音声をやりとりする通常のテレビ会議システムが構築されているものとする。
この例では、自会議室内のテーブルＴＢに、５名の参加者ａ〜ｅが着席している。そして、テーブルＴＢ上には本実施の形態１のロボット操作装置を組み込んだロボット１００が配置されており、参加者ａ〜ｅからの指示によりテーブルＴＢ上を動き回る。ロボット１００は、撮影手段としてのカメラ１０６（図２参照）を搭載しており、参加者の顔を撮影したり、例えばディスプレイやホワイトボードなどの資料１０や資料２０を撮影する。撮影した映像は、相手会議室側へと送信される。
【００１１】
図２は、図１のロボット１００の構成を示すブロック図である。
ロボット１００は、駆動部１０１、操作入力部１０２、情報提示部１０３、位置検出部１０４、ベースポイントデータベース１０５、撮影手段としてのカメラ１０６、遠隔地の相手会議室と通信を行うための通信部１０７及びロボット１００全体を制御する制御部１０８を備えている。
【００１２】
駆動部１０１は、例えば車輪や、脚部などロボット１００自身を物理空間で移動させるための機能部である。
【００１３】
操作入力部１０２は、参加者からの入力を受け付け、その入力に基づく操作信号を制御部１０８に出力する機能部である。この操作入力部１０２の操作によりロボット１００に対して動作指示を与えることができる。操作入力部１０２は、例えば、ロボット１００の本体に設けた入力ボタン等で構成できるが、これに限られたものではなく、動作指示を入力できるものであればよい。
【００１４】
位置検出部１０４は、ロボット１００の現在位置を検出する機能部である。例えば、ロボット１００自体がレーザレンジファインダのような装置を備える構成としても良いし、ロボット１００が動作する空間に三次元計測装置を配置して、ロボット１００の位置を計測して取得するような構成としてもよい。ここでの位置は多変数のベクトルとして表され、二次元座標だけでなく、ロボット１００が向いている方向（すなわち、カメラ１０６の撮影方向）の情報も含むものとする。ロボット１００が向いている方向はロボット１００が存在する点を原点とした長さが１になるように調整された方向ベクトルとして表現される。
【００１５】
図３は、方向ベクトルの表現の一例を示す図である。
ロボット１００が図上部を向いているときの状態をベクトル（０，１）で表すと、時計回りに９０度回転したときの状態はベクトル（１，０）として表される。
【００１６】
情報提示部１０３は、後述の動作候補生成部１０８ｂで生成された動作候補を、参加者が確認できるように提示する機能部である。具体的な提示方法としては、例えば、図１に示されるようにロボット１００が載置されたテーブルＴＢ上に、動作方向を示す矢印１、２、３を平面状にプロジェクタで投影するなどの方法がある。この方法によれば、参加者全員に動作候補を提示することが可能である。ここで、動作候補とは、動作方向と動作距離とから構成されている。
【００１７】
情報提示部１０３では、上記の動作候補の表示の他、ロボット１００の次の動作意図を、周囲の人間に動作予告する表示も行う。この予告表示も、本実施の形態１では、動作候補の表示と同様、プロジェクタによる投影で矢印で表現するものとして、以下の説明を行う。なお、プロジェクタを用いた予告表示は従来公知の技術を使用する。予告表示の公知文献としては、例えば、「人間共存型ロボットの遠隔操作に関する研究（第３４報）−プロジェクタを用いた動作予告機能付き移動ロボットの開発と評価−」，[No.06-04]Proceedings of the 2006 JSME Conference on Robotics and Mechatronics,Waseda,Japan,May 26-28,2006,2P1-A37(1)-2P1-A37(4)がある。なお、このようなプロジェクタによる投影による表示に限られず、ディスプレイ上に表示するなどとしてもよい。
【００１８】
ベースポイントデータベース１０５は、ベースポイント管理部１０８ａによって取得されたベースポイントや、予め参加者により設定されたベースポイント等、複数のベースポイントを蓄積する。ここで、ベースポイントとは、参加者により、操作入力部１０２を介して指示された目標位置や、参加者からロボット１００の動作方向の変更が指示されたときのロボットの位置や、ロボットの滞在位置、あるいは参加者によって直接ベースポイントとすると予め指定された位置等が該当する。なお、各位置は、例えば、ロボット１００が平面上を移動するようなシステム構成の場合には平面上の二次元座標として表現される。実施の形態１では、図１のテーブル上のＡ〜Ｅ点、すなわち参加者ａ〜ｅの顔を撮影できる撮影ポイントと、資料１０及び資料１０のそれぞれの撮影ポイントがベースポイントとして予め登録されているものとする。ベースポイントデータベース１０５に記憶されたベースポイントは、後に説明する動作候補作成プロセスで使用される。
【００１９】
図４は、ベースポイントデータベース１０５の構造の一例を示す図である。
ベースポイントデータベース１０５には、ＩＤと、座標値と、更新時間と、タイプと、ユーザとが記録されている。「ＩＤ」は、ベースポイントを一意に定めるＩＤである。座標値は、ベースポイントの座標値であり、ここでは二次元平面上の座標値（ｘ、ｙ）を示す。「更新時間」は、このベースポイントがベースポイントデータベース１０５内に格納された時間、又はデータが更新された時間である。「タイプ」は、このベースポイントが作成された要因、すなわちユーザのロボット１００に対する操作入力で作成されたか、又は、予め登録されたかの区別を示すもので、前者は「入力」、後者は「指定」として記録される。「ユーザ」とは、このデータを作成した参加者を識別するためのＩＤを示す。
【００２０】
制御部１０８は、ロボット１００システム全体の制御を行う処理部で、操作入力部１０２から入力された参加者からの動作指示に基づき、ロボット１００を実際に動作させるために必要な指令を駆動部１０１に与える処理や、後述の図５〜図７のフローチャートの処理を行う。制御部１０８は、例えばマイクロコンピュータで構成され、ＣＰＵ、ＲＡＭ及びＲＯＭ等を備えている。そして、ＲＯＭに記憶されたプログラムをＣＰＵが実行することにより、ベースポイント管理部１０８ａ及び動作候補生成部１０８ｂが機能的に構成されている。
【００２１】
ベースポイント管理部１０８ａは、ベースポイントデータベース１０５及び位置検出部１０４と通信し、ベースポイントを生成することを特徴とする機能部である。ここで生成されたベースポイントは、ベースポイントデータベース１０５に格納される。
【００２２】
動作候補生成部１０８ｂは、位置検出部１０４で検出したロボット１００の現在位置データと、ベースポイントデータベース１０５とに基づいて、ロボット１００に次の行わせる動作候補を複数作成することを特徴とする機能部である。動作候補とは、上述したように動作方向と動作距離であり、動作候補の作成方法については後に詳述する。
【００２３】
以下、本実施の形態１の動作を説明する。
図５は、実施の形態１のロボット１００の動作の流れを示すフローチャートである。以下、ロボット１００はテーブルＴＢ上、つまり平面上を動作するものとし、位置情報は二次元座標で表されるものとして説明する。
電源が投入されてロボット１００の動作が開始されると、ロボット１００はまず、予め設定されたデフォルトの複数の動作候補を提示する（Ｓ１）。ここでは、図１に示すように、ロボット１００の前方に例えば、４５゜ずつ方向を異ならせた３つの矢印と、その矢印を特定する番号１〜３とを、動作候補として情報提示部１０３によりテーブルＴＢ上に投影表示するものとする。そして、参加者は、３つの矢印の何れかを選択する。選択方法としては、ロボット１００の操作入力部１０２から、矢印に対応する番号を入力するなどして選択する。なお、ここでは、矢印の何れかが選択された場合、予め設定された動作距離（例えば３０ｃｍ）だけ進むように構成されているものとする。
【００２４】
このように参加者から動作候補の何れかが選択されると（Ｓ２）、例えばプロジェクタを用いた投影などの方法によって、参加者からの選択に応じたロボット動作の予告表示を行う（Ｓ３）。また、制御部１０８は、駆動部１０１を制御して参加者の指示に従ったロボット１００の移動動作を開始させる（Ｓ４）。ここで、予告表示とは、上述したようにロボット１００の次の動作意図を周囲の人間に通知するための表示で、具体的にはロボット１００の動く方向、速度及び距離を、それぞれテーブルＴＢ上に投影表示した矢印の向き、幅及び長さで表現するものである。この予告表示は、ロボット１００が動作中、常に行うものとする。
【００２５】
参加者からの指示に従ったロボット動作が終了すると（Ｓ５）、制御部１０８は、位置検出部１０４からロボット１００の現在位置（ステップS２における参加者からの動作指示における目標位置に相当）を取得する（Ｓ６）。そして、ベースポイント管理部１０８ａが現在位置データをベースポイントデータベース１０５に追加する（Ｓ７）。既に同じ値がベースポイントデータベース１０５内に記録されている場合には、更新時間を更新する。そして、動作候補生成部１０８ｂは、ロボット１００の現在位置とベースポイントデータベース１０５に格納されている複数のベースポイントとに基づいて動作候補を複数生成し（Ｓ８）、生成した複数の動作候補を情報提示部１０３からテーブルＴＢ上に投影表示させる（Ｓ９）。動作候補生成部１０８ｂにおける動作候補の作成方法については、後に詳述する。
【００２６】
そして、動作候補の投影表示を確認した参加者によって何れかの動作候補が選択されると（Ｓ１０）、ステップＳ３に戻って同様の処理を繰り返す。動作候補が選択されない場合は、一定時間待った後（Ｓ１１）、ステップＳ６に戻り、ロボット１００の現在位置を取得する。動作候補が一定時間選択されない場合とは、すなわち、何らかの対象物を撮影するためにロボット１００が停止した位置（ロボット１００の滞在位置）に相当する。したがって、重要ポイントであるとみなしてベースポイントデータベース１０５に登録するようにしている。
【００２７】
ところで、ロボット１００の制御部１０８は、図５のフローチャートに従った制御を行っている間、参加者から別の動作指示が指示されるなどの割り込み指示があるかを常に監視している。次の図６は、割り込み処理のフローチャートである。
制御部１０８は、割り込み指示があるかを常に監視しており、割り込み指示があると（Ｓ２１）、ロボット１００の移動動作を停止させ（Ｓ２２）、全ての投影表示（動作候補の提示・予告表示）を停止させる（Ｓ２３）。そして、位置検出部１０４からロボット１００の現在位置を取得し、取得した現在位置データをベースポイントデータベース１０５に追加し、割り込み処理を終了する。割り込み処理終了後は、図５のフローチャートのステップＳ８の処理に移行する。
【００２８】
以上の図５の制御フローチャートの処理及び図６の割り込み処理により、ベースポイントデータベース１０５には、予め登録されたベースポイントの他、参加者からの動作指示に基づく目標位置や、ロボット１００が一定時間停止した位置（ロボット１００の滞在位置）、更には参加者から割り込みが指示された時のロボット１００の位置が新たにベースポイントとして登録されることになる。
【００２９】
以下、ベースポイントデータベース１０５を用いた動作候補の生成方法について、図７を用いて詳しく説明する。
図７は、動作候補の生成方法の流れを示すフローチャートである。
まず、ベースポイントデータベース１０５の中から、ロボット１００の現在位置との距離が小さい順に、少なくとも２個以上のベースポイントを選択する（Ｓ３１）。選択数は任意であるが、ここでは３個選択するものとする。そして、選択された３個のベースポイントから２個を選択したベースポイントの各組み合わせ毎に、次の図８に示すような線分データを作成する（Ｓ３２）。ここで、例えば図１のベースポイントＡ、Ｂ、Ｃを選択したとすると、各組み合わせは（Ａ，Ｂ）、（Ｂ，Ｃ）、（Ａ，Ｃ）の３通りとなる。
【００３０】
図８は、線分データの構造を示す図である。
線分データは、２個選択したベースポイントの一方を始点、他方を終点とし、そのそれぞれの座標値と、始点と終点間の距離と、始点と終点間を結ぶ線の傾きと、始点と終点間を結ぶ線に垂直な線分の傾きとで構成される。距離の計算方法には複数の候補が考えられるが、ここでは単純にユークリッド距離を用いるものとする。垂直な成分の傾きは、始点と終点間を結ぶ線に垂直な線分の傾き１と、その線分の方向とは１８０゜逆の方向の線分の傾き２との２つが登録される。「始点と終点間を結ぶ線の傾き」は、それぞれロボット１００の向いている向きと同様の方向ベクトルで表現される。線分データは、動作候補の作成、動作の予告表示などの際に使われる。
【００３１】
（線分データの作成方法）
図９は、線分データの作成方法の流れを示すフローチャートである。ベースポイントの各組み合わせ毎に線分データが作成されるが、ここでは、一つの組み合わせに対して行われる線分データの作成方法について図９を参照して説明する。
【００３２】
２つのベースポイントのうちの一方を始点とし、他方を終点とし、始点と終点とからベクトルの距離を計算する（Ｓ４１）。
具体的には始点が（ｐｘ１，ｐｙ１）、終点が（ｐｘ２，ｐｙ２）で表されるときに、
Ｄ＝ｓｑｒｔ（（ｐｘ２−ｐｘ１）2＋（ｐｙ２−ｐｙ１）2）
で表される値Ｄを距離とする。
【００３３】
次に、傾きの方向ベクトルを計算する（Ｓ４２）。
具体的には
（（ｐｘ２−ｐｘ１）／Ｄ，（ｐｙ２−ｐｙ１）／Ｄ）
として表されるベクトルが傾きの方向ベクトルとなる。以下、傾きの方向ベクトルを（ｄ１，ｄ２）と表す。
【００３４】
次に、ロボット１００の向いている向きの方向ベクトルと、傾きの方向ベクトルの内積を計算する（Ｓ４３）。
ロボットの向きの方向ベクトルが（ｏ１，ｏ２）で表されているとき、
内積は、
ｏ１×ｄ１＋ｏ２×ｄ２
で計算される。
【００３５】
そして、計算された内積の値が０以上か否かを判断し（Ｓ４４）、０未満の場合、始点と終点間の線分の方向ベクトルが向いている向き（すなわち、始点から終点の方向に向かう向き）とロボット１００が向いている方向とが異なることを意味する。このため、始点と終点とを交換（Ｓ４５）した上で再度ステップＳ４２の処理に戻って同様に傾きの方向ベクトルの計算（Ｓ４２）と、その方向ベクトルとロボット１００の方向ベクトルとの内積計算とを行う（Ｓ４３）。
【００３６】
一方、内積が０以上の場合には、ロボット１００が向いている方向と同じ方向を向く方向ベクトル（傾き）が作成されているため、次に傾きに垂直な方向ベクトルを計算する（Ｓ４６）。
具体的には、反時計回りに９０度回転させるアフィン変換により、
（−ｄ２，ｄ１）
が求める値となる。
【００３７】
そして、ステップＳ４６で計算した方向ベクトルと向きが逆の方向ベクトルを計算する（Ｓ４７）。
具体的には、
（ｄ２，−ｄ１）
が求める値となる。
【００３８】
以上の処理により、始点（ｐｘ１，ｐｙ１）、終点（ｐｘ２，ｐｙ２）、距離Ｄ、傾き（ｄ１、ｄ２）、垂直線分の傾き１（−ｄ２，ｄ１）、垂直線分の傾き２（ｄ２，−ｄ１）が得られ、これらを線分データとして、図８に示したようなテーブル形式で蓄積する（Ｓ４８）。
以上の線分データの作成処理を、全てのベースポイントの組み合わせについて行う。
【００３９】
以上のようにして作成された各線分データとロボット１００の現在位置の位置ベクトルＰ（ｐ１，ｐ２）とに基づいて動作候補を生成する。
具体的には、
ロボットの現在位置の位置ベクトルＰ（ｐ１，ｐ２）を始点とし、
線分データの傾き（ｄ１，ｄ２）の方向と、垂直線分の傾き１（−ｄ２，ｄ１）の方向と、垂直線分の傾き２（ｄ２，−ｄ１）の方向のそれぞれを動作方向とした３つの動作指示を作成する（図７のＳ３３）。
線分データの傾き（ｄ１，ｄ２）の方向の対応した動作指示ベクトルは、線分データの距離Ｄに基づいて以下のように計算される。
（ｐ１＋（Ｄ／ｋ）×ｄ１，ｐ２＋（Ｄ／ｋ）×ｄ２）
：ｋは定数
【００４０】
同様にして、直線分の傾き１（−ｄ２，ｄ１）の方向と、垂直線分の傾き２（ｄ２，−ｄ１）の方向のそれぞれに進む動作指示も作成する。
以上のように、動作候補は、ベースポイント間の幾何学的な関係から生成されており、１つの線分データに対して３つの動作指示が動作候補として生成される。なお、動作候補の動作距離は、線分データの距離Ｄに基づいて計算するため、ベースポイント間の距離が短い場合には動作距離も短くなり、ベースポイント間の距離が長い場合には動作距離も長くなる。したがって、例えば参加者がロボット１００を細かく動かしているような場合には動作候補の動作距離も短くなり、その場のロボットの動作状況に見合った動作距離が生成されるようになっている。
【００４１】
以上の動作候補の作成方法で作成される動作候補について、具体的に説明する。図１０は、動作候補作成方法を説明するための説明図である。図１０において、Ｒはロボット１００の現在位置を示しており、Ｒマーク部分の矢印は、ロボット１００の動作方向を示している。また、ＢＰ１及びＢＰ２はベースポイントであり、ロボット１００の現在位置との距離が小さいベースポイントとして選択された２つのベースポイントとする。また、ＢＰ１を始点、ＢＰ２と終点とし、ＢＰ２に向かう矢印は、ＢＰ１とＢＰ２間の線分の方向ベクトルの方向を示すものとする。また、図１０に示すように任意の位置に二次元座標軸（ＸＹ座標軸）を設定するものとする。なお、以下では、適宜図９のフローチャートを参照する。
【００４２】
まず、ＢＰ１とＢＰ２との線分データが作成される。図１０の例では、ロボット１００の動作方向と線分の方向ベクトルが向いている向きが逆であるため、内積は０未満となり、始点と終点とが交換され、線分の方向ベクトルの向きは、図１０（ｂ）に示す矢印の向きとなる。
【００４３】
続いて図９のステップＳ４６では、図１０（ｃ）に示すような「傾きに垂直な方向ベクトル」が計算される。そして、ステップＳ４７では、図１０（ｄ）に示すような「向きが逆の方向ベクトル」が計算される。
【００４４】
このようにして計算された以下の（１）〜（３）のそれぞれに対応した動作候補が、図１０（ｅ）の矢印１Ａ〜３Ａに示すものとなる。
（１）線分データの傾き（ｄ１，ｄ２）の方向（図１０（ｅ）の矢印１ａ）
（２）垂直線分の傾き１（−ｄ２，ｄ１）の方向（図１０（ｅ）の矢印２ａ）
（３）垂直線分の傾き２（ｄ２，−ｄ１）の方向（図１０（ｅ）の矢印３ａ）
【００４５】
すなわち、以上の動作候補生成プロセスにより、図１０（ｅ）に示すように、ロボット１００の現在位置を始点として、ベースポイント２点間に平行又は垂直な方向を動作方向とする動作候補が生成されることになる。
【００４６】
以下、図１の利用形態を用いて更に具体的に説明する。
図１１は、図１の利用形態における、本実施の形態１の動作説明図である。ここでは、ベースポイントＣの位置にロボット１００が位置し、Ａ点の方向に向かっているものとする。そして、Ａ点に向かう途中で動作方向を変更し、資料１０が適切に撮影できる位置に移動させた後、今度は資料２０が適切に撮影できる位置へと移動させる場合について考える。ここでは、簡単のため、Ａ−Ｂ間を結んだ線に平行に資料１０が配置され、Ａ−Ｃ間を結んだ線に平行に資料２０が配置されているものとする。
【００４７】
ロボット１００が矢印Ｍ１の方向に移動してＰ１に到達した際、Ｐ１の位置とベースポイントデータベース１０５とに基づいて動作候補が作成されるが、ロボット１００の現在位置Ｐ１との距離が小さい順に選択されたベースポイントが、ここではＡ、Ｂ、Ｃ、Ｄであるとすると、そのうちの組み合わせ（Ａ，Ｂ）から作成される動作候補の一つとして、Ａ−Ｂ間に平行な矢印Ｍ２が提示される。そこで、参加者により矢印Ｍ２が選択されると、ロボット１００が矢印Ｍ２の方向に進む。そして、Ｐ２に到達すると、今度は動作候補の一つとしてＡ−Ｂ間に垂直な矢印Ｍ３が提示される。そこで、参加者により矢印Ｍ３が選択されると、ロボット１００が矢印Ｍ２の方向に進む。これにより、資料１０を適切に撮影する位置に、ロボット１００を容易に移動させることができる。なお、この位置に停止したロボット１００に対して、一定時間、参加者から動作指示がなされない場合は当該位置はベースポイント（滞在位置）としてベースポイントデータベース１０５に記録されることになる。
【００４８】
同様に、Ｃ点及びＡ点もベースポイントとして登録されているため、Ｐ１まで来た経路を逆に辿って戻ることができる。そしてＰ１に到達すると、今度はＣ−Ａに垂直な方向の矢印Ｍ４が動作候補として提示されるので、矢印Ｍ４の方向にロボット１００を進ませることにより、資料２０を適切に撮影する位置にロボット１００を位置させることができる。
【００４９】
ここで、比較のため、上記と同様の動作を従来のジョイスティックのような入力操作手段を用いてロボット１００に行わせる場合（マニュアル動作）と、予め指定した教示点間を移動させるように構成されたロボット１００に行わせる場合（登録点間移動動作）について説明する。
【００５０】
図１２は、マニュアル動作におけるロボット１００の移動経路を示した図である。この場合では、矢印Ｍ１に示すように、絶えずマニュアルでロボット１００を動かして、資料１０が適切に撮影できる位置まで移動するように細かく位置調整する必要がある。そして、資料１０が撮影できる位置に移動できた後も、全く同様に、絶えずマニュアル動作で資料２０が撮影できる位置まで移動させるしかない。
【００５１】
図１３は、登録点間移動動作におけるロボット１００の移動経路を示した図である。この場合では、ロボット１００を現在位置Ｃ点から資料１０に近い位置まで移動させるために、矢印Ｒ１に示すＣ−Ａ間の移動と、矢印Ｒ２に示すＡ−Ｃ間の移動は可能である。しかし、それ以降は結局、図１２で説明した場合と同様にマニュアル動作を行わざるを得ない。
【００５２】
これらに対し、本実施の形態１によれば、図１１の説明部分で述べたように、ベースポイントとして指定された２点間に平行又は垂直に動作できるような動作候補が提示されるため、容易に所望の位置、方向にロボット１００を移動させることができる。
【００５３】
このように、本実施の形態１によれば、ロボット動作に重要であると考えられる位置の情報をベースポイントとして随時蓄積し、その蓄積したベースポイントを用いて動作候補を複数作成して参加者に選択可能に提示するようにしたので、ロボットの移動経路に自由度を持たせながらも、ユーザによる移動位置の指定操作が煩雑になるのを防止することが可能なロボット操作装置を得ることができる。
【００５４】
実施の形態２．
実施の形態１では、ロボットとロボットを操作する人物が同一の空間を共有していることを前提としたものであった。このため、例えば相手会議室の参加者が自会議室側のロボットを操作するといった、遠隔操作を行う場合に生じる問題については対策が取られていない。すなわち、例えば相手会議室からは自会議室側の空間の情報を十分に把握しきれないために、動作指示が実際には不適切であっても、それを相手会議室側では認識できないという問題があった。例えば、テーブルの端からロボットが落ちてしまうような動作指示を出してしまう場合等が該当する。本実施の形態２は、上記の問題の解決を図るものであり、遠隔地（相手会議室）から指示された動作指示を実際にロボット５００に実行させる前に、ロボット５００と空間を共有する自会議室側の参加者に通知して、介入又は承認を求めるような構成とするものである。
【００５５】
図１４は、本発明の実施の形態２のロボット５００を適用したテレビ会議システムの利用形態のネットワーク図である。
自会議室と相手会議室とは、ネットワークを介して接続され、一般のテレビ会議システムが構築されていると共に、ネットワークには、ベースポイントを管理するサーバ２００が接続されている。なお、この実施の形態２では、自会議室に存在する参加者ａ〜ｅと、遠隔地の相手会議室に存在する参加者ｆが共に自会議室に配置されたロボット本体３００を動作させるものとする。また、自会議室側では、自会議室の参加者（図１４の例では特に参加者ｅ）が、ロボット操作装置としてのロボット側クライアント４００を使用してロボット本体３００を動作させるものとする。
【００５６】
また、相手会議室には、ロボット本体３００を相手会議室側から操作するための遠隔操作クライアント６００が配置されており、遠隔操作クライアント６００からネットワークを介して自会議室のロボット５００に動作指示を送信可能になっている。
【００５７】
このように、ロボット側クライアント４００、サーバ２００及び遠隔操作クライアント６００は、ネットワークを介してデータ、命令などの情報を送受信する。また、ネットワークはＩＰネットワークや無線ネットワークなど各種のものが利用できる。
【００５８】
図１５は、図１４の各装置の構成を示すブロック図である。
実施の形態２のロボット５００は、ロボット本体３００と、ロボット本体３００を駆動するロボット側クライアント４００とから構成されている。ロボット本体３００は、駆動部１０１と、カメラ１０６と、ロボット側クライアント４００とのデータの入出力を行うための入出力インタフェース（ＩＦ）３０１と、制御部３０２とを備えている。
【００５９】
ロボット側クライアント４００は、ロボット本体３００を制御する例えばＰＣ等のコンピュータで構成されるもので、キーボードやマウスなどの入力部４０１と、ディスプレイなどの表示部４０２と、ロボット本体３００の現在位置を検出する位置検出部１０４と、ロボット本体３００とのデータの入出力を行うための入出力インタフェース（ＩＦ）４０３と、ネットワークを介してサーバ２００や遠隔操作クライアント６００と通信するための通信部４０４と、ロボット側クライアント４００全体を制御する制御部４０５とを備えている。
【００６０】
実施の形態２のロボット５００は、実施の形態１のロボット１００と同様、動作候補を提示したり、予告表示を行うことが可能なものである。ただし、動作候補の生成を行う処理部は、実施の形態２ではロボット５００ではなく、サーバ２００側に備えている。また、動作候補の提示や予告表示は、実施の形態１と同様にテーブルＴＢ上に投影表示してもよいが、ここでは、ロボット側クライアント４００の表示部４０２に表示するものとする。すなわち、表示部４０２には、後述の図１６に示す表示画面７００のうち、少なくともロボット情報表示画面７０１と、ロボット情報表示画面７０１に表示された動作候補を番号で選択するための選択ボタンが表示された入力表示画面７０２とが表示されているものとする。そして、入力部４０１により入力表示画面７０２の選択ボタンを選択することにより、所望の動作候補を選択できるものとする。
【００６１】
サーバ２００は、ベースポイントデータベース２０１と、ネットワークを介してロボット側クライアント４００や遠隔操作クライアント６００と通信するための通信部２０２と、サーバ２００全体を制御する制御部２０３とを備えている。制御部２０３は、実施の形態１と同様のベースポイント管理部１０８ａと、動作候補生成部１０８ｂとを備えている。
【００６２】
遠隔操作クライアント６００は、例えばＰＣ等のコンピュータで構成されるもので、キーボードやマウスなどの入力部６０１と、ディスプレイなどの表示部６０２と、ネットワークを介してサーバ２００やロボット側クライアント４００と通信するための通信部６０３と、遠隔操作クライアント６００全体を制御する制御部６０４とを備えている。表示部６０２は、自会議室側のロボット５００の状態を表現するのに必要な情報を提示するもので、次の図１６に示すような表示画面を表示する。
【００６３】
図１６は、遠隔操作クライアント６００の表示部に表示される表示画面の一例を示す図である。
表示画面７００は、ロボット５００の動作候補やベースポイント等が表示されるロボット情報表示画面７０１と、ロボット情報表示画面７０１に表示された動作候補を番号で選択するための選択ボタンが表示された入力表示画面７０２と、ロボット５００のカメラ１０６で撮影された映像が表示されるロボットカメラ映像表示画面７０３と、相手会議室を俯瞰で撮影した映像が表示される俯瞰映像表示画面７０４とから構成されている。
【００６４】
以下、実施の形態２の動作について説明する。なお、以下では、実施の形態２の動作が実施の形態１の動作と異なる部分を中心に説明する。ここでは、相手会議室の参加者ｆが主要なロボット動作を行い、自会議室の参加者ｅがサポートするものとして説明する。
図１７は、実施の形態２のロボット操作システムの各装置間のデータの流れ及びそれぞれの装置における処理の流れを示す図である。
【００６５】
まず、相手会議室の参加者ｆにより遠隔操作クライアント６００が操作され、ネットワークを介して自会議室のロボット側クライアント４００に動作指示が送信される。ロボット側クライアント４００は動作指示を受信すると（Ｓ４０１）、その動作指示に基づく予告表示を表示部４０２に表示する（Ｓ４０２）。この予告表示は、実施の形態１と同様に、ロボット本体３００の次の動作意図を矢印等で表示するものである。そして、ロボット側クライアント４００は、予め設定された一定時間が経過するまでの間（Ｓ４０３）、自会議室の参加者ｅから動作指示があるか否かをチェックし（Ｓ４０４）、動作指示がなければ、相手会議室側から指示された動作指示をロボット本体３００に送信して実際に動作させる（Ｓ４０５、Ｓ３０１）。このように、相手会議室から指示されたロボット動作をロボット本体３００に実際に実行させる前に、自会議室の参加者ｅに通知し、一定時間の間、参加者ｅから別の動作指示がなされなければ、承認とみなして相手会議室からの動作指示を実行するようにしている。
【００６６】
一方、ロボット側クライアント４００は、予め設定された一定時間が経過するまでの間に、自会議室の参加者ｅから動作指示があると、参加者ｅからの動作指示を優先し、その動作指示をロボット本体３００に送信して実際に動作させる（Ｓ４０５、Ｓ３０１）。このように、一定時間が経過するまでの間に参加者ｅから別の動作指示がなされれば、相手会議室からの動作指示に代えて、自会議室の参加者ｅからの動作指示を優先する。これにより、相手会議室から自会議室の空間の情報を十分に把握できないために生じる、不適切な動作指示を排除し、自会議室の参加者ｅがロボット動作をサポートすることが可能となる。
【００６７】
そして、動作指示に従ってロボット本体３００の動作が終了すると（Ｓ４０６）、ロボット側クライアント４００は、位置検出部１０４からロボット５００の現在位置を取得し（Ｓ４０７）、現在位置データをサーバ２００に送信する（Ｓ４０８）。
【００６８】
サーバ２００は、ロボット側クライアント４００からの現在位置データを受信すると（Ｓ２０１）、ベースポイントデータベース２０１に追加する（Ｓ２０２）。既に同じ値がベースポイントデータベース２０１内に記録されている場合には、更新時間を更新する。そして、サーバ２００の動作候補生成部１０８ｂは、ロボット５００の現在位置とベースポイントデータベース２０１に格納されている複数のベースポイントとに基づいて動作候補を複数生成する（Ｓ２０３）。そして、作成した複数の動作候補をロボット側クライアント４００に送信し（Ｓ２０４）、ロボット側クライアント４００で受信される（Ｓ４０９）。これ以降の動作は、図５に示したステップＳ９〜Ｓ１１の処理と同様である。なお、図１７には図示省略しているが、サーバ２００で作成された動作候補は遠隔操作クライアント４００にも送信され、遠隔操作クライアント４００側で図１６に示したロボット情報表示画面７０１の表示が可能となっている。
【００６９】
なお、ロボット側クライアント４００は、図１７のフローチャートに従った制御を行っている間、参加者から別の指令位置が指示されるなどの割り込み指示があるかを常に監視している。割り込み指示は、自会議室及び相手会議室のどちら側からも可能である。次の図１８は、割り込み処理のフローチャートである。
ロボット側クライアント４００の制御部４０５は、割り込み指示があるかを常に監視しており、割り込み指示があると（Ｓ４１１）、ロボット５００の動作を停止させ（Ｓ４１２）、全ての表示（動作候補の提示・予告表示）を停止させる（Ｓ４１３）。そして、位置検出部１０４からロボット５００の現在位置を取得し（Ｓ４１４）、取得した現在位置データをサーバ２００に送信する（Ｓ４１５）。サーバ２００は、ロボット側クライアント４００からの現在位置データを受信すると（Ｓ２１１）、ベースポイントデータベース２０１に追加し（Ｓ２１２）、割り込み処理を終了する。割り込み処理終了後は、図１７のフローチャートのステップ４０７の処理に移行する。
【００７０】
このように本実施の形態２によれば、動作指示を受信してから一定時間の間、予告表示を行い、自会議室の参加者からの動作指示を待ってから実際のロボット動作を行わせるようにしたので、自会議室と相手会議室とで共同で円滑にロボット動作を行うことができる。
【００７１】
また、サーバ２００のベースポイントデータベース２０１には、自会議室及び相手会議室のそれぞれ参加者から指示された動作指示に基づくベースポイントが蓄積される。したがって、互いの参加者にとって意味のある場所の関係によって動作候補を提示することが可能となり、同様に互いの円滑な操作に役立つ。
【００７２】
なお、本実施の形態２では、ロボット本体３００を操作する参加者が自会議室及び相手会議室でそれぞれ１人である例を説明したが、もちろん複数の参加者が操作可能としても良い。この場合、動作指示がどの参加者から発せられたのかの情報も付加してベースポイントデータベース２０１に追加するようにしてもよい。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態１のロボットを適用したテレビ会議システムの利用形態の模式図である。
【図２】図１のロボットの構成を示すブロック図である。
【図３】方向ベクトルの表現の一例を示す図である。
【図４】ベースポイントデータベースの構造の一例を示す図である。
【図５】実施の形態１のロボットの動作の流れを示すフローチャートである。
【図６】実施の形態１における割り込み処理のフローチャートである。
【図７】動作候補の生成方法の流れを示すフローチャートである。
【図８】線分データの構造の一例を示す図である。
【図９】線分データの作成方法の流れを示すフローチャートである。
【図１０】動作候補作成方法を説明するための説明図である。
【図１１】図１の利用形態における、本実施の形態１の動作の説明図である。
【図１２】従来のマニュアル動作の場合のロボットの移動経路を示した図である。
【図１３】従来の登録点間移動動作の場合のロボットの移動経路を示した図である。
【図１４】本発明の実施の形態２のロボットを適用したテレビ会議システムの利用形態のネットワーク図である。
【図１５】図１４の各装置の構成を示すブロック図である。
【図１６】遠隔操作クライアントの表示部に表示される表示画面の一例を示す図である。
【図１７】実施の形態２のロボット操作システムの各装置間のデータの流れ及びそれぞれの装置における処理の流れを示す図である。
【図１８】実施の形態２における割り込み処理のフローチャートである。
【符号の説明】
【００７４】
１０ 資料、２０  資料、１０１  駆動部、１０２  操作入力部、１０３  情報提示部、１０４  位置検出部、１０５  ベースポイントデータベース、１０６  カメラ、１０７  操作入力部、１０８  制御部、１０８ａ  ベースポイント管理部、１０８ｂ  動作候補生成部、２００  サーバ、２０１  ベースポイントデータベース、２０２  通信部、２０３  制御部、３００  ロボット本体、３０１  入出力ＩＦ、３０２  制御部、４００  ロボット側クライアント、４０１  入力部、４０２  表示部、４０３  入出力ＩＦ、４０４  通信部、４０５  制御部、５００  ロボット、６００  遠隔操作クライアント、６０１  入力部、６０２  表示部、６０３  通信部、６０４  制御部、７００  表示画面、７０１  ロボット情報表示画面、７０２  入力表示画面、７０３  ロボットカメラ映像表示画面、７０４  俯瞰映像表示画面。
【図１】
2010079654.tif 000003
【図２】
2010079654.tif 000004
【図３】
2010079654.tif 000005
【図４】
2010079654.tif 000006
【図５】
2010079654.tif 000007
【図６】
2010079654.tif 000008
【図７】
2010079654.tif 000009
【図８】
2010079654.tif 000010
【図９】
2010079654.tif 000011
【図１０】
2010079654.tif 000012
【図１１】
2010079654.tif 000013
【図１２】
2010079654.tif 000014
【図１３】
2010079654.tif 000015
【図１４】
2010079654.tif 000016
【図１５】
2010079654.tif 000017
【図１６】
2010079654.tif 000018
【図１７】
2010079654.tif 000019
【図１８】
2010079654.tif 000020