(57)【要約】【課題】ロボットの押し搬送を効率的かつ安定的に実行可能なアルゴリズムを提供する。また、シンプルで、且つ、物体やロボットのサイズに依存しない、汎用性の高い押し搬送アルゴリズムを提供する。【解決手段】搬送システムは、物体を押すための自走式のロボットと、物体とロボットの現在の位置を検出する位置検出手段と、位置検出手段の検出結果に基づいてロボットの移動方向を制御する制御手段と、を備える。制御手段は、ロボットが物体の位置に向かう方向の第１のベクトルと、第１ベクトルと直交し且つロボットが目標位置から離れる方向の第２のベクトルとを、物体とロボットと目標位置の現在の位置関係に応じた重みで合成することにより、ロボットの移動方向を決定する。【選択図】図３
2011108003.tif 000002
【特許請求の範囲】
【請求項１】
ロボットにより物体を押して該物体を所定の目標位置まで搬送する搬送システムであって、
物体を押すための自走式のロボットと、
前記物体と前記ロボットの現在の位置を検出する位置検出手段と、
前記位置検出手段の検出結果に基づいて前記ロボットの移動方向を制御する制御手段と、を備え、
前記制御手段は、前記ロボットが前記物体の位置に向かう方向の第１のベクトルと、前記第１ベクトルと直交し且つ前記ロボットが前記目標位置から離れる方向の第２のベクトルとを、前記物体と前記ロボットと前記目標位置の現在の位置関係に応じた重みで合成することにより、前記ロボットの移動方向を決定することを特徴とする搬送システム。
【請求項２】
前記制御手段は、前記物体から前記目標位置へのベクトルと前記物体から前記ロボットへのベクトルとのなす角θに応じて前記重みを連続的に変化させることを特徴とする請求項１に記載の搬送システム。
【請求項３】
前記制御手段は、θが１８０度の場合に、前記第１のベクトルの重みを最大にするとともに、前記第２のベクトルの重みをゼロにすることを特徴とする請求項２に記載の搬送システム。
【請求項４】
前記第１のベクトルが、（−ｃｏｓθ，−ｓｉｎθ）であり、
前記第２のベクトルが、（−ｓｉｎθ，ｃｏｓθ）であり、
前記第１のベクトルの重みが、−ｃｏｓθであり、
前記第２のベクトルの重みが、ｓｉｎθであることを特徴とする請求項２または３に記載の搬送システム。
【請求項５】
前記制御手段は、θが９０度以下の場合に、前記第１のベクトルの重みをゼロにすることを特徴とする請求項２〜４のいずれかに記載の搬送システム。
【請求項６】
前記制御手段は、前記物体が前記目標位置に近づいた場合に前記第２のベクトルの重みを増大させることを特徴とする請求項１〜５のいずれかに記載の搬送システム。
【請求項７】
自走式の第２のロボットをさらに備え、
前記位置検出手段が、前記第２のロボットの現在の位置をさらに検出し、
前記制御手段が、前記ロボットを前記第２のロボットが搬送する物体とみなして、前記ロボットの移動方向の場合と同じアルゴリズムを用いて前記第２のロボットの移動方向を制御することによって、
前記ロボットと前記第２のロボットとが直列につながって前記物体を押すことを特徴とする請求項１〜６のいずれかに記載の搬送システム。
【請求項８】
自走式のロボットにより物体を押して該物体を所定の目標位置まで搬送する搬送システムにおける、ロボットの制御方法であって、
前記物体と前記ロボットの現在の位置を検出するステップと、
前記位置検出ステップの検出結果に基づいて前記ロボットの移動方向を制御する制御ステップと、を含み、
前記制御ステップでは、前記ロボットが前記物体の位置に向かう方向の第１のベクトルと、前記第１ベクトルと直交し且つ前記ロボットが前記目標位置から離れる方向の第２のベクトルとを、前記物体と前記ロボットと前記目標位置の現在の位置関係に応じた重みで合成することにより、前記ロボットの移動方向を決定することを特徴とするロボットの制
御方法。
【請求項９】
請求項８に記載のロボットの制御方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットにより物体を搬送するための技術に関し、詳しくは、物体を押して搬送するロボットの移動方向を制御するための技術に関する。
【背景技術】
【０００２】
物体の搬送は、移動ロボットの最も重要なタスクの一つである。ロボットにより任意の場所間での物体搬送が自動化されれば、ユーザの時間と労力を節約できるため、非常に有益である。搬送用ロボットには様々なタイプのものが提案されているが、ここでは、平面上に置かれた物体を自走式のロボットにより押していき、目標位置まで移動させるタイプのものに注目する。搬送タスクのほとんどはこの方法（押し搬送）で対処することが可能であるし、押し搬送は、工場、オフィス、店舗、家庭内など、様々な環境での物体搬送に応用が可能だからである。なお、非特許文献１には、押し搬送を行う家庭用のロボットが開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】S. Zhao, K. Nakamura, K. Ishii, and T. Igarashi, "Magic Cards : A Paper Tag Interface for Implicit Robot Control", Proceedings of the ACM Conference on Human Factors in Computing Systems, CHI2009, pp.173-182, Boston, USA, April, 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットで物体を押していったときに、その物体が予定通りの位置に移動するとは限らない。物体と物体が置かれた面との間の摩擦、物体の外形とロボットの干渉、物体の重心と押し位置のずれなど、様々な要因が物体の移動に影響を与え得るからである。したがって、自走式ロボットによる押し搬送では、システムが物体の位置を常に監視しながら、物体が目標位置に向かって押されていくよう、ロボットの動き（位置、向き）を逐次制御する必要がある。
【０００５】
押し搬送の最も単純なアルゴリズムとしては、図９（ａ）に示すように、最初にロボットＲを物体Ｏの後ろ側の押し位置まで移動させ、その後ロボットＲを目標位置Ｇに向かって移動させるというものが知られている（この方法をbinary mode法とよぶ）。物体Ｏが
パスから逸れた場合には、ロボットＲは押し動作を止めて、押し位置に復帰するよう移動するのである。しかしこのbinary mode法は、復帰動作に大きなオーバーヘッドがかかる
ため、あまり効率的ではない。別のアルゴリズムとして、図９（ｂ）に示すように、物体Ｏの中心のやや後ろの位置に向かってロボットＲを移動させるという方法が考えられる（この方法をtail-following法とよぶ）。この方法は、binary mode法よりは効率的である
ものの、例えばロボットが物体よりも目標位置に近くなってしまった場合などにエラーが生じる可能性がある。また、いずれの方法も、物体とロボットのサイズに依存するアルゴリズムであるため、システムを適用する環境（物体やロボットのサイズなど）に応じてプログラムを変更するか、サイズに依存する各種のパラメータを変更するかしなければならず、非常に煩わしいという問題もある。
【０００６】
本発明は上記実情に鑑みてなされたものであって、その目的とするところは、ロボットの押し搬送を効率的かつ安定的に実行可能なアルゴリズムを提供することにある。また、本発明のさらなる目的は、シンプルで、且つ、物体やロボットのサイズに依存しない、汎
用性の高い押し搬送アルゴリズムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明では、ロボットが物体を押す動作（押し動作）とロボットが物体の周りを移動して物体の後ろ側の押し位置に向かう動作（周回動作）とを適当な重みで合成することにより、ロボットの移動方向を決定するというアルゴリズムを採用した。
【０００８】
具体的には、本発明に係る搬送システムは、ロボットにより物体を押して該物体を所定の目標位置まで搬送する搬送システムであって、物体を押すための自走式のロボットと、前記物体と前記ロボットの現在の位置を検出する位置検出手段と、前記位置検出手段の検出結果に基づいて前記ロボットの移動方向を制御する制御手段と、を備え、前記制御手段は、前記ロボットが前記物体の位置に向かう方向の第１のベクトルと、前記第１ベクトルと直交し且つ前記ロボットが前記目標位置から離れる方向の第２のベクトルとを、前記物体と前記ロボットと前記目標位置の現在の位置関係に応じた重みで合成することにより、前記ロボットの移動方向を決定することを特徴とする搬送システムである。
【０００９】
第１のベクトルと第２のベクトルの合成ベクトルに従ってロボットを移動させることで、押し動作と周回動作の両方を同時に実行できるため、効率的な押し搬送が実現される。このとき、ロボット、物体、目標位置の位置関係に応じて押し動作と周回動作の重みを適切に調整すれば、さらなる効率化が期待できる。また、ロボット及び物体の現在位置と目標位置の３つの値からベクトル演算を行うだけでよく、極めてシンプルなアルゴリズムである。さらに、第１のベクトル、第２のベクトル、それらの重み、のいずれもロボットや物体のサイズに依存しないため、本発明のアルゴリズムはいかなるサイズの物体、ロボットにも汎用的に適用可能である。
【００１０】
前記制御手段は、前記物体から前記目標位置へのベクトルと前記物体から前記ロボットへのベクトルとのなす角θ（０度≦θ≦１８０度）に応じて前記重みを連続的に変化させることが好ましい。
【００１１】
ロボット、物体、目標位置の位置関係が変化するたびに、ロボットの移動方向が更新される。このとき、θに応じて重みを連続的に変化させるようにすれば、ロボットの移動方向が滑らかに変化するため、ロボットの動作が安定する。
【００１２】
前記制御手段は、θが１８０度の場合に、前記第１のベクトルの重みを最大にするとともに、前記第２のベクトルの重みをゼロにすることが好ましい。
【００１３】
θが１８０度というのは、目標位置からみてロボットが物体の真後ろに位置する場合である。このような位置関係の場合に、周回動作を止めて、押し動作のみ行うことで、押し搬送の効率を最大にすることができる。
【００１４】
例えば、前記第１のベクトルが、（−ｃｏｓθ，−ｓｉｎθ）であり、前記第２のベクトルが、（−ｓｉｎθ，ｃｏｓθ）であり、前記第１のベクトルの重みが、−ｃｏｓθであり、前記第２のベクトルの重みが、ｓｉｎθであることが好ましい。
【００１５】
これにより、θに応じて重みが連続的に変化するとともに、θが１８０度のときに第１のベクトルの重みが最大値１をとり、第２のベクトルの重みがゼロをとる。さらに、θが１８０度より小さくなるに従って、第２のベクトルの重みが徐々に大きくなり、その分、第１のベクトルの重みが徐々に小さくなるので、ロボットが物体の真後ろから離れるほど周回動作成分が大きくなり、最適な押し位置（θ＝１８０度）への復帰が促進される。そ
して、θが９０度の場合、つまりロボットが物体の真横にある場合に、第１のベクトルの重みがゼロとなり、第２のベクトルの重みが最大となるため、物体を目標位置から遠ざけることがなく、且つ、最適な押し位置への迅速な復帰が期待できる。
【００１６】
前記制御手段は、θが９０度以下の場合に、前記第１のベクトルの重みをゼロにすることが好ましい。
【００１７】
θが９０度以下の場合、第１のベクトルの重みがゼロより大きいと物体を目標位置から遠ざけることとなるし、第１のベクトルの重みがゼロより小さいとロボット自身が物体から遠ざかることとなり、いずれも非効率的である。その点、θが９０度以下の場合に第１のベクトルの重みをゼロに固定し、周回動作のみを行うようにすれば、押し搬送の効率化を図ることができる。
【００１８】
前記制御手段は、前記物体が前記目標位置に近づいた場合に前記第２のベクトルの重みを増大させることが好ましい。典型的には、前記制御手段は、前記物体と前記目標位置の距離が近くなるほど大きくなる係数ａ（ａ≧１）を、前記第２のベクトルの重みに乗じればよい。
【００１９】
これにより、目標位置の近傍では周回動作成分が増大し、相対的に押し動作成分が小さくなるため、押し動作が慎重に（少しずつ）行われることとなる。したがって、物体がパスから外れたり、目標位置を行き過ぎてしまったりすることが防止され、結果として、目標位置への収束が早くなる。
【００２０】
搬送システムが、自走式の第２のロボットをさらに備え、前記位置検出手段が、前記第２のロボットの現在の位置をさらに検出し、前記制御手段が、前記ロボットを前記第２のロボットが搬送する物体とみなして、前記ロボットの移動方向の場合と同じアルゴリズムを用いて前記第２のロボットの移動方向を制御することによって、前記ロボットと前記第２のロボットとが直列につながって前記物体を押すことも好ましい。
【００２１】
これにより、１台のロボットでは搬送困難な重い物体を、複数のロボットの協働により搬送することが可能となる。しかも、先頭のロボットが物体を押すアルゴリズムと、第２のロボットが先頭のロボットを押すアルゴリズムとを同じにできるため、プログラムの作成及び実装が容易である。
【００２２】
なお、本発明は、上記手段の少なくとも一部を有する搬送システムまたはロボット制御システムとして捉えることができる。また、本発明は、上記処理の少なくとも一部を含むロボット制御方法、または、その方法の各ステップをコンピュータに実行させるためのプログラムや同プログラムを記録した記録媒体として捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【００２３】
例えば、本発明の一態様としてのロボット制御方法は、自走式のロボットにより物体を押して該物体を所定の目標位置まで搬送する搬送システムにおける、ロボットの制御方法であって、前記物体と前記ロボットの現在の位置を検出するステップと、前記位置検出ステップの検出結果に基づいて前記ロボットの移動方向を制御する制御ステップと、を含み、前記制御ステップでは、前記ロボットが前記物体の位置に向かう方向の第１のベクトルと、前記第１ベクトルと直交し且つ前記ロボットが前記目標位置から離れる方向の第２のベクトルとを、前記物体と前記ロボットと前記目標位置の現在の位置関係に応じた重みで合成することにより、前記ロボットの移動方向を決定することを特徴とするロボットの制御方法である。
【発明の効果】
【００２４】
本発明によれば、ロボットの押し搬送を効率的かつ安定的に実行可能なアルゴリズムを提供できる。また、本発明によれば、シンプルで、且つ、物体やロボットのサイズに依存しない、汎用性の高い押し搬送アルゴリズムを提供できる。
【図面の簡単な説明】
【００２５】
【図１】搬送システムのハードウエア構成を示す図であり、（ａ）は側面図、（ｂ）は平面図である。
【図２】搬送システムの機能構成を示すブロック図である。
【図３】ロボット、物体、目標位置の位置関係の一例を示す図である。
【図４】（ａ）はロボットと物体の位置関係を変えたときのロボットの移動方向の変化を示す図、（ｂ）はベクトル場（ｃｏｓ２θ，ｓｉｎ２θ）を示す図である。
【図５】搬送システムのフローチャートである。
【図６】（ａ）は直線形状のバンパーと物体の干渉を示す図、（ｂ）は円形のバンパーによる搬送動作を示す図である。
【図７】第３実施形態の係数ａの定義を説明するための図である。
【図８】第４実施形態における直列搬送の様子を示す図である。
【図９】（ａ）はbinary mode法を示す図、（ｂ）はtail-following法を示す図である。
【発明を実施するための形態】
【００２６】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【００２７】
＜第１実施形態＞
（システム構成）
図１は、本発明の実施形態に係る搬送システムのハードウエア構成を示している。（ａ）は側面図であり、（ｂ）はステージＳを上方からみた平面図である。このシステムは、ステージＳの上に置かれた物体ＯをロボットＲにより目標位置Ｇまで搬送するための搬送システムであって、自走式のロボットＲと、撮像装置２と、コンピュータ３とから構成される。ロボットＲ及び撮像装置２は、それぞれ、無線又は有線によりコンピュータ３に接続されている。
【００２８】
ロボットＲは、車輪、駆動モータ等から構成される移動機構と、コンピュータ３からの制御コマンドに基づき移動機構を制御するマイクロコントローラとを備える、自走式のロボットである。本実施形態のロボットＲは、略円盤状の外形を有しており、搬送対象の物体Ｏへの引っ掛かりや物体Ｏの損傷を防ぐために、ロボットＲの外周には円形のバンパーが取り付けられている。ロボットＲの移動機構は、少なくとも「前進」「右回り」「左回り」「停止」の動作が可能である。これらの動作は、マイクロコントローラ内に予めプログラムされており、コンピュータ３から各動作に対応する制御コマンドを送出することで、ロボットＲの動作を制御することができる。
【００２９】
撮像装置２は、ＣＣＤやＣＭＯＳなどの撮像素子を備える小型のカメラであり、平面ステージＳの上方に、ステージＳを画角におさめるように設置されている。本実施形態では、ステージＳと撮像装置２の光軸がほぼ直交するように撮像装置２を固定したが、必ずしもこの構成に限らず、ステージＳを斜めに俯瞰するように撮像装置２を設置してもよいし、また撮像装置２の画角や光軸の向きを可変にしてもよい。撮像装置２で取得した画像は、ロボットＲ及び物体Ｏの位置検出に利用される（詳細は後述する）。
【００３０】
図２は、搬送システムの機能構成を示すブロック図である。本システムは、その機能として、概略、位置検出部３０、移動方向算出部３１、コマンド送信部３２を備えている。
これらの機能は、コンピュータ３のＣＰＵが記憶装置に格納されたプログラムをロードし実行することで実現されるものである。なお、コンピュータ３としては、ＣＰＵ、メモリ、補助記憶装置、入力装置、表示装置などを備える汎用のパーソナル・コンピュータを用いることができる。ただし、専用のコンピュータや、ロボットに実装するオンボードマイコンなどを用いることも好ましい。またプログラムの一部または全部を専用ＩＣで構成することも可能である。
【００３１】
位置検出部３０は、ロボットＲと物体Ｏの現在の位置を検出するための位置検出手段である。ここで、ロボットＲの位置とは、ロボットＲ上に設定された代表点の位置をさす。また物体Ｏの位置とは、物体Ｏ上に設定された代表点の位置をさす。それぞれの代表点は任意に設定できるが、ロボットＲ及び物体Ｏの動きの安定を考慮すると、ロボットＲの回転中心と物体Ｏの質量中心（重心）をそれぞれ代表点に設定することが好ましい。本実施形態では、図１に示すように、ロボットＲ及び物体Ｏには、それぞれ、所定の図形が描画されたマーカＭｒ、Ｍｏが取り付けられている。マーカの取り付け位置は上記代表点を基準に決められている。位置検出部３０は、撮像装置２から取り込まれた画像からマーカＭｒ、Ｍｏを認識することによって、ロボットＲ及び物体Ｏの位置・向きを検出する。なお、マーカの認識には公知の図形認識手法を利用できるので、ここでは詳しい説明を省略する。
【００３２】
移動方向算出部３１は、位置検出部３０の検出結果に基づいてロボットＲの最適な移動方向を計算する機能である。また、コマンド送信部３２は、ロボットＲの現在の向きと、移動方向算出部３１で計算した移動方向とから、ロボットＲの制御コマンド（ここでは、「前進」「右回り」「左回り」「停止」の組み合わせ）を生成し、ロボットＲのマイクロコントローラに送信する機能である。本実施形態では、この移動方向算出部３１及びコマンド送信部３２が、本発明の制御手段を構成している。以下では、本実施形態の移動方向算出部３１が採用する押し搬送アルゴリズムについて詳しく説明した後、システム全体の処理フローについて説明する。
【００３３】
（押し搬送アルゴリズム）
押し搬送アルゴリズムは、例えば図３に示すような位置関係が与えられたときに、物体Ｏを目標位置Ｇに到達させるためのロボットＲの好適な移動方向を算出するための計算手法である。本アルゴリズムの入力は、物体Ｏの目標移動方向Ｄｏ（物体Ｏから目標位置Ｇへのベクトルの向き）と、ロボットＲ及び物体Ｏの位置関係であり、本アルゴリズムの出力は、ロボットＲの移動方向Ｄｒである。ここで、ロボットＲと物体Ｏの位置は位置検出部３０から都度取得されるものであり、目標位置Ｇについては予めわかっているものとする。なお、ロボットＲを物理的に駆動するためには、モータトルクとかタイミングといったパラメータの調整が必要となるが、ロボットＲの移動方向Ｄｒの計算は、これらのローレベルな駆動制御の問題とは独立に取り扱うことが可能である。
【００３４】
本システム（移動方向算出部３１）は、ロボットＲと物体Ｏの位置を取得すると、まずローカル座標系を定義する。物体Ｏの位置をローカル座標系の原点にとり、物体Ｏの目標移動方向Ｄｏに対して平行にｘ軸をとる。ここで、ロボットＲの位置ベクトル（物体ＯからロボットＲへのベクトル）がｘ軸となす角をθとおき、ロボットＲと物体Ｏの距離を１とすると、ロボットＲの座標は（ｃｏｓθ，ｓｉｎθ）で表される。
【００３５】
ロボットＲの基本的な動作として、ロボットＲが物体Ｏを押す動作（押し動作）と、ロボットＲが物体Ｏの周りを移動して物体Ｏの後ろ側に回り込む動作（周回動作）とを考えると、上記座標系においては、押し動作の移動方向は、ロボットＲが物体Ｏの位置に向かう方向のベクトル、具体的にはベクトルＶ１＝（−ｃｏｓθ，−ｓｉｎθ）で与えられる。また、周回動作の移動方向は、ベクトルＶ１と直交するベクトルのうちロボットＲが目
標位置Ｇから離れる方向のベクトル、具体的には、ベクトルＶ２＝（−ｓｉｎθ，ｃｏｓθ）で与えられる。従来のbinary mode法は押し動作と周回動作を別々に実行するもので
あったのに対し、本アルゴリズムは、２つのベクトルＶ１、Ｖ２を適当な重みで合成することで、押しながら周回する（あるいは、周回しながら押す）というロボットＲの動きを実現する。
【００３６】
目標位置ＧからみてロボットＲが物体Ｏの後ろ側にいる場合（つまり、−ｃｏｓθが大きい場合）は、ロボットＲによる押し動作を支配的にするべきである。一方、ロボットＲが物体Ｏの真後ろの位置から離れるほど（つまり、ｓｉｎθが大きいほど）、ロボットＲの周回動作を支配的にするべきである。そこで、本アルゴリズムでは、ベクトルＶ１、Ｖ２それぞれの重みとして−ｃｏｓθ、ｓｉｎθを選ぶ。そうすると、ロボットＲの移動方向Ｄｒは、下記式のように、（ｃｏｓ２θ，ｓｉｎ２θ）で与えられることとなる。
【数１】
2011108003.tif 000003
【００３７】
図４（ａ）は、ロボットＲと物体Ｏの位置関係を変えたときのロボットＲの移動方向Ｄｒの変化を示すものである。また図４（ｂ）は、ベクトル場（ｃｏｓ２θ，ｓｉｎ２θ）を図示したものである。これらの図から、ロボットＲが物体Ｏの後ろ側にいくほど押し動作が支配的となること、ロボットＲと物体Ｏの位置関係に応じて移動方向Ｄｒが連続的に変化することなどがわかる。
【００３８】
さらに興味深いのは、図４（ｂ）のベクトル場が物理学におけるダイポールに似ていることである（従って、本アルゴリズムをダイポール法ともよぶ）。物理学におけるダイポールとは、例えば、プラスとマイナスの電荷が離れて存在する場合に観測される電界のことである。幾何学的には、図４（ｂ）に示すように、ダイポールは、ある直線上の１点で当該直線に接する多数の円で描画される。
【００３９】
（処理フロー）
図５のフローチャートを参照して、本システムの処理の流れを説明する。なお、ロボットＲ及び物体Ｏはステージ上に予め配置され、且つ、それらに対して位置検出用のマーカＭｒ、Ｍｏが取り付けられているものとする。また、搬送のゴールとなる目標位置Ｇについては予めシステムに教示されているものとする。
【００４０】
ステップＳ１０において、位置検出部３０は、撮像装置２から画像を取り込むと、マーカＭｒ、Ｍｏを認識することによりロボットＲ及び物体Ｏの現在の位置・向きを特定する。次に、移動方向算出部３１が、目標位置ＧとステップＳ１０で得られた物体Ｏの現在位置とから、物体Ｏの目標移動方向Ｄｏを計算する（ステップＳ１２）。そして、移動方向算出部３１は、上述した押し搬送アルゴリズム（ダイポール法）を用いて、ロボットＲの移動方向Ｄｒを計算する（ステップＳ１３）。
【００４１】
次に、コマンド送信部３２が、ステップＳ１３で計算した移動方向Ｄｒに従って、ロボットＲの動きを制御する。具体的には、コマンド送信部３２は、ステップＳ１０で得られたロボットＲの向きと移動方向Ｄｒとを比較し（ステップＳ１４）、その差が所定の閾値Ｔｈ２より小さい場合は、ロボットＲを所定距離だけ前進させる（ステップＳ１５）。一方、差が閾値Ｔｈ２以上の場合は、コマンド送信部３２は、右回り又は左回りコマンドを送出してロボットＲの向きを調整する（ステップＳ１６）。
【００４２】
システムは、上記処理を繰り返し、物体Ｏと目標位置Ｇの距離が所定の閾値Ｔｈ１よりも小さくなったら、搬送完了と判断し、処理を終了する（ステップＳ１１）。
【００４３】
（本実施形態の利点）
上述した本実施形態の構成（アルゴリズム）によれば、次のような利点が得られる。
ベクトルＶ１とＶ２の合成ベクトルに従ってロボットＲを移動させたことにより、押し動作と周回動作の両方を同時に実行することができるため、従来のアルゴリズムに比べて、効率的な押し搬送が実現される。加えて、ベクトルＶ１、Ｖ２の重みをそれぞれ−ｃｏｓθ、ｓｉｎθに選んだことにより、θ（ロボット、物体、目標位置の位置関係）に応じてロボットの移動方向が滑らかに変化することとなり、ロボットの動作が安定する。また、θが１８０度のときにベクトルＶ１（押し）の重みが最大値１をとり、ベクトルＶ２（周回）の重みがゼロをとるため、ロボットが物体の真後ろにあるときに押し動作のみが行われることとなり、押し搬送の効率を最大にすることができる。さらに、θが１８０度より小さくなるに従って、ベクトルＶ２（周回）の重みが徐々に大きくなり、その分、ベクトルＶ１（押し）の重みが徐々に小さくなるので、ロボットが物体の真後ろから離れるほど周回動作成分が大きくなり、最適な押し位置（θ＝１８０度）への復帰が促進される。そして、θが９０度の場合、つまりロボットが物体の真横にある場合に、ベクトルＶ１の重みがゼロとなり、ベクトルＶ２の重みが最大となるため、物体を目標位置から遠ざけることがなく、且つ、最適な押し位置への迅速な復帰が期待できる。
【００４４】
また、本アルゴリズムは、ロボット及び物体の現在位置と目標位置の３つの値からベクトル演算を行うだけでよく、極めてシンプルであるとともに、計算量も非常に少ない。さらに、ロボットの移動方向Ｄｒは（ｃｏｓ２θ，ｓｉｎ２θ）で与えられ、ロボットや物体のサイズ、ロボットと物体間の距離などに依存しない。したがって、本アルゴリズムによれば、いかなるサイズの物体、ロボットに対しても同一のプログラムコードを利用でき、サイズ依存パラメータの調整といった煩雑な作業が不要となる。これにより、実用に際しての労力を大幅に軽減することができる。
【００４５】
また、本実施形態のロボットは、円形のバンパーを有しているため、直線形状のバンパーに比べ効率的な押し搬送が可能である。この点について、図６を参照して説明する。ロボットＲが物体Ｏの真後ろにいる場合は、いずれのバンパー形状でも同じように搬送することができる。しかしながら、ロボットＲの位置が物体Ｏの真後ろからずれてしまった場合、ロボットＲが周回動作のために転回すると、直線形状のバンパーでは物体Ｏに干渉し、物体Ｏを目標位置から遠ざけてしまうおそれがある（図６（ａ）参照）。バンパーの干渉を防ぐには、ロボットＲを後退させて物体Ｏから一旦離した後、周回動作を行う必要があるが、このような動作は多大なオーバーヘッドを生むため好ましくない。これに対して、図６（ｂ）に示すように、円形のバンパーの場合は、ロボットＲの転回時にバンパーと物体Ｏの干渉が生じることはないし、ロボットＲが転回を終えて前進すると、物体Ｏが目標位置方向へと押される。よって、本実施形態の押し搬送アルゴリズムには、円形バンパーのほうが好適である。
【００４６】
＜第２実施形態＞
ロボットＲが物体Ｏの前方にある場合、第１実施形態のアルゴリズムでは、ロボットＲは物体Ｏから離れる方向へと移動し、大きな弧を描いて物体Ｏの後ろに回り込む、という非効率的な軌道をとる（図４（ｂ）参照）。例えば、ロボットＲが目標位置Ｇの手前で物体Ｏを押しすぎ、物体Ｏが目標位置Ｇを通り越してしまった場合などに、上記の問題が発生する。
【００４７】
かかる問題を解決するために、第２実施形態のアルゴリズムでは、角度θが９０度以下の場合に、下記式のとおり、押し動作方向のベクトルＶ１の重みをゼロにする。これは、
第１実施形態のアルゴリズムで得られたロボットの移動方向Ｄｒが物体Ｏのほうを向いていなかった場合に、Ｄｒの径方向成分をゼロにする、と言い換えることもできる。
【数２】
2011108003.tif 000004
【００４８】
この方法は理解が容易であり実装が簡単であるという以外にも、次のような利点をもつ。第一に、０度＜θ≦９０度におけるベクトル場（−ｓｉｎ２θ，ｓｉｎθｃｏｓθ）と、９０度＜θ≦１８０度におけるダイポール場（ｃｏｓ２θ，ｓｉｎ２θ）とが、その境界（θ＝９０度）において滑らかに接続する。このことは、境界付近のロボットＲの動作を安定にする効果がある。第二に、本実施形態のアルゴリズムも、第１実施形態のものと同様、ロボットや物体のサイズに依存しないため、汎用性に優れている。
【００４９】
＜第３実施形態＞
第１及び第２実施形態のアルゴリズムでは、物体Ｏが目標位置Ｇに収束するのに時間がかかることがある。最悪なケースでは、ロボットＲと物体Ｏが目標位置Ｇの周囲を無限に回り続けることもある。このような現象が起きるのは、ダイポール法では、ロボットＲが物体Ｏの後ろに回り込むのと同時に物体Ｏを押して移動させてしまうからである。
【００５０】
かかる問題を解決するために、第３実施形態のアルゴリズムでは、物体Ｏが目標位置Ｇに近づいた場合に周回動作成分のベクトルＶ２の重みを増大させることとする。本実施形態のロボットＲの移動方向Ｄｒは下記式で表される。ここで、係数ａ（ａ≧１）は、物体Ｏと目標位置Ｇの距離に応じて決められるパラメータである。
【数３】
2011108003.tif 000005
【００５１】
係数ａが大きくなるほど周回動作成分が増大し、相対的に押し動作成分が小さくなるため、押し動作が慎重に（少しずつ）行われることとなる。したがって、目標位置Ｇの近傍で係数ａを大きくすれば、物体Ｏが搬送パスから外れたり、目標位置Ｇを行き過ぎてしまったりすることが防止され、結果として、目標位置Ｇへの収束が早くなる。なお、上記式から明らかなように、本実施形態のアルゴリズムも、ロボットＲや物体Ｏのサイズに依存しないという利点をもつ。
【００５２】
本実施形態では、係数ａを、ａ＝｜β｜／｜α｜のように定義する。ここで、αはロボットＲから物体ＯへのベクトルとロボットＲから目標位置Ｇへのベクトルの間の角度であり、βは物体ＯからロボットＲへのベクトルと目標位置Ｇから物体Ｏへのベクトルの間の角度である（図７参照）。この係数ａは、次のような特徴をもつ。第一に、係数ａは角度αに反比例するため、物体Ｏが目標位置Ｇに近づくほど係数ａは大きくなる傾向を示す。第二に、角度βを乗じることで、ロボットＲ、物体Ｏ、目標位置Ｇがほぼ一直線に並んだときに係数ａが無限大になってしまうことを防いでいる。そして、第三に、角度α、βで
定義したことで、ロボットや物体のサイズに依存しないパラメータである。
【００５３】
＜第４実施形態＞
図８は、第４実施形態における物体搬送の様子を示している。この実施形態では、２台のロボットを用いて１つの物体の押し搬送を行う。
【００５４】
本実施形態のシステムは、撮像装置２で得られた画像から、１番目のロボット（先頭のロボット）Ｒ１、２番目のロボット（後続のロボット）Ｒ２、物体Ｏそれぞれの位置及び向きを特定する。そして、システムは、第１〜第３実施形態と同じアルゴリズムを用いて、ロボットＲ１の移動方向を決定する。さらにシステムは、同じアルゴリズムをロボットＲ２の移動方向の算出にも適用する。このとき、物体Ｏではなく、ロボットＲ１を、ロボットＲ２の搬送対象物体に設定する（具体的には、アルゴリズムの入力としてロボットＲ２とロボットＲ１の位置を与える）だけで、２台のロボットＲ１、Ｒ２が直列につながって物体Ｏを押すこととなる。
【００５５】
これにより、１台のロボットでは搬送困難な重い物体を、複数のロボットの協働により搬送することが可能となる。しかも、先頭のロボットが物体を押すアルゴリズムと、後続のロボットが先頭のロボットを押すアルゴリズムとを同じにできるため、プログラムの作成及び実装が容易である。なお、本実施形態では２台のロボットによる直列搬送を例示したが、３台以上のロボットによる直列搬送も可能であることはいうまでもない。
【００５６】
＜その他の変形例＞
上記実施形態は本発明の一具体例を例示したものにすぎない。本発明の範囲は上記実施形態に限られるものではなく、その技術思想の範囲内で種々の変形が可能である。
【００５７】
例えば、ロボットの形状は円盤状でなくてもよい。またバンパーは、ロボットの外周の一部分だけに設けられていてもよいし、円形でなくフラットな形状のものでもよい。またロボットの移動機構は、車輪に限らず、キャタピラ、浮上装置、歩行装置のようなものでもかまわない。平面上を２次元的に移動して、物体に当接することで当該物体を押すことができさえすれば、ロボットの構成はいかなるものでも採用できる。また、搬送対象の物体の外形も円形である必要はなく、楕円形、矩形、多角形など、ロボットのバンパーと当接可能な外形をもつ物体であれば搬送可能である。
【００５８】
上記実施形態では、撮像装置２で得られた画像から物体等の位置を検出しているが、位置検出手段はこの構成に限られない。例えば、ステージにセンサを内蔵し、物体やロボットのステージ上の２次元座標をセンサで検知してもよい。あるいは、物体やロボット自体に位置センサを内蔵してもよい。
【００５９】
第３実施形態で用いる係数ａの定義は、上述したものに限られない。また、物体と目標位置の距離に応じて係数ａの値を連続的に変化させる必要はなく、数個の値を段階的に切り替える構成でもかまわない。例えば、物体Ｏと目標位置Ｇの距離が所定の閾値以上の場合（目標位置の非近傍の場合）はａ＝１とし、所定の閾値より小さい場合（目標位置の近傍の場合）にａ＝２とする、という方法でもよい。
【符号の説明】
【００６０】
Ｒ，Ｒ１，Ｒ２：ロボット、Ｏ：物体、Ｇ：目標位置、Ｓ：ステージ、２：撮像装置、３：コンピュータ、３０：位置検出部、３１：移動方向算出部、３２：コマンド送信部
【図１】
2011108003.tif 000006
【図２】
2011108003.tif 000007
【図３】
2011108003.tif 000008
【図４】
2011108003.tif 000009
【図５】
2011108003.tif 000010
【図６】
2011108003.tif 000011
【図７】
2011108003.tif 000012
【図８】
2011108003.tif 000013
【図９】
2011108003.tif 000014