章1: Open-RMFとは ── 概要と用語
← 前章: 環境構築 | 目次 | 次章: RMFの全体像を掴む →
狙い
- Open-RMFが何のためのものかを掴む(次章からの三層モデルの前提知識)
- 以降の章に何度も出てくるRMF固有の用語を、先にまとめて押さえる
手を動かす前に、言葉と全体像だけ揃える短い章。読み飛ばして詰まったら戻ってくればよい。
Open-RMFとは
複数台・複数メーカーの移動ロボットと施設設備(ドア・エレベータ・搬送機)を、同じ空間で協調させるためのオープンソース基盤がOpen-RMF(Robotics Middleware Framework)。ROS 2の上で動く。
一言でいうと「フリート(ロボットの群れ)の交通整理とタスク配分をする管制塔」。個々のロボットの走り方(自己位置推定・経路追従)は各社の実装(このチュートリアルではNav2)に任せる。RMFが担当するのは、その上に乗るフリート全体の意思決定だ:
なぜ必要か
倉庫や病院では、別々のメーカーのロボットが同じ廊下を共有することがある。各社バラバラに動くと衝突や渋滞が起きる。RMFはメーカー非依存の共通の交通・タスク基盤を提供する。各ロボットは「フリートアダプタ」という薄い通訳を書くだけで、この基盤に参加できる。
toioはどう位置づくか
toioは手のひらサイズのキューブ型ロボット(参考価格: コア キューブ単体の希望小売価格7,128円・税込、toio公式サイト、2026年8月時点)。このチュートリアルではtoioを2台の小さなフリートに見立て、RMFのフリート処理(入札・交通調停・充電)を卓上で・シミュレーションから実機まで学べるようにした。倉庫の数十m級ロボットと同じRMFの仕組みが、数cmのマットの上で動く。
RMF固有の用語(先に押さえる)
以降の章で頻出する用語。今すべて理解する必要はなく、出てきたら戻る索引として使う。
| 用語 | 意味 | 主に扱う章 |
|---|---|---|
| フリート(fleet) | 同種ロボットの群れ。本パッケージのフリート名は toio(toio1 / toio2) |
章2 |
| フリートアダプタ(fleet adapter) | RMFと個々のロボットの通訳。抽象タスクを各ロボットの走行指令へ翻訳し、位置・バッテリを報告 | 章2 |
| EasyFullControl | フリートアダプタを書くためのRMFのAPI。toioは走行をNav2に委譲する実装 | 章2 |
| RMFコア(RMF core) | 機種に依存しない中枢。ディスパッチャ・交通スケジュール・建物図サーバ等 | 章2 |
| ディスパッチャ(dispatcher) | 投入されたタスクをフリートに配り、入札結果で割当を決める | 章5 |
| タスク(task) | ロボットにやらせる仕事の単位。patrol / delivery / ChargeBatteryなど。フェーズ(移動・荷役・充電)の列でできている | 章3〜 |
| 入札(bidding) | 誰にタスクをやらせるかを決めるオークション。BidNotice(依頼)→ BidResponse(見積)→ 落札(award) | 章5 |
| 交通スケジュール(traffic schedule) | 各ロボットの走行経路を時空間で予約し、かち合いを調整する大域の仕組み(rmf_traffic_schedule) |
章6 |
| 交渉(negotiation) | 予約がかち合ったときに経路を譲り合う調停 | 章6 |
| peer costmap | Nav2側の局所回避。相手ロボットの現在位置をコストマップに障害物として描き込む | 章6 |
| mutex group | navグラフ上の排他区間。同時に1台しか入れず、2台目はロックが空くまで待つ(A4の ring) |
章13 |
| 参加者(participant) | 交通スケジュール上の1エージェント(≒1ロボット)。RViz可視化のマーカー名にも出る | 章10 |
| footprint / vicinity | スケジュール上の占有域と、他機への「近づくな」領域。RVizでは既定で非表示 | 章10 |
| navグラフ(nav graph) | ロボットが走れる頂点(waypoint)とレーン(lane)の地図。自由空間ではなくこの上を動く | 章4 |
| waypoint(頂点) | navグラフの停留点。タスクで指定する patrol_A などがこれ |
章4 |
| lane(レーン) | 頂点間の通行可能な辺。双方向/一方通行がある | 章4 / 章6 |
| 建物図(building map) | フロア図・navグラフ・設備をまとめたRMFの地図(building_map_server が配る) |
章2 |
| ワークセル(workcell) | 荷役を担う設備。払い出し機dispenserと受け入れ機ingestor | 章8 |
| フリートアクション(perform_action) | 標準タスクにない独自動作。toioではLED・効果音の演出 | 章9 |
| finishing_request | タスク完了後の片付けポリシー(toioは charge=チャージャーへ帰す) |
章4 / 章7 |
| ChargeBattery | 残量が閾値を下回る見込みのときRMFが自動で計画する充電タスク | 章7 |
| Dock | チャージャー到着の最終区間で使う精密停止(実機のキューブ内蔵走行)。A4のみ | 章14 |
| Position ID | toioマットに印刷された位置コード。実機のキューブはこれを読んで自分の位置を出す | 章12 |
| door / lift supervisor | ドア・エレベータの調停役。toioの遊び場には不要なので本パッケージでは省略 | ── |
全体像(次章への橋渡し)
RMFの環境は役割の違う3層でできている。上が「何をするか」(RMFコア)、真ん中が「このロボットで実現する」(フリートアダプタ)、下が「どう走るか」(Nav2 + Gazebo/実機)。この章の用語がRMFコアとフリートアダプタの境界に集中しているのは、入札・交通調停・充電というフリート処理の核心がそこにあるからで、次章でこの三層を実際のノード一覧で確かめる。
確認課題
- 「フリート」「フリートアダプタ」「RMFコア」を、自分の言葉で1文ずつ説明できるか。
- RMFが担当すること(タスク割当・交通調停・充電)と、Nav2が担当すること(自己位置推定・経路追従)の境界を言えるか。詳しくは次章で確かめる。
← 前章: 環境構築 | 目次 | 次章: RMFの全体像を掴む →