JP7136365B2 - 移動ロボット、移動ロボットの制御方法及びプログラム - Google Patents

移動ロボット、移動ロボットの制御方法及びプログラム Download PDF

Info

Publication number
JP7136365B2
JP7136365B2 JP2021553980A JP2021553980A JP7136365B2 JP 7136365 B2 JP7136365 B2 JP 7136365B2 JP 2021553980 A JP2021553980 A JP 2021553980A JP 2021553980 A JP2021553980 A JP 2021553980A JP 7136365 B2 JP7136365 B2 JP 7136365B2
Authority
JP
Japan
Prior art keywords
robot
unit
distance calculation
command
head
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021553980A
Other languages
English (en)
Other versions
JPWO2021084680A1 (ja
Inventor
洋 川野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021084680A1 publication Critical patent/JPWO2021084680A1/ja
Application granted granted Critical
Publication of JP7136365B2 publication Critical patent/JP7136365B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • G05D1/0291Fleet control
    • G05D1/0293Convoy travelling
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/1617Cellular, reconfigurable manipulator, e.g. cebot
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • G05D1/0291Fleet control
    • G05D1/0295Fleet control by at least one leading vehicle of the fleet
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • G05D1/0291Fleet control
    • G05D1/0297Fleet control by controlling means in a control room
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/22Command input arrangements
    • G05D1/221Remote-control arrangements
    • G05D1/222Remote-control arrangements operated by humans
    • G05D1/223Command input arrangements on the remote controller, e.g. joysticks or touch screens
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/69Coordinated control of the position or course of two or more vehicles
    • G05D1/695Coordinated control of the position or course of two or more vehicles for maintaining a fixed relative position of the vehicles, e.g. for convoy travelling or formation flight
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39001Robot, manipulator control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40302Dynamically reconfigurable robot, adapt structure to tasks, cellular robot, cebot

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、複数のロボットの行動を制御する技術に関する。
近年、多数の自律移動ロボットを効率的に制御にするための研究が活発に行われている。その任務内容は、人の入れない箇所の監視、物品の搬送などさまざまであるが、多数のロボットの協調動作による隊列形成を効率的に行わせるための技術が求められており盛んに研究が行われている。
特に、ロボットの隊列制御の中でも、ロボット同士が互いに接したままの状態で、アメーバのように全体で移動を行うという仮定の下でのロボット隊列制御においては、ロボット同士の相対的な位置関係から、各ロボットの絶対位置の決定が可能であるという利点と、付加的な位置計測用の装備を必要としないという利点があり、そのようなロボットの研究もおこなわれている。例えば、非特許文献1に示す研究に至る一連の研究では、ある隊列から他の隊列に変化する隊列制御が示されている(例えば、非特許文献1参照。)。
このような、多数のロボットによる効率的な隊列形成を実現するには、それぞれのロボットの配置、動作順序などを事前に計画することが重要である。このような計画においては、当然ながら、複数のロボットが動作する実環境における障害物の存在や経路の形状なども十分に考慮しなければならない。
非特許文献1に示す研究に示されている手法では、複数の立方体形状のロボット同士での伸長収縮面動作(あるロボットが、他のロボットと接した状態で、伸び縮みしつつ移動する動作)によるロボットの隊列変形が扱われている。
非特許文献2では、各ロボットが接した状態での動作を想定し、各ロボットが同じ特性(ホモジニアス)である。つまり、目標形態内部での各ロボットの目標位置が定まってない場合の隊列制御を実現している。複数の立方体形状のロボット同士での面せん断動作(あるロボットが、他のロボットと接した状態で、接する面上をスライド移動する動作)によるロボットの隊列変形が扱われている。ロボットが初期状態でとる隊列位置の集合とロボットの目標位置の集合の共通部分内に非接続箇所がある場合でも適用可能で、分散制御の方法で実装されている。
S. Vassilvitskii, M. Yim, J. Suh, "A Complete, Local and Parallel Reconfiguration Algorithm for Cube Style Modular Robots", in Proc.2002 IEEE Int. Conf. Robotics and Automation, pp. 117-122, Washington DC, May, 2002. H. Kawano, "Distributed Tunneling Reconfiguration of Sliding Cubic Modular Robots in Severe Space Requirements", in Proc.14th Int. Symposium on Distributed Autonomous Robotic Systems, paper no. 1, Boulder, CO, Oct., 2018.
非特許文献2では、隊列形成可能なロボット隊列が、2×2×2のロボット単位で構成された隊列に限られるが、隊列変形の前後で、同じロボット単位内にあるロボット同士が、同じロボット単位内にあり続ける保証がない。
そこで、本発明は、ロボット単位の初期位置の集合とロボット単位の目標位置の集合との共通部分に非接続箇所がある場合でも適用可能な隊列制御を分散制御の方法で実現し、隊列変形の前後で、同じロボット単位内にあるロボット同士が、同じロボット単位内にあり続ける保証がある移動ロボット、移動ロボットの制御方法及びプログラムを提供することを目的とする。
この発明の一態様による移動ロボットは、各ロボット単位には所定の初期位置及び所定の目標位置が定められており、初期位置と目標位置の共通部分を共通位置とし、共通位置の集合は互いに隣接していない少なくとも1つの部分共通位置集合から構成されているとし、各ロボット単位が他のロボット単位と隣接することによりロボット単位が一塊のロボット構造を形成していることをロボット構造の接続性と言うとして、ロボット単位の中の何れかのロボット単位の中の所定のロボットi_rootである場合に、それぞれ所定の初期値に設定された、ロボットi_rootの位置からの相対位置と位置距離計算命令の送信転送回数とを含む位置距離計算命令を隣接するロボットに送信する位置距離計算命令送信部と、位置距離計算命令を受信した場合に、位置距離計算命令に含まれる送信転送回数をインクリメントし、位置距離計算命令を受信した方向に応じて位置距離計算命令に含まれる相対位置を更新し、インクリメントした送信転送回数及び更新した相対位置を含む位置距離計算命令を、位置距離計算命令を送信してきたロボット以外の、隣接するロボットに一度だけ転送する位置距離計算命令転送部と、位置距離計算命令を最初に受信した場合に、位置距離計算命令を送信してきたロボットに、インクリメントした送信転送回数及び更新した相対位置を含む返信位置距離計算命令を送信する返信位置距離計算命令送信部と、位置距離計算命令を最初に受信した場合に、位置距離計算命令を送信してきたロボットの方向をa_to_root方向として記憶する方向記憶部と、返信位置距離計算命令を受信した場合に、方向記憶部から読み込んだa_to_root方向に受信した返信位置距離計算命令を転送する返信位置距離計算命令転送部と、ロボットi_rootであり、全てのロボットが送信した返信位置距離計算命令を受信した場合に、返信位置距離計算命令に含まれる相対位置に基づく各ロボットの位置に基づいて、ある1つの部分共通位置集合を集合Upとして選択し、目標位置の集合に属するが共通位置の集合に属しない位置に隣接する位置であって、集合Upに属する位置を先頭位置Headとして選択し、先頭位置Headに位置するロボット単位である先頭ロボット単位の中の所定のロボットに、相対位置及び集合Upの情報を含む先頭ロボット単位決定命令を送信する第一先頭ロボット単位決定命令送信部と、先頭ロボット単位の中の所定のロボットであり、先頭ロボット単位決定命令を受信した場合に、集合Upに属しない位置にあり初期位置の中に位置するロボット単位であり、移動させてもロボット構造の接続性を維持することができるロボット単位である尾部ロボット単位の位置を尾部位置Tailとして、先頭位置Headから尾部位置Tailに至るパスに含まれるロボット単位H0,H1,…,Hnt-1を決定するロボット単位決定部と、i=0,…,nt-2として、ロボット単位Hiの中の所定のロボットである場合に、先頭位置Headに隣接する位置であって、目標位置の集合に属するが共通位置の集合に属しない位置を目的位置Dとして、ロボット単位Hi+1を伸ばしつつ、ロボット単位Hiを、目的位置D、又は、第一移動部による移動の前にロボット単位Hi-1があった位置に移動させる第一移動部と、ロボット単位Hnt-2の中の所定のロボットである場合に、ロボット単位Hnt-1を、第一移動部による移動の前にロボット単位Hnt-2があった位置に移動させる第二移動部と、ロボット単位Hnt-2の中の所定のロボットである場合に、先頭ロボット単位の中の所定のロボットに、次先頭ロボット単位選択命令を送信する次先頭ロボット単位選択命令送信部と、先頭ロボット単位の中の所定のロボットであり、次先頭ロボット単位決定命令を受信した場合に、目的位置Dを集合Upに追加した後に、集合Upに接していて、集合Upの中ではなく目標位置の中に位置するロボット単位がある場合には、そのロボット単位の位置と、そのロボット単位から目標位置のみを経由して接続状態にあるロボット単位の位置とを集合Upに追加することで集合Upを更新するとともに、相対位置を更新し、相対位置に基づく各ロボットの位置に基づいて、目標位置の集合に属するが共通位置の集合に属しない位置に隣接する位置であって、集合Upに属する位置を先頭位置Headとして選択し、先頭位置Headに位置するロボット単位である先頭ロボット単位の中の所定のロボットに、相対位置及び集合Upの情報を含む先頭ロボット単位決定命令を送信する第二先頭ロボット単位決定命令送信部と、を備えており、目標位置の中のロボット単位が存在しない位置がなくなるまで、ロボット単位決定部、第一移動部、第二移動部、次先頭ロボット単位選択命令送信部及び第二先頭ロボット単位決定命令送信部の処理が繰り返し行われる。
ロボット単位の初期位置の集合とロボット単位の目標位置の集合との共通部分に非接続箇所がある場合でも適用可能な隊列制御を分散制御の方法で実現し、隊列変形の前後で、同じロボット単位内にあるロボット同士が、同じロボット単位内にあり続ける保証がある。
ロボットの移動を説明するための図。 ロボット単位の初期位置及び目標位置を説明するための図。 ボイドの移動の様子を説明するための図。 ロボット単位の例を説明するための図。 タネリングを説明するための図。 タネリングを説明するための図。 タネリングを説明するための図。 ロボット単位の移動を説明するための図。 ロボット単位の移動を説明するための図。 ロボット単位の移動を説明するための図。 ロボット単位の移動を説明するための図。 ロボット単位の移動を説明するための図。 ロボット単位の移動を説明するための図。 ロボット単位の移動を説明するための図。 ロボット単位の移動を説明するための図。 ロボット単位の移動を説明するための図。 ロボットの機能構成の例を説明するためのブロック図。 ロボットの処理の流れの例を説明するための流れ図。 図19は、コンピュータの機能構成例を示す図である。
以下、本発明の実施形態について説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。
<理論的背景>
まず、移動ロボット及び移動ロボットの制御方法の理論的背景について説明する。
[問題設定]
多数のロボットが協調して、各ロボットが接した状態を維持しつつ移動を行い、開始位置における隊列形成状態から目標位置への隊列変形を行う任務は、例えば図1に例示するような、互いに接する面同士をスライドさせて移動していくことが可能な立方体型のロボットの使用を想定する。図2に示すように、壁で区切られた部屋(ただし図中、壁を省略する)においての開始位置から目標位置まで複数のロボットの移動によって実現するものである。
ロボットについては、例えば図1に示すように、ロボットの周囲縦横高さ方向(以下「上下左右前後方向」ともいう)6マスのうち一つに他のロボットが存在している状態を維持しながら移動をするものとする。この手法では1つのロボット自身が、一台のロボットのサイズ分の距離を移動することで、一回の動作の移動量を正確に測ることができるというメリットがある。また、一つの面を共有する隣り合うロボットとの相対的な位置を計測しあうことで、ロボットの群れ全体の中での各ロボットの位置も容易に知ることができる。このため、ロボットの移動量の誤差によって、隊列が崩れるといった問題を起こしにくい。また、複数のロボットを連結したように、同時に複数のロボットを移動させていくことが可能である。なお、ロボットは、隣の位置に他のロボットが存在しているか否か、障害物があるか否か、そして、自身が目標位置上にいるかどうかを知ることができるものとする。
任務を行うロボットは、p台(p≧16=8×2)であり、各ロボットは、隣接するロボットと一面以上を共有しつつ、三次元空間におけるX-Y-Z軸方向に移動可能とする。図1の各立方体は、それぞれのロボットの位置を示すものである。各立方体にはロボットは一台しか存在することができない。それぞれのロボットは、移動しようとする方向に障害物か他のロボットがある場合には、静止をするものと仮定する。なお、ロボットが存在しうる立方体状の空間をマス、または、格子ともいう。図2において、濃い灰色のマスはロボットが存在する位置を示す。図2Aのロボットが存在する位置はロボットの開始位置の集合を示し、図2Cのロボットが存在する位置はロボットの目標位置の集合を示す。図2Bに示すように、目標位置の集合と開始位置の集合は接している。目標位置の集合で表される領域を目標隊列エリアともいう。このように、各開始位置及び各目標位置は、それぞれ縦横高さ方向の少なくとも何れかの方向において他の開始位置及び目標位置と隣接し、ロボットの開始位置及び目標位置での隊列形状はそれぞれ一塊の任意の形状である。
[ロボットの座標設定]
それぞれのロボットi(iはロボット番号を表すi=0,1,2,3,…,p-1)の位置を(Xr[i],Yr[i],Zr[i])とし、初期位置を(Xr0[i],Yr0[i],Zr0[i])とし、目標位置を(Xre[i],Yre[i],Zre[i])とするとき、本問題は、初期位置に配置されたロボットが、目標位置まで移動するための行動計画を求めることと定義できる。ロボットの開始位置の集合をs、目標位置(Xre[i],Yre[i],Zre[i])の集合をgとする。
[任務空間の定義]
iをロボット番号としたとき、ロボットiの各状態(ロボットの位置と行動)は離散値で表現される。部屋をX,Y,Zの直交座標系からなる3次元空間で表すと、X軸、Y軸、Z軸をそれぞれ離散化表現した値により各位置を表現する。つまり、部屋(3次元空間)は格子で区切られ、各格子が各位置に対応する。また、各格子において、障害物の「ある/なし」が予め設定されている。
[ロボット動作の定義]
また、行動主体は部屋に配置されている各ロボットとなる。ロボットi(iはロボット番号)の行動aは、静止、縦横高さ方向への1格子分の移動、の計7種類のうちのいずれかを取る。例えば、a∈{0,1,2,3,4,5,6}として、
0: 静止
1: 三次元空間内でX軸正方向に1格子だけ移動する
2: 三次元空間内でY軸正方向に1格子だけ移動する
3: 三次元空間内でX軸負方向に1格子だけ移動する
4: 三次元空間内でY軸負方向に1格子だけ移動する
5: 三次元空間内でZ軸正方向に1格子だけ移動する
6: 三次元空間内でZ軸負方向に1格子だけ移動する
とする。
[探索計算上の問題点]
このような任務環境における状態空間は、ロボット数×3の次元数の状態を持ち、かつ選択可能な行動数は、ロボットの行動(=7通り)のロボット数乗だけ存在する。例えば、ロボット数が50で、部屋の縦横高さ方向の格子数がそれぞれ20であるとすれば状態数は20の150乗個にもなり、探索計算に要する資源の量は膨大なものとなる。さらにロボット数が1台増えるごとに、その状態数は8000倍増加していくことになる。本実施形態の[問題設定]の項で説明したように、ロボット同士が接しているという拘束条件を取り入れる場合、ロボットのお互いの移動を考慮したうえで探索計算行わなければならないために、根本的な計算量の削減は難しく、複数ロボットを使用する場合の大きな問題となっている。
[非特許文献3における特徴]
非特許文献3におけるヘテロジニアス隊列制御では、上述の計算負荷の問題を解決するための方策の一つとして、ボイド制御の考え方を導入している。また、[問題設定]で述べたような隊列変形の問題を克服するために8マスロボット単位の考え方も導入している。
まず、ボイド制御について説明する。ここでいうボイドとは、図3に例示するように、あるロボットが別の位置に移動した後に、元いた位置にできる空隙のことである。別の言い方をすると、ボイドとは、ロボットの移動する方向と反対の方向に移動する仮想的な存在である。こうした群ロボットの隊列形成問題においては、複数のロボットの動作に着目するがゆえに、その探索計算量が爆発してしまうが、視点を変えて、ボイドの動きに着目すれば、多数のロボットの動作計画の問題を単一のボイドの動作計画として考えることができ、探索計算負荷の軽減に適している。しかし、変形動作中にロボット単位に属する各ロボットはちりじりになって、それぞれ別のロボット単位内に分かれてしまい、その後のロボット入れ替え動作の負荷上昇にもつながってしまっていた。また、初期位置と目標位置が共通部分を持ち、かつ、それらの共通部分が複数の非接続部分に分かれている場合には適用不可能であった。
〔参考文献3〕Kawano, H., “Tunneling-Based Self-Reconfiguration of Heterogeneous Sliding Cube-Shaped Modular Robots in Environments with Obstacles”, 2017 IEEE International Conference on Robotics and Automation, pp.825-832, May 2017, Singapore.
[4マスロボット単位の導入]
そこで、図4Aに示すように、4つの隣接したロボットを一つの単位とし(ロボット単位)、ロボットは、このロボット単位を維持しつつ移動を行うこととする。言い換えると、4台毎に1つのロボット単位を構成し、1つのロボット単位を構成する4台のロボットはそれぞれ3つの方向において1つのロボット単位を構成する他のロボットと隣接した状態を維持しつつ移動を行う。このロボット単位の集団は、互いにロボット単位ごとに一面を共有し、接しながら移動をするように制御される。同じロボット単位に所属する4つのロボットは同一でホモジニアスであるとし、同じロボット単位内では、どのロボットが単位内のどの位置にあるかは問わないものとする。
このような4つのロボットを一つの単位とした移動を行う理由は、各ロボット単位の内部にある4つの空隙空間を、他のロボット単位に属するロボットが通過することが出来、それにより、異なるロボット単位内に属するロボット同士の行き来がすることが容易である点である。また、各ロボット単位の内部にある4つの空隙空間を、他のロボット単位に属するロボットが通過する際の接続性の維持も容易である。すなわちこれは、隊列形態の維持を考量しなければならない各ロボットの動作の決定において、ロボット同士の接続を考慮するための計算負荷を軽減することにつながるからである。
ここでは4台のロボットがなすロボット単位が一つのマスの単位(本実施形態では、以下、この単位を「マス単位」または「位置単位」ともいう)であるとし、一つのマス単位を一状態として状態空間を組む。ロボット単位の位置を(Xr_u[j],Yr_u[j], Zr_u[j])(j=0,1,2,…j_max-1)としたとき、そのロボット単位j内のロボットをi1,i2,i3,i4とすれば、
Xr[i1] = 2 × Xr_u[j]
Yr[i1] = 2 × Yr_u[j] + 1
Zr[i1] = 2 × Zr_u[j]
Xr[i2] = 2 × Xr_u[j] + 1
Yr[i2] = 2 × Yr_u[j]
Zr[i2] = 2 × Zr_u[j]
Xr[i3] = 2 × Xr_u[j]
Yr[i3] = 2 × Yr_u[j]
Zr[i3] = 2 × Zr_u[j]
Xr[i4] = 2 × Xr_u[j]
Yr[i4] = 2 × Yr_u[j]
Zr[i4] = 2 × Zr_u[j] + 1
なお、各ロボットiが所属するロボット単位jを表す変数をRr[i]=jとし、これは隊列制御のどの時刻においても不変である。また、ロボットが上記i1,i2,i3,i4のどの位置にあるかを指す変数をIr[i]=(1,2,3,4)とする。各ロボット単位の初期位置を(Xr_u0[j],Yr_u0[j],Zr_u0[j])とし、目標位置を(Xr_ue[j],Yr_ue[j],Zr_ue[j])とする。以下、ロボットの全体数pを4の倍数とする。
なお、図4Bのように、二つのロボット単位を合わせることで、8マスのロボット単位を構成することも可能であり、8マスのロボット単位で構成されたロボット群の隊列制御も、4マスロボット単位の制御を行うことで可能となる。
また、図4の例に限らず、ロボット単位は以下の条件を満たすよう構成されていればよい。すなわち、ロボット単位は、(1)三次元の直交座標系で各軸方向に長さM(M≧2、ただし、ロボット1個の長さを長さ1とする)を有する立方体形状の空間(以降この空間をメタモジュールとする。)内の部分構造であり(言い換えれば、ロボット単位はメタモジュールの一部を占め)、(2)当該メタモジュール内のロボット単位に含まれるロボットの数と、当該メタモジュール内のロボット単位以外の部分(すなわち空隙)の数とが等しく、(3)各軸方向にM個のロボットが隣接する構造を含む。例えば、図4に例示するロボット単位は、(1)各軸方向の長さM=2とした計8マスの立方体からなるメタモジュールの部分構造であり、(2)ロボット単位内のロボットの数が4個、メタモジュール内の空隙の数が4個と等しく、(3)各軸方向において2個のロボットが隣接する構造が含まれている。
以後の説明では、ロボット単位の一例として、図4に示す4個のロボットからなる構造をロボット単位とする場合について説明するが、例えば、M個分の大きさのメタモジュール内で上述の(1)~(3)の条件を満たすよう構成されたロボット単位であれば同様の効果を得ることができる。
[ホモジニアス隊列制御]
各ロボット単位jが開始位置の集合S内にて、任意の位置に存在する状態から、各ロボット単位jをそれぞれ目標位置の集合のうちのいずれかの位置(Xr_ue[j],Yr_ue[j],Zr_ue[j])に配置させるホモジニアスロボット隊列制御の方法について以下説明していく。
ここで、集合S、Gは、4マスのロボット単位2つが合わさってできる8マスのロボット単位で構成されているものとする。4マスロボット単位数j_maxは偶数であり、一つの8マスロボット単位を構成する二つの4マスロボット単位j1,j2の番号の間には、j1+ j_max/2 = j2の関係がある(j_max=8の場合、0,1,2,3がj1、4,5,6,7がj2であり、(j1,j2)=(0,4)(1,5)(2,6)(3,7)の組が8マス単位を構成する。)。j2は図4Bでいうところのドットで表された4マスロボット単位である。j1の名称をLCMM、j2の名称をUUCMとする。
図5に示す通り、集合Sの状態にあるロボット構造を集合Gの状態に変形させるには、タネリングと呼ばれる方法をとる。図5に示す動作においては、先頭のロボット単位Headと尾部のロボット単位Tailを結ぶ一連のロボット単位がいわば蛇のような形で、先頭ロボット単位Headの動作を追従する方式で動作する。なお、他のタネリングを行うロボット単位、例えば非特許文献2に示すような伸長収縮ロボット単位を使用した2×2×2のロボット単位を使用したロボット構造においてもこのタネリング動作は同様であり、本発明で示すタネリングのHeadとTailの選択方法は、同様に適用可能である。タネリングを使用した隊列変形は障害物のある環境においても、隊列変形動作を初期位置の集合と目標位置の集合以外の位置を使用せずに実行可能である。
図6に、本発明で使用する2つの4マスロボット単位を使用した8マスロボット単位のタネリング動作の1ステップを示す。図6の動作1のロボット単位0の動作の詳細は図12に示すとおりである。図6の動作2のロボット単位1の動作の詳細は図10に示すとおりである。図6の動作3のロボット単位0、1の動作の詳細は図14に示すとおりである。図6の動作4のロボット単位0の動作の詳細は図11に示すとおりである。図6の動作5のロボット単位1の動作の詳細は図14に示すとおりである。図6の一連の動作により、「1」の8マスロボット単位が伸びて、先頭ロボット単位である「0」の8マスロボット単位が1つだけ位置を進める。
図6の動作を繰り返す様子を図7に示す。図7の矢印「2」の動作により、伸びていた「1」の8マスロボット単位が縮み、また、「2」の8マスロボット単位が伸びて、「1」の8マスロボット単位が1つだけ位置を進める。図7の矢印「3」の動作により、伸びていた「2」の8マスロボット単位が縮み、また、尾部ロボット単位である「3」の8マスロボット単位が伸びて、「2」の8マスロボット単位が1つだけ位置を進める。図7の矢印「4」の動作により、伸びていた「3」の8マスロボット単位が縮み、「3」の8マスロボット単位が1つだけ位置を進める。これにより、尾部ロボット単位(Tail)の動作が完了する。図7の最終動作における尾部ロボット単位の動作の詳細は、図8に示すとおりである。
つづいて、先頭ロボット単位Headと尾部ロボット単位Tailの選び方について述べる。初期位置と目標位置の共通部分がNcommon個の部分に分かれているとし、それぞれの部分を部分共通位置集合C[1],C[2],C[3],…,C[Ncommon]とする。すなわち、共通位置の集合は互いに隣接していない少なくとも1つの部分共通位置集合から構成されているとして、それらの少なくとも1つの部分共通位置集合をC[1],C[2],C[3],…,C[Ncommon]とする。
まず、先頭ロボット単位Headの選択について注意すべきことは、変形動作中に全体のロボット構造からこれらのNcommon個の部分共通位置集合のうちのいずれも、ロボット構造から非接続にならないようにすることである。例えば、初期位置S内のロボットを徐々に目標位置G内に移動させたとするとその分初期位置S内に残るロボット数は少なくなる。この過程で注意を怠ると、初期位置S内のロボットにも目標位置G内のロボットにも共通部分を接続するために使用できるロボットがないという事態が起こり得る。また、先頭ロボット単位Headが目標位置Gより、尾部ロボット単位Tailが初期位置Sより選択されるといっても、初期位置Sと目標位置Gの共通部部分は初期位置Sとしても目標位置Gとしても働きうる。このため、そこへの適切な制御がなければ、先頭ロボット単位Headと尾部ロボット単位Tailの無限選択ループが発生してしまう恐れもある。それらを避けるために、以下の新しいルール(1)から(4)を設ける。
(1) 変形動作中に、先頭ロボット単位Headの目的位置Dを目的位置としたタネリングによって充填されたロボット単位の位置の集合をUpとする。すなわち、そして、集合Upに属している位置にある、ロボット単位のみを任意時刻での先頭ロボット単位Headとして選択可能とする。なお、ルール(1)に対応する処理は、後述するロボット単位選択部2のステップS2で行われる。
(2) S-Upに所属している位置にある、ロボット単位のみを任意時刻での尾部ロボット単位Tailとして選択可能とする。なお、ルール(2)に対応する処理は、後述するロボット単位選択部2のステップS2で行われる。
(3) 変形動作開始時点で、集合UpにC[1],C[2],C[3],…,C[Ncommon]のうち、いずれか1つ任意のC[i_start]に所属する全てのロボット単位の位置を、集合Upに追加する。なお、ルール(3)に対応する処理は、後述する集合選択部1のステップS1で行われる。
(4) 変形動作中に、集合UpがC[i_connected]内のロボット単位のいずれかに接した場合、目標位置の集合G内にて、集合Upから接続状態にあるC[i_connected]内のロボット単位の位置を全て集合Upに追加する。C[i_connected]は、変形動作中に、Up内ロボット単位と新たに接した部分共通位置集合である。例えば、後述する図15(G)では、C(2)が、C[i_connected]である。なお、ルール(4)に対応する処理は、後述する集合追加部4のステップS4で行われる。
ルール(1)(2)は、タネリング中に集合Upのみが目標位置Gと初期位置Sの唯一の接続部分であるかのような制御を行い、それによって式(1)式が適用可能な状態を変形動作中に作り出すものである。ルール(3)は隊列変形動作開始時の先頭ロボット単位Headの選択肢を確保するものである。ルール(4)は、C[i_start]と他の部分共通位置集合が目標位置Gを経由して接続されて、1つの接続部分として扱えるようになった際に、先頭ロボット単位Headの選択肢として、接続された部分共通位置集合を集合Upに追加するものである。
ルール(1)から(4)により、ロボット単位の初期位置とロボット単位の目標位置の共通部分に非接続箇所がある場合でも適用可能な隊列制御を実現することができる。
以上に述べたタネリング動作を、全ての初期位置S内のロボット単位jが目標位置Gにたどりつくまで繰り返し行えば、ホモジニアス隊列制御が完了する。
以上の方法を、分散制御方式でのアルゴリズムで実現する移動ロボット及び移動ロボットの制御方法の一実施形態について以下説明する。
ここで、分散制御とは、各ロボットが各々の動作制御用の計算機を具備しており、各ロボットは隣接するロボットとの通信をしつつ、必要な情報を入手し、隣接するロボットの状態を判断しながら、自身の動作を決めていく形での動作制御方法である。
<第一実施形態>
以下、第一実施形態の移動ロボット及び移動ロボットの制御方法について説明する。
移動ロボットは、図17に示すように、位置距離計算命令送信部1、位置距離計算命令転送部2、返信位置距離計算命令送信部3、方向記憶部4、返信位置距離計算命令転送部5、第一先頭ロボット単位決定命令送信部6、ロボット単位決定部7、第一移動部8、第二移動部9、次先頭ロボット単位選択命令送信部10及び第二先頭ロボット単位決定命令送信部11を例えば備えている。
移動ロボットの制御方法は、移動ロボットの各部が、例えば図18及び以下に説明するステップS1からステップS11の処理を行うことにより実現される。
ステップS1からステップS5の処理は、初期位置Sの隊列構造を把握するための処理である。ステップS6からステップS11の処理は、ロボット単位を移動するための処理である。 ロボット単位の中の所定のロボットをロボットhとする。例えば、各ロボット単位内にて、X,Y,Z位置座標が全て偶数のものをロボットhと定義する。
まず、ロボット単位の中の何れかのロボット単位のロボットhであるロボットi_rootにユーザーから変形開始命令が送信される。変形開始命令には、各ロボット単位の目標位置Gについての情報である隊列形態情報も含まれる。ロボットi_rootは、ロボット単位の中の何れかのロボット単位の中の所定のものである。
[位置距離計算命令送信部1]
ロボットが、ロボット単位の中の何れかのロボット単位の中の所定のロボットi_rootである場合に、ロボットi_rootの位置距離計算命令送信部1は、それぞれ所定の初期値に設定された、ロボットi_rootの位置からの相対位置と位置距離計算命令の送信転送回数とを含む位置距離計算命令を隣接するロボットに送信する(ステップS1)。
以下、位置距離計算命令を位置距離計算命令COM_POSITIONS、相対位置を相対位置(Xr,Yr,Zr)、送信転送回数を送信転送回数N_manhattanと表記する場合もある。
例えば、相対位置(Xr,Yr,Zr)の初期値は(0,0,0)であり、送信転送回数N_manhattanの初期値は0である。
[位置距離計算命令転送部2]
ロボットが、位置距離計算命令を受信した場合に、そのロボットの位置距離計算命令転送部2は、位置距離計算命令に含まれる送信転送回数をインクリメントし、位置距離計算命令を受信した方向に応じて位置距離計算命令に含まれる相対位置を更新し、インクリメントした送信転送回数及び更新した相対位置を含む位置距離計算命令を、位置距離計算命令を送信してきたロボット以外の、隣接するロボットに一度だけ転送する(ステップS2)。
なお、位置距離計算命令転送部2は、位置距離計算命令COM_POSITIONSを自分に送信してきたロボットには転送をしない。これにより、位置距離計算命令COM_POSITIONSが、ロボット構造内で何度も無限に送受信されることを防ぐことができる。
[返信位置距離計算命令送信部3]
ロボットが、位置距離計算命令を最初に受信した場合に、そのロボットの返信位置距離計算命令送信部3は、位置距離計算命令を送信してきたロボットに、インクリメントした送信転送回数及び更新した相対位置を含む返信位置距離計算命令を送信する(ステップS3)。
以下、返信位置距離計算命令を返信位置距離計算命令COM_Positions_Replyと表記する場合もある。
最初に位置距離計算命令COM_POSITIONSを受信した際の送信転送回数N_manhattanの値が、このロボットのロボットi_rootからのマンハッタン距離となる。
[方向記憶部4]
ロボットが、位置距離計算命令を最初に受信した場合に、そのロボットの方向記憶部4は、位置距離計算命令を送信してきたロボットの方向をa_to_root方向として記憶する(ステップS4)。
以後、各ロボットは、何か情報をロボットi_rootに対して送るときは、各自a_to_rootの方向に送信する。
[返信位置距離計算命令転送部5]
ロボットが、返信位置距離計算命令を受信した場合に、そのロボットの返信位置距離計算命令転送部5は、方向記憶部4から読み込んだa_to_root方向に受信した返信位置距離計算命令を転送する(ステップS5)。
各返信位置距離計算命令を受信した各ロボットがステップS5の処理を行うことにより、各返信位置距離計算命令は最終的にロボットi_rootに到達する。
[第一先頭ロボット単位決定命令送信部6]
ロボットが、ロボットi_rootであり、全てのロボットが送信した返信位置距離計算命令を受信した場合に、そのロボットの第一先頭ロボット単位決定命令送信部6は、返信位置距離計算命令に含まれる相対位置に基づく各ロボットの位置に基づいて、ある1つの部分共通位置集合を集合Upとして選択し、目標位置の集合に属するが共通位置の集合に属しない位置に隣接する位置であって、集合Upに属する位置を先頭位置Headとして選択し、先頭位置Headに位置するロボット単位である先頭ロボット単位の中の所定のロボットに、相対位置及び集合Upの情報を含む先頭ロボット単位決定命令を送信する(ステップS6)。
以下、先頭ロボット単位決定命令を先頭ロボット単位決定命令COM_Head_Decisionと表記する場合もある。
[ロボット単位決定部7]
ロボットが、先頭ロボット単位の中の所定のロボットであり、先頭ロボット単位決定命令を受信した場合に、そのロボットのロボット単位決定部7は、集合Upに属しない位置にあり初期位置の中に位置するロボット単位であり、移動させてもロボット構造の接続性を維持することができるロボット単位である尾部ロボット単位の位置を尾部位置Tailとして、先頭位置Headから尾部位置Tailに至るパスに含まれるロボット単位H0,H1,…,Hnt-1を決定する(ステップS7)。
ここで、ロボット単位H0は先頭位置Headに位置するロボット単位であり、ロボット単位Hnt-1は尾部位置Tailに位置するロボット単位である。
ここで、先頭位置Headから尾部位置Tailに至るパスは、パス上の位置において同じマンハッタン距離の位置がないパスである。先頭位置Headから尾部位置Tailに至るパスは、例えば、先頭位置Headから尾部位置Tailに至る最適パスである。最適パスとは、HeadとTail間をマンハッタン距離と同じステップ数の移動回数で辿ることができるパスである。
[第一移動部8]
i=0,…,nt-2として、ロボット単位が、ロボット単位Hiの中の所定のロボットである場合には、そのロボットの第一移動部8は、先頭位置Headに隣接する位置であって、目標位置の集合に属するが共通位置の集合に属しない位置を目的位置Dとして、ロボット単位Hi+1を伸ばしつつ、ロボット単位Hiを、目的位置D、又は、第一移動部8による移動の前にロボット単位Hi-1があった位置に移動させる(ステップS8)。「目的位置D、又は、第一移動部8による移動の前にロボット単位Hi-1があった位置」は、言い換えると、移動ロボット単位Hiの位置に隣接する位置かつパス上の位置であって目的位置Dに1つだけ近い位置である。
なお、ステップS8の処理により、ロボット単位H0は目的位置Dに移動され、ロボット単位H1,…,Hnt-2はそれぞれ第一移動部8による移動の前にロボット単位H0,…,Hnt-1があった位置に移動される。また、ロボット単位Hnt-1が伸ばされた状態となる。
以下、第一移動部8によるステップS8の処理の例を説明する。
まず、ロボット単位H0の中のロボットhは、ロボット単位H0の目的位置Dへの移動(図6の動作1)についての命令COM_Step_1を発する。命令COM_Step_1は、ロボット単位H0のUCMMの目的位置Dへの移動時に動作するロボットの間でリレーされていく。UCMMの目的位置Dへの動作が完了したときには、命令COM_Step_1はロボット単位H0の中のロボットhに返される。
続いて、ロボット単位H0の中のロボットhは、ロボット単位H1のUCMMのロボット単位H0への移動(図6の動作2)についての命令COM_Step_2を発する。命令COM_Step_2は、命令COM_Step_1と同様に、ロボット単位H1のUCMMのロボット単位H0への移動時に動作するロボットの間でリレーされていく。ロボット単位H1のUCMMのロボット単位H0への動作が完了したときには、命令COM_Step_2はロボット単位H0の中のロボットhに返される。
続いて、ロボット単位H0の中のロボットhは、目的位置Dとロボット単位H1内のLCMMのUCMMへの変形(図6の動作3)についての命令COM_Step_3と命令COM_Step_4を発する。命令COM_Step_3は、ロボット単位H0の中のロボットhから目的位置D内LCMMに発信され、命令COM_Step_4はhからロボット単位H1内LCMMに向けて発信される。その後は、発信されたそれぞれのコマンドは、命令COM_Step_1と同様に変形時に動作するロボットの間でリレーされていく。各々のLCMMのUCMMHへの変形動作が完了したときには、命令COM_Step_3と命令COM_Step_4はロボット単位H0の中のロボットhに返される。
続いて、ロボット単位H0の中のロボットhは、ロボット単位H0内のLCMMの目的位置Dへの移動(図6の動作4)についての命令COM_Step_5を発する。命令COM_Step_5は、命令COM_Step_1と同様に変形時に動作するロボットの間でリレーされていく。LCMMの移動が完了したときには、命令COM_Step_5はロボット単位H0の中のロボットhに返される。ここで、注意すべきは、この時点でロボット単位H0の中のロボットhはすでに目的位置D内にあるということである。
続いて、ロボット単位H0の中のロボットhは、ロボット単位H0,H1内のUCMMのLCMMへの変形(図6の動作5)についての命令COM_Step_6を発する。命令COM_Step_6は、命令COM_Step_1と同様に変形時に動作するロボットの間でリレーされていく。二つの隣接するUCMMの変形動作の例を図16に示す。変形が完了したときには、命令COM_Step_6は、ロボット単位H1の中の新たなロボットhになるべきロボットにたどり着く。ここで、命令COM_Step_6は、ロボット単位H0,H1,H2,…,Hnt-1の位置に関する情報を含んでいなければならない。なぜなら、この時点より、ロボット単位H1を先頭として、ロボット単位H1→H0へのタネリング動作(図6の動作2から)が始まるからである。 この後、ロボット単位H1の中のロボットhより命令COM_Step_2が発信される。発信された命令COM_Step_2はこれまでと同様にリレーされ、ロボット単位H1の中のロボットhに帰ってくる。これに続いて、ロボット単位H1の中のロボットhより発信される命令COM_Step_3, COM_Step_4, COM_Step_5のリレーが行われ、命令COM_Step_5がロボット単位H1の中のロボットhに帰ってきたら、命令COM_Step_6が発せられて、命令COM_Step_6は、ロボット単位H2内の中の新たなロボットhにたどり着く。このようにして、ロボット単位Hnt-2の中のロボットhから発せられた命令COM_Step_5がロボット単位Hnt-2の中のロボットhに帰ってくるまでコマンドリレーは繰り返される。
[第二移動部9]
ロボットが、ロボット単位Hnt-2の中の所定のロボットである場合に、そのロボットの第二移動部9は、ロボット単位Hnt-1を、第一移動部8による移動の前にロボット単位Hnt-2があった位置に移動させる(ステップS9)。
すなわち、最後に、ロボット単位Hnt-1にあるLCMMがロボット単位Hnt-2に入るための命令COM_Step_7がロボット単位Hnt-2の中のロボットhより発信され、これまでと同様にリレーされ、ロボット単位Hnt-2の中のロボットhに帰ってくる。
[次先頭ロボット単位選択命令送信部10]
ロボットが、ロボット単位Hnt-2の中の所定のロボットである場合に、そのロボットの次先頭ロボット単位選択命令送信部10は、先頭ロボット単位の中の所定のロボットに、次先頭ロボット単位選択命令を送信する(ステップS10)。
以下、次先頭ロボット単位選択命令を次先頭ロボット単位選択命令COM_Next_Headと表記する場合もある。
次先頭ロボット単位選択命令COM_Next_Headは、ロボット単位Hnt-2から目的位置Dに至るまでロボット単位H0,H1,H2,…,Hnt-3を伝播して目的位置Dの中のロボットhにたどり着く。
[第二先頭ロボット単位決定命令送信部11]
ロボットが、先頭ロボット単位の中の所定のロボットであり、次先頭ロボット単位決定命令を受信した場合に、そのロボットの第二先頭ロボット単位決定命令送信部11は、目的位置Dを集合Upに追加した後に、集合Upに接していて、集合Upの中ではなく目標位置の中に位置するロボット単位がある場合には、そのロボット単位の位置と、そのロボット単位から目標位置のみを経由して接続状態にあるロボット単位の位置とを集合Upに追加することで集合Upを更新するとともに、相対位置を更新し、相対位置に基づく各ロボットの位置に基づいて、目標位置の集合に属するが共通位置の集合に属しない位置に隣接する位置であって、集合Upに属する位置を先頭位置Headとして選択し、先頭位置Headに位置するロボット単位である先頭ロボット単位の中の所定のロボットに、相対位置及び集合Upの情報を含む先頭ロボット単位決定命令を送信する(ステップS11)。
すなわち、次先頭ロボット単位決定命令COM_Next_Headを受信した目的位置Dの中のロボットhは、次のHeadとDを決定し、集合Upを更新する。また、h内に保持していた全てのロボット単位の位置についての情報(相対位置)も更新する。この相対位置の更新は、例えば、これはHnt-1の位置を削除し、Dの位置を新たに追加することで行うことができる。
この後、これらの情報を含んだ先頭ロボット単位決定命令COM_Head_Decisionが、次のHeadの中ロボットhに送信される。以降、先頭ロボット単位決定命令COM_Head_Decisionを受信したロボットhはこれまでと同様にタネリング動作のための命令COM_Step_1, COM_Step_2, COM_Step_3 , COM_Step_4, COM_Step_5 COM_Step_6, COM_Step_7のリレーを繰り返す。
このようにして、目標位置の中のロボット単位が存在しない位置がなくなるまで、ロボット単位決定部7、第一移動部8、第二移動部9、次先頭ロボット単位決定命令送信部10及び第二先頭ロボット単位決定命令送信部11の処理が繰り繰り返し行われる。
なお、命令COM_Step_1, COM_Step_2, COM_Step_3, COM_Step_4, COM_Step_5, COM_Step_6, COM_Step_7は、ロボットの動作中にコマンドがリレーされる経路についての情報を含んでいる。
例えば、図12の(1)の動作において、H0からDへの動作が、X軸正方向の場合、命令COM_Step_1はX正方向、Y正方向、Z正方向にリレーされて、最初に動作するH0内ロボット(図12のロボットc)にたどり着く。すなわち、図12の(1)の動作において、ロボットa,cが動く前に、命令COM_Step_1は、ロボットeからロボットfにリレーされ、ロボットfからロボットcにリレーされる。なお、図12においては、ロボットeが、ロボット単位H0の中の所定のロボットhである。
また、図12の(2)の動作において、ロボットbが動く前に、命令COM_Step_1は、ロボットcからロボットbにリレーされる。
また、図12の(3)の動作において、ロボットa,bが動く前に、命令COM_Step_1は、ロボットbからロボットaにリレーされる。
また、図12の(4)(5)の動作において、ロボットcが動く前に、命令COM_Step_1は、ロボットaからロボットdにリレーされ、ロボットdからロボットcにリレーされる。
また、図12の(6)の動作において、ロボットd,aが動く前に、命令COM_Step_1は、ロボットcからロボットbにリレーされ、ロボットbからロボットaにリレーされ、ロボットaからロボットdにリレーされる。
また、図12の(7)の動作において、ロボットaが動く前に、命令COM_Step_1は、ロボットdからロボットaにリレーされる。
なお、図12の(1)の動作では、ロボットcとロボットaは同時にX正方向に1ステップ移動しなければならないが、この同時動作を実現するために、ロボットa,c間で局地的なコマンドのやり取りが行われる。まず、ロボットcが命令COM_Step_1を受信したときに、ロボットaに対して、ロボットcとの機械的な接続以外の、他のロボットaに隣接するロボットとの機械的接続を全て解放するように命令する。この命令を、機械接続解放命令COM_Request_Synchとする。この機械接続解放命令COM_Request_Synchを受け取ったロボットaは、命令通りにロボットc以外との機械接続を解放し、ロボットcに命令の実行を完了した旨を返信する。この返信を、COM_Reply_Synchとする。ロボットaからの返信を受信したロボットcはロボットaとともに、X正方向への1ステップ移動を実行する。この動作中ロボットaはロボットcとの機械接続を維持したまま何もせず、ロボットcについていく。ロボットc、aの同時動作が完了した後のロボットaの隣接モジュールとの機械接続の回復も同様のロボットa,cのやり取りで行われる。
機械接続解放命令COM_Request_Synchの送信及び返信COM_Reply_Synchの返信は、各ロボットに備えられた機械接続解放命令送信部及び返信部により行われている。なお、機械接続解放命令送信部及び返信部は、図17に図示していない。
2つより多くの隣接したロボットでの同時動作の場合も同様にCOM_Request_SynchとCOM_Reply_Synchのリレーによって同時動作が行われる。
命令COM_Step_1, COM_Step_2, COM_Step_3, COM_Step_4, COM_Step_5, COM_Step_6, COM_Step_7は、どのロボットでこれらのCOM_Request_SynchとCOM_Reply_Synchのリレーが行われるかについての情報も含んでいる。
[具体例]
図15を用いて、移動ロボット及びその制御方法による制御処理の具体例について説明する。
図15(A)はロボット単位の初期位置を表し、図15(B)はロボット単位の目標位置を表す。図15(A)(B)において、白の立方体及び斜線の立方体はロボット単位の初期位置を表し、ドットの立方体及び斜線の立方体はロボット単位の目標位置を表す。斜線の立方体は、ロボット単位の初期位置と目標位置の共通部分である共通位置を表す。
図15(A)において、共通位置の集合は互いに隣接していない3個の部分共通位置集合C(1),C(2),C(3)から構成されている。図15(A)において、一番上の2個の斜線の立方体の位置がC(1)であり、中央の2個の斜線の立方体の位置がC(2)であり、一番下の2個の斜線の立方体の位置がC(3)である。
第一先頭ロボット単位決定命令送信部6は、例えば図15(B)に示すように、部分共通位置集合C(1)を集合Upとして選択する(ステップS6)。図15(B)から図15(G)において、集合Upに属する位置を太線の点線で表す。
第一先頭ロボット単位決定命令送信部6は、例えば図15(B)に示すように、先頭ロボット単位Head、尾部ロボット単位Tail、目的位置Dを選択する(ステップS6)。
ロボット単位決定部7、第一移動部8及び第二移動部9は、図15(B)の目的位置Dを目的位置として、先頭ロボット単位Headから尾部ロボット単位Tailの一連のロボット単位を移動させる(ステップS7からステップS9)。その結果、ロボット単位の位置は、図15(C)のようになる。
第二先頭ロボット単位決定命令送信部11は、図15(B)の目的位置Dを集合Upに追加する(ステップS11)。この場合、集合Upに接していて、集合Upの中ではなく目標位置の中に位置するロボット単位は存在しないため、目的位置D以外の位置は集合Upに追加されない。この結果、集合Upに属する位置は、図15(C)のようになる。
目標位置の中のロボットが存在しない位置が残っているため、ステップS10、ステップS11の処理を行った後に、ステップS7の処理に戻る。
第二先頭ロボット単位決定命令送信部11及びロボット単位決定部7は、例えば図15(D)に示すように、先頭ロボット単位Head、尾部ロボット単位Tail、目的位置Dを選択する(ステップS11、ステップS7)。
第一移動部8及び第二移動部9は、図15(D)の目的位置Dを目的位置として、先頭ロボット単位Headから尾部ロボット単位Tailの一連のロボット単位を移動させる(ステップS8、ステップS9)。その結果、ロボット単位の位置は、図15(E)のようになる。
第二先頭ロボット単位決定命令送信部11は、図15(D)の目的位置Dを集合Upに追加する(ステップS11)。この場合、集合Upに接していて、集合Upの中ではなく目標位置の中に位置するロボット単位は存在しないため、目的位置D以外の位置は集合Upに追加されない。この結果、集合Upに属する位置は、図15(E)のようになる。
目標位置の中のロボットが存在しない位置が残っているため、ステップS10、ステップS11の処理を行った後に、ステップS7の処理に戻る。
第二先頭ロボット単位決定命令送信部11及びロボット単位決定部7は、例えば図15(F)に示すように、先頭ロボット単位Head、尾部ロボット単位Tail、目的位置Dを選択する(ステップS11、ステップS7)。
第一移動部8及び第二移動部9は、図15(F)の目的位置Dを目的位置として、先頭ロボット単位Headから尾部ロボット単位Tailの一連のロボット単位を移動させる(ステップS8、ステップS9)。その結果、ロボット単位の位置は、図15(G)のようになる。
第二先頭ロボット単位決定命令送信部11は、図15(F)の目的位置Dを集合Upに追加する(ステップS11)。この場合、集合Upに接していて、集合Upの中ではなく目標位置の中に位置するロボット単位(図15(G)において、cで示した位置にあるロボット単位)が存在する。このため、この場合、集合追加部4は、位置cと、位置cにあるロボット単位から目標位置(共通位置を含む。)のみを経由して接続状態にあるロボット単位の位置(すなわち、位置cを除く、部分共通位置集合C(2)に属する位置)とを集合Upに追加する。この結果、集合Upに属する位置は、図15(G)のようになる。なお、この場合、C[2]が、C[i_connected]となる。このステップS11の処理により、C[i_connected]であるC[2]が、集合Upに追加される。
このような処理を繰り返すことにより、最終的に、図15(H)に示すようにロボット単位を目標位置に移動させることができる。
[変形例]
以上、本発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、本発明に含まれることはいうまでもない。
実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
例えば、各ロボットの構成部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
また、尾部位置Tail及び目標位置Dの決定は、第一先頭ロボット単位決定命令送信部6、ロボット単位決定部7、第一移動部8及び第二先頭ロボット単位決定命令送信部11の何れで行われてもよい。
また、上記の実施形態では、ロボット単位としていわゆる8マスライディングキューブを用いたが、タネリング動作が可能であれば、8マスコンプレッシングタイプ、4マスライディングキューブ等のロボット単位を用いてもよい。また、タネリング動作が可能であれば、いわゆるせん断ロボット、伸縮ロボット以外のロボットをロボット単位として用いてもよい。
[プログラム、記録媒体]
上記説明した各ロボットにおける各種の処理機能をコンピュータによって実現する場合、各ロボットが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各ロボットにおける各種の処理機能がコンピュータ上で実現される。例えば、上述の各種の処理は、図19に示すコンピュータの記録部2020に、実行させるプログラムを読み込ませ、制御部2010、入力部2030、出力部2040などに動作させることで実施できる。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (4)

  1. 各ロボット単位には所定の初期位置及び所定の目標位置が定められており、前記初期位置と前記目標位置の共通部分を共通位置とし、前記共通位置の集合は互いに隣接していない少なくとも1つの部分共通位置集合から構成されているとし、各ロボット単位が他のロボット単位と隣接することによりロボット単位が一塊のロボット構造を形成していることをロボット構造の接続性と言うとして、
    前記ロボット単位の中の何れかのロボット単位の中の所定のロボットi_rootである場合に、それぞれ所定の初期値に設定された、前記ロボットi_rootの位置からの相対位置と位置距離計算命令の送信転送回数とを含む位置距離計算命令を隣接するロボットに送信する位置距離計算命令送信部と、
    前記位置距離計算命令を受信した場合に、前記位置距離計算命令に含まれる送信転送回数をインクリメントし、前記位置距離計算命令を受信した方向に応じて前記位置距離計算命令に含まれる相対位置を更新し、前記インクリメントした送信転送回数及び前記更新した相対位置を含む位置距離計算命令を、前記位置距離計算命令を送信してきたロボット以外の、隣接するロボットに一度だけ転送する位置距離計算命令転送部と、
    前記位置距離計算命令を最初に受信した場合に、前記位置距離計算命令を送信してきたロボットに、前記インクリメントした送信転送回数及び前記更新した相対位置を含む返信位置距離計算命令を送信する返信位置距離計算命令送信部と、
    前記位置距離計算命令を最初に受信した場合に、前記位置距離計算命令を送信してきたロボットの方向をa_to_root方向として記憶する方向記憶部と、
    前記返信位置距離計算命令を受信した場合に、前記方向記憶部から読み込んだa_to_root方向に前記受信した返信位置距離計算命令を転送する返信位置距離計算命令転送部と、
    前記ロボットi_rootであり、全てのロボットが送信した返信位置距離計算命令を受信した場合に、前記返信位置距離計算命令に含まれる相対位置に基づく各ロボットの位置に基づいて、ある1つの部分共通位置集合を集合Upとして選択し、目標位置の集合に属するが共通位置の集合に属しない位置に隣接する位置であって、前記集合Upに属する位置を先頭位置Headとして選択し、前記先頭位置Headに位置するロボット単位である先頭ロボット単位の中の所定のロボットに、前記相対位置及び前記集合Upの情報を含む先頭ロボット単位決定命令を送信する第一先頭ロボット単位決定命令送信部と、
    前記先頭ロボット単位の中の所定のロボットであり、先頭ロボット単位決定命令を受信した場合に、前記集合Upに属しない位置にあり前記初期位置の中に位置するロボット単位であり、移動させても前記ロボット構造の接続性を維持することができるロボット単位である尾部ロボット単位の位置を尾部位置Tailとして、前記先頭位置Headから前記尾部位置Tailに至るパスに含まれるロボット単位H0,H1,…,Hnt-1を決定するロボット単位決定部と、
    i=0,…,nt-2として、ロボット単位Hiの中の所定のロボットである場合に、前記先頭位置Headに隣接する位置であって、前記目標位置の集合に属するが前記共通位置の集合に属しない位置を目的位置Dとして、ロボット単位Hi+1を伸ばしつつ、前記ロボット単位Hiを、前記目的位置D、又は、第一移動部による移動の前にロボット単位Hi-1があった位置に移動させる第一移動部と、
    ロボット単位Hnt-2の中の所定のロボットである場合に、ロボット単位Hnt-1を、前記第一移動部による移動の前にロボット単位Hnt-2があった位置に移動させる第二移動部と、
    ロボット単位Hnt-2の中の所定のロボットである場合に、前記先頭ロボット単位の中の所定のロボットに、次先頭ロボット単位選択命令を送信する次先頭ロボット単位選択命令送信部と、
    前記先頭ロボット単位の中の所定のロボットであり、次先頭ロボット単位決定命令を受信した場合に、前記目的位置Dを前記集合Upに追加した後に、前記集合Upに接していて、前記集合Upの中ではなく前記目標位置の中に位置するロボット単位がある場合には、そのロボット単位の位置と、そのロボット単位から前記目標位置のみを経由して接続状態にあるロボット単位の位置とを前記集合Upに追加することで前記集合Upを更新するとともに、前記相対位置を更新し、前記相対位置に基づく各ロボットの位置に基づいて、前記目標位置の集合に属するが前記共通位置の集合に属しない位置に隣接する位置であって、前記集合Upに属する位置を先頭位置Headとして選択し、前記先頭位置Headに位置するロボット単位である先頭ロボット単位の中の所定のロボットに、前記相対位置及び前記集合Upの情報を含む先頭ロボット単位決定命令を送信する第二先頭ロボット単位決定命令送信部と、を含み、
    前記目標位置の中のロボット単位が存在しない位置がなくなるまで、前記ロボット単位決定部、前記第一移動部、前記第二移動部、前記次先頭ロボット単位選択命令送信部及び前記第二先頭ロボット単位決定命令送信部の処理が繰り返し行われる、
    移動ロボット。
  2. 請求項1の移動ロボットであって、
    前記第一移動部及び前記第二移動部の処理において、前記移動を行うための命令は、各前記ロボット単位が移動するときに動作するロボットの間でリレーされる、
    移動ロボット。
  3. 各ロボット単位には所定の初期位置及び所定の目標位置が定められており、前記初期位置と前記目標位置の共通部分を共通位置とし、前記共通位置の集合は互いに隣接していない少なくとも1つの部分共通位置集合から構成されているとし、各ロボット単位が他のロボット単位と隣接することによりロボット単位が一塊のロボット構造を形成していることをロボット構造の接続性と言うとして、
    位置距離計算命令送信部が、前記ロボット単位の中の何れかのロボット単位の中の所定のロボットi_rootである場合に、それぞれ所定の初期値に設定された、前記ロボットi_rootの位置からの相対位置と位置距離計算命令の送信転送回数とを含む位置距離計算命令を隣接するロボットに送信する位置距離計算命令送信ステップと、
    位置距離計算命令転送部が、前記位置距離計算命令を受信した場合に、前記位置距離計算命令に含まれる送信転送回数をインクリメントし、前記位置距離計算命令を受信した方向に応じて前記位置距離計算命令に含まれる相対位置を更新し、前記インクリメントした送信転送回数及び前記更新した相対位置を含む位置距離計算命令を、前記位置距離計算命令を送信してきたロボット以外の、隣接するロボットに一度だけ転送する位置距離計算命令転送ステップと、
    返信位置距離計算命令送信部が、前記位置距離計算命令を最初に受信した場合に、前記位置距離計算命令を送信してきたロボットに、前記インクリメントした送信転送回数及び前記更新した相対位置を含む返信位置距離計算命令を送信する返信位置距離計算命令送信ステップと、
    方向記憶部には、前記位置距離計算命令を最初に受信した場合に、前記位置距離計算命令を送信してきたロボットの方向をa_to_root方向として記憶するとし、
    返信位置距離計算命令転送部が、前記返信位置距離計算命令を受信した場合に、前記方向記憶部から読み込んだa_to_root方向に前記受信した返信位置距離計算命令を転送する返信位置距離計算命令転送ステップと、
    先頭ロボット単位決定命令送信部が、前記ロボットi_rootであり、全てのロボットが送信した返信位置距離計算命令を受信した場合に、前記返信位置距離計算命令に含まれる相対位置に基づく各ロボットの位置に基づいて、ある1つの部分共通位置集合を集合Upとして選択し、目標位置の集合に属するが共通位置の集合に属しない位置に隣接する位置であって、前記集合Upに属する位置を先頭位置Headとして選択し、前記先頭位置Headに位置するロボット単位である先頭ロボット単位の中の所定のロボットに、前記相対位置及び前記集合Upの情報を含む先頭ロボット単位決定命令を送信する第一先頭ロボット単位決定命令送信ステップと、
    ロボット単位決定部が、前記先頭ロボット単位の中の所定のロボットであり、先頭ロボット単位決定命令を受信した場合に、前記集合Upに属しない位置にあり前記初期位置の中に位置するロボット単位であり、移動させても前記ロボット構造の接続性を維持することができるロボット単位である尾部ロボット単位の位置を尾部位置Tailとして、前記先頭位置Headから前記尾部位置Tailに至るパスに含まれるロボット単位H0,H1,…,Hnt-1を決定するロボット単位決定ステップと、
    第一移動部が、i=0,…,nt-2として、ロボット単位Hiの中の所定のロボットである場合に、前記先頭位置Headに隣接する位置であって、前記目標位置の集合に属するが前記共通位置の集合に属しない位置を目的位置Dとして、ロボット単位Hi+1を伸ばしつつ、前記ロボット単位Hiを、前記目的位置D、又は、第一移動部による移動の前にロボット単位Hi-1があった位置に移動させる第一移動ステップと、
    第二移動部が、ロボット単位Hnt-2の中の所定のロボットである場合に、ロボット単位Hnt-1を、前記第一移動部による移動の前にロボット単位Hnt-2があった位置に移動させる第二移動ステップと、
    次先頭ロボット単位選択命令送信部が、ロボット単位Hnt-2の中の所定のロボットである場合に、前記先頭ロボット単位の中の所定のロボットに、次先頭ロボット単位選択命令を送信する次先頭ロボット単位選択命令送信ステップと、
    第二先頭ロボット単位決定命令送信部が、前記先頭ロボット単位の中の所定のロボットであり、次先頭ロボット単位決定命令を受信した場合に、前記目的位置Dを前記集合Upに追加した後に、前記集合Upに接していて、前記集合Upの中ではなく前記目標位置の中に位置するロボット単位がある場合には、そのロボット単位の位置と、そのロボット単位から前記目標位置のみを経由して接続状態にあるロボット単位の位置とを前記集合Upに追加することで前記集合Upを更新するとともに、前記相対位置を更新し、前記相対位置に基づく各ロボットの位置に基づいて、前記目標位置の集合に属するが前記共通位置の集合に属しない位置に隣接する位置であって、前記集合Upに属する位置を先頭位置Headとして選択し、前記先頭位置Headに位置するロボット単位である先頭ロボット単位の中の所定のロボットに、前記相対位置及び前記集合Upの情報を含む先頭ロボット単位決定命令を送信する第二先頭ロボット単位決定命令送信ステップと、を含み、
    前記目標位置の中のロボット単位が存在しない位置がなくなるまで、前記ロボット単位決定部、前記第一移動部、前記第二移動部、前記次先頭ロボット単位選択命令送信部及び前記第二先頭ロボット単位決定命令送信部の処理が繰り返し行われる、
    移動ロボットの制御方法
  4. 請求項1又は2の移動ロボットの各部としてコンピュータを機能させるためのプログラム。
JP2021553980A 2019-10-31 2019-10-31 移動ロボット、移動ロボットの制御方法及びプログラム Active JP7136365B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/042760 WO2021084680A1 (ja) 2019-10-31 2019-10-31 移動ロボット、移動ロボットの制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2021084680A1 JPWO2021084680A1 (ja) 2021-05-06
JP7136365B2 true JP7136365B2 (ja) 2022-09-13

Family

ID=75714934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021553980A Active JP7136365B2 (ja) 2019-10-31 2019-10-31 移動ロボット、移動ロボットの制御方法及びプログラム

Country Status (3)

Country Link
US (1) US11883960B2 (ja)
JP (1) JP7136365B2 (ja)
WO (1) WO2021084680A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230347503A1 (en) * 2022-04-29 2023-11-02 Kabushiki Kaisha Toshiba Robots with lift mechanisms

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003048179A (ja) * 2001-05-29 2003-02-18 Japan Science & Technology Corp 複数歯車型ユニットで構成される変形可能な移動装置
US11334092B2 (en) * 2011-07-06 2022-05-17 Peloton Technology, Inc. Devices, systems, and methods for transmitting vehicle data
CA2907452A1 (en) * 2013-03-15 2014-09-18 Peloton Technology Inc. Vehicle platooning systems and methods
US11435742B2 (en) * 2018-12-18 2022-09-06 University Of Washington Method for controlling autonomous agents using self-reinforcement

Also Published As

Publication number Publication date
US11883960B2 (en) 2024-01-30
WO2021084680A1 (ja) 2021-05-06
US20220388164A1 (en) 2022-12-08
JPWO2021084680A1 (ja) 2021-05-06

Similar Documents

Publication Publication Date Title
Tucci et al. A distributed self-assembly planning algorithm for modular robots
JP7136365B2 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
JP2019053709A (ja) 制御装置、方法及びプログラム
JP2017142738A (ja) 行動制御システム、その方法及びプログラム
Kawano Distributed tunneling reconfiguration of cubic modular robots without meta-module’s disassembling in severe space requirement
Moussa et al. Cluster-based distributed self-reconfiguration algorithm for modular robots
Kawano Distributed tunneling reconfiguration of sliding cubic modular robots in severe space requirements
JP7014099B2 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
WO2019159927A1 (ja) 制御装置、方法及びプログラム
JP6939395B2 (ja) 制御装置、方法及びプログラム
JP6685957B2 (ja) 制御対象物位置入れ替え制御装置、制御対象物位置入れ替え制御方法、プログラム
Hołobut et al. Distributed computation of forces in modular-robotic ensembles as part of reconfiguration planning
WO2022239063A1 (ja) 制御装置、方法及びプログラム
WO2023276065A1 (ja) 制御装置、方法及びプログラム
WO2023281625A1 (ja) 制御装置、方法及びプログラム
JP7014101B2 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
US20240077869A1 (en) Control apparatus, hamiltonian cycle extension apparatus, these methods and programs
JP6559582B2 (ja) 行動制御システム、その方法及びプログラム
JP6939396B2 (ja) 隊列制御装置、隊列制御方法、およびプログラム
WO2023281582A1 (ja) 制御装置、方法及びプログラム
JP6946933B2 (ja) 隊列制御装置、隊列制御方法、およびプログラム
JP6633467B2 (ja) 行動制御システム、行動制御方法、プログラム
JP6881352B2 (ja) 制御装置、方法及びプログラム
Odem et al. A self-reconfiguration algorithm for sliding triangular modular robots
Motes et al. Interaction templates for multi-agent systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R150 Certificate of patent or registration of utility model

Ref document number: 7136365

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150