自律ドッキングは、接触できたかどうかだけでは成功を判断できない点が設計上の要所です。
先に結論
ロボットの自律ドッキングでは、不確実性を一度に解消しようとせず、段階的なゲートとして扱うのが基本です。まず地図と自己位置推定を使って充電ステーション周辺のステージング地点へ移動し、次にドックに対する相対位置と姿勢を精密化します。その後、低速で接近し、接触またはドッキング状態を確認してから、最後に電気的な充電成立を検証します。
「ドックへ到達した」と「充電できている」は同じ状態ではありません。したがって、成功条件は物理接触だけでなく、許容姿勢、停止状態、ドック状態、充電状態、タイムアウトを個別に評価する設計が適しています。条件を満たせない場合は前進を続けず、停止または後退、再位置推定、制限回数内の再試行、最終的な異常通知へ遷移させます。
なぜ段階分けが必要か
充電ステーションまでの移動は、通常のナビゲーションが得意とする問題です。一方、接触直前の位置合わせでは、地図上の自己位置だけでは扱いにくい局所的な誤差や、ドック設置位置のずれが問題になります。そのため、ステージング地点を境に、地図・大域自己位置推定からドック固有の相対センサーへ重心を移します。
さらに、接触したように見えても、端子の位置ずれや接続状態によって充電が成立しない可能性があります。ドッキング判定と充電判定を分離すれば、ロボットが物理的には停止しているものの、充電できていない状態を検出できます。
前提となる用語
- 大域自己位置推定:地図上でロボットがどこにいるかを推定する機能。ステーション周辺までの経路走行に使います。
- ステージング地点:ドック固有の近距離処理へ切り替えるための待機位置です。
- 相対位置・姿勢推定:ロボットから見たドックの距離、横方向のずれ、向きなどを推定する処理です。
- ドッキング判定:物理的にドックへ到達し、所定の姿勢や停止条件を満たしたかを確認する処理です。
- 充電判定:ドックとの電気的な接続が成立し、充電状態になったかを確認する処理です。
内部の仕組み:不確実性を順にゲート化する
代表的な構成は、通常のナビゲーションでステージング地点へ移動し、その後にドック固有の処理を実行する段階構成です。汎用フレームワークでは、ステージング位置の取得、相対位置の精密化、最終接近、ドッキング状態、充電状態を別々の処理として設計できます。一方、組み込み型ロボットでは、これらが一つのDockアクションに隠蔽されることもあります。抽象化の違いであり、段階的に確認する考え方と矛盾しません。
相対位置推定に使うセンサーは一つに決まりません。実装に応じて、赤外線、カメラ、レーザー・距離センサー、LiDAR、接触センサーなどが候補になります。重要なのは、センサー名を先に固定することではなく、各段階で何を観測し、どの状態を確定させるかを明確にすることです。
flowchart LR A["ステーション同定・大域自己位置推定"] --> B["ステージング地点へ移動"] B --> C["ドック相対座標系へ切り替え"] C --> D["相対位置・姿勢を精密化"] D --> E["低速接近"] E --> F["接触・ドッキング状態を検証"] F --> G["充電状態を検証"] G --> H["ドッキング成功"] B -->|"到達不可・タイムアウト"| R["停止または再位置推定"] D -->|"姿勢誤差・観測不安定"| S["停止または後退"] E -->|"障害物・異常接触・タイムアウト"| S F -->|"停止・姿勢・ドック状態が未成立"| T["後退して制限回数内で再試行"] G -->|"充電未成立・タイムアウト"| T S --> R T -->|"再位置推定後"| C T -->|"再試行上限超過"| U["異常通知または遠隔介入"] R -->|"復旧可能"| B
図では、ステーションの同定と大域移動から始め、ステージング地点でドック基準の相対座標へ切り替えます。相対位置・姿勢を確認した後に低速接近し、接触・ドッキングを検証します。最後に充電状態を確認し、途中で条件を満たせなければ後退または再位置推定へ戻ります。
段階ごとの設計比較
| 段階 | 主に解消する不確実性 | 主な観測・センサー | 成功条件 | 失敗時の動作 |
|---|---|---|---|---|
| 大域移動 | ステーション周辺までの自己位置 | 地図、大域自己位置推定 | ステージング地点へ到達 | 経路の再計画や停止 |
| ステージング | ドック処理へ切り替えられる位置か | 地図上の位置、近距離検知 | ドック探索を開始できる | 再位置推定、停止 |
| 相対位置合わせ | ドックとの距離・横ずれ・姿勢 | 赤外線、カメラ、LiDAR、距離センサーなど | 許容範囲の相対姿勢 | 停止、後退、再推定 |
| 低速接近 | 接近中の運動と障害物 | 相対センサー、障害物検知 | 接触可能な位置まで安全に接近 | 前進中止、後退 |
| 接触・ドック判定 | 物理的な到達と停止 | 接触検知、ドック状態 | 姿勢・停止・ドック状態を確認 | 再試行または異常通知 |
| 充電確認 | 電気的な接続成立 | 充電状態、電気的フィードバック | 充電状態を確認 | 再接続、再試行、異常通知 |
この表の数値条件、たとえばステージング地点からの距離、許容横ずれ、許容角度、接近速度、タイムアウト、再試行回数には、すべてのロボットに共通する値はありません。車輪構成、ドックの機械構造、充電方式、センサー配置に合わせて決める必要があります。
使いどころと実装上の判断基準
AMRやサービスロボットを長時間運用する場合、充電開始を単一の成功フラグだけで判断する設計は避けるべきです。少なくとも、次の状態を分離して記録・評価します。
- ステーションを同定できたか
- 大域的にステージング地点へ到達したか
- ドックに対する相対位置と姿勢が許容範囲か
- 接近中に障害物や異常な接触がないか
- ロボットが停止し、ドック状態が成立したか
- 電気的に充電状態へ遷移したか
- 所定時間内に各状態へ到達したか
固定したドック座標だけに依存するのではなく、端末領域では近距離センサーでドックに対する相対姿勢を再推定する方式が適しています。反対に、どのセンサーが最も高信頼かは環境や機械構造に依存します。赤外線、カメラ、LiDAR、接触センサーの優劣を一般化せず、ドックの視認性、周辺障害物、照明、接触機構、電気的な状態取得方法を前提に選びます。
失敗しやすい点と復旧設計
失敗しやすいのは、接近中に位置や姿勢の条件を失っても前進を続けること、また接触した時点で充電成功と判断することです。相対センサーの観測が不安定になった場合、障害物を検出した場合、停止や接触の確認が取れない場合は、接近を継続せず停止または後退へ遷移させます。
後退後は、同じ制御を無条件に繰り返すのではなく、相対位置を再推定し、あらかじめ定めた回数の範囲で再試行します。それでも成立しなければ、ステージング地点へ戻る、異常停止する、遠隔介入を要求するといった状態へ移します。タイムアウトも成功条件の一部として扱うことで、センサー異常やドック側の問題による無限待機を避けられます。
安全面では、ドッキングアルゴリズムの具体的な順序を安全規格が直接決めるわけではありません。ただし、ドライバレス産業車両を対象とするISO 3691-4:2023は、速度制限、保護機能、危険源分析、リスク低減、検証を含むシステム安全要求を検討する際の基礎になります。低速接近や停止条件は、機能実装だけでなく安全設計と合わせて定義します。
どのような場合に採用すべきか
段階型のドッキング設計は、次の条件に向いています。
- 通常走行と接触直前の制御を分離したい
- ドックの位置ずれや局所的な自己位置誤差を吸収したい
- 物理的なドッキングと充電成立を別々に監視したい
- 失敗時の後退、再推定、再試行、異常通知を明確にしたい
- 複数のドックやセンサー構成をプラグインとして扱いたい
一方、必要な許容誤差や接近速度、充電状態の判定方法が未定義のままでは、フレームワークを導入しても信頼性を評価できません。まずドックの機械・電気仕様と、各状態を確定する観測信号を定義し、その後にセンサーと制御方式を選ぶのが妥当です。
まとめ
自律ドッキングで解消すべき不確実性の順序は、通常、大域自己位置推定、ドック相対の位置・姿勢、低速接近と接触、充電成立です。大域ナビゲーションでステージング地点まで移動し、近距離ではドック固有の相対センサーへ切り替えます。そして、接触・ドック状態・充電状態を分離して検証し、失敗時は停止または後退から再位置推定と再試行へ戻します。
この順序はすべてのロボットに共通する数値仕様ではありません。しかし、どの不確実性をどの観測で解消し、次の段階へ進む条件と戻る条件を何にするかを明示する設計原則として利用できます。
参考情報
- Nav2 Docking Serverの利用方法
- open-navigation/opennav_docking
- iRobot Create 3 Dock action
- TurtleBot 4 AutoDock
- ISO 3691-4:2023
位置合わせと充電成立を別の状態として扱うことが、復旧可能なドッキング設計につながります。
AI利用に関する注記
本サイトの記事は、複数のAIエージェントによる調査・執筆・レビューを経て公開しています。正確性と品質の向上に努めていますが、内容については必ず一次情報をご確認ください。