こんにちは。本記事は、1ヶ月間ブログ連投チャレンジの4日目の記事です。
今私の中で、群ロボット勉強計画が進行中です。群ロボットは複数のユニットが強調して作業を行えるように、ロボット同士で通信して情報共有しなけねばなりません。なので群ロボットでは通信方法が1つの肝となると私は思っています。例えば、近距離のみで通信できる方式を用いた場合、実際の「動物の群れ」的な構図を実現できそうです。それに対し、各ユニットがサーバを介して長距離でも確実に通信できる場合、文明的なツールにより誰とでも対話できる「現代社会」のような目的特化の構図も実現できそうです。
ということで今回は、既存の群ロボットがどのような通信方式を採用しているかメインに調べてみました。そのついでに、基礎的な群ロボットの知識をも勉強し、個人的な想像イメージ付きでまとめてみました。勉強を始めたばかりなので、間違っていることがあればご指摘いただけますと幸いです!
群ロボットの分類や基礎知識
ユニット同士の関係
ユニット同士の関係としては、3種類に分けられます。// 調べてもほぼ動画が出てこなかったので、古い分類法なのかもしれないです。
- lattice-based - 移動可能なロボットが立方体や正八面体などの格子型をしたパターンで接続し・変形する方式です。基本的に制御は、個々のユニットが並列に分散処理するらしい。
// GUGEN2020に投稿されていた作品にこれがあった気がする。現在HPがメンテ中で探せなかった。
こんなやつ ↓
- chain-based - ロボット同士が物理的に接続して、蛇型や木構造を持つものです。基本的に、ユニットが動作する構造はシリアルです(←1接点ずつ動く的な?理解できなかった)。空間的な汎用性が高くなり、任意の点や方向に到達しやすいらしい。
// 普通のヘビ型ロボットなどよりはパワーで劣るらしい。
↓ みたいな群ロボットだと思っています。多分。。。
- mobile-based - 環境を利用して移動できるユニットを持ち、複雑なchainやlatticeを形成することや、個々に離れて移動もできる。 → 仮想的な巨大ネットワークを形成できるらしい。
// ベイマックスのmicrobotとかもこれに当たるのかなぁ。
こんなやつ ↓
制御場所
システムで目的を達成するためにどの個体が考えるかについては、2つの手法があります。
中央集中制御 - 全ユニットの情報や、目的の進行具合をすべて管理するMasterが存在する方式です。数が多くなるにつれて、管理が大変になったり、距離の離れたユニットとの通信が遅延するようになるそうです。まあ、1000個単位になるとですが。重大な問題点としては、Masterが死ぬとシステム全体が死んでしまうことです。
// 目的は達成しやすそうだけれど、群ロボットとしての意味はあまりない気がします。分散制御方式 - 個々のユニットが独立に考えて、近傍同士のユニットと相互作用しながら制御する方式です。自然と分散処理が行なえたり、個数の変化に強かったりするようです。全体の状況を常に把握することが難しかったり、人間が理解し難い制御法になったりといろいろと面倒くさそう。
//こっちのほうがロマンのある制御法ですよね :)
環境認識用のセンサ
障害物が移動するなど、環境が変化するような場合は周囲環境を取得する必要があります。そのため、赤外線近接センサやLRF(レーザでのToF)、超音波測距センサ、ソナー、カメラなどが使われています。そのうち赤外線近接センサは、近くに壁がある場合に反応するやつです。小型で搭載しやすいため最もよく使用されているそう。これ以外を使う場合、値段と精度の兼ね合いで使用するものは変わりそうです。絶対距離を測りたい場合はLRFを使用し、精度が低いが安価な超音波測距センサも選択肢にのぼるでしょう。周囲環境で、障害位置やユニットとの関係、自身のおおまかな移動距離を取得したい場合はカメラを使います。カメラは前方を移すものもあれば、ロボットの天井部に取り付けた曲面型ミラーと組み合わせて、360度周囲を取得する手法もあります(道路のカーブミラーみたいな)。
移動方法
タイヤ型、キャタピラ型、脚使用型、ハイブリッドなものがあるようです(英訳が思いつかなかったので割と個人命名)。
タイヤ型 - 2つのタイヤをDCモータ/サーボモータで動かすものや、3つのモータで全方位移動できるもの、4輪駆動のものがあるそうです。タイヤ型は障害物を乗り越えることに弱い欠点があり、エネルギー効率の良さやパワーが出る利点があります。
キャタピラ型 - 帯型のタイヤ?を用いて、移動するロバストなもの。地形の変化について強いです。
脚使用型 - 組み立てが複雑で、制御が難しい。そのため、非常にゆっくり移動することになり、着地時のインパクトも問題になります。問題児ですな。
通信手法(物理層)
サイズ・コスト・環境などによっていくつかの選択肢が使われている。そのうち、主に中央集中制御と分散制御の分類で違いがあるっぽい。
手法としては近年使えるものが増え、Bluetoothやwifi、stigmergy、赤外線通信やvisual communicationなどがあります。stigmergyとは、「環境に残された情報に対する反応」という意味らしく、蟻が移動時に残すフェロモンのような感じです。他にも、有線でSerial通信するものや、XBee系の通信規格を採用しているものもあります。
プロトコルについてはいまいち調べきれていないので言及できません。。。
Bluetooth(BLEを含む)
最もコスパが良い手法らしい。個体ごとに異なるIDが必要になります。BLEはBluetoothのうち低消費電力な規格で、赤外線通信などよりは長距離で通信できるため、今後広く使われそうな予感がしますね。Bluetoothでもメッシュネットワークを構築できるらしく、群ロボットにも採用できそう。
採用ロボット例
Wi-Fi
Wi-Fiは中型のロボットで、大量のデータを送信する際に使われます。放射線?に弱い。ESP32が結構安くで売っているので、今後はこの手法が広まっていきそうだと予想しています。ESP32のWi-Fiでもメッシュネットワークは構築できるんですね。知らなかった。
採用ロボット例
visual communication
異なる色のLEDによって状態やらを表現し、上部に取り付けたカメラでそれらの色を読み取ります。エコで簡単に導入できる手法ですが、太陽光や他の光源に弱い特徴があります。調べてる限りではほとんど採用されていなさそう。でも、360度周囲の映像を取得する方法は好きです。
採用ロボット例
赤外線通信
私が調べている限りでは、一番多くの群ロボットで採用されているように感じました。近距離でのみ通信可能な特徴を活かし、一定距離を保ちながらメシュネットワークを構築して制御するmobile-baseの群ロボットで多く採用されています。赤外線を用いたものは、全方位に赤外線の信号を送信するものばかりです。receiverは1つしか無いものもあれば、送信機と同じ数を搭載しているものもあります。
採用ロボット例
ZigBee, XBee
Bluetoothと似た規格という印象しかないです。XBeeやZigBeeは、Bluetoothよりも消費電力が抑えられるようです。まあ、最近はBLEが普通に使えるので、安く済ませたいとか、汎用性を重視しない場合はZigBeeを使えばいいんだと思います。(参考サイト)
採用ロボット例
UART、CAN通信
chain-base方式の群ロボットで使われています。物理的にユニットが接続されているから、無線よりもCAN通信のほうが通信エラーが少ない特徴があるのかな?
採用ロボット例
おわりに
流石に1つの研究分野に関して、広く知識を身に着けようと思うとかなり骨が折れました。実は一番知りたかったプロトコルの部分について、どの資料でもあまり詳しく載っていなかったので、別で再度調査が必要そうです。。。
かなり参考にした文献
<追記>
S-BOTのリンクについて、怪しめのサイトに飛ぶようになっていました。確認不足があり、読者の皆様には大変ご迷惑をおかけしました。申し訳ございません。