(57)【特許請求の範囲】
【請求項１】
周辺の環境を観測しながら動作するロボットであって、
前記ロボットの周辺の環境情報を取得する環境情報取得手段と、
前記環境情報取得手段により環境情報が取得できていない未観測領域内で前記ロボットを動作させる場合には、前記ロボットの駆動力を減少させる制御手段と、
を備えることを特徴とするロボット。
【請求項２】
前記制御手段は、前記環境情報取得手段により環境情報が取得できており、かつ当該環境情報に基づいて障害物が存在すると判定できている禁止領域内で前記ロボットを動作させる場合には、前記環境情報が取得できていない領域内で前記ロボットを動作させる場合よりも前記ロボットの駆動力を減少させる、
請求項１に記載のロボット。
【請求項３】
前記制御手段は、前記環境情報取得手段により環境情報が取得できており、かつ当該環境情報に基づいて障害物が存在しないと判定できている自由領域内で前記ロボットを動作させる場合には、前記ロボットの駆動力を減少させない、
請求項２に記載のロボット。
【請求項４】
前記ロボットは、前記ロボットの周辺の領域のそれぞれが、前記未観測領域、前記禁止領域、及び前記自由領域のうち、いずれの領域であるのかを示す領域情報が格納される格納手段を備え、
前記制御手段は、前記環境情報取得手段により取得された環境情報に基づいて、前記ロボットの周辺の領域が、前記未観測領域、前記禁止領域、及び前記自由領域のうち、いずれの領域であるのかを判定して、当該判定結果に応じて前記領域情報を更新し、
前記制御手段は、前記領域情報に基づいて、前記ロボットを動作させる領域が、前記未観測領域、前記禁止領域、及び前記自由領域のうち、いずれの領域であるのかを判定する、
請求項３に記載のロボット。
【請求項５】
前記制御手段は、前記未観測領域内で前記ロボットを動作させる場合には、前記未観測領域に含まれる前記ロボットの体積が大きくなるに従って、前記ロボットの駆動力の減少度合いが大きくなるように、前記ロボットの駆動力を減少させる、
請求項１乃至４のいずれか１項に記載のロボット。
【請求項６】
前記制御手段は、前記未観測領域内で前記ロボットを動作させる場合には、前記禁止領域と前記ロボットとの距離が近くなるに従って、前記ロボットの駆動力の減少度合いが大きくなるように、前記ロボットの駆動力を減少させる、
請求項２乃至４のいずれか１項に記載のロボット。
【請求項７】
前記ロボットは、さらに、アームを有しており、
前記ロボットを動作させる場合とは、前記ロボットが有するアームを動作させる場合であり、
前記ロボットの駆動力として、前記ロボットが有するアームの駆動力を減少させる、
請求項１乃至６のいずれか１項に記載のロボット。
【請求項８】
前記ロボットは、移動可能なロボットであり、
前記ロボットを動作させる場合とは、前記ロボットを移動させる場合であり、
前記ロボットの駆動力として、前記ロボットを移動させる駆動力を減少させる、
請求項１乃至６のいずれか１項に記載のロボット。
【請求項９】
前記制御手段は、前記ロボットの速度を減少させることで、前記ロボットの駆動力を減少させる、
請求項１乃至８のいずれか１項に記載のロボット。
【請求項１０】
前記ロボットは、フィードバック制御により動作するロボットであり、
前記制御手段は、前記フィードバック制御におけるゲインを減少させることで、前記ロボットの駆動力を減少させる、
請求項１乃至８のいずれか１項に記載のロボット。
【請求項１１】
周辺の環境を観測しながら動作するロボットの制御方法であって、
前記ロボットの周辺の環境情報を取得するステップと、
前記ロボットが前記環境情報が取得できていない未観測領域内で動作しているか否かを判定するステップと、
前記未観測領域内で動作していると判定した場合には、前記ロボットの駆動力を減少させるステップと、
を備えることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット及びその制御方法に関する。
【背景技術】
【０００２】
特許文献１には、対象物を認識しながらアーム等を対象物まで近づけることができるロボットが開示されている。このロボットは、カメラの位置情報と把持対象物の位置情報とに基づいて、アームの侵入を抑制する認識空間を算出する。ここで、認識空間とは、アームが侵入することにより、把持対象物の認識の妨げとなる空間を意味する。そして、このロボットは、認識空間への侵入を回避したアーム軌道を算出し、アームを制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−５１０８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したようなロボットでは、カメラ等によって観測できる範囲は有限であるため、観測できない領域も残ってしまう。しかしながら、ロボットが認識（観測）していない領域に全くロボットを侵入させないようにしてしまうと、ロボットの動作が限定的となってしまうため、期待する動作を十分に行うことができなくなってしまう。一方で、ロボットが認識していない領域にロボットを侵入させる場合（例えば、その領域内でアームを動かす場合）には、その領域内の障害物等と接触してしまう可能性がある。
【０００５】
本発明は、上述した知見に基づいてなされたものであって、未観測の領域内でロボットを動作させる場合であっても安全性を向上することができるロボット及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様に係るロボットは、周辺の環境を観測しながら動作するロボットであって、ロボットの周辺の環境情報を取得する環境情報取得手段と、環境情報取得手段により環境情報が取得できていない未観測領域内でロボットを動作させる場合には、ロボットの駆動力を減少させる制御手段と、を備えることを特徴とするものである。
【０００７】
本発明の第２の態様に係る制御方法は、周辺の環境を観測しながら動作するロボットの制御方法であって、前記ロボットの周辺の環境情報を取得するステップと、前記ロボットが前記環境情報が取得できていない未観測領域内で動作しているか否かを判定するステップと、前記未観測領域内で動作していると判定した場合には、前記ロボットの駆動力を減少させるステップと、を備えることを特徴とするものである。
【発明の効果】
【０００８】
上述した本発明の各態様によれば、未観測の領域内で動作させる場合であっても安全性を向上することができるロボット及びその制御方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るロボットの外部構成図である。
【図２】実施の形態１に係るロボットの内部構成図である。
【図３】実施の形態１に係るロボットが観測する環境の一例を示す図である。
【図４】図３に示す環境をロボットが観測した結果を示す図である。
【図５】図３に示す環境をロボットが観測した結果となる情報を示す図である。
【図６Ａ】ロボットが自由領域で動作する例を示す図である。
【図６Ｂ】ロボットが未観測領域で動作する例を示す図である。
【図６Ｃ】ロボットが禁止領域で動作する例を示す図である。
【図７Ａ】ロボットが自由領域で動作する例を示す図である。
【図７Ｂ】ロボットが未観測領域で動作する例を示す図である。
【図７Ｃ】ロボットが禁止領域で動作する例を示す図である。
【図８】実施の形態１に係るロボットの動作を示すフローチャートである。
【図９】アームと未観測領域とのオーバラップ部分を示す図である。
【図１０Ａ】ロボットが自由領域で動作する例を示す図である。
【図１０Ｂ】ロボットが未観測領域で動作する例を示す図である。
【図１０Ｃ】ロボットが禁止領域で動作する例を示す図である。
【図１１】実施の形態２に係るロボットの動作を示すフローチャートである。
【図１２】実施の形態３に係るロボットの各領域で動作する例を示す図である。
【図１３】実施の形態３に係るロボットの動作を示すフローチャートである。
【図１４】ロボット本体と未観測領域とのオーバラップ部分を示す図である。
【図１５】実施の形態４に係るロボットの内部構成図である。
【図１６】実施の形態４に係るロボットの動作を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照しながら、本発明の好適な実施の形態について説明する。以下の実施の形態に示す具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項等については、適宜、省略及び簡略化がなされている。
【００１１】
＜発明の実施の形態１＞
まず、本実施の形態１に係るロボット１について説明する。図１を参照して、本実施の形態１に係るロボット１の外部構成について説明する。図１は、本実施の形態１に係るロボット１の外部構成図である。
【００１２】
ロボット１は、ロボット本体１０、移動台車２０、アーム３０、及び頭部４０を有している。ロボット１は、典型的には、家庭内において人が行う作業を、人に代わり実行するための生活支援ロボットである。ロボット１は、例えば、任意の場所に移動し、物を拾い人に届ける、窓を開ける等の作業を実行する。
【００１３】
移動台車２０は、その上方でロボット本体１０を支持するように、その上部がロボット本体１０の下部に連結されている。移動台車２０は、その下部に設けられた車輪（図示せず）を駆動することでロボット１を移動させる。
【００１４】
アーム３０は、ロボット本体１０の前方に突出するように、ロボット本体１０の前部に接続されている。アーム３０は、多関節のアームである。アーム３０は、その先端部に、任意の物体を把持できるグリップ（把持部）６を含む。これにより、ロボット１は、アーム３０の各関節の角度を調整することで、グリップ６０を所望の位置に移動させ、その位置に存在する物体を把持することができる。
【００１５】
頭部４０は、ロボット本体１０の上方でロボット本体１０に支持されるように、ロボット本体１０の上部に連結されている。頭部４０は、その前方をセンサ５０によって観測可能となるように、その前部にセンサ５０が取り付けられている。センサ５０は、ロボット１の周辺の環境を観測し、観測した環境を示す環境情報を取得するセンサである。センサ５０は、典型的には、ロボット１からロボット１の周辺の物体までの距離を観測可能な３次元距離センサとなる。ここで、３次元距離センサは、光学式、超音波式、及びレーザ光線式等の各種方式のうち、任意の方式のものを使用するようにしてよい。なお、センサ５０として環境情報を取得する手段は、３次元距離センサに限定されない。例えば、センサ５０としてカメラを備えるようにし、カメラで撮像した画像を示す画像情報を環境情報として取得するようにしてもよい。
【００１６】
センサ５０は、測定可能な角度範囲が所定の角度に限られている。一方で、頭部４０とロボット本体１０との連結部は、頭部４０を動作可能となるように多自由度の関節構造となっている。例えば、関節構造として少なくとも２自由度以上を有するようにすることで、頭部４０は、少なくとも上下左右に動作させることが可能とされている。これにより、センサ５０の測定可能な角度範囲が限られていても、頭部４０を動作させることで広範囲を観測することを可能としている。
【００１７】
操作端末９は、ロボット１と無線又は有線によって通信可能な情報処理端末である。本実施の形態では、操作端末９とロボット１とが無線によって通信する例について説明する。操作端末９は、デスクトップＰＣのような据え置き型の情報処理端末であってもよいが、好ましくは、ユーザが生活空間において制限なくロボット１を操作可能とするために、携帯型の情報処理端末であるとよい。携帯型の情報処理端末は、スマートフォン、又はタブレット端末等である。
【００１８】
ユーザは、操作端末９によってロボット１に対して、上述したような人が行う作業を指示することができる。ロボット１は、ユーザから指示された作業をユーザに代わり実行する。このようにして、ロボット１によってユーザの生活が支援される。
【００１９】
上述した構成により、ロボット１は、ユーザから指示された作業を実行するにあたり、センサ５０によってロボット１の周辺の環境を観測し、観測した環境における障害物を避けて行動する。
【００２０】
続いて、図２を参照して、本実施の形態１に係るロボット１の内部構成について説明する。図２は、本実施の形態１に係るロボット１の内部構成図である。
【００２１】
ロボット１は、制御部１１、記憶部１２、通信部１３、アクチュエータ２１ａ、２１ｂ、車輪２２ａ、２２ｂ、アクチュエータ３１ａ、３１ｂ、角度センサ（ポテンショメータ）３２ａ、３２ｂ、及びアクチュエータ４１を有する。制御部１１、記憶部１２、及び通信部１３は、ロボット本体１０に含まれる。アクチュエータ２１ａ、２１ｂ及び車輪２２ａ、２２ｂは、移動台車２０に含まれる。アクチュエータ３１ａ、３１ｂ及び角度センサ３２ａ、３２ｂは、アーム３０に含まれる。アクチュエータ４１は、頭部４０に含まれる。
【００２２】
制御部１１は、ロボット１を統括的に制御する。制御部１１は、ＣＰＵ（Central Processing Unit）を有しており、そのＣＰＵが記憶部１２に格納されたプログラムを実行することで、制御部１１としての各種処理を実現する。すなわち、このプログラムは、制御部１１が有するＣＰＵに制御部１１としての各所処理を実行させるためのコードを含んでいる。
【００２３】
記憶部１２は、上記プログラムや、その他の制御部１１が使用する各種情報が格納される。記憶部１２は、上記プログラムや各種情報を格納可能な記憶装置の少なくとも１つを含む。記憶装置として、例えば、メモリ及びハードディスク等の少なくとも１つを任意に使用してよい。
【００２４】
通信部１３は、操作端末９に送信するために制御部１１から出力された情報を、無線信号に変換し、操作端末９に送信する。通信部１３は、操作端末９から受信した無線信号を、制御部１１で処理可能な情報となるように電気信号に変換し、制御部１１に出力する。
【００２５】
アクチュエータ２１ａ、２１ｂは、ロボット１の車輪２２ａ、２２ｂを駆動する。アクチュエータ２１ａは、制御部１１からの制御によって駆動され、車輪２２ａを回転させる。アクチュエータ２１ｂは、制御部１１からの制御によって駆動され、車輪２２ｂを回転させる。
【００２６】
車輪２２ａ及び車輪２２ｂは、上述した移動台車２０の下部に取り付けられた車輪に該当する。すなわち、制御部１１は、アクチュエータ２１ａ、２１ｂを制御して、車輪２２ａ、２２ｂを回転させることでロボット１を移動させる。
【００２７】
アクチュエータ３１ａ、３１ｂは、ロボット１のアーム３０を駆動する。アクチュエータ３１ａ、３１ｂのそれぞれは、アーム３０の関節として設けられている。なお、ここでは、アーム３０が、アクチュエータ３１ａとアクチュエータ３１ｂとの２つの関節を有する例について説明するが、アーム３０の関節数は、これに限られない。
【００２８】
角度センサ３２ａ、３２ｂのそれぞれは、アーム３０の各関節の角度を検出するセンサである。角度センサ３２ａは、アクチュエータ３１ａに取り付けられており、アクチュエータ３１ａの角度を検出する。角度センサ３２ａは、検出した角度を示す角度信号を制御部１１に出力する。角度センサ３２ｂは、アクチュエータ３１ａに取り付けられており、アクチュエータ３１ｂの角度を検出する。角度センサ３２ｂは、検出した角度を示す角度信号を制御部１１に出力する。これにより、制御部１１は、角度センサ３２ａ、３２ｂのそれぞれから出力された角度信号が示す角度に基づいて、アーム３０の状態を認識することが可能となる。
【００２９】
アクチュエータ４１は、ロボット１の頭部４０を駆動する。アクチュエータ４１は、例えば、多自由度（２自由度以上の所定自由度）のアクチュエータとして、頭部４０を上下左右に動作可能としてよい。また、頭部４０を駆動するアクチュエータ４１を複数有するようにして、頭部４０の多自由度での駆動を実現するようにしてもよい。また、アクチュエータ４１として１自由度のアクチュエータを１つだけ有するようにして、頭部４０が上下又は左右のみに動作するようにされていてもよい。
【００３０】
続いて、図３〜図５を参照して、本実施の形態１に係るロボット１の環境観測方法について説明する。まず、図３を参照して、本実施の形態１に係るロボット１の環境観測方法について説明する。図３は、本実施の形態１に係るロボット１が観測する環境の一例を示す図である。
【００３１】
図３に示すように、ロボット１が机の上に四角柱の物体が置かれている環境を観測する例について説明する。この環境において、図３に示すように、机の一辺の正面斜め上方からロボット１がセンサ５０によって環境を観測したものとする。
【００３２】
ロボット１は、観測した環境となるロボット１の周辺の空間を、次の３つの領域のうちのいずれかの領域に分類する。
禁止領域    ：障害物があることを観測できている領域
未観測領域  ：障害物があるか否かが観測できていない不確定領域
自由領域    ：障害物がないことを観測できている領域
【００３３】
具体的には、制御部１１は、図４に示すように、ロボット１の周辺の空間において、センサ５０によって観測されており、かつ、障害物を検出した領域を禁止領域として判定する。例えば、制御部１１は、センサ５０に対して奥行き方向に、障害物を検出した位置から所定の距離の範囲となる領域を禁止領域として判定する。これにより、例えば、四角柱の物体の正面（センサ５０側の側面）と上面から一定範囲と、机の天板及び正面側の足が禁止領域として決定される。
【００３４】
また、制御部１１は、図４に示すように、ロボット１の周辺の空間において、センサ５０によって観測していない領域を未観測領域として判定する。例えば、制御部１１は、センサ５０によって観測していない領域や、禁止領域よりもさらにセンサ５０に対して奥行き方向となる領域を未観測領域として判定する。これにより、例えば、センサ５０に対して四角柱、机の天板及び正面側の足の後方にあたる領域（正面と反対側の足を含む）が未観測領域として判定される。なお、過去の観測で、禁止領域か自由領域かが判定されている領域については、その判定結果を維持する。
【００３５】
また、制御部１１は、図４に示すように、ロボット１の周辺の空間において、センサ５０によって観測されており、かつ、障害物が検出されなかった領域を自由領域として判定する。例えば、制御部１１は、障害物が検出される位置までの空間を自由領域として判定する。これにより、例えば、ロボット１（センサ５０）から四角柱、机、及びその他の物体（壁、床等）までの空間が自由領域として判定される。
【００３６】
ここで、制御部１１は、ロボット１の周辺の空間を分割した領域のそれぞれが、上記３つの分類のいずれの領域に属するかを示す情報を空間情報として記憶部１２に記憶することで、ロボット１の周辺の空間の観測結果を管理する。例えば、単純には、空間情報として三次元配列を記憶部１２に用意してもよい。この場合、この三次元配列の各要素は、ロボット１の周辺の空間を格子状に分割した領域のそれぞれに対応する。そして、制御部１１は、図５に示すように、ロボット１の周辺の空間を分割した複数の領域において、ある領域が上記３つの分類におけるいずれの領域となるかを判定した場合、その領域に対応する三次元配列の要素に、判定結果となる分類を示す値を格納する。この値は、禁止領域、未観測領域、及び自由領域のうちのいずれの領域であるかを一意に特定することができる値であれば、任意の値を予め定めるようにしてよい。
【００３７】
これにより、制御部１１は、ロボット１を、ロボット１の周辺の空間を分割した複数の領域のうち、ある領域に侵入しようとする場合、空間情報のその領域に対応する値を参照することで、その領域が、禁止領域、未観測領域、及び自由領域のうちのいずれの領域であるかを認識することができる。
【００３８】
続いて、図６Ａ〜図６Ｃ、及び図７Ａ〜図７Ｃを参照して、本実施の形態１に係るロボット１の動作方法について説明する。図６Ａは、本実施の形態１に係るロボット１の自由領域における動作を示す図である。図６Ｂは、本実施の形態１に係るロボット１の未観測領域における動作を示す図である。図６Ｃは、本実施の形態１に係るロボット１の禁止領域における動作を示す図である。
【００３９】
図６Ａに示すように、アーム３０の全てが自由領域で動作していると判定した場合、制御部１１は、高い速度でアーム３０を動作させる。図６Ｂに示すように、アーム３０の少なくとも一部が未観測領域で動作していると判定した場合（アーム３０が未観測領域に接触する場合を含めてもよい）、制御部１１は、アーム３０が自由領域で動作している場合よりも低い速度でアーム３０を動作させる。図６Ｃに示すように、アーム３０の少なくとも一部が禁止領域で動作していると判定した場合（アーム３０が禁止領域に接触する場合を含めてもよい）、制御部１１は、アーム３０を完全に停止させる。
【００４０】
このように、ロボット１を動作させる際に、アーム３０が動作する領域が観測済みか否かによりアーム３０の速度を変えることにより、ロボット１が認識できていない物体とアーム３０が接触する可能性がある未観測領域ではアーム３０の速度を落としている。これにより、万が一、アーム３０が物体と接触した場合であっても、その物体に対する影響を軽減することができる。また、自由領域においては必要以上に速度を落とすことが無いため、ロボット１の高速な動作が可能となる。
【００４１】
ここで、ロボット１は、アーム３０が未観測領域とオーバーラップしている体積によって動作を変える。図７Ａは、本実施の形態１に係るロボット１の自由領域における動作を示す図である。図７Ｂは、本実施の形態１に係るロボット１の未観測領域における動作を示す図である。図７Ｃは、本実施の形態１に係るロボット１の禁止領域における動作を示す図である。
【００４２】
図７Ａに示すように、アーム３０の全てが自由領域に含まれる場合には、速い速度でアーム３０を動かす。図７Ｂに示すように、アーム３０の少なくとも一部が未観測領域に含まれる場合（アーム３０が未観測領域に接触する場合を含めてもよい）は、その進入の度合いに応じて速度を落とす。図７Ｃに示すように、アームの少なくとも一部が禁止領域に含まれる場合（アーム３０が禁止領域に接触する場合を含めてもよい）には、アーム３０を停止させる。
【００４３】
続いて、図８を参照して、本実施の形態１に係るロボット１の動作について説明する。図８は、本実施の形態１に係るロボット１の動作を示すフローチャートである。
【００４４】
ロボット１は、ロボット１に搭載されたセンサ５０で、ロボット１の周辺の環境を観測する（Ｓ１）。具体的には、センサ５０は、ロボット１の周辺の環境を観測し、観測した環境を示す環境情報を生成して制御部１１に出力する。例えば、センサ５０が３次元距離センサである場合、センサ５０は、各方位毎の障害物までの距離を示す情報を環境情報として制御部１１に出力する。
【００４５】
ロボット１は、観測されたデータからロボット１の周辺の空間を、自由領域、未観測領域、及び禁止領域に分ける（Ｓ２）。具体的には、制御部１１は、センサ５０から出力された環境情報が示す環境に基づいて、障害物が存在する領域（禁止領域）と障害物が存在しない領域（自由領域）とを判定する。制御部１１は、その判定結果に従って記憶部１２に格納された空間情報を更新する。例えば、空間情報で示される各領域は、初期値として未観測領域を示すようにする。そして、制御部１１は、空間情報において、禁止領域として判定した領域は禁止領域を示すように変更し、自由領域として判定した領域は自由領域を示すように変更する。
【００４６】
ロボット１は、ロボット１と禁止領域とがオーバーラップしているか否かを判定する（Ｓ３）。具体的には、制御部１１は、ロボット１の周辺の空間において、アーム３０が含まれる領域を計算する。例えば、リンク（アーム３０の関節間の部分）及びグリップ６０等のアーム３０の各構成要素の形状を示す情報を記憶部１２に予め格納しておく。制御部１１は、ロボット１の位置と、記憶部１２に格納されたその情報が示すアーム３０の各構成要素の形状と、アーム３０の角度センサ３２ａ、３２ｂのそれぞれから出力された角度信号が示す関節角度に基づいて、ロボット１の周辺の空間においてアーム３０が含まれる領域を計算する。そして、制御部１１は、アーム３０が含まれる領域として計算した領域が、空間情報に基づいて禁止領域であると判定される場合、ロボット１と禁止領域とがオーバーラップしていると判定する。
【００４７】
ここで、ロボット１の位置（現在位置）は、任意の手法により特定するようにすればよい。例えば、制御部１１は、環境情報に基づいて、ロボット１の周りの障害物からの相対位置からロボット１の現在位置を特定するようにしてもよい。また、アクチュエータ２１ａ、２１ｂのそれぞれに対して角度センサを備えるようにし、角度センサで検出されたアクチュエータ２１ａ、２１ｂの角度に基づいて所定のロボット１の基準位置からの総回転角度（車輪が回転した回数）を計算し、計算した総回転角度と車輪の大きさとに基づいて、ロボット１の現在位置を特定するようにしてもよい。
【００４８】
ロボット１と禁止領域とがオーバーラップしていると判定した場合（Ｓ３：ＹＥＳ）、ロボット１は、その動作を一定時間停止させる（Ｓ４）。具体的には、制御部１１は、アーム３０の動作を停止させるように、アクチュエータ３１ａ、３１ｂのそれぞれに対する指令値を計算する。言い換えると、制御部１１は、アクチュエータ３１ａ、３１ｂのそれぞれの角速度が０となるように、アクチュエータ３１ａ、３１ｂのそれぞれに対する指令値を計算する。制御部１１は、計算した指令値をアクチュエータ３１ａ、３１ｂのそれぞれに出力する。アクチュエータ３１ａ、３１ｂのそれぞれは、制御部１１から出力された指令値に従って、アーム３０の関節の回転を停止する。すなわち、アーム３０の動作が停止される。
【００４９】
ステップＳ４の実行終了後は、ステップＳ１に戻る。すなわち、ロボット１は、その動作を一定時間停止させた後に、ステップＳ１から処理を実行する。例えば、ロボット１とオーバーラップしていると判定された禁止領域における障害物が動作する物体（例えば人又は動物等）である場合、一定時間経過後には、その領域は禁止領域で無くなって、ロボット１が動作可能となっている可能性がある。よって、このような処理により、ロボット１の周辺の空間の最新の状態を観測し、動作可能となっている場合には、ロボット１の動作を再開することを可能とする。
【００５０】
ロボット１と禁止領域とがオーバーラップしていないと判定した場合（Ｓ３：ＮＯ）、ロボット１は、ロボット１と未観測領域とがオーバーラップしているか否かを判定する（Ｓ５）。具体的には、制御部１１は、ロボット１の周辺の空間において、アーム３０が含まれる領域を計算する。例えば、制御部１１は、上述のステップＳ３と同様に、ロボット１の周辺の空間においてアーム３０が含まれる領域を計算する。そして、制御部１１は、アーム３０が含まれる領域として計算した領域が、空間情報に基づいて未観測領域であると判定される場合、ロボット１と未観測領域とがオーバーラップしていると判定する。なお、アーム３０が含まれる領域は、ステップＳ３で計算したものをそのまま利用するようにしてもよい。
【００５１】
ロボット１と未観測領域とがオーバーラップしていると判定した場合（Ｓ５：ＹＥＳ）、ロボット１は、ロボット１と未観測領域がオーバーラップしている部分ＲＵＭの体積Ｓを計算する（Ｓ６）。具体的には、制御部１１は、ロボット１の位置と、記憶部１２に格納された情報が示すアーム３０の各構成要素の形状と、アーム３０の角度センサ３２ａ、３２ｂのそれぞれから出力された角度信号が示す関節角度と、記憶部１２に格納された空間情報が示す未観測領域に基づいて、図９に示すようなアーム３０と未観測領域がオーバーラップしている部分ＲＵＭの体積Ｓを計算する。
【００５２】
ロボット１は、計算した体積Ｓに反比例するようにアーム３０の速度を制限する（Ｓ７）。具体的には、制御部１１は、計算した体積Ｓが大きくなるに従ってアーム３０の速度が小さくなるように、アクチュエータ３１ａ、３１ｂのそれぞれに対する指令値を計算する。言い換えると、制御部１１は、計算した体積Ｓが大きくなるに従ってアクチュエータ３１ａ、３１ｂの角速度が小さくなるように、アクチュエータ３１ａ、３１ｂのそれぞれに対する指令値を計算する。制御部１１は、計算した指令値をアクチュエータ３１ａ、３１ｂのそれぞれに出力する。アクチュエータ３１ａ、３１ｂのそれぞれは、制御部１１から出力された指令値に従った速度で、アーム３０の関節を回転させる。これにより、アーム３０が体積Ｓに反比例した速度で動作する。ステップＳ６の実行終了後は、ステップＳ１に戻る。
【００５３】
ロボット１と未観測領域とがオーバーラップしていないと判定した場合（Ｓ５：ＮＯ）、ステップＳ１に戻る。すなわち、ロボット１は、アーム３０の速度を制限しない。具体的には、制御部１１は、アーム３０の速度を制限しないように、アクチュエータ３１ａ、３１ｂのそれぞれに対する指令値を計算する。言い換えると、制御部１１は、アクチュエータ３１ａ、３１ｂの角速度を制限しないように、アクチュエータ３１ａ、３１ｂのそれぞれに対する指令値を計算する。制御部１１は、計算した指令値をアクチュエータ３１ａ、３１ｂのそれぞれに出力する。アクチュエータ３１ａ、３１ｂのそれぞれは、制御部１１から出力された指令値に従った速度で、アーム３０の関節を回転させる。これにより、アーム３０が制限されない速度で動作する。すなわち、この速度は、ロボット１と未観測領域とがオーバーラップしていると判定した場合におけるアーム３０の速度よりも高い速度となる。
【００５４】
以上、本実施の形態１について説明したが、上述した内容そのものに限られず、趣旨を逸脱しない範囲で適宜変更してよい。例えば、上記説明では、図９に示すようなアーム３０と未観測領域がオーバーラップしている部分ＲＵＭの体積Ｓが大きくなるに従って、アーム３０の速度の減少度合いを大きくするようにしている（Ｓ６、Ｓ７）が、アーム３０と未観測領域とがオーバーラップしている場合に、速度が制限されるのであれば、これに限られない。例えば、アーム３０と未観測領域がオーバーラップしていない場合には、アーム３０の速度を第１の速度とし、アーム３０と未観測領域がオーバーラップしている場合には、アーム３０の速度を第１の速度よりも低い第２の速度とするようにしてもよい。すなわち、アーム３０の速度は、アーム３０と未観測領域がオーバーラップしている部分ＲＵＭの体積Ｓに関わらず、一定の速度とするようにしてもよい。また、アーム３０と未観測領域がオーバーラップしている部分ＲＵＭの体積Ｓが所定の閾値を超えた場合に、アーム３０の速度を第２の速度とするようにしてもよい。また、アーム３０と禁止領域との距離が近くなるに従って、アーム３０の速度の減少度合いを大きくするようにしてもよい。
【００５５】
また、上記説明では、アーム３０と禁止領域がオーバーラップしている場合には、アーム３０の動作を停止させる（Ｓ４）ようにしているが、アーム３０と未観測領域がオーバーラップしている場合よりもさらにアーム３０の速度を減少させるものであれば、完全に停止させる（速度０とする）ことには限られない。すなわち、アーム３０と禁止領域がオーバーラップしていると判定した場合には、制御部１１は、アーム３０と未観測領域がオーバーラップしている場合よりも低い速度でアーム３０を動作させるように、アクチュエータ３１ａ、３１ｂを制御するようにしてもよい。
【００５６】
また、上記説明では、アーム３０と禁止領域がオーバーラップしている場合には、アーム３０の動作を停止させる（Ｓ４）ようにしているが、それに代えて他の動作を実施するようにしてもよく、それに加えて他の動作を実行するようにしてもよい。例えば、アーム３０と禁止領域がオーバーラップしていると判定した場合には、制御部１１は、アーム３０の動作を停止させることに代えて、アーム３０が禁止領域がオーバーラップしていると判定する前の状態にアーム３０を戻すように、アクチュエータ３１ａ、３１ｂを制御するようにしてもよい。また、他の動作として、ロボット１にスピーカーのような出音装置を備えるようにし、出音装置からアラーム音声を出音することでアーム３０と禁止領域がオーバーラップしていることをユーザに通知するようにしてもよい。また、他の動作として、ロボット１にＬＥＤのような発光装置を備えるようにし、発光装置を発光させることでロボット１と禁止領域がオーバーラップしていることをユーザに通知するようにしてもよい。また、他の動作として、ロボット１に液晶ディスプレイ又は有機ＥＬディスプレイ等の表示装置を備えるようにし、表示装置にアラーム画像を表示することでアーム３０と禁止領域がオーバーラップしていることをユーザに通知するようにしてもよい。
【００５７】
また、上記説明では、アーム３０の動作を一定時間停止させた後に、再度環境を観測し、アーム３０と禁止領域がオーバーラップしなくなっている場合には、アーム３０を再度動作させるようにしている（Ｓ４、Ｓ１、Ｓ３：ＮＯ）が、これに限られない。例えば、制御部１１は、アーム３０の動作を停止させたままとするようにしてもよい。また、制御部１１は、ユーザから操作端末９を介して動作再開の指示を受けた場合に、アーム３０を再度動作させるようにしてもよい。具体的には、操作端末９は、ユーザからタッチパネル等の入力装置によって動作再開を指示する入力を受けた場合、動作再開を指示する無線信号を生成し、ロボット１に送信する。ロボット１の通信部１３は、操作端末９から受信した無線信号を電気信号に変換し、動作再開を指示する情報として制御部１１に出力する。制御部１１は、通信部１３からの動作再開を指示する情報の出力に応じて、アーム３０を再度動作させる。
【００５８】
以上に説明したように、本実施の形態１に係るロボット１は、ロボット１の周辺の環境情報を取得するセンサ５０（環境情報取得手段）と、環境情報取得手段により環境情報が取得できていない未観測領域内でロボット１を動作させる場合には、ロボット１の駆動力を減少させる制御部１１（制御手段）と、を備えるようにしている。
【００５９】
そのため、ロボット１が障害物に接触したとしても、障害物に対して大きな衝撃を与えることもなく、ロボット１が障害物から大きな衝撃を受けることもない。したがって、ロボット１を未観測領域内で動作させる場合であっても安全性を向上することができる。
【００６０】
また、本実施の形態１に係るロボット１は、ロボット１の周辺の領域のそれぞれが、未観測領域、禁止領域、及び自由領域のうち、いずれの領域であるのかを示す空間情報（領域情報）が格納される記憶部１２（格納手段）を備えるようにしている。そして、制御部１１は、センサ５０により取得された環境情報に基づいて、ロボット１の周辺の領域が、未観測領域、禁止領域、及び自由領域のうち、いずれの領域であるのかを判定して、その判定結果に応じて空間情報を更新するとともに、空間情報に基づいて、ロボット１を動作させる領域が、未観測領域、禁止領域、及び自由領域のうち、いずれの領域であるのかを判定するようにしている。
【００６１】
そのため、ロボット１が、現時点でセンサ５０の観測可能範囲にない障害物であっても、過去にセンサ５０によって観測している障害物を回避して動作することが可能となる。したがって、ロボット１が動作する際の安全性をより向上することができる。
【００６２】
また、本実施の形態１に係るロボット１では、制御部１１が未観測領域に含まれるロボット１の体積が大きくなるに従ってロボット１の駆動力の減少度合いが大きくなるように、ロボット１の駆動力を減少させるようにしている。
【００６３】
そのため、ロボット１が未観測領域の中により大きく侵入し、障害物と接触する蓋然性が高まるほど、ロボット１の駆動力をより大きく減少させることができる。したがって、ロボット１が動作する際の安全性をより向上することができる。
【００６４】
＜発明の実施の形態２＞
続いて、本実施の形態２に係るロボット２について説明する。ここで、上記の実施の形態１では、アーム３０と未観測領域とのオーバーラップ部分に応じてアーム３０の速度自体を変更していたが、アーム３０の速度自体を変更するのではなく、アーム３０のフィードバックループのゲインを変更することで、ロボット２のアーム３０が未観測領域における障害物にぶつかった際の衝撃力を緩和することができる。本実施の形態２では、その手法について説明する。
【００６５】
本実施の形態２に係るロボット２の構成については、図１及び図２を参照して説明した実施の形態１に係るロボット１の構成と同様であるため、その説明を省略する。ただし、上述の手法による制御を実現するために、制御部１１の動作が一部異なる。
【００６６】
本実施の形態２では、制御部１１は、ロボット２のアーム３０をフィードバック制御する。上述した構成によれば、制御部１１は、フィードバック制御として、角度センサ３２ａ、３２ｂによって検出される角度に基づいてフィードバック制御（例えば位置制御又は速度制御）を実施する。しかしながら、フィードバック制御の種類は、これに限られない。制御部１１は、例えば位置制御、速度制御、及びトルク制御等の各種フィードバック制御のうち、任意のフィードバック制御を実施するようにしてよい。
【００６７】
例えば、位置制御を実施する場合には、制御部１１は、角度センサ３２ａ、３２ｂのそれぞれから出力される角度信号が示すアクチュエータ３１ａ、３１ｂのそれぞれの角度とアクチュエータ３１ａ、３１ｂのそれぞれの目標角度の偏差と、ゲインとに基づいて、アクチュエータ３１ａ、３１ｂのそれぞれに対する指令値を生成し、アクチュエータ３１ａ、３１ｂのそれぞれに出力する。
【００６８】
また、速度制御を実施する場合には、制御部１１は、角度センサ３２ａ、３２ｂから出力される角度信号が示すアクチュエータ３１ａ、３１ｂのそれぞれの角度を微分することで、アクチュエータ３１ａ、３１ｂのそれぞれの角速度を算出する。制御部１１は、算出したアクチュエータ３１ａ、３１ｂのそれぞれの角速度とアクチュエータ３１ａ、３１ｂのそれぞれの目標角速度の偏差と、ゲインとに基づいて、アクチュエータ３１ａ、３１ｂのそれぞれに対する指令値を生成し、アクチュエータ３１ａ、３１ｂのそれぞれに出力する。なお、アクチュエータ３１ａ、３１ｂのそれぞれに対して、アクチュエータ３１ａ、３１ｂの角速度を検出し、検出した角速度を示す角速度信号を制御部１１に出力する角速度センサ（タコジェネレータ）をロボット２に備えるようにしてもよい。そして、制御部１１は、角度から算出するアクチュエータ３１ａ、３１ｂの角速度に代えて、角速度センサから出力される角度信号が示すアクチュエータ３１ａ、３１ｂの角速度を使用するようにしてもよい。
【００６９】
なお、トルク制御を実施する場合には、アクチュエータ３１ａ、３１ｂのそれぞれに対して、アクチュエータ３１ａ、３１ｂのトルクを検出し、検出したトルクを示すトルク信号を制御部１１に出力するトルクセンサをロボット２に備えるようにする。そして、制御部１１は、トルクセンサから出力されるトルク信号が示すアクチュエータ３１ａ、３１ｂのそれぞれのトルクと、ゲインとに基づいて、アクチュエータ３１ａ、３１ｂのそれぞれに対する指令値を生成し、アクチュエータ３１ａ、３１ｂのそれぞれに出力する。
【００７０】
なお、フィードバック制御のおける具体的な指令値の導出方法は、既知の技術を利用すればよいため、詳細な説明は省略する。
【００７１】
続いて、図１０Ａ〜図１０Ｃを参照して、本実施の形態２に係るロボット２の動作方法について説明する。図１０Ａは、本実施の形態２に係るロボット２の自由領域における動作を示す図である。図１０Ｂは、本実施の形態２に係るロボット２の未観測領域における動作を示す図である。図１０Ｃは、本実施の形態２に係るロボット２の禁止領域における動作を示す図である。
【００７２】
図１０Ａに示すように、アーム３０の全てが自由領域で動作していると判定した場合、制御部１１は、高いゲインでアーム３０をフィードバック制御する。図１０Ｂに示すように、アーム３０の少なくとも一部が未観測領域で動作していると判定した場合（アーム３０が未観測領域に接触する場合を含めてもよい）、制御部１１は、アーム３０が自由領域で動作している場合よりも低いゲインでアーム３０をフィードバック制御する。図１０Ｃに示すように、アーム３０の少なくとも一部が禁止領域で動作していると判定した場合（アーム３０が禁止領域に接触する場合を含めてもよい）、制御部１１は、アーム３０が未観測領域で動作している場合よりも、さらに低いゲインでアーム３０をフィードバック制御する。
【００７３】
このように、ロボット２を動作させる際に、アーム３０が動作する領域が観測済みか否かによりアーム３０のフィードバック制御におけるゲインを変えることにより、認識できていない物体と接触する可能性がある未観測領域ではアーム３０のゲインを落としている。これにより、万が一、物体と接触した場合であっても、その物体に対する影響を軽減することができる。また、自由領域においては必要以上にゲインを落とすことが無いため、ロボット２の高精度な動作が可能となる。
【００７４】
続いて、図１１を参照して、本実施の形態２に係るロボット２の動作について説明する。図１１は、本実施の形態２に係るロボット２の動作を示すフローチャートである。ステップＳ１〜Ｓ３、Ｓ５については、図８を参照して説明した実施の形態１における処理と同様であるため、同一の符号を付し、その説明を省略する。
【００７５】
ロボット２と未観測領域とがオーバーラップしていると判定した場合（Ｓ５：ＹＥＳ）、制御部１１は、フィードバックループのゲインを低いゲインに変更する（Ｓ１０）。
【００７６】
ロボット２と禁止領域とがオーバーラップしていると判定した場合（Ｓ３：ＹＥＳ）、制御部１１は、フィードバックループのゲインを、さらに低いゲインに変更する（Ｓ１１）。このゲインは、ステップＳ１０で設定するゲイン（第１のゲイン）よりも、さらに低いゲイン（第２のゲイン）となる。
【００７７】
ロボット２と未観測領域とがオーバーラップしていないと判定した場合（Ｓ５：ＮＯ）、ステップＳ１に戻る。すなわち、制御部１１は、フィードバックループのゲインを、低ゲインに変更しない。よって、ステップＳ１０又はＳ１１が実行されて、フィードバックループのゲインとして低ゲインが設定されている場合には、制御部１１は、フィードバックループのゲインを高いゲインに変更する。このゲインは、ステップＳ１０で設定するゲイン（第１のゲイン）よりも、高いゲイン（第３のゲイン）となる。
【００７８】
以上、本実施の形態２について説明したが、上述した内容そのものに限られず、趣旨を逸脱しない範囲で適宜変更してよい。例えば、ロボット２と未観測領域とがオーバーラップしていると判定した場合、及び、ロボット２と禁止領域とがオーバーラップしていると判定した場合において、低いゲインを設定するときに、さらに、ロボット２と未観測領域又は禁止領域がオーバーラップしている部分ＲＵＭの体積Ｓが大きくなるに従って、ゲインの減少度合いを大きくするようにしてもよい。
【００７９】
また、上記説明では、ロボット２と禁止領域がオーバーラップしている場合には、アーム３０のフィードバック制御におけるゲインを低いゲインに変更するようにしているが、それに代えてアーム３０の動作を停止させるようにしてもよい。また、実施の形態１において上述したように、それに代えて他の動作を実施するようにしてもよく、それに加えて他の動作を実行するようにしてもよい。
【００８０】
以上に説明したように、本実施の形態２では、ロボット２のフィードバック制御におけるゲインを減少させることで、ロボット２の駆動力を減少させるようにしている。すなわち、ロボット１、２の駆動力及びそれにより障害物にロボット１、２が接触した際に障害物に加わる力を減少させるものであれば、速度及びゲインのみに限られず、ロボット１、２の制御に関する様々なパラメータを制御するようにしてもよい。
【００８１】
＜発明の実施の形態３＞
続いて、本実施の形態３に係るロボット３について説明する。ここで、上記の実施の形態１では、ロボット１のアーム３０の速度を制御する場合について説明したが、同様に、ロボット１（ロボット本体１０）の移動速度を制御するようにしてもよい。これによれば、ロボット１（ロボット本体１０）が未観測領域における障害物にぶつかった際の衝撃力を緩和することができる。本実施の形態３では、その手法について説明する。
【００８２】
本実施の形態３に係るロボット３の構成については、図１及び図２を参照して説明した実施の形態１に係るロボット１の構成と同様であるため、その説明を省略する。ただし、上述の手法による制御を実現するために、制御部１１の動作が一部異なる。なお、本実施の形態３に係るロボット１は、アーム３０を有さない台車型のロボットであってもよい。
【００８３】
本実施の形態３では、制御部１１は、ロボット本体１０が自由領域、未観測領域、及び禁止領域のうち、いずれの領域で動作しているかによって、ロボット１（ロボット本体１０）の移動速度を変更する。
【００８４】
続いて、図１２を参照して、本実施の形態３に係るロボット３の環境認識方法及び動作方法について説明する。図１２は、本実施の形態３に係るロボット３の各領域で動作する例を示す図である。
【００８５】
実施の形態１に係るロボット１は、ロボット１の周辺の環境を３次元空間の形式で捉えて各種領域に分類するようにしていたが、本実施の形態３に係るロボット３は、ロボット１の周辺の環境を２次元空間（２次元平面）の形式で捉えて各種領域に分類する。具体的には、制御部１１は、ロボット１の周辺の路面（２次元空間）を、禁止領域、未観測領域、及び自由領域のうち、いずれかの領域に分類する。
【００８６】
制御部１１は、ロボット１の周辺の路面において、センサ５０によって観測されており、かつ、その路面の直上に障害物が置かれている領域を禁止領域として決定する。また、制御部１１は、ロボット１の周辺の路面において、センサ５０によって観測していない領域を未観測領域として決定する。また、制御部１１は、ロボット１の周辺の路面において、センサ５０によって観測されており、かつ、その路面の直上に障害物が検出されなかった領域を自由領域として決定する。
【００８７】
ここで、制御部１１は、ロボット３の周辺の空間を分割した領域のそれぞれが、上記３つの分類のいずれの領域に属するかを示す情報を空間情報として記憶部１２に記憶することで、ロボット１の周辺の空間の観測結果を管理する。例えば、単純には、空間情報として二次元配列を記憶部１２に用意してもよい。この場合、この二次元配列の各要素は、ロボット３の周辺の空間（路面）を分割した領域のそれぞれに対応する。そして、制御部１１は、二次元配列の各要素について、ロボット３の周辺の空間を分割したある領域が上記３つの分類におけるいずれの領域となるかを決定した場合、その領域に対応する要素に、決定した分類を示す値を格納する。この値は、禁止領域、未観測領域、及び自由領域のうちのいずれの領域であるかを一意に特定することができる値であれば、任意の値を予め定めるようにしてよい。
【００８８】
そして、図１２に示すように、鉛直方向においてロボット本体１０の全てが自由領域で動作（自由領域上で移動）していると判定した場合、制御部１１は、高い速度でロボット３（ロボット本体１０）を移動させる。鉛直方向においてロボット本体１０の少なくとも一部が未観測領域で動作（未観測領域上で移動）していると判定した場合（ロボット本体１０が未観測領域に接触する場合を含めてもよい）、制御部１１は、ロボット本体１０が自由領域で動作している場合よりも低い速度でロボット３を移動させる。鉛直方向においてロボット本体１０の少なくとも一部が禁止領域で動作（禁止領域上で移動）していると判定した場合（ロボット本体１０が禁止領域に接触する場合を含めてもよい）、制御部１１は、ロボット本体１０の移動を完全に停止させる。
【００８９】
このように、ロボット３を動作させる際に、ロボット本体１０が動作する領域が観測済みか否かによりロボット本体１０の速度を変えることで、ロボット３が認識できていない物体とロボット本体１０が接触する可能性がある未観測領域ではロボット本体１０の速度を落としている。これにより、万が一、ロボット本体１０が物体と接触した場合であっても、その物体に対する影響を軽減することができる。また、自由領域においては必要以上に速度を落とすことが無いため、ロボット３の高速な移動が可能となる。
【００９０】
続いて、図１３を参照して、本実施の形態３に係るロボット３の動作について説明する。図１３は、本実施の形態３に係るロボット３の動作を示すフローチャートである。ステップＳ１については、図８を参照して説明した実施の形態１における処理と同様であるため、同一の符号を付し、その説明を省略する。
【００９１】
ロボット３は、観測されたデータからロボット３の周辺の空間を、自由領域、未観測領域、及び禁止領域に分ける（Ｓ２０）。本実施の形態３では、上述したように記憶部１２に格納される空間情報を二次元空間の情報としている点以外は、実施の形態１と同様であるため、詳細な説明は省略する。
【００９２】
ロボット３は、ロボット３と禁止領域とがオーバーラップしているか否かを判定する（Ｓ２１）。具体的には、制御部１１は、ロボット３の周辺の空間において、ロボット本体１０が含まれる領域を算出する。例えば、ロボット本体１０の形状を示す情報を記憶部１２に予め格納しておく。制御部１１は、記憶部１２に格納されたその情報が示すロボット本体１０の形状と、ロボット３の位置に基づいて、ロボット３の周辺の空間において鉛直方向に見た場合にロボット本体１０が含まれる領域を計算する。そして、制御部１１は、ロボット本体１０が含まれる領域として計算した領域が、空間情報に基づいて禁止領域であると判定される場合、ロボット３と禁止領域とがオーバーラップしていると判定する。
【００９３】
ロボット３と禁止領域とがオーバーラップしていると判定した場合（Ｓ２１：ＹＥＳ）、ロボット３は、その動作を一定時間停止させる（Ｓ２２）。具体的には、制御部１１は、ロボット３の移動を停止させるように、アクチュエータ２１ａ、２１ｂに対する指令値を計算する。言い換えると、制御部１１は、アクチュエータ２１ａ、２１ｂの角速度が０となるように、アクチュエータ２１ａ、２１ｂに対する指令値を計算する。制御部１１は、計算した指令値をアクチュエータ２１ａ、２１ｂのそれぞれに出力する。アクチュエータ２１ａ、２１ｂのそれぞれは、制御部１１から出力された指令値に従って、車輪２２ａ、２２ｂの回転を停止する。すなわち、ロボット３（ロボット本体１０）の移動が停止する。
【００９４】
ステップＳ２２の実行終了後は、ステップＳ１に戻る。すなわち、ロボット３は、その動作を一定時間停止させた後に、ステップＳ１から処理を実行する。例えば、ロボット３とオーバーラップしていると判定された禁止領域における障害物が動作する物体（例えば人又は動物等）である場合、一定時間経過後には、その領域は禁止領域で無くなって、ロボット３が動作可能となっている可能性がある。よって、このように動作することで、ロボット３の周辺の空間の最新の状態を観測し、動作可能となっている場合には動作を再開することを可能とする。
【００９５】
ロボット３と禁止領域とがオーバーラップしていないと判定した場合（Ｓ２１：ＮＯ）、ロボット３は、ロボット３と未観測領域とがオーバーラップしているか否かを判定する（Ｓ２２）。具体的には、制御部１１は、ロボット３の周辺の空間において、ロボット本体１０が含まれる領域を算出する。例えば、制御部１１は、上述のステップＳ２１と同様に、鉛直方向に見た場合にロボット３の周辺の空間においてロボット本体１０が含まれる領域を算出する。そして、制御部１１は、ロボット本体１０が含まれる領域として算出した領域が、空間情報に基づいて未観測領域であると判定した場合、ロボット３と未観測領域とがオーバーラップしていると判定する。
【００９６】
ロボット３と未観測領域とがオーバーラップしていると判定した場合（Ｓ２２：ＹＥＳ）、ロボット３は、ロボット３と未観測領域がオーバーラップしている部分ＲＵＭの面積Ａを計算する（Ｓ２３）。具体的には、制御部１１は、ロボット３の位置と、記憶部１２に格納された情報が示すロボット本体１０の形状と、記憶部１２に格納された空間情報が示す未観測領域に基づいて、図１４に示すような鉛直方向においてロボット本体１０と未観測領域がオーバーラップしている部分ＲＵＭの面積Ａを計算する。
【００９７】
ロボット３は、計算した面積Ａに反比例するようにロボット３の移動速度を制限する（Ｓ２４）。具体的には、制御部１１は、計算した面積Ａが大きくなるに従ってロボット３（ロボット本体１０）の移動速度が小さくなるように、アクチュエータ２１ａ、２１ｂに対する指令値を計算する。言い換えると、制御部１１は、計算した面積Ａが大きくなるに従ってアクチュエータ２１ａ、２１ｂの角速度が小さくなるように、アクチュエータ２１ａ、２１ｂに対する指令値を計算する。制御部１１は、計算した指令値をアクチュエータ２１ａ、２１ｂのそれぞれに出力する。アクチュエータ２１ａ、２１ｂのそれぞれは、制御部１１から出力された指令値に従った速度で、ロボット本体１０の下部の車輪２２ａ、２２ｂを回転させる。これにより、ロボット１が面積Ａに反比例した速度で移動する。ステップＳ２４の実行終了後は、ステップＳ１に戻る。
【００９８】
ロボット３と未観測領域とがオーバーラップしていないと判定した場合（Ｓ２２：ＮＯ）、ステップＳ１に戻る。すなわち、ロボット３は、ロボット３の移動速度を制限しない。具体的には、制御部１１は、ロボット３の移動速度を制限しないように、アクチュエータ２１ａ、２１ｂに対する指令値を計算する。言い換えると、制御部１１は、アクチュエータ２１ａ、２１ｂの角速度を制限しないように、アクチュエータ２１ａ、２１ｂに対する指令値を計算する。制御部１１は、計算した指令値をアクチュエータ２１ａ、２１ｂのそれぞれに出力する。アクチュエータ２１ａ、２１ｂのそれぞれは、制御部１１から出力された指令値に従って、ロボット本体１０の下部の車輪２２ａ、２２ｂを回転させる。これにより、ロボット３が制限されない速度で移動する。すなわち、この速度は、ロボット３と未観測領域とがオーバーラップしていると判定した場合におけるロボット３の速度よりも高い速度となる。
【００９９】
以上、本実施の形態３について説明したが、上述した内容そのものに限られず、趣旨を逸脱しない範囲で適宜変更してよい。例えば、上記説明では、図１４に示すようなロボット本体１０と未観測領域がオーバーラップしている部分ＲＵＭの面積Ａが大きくなるに従って、ロボット３（ロボット本体１０）の移動速度の減少度合いを大きくするようにしている（Ｓ２３、Ｓ２４）が、ロボット本体１０と未観測領域とがオーバーラップしている場合に、移動速度が制限されるのであれば、これに限られない。例えば、ロボット本体１０と未観測領域がオーバーラップしていない場合には、ロボット３の移動速度を第１の速度とし、ロボット本体１０と未観測領域がオーバーラップしている場合には、ロボット３の移動速度を第１の速度よりも低い第２の速度とするようにしてもよい。すなわち、ロボット３の移動速度は、ロボット本体１０と未観測領域がオーバーラップしている部分ＲＵＭの面積Ａに関わらず、一定の速度とするようにしてもよい。また、ロボット本体１０と未観測領域がオーバーラップしている部分ＲＵＭの面積Ａが所定の閾値を超えた場合に、ロボット３の移動速度を第２の速度とするようにしてもよい。また、ロボット３（ロボット本体１０）と禁止領域との距離が近くなるに従って、ロボット３の移動速度の減少度合いを大きくするようにしてもよい。
【０１００】
また、上記説明では、ロボット本体１０と禁止領域がオーバーラップしている場合には、ロボット３を移動停止させる（Ｓ２２）ようにしているが、ロボット本体１０と未観測領域がオーバーラップしている場合よりもさらにロボット３の移動速度を減少させるものであれば、完全に停止させる（移動速度０とする）ことには限られない。すなわち、ロボット本体１０と禁止領域がオーバーラップしていると判定した場合には、制御部１１は、ロボット３と未観測領域がオーバーラップしている場合よりも低い速度でロボット３を移動させるように、アクチュエータ２１ａ、２１ｂを制御するようにしてもよい。
【０１０１】
また、上記説明では、ロボット本体１０と禁止領域がオーバーラップしている場合には、ロボット３を移動停止させる（Ｓ２２）ようにしているが、それに代えて他の動作を実施するようにしてもよく、それに加えて他の動作を実行するようにしてもよい。例えば、ロボット本体１０と禁止領域がオーバーラップしていると判定した場合には、制御部１１は、ロボット３を移動停止させることに代えて、ロボット本体１０が禁止領域がオーバーラップしていると判定する前の状態にロボット３の位置を戻すように、アクチュエータ２１ａ、２１ｂを制御するようにしてもよい。また、実施の形態１において上述したように、出音装置、発光装置、又は表示装置によって、ロボット本体１０と禁止領域がオーバーラップしていることをユーザに通知するようにしてもよい。
【０１０２】
また、上記説明では、ロボット３の動作を一定時間停止させた後に、再度環境を観測し、ロボット本体１０と禁止領域がオーバーラップしなくなっている場合には、ロボット３を再度移動させるようにしている（Ｓ２２、Ｓ１、Ｓ２１：ＮＯ）が、これに限られない。例えば、制御部１１は、ロボット３を移動停止させたままとするようにしてもよい。また、制御部１１は、ユーザから操作端末９を介して動作再開の指示を受けた場合に、ロボット３を再度移動せるようにしてもよい。具体的には、操作端末９は、ユーザからタッチパネル等の入力装置によって動作再開を指示する入力を受けた場合、動作再開を指示する無線信号を生成し、ロボット３に送信する。ロボット３の通信部１３は、操作端末９から受信した無線信号を電気信号に変換し、動作再開を指示する情報として制御部１１に出力する。制御部１１は、通信部１３からの動作再開を指示する情報の出力に応じて、ロボット３を再度移動させる。
【０１０３】
また、上記説明では、ロボット３の周辺の環境を２次元空間の形式で捉えて各種領域に分類するようにしていたが、実施の形態１、２と同様に、３次元空間の形式で捉えて各種領域に分類するようにしてもよい。例えば、この場合は、ステップＳ２３、Ｓ２４においても、ロボット本体１０と未観測領域がオーバーラップしている部分ＲＵＭの体積Ｓが大きくなるに従って、ロボット３（ロボット本体１０）の移動速度の減少度合いを大きくするようにしてもよい。
【０１０４】
以上に説明したように、本実施の形態３は、未観測領域内でロボット３を移動させる場合に、ロボット３の駆動力として、ロボット３を移動させる駆動力を減少させるようにしている。なお、実施の形態１、２では、未観測領域内でロボット１、２が有するアーム３０を動作させる場合に、ロボット３の駆動力として、ロボット１、２が有するアーム３０の駆動力を減少させるようにしていた。
【０１０５】
すなわち、未観測領域等とのオーバーラップの判定及びその判定結果による駆動力の減少の対象となる箇所は、ロボットが動作することにより、障害物と接触する可能性のある部分であれば、ロボットにおける任意の箇所を予め定めるようにしてよい。また、ロボットにおいて、未観測領域等とのオーバーラップの判定の対象となる箇所と、その判定結果による駆動力の減少の対象となる箇所とは、同一の箇所であってもよく、異なる箇所であってもよい、
【０１０６】
＜発明の実施の形態４＞
続いて、本実施の形態４に係るロボット４について説明する。ここで、上記の実施の形態３では、ロボット本体１０と未観測領域とのオーバーラップ部分に応じてロボット４（ロボット本体１０）の移動速度自体を変更していたが、ロボット４の移動速度自体を変更するのではなく、ロボット４のフィードバックループのゲインを変更するようにしてもよい。すなわち、上記の実施の形態２では、ロボット２のアーム３０の速度を制御する場合について説明したが、同様に、ロボット４（ロボット本体１０）の移動速度を制御するようにしてもよい。これによれば、ロボット４（ロボット本体１０）が未観測領域における障害物にぶつかった際の衝撃力を緩和することができる。本実施の形態４では、その手法について説明する。
【０１０７】
本実施の形態４に係るロボット４の外部構成については、図１を参照して説明した実施の形態１に係るロボット１の外部構成と同様であるため、その説明を省略する。ただし、図１５に示すように、本実施の形態４に係るロボット４は、その内部構成として、実施の形態１に係るロボット１と比較して、さらに、角度センサ２３ａ、２３ｂを有する。また、上述の手法による制御を実現するために、制御部１１の動作が一部異なる。
【０１０８】
角度センサ２３ａ、２３ｂのそれぞれは、アクチュエータ２１ａ、２１ｂのそれぞれの角度を検出するセンサである。角度センサ２３ａは、アクチュエータ２１ａに取り付けられており、アクチュエータ２１ａの角度を検出する。角度センサ２３ａは、検出した角度を示す角度信号を制御部１１に出力する。角度センサ２３ｂは、アクチュエータ２１ａに取り付けられており、アクチュエータ２１ｂの角度を検出する。角度センサ３３ｂは、検出した角度を示す角度信号を制御部１１に出力する。
【０１０９】
本実施の形態４では、制御部１１は、ロボット４（ロボット本体１０）の移動をフィードバック制御する。上述した構成によれば、制御部１１は、フィードバック制御として、角度センサ２３ａ、２３ｂによって検出される角度に基づいてフィードバック制御（例えば位置制御又は速度制御）を実施することになるが、これに限られない。制御部１１は、例えば位置制御、速度制御、及びトルク制御等のフィードバック制御のうち、任意のフィードバック制御を実施するようにしてよい。
【０１１０】
例えば、位置制御を実施する場合には、制御部１１は、角度センサ２３ａ、２３ｂのそれぞれから出力される角度信号が示すアクチュエータ２１ａ、２１ｂのそれぞれの角度とアクチュエータ２１ａ、２１ｂのそれぞれの目標角度の偏差と、ゲインとに基づいて、アクチュエータ２１ａ、２１ｂのそれぞれに対する指令値を生成し、アクチュエータ２１ａ、２１ｂのそれぞれに出力する。
【０１１１】
また、速度制御を実施する場合には、制御部１１は、角度センサ２３ａ、２３ｂのそれぞれから出力される角度信号が示すアクチュエータ２１ａ、２１ｂのそれぞれの角度を微分することで、アクチュエータ２１ａ、２１ｂのそれぞれの角速度を算出する。制御部１１は、算出したアクチュエータ２１ａ、２１ｂのそれぞれの角速度とアクチュエータ２１ａ、２１ｂのそれぞれの目標角速度と、ゲインとに基づいて、アクチュエータ２１ａ、２１ｂのそれぞれに対する指令値を生成し、アクチュエータ２１ａ、２１ｂのそれぞれに出力する。なお、アクチュエータ２１ａ、２１ｂのそれぞれに対して、アクチュエータ２１ａ、２１ｂの角速度を検出し、検出した角速度を示す角速度信号を制御部１１に出力する角速度センサ（タコジェネレータ）をロボット４に備えるようにしてよい。そして、制御部１１は、角度から算出するアクチュエータ２１ａ、２１ｂの角速度に代えて、角速度センサから出力される角度信号が示すアクチュエータ２１ａ、２１ｂの角速度を使用するようにしてもよい。
【０１１２】
なお、トルク制御を実施する場合には、アクチュエータ２１ａ、２１ｂのそれぞれに対して、アクチュエータ２１ａ、２１ｂのトルクを検出し、検出したトルクを示すトルク信号を制御部１１に出力するトルクセンサをロボット４に備えるようにする。そして、制御部１１は、トルクセンサから出力されるトルク信号が示すアクチュエータ２１ａ、２１ｂのそれぞれのトルクと、ゲインとに基づいて、アクチュエータ２１ａ、２１ｂのそれぞれに対する指令値を生成し、アクチュエータ２１ａ、２１ｂのそれぞれに出力する。
【０１１３】
なお、フィードバック制御のおける具体的な指令値の導出方法は、既知の技術を利用すればよいため、詳細な説明は省略する。
【０１１４】
そして、鉛直方向においてロボット本体１０の全てが自由領域で動作していると判定した場合、制御部１１は、高いゲインでロボット４の移動をフィードバック制御する。ロボット本体１０の少なくとも一部が未観測領域で動作していると判定した場合（ロボット本体１０が未観測領域に接触する場合を含めてもよい）、制御部１１は、鉛直方向においてロボット本体１０が自由領域で移動している場合よりも低いゲインでロボット本体１０の移動をフィードバック制御する。鉛直方向においてロボット本体１０の少なくとも一部が禁止領域で動作していると判定した場合（ロボット本体１０が禁止領域に接触する場合を含めてもよい）、制御部１１は、ロボット本体１０が未観測領域で移動している場合よりも、さらに低いゲインでロボット本体１０の移動をフィードバック制御する。
【０１１５】
このように、ロボット４を動作させる際に、ロボット本体１０が動作する領域が観測済か否かによりロボット本体１０の移動のフィードバック制御におけるゲインを変えることで、ロボット４が認識できていない物体とロボット本体１０が接触する可能性がある未観測領域ではロボット本体１０の衝突力を落としている。これにより、万が一、ロボット本体１０が物体と接触した場合であっても、その物体に対する影響を軽減することができる。また、自由領域においては必要以上にゲインを落とすことが無いため、ロボット４の高精度な動作が可能となる。
【０１１６】
続いて、図１６を参照して、本実施の形態４に係るロボット４の動作について説明する。図１６は、本実施の形態４に係るロボット４の動作を示すフローチャートである。ステップＳ１、Ｓ２０〜Ｓ２２については、図８を参照して説明した実施の形態１における処理と同様であるため、同一の符号を付し、その説明を省略する。
【０１１７】
ロボット４と未観測領域とがオーバーラップしていると判定した場合（Ｓ２２：ＹＥＳ）、制御部１１は、フィードバックループのゲインを低いゲインに変更する（Ｓ３０）。
【０１１８】
ロボット４と禁止領域とがオーバーラップしていると判定した場合（Ｓ２１：ＹＥＳ）、制御部１１は、フィードバックループのゲインを、さらに低いゲインに変更する（Ｓ３１）。このゲインは、ステップＳ３０で設定するゲイン（第１のゲイン）よりも、さらに低いゲイン（第２のゲイン）となる。
【０１１９】
ロボット４と未観測領域とがオーバーラップしていないと判定した場合（Ｓ２２：ＮＯ）、ステップＳ１に戻る。すなわち、制御部１１は、フィードバックループのゲインを、低ゲインに変更しない。よって、ステップＳ３０又はＳ３１が実行されて、フィードバックループのゲインとして低ゲインが設定されている場合には、制御部１１は、フィードバックループのゲインを高いゲインに変更する。このゲインは、ステップＳ３０で設定する（第１のゲイン）よりも、高いゲイン（第３のゲイン）となる。
【０１２０】
以上、本実施の形態４について説明したが、上述した内容そのものに限られず、趣旨を逸脱しない範囲で適宜変更してよい。例えば、ロボット本体１０と未観測領域とがオーバーラップしていると判定した場合、及び、ロボット本体１０と禁止領域とがオーバーラップしていると判定した場合において、低いゲインを設定するときに、さらに、ロボット本体１０と未観測領域又は禁止領域がオーバーラップしている部分ＲＵＭの面積Ａが大きくなるに従って、ゲインの減少度合いを大きくするようにしてもよい。なお、この面積Ａは、実施の形態３で上述したように、ロボット４の周辺の環境を３次元空間として捉える場合には、ロボット本体１０と未観測領域又は禁止領域がオーバーラップしている部分ＲＵＭの体積に代えてもよい。
【０１２１】
また、上記説明では、ロボット本体１０と禁止領域がオーバーラップしている場合には、ロボット４の移動のフィードバック制御におけるゲインを低いゲインに変更するようにしているが、それに代えてロボット４の移動を停止させるようにしてもよい。また、実施の形態３において上述したように、それに代えて他の動作を実施するようにしてもよく、それに加えて他の動作を実行するようにしてもよい。
【０１２２】
以上に説明したように、本実施の形態４では、ロボット４のフィードバック制御におけるゲインを減少させることで、ロボット４の駆動力を減少させるようにしている。すなわち、ロボット３、４の駆動力及びそれにより障害物にロボット３、４が接触した際に障害物に加わる力を減少させるものであれば、速度及びゲインのみに限られず、ロボット３、４の制御に関する様々なパラメータを制御するようにしてもよい。
【０１２３】
なお、本発明は上記の実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記の実施の形態１、２と実施の形態３、４とは任意の組み合わせで組み合わせて実施することも可能である。
【符号の説明】
【０１２４】
１、２、３、４  ロボット
９  操作端末
１０  ロボット本体
２０  移動台車
３０  アーム
４０  頭部
５０  センサ
６０  グリップ
１１  制御部
１２  記憶部
１３  通信部
２１ａ、２１ｂ  アクチュエータ
２２ａ、２２ｂ  車輪
２３ａ、２３ｂ  角度センサ
３１ａ、３１ｂ  アクチュエータ
３２ａ、３２ｂ  角度センサ
４１  アクチュエータ
【図１】
0006007873.tif 000002
【図２】
0006007873.tif 000003
【図３】
0006007873.tif 000004
【図４】
0006007873.tif 000005
【図５】
0006007873.tif 000006
【図６Ａ】
0006007873.tif 000007
【図６Ｂ】
0006007873.tif 000008
【図６Ｃ】
0006007873.tif 000009
【図７Ａ】
0006007873.tif 000010
【図７Ｂ】
0006007873.tif 000011
【図７Ｃ】
0006007873.tif 000012
【図８】
0006007873.tif 000013
【図９】
0006007873.tif 000014
【図１０Ａ】
0006007873.tif 000015
【図１０Ｂ】
0006007873.tif 000016
【図１０Ｃ】
0006007873.tif 000017
【図１１】
0006007873.tif 000018
【図１２】
0006007873.tif 000019
【図１３】
0006007873.tif 000020
【図１４】
0006007873.tif 000021
【図１５】
0006007873.tif 000022
【図１６】
0006007873.tif 000023