(57)【特許請求の範囲】
【請求項１】
ユーザから入力されたコマンドに基づいて動作するロボットの制御方法であって、
前記ユーザから入力された前記コマンドを認識するステップと、
認識した前記コマンドが物理的な動作を伴う運動コマンドであるか否かを判定するステップと、
前記ロボットの周囲の環境を認識するステップと、
認識した前記ロボットの周囲環境及び判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認するステップと、
を備えるロボットの制御方法。
【請求項２】
前記運動コマンドが予め格納されたコマンドデータベースを参照して、認識した前記コマンドが前記運動コマンドであるか否かを判定する請求項１に記載のロボットの制御方法。
【請求項３】
前記ロボットが有するモータの制御が行われるか否かに応じて、認識した前記コマンドが前記運動コマンドであるか否かを判定する請求項１又は２に記載のロボットの制御方法。
【請求項４】
認識した前記コマンドに応じて前記モータの回転数を低下させる制御が行われる場合、認識した前記コマンドを実行するか否かの確認を行わず、認識した前記コマンドを実行する請求項３に記載のロボットの制御方法。
【請求項５】
前記ユーザからの前記コマンドの入力は、前記ロボットとは物理的に離れた端末を用いて行われる請求項１〜４のいずれか一項に記載のロボットの制御方法。
【請求項６】
認識した前記コマンドを実行するか否かの確認は、前記端末に設けられた表示部に確認画面を表示することによって行われる請求項５に記載のロボットの制御方法。
【請求項７】
現在時刻を取得するステップをさらに備え、
取得した前記現在時刻、認識した前記ロボットの周囲環境及び前記判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認する請求項１〜６のいずれか一項に記載のロボットの制御方法。
【請求項８】
ユーザから入力されたコマンドに基づいて動作するロボットの制御方法であって、
前記ユーザから入力された前記コマンドを認識するステップと、
認識した前記コマンドが物理的な動作を伴う運動コマンドであるか否かを判定するステップと、
現在時刻を取得するステップと、
取得した前記現在時刻及び判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認するステップと、
を備えるロボットの制御方法。
【請求項９】
ユーザから入力されたコマンドに基づいて動作するロボットの制御装置であって、
前記ユーザから入力された前記コマンドを認識するコマンド認識手段と、
前記コマンド認識手段により認識された前記コマンドが物理的な動作を伴う運動コマンドであるか否かを判定する判定手段と、
前記ロボットの周囲の環境を認識する周辺環境認識手段と、
前記周辺環境認識手段が認識した前記ロボットの周囲環境及び前記判定手段の判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認する確認手段と、
を備えるロボットの制御装置。
【請求項１０】
ユーザから入力されたコマンドに基づいて動作するロボットの制御装置であって、
前記ユーザから入力された前記コマンドを認識するコマンド認識手段と、
前記コマンド認識手段により認識された前記コマンドが物理的な動作を伴う運動コマンドであるか否かを判定する判定手段と、
現在時刻を取得する時刻取得手段と
前記時刻取得手段が取得した前記現在時刻及び前記判定手段の判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認する確認手段と、
を備えるロボットの制御装置。
【請求項１１】
モータを備え、当該モータを駆動させることにより、物理的な動作を伴う運動コマンドを実行可能なロボットであって、
ユーザから入力されたコマンドを認識するコマンド認識手段と、
前記コマンド認識手段により認識された前記コマンドが前記運動コマンドであるか否かを判定する判定手段と、
前記ロボットの周囲の環境を認識する周辺環境認識手段と、
前記周辺環境認識手段が認識した前記ロボットの周囲環境及び前記判定手段の判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認する確認手段と、
を備えるロボット。
【請求項１２】
モータを備え、当該モータを駆動させることにより、物理的な動作を伴う運動コマンドを実行可能なロボットであって、
ユーザから入力されたコマンドを認識するコマンド認識手段と、
前記コマンド認識手段により認識された前記コマンドが前記運動コマンドであるか否かを判定する判定手段と、
現在時刻を取得する時刻取得手段と
前記時刻取得手段が取得した前記現在時刻及び前記判定手段の判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認する確認手段と、
を備えるロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボットの制御方法、ロボットの制御装置、及びロボットに関する。
【背景技術】
【０００２】
近年、遠隔操作により動作するロボットが普及している。ユーザは、様々な入力方法（例えば、音声、タッチパネル、押しボタン、ジェスチャー等）を用いて、ロボットに対してコマンド入力（命令）を行う。
【０００３】
特許文献１には、音声認識により動作するロボットが開示されている。ロボットは、音声の誤認識により誤って実行されると危険な危険コマンドを記憶し、危険コマンドに類似する棄却単語を有する。これにより、危険コマンドの誤認識を防止し、音声認識の精度の向上を図っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４５３９３１３号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ロボットがユーザからのコマンドを誤認識したり、ユーザがコマンドを誤入力したりした場合、誤ったコマンドが実行される。つまり、ロボットは、ユーザの意図しない動作を行ってしまうという問題があった。特に、ロボットが物理的な動作を伴うコマンドを誤って実行した場合には、周囲の迷惑となってしまう恐れもある。
【０００６】
なお、特許文献１に記載のロボットは、棄却単語を用いることにより、意図しない危険コマンドの実行を防止しているが、音声認識処理の精度が十分でなければ、棄却すべき棄却単語を危険コマンドとして誤認識してしまう可能性がある。つまり、誤って危険コマンドを実行してしまう可能性がある。したがって、棄却単語を用いたとしても意図しない動作を確実に排除することができない。
【０００７】
本発明は、このような問題を解決するためになされたものであり、ユーザの意図しない動作を確実に防止できるロボットの制御方法、ロボットの制御装置、及びロボットを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様にかかるロボットの制御方法は、ユーザから入力されたコマンドに基づいて動作するロボットの制御方法であって、前記ユーザから入力された前記コマンドを認識するステップと、認識した前記コマンドが物理的な動作を伴う運動コマンドであるか否かを判定するステップと、判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認するステップと、を備えるものである。これにより、運動コマンドが実行される場合には、ユーザに対して確認処理が行われる。そのため、ロボットの誤認識やユーザの誤入力が発生した場合であっても、ユーザが意図しない運動コマンドが実行することを確実に防止できる。
【０００９】
また、前記運動コマンドが予め格納されたコマンドデータベースを参照して、認識した前記コマンドが前記運動コマンドであるか否かを判定してもよい。
【００１０】
また、前記ロボットが有するモータの制御が行われるか否かに応じて、認識した前記コマンドが前記運動コマンドであるか否かを判定してもよい。これにより、運動コマンドか否かを示す情報を予め保持しておく必要がなくなり、メモリコストが削減できる。
【００１１】
また、認識した前記コマンドに応じて前記モータの回転数を低下させる制御が行われる場合、認識した前記コマンドを実行するか否かの確認を行わず、認識した前記コマンドを実行してもよい。これにより、減速動作等の回転数を低下させる動作については、確認処理が行われない。つまり、緊急停止等のコマンドについては確認なしで実行されるため、非常時において迅速な動作が可能となる。
【００１２】
また、前記ユーザからの前記コマンドの入力は、前記ロボットとは物理的に離れた端末を用いて行われてもよい。
【００１３】
また、認識した前記コマンドを実行するか否かの確認は、前記端末に設けられた表示部に確認画面を表示することによって行われてもよい。
【００１４】
また、前記ロボットの周囲の環境を認識するステップをさらに備え、認識した前記ロボットの周囲環境及び前記判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認してもよい。これにより、ユーザが意図しない運動コマンドが実行されても、周囲に影響が無い状況では、ユーザに対して確認を行わない。そのため、ロボット制御の利便性が向上する。
【００１５】
また、現在時刻を取得するステップをさらに備え、取得した前記現在時刻及び前記判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認してもよい。これにより、ユーザが意図しない運動コマンドが実行されても影響が無い時間帯では、ユーザに対して確認を行わない。そのため、ロボット制御の利便性が向上する。
【００１６】
本発明の一態様にかかるロボットの制御装置は、ユーザから入力されたコマンドに基づいて動作するロボットの制御装置であって、前記ユーザから入力された前記コマンドを認識するコマンド認識手段と、前記コマンド認識手段により認識された前記コマンドが物理的な動作を伴う運動コマンドであるか否かを判定する判定手段と、前記判定手段の判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認する確認手段と、を備えるものである。これにより、運動コマンドが実行される場合には、ユーザに対して確認処理が行われる。そのため、ロボットの誤認識やユーザの誤入力が発生した場合であっても、ユーザが意図しない運動コマンドが実行することを確実に防止できる。
【００１７】
本発明の一態様にかかるロボットは、モータを備え、当該モータを駆動させることにより、物理的な動作を伴う運動コマンドを実行可能なロボットであって、ユーザから入力されたコマンドを認識するコマンド認識手段と、前記コマンド認識手段により認識された前記コマンドが前記運動コマンドであるか否かを判定する判定手段と、前記判定手段の判定結果に基づいて、認識した前記コマンドを実行するか否かを前記ユーザに確認する確認手段と、を備えるものである。これにより、運動コマンドが実行される場合には、ユーザに対して確認処理が行われる。そのため、ロボットの誤認識やユーザの誤入力が発生した場合であっても、ユーザが意図しない運動コマンドが実行することを確実に防止できる。
【発明の効果】
【００１８】
本発明により、ユーザの意図しない動作を確実に防止できるロボット制御方法、ロボット制御装置、及びロボットを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態１にかかるロボットの外観斜視図である。
【図２】実施の形態１にかかるロボットの制御システムのブロック図である。
【図３】実施の形態１にかかるコマンドデータベースの構成例を示す図である。
【図４】実施の形態１にかかるロボットの制御方法を示すフローチャートである。
【図５】実施の形態１にかかる確認画面の一例である。
【図６】実施の形態１の変形例１にかかるボタン型操作用端末の構成例を示す図である。
【図７】実施の形態１の変形例１にかかる確認画面の一例である。
【図８】実施の形態１の変形例２にかかるタッチパネル型操作用端末の構成例を示す図である。
【図９】実施の形態１の変形例２にかかる確認画面の一例である。
【図１０】実施の形態２にかかるロボットの制御システムのブロック図である。
【図１１】実施の形態２にかかるロボットの制御方法を示すフローチャートである。
【発明を実施するための形態】
【００２０】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態にかかるロボットの外観斜視図である。ロボット１は、ロボット本体９１と、アーム９２と、を備える。アーム９２は、複数の関節を有し、ロボット本体９１に連結されている。ロボット１は、関節に設けられたモータ（図示省略）を制御することにより、ロボット本体９１に対してアーム９２を相対的に変位させる。また、ロボット１は、ロボット本体９１の下部に駆動輪（図示省略）を有する。駆動輪を回転駆動させるモータ（図示省略）を制御することにより、ロボット１は移動する。つまり、ロボット１は、モータを制御することにより、物理的な動作を行う。なお、物理的な動作とは、ロボット１の全部又は一部の位置が周囲の物体（例えば、床や人等）に対して相対的に変化することを言う。
【００２１】
図２にロボット１の制御システムのブロック図を示す。ロボット１は、無線ＬＡＮアダプタ１１と、カメラ１２と、コマンド処理部１３と、スピーカ１４と、ディスプレイ１５と、コマンドデータベース１６と、入力装置１７と、補助記憶部１８と、モータ制御部１９と、を備える。図１に示した制御システムにおいて、ロボット１は、インターネット３を介して、操作用端末１００から送信される操作コマンドを受信し、当該操作コマンドに応じた動作（例えば、情報の提供や、物体の移動等）を実行する。
【００２２】
無線ＬＡＮ（Local Area Network）アダプタ１１は、インターネット３を介して、操作用端末１００と無線通信を行う。カメラ１２は、例えば、ロボット１の頭部に搭載されており、ロボット１の周囲の環境を撮像する。
【００２３】
コマンド処理部１３は、ＣＰＵ(Central Processing Unit)１３１と、メモリ１３２と、を備える。ＣＰＵ１３１及びメモリ１３２は、各種デバイスや処理部とバス及びインターフェース（Ｉ／Ｆ）を介して接続されている。ＣＰＵ１３１は、認識したコマンドを一旦メモリ１３２に格納する。そして、ＣＰＵ１３１は、補助記憶部１８に格納されたコマンド処理プログラムを読み出し、コマンドデータベース１６を参照して、認識したコマンドが物理的な動作を伴うコマンド（以下、運動コマンドと称す。）であるか否かを判定する。
【００２４】
具体的には、ＣＰＵ１３１は、認識したコマンドをテキスト（文字列）化する。そして、ＣＰＵ１３１は、インターフェースを介してコマンドデータベース１６にアクセスし、認識したコマンドが運動コマンドであるか否かを判定する。ＣＰＵ１３１は、判定結果をメモリ１３２に格納する。本実施の形態のロボット１では、ユーザからのコマンドは音声信号を用いる。音声信号のコマンド解析のためのコマンド処理部１３は、公知の技術を用いた簡単な構成である。そのため、低コストで本発明を実現できる。
【００２５】
スピーカ１４は、コマンド処理部１３に入力された音声信号を出力したり、メモリ１３２に蓄積された音声信号をユーザの要求に応じて出力したりする。ディスプレイ１５は、ロボット１の設定情報や、コマンド処理部１３の処理結果等を表示する。なお、スピーカ１４やディスプレイ１５等の出力デバイスは、ロボット内蔵型でもよいし、外付け型でもよい。
【００２６】
コマンドデータベース１６は、インデックス、判定対象コマンド（ロボット１が動作可能な各種コマンド）、コマンドが運動コマンドであるか否かを示すコマンドフラグ、及びコマンドの分類が対応付けて格納されている（図３参照）。このとき、コマンドフラグとは、コマンドが運動コマンドであるか否かを示す情報である。分類とは、コマンド処理部１３による処理内容を示す情報である。
【００２７】
本実施の形態においては、運動コマンドには、１のコマンドフラグが対応付けられている。一方、運動コマンド以外のコマンド（例えば、ディスプレイ１５を用いた情報の表示や、スピーカ１４を用いた音声の再生等）には、０のコマンドフラグが対応付けられている。コマンドフラグは、予め設定されていてもよいし、モータの制御が行われるか否かに応じて適宜設定されてもよい。なお、コマンドデータベース１６に格納されている情報は、図３に示す情報に限られない。また、本実施の形態においては、コマンドフラグの値を０または１の２値で示しているが、これに限られるものではなく、０〜１の連続値を用いて、動作内容等に応じて重み付けしてもよい。
【００２８】
入力装置１７は、マウス等のポインティングデバイスや、キーボード等の数値入力デバイスや、マイク等の音声入力デバイスである。ユーザは、入力装置１７を用いて、コマンド処理部１３に対する命令や閾値等の設定を行う。
【００２９】
モータ制御部１９は、ＣＰＵ１９１と、メモリ１９２と、を備える。ＣＰＵ１９１は、コマンド処理部１３のＣＰＵ１３１の命令に応じて、モータ１９３〜１９７を制御する。モータ１９３〜１９７は、ロボット１の各部（例えば、アーム関節や、駆動輪等）に設けられている。
【００３０】
モータ制御部１９では、ＣＰＵ１９１は、コマンド処理部１３からのコマンドを一旦メモリ１９２に格納する。ＣＰＵ１９１は、図示しない補助記憶部に格納されたモータ制御処理プログラムを読み出し、処理結果をメモリ１９２に格納する。メモリ１９２には、モータ制御に必要な各種のデータ及び計算結果が蓄積される。ＣＰＵ１９１は、必要に応じて、メモリ１９２に蓄積された情報を参照する。
【００３１】
続いて、本実施の形態にかかるロボット１の制御方法について図４を参照して説明する。図４は、ロボット１の制御方法を示すフローチャートである。まず、ユーザが、操作用端末１００に対して音声によりコマンドを入力する。すると、当該コマンドの音声信号が、インターネット３を介して、操作用端末１００からロボット１の無線ＬＡＮアダプタ１１へ送信される。
【００３２】
無線ＬＡＮアダプタ１１は、受信した音声信号をコマンド処理部１３に送信する。コマンド処理部１３は、入力された音声信号のコマンドを認識し、解析する（ステップＳ１１）。つまり、ＣＰＵ１３１が、音声信号のコマンドをテキスト化して、メモリ１３２に格納する。なお、音声信号を解析して、テキスト列を取得する方法は公知の技術を用いることができるため、詳細な説明は省略する。
【００３３】
次に、コマンド処理部１３は、認識したコマンドが運動コマンドであるか否かを判定する（ステップＳ１２）。具体的には、ＣＰＵ１３１は、図３に示したコマンドデータベース１６を参照して、メモリ１３２に格納したコマンドのコマンドフラグが０であるか１であるかを判定する。
【００３４】
コマンド処理部１３が認識したコマンドのコマンドフラグが０である場合、つまり、コマンド処理部１３が認識したコマンドが運動コマンドでない場合（ステップＳ１２：Ｎｏ）、コマンド処理部１３は、当該コマンドを実行する（ステップＳ１５）。具体的には、コマンド処理部１３のＣＰＵ１３１が、スピーカ１４やディスプレイ１５等の出力デバイスに対して、コマンドに応じた命令を出力する。これにより、ロボット１は、運動コマンドでないコマンドを実行する。この場合、ロボット１の動作は、物理的な動作を伴わない。そのため、たとえロボット１が実行するコマンドが誤認識や誤入力の結果であっても、周囲の人や物に迷惑をかけることはない。
【００３５】
一方、コマンド処理部１３が認識したコマンドのコマンドフラグが１である場合、つまり、コマンド処理部１３が認識したコマンドが運動コマンドである場合（ステップＳ１２：Ｙｅｓ）、コマンド処理部１３は、当該コマンドを実行するか否かをユーザに確認する（ステップＳ１３）。例えば、コマンド処理部１３のＣＰＵ１３１は、図５に示すようなコマンド実行の確認画面を、ディスプレイ１５に表示することにより、ユーザに対して確認を行う。図５、「移動  前進  最大速度」というコマンドを実行するか否かを確認している画面である。ここで表示されるコマンドは、コマンド処理部１３が認識したコマンドである。つまり、ユーザが意図した（入力した）コマンドと一致しているとは限らない。なお、ＣＰＵ１３１は、無線ＬＡＮアダプタ１１及びインターネット３を介して、操作用端末１００の表示画面（図示省略）に確認画面を表示させてもよい。勿論、確認処理は画面表示だけに限られず、ＣＰＵ１３１は、スピーカ１４を用いて音声による確認を行ってもよい。
【００３６】
ステップＳ１３における確認に対して、ユーザは、ロボット１の入力装置１７や、操作用端末１００を用いて、コマンド処理部１３が認識した運動コマンドを実行するか否かをロボット１に命令する（ステップＳ１４）。具体的には、ユーザは、図５に示した確認画面の「はい」又は「いいえ」を選択することにより、ロボット１に対して命令を行う。
【００３７】
ユーザがロボット１に対して運動コマンドを実行しないと命令した場合（ステップＳ１４：Ｎｏ）、ロボット１は、何もコマンドを実行しない。つまり、ロボット１は、何も動作せず、再びコマンドの入力待ちの状態となる。
【００３８】
一方、ユーザがロボット１に対して運動コマンドを実行すると命令した場合（ステップＳ１４：Ｙｅｓ）、ロボット１は、運動コマンドを実行する（ステップＳ１５）。具体的には、コマンド処理部１３のＣＰＵ１３１が、モータ制御部１９に対して、運動コマンドを送信し、当該運動コマンドに応じたモータ制御を命令する。モータ制御部１９は、受信した運動コマンドをメモリ１９２に格納する。ＣＰＵ１９１は、メモリ１９２に格納された運動コマンドを参照し、ロボット１が備えるモータ１９３〜１９７のうち、当該運動コマンドの実行に必要なモータに対してトルク制御を行う。これにより、ロボット１は、運動コマンドに応じた動作を実行する。
【００３９】
以上のように、本実施の形態にかかるロボット１の構成によれば、ロボット１は、ユーザから入力されたコマンドを認識し、コマンドデータベースを参照して、認識したコマンドが運動コマンドであるか否かを判定する。コマンド処理部１３が認識したコマンドが運動コマンドである場合、ロボット１は、当該運動コマンドを実行するか否かをユーザに確認する。そして、ユーザにより運動コマンドの実行が命令された場合に、はじめて運動コマンドを実行する。このため、ロボット１の誤認識や、ユーザの誤入力等により、ロボット１が誤った運動コマンドを認識した場合であっても、ユーザは、当該運動コマンドを実行するか否かを確認できる。そのため、ロボット１が、ユーザの意図しない運動コマンドを実行することを確実に防ぐことができる。その結果、ロボット１の安全性や信頼性を向上させることができる。
【００４０】
特に、ユーザが乗り込んで操縦するロボットではなく、遠隔操作により動作するロボットにおいては、ロボットの近傍にユーザがいないことが多い。そのため、ロボットがユーザの意図しない動作を実行してしまった場合、ユーザは当該動作を止めることができない。つまり、本発明にかかるロボット制御方法は、遠隔操作により動作するロボットに特に有効である。
【００４１】
なお、ロボット１が認識したコマンドが、運動コマンドでない場合は、誤って実行したとしても周囲に与える影響は少ない。そのため、運動コマンド以外のコマンドは、コマンド認識後に確認無しで実行される。その結果、ユーザは、ロボット１を効率よく操作することができる。
【００４２】
さらに、上記の実施の形態においては、予め設定されたコマンドフラグに応じて、運動コマンドか否かを判定しているが、判定方法はこれに限られるものではない。例えば、モータの制御が行われる場合は、運動コマンドであると判定し、モータの制御が行われない場合は、運動コマンドでないと判定してもよい。加えて、モータ制御が行われる場合であっても、モータの回転数を低下させるコマンドを認識した場合には、確認処理を行わずに、当該コマンドを実行してもよい。モータの回転数を低下させるコマンドは、ロボット１の動作を停止に導くためのコマンドであると考えられる。これにより、例えば、緊急停止等のコマンドについては確認なしで実行される。そのため、非常時において迅速な動作が可能となる。
【００４３】
（変形例１）
本実施の形態の変形例１について説明する。上記の実施の形態においては、ロボット１へのコマンド入力手段として音声入力を用いたが、変形例１においては、コマンド入力手段として、押しボタンを用いる。なお、その他の構成については上記の実施の形態１と同様であるので、説明を適宜省略する。
【００４４】
図６に変形例１にかかるボタン型操作用端末２００の構成例を示す。ボタン型操作用端末２００は、表示画面２０１と、コマンドボタン２０２と、実行ボタン２０３と、を備える。なお、ロボット１とボタン型操作用端末２００とは、無線ＬＡＮを介して接続されている。
【００４５】
コマンドボタン２０２（「０」〜「９」のボタン）には、ロボット１を操作するための各コマンドのそれぞれが割り当てられている。このとき、コマンドボタン２０２の数だけしかコマンドを命令できないわけではなく、コマンドボタン２０２の押す順序や、同時に押すコマンドボタン２０２の組み合わせ等により、コマンドボタン２０２の数よりも多くのコマンドを命令できる。
【００４６】
続いて、変形例１にかかるロボット１の制御方法について説明する。なお、下記の説明においては、コマンドボタン２０２の「１」ボタンに「最高速度で後退する」というコマンドが割り当てられているとする。まず、ユーザが、コマンドボタン２０２の「１」ボタンを押下げする。これにより、ロボット１に対して、「最高速度で後退する」というコマンドが入力される。ロボット１は、入力された当該コマンドを認識する（図４のステップＳ１１）。
【００４７】
コマンド処理部１３は、コマンドデータベース１６を参照して、認識したコマンド「後退」が運動コマンドであるか否かを判定する（ステップＳ１２）。図３に示したように、「後退」というコマンドのコマンドフラグは１である。そのため、コマンド処理部１３は、「後退」というコマンドが運動コマンドであると判定する（ステップＳ１２：Ｙｅｓ）。
【００４８】
コマンド処理部１３は、「後退」コマンドが運動コマンドであると判定すると、ボタン型操作用端末２００の表示画面２０１に、「最高速度で後退する」という動作をロボット１に実行させるか否かの確認画面を表示する（ステップＳ１３、図７参照）。
【００４９】
そして、ユーザが、実行ボタン２０３を押下げすると（ステップＳ１４：Ｙｅｓ）、ロボット１は、コマンド処理部１３が認識したコマンドを実行する（ステップＳ１５）。つまり、ロボット１は、最高速度で後退する動作を行う。
【００５０】
（変形例２）
本実施の形態の変形例２について説明する。上記の実施の形態においては、ロボット１へのコマンド入力手段として音声入力や押しボタンを用いたが、変形例２においては、コマンド入力手段として、タッチパネルを用いる。なお、その他の構成については上記の実施の形態１と同様であるので、説明を適宜省略する。
【００５１】
図８に変形例２にかかるタッチパネル型操作用端末３００の構成例を示す。タッチパネル型操作用端末３００は、タッチパネル画面３０１を備える。図８に示した構成例においては、タッチパネル画面３０１に、コマンド選択領域３０２と、速度選択領域３０３と、コマンド命令領域３０４と、が表示されている。勿論、タッチパネル画面３０１の構成は、図８に示す構成に限られない。なお、ロボット１とタッチパネル型操作用端末３００とは、無線ＬＡＮを介して接続されている。
【００５２】
ユーザが、コマンド選択領域３０２に触れると、ロボット１が実行可能な各種コマンドが表示され、実行させたいコマンドを選ぶことができる。また、ユーザが、速度選択領域３０３のスライドバーをスクロールさせることにより、移動速度を連続的に設定することができる。さらに、ユーザが、コマンド命令領域３０４に触れると、選択したコマンドがロボット１に対して入力することができる。
【００５３】
続いて、変形例２にかかるロボット１の制御方法について説明する。まず、ユーザが、コマンド選択領域３０２及び速度選択領域３０３を操作して、例えば図８に示すように、「後退  最高速度」を選択し、コマンド命令領域３０４にタッチする。これにより、「後退  最高速度」というコマンドが無線ＬＡＮを介してロボット１に入力される。ロボット１は、入力された当該コマンドを認識する（図４のステップＳ１１）。
【００５４】
コマンド処理部１３は、コマンドデータベース１６を参照して、認識したコマンド「後退」が運動コマンドであるか否かを判定する（ステップＳ１２）。図３に示したように、「後退」というコマンドのコマンドフラグは１である。そのため、コマンド処理部１３は、「後退」というコマンドが運動コマンドであると判定する（ステップＳ１２：Ｙｅｓ）。
【００５５】
コマンド処理部１３は、「後退」コマンドが運動コマンドであると判定すると、タッチパネル型操作用端末３００のタッチパネル画面３０１に、「後退  最高速度」という動作をロボット１に実行させるか否かの確認画面を表示する（ステップＳ１３、図９参照）。
【００５６】
そして、ユーザが、コマンド実行領域３０５をタッチすると（ステップＳ１４：Ｙｅｓ）、ロボット１は、認識したコマンドを実行する（ステップＳ１５）。つまり、ロボット１は、最高速度で後退する動作を行う。
【００５７】
上述した変形例１、２において説明したように、コマンド処理部１３における運動コマンドか否かの判定は、入力されたコマンドの認識処理後（コマンドのテキスト情報取得後）に、コマンドデータベースを参照して行われる。つまり、コマンドのテキスト情報さえ取得できれば、コマンドの入力手段は限定されない。言い換えると、ユーザに対してマルチモーダル・インターフェースを提供することができる。なお、入力手段としては、上記の音声、押しボタン、タッチパネルに加えて、ジェスチャー等も用いることができる。
【００５８】
＜実施の形態２＞
本発明にかかる実施の形態２について説明する。本実施の形態にかかるロボット２の制御システムのブロック図を図１０に示す。図１０に示すロボット２は、図２に示したロボット１の構成に加えて、位置取得部２１と、時刻取得部２２と、を備える。ロボット２は、入力されたコマンド内容に加えて、ロボット２の場所（周囲環境）や、コマンドが入力された時刻に基づいて、コマンドを実行するか否かをユーザに対して確認する。なお、その他の構成についてはロボット１と同様であるので、説明を適宜省略する。
【００５９】
位置取得部２１は、例えばＧＰＳ装置等であり、ロボット２の自己位置情報を取得する。自己位置情報の取得は、ＧＰＳ装置に限られず、公知の技術を用いることができる。また、位置取得部２１は、予めメモリに格納された地図情報や、カメラ１２により撮像された周囲環境の撮像画像に基づいて、自己位置を推定してもよい。時刻取得部２２は、例えば時計であり、現在の時刻を取得する。
【００６０】
続いて、本実施の形態にかかるロボット２の制御方法について図１１を参照して説明する。図１１は、ロボット２の制御方法を示すフローチャートである。まず、ユーザが、操作用端末１００に対して音声によりコマンドを入力する。すると、当該コマンドの音声信号が、インターネット３を介して、操作用端末１００からロボット２の無線ＬＡＮアダプタ１１へ送信される。
【００６１】
実施の形態１の図２において説明したステップＳ１１、Ｓ１２と同様に、無線ＬＡＮアダプタ１１は、受信した音声信号をコマンド処理部１３に送信する。コマンド処理部１３は、音声信号のコマンドを認識し、解析する（ステップＳ２１）。次に、コマンド処理部１３は、認識したコマンドが運動コマンドであるか否かを判定する（ステップＳ２２）。具体的には、ＣＰＵ１３１は、図３に示したコマンドデータベース１６を参照して、メモリ１３２に格納したコマンドのコマンドフラグが０であるか１であるかを判定する。
【００６２】
コマンド処理部１３が認識したコマンドのコマンドフラグが０である場合、つまり、コマンド処理部１３が認識したコマンドが運動コマンドでない場合（ステップＳ２２：Ｎｏ）、コマンド処理部１３は、当該コマンドを実行する（ステップＳ２９）。これにより、ロボット２は、運動コマンド以外の動作を実行する。
【００６３】
一方、コマンド処理部１３が認識したコマンドのコマンドフラグが１である場合、つまり、コマンド処理部１３が認識したコマンドが運動コマンドである場合（ステップＳ２２：Ｙｅｓ）、位置取得部２１は、ロボット２の自己位置情報を取得し、自己位置を認識する（ステップＳ２３）。ＣＰＵ１３１は、当該自己位置に基づいて、周囲に障害物や階段、人等の存在を認識する。つまり、ＣＰＵ１３１は、ロボット２の周囲の環境を認識する。勿論、周囲環境の認識は、自己位置取得に基づくものに限られない。例えば、ロボット２が備えるカメラ１２を用いて周囲の環境を撮像し、当該撮像画像を画像処理することにより、周囲の環境を認識してもよい。
【００６４】
ＣＰＵ１３１は、周囲の環境に基づいて、環境コマンドフラグ値を算出する。具体的には、ロボット２の周囲に存在する障害物等の位置に応じた値（例えば、０〜１の連続値）を環境コマンドフラグ値として算出する。より詳細には、障害物等の位置が、ロボット２に近い程大きい環境コマンドフラグ値を算出し、ロボット２から遠い程小さい環境コマンドフラグ値を算出する。言い換えると、ＣＰＵ１３１は、ロボット２と周囲の障害物等との距離に応じて、環境コマンドフラグ値を算出する。
【００６５】
例えば、ロボット２のアームを動かした場合に、当該アームが届く範囲に障害物等が存在する場合、ＣＰＵ１３１は、環境コマンドフラグ値を１．０と算出する。また、ロボット２の移動可能な範囲内に人が存在する場合には、ＣＰＵ１３１は、環境コマンドフラグ値を０．８と算出する。さらに、ロボット２が周囲に障害物等が全く存在しない広場にいる場合には、ＣＰＵ１３１は、環境コマンドフラグ値を０．１と算出する。勿論、上記の環境コマンドフラグ値は一例である。また、ＣＰＵ１３１は、ロボット２と障害物等との間の距離と、環境コマンドフラグ値との関係を示す関数を用いて環境コマンドフラグ値を算出してもよい。
【００６６】
次に、時刻取得部２２は、現在時刻を取得する（ステップＳ２４）。ＣＰＵ１３１は、現在時刻に基づいて、時刻コマンドフラグ値を算出する。具体的には、ＣＰＵ１３１は、現在時刻に応じた値（例えば０〜１の連続値）を時刻コマンドフラグ値として算出する。より詳細には、現在時刻が、夜遅い時間である程大きい時刻コマンドフラグ値を算出し、昼間に近い時間である程小さい時刻コマンドフラグ値を算出する。つまり、モータの駆動音等の騒音が発生してほしくない時間帯では時刻コマンドフラグ値を大きい値とし、それ以外の時間帯では、時刻コマンドフラグ値を小さい値とする。このように、コマンド処理部１３は、オンザフライで環境コマンドフラグ値及び時刻コマンドフラグ値を算出する。
【００６７】
なお、環境コマンドフラグ値及び時刻コマンドフラグ値の算出は、ロボット２内のＣＰＵ１３１が行ってもよいし、ロボット２の外部に設けられた計算リソースを用いて行ってもよい。
【００６８】
次に、ＣＰＵ１３１は、ステップＳ２３、Ｓ２４において算出された環境コマンドフラグ値及び時刻コマンドフラグ値を用いて、総合コマンドフラグ値を算出する。当該総合コマンドフラグ値は、環境コマンドフラグ値と、時刻コマンドフラグ値と、を加算することにより算出される。勿論、総合コマンドフラグ値は、環境コマンドフラグ値及び時刻コマンドフラグ値に基づく値であればよく、環境コマンドフラグ値及び時刻コマンドフラグ値の合計値に限られない。例えば、総合コマンドフラグ値は、環境コマンドフラグ値と時刻コマンドフラグ値とを乗算した値でもよい。
【００６９】
そして、ＣＰＵ１３１は、総合コマンドフラグ値が閾値よりも大きい値であるか否かを判定する（ステップＳ２６）。なお、閾値は、ロボット２の活動環境や活動時間に応じて、ユーザにより適宜設定される。このとき、総合コマンドフラグ値が閾値よりも大きいとは、ユーザの意図しない運動コマンドの実行を許可できない環境及び時間であることを意味する。一方、総合コマンドフラグ値が閾値以下であるとは、ユーザの意図しない運動コマンドの実行を許容できる環境及び時間であることを意味する。
【００７０】
総合コマンドフラグ値が閾値以下である場合（ステップＳ２６：Ｎｏ）、コマンド処理部１３は、当該コマンドを実行する（ステップＳ２９）。具体的には、コマンド処理部１３のＣＰＵ１３１は、ユーザに確認することなく、モータ制御部１９に対して、運動コマンドを送信し、当該運動コマンドに応じたモータ制御を命令する。モータ制御部１９は、受信した運動コマンドをメモリ１９２に格納する。ＣＰＵ１９１は、メモリ１９２に格納された運動コマンドを参照し、ロボット２が備えるモータ１９３〜１９７のうち、当該運動コマンドの実行に必要なモータに対してトルク制御を行う。これにより、ロボット２は、運動コマンドに応じた動作を実行する。
【００７１】
一方、総合コマンドフラグ値が閾値よりも大きい場合（ステップＳ２６：Ｙｅｓ）、コマンド処理部１３は、ユーザに対して認識した運動コマンドを実行するか否かの確認を行う（ステップＳ２７）。例えば、コマンド処理部１３のＣＰＵ１３１は、図５に示すようなコマンド実行の確認画面を、ディスプレイ１５や操作用端末１００の表示画面に表示することにより、ユーザに対して確認を行う。
【００７２】
ユーザがロボット２に対して運動コマンドを実行しないと命令した場合（ステップＳ２８：Ｎｏ）、ロボット２は、何もコマンドを実行しない。つまり、ロボット２は、何も動作せず、再びコマンドの入力待ちの状態となる。
【００７３】
一方、ユーザがロボット２に対して運動コマンドを実行すると命令した場合（ステップＳ２８：Ｙｅｓ）、ロボット２は、運動コマンドを実行する（ステップＳ２９）。勿論、図１１に示すフローチャートの処理の順番は、図１１に示す順番に限られない。例えば、コマンド処理部１３が認識したコマンドが、運動コマンドであるか否かを判定する前に、総合コマンドフラグ値を算出してもよい。
【００７４】
以上のように、本実施の形態にかかるロボット２の構成によれば、ユーザから入力されたコマンドが運動コマンドであるか否かに加えて、ロボット２の周囲の環境や現在時刻に基づいて、運動コマンドを実行するか否かをユーザに確認する。そのため、ロボット２の周囲の環境や現在時刻がロボット２の誤動作等を許容できる状況である場合、ユーザへの確認は行われない。つまり、所定の状況であれば、運動コマンドが入力された場合であっても、ユーザへの確認が行われない。その結果、ユーザが全ての運動コマンドについて確認処理を行う必要がなくなるため、利便性が向上する。勿論、周囲の環境や現在時刻に応じて確認処理も行われるため、ユーザの意図しない動作を防ぐこともできる。
【００７５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更及び組み合わせをすることが可能である。例えば、ロボット１、２の構成は図１に示すものに限られず、運動コマンドを実行可能なロボットであればよい。
【符号の説明】
【００７６】
１、２  ロボット
３  インターネット
１１  無線ＬＡＮアダプタ
１２  カメラ
１３  コマンド処理部
１４  スピーカ
１５  ディスプレイ
１６  コマンドデータベース
１７  入力装置
１８  補助記憶部
１９  モータ制御部
２１  位置取得部
２２  時刻取得部
９１  ロボット本体
９２  アーム
１００  操作用端末
１３１、１９１  ＣＰＵ
１３２、１９２  メモリ
１９３〜１９７  モータ
２００  ボタン型操作端末
３００  タッチパネル型操作端末
【図２】
0005776544.tif 000002
【図３】
0005776544.tif 000003
【図４】
0005776544.tif 000004
【図５】
0005776544.tif 000005
【図６】
0005776544.tif 000006
【図７】
0005776544.tif 000007
【図８】
0005776544.tif 000008
【図９】
0005776544.tif 000009
【図１０】
0005776544.tif 000010
【図１１】
0005776544.tif 000011
【図１】
0005776544.tif 000012