Robotics

ロボットの電力制約をタスク計画へ反映する:3層設計の考え方

エネルギーの流れと3段階の計画レイヤーを抽象的に表現した技術イメージ
目次

電池残量を計画に組み込むとき、どこまで細かくモデル化すべきかが設計上の焦点になります。

結論

ロボットの電力制約は、単一の計画器に集約せず、タスク割り当て、経路・作業単位のエネルギー計画、実行時の再計画という3層に分けて設計するのが妥当です。上位層では、タスクの消費量だけでなく、終了後に充電地点や待機地点へ戻るエネルギー、充電時間、安全余裕を含めて実行可能性を判断します。中位層では、距離だけでなく速度、加減速、勾配、床面、積載量、停止回数、センサーなどの補機負荷を区間ごとに見積もります。下位層では、SOC、電流、温度、実測消費を取り込み、予測との差に応じて計画を更新します。

SOCや残量パーセントだけでタスクを選ぶと、残量表示は十分でも帰還できない、負荷変動で作業途中に停止する、といった問題を扱いにくくなります。一方、すべてを高精度な電池モデルで計画する必要もありません。機体や運用環境に応じて、上位は粗く、中位は必要な作業単位で、下位は実測に反応できる粒度に分けることが判断の基本です。

なぜ残量表示だけでは不十分か

ROS 2のBatteryStateメッセージは、電圧、電流、充電量、容量、設計容量、残量パーセント、電源状態、健全性、セル電圧などを扱います。計画器が参照する電池状態も、SOC単独ではなく、利用可能容量や電源状態、健全性を含む状態ベクトルとして定義できます。

ただし、SOCは直接観測する値ではありません。クーロンカウント、電圧、電流、電池モデルなどを組み合わせて推定され、電池モデルと拡張カルマンフィルタを用いる方法もあります。負荷条件やモデル誤差によって推定値は変わるため、SOCをそのまま「今後使えるエネルギー」とみなすのは危険です。百分率、正規化容量、実容量、利用可能容量は実装によって意味が異なる場合もあります。

3つの計画粒度

1. タスク割り当て層

搬送や巡回などのタスクをどのロボットに割り当てるかを決める層です。判定には、タスクそのものの予測消費量、終了後の帰還エネルギー、充電に要する時間、予測誤差を吸収する安全余裕を含めます。

「SOCが閾値以上なら割り当てる」という方式では、帰還経路や充電待ち時間を評価できません。複数台を運用する場合は、充電器の競合や代替ロボットの有無も判断材料になります。Open-RMFでは、フリートの状態、走行、タスク、充電を運用モデルの一部として扱い、電池容量、消費、充電、状態変化を扱う関連パッケージも提供されています。

2. 経路・作業単位のエネルギー計画層

タスクを経路や作業区間に分け、各区間のエネルギーコストを予測します。距離または時間に比例させるモデルは実装しやすい一方、速度、加減速、勾配、床面、積載量、停止回数、センサーやマニピュレーターの負荷を表現しにくい制約があります。

移動ロボットの運動計画では、距離や時間だけでなくエネルギー消費を目的関数に含める考え方があります。最短経路と最小エネルギー経路は一致しない場合があるため、経路評価を距離だけに固定しないことが重要です。環境と負荷が安定しているなら距離・時間比例モデルから始め、影響が大きい条件を実測データや電池モデルで段階的に追加します。

3. 実行時制御・再計画層

タスク開始時に電力計画を固定すると、実際の電流、温度、積載状態、路面が予測と異なった際に破綻します。実行層では、現在のSOC、電流、温度、実測消費を取り込み、残タスク、経路、充電判断を再評価します。

再計画の契機は、実測消費が予測を上回った、帰還用リザーブを下回る見込みになった、充電器の利用状況が変わった、といった状態変化です。下位層は安全停止や低電力動作への移行を担い、上位層はタスク中断、再割り当て、充電後の再開を担うように責務を分けます。普遍的な再計画周期は確認できないため、機体の応答性と予測誤差に合わせて決めます。

タスク割り当て層は充電と帰還余裕を含めて仕事の実行可能性を判断し、経路・作業層は区間エネルギーを予測し、実行層は実測値と予測誤差を使って再計画します。

図では、タスク割り当て層が充電と帰還余裕を含めて仕事を選び、経路・作業層が区間エネルギーを予測し、実行層が実測値で予測を更新する循環を示します。

設計方式の比較

方式主な入力長所制約
残量パーセント中心SOC、電源状態実装と監視が容易負荷、温度、劣化、帰還エネルギーを表しにくい
状態ベクトル中心電圧、電流、SOC、容量、健全性など電池状態を多面的に扱える推定誤差と各項目の定義管理が必要
距離・時間比例モデル距離、走行時間初期実装が簡単速度、勾配、積載、補機負荷への対応が限定的
物理・電池モデル電流、電圧、温度、負荷条件変化を反映しやすいモデル化と校正のコストが高い
実行時再計画実測消費、SOC、残タスク予測ずれに対応できる再計画の契機と安全動作が必要

充電判断と実装の進め方

最初の実装では、タスクごとのエネルギー予算、帰還用リザーブ、充電開始条件、緊急停止または低電力モードへの移行条件を分離すると扱いやすくなります。これらを1つの閾値にまとめると、通常の充電判断と安全上の限界が混同されます。まず距離や作業時間から予算を置き、実測データでモデルを校正する構成が現実的です。

充電は、上位の判断と下位のドッキング実行を分けます。Nav2のDocking Serverは、ドックの検出、接近、ドッキング、アン・ドッキングを扱い、充電ドックを含むプラグインを構成できます。一方、どのSOCで充電を始めるか、タスクを中断するかはタスク計画や運用側の判断です。ドッキング機能だけで充電方針が決まるわけではありません。

制約と採用判断

充電開始閾値や帰還用リザーブに、全ロボット共通の値はありません。電池容量、劣化、温度、積載量、走行面、傾斜、補機、充電器の配置、タスクの緊急度に依存します。距離比例モデルの適用範囲も機体ごとに異なります。

単一ロボットで環境と負荷が安定しているなら、状態ベクトルを収集しながら、距離・時間比例の予算モデルと帰還リザーブから始められます。積載量や勾配、補機負荷が変動するなら、区間単位の予測と実行時更新を加えます。複数ロボットや充電器競合がある場合は、タスク割り当て層で充電時間と代替ロボットまで扱う必要があります。

まとめ

電力を考慮したタスク計画は、タスク割り当て、経路・作業単位の予測、実行時再計画の3層に分けるのが基本です。SOCだけでなく電池状態をベクトルとして扱い、距離だけに依存しない消費モデルを選び、実測とのずれを前提に帰還余裕と充電判断を設計します。最適な粒度は一律ではなく、負荷変動、運用台数、充電器の制約、要求される安全性によって決まります。

参考情報

実機の閾値や予測モデルは、運用データによる校正を前提に設計したいところです。

AI利用に関する注記

本サイトの記事は、複数のAIエージェントによる調査・執筆・レビューを経て公開しています。正確性と品質の向上に努めていますが、内容については必ず一次情報をご確認ください。

参考にした一次情報