(57)【要約】      （修正有）【課題】効率よく、その現場に適応して動作の制御を、逐次、改良していけるロボットを提供すること。【解決手段】コミュニケーションロボット１２は、自律制御プログラムによる自律制御とオペレータによる遠隔制御とを組み合わせて、人間Ａとのコミュニケーション行動を実行する。操作端末１４は、ロボット１２のセンサによって取得された情報および操作端末１４に入力された操作コマンド情報を含む情報を記憶する。また、操作端末１４は、当該情報からオペレータの入力に応じてもしくは自動的に新規自律制御プログラムの作成に必要な情報を取得し、ネットワーク１００を介して、開発端末１６に送信する。開発端末１６では、操作端末１４から送信された情報に基づいてロボット１２の新規自律制御プログラムが作成され、当該プログラムは、ロボット１２に送信される。ロボット１２は、当該受信したプログラムを従来の自律制御プログラムに追加する。【選択図】図１
2007213190.tif 000002
【特許請求の範囲】
【請求項１】
自律制御プログラムによる自律制御とオペレータによる遠隔制御とが可能なコミュニケーションロボットと、その遠隔制御の際にオペレータによって操作コマンドが入力される操作端末とを含むコミュニケーションロボット改良システムであって、
前記コミュニケーションロボットは、前記自律制御プログラムに基づく自律的コミュニケーション行動で対応できなくなったときに、オペレータによる遠隔操作に基づいて自身の動作を制御するコミュニケーションロボットであって、
前記操作端末は、オペレータによって入力された操作コマンドをコミュニケーションロボットに対して送信するコマンド送信手段を備え、
少なくとも前記操作コマンドの履歴を含むロボット操作情報を記憶するロボット操作情報記憶手段、および
前記ロボット操作情報記憶手段によって記憶されたロボット操作情報から、プログラム化するために利用する情報を示すプログラム化情報を取得する取得手段を備え、
前記コミュニケーションロボットは、前記取得手段によって取得されたプログラム化情報に基づいて作成された新規自律制御プログラムを前記自律制御プログラムに追加する追加手段を備える、コミュニケーションロボット改良システム。
【請求項２】
前記コミュニケーションロボットは、
周囲情報を検出するセンサ、
前記センサによって検出された周囲情報に基づいて、前記自律制御プログラムに基づく自律的コミュニケーション行動で対応できなくなったことを示す呼出条件を満たすか否かを判定する呼出判定手段、および
前記呼出判定手段によって前記呼出条件を満たすと判定されたとき、前記操作端末に対して遠隔制御の要求を送信する遠隔制御要求送信手段を含む、請求項１記載のコミュニケーションロボット改良システム。
【請求項３】
プログラマの入力によって前記新規自律制御プログラムを作成するための開発端末、および
前記取得手段によって取得されたプログラム化情報を含む新規自律制御プログラムの作成依頼を前記開発端末に送信する作成依頼送信手段をさらに備え、
前記開発端末は、前記作成依頼に応じてプログラマによって作成された新規自律制御プログラムを前記コミュニケーションロボットに送信するプログラム送信手段を含み、
前記追加手段は、前記プログラム送信手段から送信された新規自律制御プログラムを受信するプログラム受信手段を含み、前記プログラム受信手段によって受信された当該新規自律制御プログラムを前記自律制御プログラムに追加する、請求項１または２記載のコミュニケーションロボット改良システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はコミュニケーションロボット改良システムに関し、特にたとえば、自律制御と遠隔制御との双方によって自身の動作を制御するコミュニケーションロボットを改良する、コミュニケーションロボット改良システムに関する。
【背景技術】
【０００２】
自律制御と遠隔制御とを組み合わせて自身の動作を制御するロボットを含むロボット制御システムの一例が、たとえば特許文献１に開示されている。特許文献１の技術は、警備などに利用されるロボットを遠隔操作するためのロボット遠隔操作システムである。当該ロボットは、基本的には自律行動を行い、操作装置ではロボットのカメラで撮影された画像が表示される。オペレータは画像に基づいてロボットを監視し、また、操作レバーによって自律モード、自律遠隔協調モードおよび完全遠隔モードを切り替えることができる。たとえば、自律遠隔協調モードでは、ロボットの動作の修正が必要な場合には、遠隔操作によって自律動作を修正することができる。
【特許文献１】特開２００３−２５１５８１号公報［Ｂ２５Ｊ １３／００］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１の技術では、自律制御と遠隔制御とを組み合わせてロボットの動作を制御できた。しかし、自律制御では、予め設定した自律制御プログラムに基づいて動作を制御するだけであるため、自律制御プログラムに無い動作は、単純なものであっても、オペレータが繰り返し遠隔操作によって制御しなければならなかった。つまり、オペレータの負担が大きかった。
【０００４】
それゆえに、この発明の主たる目的は、コミュニケーションロボットの自律制御を効率よく改良することができ、オペレータによる遠隔操作の負担を減らすことのできる、コミュニケーションロボット改良システムを提供することである。
【課題を解決するための手段】
【０００５】
請求項１の発明は、自律制御プログラムによる自律制御とオペレータによる遠隔制御とが可能なコミュニケーションロボットと、その遠隔制御の際にオペレータによって操作コマンドが入力される操作端末とを含むコミュニケーションロボット改良システムである。コミュニケーションロボットは、自律制御プログラムに基づく自律的コミュニケーション行動で対応できなくなったときに、オペレータによる遠隔操作に基づいて自身の動作を制御するコミュニケーションロボットである。操作端末は、オペレータによって入力された操作コマンドをコミュニケーションロボットに対して送信するコマンド送信手段を備える。また、当該システムは、少なくとも操作コマンドの履歴を含むロボット操作情報を記憶するロボット操作情報記憶手段、およびロボット操作情報記憶手段によって記憶されたロボット操作情報から、プログラム化するために利用する情報を示すプログラム化情報を取得する取得手段を備え、コミュニケーションロボットは、取得手段によって取得されたプログラム化情報に基づいて作成された新規自律制御プログラムを自律制御プログラムに追加する追加手段を備える。
【０００６】
請求項１の発明では、コミュニケーションロボット改良システム（１０：実施例で相当する参照番号。以下同じ。）は、コミュニケーションロボット（１２）と操作端末（１４）とを含む。コミュニケーションロボットは、身体動作および音声の少なくとも一方を用いて人間との間でコミュニケーション行動を実行するコミュニケーションロボットであり、自律制御プログラムによる自律制御とオペレータによる遠隔制御とが可能である。たとえば、コミュニケーションロボットは、或るイベント会場や会社の受付のような様々な場所や状況に配置され、通常は自律制御によって人間との対話などのコミュニケーション行動を実行し、受付や道案内などの役割を果たす（サービスを提供する）。しかし、コミュニケーションロボットは、自律制御プログラムに基づくコミュニケーション行動（自律的コミュニケーション行動）では対応できない状態や状況になったとき、オペレータ（操作者）による遠隔操作に基づいて自身の動作を制御する（オペレータによる遠隔制御を行う）。操作端末では、その遠隔制御の際に、オペレータによる操作コマンドの入力が行われる。操作端末は、コマンド送信手段（Ｓ２９）を備え、コマンド送信手段は、オペレータによって入力された操作コマンドをコミュニケーションロボットに対して送信する。コミュニケーションロボットは、操作端末から送信された操作コマンドを受信すると、当該操作コマンドに基づいたコミュニケーション行動（身体動作や発話）を実行する。ロボット操作情報記憶手段（Ｓ３１）は、ロボット操作情報を記憶する。ここで、ロボット操作情報とは、ロボットに対して行われた遠隔操作に関する情報を意味する。ロボット操作情報には、たとえば、時刻に対応付けてコミュニケーションロボットに対して行われた遠隔操作に関する情報が登録されてよく、少なくともオペレータによって操作端末に入力された操作コマンドの履歴が含まれる。また、ロボット操作情報には、たとえば、コミュニケーションロボットの位置や対話相手などを含むコミュニケーションロボットに関する情報やオペレータに関する情報が含まれてもよい。取得手段（Ｓ３５，Ｓ４１〜Ｓ４５）は、プログラム化情報を取得する。ここで、プログラム化情報とは、自律制御プログラムを作成するときに利用する情報を意味し、プログラム化情報は、ロボット操作情報記憶手段に記憶されたロボット操作情報から取得される。コミュニケーションロボットは、追加手段（６６，７０）を備え、追加手段は、取得手段によって取得されたプログラム化情報に基づいて新たに作成された新規自律制御プログラムを従来の自律制御プログラムに追加する（実装する）。コミュニケーションロボットは、新規自律制御プログラムを加えた自律制御プログラムに基づいて、自律的コミュニケーション行動を実行する。なお、ロボット操作情報記憶手段および取得手段はそれぞれ、たとえば、操作端末に備えるようにしてもよいし、コミュニケーションロボットに備えるようにしてもよい。また、たとえば複数のロボットや複数の操作端末が当該システムに含まれる場合は、たとえば当該システムにプログラム化情報の取得に関する全体処理を制御する中央制御装置をさらに備えるようにし、この中央制御装置にロボット操作情報記憶手段および取得手段を備えるようにしてもよい。また、たとえば、複数の操作端末の中から或る操作端末を選択し、当該選択した操作端末を上述した中央制御装置として用いてもかまわない。さらにまた、たとえば当該システムをインターネットやＬＡＮのようなネットワークを介して接続し、コミュニケーションロボット、操作端末および中央制御装置のそれぞれの情報を送受信可能にしておけば、ロボット操作情報記憶手段および取得手段が、それぞれ異なる装置に備えられるようにしてもかまわない（たとえば、ロボット操作情報記憶手段はロボットが備え、取得手段は操作端末が備える）。
【０００７】
請求項１の発明によれば、オペレータによって入力された操作コマンドの履歴を記憶し、自律制御プログラムの作成に必要な情報（プログラム化情報）を取得するので、新規自律制御プログラムの作成が容易になる。また、作成された新規自律制御プログラムは、コミュニケーションロボットの従来の自律制御プログラムに追加されるので、コミュニケーションロボットが自律制御によって実行できる動作を増加させることができ、オペレータによる遠隔操作の負担を減少させることができる。
【０００８】
請求項２の発明は、請求項１の発明に従属し、コミュニケーションロボットは、周囲情報を検出するセンサ、センサによって検出された周囲情報に基づいて、自律制御プログラムに基づく自律的コミュニケーション行動で対応できなくなったことを示す呼出条件を満たすか否かを判定する呼出判定手段、および呼出判定手段によって呼出条件を満たすと判定されたとき、操作端末に対して遠隔制御の要求を送信する遠隔制御要求送信手段を含む。
【０００９】
請求項２の発明では、コミュニケーションロボットは、センサ（２６，３０，４０，４２，４４，５４，９２）を含み、センサは、たとえば、視覚情報や聴覚情報などを含む当該コミュニケーションロボット周囲の情報（周囲情報）を検出する。呼出判定手段（６６，Ｓ５）は、センサによって検出された周囲情報（センサ情報）に基づいて、呼出条件が満たされたか否かを判定する。ここで、呼出条件は、自律制御プログラムに基づく自律的コミュニケーション行動では対応できない状態や状況になったことを示す条件であり、具体的には、音声認識が不能な場合やトラブルが発生した場合などを示す条件である。遠隔制御要求送信手段は、呼出判定手段によって呼出条件を満たすと判定されたとき、操作端末に対して遠隔制御の要求を送信する（つまり、オペレータを呼び出す）。
【００１０】
請求項２の発明によれば、コミュニケーションロボットに備えたセンサで検出した情報に基づいてオペレータによる遠隔制御が必要な状況を適切に判断し、オペレータを呼び出す。したがって、オペレータは、常にコミュニケーションロボットを監視する必要は無く、必要に応じて遠隔操作を行えばよいので、オペレータによる遠隔操作の負担を減少させることができる。
【００１１】
請求項３の発明は、請求項１または２の発明に従属し、プログラマの入力によって新規自律制御プログラムを作成するための開発端末、および取得手段によって取得されたプログラム化情報を含む新規自律制御プログラムの作成依頼を開発端末に送信する作成依頼送信手段をさらに備える。開発端末は、作成依頼に応じてプログラマによって作成された新規自律制御プログラムをコミュニケーションロボットに送信するプログラム送信手段を含む。追加手段は、プログラム送信手段から送信された新規自律制御プログラムを受信するプログラム受信手段を含み、プログラム受信手段によって受信された当該新規自律制御プログラムを自律制御プログラムに追加する。
【００１２】
請求項３の発明では、当該システムは、開発端末（１６）および作成依頼送信手段（Ｓ３７，Ｓ４７）をさらに備える。開発端末は、プログラマが新規自律制御プログラムを作成するための端末である。作成依頼送信手段は、新規自律制御プログラムをプログラマに作成してもらうために、プログラム化情報を含む作成依頼を開発端末に対して送信する。開発端末では、プログラム化情報を参考にして、プログラマによって自律制御プログラムの作成が可能か否かが判断され、可能と判断された場合は新規自律制御プログラムが作成される。開発端末はプログラム送信手段を含み、プログラム送信手段は、たとえばネットワークを介して、作成された新規自律制御プログラムをコミュニケーションロボットに送信する。コミュニケーションロボットの追加手段は、プログラム受信手段（６６，９０）を含み、プログラム受信手段は、開発端末のプログラム送信手段から送信された新規自律制御プログラムを受信する。追加手段は、当該受信した新規自律制御プログラムを従来の自律制御プログラムに追加し、自律制御プログラムを更新する（すなわち、開発端末から送信された新規自律制御プログラムを実装する）。なお、作成依頼送信手段は、操作端末に備えるようにしてもよいし、コミュニケーションロボットに備えるようにしてもよい。また、上述した中央制御装置に備えるようにしてもよい。なお、開発端末の機能を操作端末に備えるようにし、操作端末においてプログラマが新規自律制御プログラムの作成を行うようにしてもよい。
【００１３】
請求項３の発明によれば、プログラマは、プログラム化情報を参考にすれば、新規自律制御プログラムの作成が容易になる。また、プログラマによって作成された新規自律制御プログラムをロボットに実装することができる。
【００１４】
なお、好ましい実施例として、以下に示すような発明も適用することができる。
【００１５】
請求項２または３の発明に従属する或る発明（変形例１）では、ロボット操作情報記憶手段は、センサによって検出された周囲情報の履歴をさらに含むロボット操作情報を記憶する。変形例１の発明では、ロボット操作情報記憶手段には、ロボットに備えた超音波距離センサ（３０）やタッチセンサ（５４）などのセンサによって検出された周囲情報（センサ情報）の履歴をさらに含むロボット操作情報が記憶される。変形例１の発明によれば、プログラマは、当該ロボット操作情報から取得したプログラム化情報を参考にすれば、より具体的な状況を把握して新規自律制御プログラムを作成することができる。
【００１６】
また、請求項３または変形例１の発明に従属する或る発明（変形例２）では、操作端末は、オペレータによって開発端末に対するプログラム化の要求が入力されるプログラム化要求入力手段を含み、取得手段は、プログラム化要求入力手段によってプログラム化の要求が入力されたとき、当該入力がされた時刻直前の所定時間にロボット操作情報記憶手段に記憶されたロボット操作情報をプログラム化情報として取得する。
【００１７】
変形例２の発明では、操作端末は、プログラム化要求入力手段（１１８，Ｓ３３）を含み、プログラム化要求入力手段には、オペレータによって、プログラマに対する自律制御プログラム化の要求が入力される。たとえば、オペレータは、遠隔操作を行っているときに、直前に入力した操作コマンド（もしくは、操作コマンド系列）が、或る周囲情報（センサ情報）を受信したとき（ロボットが或る状況のとき）に必ず入力する操作コマンドであると気付く場合がある。このような場合などに、オペレータは、プログラム化要求入力手段によってプログラム化の要求を入力する。ここで、操作コマンド系列とは、所定時間の間に入力された一連の操作コマンドを意味する。取得手段（Ｓ３１）は、プログラム化要求入力手段によってプログラム化の要求が入力されると、当該入力がされた時刻直前の所定時間（たとえば６０秒）の間にロボット操作情報記憶手段に記憶されたロボット操作情報を、プログラム化情報として取得する。なお、当該プログラム化情報の取得は、ロボット操作情報記憶手段に記憶されたロボット操作情報から自動的に取得されるものである。なお、作成依頼送信手段は、プログラム化情報が取得されたとき、当該プログラム化情報を含む作成依頼を開発端末（プログラマ）に送信してよい。すなわち、オペレータによってプログラム化の要求が入力されたときに、プログラム化情報が取得されてその作成依頼が送信されてよい。
【００１８】
変形例２の発明によれば、オペレータが実際に操作コマンドの入力を行ったときに、自律制御で行うことが望ましい動作（コミュニケーション行動）があると気付いた場合、当該操作コマンドの履歴を含むロボット操作情報をプログラム化情報として取得することができる。全てのロボット操作情報の中から自律制御プログラム化が可能な動作を見つけることは困難であるが、オペレータが実際の遠隔操作の経験に基づいてそれまで遠隔操作で行っていた動作が新たに自律制御プログラム化すべきものか否かを判断するので、プログラマは当該プログラム化情報を参考にすれば、新たに自律制御プログラム化することが可能な動作を容易に見つけることができる。すなわち、新規自律制御プログラムの作成に要する時間を短縮することができる。
【００１９】
さらにまた、請求項３、変形例１または変形例２のいずれかに従属する或る発明（変形例３）では、操作端末は、ロボット操作情報記憶手段に記憶されたロボット操作情報を表示するロボット操作情報表示手段、およびロボット操作情報表示手段に表示されたロボット操作情報から、オペレータによってプログラム化するために利用する情報が選択される選択手段をさらに含み、取得手段は、選択手段によって選択された情報をプログラム化情報としてロボット操作情報記憶手段に記憶されたロボット操作情報から取得する。
【００２０】
変形例３の発明では、操作端末は、ロボット操作情報表示手段（１１０）および選択手段をさらに含む。ロボット操作情報表示手段には、ロボット操作情報記憶手段に記憶したロボット操作情報が表示される。選択手段では、オペレータの入力に応じて、ロボット操作情報表示手段に表示されたロボット操作情報からプログラム化するために利用する情報が選択される。選択手段では、たとえば、或る時刻のロボット操作情報が選択されてもよいし、或る時刻から別の或る時刻までのロボット操作情報が選択されてもよい。取得手段は、選択手段によって選択された情報をプログラム化情報として、ロボット操作情報記憶手段に記憶したロボット操作情報から取得する。なお、作成依頼送信手段は、プログラム化情報が取得されたとき、当該プログラム化情報を含む作成依頼を開発端末（プログラマ）に送信してよい。すなわち、オペレータによってプログラム化に利用する情報の選択およびプログラム化の要求の入力が行われたときに、プログラム化情報が取得されてその作成依頼が送信されてよい。
【００２１】
変形例３の発明によれば、オペレータは、実際に遠隔操作を行ったときに自律制御で行うことが望ましい動作があると感じた場合、以前に入力した操作コマンドの履歴（ロボット操作情報）を見て確認しながらプログラム化するために利用する情報を選択することができる。プログラマは、当該情報を参考にして、新たに自律制御プログラム化することが可能な動作があるか否かを容易に判断することができる。したがって、請求項５の発明と同様に、新規自律制御プログラムの作成の効率性を向上できる。
【００２２】
また、変形例２または変形例３に従属する或る発明（変形例４）では、操作端末は、オペレータによってコメントが入力されるコメント入力手段をさらに含み、作成依頼送信手段は、コメント入力手段によって入力されたコメントをさらに含む新規自律制御プログラムの作成依頼を開発端末に送信する。変形例４の発明では、操作端末は、コメント入力手段（１１８）をさらに含む。コメント入力手段は、オペレータがコメントを入力するための手段であり、コメント入力手段には、たとえば、オペレータが遠隔操作を行っている際に気付いたことを入力してもよい。作成依頼送信手段は、プログラム化情報とオペレータによってコメント入力手段に入力されたコメントとを含む新規自律制御プログラムの作成依頼を開発端末に対して送信する。変形例４の発明によれば、作成依頼を送信するとき、プログラム化情報（ロボット操作情報）を開発端末に送信するだけでなく、オペレータのコメント（意見もしくは説明）も送信することができるため、プログラマは、より具体的な状況を把握して新規自律制御プログラムを作成することができる。
【００２３】
また、請求項１ないし３のいずれかに従属する、或いは変形例１ないし４のいずれかに従属する或る発明（変形例５）では、取得手段は、ロボット操作情報記憶手段に記憶されたロボット操作情報から同一の操作コマンド系列を抽出する抽出手段をさらに含み、抽出手段によって抽出された操作コマンド系列に対応するロボット操作情報をプログラム化情報としてロボット操作情報記憶手段から取得する。
【００２４】
変形例５の発明では、取得手段は抽出手段（Ｓ４１〜Ｓ４５）をさらに含む。抽出手段は、ロボット操作情報記憶手段に記憶したロボット操作情報の中から同一の操作コマンド系列を抽出する。たとえば、ロボット操作情報の全ての時刻から所定時間の間にオペレータがコミュニケーションロボットに対して行った一連の操作コマンドを操作コマンド系列として抽出し、当該抽出した操作コマンド系列の中から同一のものを抽出する。取得手段は、抽出手段によって同一の操作コマンド系列が抽出されたとき、この操作コマンド系列に対応する（を含む）ロボット操作情報をプログラム化情報として取得する。すなわち、当該操作コマンド系列を抽出した或る時間から所定時間（たとえば３０秒）の間のロボット操作情報をプログラム化情報として取得する。なお、作成依頼送信手段は、抽出手段によって同一の操作コマンド系列が抽出され、取得手段によって当該操作コマンド系列に対応するプログラム化情報が取得されたとき、当該取得されたプログラム化情報を含む作成依頼を開発端末に対して自動的に送信する。
【００２５】
変形例５の発明によれば、繰り返し入力される一連の操作コマンドの内容（操作コマンド系列）を自動的に抽出して開発端末に送信することができる。すなわち、オペレータの手を煩わすことなくプログラム化情報を取得することができ、プログラマは、当該プログラム化情報に基づいて容易に新規自律制御プログラムの作成が可能か否かを判断することができる。
【００２６】
さらにまた、変形例５に従属する或る発明（変形例６）では、抽出手段は、さらに周囲情報系列も同一である操作コマンド系列を抽出する。変形例６の発明では、抽出手段は、同一の操作コマンド系列を抽出するときに、さらに周囲情報系列も同一である操作コマンド系列を抽出する。ここで、周囲情報系列とは、所定時間の間に入力された一連の操作コマンドに対応付けて記憶されている周囲情報（センサ情報）である。なお、取得手段は、操作コマンド系列が同一でありかつ周囲情報系列が同一である、所定時間の間のロボット操作情報をプログラム化情報として取得する。変形例６の発明によれば、より自律制御化できる可能性が高い操作コマンド系列（ロボットの動作）を含むプログラム化情報を取得することができる。
【発明の効果】
【００２７】
この発明によれば、オペレータによって入力された操作コマンドの履歴とロボットのセンサによって取得された周囲情報の履歴とを記憶する。そして、プログラマにプログラム化を依頼するときには、新規自律制御プログラムのプログラム化に必要な情報を取得して送信するので、プログラマは新規自律制御プログラムの作成が容易になる。また、作成された新規自律制御プログラムはコミュニケーションロボットに送信され、コミュニケーションロボットの自律制御プログラムは追加、更新される（すなわち、実装される）。この新規自律制御プログラムの実装によって、ロボットが自律制御で行える動作が増え、オペレータによる遠隔操作の負担を減少させることができる。さらに、このような新規自律制御プログラムの実装は、開発したロボットを実際に現場（イベント会場や会社の受付など）で使用しながら継続して行えるので、効率よくその現場に適応して動作を制御できるロボットに改良していくことができる。
【００２８】
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２９】
図１を参照して、この実施例のコミュニケーションロボット改良システム１０は、たとえば無線ＬＡＮやインターネットなどのネットワーク１００を介して接続された、コミュニケーションロボット１２、操作端末１４および開発端末１６を含む。
【００３０】
コミュニケーションロボット１２（以下、単に「ロボット」ということがある。）は、主として人間のようなコミュニケーションの対象とコミュニケーションすることを目的とした相互作用指向のもので、音声によって人間と対話することが可能である。また、音声に代えて、或いは音声とともに、身振り手振りのような身体動作を用いてコミュニケーション行動を実行することもできる。ロボット１２は、たとえば、受付ロボットや道案内ロボットなどであり、或るイベント会場や会社の受付などの様々な場所および状況に配置される。ロボット１２は、通常は自律制御によって受付や道案内などの役割を果たすが、自律制御プログラムに基づく自律的コミュニケーション行動では対応困難な状況になった場合などには、操作端末１４に対して遠隔制御の要求を送信する（オペレータを呼び出す）。そして、ロボット１２は、呼び出したオペレータによって操作端末１４に入力された操作コマンドに従ったコミュニケーション行動（身体動作や発話）を実行する。つまり、ロボット１２は、自律制御プログラムによる自律制御とオペレータによる遠隔制御とを組み合わせて自身の動作を制御する。なお、図１には、ロボット１２が応対する人間Ａを１人だけ示してあるが、複数でもかまわない。
【００３１】
図２は、この実施例のロボット１２の外観を示す正面図であり、この図２を参照して、ロボット１２のハードウェアの構成について説明する。
【００３２】
図２に示すように、ロボット１２は台車２０を含み、この台車２０の下面にはロボット１２を自律移動させる車輪２２が設けられる。車輪２２は車輪モータ２４（図３参照）によって駆動され、台車２０すなわちロボット１２を前後左右任意の方向に動かすことができる。このように、ロボット１２は配置された環境内を移動可能なものであるが、場合によっては環境内の所定位置に固定的に設けられてもよい。
【００３３】
なお、図２においては省略するが、台車２０の前面には、衝突センサ２６（図３参照）が取り付けられ、この衝突センサ２６は台車２０への人や他の障害物の接触を検知する。つまり、ロボット１２の移動中に障害物との接触を検知すると、直ちに車輪２２の駆動を停止してロボット１２の移動を急停止させる。
【００３４】
また、この実施例では、ロボット１２の背の高さは、人、特に子供に威圧感を与えることのないように、１００ｃｍ程度とされる。ただし、この背の高さは変更可能である。
【００３５】
台車２０の上には、多角形柱のセンサ取付パネル２８が設けられ、このセンサ取付パネル２８の各面には、超音波距離センサ３０が取り付けられる。この超音波距離センサ３０は、センサ取付パネル２８すなわちロボット１２の周囲の主として人との距離を計測するものである。
【００３６】
また、台車２０の上には、さらに、その下部がセンサ取付パネル２８に囲まれて、ロボット１２の胴体が直立するように設けられる。この胴体は、下部胴体３２と上部胴体３４とによって構成され、下部胴体３２および上部胴体３４は、連結部３６によって互いに連結される。図示は省略するが、連結部３６には昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体３４の高さすなわちロボット１２の背の高さを変化させることができる。昇降機構は、後述するように、腰モータ３８（図３参照）によって駆動される。
【００３７】
なお、上述したロボット１２の背の高さは、上部胴体３４をそれの最下位置にしたときのものである。したがって、ロボット１２の背の高さは、１００ｃｍ以上にすることも可能である。
【００３８】
上部胴体３４の正面側のほぼ中央には、１つの全方位カメラ４０と１つのマイク４２とが設けられる。全方位カメラ４０は、ロボット１２の周囲を撮影するものであり、後述する眼カメラ４４とは区別される。この全方位カメラ４０としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。また、マイク４２は、周囲の音、とりわけコミュニケーション対象である人の声を取り込む。なお、これら全方位カメラ４０およびマイク４２の設置位置は上部胴体３４に限られず適宜変更され得る。
【００３９】
上部胴体３４の両肩には、それぞれ、肩関節４６Ｒおよび４６Ｌによって、上腕４８Ｒおよび４８Ｌが設けられる。肩関節４６Ｒおよび４６Ｌは、それぞれ、３軸の自由度を有する。すなわち、肩関節４６Ｒは、Ｘ軸、Ｙ軸およびＺ軸のそれぞれの軸廻りにおいて上腕４８Ｒの角度を制御できる。Ｙ軸は、上腕４８Ｒの長手方向（または軸）に平行な軸であり、Ｘ軸およびＺ軸は、そのＹ軸に対して、それぞれ異なる方向から直交する軸である。他方、肩関節４６Ｌは、Ａ軸、Ｂ軸およびＣ軸のそれぞれの軸廻りにおいて上腕４８Ｌの角度を制御できる。Ｂ軸は、上腕４８Ｌの長手方向（または軸）に平行な軸であり、Ａ軸およびＣ軸は、そのＢ軸に対して、それぞれ異なる方向から直交する軸である。
【００４０】
また、上腕４８Ｒおよび４８Ｌのそれぞれの先端には、肘関節５０Ｒおよび５０Ｌを介して、前腕５２Ｒおよび５２Ｌが設けられる。肘関節５０Ｒおよび５０Ｌは、それぞれ、Ｗ軸およびＤ軸の軸廻りにおいて、前腕５２Ｒおよび５２Ｌの角度を制御できる。
【００４１】
なお、上腕４８Ｒおよび４８Ｌならびに前腕５２Ｒおよび５２Ｌの変位を制御するＸ軸，Ｙ軸，Ｚ軸，Ｗ軸およびＡ軸，Ｂ軸，Ｃ軸，Ｄ軸では、それぞれ、「０度」がホームポジションであり、このホームポジションでは、図２に示すように、上腕４８Ｒおよび４８Ｌならびに前腕５２Ｒおよび５２Ｌは下方に向けられる。
【００４２】
また、図示は省略するが、上部胴体３４の肩関節４６Ｒおよび４６Ｌを含む肩の部分や上述の上腕４８Ｒおよび４８Ｌならびに前腕５２Ｒおよび５２Ｌには、それぞれ、タッチセンサ（図３で包括的に示す。：５４）が設けられていて、これらのタッチセンサ５４は、人がロボット１２の当該各部位に触れたかどうかを検知する。
【００４３】
前腕５２Ｒおよび５２Ｌのそれぞれの先端には、手に相当する球体５６Ｒおよび５６Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【００４４】
上部胴体３４の中央上方には、首関節５８を介して頭部６０が設けられる。首関節５８は、３軸の自由度を有し、Ｓ軸、Ｔ軸およびＵ軸の各軸廻りに角度制御可能である。Ｓ軸は首から真上（鉛直上向き）に向かう軸であり、Ｔ軸およびＵ軸は、それぞれ、そのＳ軸に対して異なる方向で直交する軸である。頭部６０には、人の口に相当する位置に、スピーカ６２が設けられる。スピーカ６２は、ロボット１２が、それの周辺の人に対して音声ないし音によってコミュニケーションを取るために用いられる。ただし、スピーカ６２は、ロボット１２の他の部位、たとえば胴体などに設けられてもよい。
【００４５】
また、頭部６０には、目に相当する位置に眼球部６４Ｒおよび６４Ｌが設けられる。眼球部６４Ｒおよび６４Ｌは、それぞれ眼カメラ４４Ｒおよび４４Ｌを含む。以下、右の眼球部６４Ｒと左の眼球部６４Ｌとをまとめて眼球部６４ということがあり、また、右の眼カメラ４４Ｒと左の眼カメラ４４Ｌとをまとめて眼カメラ４４ということもある。
【００４６】
眼カメラ４４は、ロボット１２に接近した人の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。眼カメラ４４としては、上述した全方位カメラ４０と同様のカメラを用いることができる。
【００４７】
たとえば、眼カメラ４４は眼球部６４内に固定され、眼球部６４は眼球支持部（図示せず）を介して頭部６０内の所定位置に取り付けられる。眼球支持部は、２軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部６０に対して設けられる軸であり、α軸は頭部６０の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部６０の正面側（顔）が向く方向に直交する方向の軸である。この実施例では、頭部６０がホームポジションにあるとき、α軸はＳ軸と平行であり、β軸はＵ軸と平行であるように設定される。このような頭部６０において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部６４ないし眼カメラ４４の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。
【００４８】
なお、眼カメラ４４の変位を制御するα軸およびβ軸では、「０度」がホームポジションであり、このホームポジションでは、図２に示すように、眼カメラ４４のカメラ軸は頭部６０の正面側（顔）が向く方向に向けられ、視線は正視状態となる。
【００４９】
図３はロボット１２の電気的な構成を示すブロック図であり、この図３を参照して、ロボット１２は、全体を制御するＣＰＵ６６を含む。ＣＰＵ６６は、マイクロコンピュータ或いはプロセサとも呼ばれ、バス６８を介して、メモリ７０、モータ制御ボード７２、センサ入力／出力ボード７４および音声入力／出力ボード７６に接続される。
【００５０】
メモリ７０は、図示は省略するが、ＲＯＭやＨＤＤおよびＲＡＭを含み、ＲＯＭやＨＤＤにはロボット１２の動作を制御するためのプログラムやデータなどが予め記憶される。プログラムには、たとえば、各センサ２６，３０，４０，４２，４４，５４，９２などによる検知情報を検出するための検出プログラム、外部コンピュータたとえば操作端末１４および開発端末１６との間で必要なデータを送受信するための通信プログラム、自律制御によって自身の動作を制御するための自律制御プログラムおよび受信した操作コマンド情報に基づいて自身の動作を制御するための遠隔制御プログラムなどがある。お辞儀などの個々のコミュニケーション行動は、モジュール化された各行動プログラムによって実現され、メモリ７０には複数の行動プログラムが各識別情報（操作コマンド）に対応付けて記憶されてよい。ＣＰＵ６６は複数のルールと現在の状況に基づいて次の行動を決定していくことでコミュニケーション行動を自律制御する。また、メモリ７０には各行動を実行する際に発生すべき音声または声の音声データ（音声合成データ）および所定の身振りを提示するための角度データなども記憶される。また、ＲＡＭはワークメモリやバッファメモリとして用いられる。
【００５１】
また、メモリ７０には、図示は省略するが、操作端末１４に対して遠隔制御の要求を行うか否かを判定するための呼出条件が記憶されている。呼出条件は、自律的コミュニケーション行動では対応できなくなったことを示す条件であり、たとえば、トラブルが生じたり、高度な言語理解が必要な場合などより細やかな対応（コミュニケーション行動）が必要な状況になったりしたことを示す条件であってよい。
【００５２】
また、呼出条件は、各種センサの出力情報に基づいて判定される条件であってよい。たとえば、条件の１つは、音声認識で所定のキーワード（「責任者を呼んで」など）が検出されたことであってよい。キーワードとしては、ロボット１２が相手の意図を分かっていないことを伝えるワード、たとえば「違う」、「そうじゃないんだけど」もしくは「わからないかなあ」も考えられる。また、他の条件は、超音波距離センサ３２で取得された距離が１ｍ以内である状態が５分以上になったこと（すなわち、人がロボット１２と長い間対話している状態）であってよい。さらにまた、他の条件は、特定のＩＤの無線タグを検出したこと（たとえばＶＩＰとして登録された人が現れたこと）であってもよい。なお、呼出条件としては、適宜、様々な条件が設定され得る。たとえば、人の顔表情認識で怒りが検出されたこと、顔同定機能で特定の人を検出したことが考えられる。なお、他の実施例では、呼出条件として、ロボット１２または周囲の環境に設けられた他のセンサの出力に基づく条件が設定されてよい。たとえば、オペレータ呼出ボタンがロボット１２または周囲の環境に設けられてよい。また、体表に設けた触覚センサ（たとえば皮膚センサ）で殴られた場合の反応が検出されたこと、赤外センサで長時間連続して人が検知されたこと、環境の混雑センサで一定以上の混雑度が検出されたことなども考えられる。
【００５３】
モータ制御ボード７２は、たとえばＤＳＰで構成され、各腕や首関節５８および眼球部６４などの各軸モータの駆動を制御する。すなわち、モータ制御ボード７２は、ＣＰＵ６６からの制御データを受け、右眼球部６４Ｒのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図３では、まとめて「右眼球モータ」と示す。）７８の回転角度を制御する。同様に、モータ制御ボード７２は、ＣＰＵ６６からの制御データを受け、左眼球部６４Ｌのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図３では、まとめて「左眼球モータ」と示す。）８０の回転角度を制御する。
【００５４】
また、モータ制御ボード７２は、ＣＰＵ６６からの制御データを受け、右肩関節４６ＲのＸ軸、Ｙ軸およびＺ軸のそれぞれの角度を制御する３つのモータと右肘関節５０ＲのＷ軸の角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「右腕モータ」と示す。）８２の回転角度を調節する。同様に、モータ制御ボード７２は、ＣＰＵ６６からの制御データを受け、左肩関節４６ＬのＡ軸、Ｂ軸およびＣ軸のそれぞれの角度を制御する３つのモータと左肘関節５０ＬのＤ軸の角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「左腕モータ」と示す。）８４の回転角度を調整する。
【００５５】
さらに、モータ制御ボード７２は、ＣＰＵ６６からの制御データを受け、首関節５８のＳ軸、Ｔ軸およびＵ軸のそれぞれの角度を制御する３つのモータ（図３では、まとめて「頭部モータ」と示す。）８６の回転角度を制御する。さらにまた、モータ制御ボード７２は、ＣＰＵ６６からの制御データを受け、腰モータ３８および車輪２２を駆動する２つのモータ（図３では、まとめて「車輪モータ」と示す。）２４の回転角度を制御する。
【００５６】
なお、この実施例では、車輪モータ２４を除くモータは、制御を簡素化するために、ステッピングモータ或いはパルスモータを用いるようにしてある。ただし、車輪モータ２４と同様に、直流モータを用いるようにしてもよい。
【００５７】
センサ入力／出力ボード７４もまた、同様に、ＤＳＰで構成され、各センサからの信号を取り込んでＣＰＵ６６に与える。すなわち、超音波距離センサ３０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード７４を通してＣＰＵ６６に入力される。また、全方位カメラ４０からの映像信号が、必要に応じてこのセンサ入力／出力ボード７４で所定の処理を施された後、ＣＰＵ６６に入力される。眼カメラ４４からの映像信号も、同様にして、ＣＰＵ６６に入力される。また、上述した複数のタッチセンサ（図３では、まとめて「タッチセンサ５４」と示す。）、および衝突センサ２６からの信号がセンサ入力／出力ボード７４を介してＣＰＵ６６に与えられる。
【００５８】
音声入力／出力ボード７６もまた、同様に、ＤＳＰで構成され、ＣＰＵ６６から与えられる音声合成データに従った音声または声がスピーカ６２から出力される。また、マイク４２からの音声入力が、音声入力／出力ボード７６を介してＣＰＵ６６に取り込まれる。
【００５９】
また、ＣＰＵ６６は、バス６８を介して通信ＬＡＮボード８８および無線通信装置９０に接続される。ＣＰＵ６６は、通信ＬＡＮボード８８および無線通信装置９０を用いて、たとえば無線ＬＡＮアクセスポイントを介して無線回線、電話回線、ＬＡＮ，インターネットのようなネットワーク１００に通信接続する。通信ＬＡＮボード８８は、ＤＳＰで構成され、ＣＰＵ６６から送られる送信データを無線通信装置９０に与え、無線通信装置９０からネットワーク１００を介して操作端末１４もしくは開発端末１６に送信する。具体的には、通信ＬＡＮボード８８は、全方位カメラ４０および眼カメラ４４によって検知した視覚情報やマイク４２によって検知した聴覚情報などの検知情報を操作端末１４に送信する。また、通信ＬＡＮボード８８は、無線通信装置９０を介して操作端末１４からの操作コマンドを受信し、受信した操作コマンドをＣＰＵ６６に与える。なお、ロボット１２が移動不可能に設置されている場合、ネットワーク１００へは有線で接続されてもよい。また、ロボット１２と操作端末１４とが無線により直接通信するように構成してもよい。
【００６０】
また、ＣＰＵ６６には無線タグ読取装置９２が接続される。無線タグ読取装置９２は、無線タグ（ＲＦＩＤタグ）から送信される識別情報の重畳された電波をアンテナを介して受信し、電波信号を増幅し、当該電波信号から識別情報を分離し、当該識別情報を復調（デコード）してＣＰＵ６６に与える。無線タグはイベント会場や会社などにいる人に装着されており、無線タグ読取装置９２は通信可能範囲内の無線タグを検出する。なお、無線タグはアクティブ型であってもよいし、無線タグ読取装置９２から発信される電波に応じて駆動されるパッシブ型であってもよい。
【００６１】
図１に戻って、
操作端末１４は、コンピュータであり、図示は省略するがＣＰＵを含み、ＣＰＵには、メモリ、データベース、表示装置、入力装置、スピーカおよび通信装置などが接続される。操作端末１４は、通信装置を介しネットワーク１００に有線または無線で接続されている。
【００６２】
操作端末１４のメモリには、当該操作端末１４の動作を制御するためのプログラムおよび必要なデータが記憶される。プログラムには、たとえば、ロボット１２および開発端末１６との間でデータを送受信するための通信プログラム、入力装置に入力された操作コマンドを検出するための検出プログラムおよび表示装置に画像などを表示するための表示プログラムなどがある。
【００６３】
操作端末１４のデータベースには、ロボット１２に対して行われた遠隔操作に関する情報を示すロボット操作情報が記憶される。ロボット操作情報には、時刻に対応付けてロボット１２に対して行われた操作に関する情報が登録されており、少なくともオペレータによって操作端末１４に入力された操作コマンドの履歴とロボット１２のセンサによって検出された周囲情報（センサ情報）の履歴とが含まれる。また、ロボット操作情報には、ロボット１２の位置や対話相手などを含むロボット１２に関する情報やオペレータに関する情報などが含まれてよい。さらに、データベースには、図示は省略するが、イベント会場や会社などに存在する人間の情報（たとえば、無線タグの識別情報、使用言語や行動履歴）なども記憶されてよい。
【００６４】
具体例としては、ロボット操作情報テーブルには、図４に示すように、時刻に対応付けて、オペレータ名、位置、状態、距離センサおよび後述する操作コマンドの情報などが登録される。時刻を示す情報としては、一定時間毎（たとえば、１秒毎）の時刻（たとえば、ｔ０，ｔ１，・・・，ｔｐ，・・・）が登録される。オペレータ名を示す情報としては、現在ロボット１２の遠隔操作を担当しているオペレータ名（もしくは、オペレータの識別情報）が登録される（たとえば、ｏｐ１）。位置を示す情報としては、当該ロボット１２が配置されている現在位置の情報が登録される。具体的には、当該ロボット１２の配置された建物や会場などの場所を示す情報（たとえば、ＡＴＲ受付）、および当該場所においてロボット１２が現在存在している位置の座標（たとえば、１２０，１４０）が登録される。状態を示す情報としては、ロボット１２の現在の状態が登録される。具体的には、対話者が存在するか否かや、対話者が存在する場合は対話者との位置関係（たとえば、対話者正面）などが登録される。距離センサを示す情報としては、超音波距離センサ３０で取得した対象物（対話者）との距離（たとえば、１００ｃｍ）が登録される。操作コマンドを示す情報としては、オペレータによってたとえば時刻ｔｐから単位時間経過するまで（次の時刻ｔｐ＋１になるまで）の間に入力された操作コマンドが登録される。具体的には、「お辞儀」や「前進」などの情報が登録される。また、当該時刻に操作コマンドの入力がない場合は、「なし」と登録される。また、図４には示していないが、ロボット１２が備える各センサ（タッチセンサ５４や衝突センサ２６など）から取得した各情報も適宜登録される。なお、ロボット１２がさらに他のセンサ（たとえば、皮膚センサや赤外センサ）を備えるようにした場合も、各センサからの取得情報が適宜登録される。
【００６５】
操作端末１４は、ロボット１２との通信によって、ロボット１２の現在位置座標、状態およびセンサ情報などの情報をたとえば一定時間毎（たとえば、１秒毎）に取得して、このロボット操作情報テーブルを生成し更新する。
【００６６】
たとえば、図４に示すロボット操作情報からは、時刻「ｔ０」には、オペレータ「ｏｐ１」がロボット１２の遠隔操作を担当しており、ロボット１２の配置されている場所は「ＡＴＲ受付」で、現在位置の座標は「１２０，１４０」であるということが分かる。また、ロボット１２には対話者が存在し、対話者との位置関係は「対話者正面」であり、その対話者との距離は「１００ｃｍ」である。さらに、当該時刻には、「お辞儀」という操作コマンドがオペレータによって入力されている。また、時刻「ｔｐ」、「ｔｐ＋１５」および「ｔｐ＋３０」には、続いてオペレータ「ｏｐ１」がロボット１２の遠隔操作を担当しており、ロボット１２が配置されている場所は「ＡＴＲ受付」で、対話者が存在し、対話者との位置関係は「対話者正面」であるということが分かる。また、時刻「ｔｐ」には、ロボット１２の現在の位置座標は「１２０，１４０」、対話者との距離は「１００ｃｍ」であり、「前進」という操作コマンドが入力されている。また、時刻「ｔｐ＋１５」には、ロボット１２の現在の位置座標は「１３０，１４０」、対話者との距離は「９０ｃｍ」であり、「前進」という操作コマンドが入力されている。さらに、時刻「ｔｐ＋３０」には、ロボット１２の現在の位置座標は「１４０，１４０」、対話者との距離は「８０ｃｍ」であり、操作コマンドの入力は「なし」である。
【００６７】
操作端末１４の表示装置には、ＧＵＩとして、遠隔操作画面１１０が表示される。遠隔操作画面１１０では、図５に示すように、たとえば、ロボットカメラ画像１１２、ロボット情報１１４、操作パネル１１６および依頼パネル１１８が表示される。
【００６８】
ロボットカメラ画像１１２には、ロボット１２から受信した眼カメラ４４の撮影画像が表示される。これによって、オペレータは、ロボット１２の眼カメラ４４が捕らえている画像、たとえば対話している人間をリアルタイムで確認しながらロボット１２の遠隔操作を実行する。なお、ロボットカメラ画像１１２には、眼カメラ４４による撮影画像の代わりに、ロボット１２の全方位カメラ４０によって撮影した画像を表示してもよいし、ロボット１２の周囲に設けた天井カメラからの画像を表示するようにしてもよい。また、カメラ画像の表示は１つに限定されず、複数のカメラ画像を表示するようにしてもかまわない。
【００６９】
ロボット情報１１４には、ロボット１２自体の情報、当該ロボット１２の状況および対話相手の情報などが表示される。具体的には、当該ロボット１２の配置された場所（施設、会場、会社など）、名前（もしくは識別情報）、配置された場所の地図および対話している人間の情報などが表示される。地図には、ロボット１２および対話相手を示すアイコンが各存在位置に表示される。これによって、オペレータは、ロボット１２が設置場所のどこに存在しているのか、対話相手がロボット１２に対してどこに存在しているのかなどを把握する。なお、操作端末１４は、地図情報を予め記憶しておいてもよいし、ロボット１２からセンサ情報とともに受信するようにしてもよい。ロボット１２および対話相手の位置は、たとえばロボット１２から一定時間ごとに操作端末１４に送信される。ロボット１２は初期の配置位置および向きを記憶しているので、自分の現在の位置および向きを常に把握している。また、ロボット１２は、超音波距離センサ３０の出力情報と自分の位置などから対話相手のおよその位置を推定できる。また、地図には、その場所に存在する対話相手以外の人間を示すアイコンも表示されてよい。
【００７０】
なお、ロボット１２の配置場所における人間の位置情報は、周囲に設置された天井カメラ、無線タグ読取装置などのような環境のセンサを用いて、当該環境のセンサと接続された他のコンピュータで検出してもよく、当該他のコンピュータからロボット１２に与え、ロボット１２から操作端末１４に送信されてもよい。なお、環境のセンサによってロボット１２の位置なども検出可能であるので、ロボット１２は、自分の位置および向きなどの情報も、人間の位置情報などとともに上記他のコンピュータから取得してもよい。
【００７１】
また、対話している人間の情報としては、名前、所属（たとえば、受付の人間や来客）、来訪回数、前回の来訪日、今回の来訪後の経過時間およびロボット１２が当該相手に既に行ったコミュニケーション行動の履歴などが表示される。なお、対話している人間の情報は、上述したように、データベースに記憶されているので、たとえば、ロボット１２から対話相手の識別情報（ＩＤ）を受信すると、この識別情報に基づいて当該人間の行動履歴などの情報が読み出され、ロボット情報１１４に表示される。これによって、オペレータは、ロボット１２の周囲の状況や対話している人間の情報などをリアルタイムで確認しながらロボット１２の遠隔操作を実行する。なお、これらオペレータに提示される情報は一例であり、ロボット情報１１４には適宜な情報が表示される。
【００７２】
操作パネル１１６では、オペレータが入力装置を操作することにより、ロボット１２の動作を制御する操作コマンドが入力される。たとえば、操作パネル１１６には、移動を指示するためのボタン、コミュニケーション行動を指示するためのボタンおよび遠隔操作の終了を指示するためのボタンなどが設けられる。具体的には、「前進」ボタンは、ロボット１２を前進させるためのボタンである。オペレータが「前進」ボタンを選択すると、ロボット１２は、たとえば一定距離だけ前進する。同様に、「後退」ボタンはロボット１２を後退させ、「右」ボタンはロボット１２を右旋回させ、「左」ボタンはロボット１２を左旋回させる。また、「お辞儀」ボタンは、ロボット１２にお辞儀というコミュニケーション行動を実行させるためのボタンである。オペレータが「お辞儀」ボタンを選択すると、ロボット１２は、首関節５８を制御して頭部６０を下に向け、すなわち、お辞儀をする。また、「右指差し」のボタンは、ロボット１２に右指差しというコミュニケーション行動を実行させるためのボタンである。オペレータが「右指差し」のボタンを選択すると、ロボット１２は、右肩関節４６Ｒおよび右肘関節５０Ｒを制御して腕を前方に上げる。同様にして、操作パネル１１６に表示されたボタンをオペレータが選択ことにより、ロボット１２に、うなずき、左指差しなどの身振りや発話を含む所定のコミュニケーション行動を実行させることができる。また、「終了」ボタンは、オペレータによる遠隔制御を終了させるためのボタンである。オペレータが「終了」のボタンを選択すると、ロボット１２は、自律制御プログラムに基づいて自身の動作を制御するようになる。なお、操作パネル１１６に設けられるこれらのボタンは例示であり、様々な操作コマンドに対応したボタンが適宜設けられる。
【００７３】
依頼パネル１１８では、オペレータが入力装置を操作することによって、開発端末１６（プログラマ）に対する自律制御プログラムの作成依頼が選択され、またはコメントが入力される。依頼パネル１１８には、たとえば、自律制御プログラムの作成を依頼するプログラム作成依頼ボタンおよびコメントを記述するコメント記述欄が設けられる。
【００７４】
具体的には、プログラム作成依頼ボタンが選択されると、プログラム作成ボタンが選択された直前の所定時間（たとえば、６０秒）にデータベースに記憶されたロボット操作情報がプログラム化情報として自動的に取得され、当該プログラム化情報を含む自律制御プログラムの作成依頼が、開発端末１６に対してネットワーク１００を介して送信される。ここで、プログラム化情報とは、ロボット１２がオペレータの遠隔操作によって実行している動作を自律制御プログラム化するために利用される情報をいう。また、コメント記述欄には、オペレータによって、プログラマ（開発者）に対する補足説明、たとえば、自律制御プログラムの作成に役立つ情報が入力される。プログラム作成依頼ボタンが選択されたときに、コメント記述欄にコメントが入力されていると、プログラム化情報および当該コメントを含む作成依頼が開発端末１６に送信される。
【００７５】
操作端末１４の入力装置は、マウス、キーボードまたはタッチパネルなどであり、オペレータは入力装置を操作することによってロボット１２を遠隔操作するための操作コマンドやコメントを遠隔操作画面１１０で入力することができる。スピーカは、ロボット１２のマイク４２が取得した聴覚情報を出力する。
【００７６】
なお、操作端末１４は、ロボット１２と離れた場所、たとえばオフィスに配置されるが、たとえばオペレータによって持ち運び可能もしくは携帯可能に形成されてもよいし、また、或る場所に固定的に設けられてもよい。
【００７７】
開発端末１６は、コンピュータであり、図示は省略するがＣＰＵを含み、ＣＰＵには、メモリ、表示装置、入力装置および通信装置などが接続される。開発端末１６は、通信装置を介しネットワーク１００に有線または無線で接続されている。
【００７８】
開発端末１６のメモリには、当該開発端末１６の動作を制御するためのプログラムおよび必要なデータが記憶される。プログラムには、たとえば、ロボット１２および操作端末１４との間でデータを送受信するための通信プログラムおよび表示装置にプログラム化情報などを表示するための表示プログラムが含まれる。
【００７９】
開発端末１６の表示装置には、図示は省略するが、たとえば、プログラムを作成するプログラム作成画面や受信したプログラム化情報が表示される。プログラマは、入力装置を操作することによって、プログラムを作成する。
【００８０】
開発端末１６の通信装置は、たとえば、操作端末１４から新規自律制御プログラムの作成依頼を受信し、作成した新規自律制御プログラムをロボット１２に対して送信する。
【００８１】
このコミュニケーションロボット改良システム１０では、上述したように、ロボット１２は、通常、自律制御によって受付や道案内などのコミュニケーション行動を伴う動作を行う。
【００８２】
ロボット１２が自律制御によって実行するコミュニケーション行動（自律的コミュニケーション行動）には、たとえば、人間に肩を触れられると、「なーに」と発話して手を振るというようなものがある。具体的には、ロボット１２のＣＰＵ６６は、タッチセンサ５４からの、肩部のタッチセンサ５４が“ＯＮ”の状態になったことを表す信号をセンサ入力／出力ボードを介して読み込むと、メモリ７０から音声入力／出力ボード７６へ音声データを送信し、スピーカ６２から合成音声「なーに」を出力する。また、ＣＰＵ６６は、メモリ７０から角度データをモータ制御ボード７２へ送信し、手を振るように、腕（図２に示す、Ａ，Ｂ，Ｃ，Ｄ，Ｘ，Ｙ，Ｚ，Ｗ軸）の角度を制御する。また、コミュニケーション行動には、たとえば、人間に頭を触れられると、「わーい」と発話して首を振るというものや、人間とのコミュニケーションがない状態が続くと、「暇だな」と発話して首を振る、もしくは、「触ってね」と発話して手を差し出すというものがあり、ＣＰＵ６６は、上述したものと同様にこれらの動作を制御する。なお、これらのコミュニケーション行動は例示であり、ロボット１２は、これらの他にも様々なコミュニケーション行動を行うことができる。ロボット１２は、上述のように、通常の、単純で定型的なコミュニケーション行動については自律制御によって行う。
【００８３】
しかし、自律的コミュニケーション行動では対応することが難しい状況や事態になった場合（上述した呼出条件を満たす場合）には、ロボット１２は、遠隔制御の要求を操作端末１４に対して送信する。
【００８４】
操作端末１４では、ロボット１２からの呼出要求を受信すると、表示装置に、図５に示すような遠隔操作画面１１０が表示され、オペレータは、ロボット１２の遠隔操作を開始する。ロボット１２の遠隔操作は、上述したように、オペレータが操作端末１４の入力装置を操作することによって行われる。オペレータは、たとえば、図５に示すような操作パネル１１６に設けられた「前進」、「後退」、「右」、「左」などの移動を指示するための各ボタンを選択することによってロボット１２の移動を制御する。また、たとえば、「お辞儀」、「うなずき」、「右指差し」、「左指差し」などのコミュニケーション行動を指示するための各ボタンを選択することによってロボット１２にコミュニケーション行動を実行させる。操作端末１４は、入力データとボタン配置データとに基づいて操作パネル１１６でのボタン選択を検出すると、選択されたボタンに対応する操作コマンドを特定し、当該操作コマンド情報をネットワーク１００を介してロボット１２に送信する。ロボット１２は、操作端末１４から操作コマンド情報を受信すると、当該操作コマンド情報に基づいて自身の動作を制御する。具体的には、ロボット１２のＣＰＵ６６は、操作コマンド情報に対応するコミュニケーション行動のプログラムに従って処理を実行する。これによって、ロボット１２は所定の身振りを提示し、所定の音声を出力し、或いは移動もしくは旋回する。
【００８５】
また、操作端末１４には、ロボット１２から周囲情報（センサ情報）などが一定時間毎（たとえば、１秒毎）に送信され、当該周囲情報は、操作端末１４のデータベースに記録される。さらに、オペレータによって操作コマンドが入力されたときは、当該操作コマンド情報も操作端末１４のデータベースに記録される。このようにして、たとえば、図４に示したようなロボット操作情報が操作端末１４のデータベースに記録されていく。なお、上述したように、ロボット操作情報には、当該周囲情報および操作コマンド情報の他にも、時刻に対応付けて、ロボット１２の位置情報やオペレータ情報などのロボットの操作に関する情報が適宜記憶される。
【００８６】
オペレータは、上述したように、必要に応じてロボット１２の遠隔操作を行う。しかし、現在遠隔操作で行っている動作（コミュニケーション行動）の中にも、自律制御プログラムを作成すれば、ロボット１２の自律制御だけで対応できるような定型的なものが存在する場合がある。このような場合には、操作端末１４から開発端末１６に対して自律制御プログラムの作成依頼が送信される。たとえば、オペレータは、実際に遠隔操作を行っているときに、現在入力した操作コマンド、あるいは操作コマンドの一連の入力（操作コマンド系列）が、ロボット１２から或るセンサ情報を受信したときに必ず入力する操作コマンド、あるいは或る状況で必ず行う一連の入力であると気付く場合がある。このような場合には、オペレータは、上述した、遠隔操作画面１１０に表示される依頼パネル１１８のプログラム作成依頼ボタンを選択する。すると、操作端末１４のＣＰＵは、データベースに記憶されたロボット操作情報から、プログラム作成依頼ボタンが選択された時刻直前の所定時間（たとえば、６０秒）の情報（すなわち、プログラム化情報）を読み出し、当該プログラム化情報を含むプログラムの作成依頼をネットワーク１００を介して開発端末１６に送信する。さらに、オペレータが依頼パネル１１８のコメント記述欄にコメント（プログラムを作成するときに役立つ意見や情報など）を入力しておくと、当該コメントをさらに含む作成依頼が開発端末１６に送信される。
【００８７】
具体例としては、ロボット１２が人間と対話しているときに、超音波距離センサ３０によって検出された対話者との距離が１００ｃｍであったとする。この場合に、オペレータは、たとえば、対話者の音声を検出し難いという理由から、常に対話者との距離が８０ｃｍになるまでロボット１２を遠隔操作によって前進させていたとする。すると、オペレータは、当該動作（すなわち、人間と対話するときには、当該人間との距離を８０ｃｍに保つという動作）を自律制御で行えるように、開発端末１６（プログラマ）に対して、新規自律制御プログラムの作成を依頼する。すなわち、当該操作コマンドの履歴と距離センサの検出データの履歴とを含むロボット操作情報をプログラム化情報として含む作成依頼が開発端末１６に対して送信される。また、コメント記述欄には、たとえば、「人間と対話するときの距離を８０ｃｍに保つような新規自律制御プログラム作成希望」などと記述してよい。すると、当該コメントをさらに含む作成依頼が送信される。
【００８８】
このように、オペレータが実際にロボット１２の遠隔操作を行っているときに、自律制御で行うことが望ましい動作（コミュニケーション行動）があると気付いた場合、当該動作に対応するプログラム化情報およびコメントが、オペレータの入力に応じて開発端末１６に対して送信される。これに応じて、プログラマは受信したプログラム化情報およびコメントを調査して、新規に自律制御プログラム化が可能な動作が有るか否かを容易に判断することができる。
【００８９】
また、操作端末１４のＣＰＵは、定期的にたとえば１日に１回または数時間に１回程度、データベースに記憶したロボット操作情報から同一の操作コマンド系列を抽出し、開発端末１６に送信する。たとえば、ロボット操作情報に記憶された全ての時刻から所定時間（たとえば、３０秒）の間に入力された一連の操作コマンドを操作コマンド系列として抽出し、各操作コマンド系列について同一の操作コマンド系列が有るか否かを判断する。同一の操作コマンド系列が有る場合は、当該操作コマンド系列に基づくロボット１２の動作は自律制御プログラム化できる可能性があると判断して、当該操作コマンド系列に対応するロボット操作情報をプログラム化情報として送信する。なお、同一の操作コマンド系列を抽出する際、さらに周囲情報（センサ情報）系列も同一のものを抽出するようにしてもよい。
【００９０】
このように、操作端末１４のＣＰＵは新規に自律制御プログラム化ができそうな動作を自動的に抽出して、開発端末１６に送信するので、実際に遠隔操作しているオペレータが気付かないような場合にもプログラム化の作成依頼を行うことができ、また、作成依頼というオペレータの負担を減少させることができる。
【００９１】
また、開発端末１６では、操作端末１４から新規自律制御プログラムの作成依頼を受信すると、プログラマは、受信したプログラム化情報を参考にして、新規自律制御プログラムの作成が可能であるか否かを判断する。プログラマ自らがロボット１２の動作に関する全ての情報から新たに自律制御化できるものを見つけることに比べて、受信したプログラム化情報を参考にすると、プログラマは容易に自律制御化できる動作を見つけることができる。プログラマは、新規に自律制御化できる動作が存在すると、新規自律制御プログラムを作成する。新規自律制御プログラムが作成された場合、作成されたプログラムはロボット１２に送信される。
【００９２】
ロボット１２は、開発端末１６から送信された新規自律制御プログラムを受信すると、当該プログラムをたとえばメモリ７０に記憶する。ロボット１２は、メモリ７０に新たに記憶したプログラムを加えて更新された自律制御プログラムに基づいて、自律的コミュニケーション行動を実行する。このように、開発端末１６で作成された新規自律制御プログラムは、ロボット１２に自律制御プログラムとして実装することができる。このような新規自律制御プログラムの実装は、開発したロボット１２を実際に現場で使用しながら継続的に行うことができるので、効率よくその現場に適応して動作を制御できるロボットに改良していくことができる。
【００９３】
具体的には、ロボット１２のＣＰＵ６６は、図６に示すフロー図に従って、自律制御と遠隔制御とを組み合わせたコミュニケーション行動の全体処理を実行し、操作端末１４のＣＰＵは、図７および図８に示すフローチャートに従って、開発端末１６に対する新規自律制御プログラムの作成依頼処理を実行する。
【００９４】
図６に示すように、ロボット１２のＣＰＵ６６は、コミュニケーション行動処理を開始すると、ステップＳ１で停止命令が有るか否かを判断する。たとえば、停止命令は、ロボット１２に停止ボタンを設けておき、当該ボタンが操作されたか否かで判断するようにしてもよいし、操作端末１４からの停止命令が有るか否かで判断するようにしてもよい。ステップＳ１で“ＹＥＳ”の場合、すなわち停止命令が有る場合は、そのまま当該処理を終了する。一方、ステップＳ１で“ＮＯ”の場合、すなわち、停止命令が無い場合は、ステップＳ３に進む。
【００９５】
ステップＳ３では、周囲情報（センサ情報）を取得する。たとえば、超音波距離センサ３０、マイク４２、眼カメラ４４、タッチセンサ５４および無線タグ読取装置９２からの周囲情報を取得する。
【００９６】
次のステップＳ５では、上述した呼出条件が満たされたか否かを判断する。すなわち、ステップＳ３で取得した情報に基づいて、自律制御プログラムによる自律的コミュニケーション行動で対応できる状況であるか否かを判断する。ステップＳ５で“ＮＯ”の場合、すなわち、呼出条件を満たさない場合は、ステップＳ７に進み、上述したような自律的コミュニケーション行動を必要に応じて実行し、ステップＳ１に戻る。一方、ステップＳ５で“ＹＥＳ”の場合、すなわち、呼出条件を満たした場合は、自律的コミュニケーション行動では対応できない状況であると判断し、ステップＳ９に進む。
【００９７】
ステップＳ９では、遠隔制御の要求を操作端末１４に対して送信する。つまり、オペレータを呼び出す。次のステップＳ１１では、ステップＳ３で取得した周囲情報を操作端末１４に対して送信する。なお、操作端末１４では、当該周囲情報が記憶され、当該周囲情報に基づいて遠隔操作画面１１０が表示され、必要に応じてオペレータによる操作コマンドの入力が行われる。
【００９８】
ステップＳ１３では、操作端末１４から操作コマンドが有るか否かを判断する。ステップＳ１３で“ＮＯ”の場合、すなわち操作コマンドが無ければ、そのままステップＳ１７に進む。一方、ステップＳ１３で“ＹＥＳ”の場合、すなわち、操作コマンドが有る場合は、ステップＳ１５で操作コマンドに従うコミュニケーション行動（身体動作や発話）を実行して、ステップＳ１７に進む。
【００９９】
ステップＳ１７では、操作端末１４から遠隔制御の終了要求（終了コマンド）が有るか否かを判断する。たとえば、上述した操作端末１４の操作パネル１１６の「終了」ボタン（図５参照）が選択されたか否かを判断する。なお、遠隔制御の終了要求と上述したステップＳ１の停止命令とは別のものである。ステップＳ１７で“ＮＯ”の場合、すなわち、遠隔制御の終了要求が無い場合は、遠隔制御を継続すると判断してステップＳ１１に戻る。一方、ステップＳ１７で“ＹＥＳ”の場合、すなわち、遠隔制御の終了要求が有る場合は、遠隔制御を終了すると判断して、ステップＳ１に戻る。
【０１００】
なお、この実施例では、操作端末１４からの操作コマンドが有ると、直ぐに当該操作コマンドに従うコミュニケーション行動を実行するようにしてある。ただし、操作端末１４からの操作コマンドを受信したときに、コミュニケーション行動を実行中である場合には、当該コミュニケーション行動の実行を終了してから、制御コマンドに従うコミュニケーション行動を実行するようにしてもよい。
【０１０１】
図７は、操作端末１４のＣＰＵがオペレータの操作に従って開発端末１６に対して新規自律制御プログラムの作成を依頼するときの全体処理の一例を示すフロー図である。図７を参照して、操作端末１４のＣＰＵは、当該処理を開始すると、ステップＳ２１で、ロボット１２から遠隔制御の要求を受信したか否かを判定する。このステップＳ２１の判定は、所定時間毎に繰り返し実行される。
【０１０２】
ステップＳ２１で“ＹＥＳ”の場合、すなわち、ロボット１２から遠隔制御の要求を受信したときは、ステップＳ２３でロボット１２から周囲情報（センサ情報）を受信し、データベースに記録する。具体的には、所定時間毎（たとえば、１秒毎）にロボット１２の超音波距離センサ３０やタッチセンサ５４などからの周囲情報を取得し、図４に示すようなロボット操作情報テーブルを更新する。なお、ロボットの位置や状態などのロボットに関する情報およびオペレータに関する情報も適宜取得し、ロボット操作情報テーブルを更新する。
【０１０３】
次のステップＳ２５では、現在のロボットカメラからの画像（映像）とロボット情報とを遠隔操作画面１１０に表示する。ロボットカメラ画像１１２およびロボット情報１１４は、ステップＳ２３で受信した情報に基づいて生成および更新される。なお、遠隔操作画面１１０には、操作パネル１１６および依頼パネル１１８も表示される。すなわち、遠隔操作画面１１０には、上述した図５に示すような、ロボットカメラ画像１１２、ロボット情報１１４、操作パネル１１６および依頼パネル１１８が表示される。
【０１０４】
ステップＳ２７では、操作コマンドが入力されたか否かを判断する。たとえば、入力装置からの入力データと操作パネル１１６のボタン配置データとに基づいて、オペレータによって操作コマンドの選択が行われたか否かを判断する。ステップＳ２７で“ＹＥＳ”の場合、すなわち、操作コマンドの入力が有った場合は、ステップＳ２９に進む。
【０１０５】
ステップＳ２９では、当該選択された操作コマンドを特定してロボット１２に送信する。なお、ロボット１２では、当該送信された操作コマンドに応じたコミュニケーション行動（身体動作や発話）が行われる。
【０１０６】
次のステップＳ３１では、ステップＳ２７で入力された操作コマンドをデータベースに記憶する。たとえば、入力された操作コマンドが「前進」であれば、図４に示すようなロボット操作情報テーブルの操作コマンドの欄の当該入力を行った時刻の欄に「前進」と登録する。ステップＳ３１を終了すると、処理はステップＳ２３に戻る。
【０１０７】
また、ステップＳ２７で“ＮＯ”の場合、すなわち、操作コマンドの入力が無かった場合は、ステップＳ３３に進む。
【０１０８】
ステップＳ３３では、オペレータによるプログラム化の要求が有るか否かを判断する。具体的には、上述した遠隔操作画面１１０に表示される依頼パネル１１８のプログラム作成依頼ボタンが選択されたか否かを判断する。ステップＳ３３で“ＹＥＳ”の場合、すなわち、オペレータによるプログラム化の要求が有る場合は、ステップＳ３５に進む。
【０１０９】
ステップＳ３５では、データベースから過去ｋ秒間のロボット操作情報（すなわち、プログラム化情報）を読み出す。所定値ｋは適宜な値（たとえば６０秒程度）に設定される。ｋの値は、オペレータの入力によって変更可能にされてもよい。具体的には、たとえば、時刻「ｔｐ＋６０」にプログラム作成依頼ボタンが選択されると、たとえば、時刻「ｔｐ＋６０」から時刻「ｔｐ」までのロボット操作情報をプログラム化情報として読み出す。
【０１１０】
次のステップＳ３７では、ステップＳ３５で読み出したプログラム化情報を含む新規自律制御プログラムの作成依頼を開発端末１６に送信する。なお、ステップＳ３３でプログラム作成ボタンが選択されたときに、コメント記述欄にコメントの記載が有る場合は、当該コメントも開発端末１６に送信する。なお、開発端末１６では、プログラマによって、送信されたプログラム化情報に基づいて自律制御プログラムの作成が可能か否かが判断され、可能な場合は新規自律制御プログラムが作成される。また、プログラムが作成された場合は、当該作成されたプログラムはロボット１２に送信され、実装される。ステップＳ３７の処理が終了すると、処理はステップＳ２３に戻る。
【０１１１】
また、ステップＳ３３で“ＮＯ”の場合、すなわち、プログラム化の要求が無い場合は、ステップＳ３９に進み、終了要求が有るか否かを判断する。なお、当該判断は、たとえば、操作端末１４の遠隔操作画面１１０に当該処理終了用（遠隔制御終了用）のボタンを設けておき、これをオペレータが操作したか否かで判断するようにしてよい。このステップＳ３７で“ＹＥＳ”の場合は当該処理を終了する。一方、ステップＳ３７で“ＮＯ”の場合は、処理はステップＳ２３に戻る。
【０１１２】
なお、図７に示した処理では、プログラム化情報の取得は、オペレータによってプログラム作成依頼ボタンが選択されたときに、当該時刻直前の所定時間ｋのロボット操作情報をプログラム化情報として自動的に取得する（ステップＳ３５）というように実行されたが、これに限定されない。たとえば、オペレータが過去に記憶されたロボット操作情報からプログラム化に利用する情報を任意的に選択できるようにしてもかまわない。たとえば、データベースに記憶されたロボット操作情報を表示装置に表示する操作履歴表示ボタンを遠隔操作画面１１０（たとえば、依頼パネル１１８）に設ける。オペレータによって、この操作履歴表示ボタンが選択されると、表示装置には、データベースに記憶されたロボット操作情報が表示される。オペレータは、当該表示されたロボット操作情報から自律制御プログラム化して欲しい部分に対応する情報をプログラム化情報として選択する、というようにしてもよい。たとえば、オペレータは、以前に入力した操作コマンド（あるいは、操作コマンド系列）が、ロボット１２から或るセンサ情報を受信したときに必ず入力する操作コマンド（系列）である、と後になって気付く場合がある。このような場合には、オペレータは、表示装置にロボット操作情報を表示させ、表示されたロボット操作情報を見て確認しながら、自律制御プログラム化に利用する情報を適切に取得することができる。
【０１１３】
具体的には、操作端末１４のＣＰＵは、オペレータによって上述した操作履歴表示ボタンが選択されると、たとえば図４に示したようなロボット操作情報をメモリから読み出し、表示装置に表示する。オペレータによって、自律制御プログラムで実行したほうがよいと気付いた動作（操作コマンドもしくは操作コマンド系列）を含むプログラム化するために利用する情報（たとえば、時刻ｔｐから時刻ｔｐ＋３０までの情報）が選択されると、当該オペレータによって選択された情報をプログラム化情報としてメモリから読み出す。そして、上述した自動的に取得されるプログラム化情報の代わりに、当該プログラム化情報を含むプログラムの作成依頼をネットワーク１００を介して開発端末１６に送信する。たとえば、図７に示したフロー図において、ステップＳ３３でプログラム化の要求が入力される前にオペレータによってプログラム化するために利用する情報が選択されると、ステップＳ３５で当該選択された情報をプログラム化情報として読み出し、ステップＳ３７で開発端末１６に送信するというようにしてもよい。
【０１１４】
図８は、操作端末１４のＣＰＵが自動的にロボット操作情報からプログラム化情報を抽出し、開発端末１６に新規自律制御プログラムの作成依頼を行う処理を示すフロー図である。なお、図８では、簡単のため、操作端末１４のデータベースにロボット操作情報が蓄積された後の処理を示してある。また、当該処理は、たとえば数時間に１度もしくは１日に１度程度、定期的に行われる。
【０１１５】
図８を参照して、ステップＳ４１では、データベースに記憶されたロボット操作情報の全ての時刻ｔｉから所定時間であるＴ秒間（たとえば３０秒間）にオペレータがロボット１２に対して行った操作コマンド系列Ｓ（Ｓ＝｛ｃｏｍ_ｔｉ，ｃｏｍ_ｔｉ＋１，・・・，ｃｏｍ_ｔｉ＋Ｔ｝）を抽出し、Ｓｘ＝{Ｓ０，Ｓ１，・・・，Ｓｎ}とする。つまり、或る時刻ｔｉからＴ秒間の一連の操作コマンドの入力Ｓ＝{ｃｏｍ_ｔｉ，ｃｏｍ_ｔｉ＋１，・・・，ｃｏｍ_ｔｉ＋Ｔ}を抽出し、これを時刻Ｔ０からＴ１まで（たとえば、この日の始め（Ｔ０）から終わり（Ｔ１）までなど当該抽出処理対象期間）の全ての時刻ｔｉについて行い、Ｓｘ＝{Ｓ０，Ｓ１，・・・，Ｓｎ}を抽出する。ここで、「ｉ」は或る時刻を指定するための変数である。また、「ｘ」は或る時刻の操作コマンド系列を指定するための変数である。「ｎ」はＴ０から（Ｔ１−Ｔ）までの単位時間（たとえば１秒）の総数である。また、「ｃｏｍ_ｔｉ」は時刻ｔｉに対応する操作コマンドである。「Ｓｘ」は時刻ｔｘに対応する操作コマンド系列（すなわち、時刻ｔｘから時刻ｔｘ＋Ｔまでに入力された一連の操作コマンド）である。
【０１１６】
具体例としては、図４を参照して、「ｃｏｍ_ｔｐ」は時刻ｔｐに入力された操作コマンド、すなわち「前進」であり、「Ｓｐ」は、たとえば時刻ｔｐから時刻ｔｐ＋３０までに入力された操作コマンド系列、すなわち「前進，・・・，前進，・・・，なし」である。
【０１１７】
次のステップＳ４３では、全てのＳｘについて、同一の操作コマンド系列（Ｓｙ）が有るか否かを判断する。ここで、「ｙ」は「ｘ」とは異なる時刻の操作コマンド系列を指定するための変数である。ステップＳ４３で“ＮＯ”の場合、すなわち、ロボット操作情報テーブルに記憶されたロボット操作情報の中に同一の操作コマンド系列が存在しない場合は、そのまま当該処理を終了する。一方、ステップＳ４３で“ＹＥＳ”の場合、すなわち、ロボット操作情報テーブルに記憶されたロボット操作情報の中に同一の操作コマンド系列が存在する場合は、ステップＳ４５に進む。
【０１１８】
ステップＳ４５では、同一の操作コマンド系列が存在したＳｘに対応する（を含む）ロボット操作情報をデータベースから抽出する。具体例としては、図４を参照して、時刻ｔｐから時刻ｔｐ＋３０までの操作コマンド系列Ｓｐに同一の操作コマンド系列が存在した場合には、時刻ｔｐから時刻ｔｐ＋３０までのロボット操作情報をデータベースから抽出する。
【０１１９】
次のステップＳ４７では、ステップＳ４５で抽出したロボット操作情報（つまり、プログラム化情報）を開発端末１６に送信する。すなわち、自律制御プログラムの作成依頼を行い、当該処理を終了する。なお、上述したように、開発端末１６では、プログラマによって、送信されたプログラム化情報に基づいて新規自律制御プログラムの作成が可能か否かが判断され、可能な場合は新規自律制御プログラムが作成される。また、作成されたプログラムはロボット１２に送信され、実装される。
【０１２０】
なお、プログラム化情報を抽出するときには、操作コマンド系列が同一である場合だけでなく、さらにセンサ情報の系列も同一であるロボット操作情報をプログラム化情報として抽出するようにしてもよい。このようにすれば、自律制御化の可能性のより高いプログラム化情報を抽出できる。
【０１２１】
この実施例によれば、オペレータの入力に応じてもしくは自動的に、自律制御プログラムの作成に必要な情報を取得し、開発端末１６に送信する。したがって、プログラマは、プログラマ自らロボット１２の全ての動作に関する情報から自律制御化できるものを見つけることと比較して、送信される情報（プログラム化情報）を参考にすれば、容易に自律制御化できる動作を発見することができる。また、プログラマによって新規自律制御プログラムが作成された場合は、当該新規自律制御プログラムはロボット１２に送信され、実装される。このような新規自律制御プログラムの実装は、開発したロボット１２を実際に現場で使用しながら継続的に行えるので、ロボット１２が自律制御で行える動作が増えていき、オペレータによる遠隔操作の負担を減少させていくことができる。つまり、より効率的に自律制御と遠隔制御とを組み合わせて自身の動作を制御するロボット１２に改良していくことができる。具体的には、単純で定型的パターンの対話は自律制御で行い、高度な対話はオペレータによる遠隔制御で行うというように、自律制御と遠隔制御の双方をシームレスに効率よく実行するロボット１２に改良していくことができる。
【０１２２】
なお、上述の実施例では、ロボット１２は、周囲情報（センサ情報）に基づいて自律的コミュニケーション行動では対応できなくなったことを判断し、オペレータを呼び出すようにした。そして、ロボット１２がオペレータを呼び出したときにだけ、オペレータによる遠隔制御を行うようにした。しかし、これに限定されず、たとえば、オペレータが常にロボット１２の動作を監視するようにしておき、オペレータが遠隔操作の必要性を判断して、ロボット１２の遠隔操作を実行するようにしてもかまわない。
【０１２３】
また、上述の各実施例では、ロボット操作情報を操作端末１４のデータベースに記憶するようにしたが、これに限定されず、ロボット操作情報は、ロボット１２に記憶するようにしてもかまわない。このような場合には、図８に示すようなプログラム化情報の抽出および新規自律制御プログラムの作成依頼処理をロボット１２のＣＰＵ６６が実施するようにしてもよい。また、操作端末１４がオペレータの入力に応じて、ロボット１２に記憶された当該ロボット操作情報を読み出し、操作端末１４がオペレータの入力に応じてもしくは自動的に必要な情報（プログラム化情報）を選択（取得）して開発端末１６に送信するようにしてもかまわない。
【０１２４】
また、上述の各実施例では、操作端末１４とは別に、開発端末１６を備えるようにしたが、開発端末１６の機能（プログラマの入力による新規自律制御プログラムの作成）を操作端末１４に備えるようにしてもかまわない。この場合、上述した新規自律制御プログラムの作成依頼を送信する必要は無いので、たとえば、当該操作端末１４の表示装置に、たとえば或るマークやメッセージを表示することによって、新規自律制御プログラムの作成依頼が有る旨をプログラマに伝えるようにしてもよい。そして、たとえば、プログラマの操作によって上述したプログラム化情報を当該操作端末１４の表示装置に表示させるようにし、当該プログラム化情報を参考にしてプログラマが新規自律制御プログラムを作成するというようにしてもかまわない。
【０１２５】
また、上述の各実施例では、ロボット１２、操作端末１４および開発端末１６は、それぞれ１台ずつネットワーク１００を介して接続するようにした。しかし、これに限定されず、コミュニケーションロボット改良システム１０は、ネットワーク１００を介して接続した複数のロボット１２、複数の操作端末１４および複数の開発端末１６を含むように構成してもかまわない。たとえば、ロボット１２が５台、操作端末１４が２台、開発端末１６が１台というような構成でもかまわない。
【０１２６】
また、たとえばロボット改良システム１０が複数のロボット１２や操作端末１４、開発端末１６を含む場合は、当該システム１０は、ネットワーク１００を介して接続され、プログラム化情報の取得および新規自律制御プログラムの作成依頼に関する全体処理を制御する中央制御装置をさらに備えるようにしてもかまわない。たとえば、複数のロボット１２によってそれぞれ取得された周囲情報（センサ情報）の履歴や複数の操作端末１４にそれぞれ入力された操作コマンド情報の履歴を含むロボット操作情報を中央制御装置に記憶させ、プログラム化情報の抽出および自律制御プログラムの作成依頼処理（図８）を中央制御装置のＣＰＵが実施するようにしてもかまわない。また、たとえば、操作端末１４がオペレータの入力に応じて、中央制御装置に記憶させた複数のロボット１２や複数の操作端末１４から送信されたロボット操作情報を読み出し、操作端末１４がオペレータの入力に応じてもしくは自動的に必要な情報を選択して開発端末１６に送信するようにしてもかまわない。さらにまた、たとえば、複数の操作端末１４の中から或る操作端末１４を選択し、選択した操作端末１４を上述した中央制御装置として用いてもかまわない。
【０１２７】
また、上述の各実施例では、ロボット１２は予め設定した動作を行うようにしたが、他の実施例では、オペレータが、遠隔操作画面１１０でロボット１２の各モータ２４，３８，７８〜８６を個別に操作し、ロボット１２の動作を制御するようにしてもよい。
【０１２８】
また、上述の各実施例では、遠隔操作画面１１０上に操作パネル１１６を表示してマウスクリック方式またはタッチパネル方式などでロボット１２の動作を指示するようにしたが、他の実施例では、操作端末１４に、操作スイッチまたはジョイスティックなどの操作部を表示装置とは別に設けて、当該操作部の操作でロボット１２の動作を指示するようにしてもよい。
【図面の簡単な説明】
【０１２９】
【図１】この発明の一実施例のコミュニケーションロボット改良システムの概要を示す図解図である。
【図２】図１のコミュニケーションロボットの外観を正面から見た図解図である。
【図３】図１のコミュニケーションロボットの電気的な構成を示すブロック図である。
【図４】図１の操作端末のデータベースに記憶されるロボット操作情報テーブルの一例を示す図解図である。
【図５】図１の操作端末の表示装置に表示される遠隔操作画面の一例を示す図解図である。
【図６】図１のコミュニケーションロボットのＣＰＵによって実行されるコミュニケーション行動の全体処理の動作の一例を示すフロー図である。
【図７】図１の操作端末のＣＰＵによって実行される新規自律制御プログラムの作成依頼処理の動作の一例を示すフロー図である。
【図８】図１の操作端末のＣＰＵによって実行される新規自律制御プログラムの作成依頼処理の動作の他の一例を示すフロー図である。
【符号の説明】
【０１３０】
１０  …コミュニケーションロボット改良システム
１２  …コミュニケーションロボット
１４  …操作端末
１６  …開発端末
３０  …超音波距離センサ
４０  …全方位カメラ
４２  …マイク
４４  …眼カメラ
５４  …タッチセンサ
６６  …ＣＰＵ
７０  …メモリ
７２  …モータ制御ボード
７４  …センサ入力／出力ボード
７６  …音声入力／出力ボード
８８  …通信ＬＡＮボード
９０  …無線通信装置
９２  …無線タグ読取装置
１００  …ネットワーク
１１０  …遠隔操作画面
【図１】
2007213190.tif 000003
【図２】
2007213190.tif 000004
【図３】
2007213190.tif 000005
【図４】
2007213190.tif 000006
【図５】
2007213190.tif 000007
【図６】
2007213190.tif 000008
【図７】
2007213190.tif 000009
【図８】
2007213190.tif 000010