(57)【要約】【課題】複数によって隊列を組んで移動するときに隊列を保ちながら移動でき、さらに移動中の速度変更が隊列を乱すことなく可能な移動体を提供すること。【解決手段】移動体は、時刻とその時刻における移動体の位置を経時的に指定している軌道データが教示され、それを記憶する。移動体は軌道データが指定する時刻に軌道データが指定する位置にあるように移動する。速度変更指令を認識すると、記憶している軌道データの時刻データを修正し、修正された時刻にその教示点へいるように移動体は移動する。速度変更がなされても各移動体はそれぞれが指定された位置へ同一の時刻に移動するので、隊列が乱れることがない。【選択図】  図１
2004362022.tif 000002
【特許請求の範囲】
【請求項１】
時刻と教示点位置を対応付けたデータを時間間隔をおいて経時的に記憶している軌道データ記憶手段と、
外部から与えられる速度変更指令を認識する速度変更指令認識手段と、
移動体が出発教示点から到着教示点に向けて移動している間に速度変更指令を認識したときに、軌道データ記憶手段に到着教示点に対応付けて記憶されている時刻を修正する時刻修正手段と、
軌道データが指定する時刻に軌道データが指定する教示点に位置しているように移動体の移動速度を制御する制御手段とを有する移動体。
【請求項２】
時刻修正手段による時刻修正幅が、認識された速度変更指令によって決定されることを特徴とする請求項１の移動体。
【請求項３】
時刻修正手段が、時刻が修正された教示点よりも遅い時刻に対応付けて記憶されている教示点に対応する時刻を、同一修正幅だけ修正することを特徴とする請求項１又は２の移動体。
【請求項４】
速度変更指令の前後の速度比が１：ｋであるときに、時刻修正手段が、時刻が修正された教示点よりも遅い時刻に対応付けて記憶されている教示点に対応する時刻を、教示点間の移動時間が１／ｋ倍となるように修正することを特徴とする請求項１又は２の移動体。
【請求項５】
軌道データの修正された時刻を送信する手段を備えた請求項１から４のいずれかの移動体と、
前記移動体から送信される時刻のデータを受信して軌道データ記憶手段に記憶されている時刻のデータを修正する手段と、軌道データが指定する時刻に軌道データが指定する教示点に位置しているように移動体の移動速度を制御する制御手段とを有する移動体とを備えている移動体群。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、移動体の移動速度を制御する技術に関する。特に、複数の移動体が予め定められた位置関係を保ちながら移動速度を変化させるのに適した技術に関する。例えば、複数の無人搬送車群によって長尺物を搬送しながら搬送速度を変化させたり、隊列を組んで行進するロボット群が隊列を乱さないで行進速度を変化させさせたりするのに適した技術に関する。
【０００２】
【従来の技術】ヒトが隊列を組んで行進するように、複数の移動体が予め定められた位置関係を保ちながら移動するためには、移動体の移動コースを指定するだけでは足らず、存在位置と存在時刻を対応付けた情報を必要とする。例えば、２台の移動体を横一列に並べたまま移動させるためには、移動コースを指定するだけで足りず、移動速度等を指定する必要がある。直線を移動する間は２台の移動体が同じ速度で移動し、コーナーを曲がる間は、外側の移動体が内側の移動体よりも速く移動するように教示しておかないと、横一列に並んだ状態を維持することができない。
本明細書では、移動コースのみが指定され、移動速度ないしは存在時刻に関するデータを有しないものを軌跡データという。これに対して、移動コースのみならず、移動速度ないしは存在時刻に関するデータを有するものを軌道データという。複数の移動体が予め定められた位置関係を保ちながら移動するためには、軌跡データを教示しておくだけでは足りず、軌道データを教示する必要がある。
【０００３】
軌跡データは、移動コース状にある教示点位置を次々に指定することで記述することができる。この教示点位置に対応付けて移動速度を指定すると、軌道データが記述される。２台の移動体を横一列に並べたまま移動させるためには、直線上に存在する教示点に対しては同一移動速度を指定し、コーナー上に存在する教示点に対しては、コーナーの半径に比例する移動速度を指定することによって、横一列に並んだ状態を維持することが可能となる。
【０００４】
複数の移動体が予め定められた位置関係を保ちながら移動している途中で、移動体群の速度を増速させたり減速させたりする必要が生じることがある。この場合、軌道データを修正し、増速ないし減速した軌道を記述する軌道データに修正する必要がある。
【０００５】
【発明が解決しようとする課題】教示点位置に対応付けて移動速度を指定することで軌道データを記述することができるが、複数の移動体の位置関係を考慮しながら移動速度を含む軌道データを用意するのは困難である。
２台の移動体を横一列に並ベて移動させるには、円弧に沿って曲がる教示点群を記述するときに、教示点群で構成される円弧の半径を計算し、教示点に対応付けて記憶される移動速度のデータを計算しなければならず、煩雑である。
また、教示点位置に対応付けて移動速度を指定する形式の軌道データでは、複数の移動体の位置関係が一旦乱れると、それを修正することができない。どちらか一方の移動体が遅れると遅れたままに移動しつづけることになり、遅れを取り戻すことができない。
複数の移動体が予め定められた位置関係を保ちながら移動している途中で、増速ないし減速した軌道データに修正する場合、増減速に際して移動速度にずれが生じやすく、どちらか一方の移動体が遅れるようなことが頻発する。教示点位置に対応付けて移動速度を指定して軌道データを記述する形式では、実際上、複数の移動体を予め定められた位置関係を保ちながら移動させることができない。特に、移動途中で増速ないし減速した軌道データに修正する場合には、移動体の位置関係が乱れやすく、乱れた位置関係を矯正することができないために、予め定められた位置関係を保ちながら移動させることができなくなる。本発明は、上述の問題を鑑みてなされたものである。
【０００６】
本発明の一つの目的は、移動体の移動を制御する軌道データが簡単に用意できるようにすることである。
本発明の他の目的は、移動体群の相対位置関係に乱れが生じても、予め定められている相対位置関係に矯正できるようにすることである。移動している途中で増速ないし減速すると、移動体群の相対位置関係に乱れが生じやすい。相対位置関係の乱れを矯正できなければ、相対位置関係を維持しながら移動途中で増速ないし減速することが困難となる。本発明では、予め定められている相対位置関係に矯正することができる技術を提供し、もって、相対位置関係を維持しながら移動途中で増速ないし減速することを可能とする。
【０００７】
【課題を解決するための手段と作用と効果】本発明の移動体は、時刻と教示点位置を対応付けたデータを時間間隔をおいて経時的に記憶している軌道データ記憶手段と、外部から与えられる速度変更指令を認識する手段と、移動体が出発教示点から到着教示点に向けて移動している間に速度変更指令を認識したときに、軌道データ記憶手段に到着教示点に対応付けて記憶されている時刻を修正する時刻修正手段と、軌道データが指定する時刻に軌道データが指定する教示点に位置しているように移動体の移動速度を制御する制御手段を備えている。
軌道データ記憶手段は、移動体に内蔵されていてもよいが、移動体外に置かれていて移動体に軌道データを送信するものであってもよい。速度変更指令認識手段も同様であり、移動体に内蔵されていてもよいし、認識した速度変更指令を移動体に送信するものであってもよい。
軌道データは、時刻と教示点位置を対応付けたデータで構成されている。時間間隔をおいて、時刻と教示点位置を対応付けたデータが複数対用意されている。時刻は、通常、移動体の移動開始時刻からの経過時間で記述される。教示点位置は任意の座標系で記述することができるが、２次元平面内で移動する場合には、直交座標系で記述することが多い。時間間隔は一定でもよいし不規則でもよい。典型的には時間間隔が一定とされ、例えば、移動開始時刻から１分後の移動体の位置、２分後の位置、３分後の位置・・の集合で、軌道データが記述される。直線的に長時間移動する場合には、時間間隔を長くしてもよい。
時刻に対応付けられる位置のことを教示点という。先の場合、１分後の教示点位置、２分後の教示点位置、３分後の教示点位置・・の集合で、軌道データが記述される。
移動体は教示点を辿って移動する。教示点の間は、直線補完されたり、曲線補完されたりする。教示点の間を移動している状態は、出発教示点から到着教示点に向けて移動しているということができる。
【０００８】
教示点に対応付けて移動速度を指定する形式によって軌道データを用意する場合には、予め定められている位置関係に実現することができる移動速度を計算しなければならないために煩雑であるのに対し、教示点に対応する時刻を指定して軌道データを記述する方式によると、予め定められている位置関係をそのまま指定することができ、簡単に軌道データを用意することができる。
上記の移動体では、出発教示点から到着教示点に向けて移動している間に速度変更指令を認識すると、到着教示点に対応付けて記憶されている時刻が修正される。増速指令が認識されれば、到着教示点に対応付けて記憶されている時刻が早められる。減速指令が認識されれば、到着教示点に対応付けて記憶されている時刻が遅らせられる。
移動体は、軌道データ記憶手段に記憶されている軌道データが指定する時刻に軌道データが指定する教示点に位置しているように制御されるので、到着教示点に対応付けて記憶されている時刻が早められれば、到着教示点に向かう移動速度を速め、到着教示点に対応付けて記憶されている時刻が遅らせられれば、到着教示点に向かう移動速度を減速する。
【０００９】
この方式では、複数の移動体が同一時刻に位置している教示点位置は変更されない。対応する時刻が修正されるだけである。複数の移動体の相対的位置関係を記述するデータは保存され、相対的位置関係が維持される。各移動体は教示点に到着した時刻、または教示された時刻における自己の位置を軌道データと比較することによって、自身の移動が遅れているのか早すぎるのかを知ることができ、遅すぎれば速度を速くし早すぎれば速度を遅くする。それによって複数の移動体の相対位置関係が予め定められているものとなるように矯正することができる。
移動途中で増速ないし減速すると、移動体群の相対位置関係に乱れが生じやすい。本発明の移動体では、移動体群の相対位置関係に乱れが生じても、予め定められている相対位置関係に矯正できるので、移動体群が移動している途中で増速ないし減速することが可能となる。
【００１０】
時刻修正手段で時刻を修正するにあたっては、認識された速度変更指令によって時刻の修正幅が決定されるようにすることが好ましい。
例えば、指揮者が指揮棒を振る周期によって移動速度を指定している場合、指揮者が周期を大幅に変更すれば時刻の修正幅を大きくし、周期を小幅に変更すれば時刻の修正幅を小さくする。
このようにすれば、指揮者の意図によって、移動速度を自在に変化させることが可能となる。
【００１１】
時刻修正手段が、時刻が修正された教示点よりも遅い時刻に対応付けて記憶されている教示点に対応する時刻を、同一修正幅だけ修正するようにしてもよい。
速度変更指令がなされたとき、それ以降に到達する教示点に対する時刻が同じ修正幅によって修正されるようにすると、速度変更指令を受けた教示点間では教示点間の移動時間が変化して速度変更が行われるが、それ以降の教示点間では教示点間を移動する時間は変更されために速度変更も行われない。この移動体によれば、速度変更の必要な区間でのみ速度変更することが可能であり、その速度変更がそれ以降の区間の速度に影響を及ぼすことはない。
【００１２】
速度変更指令の前後の速度比が１：ｋであるときに、時刻が修正された教示点よりも遅い時刻に対応付けて記憶されている教示点に対応する時刻を、教示点間の移動時間が１／ｋ倍となるように修正するようにしてもよい。すなわち、速度変更指令によって速度がｋ倍に変化した時、それ以降のすべての教示点間の移動時間が１／ｋ倍に修正される。この結果、速度変更指令以降のすべての教示点間の移動速度がｋ倍となる。この移動体では、一度の速度変更指令によって、それ以降の経路のすべてにわたって速度変更をさせることが可能である。速度変更指令を受けた時刻以降の移動体の速度はすべてｋ倍となる。
【００１３】
本発明は、複数の移動体が存在する場合に、その特徴が顕著に表れる。この場合、移動体群のうちの一つを請求項１から４のいずれかの移動体で構成する。この移動体には、軌道データの修正された時刻を送信する手段を付加しておく。
その他の移動体は、前記の移動体から送信される時刻のデータを受信して軌道データ記憶手段に記憶されている時刻のデータを修正する手段と、軌道データ記憶手段に記憶されている軌道データが指定する時刻に軌道データが指定する教示点に位置しているように移動体の移動速度を制御する制御手段を備えている。その他の移動体には、時刻修正手段を設けない。
この場合、１つの移動体のみが外部からの速度変更指令を認識し、それ以降に到着する教示点に対応する時刻を修正する。その移動体は、修正された時刻を他の移動体へ送信する。他の移動体は、軌道データの時刻を修正された時刻に修正し、それに応じて移動を行う。
この移動体群によれば、複数の移動体が同一時刻に位置している教示点位置は変更されない。対応する時刻が変更されるだけである。複数の移動体の相対的位置関係を記述するデータは保存され、相対的位置関係を維持しながら、移動体群が速度を変える。
【００１４】
【発明の実施の形態】最初に、以下で説明する実施例の主な特徴を記す。
（形態１）  ロボットは、指揮者が振る指揮棒の動きをカメラによって撮影し、その周期を認識し、記憶している基本周期との差分を演算し、指揮者が意図する速度を認識する。
（形態２）  ロボットは通信手段を有し、相互に通信が可能である。
（形態３）  ロボットは、教示された軌道データの教示点に位置した時、その時刻と到着した教示点に対応付けて記憶している時刻とを比較し、一致しない場合はその差分に応じて次の教示点までの速度パターンを補正する。
【００１５】
【第１実施例】本発明の実施例について図面を用いて説明する。図１に、本発明に係る第１ロボット１０と第２ロボット６０のシステム構成を示し、図２に、第１ロボット１０と第２ロボット６０の軌道例を示す。図２に例示すように、第１ロボット１０は教示点Ｐ１からＰ６までを順に移動し、第２ロボット６０は教示点Ｑ１からＱ６までを順に移動する。その移動中、第１ロボット１０が教示点Ｐ１を出発する時刻Ｔ１と第２ロボット６０が教示点Ｑ１を出発する時刻Ｔ１は等しい。また、第１ロボット１０が教示点Ｐ２に到着する時刻Ｔ２と第２ロボット６０が教示点Ｑ２に到着する時刻Ｔ２は等しい。以後同様に、第１ロボット１０が教示点Ｐ３に到着する時刻Ｔ３と第２ロボット６０が教示点Ｑ３に到着する時刻Ｔ３は等しく、第１ロボット１０が教示点Ｐ４に到着する時刻Ｔ４と第２ロボット６０が教示点Ｑ４に到着する時刻Ｔ４は等しく、第１ロボット１０が教示点Ｐ５に到着する時刻Ｔ５と第２ロボット６０が教示点Ｑ５に到着する時刻Ｔ５は等しく、第１ロボット１０が教示点Ｐ６に到着する時刻Ｔ６と第２ロボット６０が教示点Ｑ６に到着する時刻Ｔ６は等しい。第１ロボット１０と第２ロボット６０は、同一時刻において横一列に並んだ教示点に位置するように移動するので、横１列に並んだ隊列を保って移動する。
【００１６】
図１に示すように、第１ロボット１０は、ＣＰＵ１４と記憶装置４１を備えている。記憶装置４１は、時刻と教示点位置を対応付けたデータ、この場合（時刻Ｔ１と教示点Ｐ１の座標）、（時刻Ｔ２と教示点Ｐ２の座標）・・・を記憶している軌道データ記憶部４２を備えている。
第１ロボット１０は、軌道データ記憶部４２に記憶されている軌道データの教示点Ｐ１〜Ｐ６の座標データから、教示点間の軌跡を補完計算する軌跡計算プログラム４６を備えている。
第１ロボット１０は、指揮者２が振る指揮棒４の先端を撮影しつづけるカメラ１２を備え、カメラ１２で撮影された画像を処理して指揮者２が振る指揮棒４の周期を計算しつづける画像処理プログラム４４を備えている。指揮者２は、第１、第２ロボット１０、６０を高速で移動させたい場合には、指揮棒４を振る周期を短縮し、第１、第２ロボット１０、６０を低速で移動させたい場合には、指揮棒４を振る周期を長期化する。ＣＰＵ１４はＩ／Ｏ１６を通じて入力されるカメラ１２の映像から画像処理プログラム４４によって指揮棒４の周期を計算し、周期の変化から指揮者２が与える速度変更指令を認識する。
第１ロボット１０は、移動体が出発教示点から到着教示点に向けて移動している間に指揮棒４の周期が変化したことを認識したときに、軌道データ記憶部４２に教示点に対応付けて記憶されている時刻のうち、それ以降に到着する教示点に対応付けて記憶されている時刻を修正する時刻修正プログラム４８を備えている。例えば、教示点Ｐ３から出発して教示点Ｐ４へ移動している間（時刻Ｔ３〜時刻Ｔ４の間）に指揮棒４の周期が変化したことを認識した場合、それ以降に到着する教示点Ｐ４、Ｐ５、Ｐ６に対応付けて記憶されている時刻Ｔ４、Ｔ５、Ｔ６を、時刻Ｔ４’、Ｔ５’、Ｔ６’へ修正する。
第１ロボット１０は、軌道データ記憶部４２に記憶されている軌道データが指定する時刻に軌道データが指定する教示点に第１ロボット１０が位置しているように、第１ロボット１０の速度パターンを計算する速度パターン計算プログラム５０と、移動方向を計算する移動方向計算プログラム５２を備えている。
第１ロボット１０は、二輪駆動機構２８を有しており、車輪３０、３２と、車輪３０、３２のそれぞれを駆動するモータ３４、３６と、車輪３０、３２のそれぞれの回転数を計測するエンコーダ３８、４０を備えている。そして、速度パターン計算プログラム５０と移動方向計算プログラム５２による演算結果に従ってモータ３４、３６を駆動するモータドライバ２４、２６を備えており、ＣＰＵ１４による演算結果はＩ／Ｏ２２を通してモータドライバ２４、２６へ送られ、モータドライバ２４、２６はモータ３４、３６を駆動する。第１ロボット１０は、速度パターン計算プログラム５０で計算された速度で移動方向計算プログラム５２で計算された方向に移動し、軌道データ記憶部４２に記憶されている軌道を実現する。
第１ロボット１０は、エンコーダ３８、４０による車輪３０、３２の回転数の計測結果から自己の位置を計算する位置計算プログラム５４を備えている。第１ロボット１０が軌道データ記憶部４２に記憶されている軌道データに従って移動すると、実際の位置と軌道データが教示する位置は一致するはずであるが、実際には誤差が生じるために一致しない。エンコーダ３８、４０の計測結果は、Ｉ／Ｏ１６を通してＣＰＵ１４へ送られ、位置計算プログラム５４により第１ロボット１０の現在地が計算しつづけられる。そのため、第１ロボット１０は移動中において自己の位置を認識しつづけることができる。
第１ロボット１０は、時刻を認識する時計１８を有しており、軌道データ記憶部４２で教示点に対応付けて記憶している時刻毎に、自己の位置とその時刻に対応付けて記憶している教示点とを比較し、一致しない場合はその差分に応じて次の教示点までの速度パターンを補正する速度パターン補正プログラム５６を備えている。
第１ロボット１０は、時刻修正プログラム４８が修正した軌道データの時刻に関するデータを第２ロボット６０に向けて送信する通信手段２０と通信プログラム５８を備えている。
【００１７】
第２ロボット６０は、ＣＰＵ６４と記憶装置９１を備えている。記憶装置９１は、時刻と教示点位置を対応付けたデータ、この場合（時刻Ｔ１、教示点Ｑ１の座標）、（時刻Ｔ２、教示点Ｑ２の座標）・・・を記憶している軌道データ記憶手段９２を備えている。
第２ロボット６０は、軌道データ記憶部９２で記憶している軌道データの教示点Ｑ１〜Ｑ６の座標データから、教示点間の軌跡を補完計算する軌跡計算プログラム軌跡計算プログラム９６を備えている。
第２ロボット６０は、第１ロボット１０が送信する修正された時刻に関するデータを受信する通信手段７０と通信プログラム１０８を備えており、記憶している軌道データの時刻に関するデータを、受信した時刻に関するデータに書換える時刻書換えプログラム９８を備えている。例えば、第１ロボット１０が、時刻Ｔ４、Ｔ５、Ｔ６のそれぞれを時刻Ｔ４’、Ｔ５’、Ｔ６’へ修正するデータを送信した場合には、それを受信して、それ以降に到着する教示点Ｑ４、Ｑ５、Ｑ６に対応付けて記憶されている時刻Ｔ４、Ｔ５、Ｔ６のそれぞれを時刻Ｔ４’、Ｔ５’、Ｔ６’へ書換える。
第２ロボット６０は、軌道データ記憶部９２に記憶されている軌道データが指定する時刻に軌道データが指定する教示点に第２ロボット６０が位置しているように、第２ロボット６０の速度パターンを計算する速度パターン計算プログラム１００と移動方向を計算する移動方向計算プログラム１０２を備えている。
第２ロボット６０は、二輪駆動機構７８を有しており、２つの車輪８０、８２と、それらの車輪８０、８２のそれぞれを駆動するモータ８４、８６と、それらの車輪８０、８２のそれぞれの回転数を計測するエンコーダ８８、９０を備えている。また、速度パターン計算プログラム１００と移動方向計算プログラム１０２による演算結果に従ってモータ８４、８６を駆動するモータドライバ７４、７６を備えており、ＣＰＵ６４による演算結果はＩ／Ｏ７２を通してモータドライバ７４、７６へ送られ、モータドライバ７４、７６はモータ８４、８６を駆動する。第２ロボット６０は、速度パターン計算プログラム１００で計算された速度で移動方向計算プログラム１０２で計算された方向に移動し、軌道データ記憶部９２に記憶されている軌道を実現する。
第２ロボット６０は、エンコーダ８８、９０による車輪８０、８２の回転数の計測結果から自己の位置を計算する位置計算プログラム１０４を備えている。第２ロボット６０が軌道データ記憶部９２に記憶されている軌道データに従って移動すると、実際の位置と軌道データが教示する位置は一致するはずであるが、実際には誤差が生じるために一致しない。エンコーダ８８、９０の計測結果は、Ｉ／Ｏ６６を通してＣＰＵ６４へ送られ、位置計算プログラム１０４により現在地が計算しつづけられる。そのため、第２ロボット６０は移動中において自己の位置を認識しつづけることができる。
第２ロボット６０は、時刻を認識する時計６８を有しており、軌道データ記憶部９２で教示点に対応付けて記憶している時刻毎に、自己の位置とその時刻に対応付けて記憶している教示点とを比較し、一致しない場合はその差分に応じて次の教示点までの速度パターンを補正する速度パターン補正プログラム１０６を備えている。
第１ロボット１０と第２ロボット６０の教示点位置は、移動範囲６をカバーするＸ−Ｙ座標系で与えられている。
【００１８】
第１ロボット１０と第２ロボット６０が横一列に並んで行進するように各ロボット１０、６０に教示しておく軌道データを作成する段階を説明する。
第１ロボット１０が、位置Ｐ１から移動を開始する時刻Ｔ１から、位置Ｐ６で移動を終了する時刻Ｔ６までの時間を等分して時刻Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５、Ｔ６を観念する。各時刻間の時間はΔＴとなる。次に、各時刻Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５、Ｔ６において、第１ロボット１０が存在しているべき位置を、教示点Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６とする。時刻Ｔ１〜Ｔ６のそれぞれにおいて第１ロボット１０が存在しているべき教示点Ｐ１〜Ｐ６の座標を特定することで、第１ロボット１０の軌道データが完成する。
同様に、時刻Ｔ１〜Ｔ６のそれぞれにおいて第２ロボット６０が存在しているべき教示点Ｑ１〜Ｑ６の座標を特定することで、第２ロボット６０の軌道データが完成する。
教示点Ｐ１〜Ｐ６と、教示点Ｑ１〜Ｑ６の座標を特定するときには、第１ロボット１０と第２ロボット６０が横一列に並ぶ位置をそのまま指定すればよく、複雑な計算を必要としない。
【００１９】
以下、図３と図４のフローチャートを参照して、第１ロボット１０と第２ロボット６０の動作手順を説明する。図３は、第１ロボット１０の動作手順を示し、図４は、第２ロボット６０の動作手順を示している。最初に、上述のようにして作成した軌道データを、第１ロボット１０と第２ロボット６０に教示する（図３のステップＳ２と図４のステップＳ２参照）。この結果、図１に示すように、第１ロボット１０の軌道データ記憶手段４２には、（時刻Ｔ１、教示点Ｐ１の座標）、（時刻Ｔ２、教示点Ｐ２の座標）・・・が記憶され、第２ロボット６０の軌道データ記憶手段９２には、（時刻Ｔ１、教示点Ｑ１の座標）、（時刻Ｔ２、教示点Ｑ２の座標）・・・が記憶される。
【００２０】
第１ロボット１０と第２ロボット６０は、教示された到着教示点Ｐ１〜Ｐ６、Ｑ１〜Ｑ６の座標データから補完計算して、教示点の間の移動軌跡を計算する（図３のステップＳ４と図４のステップＳ４）。その補完計算では、到着順序で連続する２つの教示点間の経路を、その前後の教示点を含む４つの教示点を通る関数曲線を計算して軌跡とする。そのとき、ロボットの移動方向が急激に変化するのを避けるため、接線方向の変化量が最小となるような関数曲線が計算される。最初の教示点間についてはその前の教示点がないため、その後の２つの教示点を含めた４点で軌跡が作成され、最後の教示点間についてはその後の教示点がないため、その前の２つの教示点を含めた４点で軌跡を作成する。図５で示すように、例えば第１ロボット１０のＰ３−Ｐ４間の移動軌跡Ｌ３４を作成するには、Ｐ２、Ｐ３、Ｐ４、Ｐ５の４点が用いられ、その４点で定まる高次関数曲線Ｆ２５のＰ３−Ｐ４間が、その軌跡Ｌ３４として作成される。このようにして、第１ロボット１０、第２ロボット６０は経路全体の軌跡を作成する。図２に示すように、第１ロボット１０の軌跡はＬＰ、第２ロボット６０の軌跡はＬＱと定まる。
第１ロボット１０と第２ロボット６０は、指揮者２による移動開始指令により行進を開始する。行進の開始時点で、第１ロボット１０は教示点Ｐ１に位置し、第２ロボット６０は教示点Ｑ１に位置している。第１ロボット１０は、カメラ１２で撮影した指揮棒４の動きを画像処理プログラム４４で処理し、移動開始指令となる動きを認識するまで待機する（図３のステップＳ６）。移動開始指令を認識すると、移動開始指令を通信手段２０で第２ロボット６０に伝える（図３のステップＳ８）。一方、第２ロボット６０は、第１ロボット１０から移動開始指令を受信するまで待機する（図４のステップＳ５６）。
【００２１】
第１ロボット１０と第２ロボット６０が移動開始指令を認識すると、移動速度を速度パターン計算プログラム４０、１００により計算する（図３のステップＳ１０と図４のステップＳ６０）。第１ロボット１０は、図２に示すように、時刻Ｔ３で教示点Ｐ３に位置し、時刻Ｔ４で教示点Ｐ４に位置し、時刻Ｔ５で教示点Ｐ５に位置するように教示されている場合、ロボットは、図６に示すように、より細かな時間間隔Δｔごとに、移動速度と移動方向を計算する。ここで、Δｔは制御の単位時間であり、この実施例では１０ｍｓに設定されている。
教示点Ｐ３とＰ４間の軌跡Ｌ３４の長さがΔＬ３４であり、時刻Ｔ３とＴ４の時間差がΔＴ３４であれば、教示点Ｐ３とＰ４の間をΔＬ３４／ΔＴ３４の平均速度で移動すれば、時刻Ｔ３で教示点Ｐ３に位置していたロボットは、時刻Ｔ４で教示点Ｐ４に位置するはずである。
同様に、教示点Ｐ４とＰ５間の軌跡Ｌ４５の長さがΔＬ４５であり、時刻Ｔ４とＴ５の時間差がΔＴ４５であれば、教示点Ｐ４とＰ５の間をΔＬ４５／ΔＴ４５の平均速度で移動すれば、時刻Ｔ４で教示点Ｐ４に位置していたロボットは、時刻Ｔ５で教示点Ｐ５に位置するはずである。
しかしながら、この方式では、ロボットが時刻Ｔ４で、ΔＬ３４／ΔＴ３４の速度からΔＬ４５／ΔＴ４５に速度を変化させる必要があり、無限大の加速度が必要とされ、実現することができない。
そこで、本実施例では、教示点に到着する時刻よりも所定時間（この場合ｎ・Δｔであり、ｎは定数）だけ早いタイミングで加速（ないし減速）を始めて、教示点に到着する時刻において、次の教示点間を移動する平均速度に変化している速度パターンを演算する。
図６の場合、教示点Ｐ３とＰ４間の平均速度ΔＬ３４／ΔＴ３４よりも、教示点Ｐ４とＰ５間の平均速度ΔＬ４５／ΔＴ４５が速く、教示点Ｐ４とＰ５間の平均速度ΔＬ４５／ΔＴ４５よりも、教示点Ｐ５とＰ６間の平均速度ΔＬ５６／ΔＴ５６が遅い場合を例示している。
この場合には、教示点４に到着する時刻Ｔ４よりもｎ・Δｔ先立つタイミングで減速を始めて時刻Ｔ４で教示点Ｐ４とＰ５間の平均速度ΔＬ４５／ΔＴ４５となるように減速する。同様に、教示点５に到着する時刻Ｔ５よりもｎ・Δｔ先立つタイミングで減速を始めて時刻Ｔ５で教示点Ｐ５とＰ６間の平均速度ΔＬ５６／ΔＴ５６となるように増速する。
上記のような移動速度パターンを求めると、ロボットは指定された時刻に教示点を通過するように移動し、教示された軌道データどおりに移動する。
第１ロボット１０と第２ロボット６０は、移動を開始する時刻Ｔ１から移動を終了する時刻Ｔ６まで移動速度パターンを計算する。
【００２２】
第１ロボット１０と第２ロボット６０は、Δｔ毎の移動方向を移動方向計算プログラム５２、１０２で計算する（図３のステップＳ１２と図４のステップＳ６２）。補完計算された教示点間軌跡を、求められた移動速度パターンに基づいてΔｔ時間毎に分割し、Δｔ毎の位置を求めて移動方向を求める。図７は、第１ロボット１０のＰ３〜Ｐ４間の例を示し、一定速度で移動する区間については等距離で分割された点が求められる（ａ＝ｂ＝Ｖ３４・Δｔ）。教示点Ｐ４に先立つｎ個の点については、増速に対応して、徐々に距離が長くなる。最後の距離は、教示点Ｐ４とＰ５間を平均速度で移動するときの分割点間距離に等しい（ｃ＝ｄ＝Ｖ４５・Δｔ）。第２ロボット６０においても同様に教示点間軌跡が分割される。ロボットは各分割点において次の分割点まで直線移動をするように分割点ごとの移動方向を計算する。分割点間を時間Δｔで移動するため、時間Δｔ毎に移動方向が計算される。本実施例では、１０ｍｓ毎に移動方向が計算される。
移動速度パターンの情報と１０ｍｓ毎に求められた移動方向の情報は、モータドライバ２４、２６と７４、７６に伝達され、ロボットは１０ｍｓ毎に移動速度と移動方向を変えながら移動する（図３のステップＳ１４と図４のステップＳ６４）。したがって、ロボットは教示された軌道データにしたがって移動をする。第１ロボット１０はカメラ１２で撮影した指揮棒４の動きを画像処理プログラム４４で処理しつづけており、移動終了指令となる動きを認識すると（図３のステップＳ１６）、第２ロボット６０へ移動終了信号を送信して（図３のステップＳ１８）移動を停止する（図３のステップＳ４２）。第２ロボット６０は、移動終了信号を受信すると（図４のステップＳ６６）、移動を停止する（図４のステップＳ９２）。移動終了指令がなされない場合は、軌道データとして記憶している時刻データの最後の時刻、すなわち最後の教示点まで移動を続ける（図３のステップＳ２２と図４のステップＳ７２でＹＥＳとなるまで、図３のステップＳ１２と図４のステップＳ６２以降の処理を繰返す）。
【００２３】
第１ロボット１０と第２ロボット６０は、教示点とその教示点に位置しているべき時刻の情報を軌道データとしてもっている。また、位置計算プログラム５４、１０４から自己の位置を認識している。そのため、教示された軌道データに対して自己の位置に誤差が生じた場合、自己の位置を修正することが可能である（図３のステップ２４〜３０と図４のステップＳ２４〜３０）。速度補正プログラム５６、１０６は、軌道データ記憶部４２、９２に教示点に対応付けて記憶されている時刻毎に、自己の位置と教示点とを比較し、教示された軌道データよりも進んでいるのか遅れているのかを判別する。遅れていれば、次の区間の平均移動速度を、遅れ分を取り戻す速度に補正計算する。例えば、第１ロボット１０が教示点Ｐ３に位置しているべき時刻Ｔ３において教示点Ｐ３に到着しておらず、ΔＬだけ残していれば、次には（ΔＬ３４＋ΔＬ）／ΔＴ３４の平均速度で移動するように速度パターンを補正する。この結果、第１ロボット１０は、時刻Ｔ４において教示点Ｐ４に位置しているように修正される。逆に、教示点Ｐ３に位置しているべき時刻Ｔ３において教示点Ｐ３を通過し、ΔＬだけ進行していれば、次には（ΔＬ３４―ΔＬ）／ΔＴ３４の平均速度で移動するように速度パターンを補正する。この結果、第１ロボット１０は、時刻Ｔ４において教示点Ｐ４に位置しているように修正される。
時刻に対する位置のデータを持っていると、遅れを取り戻して教示された軌道に修正したり、早すぎる進行を減速して教示された軌道に修正することができる。指定された時刻に指定された位置にいるように制御することができ、第１ロボット１０と第２ロボット６０の相対位置関係が維持されるように制御される。
第１ロボット１０と第２ロボット６０は、教示された軌道データから軌跡を計算し、教示された軌道データから速度を計算し、計算された経路と速度から移動方向を計算する。第１ロボット１０は教示点Ｐ１〜Ｐ６を時刻Ｔ１〜Ｔ６に通過するように移動し、第２ロボット６０は教示点Ｑ１〜Ｑ６を時刻Ｔ１〜Ｔ６に通過するように移動する。第１ロボット１０と第２ロボット６０は横一列に並んだ隊列を乱すことなく移動する。
【００２４】
第１ロボット１０と第２ロボット６０は、ヒトが隊列を組んで行進するのときように、指揮者２によってその移動速度がコントロールされる。すなわち、指揮者２によって振られる指揮棒４の周期変化がロボットへの移動速度変更指令となる。第１ロボット１０は、カメラ１２によって指揮者２と指揮棒４の動きを常に撮影し、画像処理プログラム４４は、撮影された指揮棒４の移動パターンから、指揮棒４が下死点になったタイミングを認識する（図３のステップＳ３２）。そして、今回に下死点になったタイミングと前回に下死点になったタイミングから指揮棒４の周期を計算する（図３のステップＳ３４）。指揮棒４の周期が第１ロボット１０に教示されている基本周期に略一致しているときは、第１ロボット１０は速度変更指令が無いと判断する（図３のステップＳ３６）。指揮棒４の周期が前記基本周期と異なる場合には、第１ロボット１０は指揮棒４の周期と基本周期の差分に応じて、次に到達する教示点への到着時刻を修正する（図３のステップＳ３８）。このとき、指揮棒４の周期が基本周期よりも遅いときは、その時刻をその周期差に応じて遅い時刻に修正し、指揮棒の周期が基本周期よりも速いときは、その時刻をその周期差に応じて早い時刻へと修正する。
【００２５】
第１ロボット１０が教示点Ｐ３を出発して教示点Ｐ４に向けて移動している時刻ＴＳに、指揮者２が指揮棒４の周期を早めて増速を指令した場合の速度変化を図８を用いて説明する。早められた指揮棒４の周期から、修正幅は時間ｍであったとする。図８は、第１ロボット１０に速度変更指令が与えらたときの速度パターンを示している。時刻ＴＳにおいて指揮棒４の周期が早められたことを認識すると、時刻修正プログラム３８が教示点Ｐ４への到着時刻Ｔ４をＴ４’（Ｔ４’＝Ｔ４−ｍ）へ早めるように修正をする。それと同時に、修正した時刻に関するデータを通信手段２０によって第２ロボット６０へ送信する（図３のステップＳ４０）。第２ロボット６０は時刻に関するデータを受信すると（図４のステップＳ８８）、時刻書換えプログラム９８によって、軌道データ記憶部９２に記憶している軌道データの時刻に関するデータを、受信した時刻に関するデータに書換える。詳しくは、教示点Ｑ４への到着時刻Ｔ４をＴ４’に書換える。第１ロボット１０と第２ロボット６０は、速度パターン計算プログラム５０、１００により、速度パターンを再演算する（図３のステップＳ１０と図４のステップＳ６０を繰返す）。
第１ロボット１０は、教示点Ｐ４への到着時刻がＴ４’となるように、時刻ＴＳから時刻Ｔ４’までの間の１０ｍｓ毎の速度を再演算する。第一に、時刻ＴＳにおいて第１ロボット１０の位置する場所ＰＳから到着教示点Ｐ４までの距離を計算する。次に、ｎ・Δｔ時間かけて速度Ｖ３４’に増速し、その後は速度Ｖ３４’で等速移動し、最後にｎ・Δｔ時間かけて減速して時刻Ｔ４’において次の区間の速度Ｖ４５となる速度パターンを仮定し、その速度パターンを積分した値（移動距離）が、増速開始位置ＰＳから到着教示点Ｐ４までの距離に等しくなる速度Ｖ３４’を解く。
第１ロボット１０は、再度計算された上記の移動速度パターンに基づいて、移動方向計算プログラム５２によりＰＳ〜Ｐ４間の軌跡を分割し、Δｔ毎の位置を求める。増速開始直後のｎ点については徐々に距離が長くなり、等速移動期間については長くなった距離で等分割され、最後のｎ点については徐々に距離が短くなり、最後の距離は教示点Ｐ４とＰ５間を平気速度で移動するときの分割点間距離に等しい。第２ロボット６０においても同様に軌跡が分割される。ロボットは各分割点において次の分割点まで直線移動をするように分割点ごとに移動方向を計算する。分割点間を１０ｍｓで移動するため、１０ｍｓ毎に移動方向が計算される。
第１ロボット１０は、再計算された移動速度パターンの情報と１０ｍｓ毎に求められる移動方向の情報を、モータドライバ２４、２６に指示し、第１ロボット１０は１０ｍｓ毎に移動速度と移動方向を変えながら移動を続ける。この結果、ロボットは増速された軌道データにしたがって移動をする。
【００２６】
指揮者が与えた増速指令は、次の教示点まで有効であり、次の教示点に到達した以降には、教示された軌道データで想定される速度となるようにしてもよい。この場合には、増速指令によって教示点Ｐ４への到着時刻をＴ４’へ修正すると、それ以降の教示点に対応付けられた時刻Ｔ５、Ｔ６についても、その修正幅Ｔ４’−Ｔ４＝ｍと同じ修正幅ｍによって修正すればよい。即ち、変更後の通過時刻Ｔ５’、Ｔ６’は、Ｔ５’−Ｔ５＝ｍ、Ｔ６’−Ｔ６＝ｍの関係を満たすように修正される。教示点Ｐ４から教示点Ｐ５へ移動に要する時間は、Ｔ５’−Ｔ４’となるが、それはＴ５−Ｔ４に等しく、教示点Ｐ４から教示点Ｐ５へ移動に要する時間は変更されない。同様にＰ５〜Ｐ６間についても、移動に要する時間は変更されない。したがって、Ｐ４〜Ｐ５間、Ｐ５〜Ｐ６間の移動速度は、増速指令を受ける前後で変化しない。即ち、増速指令により移動速度パターンは図９で示すように変更される
【００２７】
一方、指揮者が与えた増速指令は、次に速度指令が入力されるまで有効だとしてもよい。この場合には、増速後の移動速度Ｖ３４’と増速前の速度Ｖ３４との比、Ｖ３４：Ｖ３４’＝１：ｋを演算する。その比ｋを用いて、それ以降の教示点通過時刻Ｔ５、Ｔ６を、それらの時間間隔がもとの時間間隔の１／ｋ倍となるように修正する。即ち、変更後の通過時刻Ｔ５’、Ｔ６’が、Ｔ５’−Ｔ４’＝（Ｔ５−Ｔ４）／ｋ、Ｔ６’−Ｔ５’＝（Ｔ６−Ｔ５）／ｋの関係を満たすように修正する。この結果、Ｐ４〜Ｐ５間、Ｐ５〜Ｐ６間の移動速度は再演算されてｋ倍になる。即ち、増速指令により移動速度パターンは図１０で示すように変更される。図１０において、
Ｖ３４’／Ｖ３４＝Ｖ４５’／Ｖ４５＝Ｖ５６’／Ｖ５６＝ｋとなっている。
【００２８】
第１ロボット１０は、速度変更指令によって修正された時刻データを、通信手段２０により第２ロボット６０へ伝える（図３のステップＳ４０）。第２ロボット６０は、第１ロボット１０から修正された時刻データを受信すると（図４のステップＳ８８）、自己の軌道データ記憶部９２に記憶されている時刻データを、受信した時刻データに書換える（図４のステップＳ９０）。先に説明した時刻ＴＳに速度変更がなされ、第１ロボット１０が自己の軌道データの時刻Ｔ４〜Ｔ６をＴ４’〜Ｔ６’へ修正した場合、第２ロボット６０もそれに対応する時刻Ｔ４〜Ｔ６をＴ４’〜Ｔ６’へ書換え、書換えられた軌道データで速度の再演算を第１ロボット１０と同様に行う。
【００２９】
以上のように、第１ロボット１０と第２ロボット６０は、横一列で並ぶ隊列を組んで移動するよう教示された場合、指定された時刻に指定された位置にいるように移動することによって、横一列に並んだ隊列を乱すことなく移動をする。また、指揮者２によって速度変更指令がなされると、第１ロボット１０がその指令に従って到着教示位置に対する時刻を修正すると共に、その修正に基づいて第２ロボット６０へ速度変更指令を行う。第１ロボット１０と第２ロボット６０は、修正された軌道データが指定する位置へ修正された時刻にいるように移動する。各ロボットが同一時刻に位置している教示点位置は変更されない。したがって、横一列にならんだ隊列を乱すことなく、指揮者の指揮に合わせて速度を変化させながら移動することも可能である。
【００３０】
以上、本発明の実施形態について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数の目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【図１】本実施例に係るロボット群の構成を示す図。
【図２】本実施例に係るロボット群の移動経路を示す図。
【図３】第１ロボット１０のフローチャート。
【図４】第１ロボット６０のフローチャート。
【図５】教示点間の軌跡作成の例を説明する図。
【図６】教示点間の速度パターンの例を示す図。
【図７】教示点間の軌跡分割の例を示す図。
【図８】速度変更指令により変更された速度パターンの例を示す図。
【図９】速度変更指令がなされた教示点間のみを速度変更する速度パターンを示す図。
【図１０】速度変更指令がなされた時刻以降すべてを速度変更する速度パターンを示す図。
【符号の説明】
２・・・指揮者
４・・・指揮棒
６・・・ロボットの移動範囲
１０・・・第１ロボット
６０・・・第２ロボット
１４、６４・・・ＣＰＵ
２０、７０・・・通信手段
１２・・・カメラ
１８、６８・・・時計
４１、９１・・・記憶装置
４２、９２・・・軌道データ記憶部
４４・・・画像処理プログラム
４６、９６．・・・軌跡計算プログラム
４８・・・時刻修正プログラム
９８・・・時刻書換えプログラム
５０、１００・・・速度パターン計算プログラム
５２、１０２．・・・移動方向計算プログラム
５４、１０４・・・位置計算プログラム
５６、１０６・・・速度補正プログラム
５８、１０８・・・通信プログラム
２８、７８・・・ロボットの駆動系
３０、３２、８０、８２・・・車輪
３４、３６、８４、８６・・・モータ
３８、４０、８８、９０・・・エンコーダ
ＬＰ・・・第１ロボット１０の移動軌跡
ＬＱ・・・第２ロボット  ６０の移動軌跡
Ｐ１〜Ｐ６・・・第１ロボット１０の教示点
Ｑ１〜Ｑ６・・・第２ロボット６０の教示点
Ｔ・・・軌道データの時刻データ
ＴＳ・・・速度変更指令の認識時刻
Ｖ・・・速度
ΔＴ・・・教示点間の移動時間
Δｔ・・・ロボットの制御単位時間
【図１】
2004362022.tif 000003
【図２】
2004362022.tif 000004
【図３】
2004362022.tif 000005
【図４】
2004362022.tif 000006
【図５】
2004362022.tif 000007
【図６】
2004362022.tif 000008
【図７】
2004362022.tif 000009
【図８】
2004362022.tif 000010
【図９】
2004362022.tif 000011
【図１０】
2004362022.tif 000012