DRLによる自律移動ロボットの経路追従
概要
このリポジトリは「Path Following for Autonomous Mobile Robots with Deep Reinforcement Learning」の付随コードで、Pure PursuitとSACを組み合わせたハイブリッド制御アプローチを提供します。Pure Pursuitで進行方向の舵取り(ステアリング)を決め、SAC(Soft Actor–Critic)ベースのポリシーが線速度を動的に決定することで、経路に対する誤差・曲率・先行点距離などの「経路相対の状態」をもとに速度を調整します。100% Python実装で、シミュレーション上で安全かつ効率的に事前定義された経路を追従することを目的としています。
リポジトリの統計情報
- スター数: 3
- フォーク数: 0
- ウォッチャー数: 3
- コミット数: 7
- ファイル数: 9
- メインの言語: Python
主な特徴
- Pure Pursuit(幾何学ベース)でステアリング制御、SACで速度制御を分担するハイブリッド設計。
- ロボットの状態を「経路相対」で表現し、速度ポリシーは経路追従性能を直接改善するよう設計。
- 100% Python実装で研究再現性が高く、実験の可視化・比較用プロットが同梱。
- 論文(DOIあり)に対応する実装と評価スクリプトを含む。
技術的なポイント
本プロジェクトの核は「制御分担」による学習効率向上です。ステアリングは確立されたPure Pursuitアルゴリズムに任せることで、学習対象の自由度を線速度制御に限定し、SACが扱う状態空間・行動空間を削減しています。これによりサンプル効率が向上し、学習が安定します。入力は経路に対する横方向・角度ズレ、目標先行点までの距離、現在速度などの相対値で構成され、報酬設計は追従誤差の最小化、速度の効率性、安全性(例:急減速回避)を考慮した複合的な項で設計されていることが想定されます。SACは確率的ポリシーを用いるため探索と安定性を両立し、エントロピー正則化により過度な決定論的振る舞いを避けます。シミュレーションの運動学モデル(kinematics.py)により現実的な非線形運動が再現され、param_fcn.pyなどで経路やパラメータを関数的に生成/変更できるため、評価時に様々な経路形状や初期条件での頑健性を試せます。plot_comparison.pyは学習済みポリシーとベースライン(例えば一定速度や古典制御)を比較する可視化ツールで、性能指標(追従誤差、到達時間、安定性)をグラフ化して解析を支援します。全体的に「既存の確実な制御手法+DRLで不足する要素を補う」設計思想が特徴です。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- assets: dir
- kinematics.py: file
- param_fcn.py: file
- plot_comparison.py: file
…他 4 ファイル
(assets には経路データや図表、学習済みモデルや設定ファイルが置かれている想定。kinematics.py はロボットの運動学モデル、param_fcn.py は経路やパラメータを生成・管理、plot_comparison.py は実験結果の比較プロットを生成します。)
使い方と実験の流れ
典型的な実験フローは次の通りです。まず param_fcn.py で追従させたい経路や初期条件を設定し、kinematics.py を使ってシミュレーション環境を立ち上げます。SAC の学習ループで各ステップの観測(経路相対の状態)を取り、行動として線速度を出力。ステアリングは Pure Pursuit サブモジュールで算出されます。学習中は報酬やログを保存し、学習後は plot_comparison.py で学習済みポリシーと基準制御を比較します。論文に基づくパラメータや評価指標(追従誤差、走行時間、速度プロファイルの滑らかさ等)を再現することで、結果の再現性と論文検証が可能です。
拡張性と実運用への道筋
- 実ロボットへ移行する場合は、運動ダイナミクス、センサノイズ、遅延を導入したドメインランダム化が必要です。
- センサ入力(LiDARやカメラ)を用いた経路認識や障害物回避モジュールを統合すれば、より現実的な運用が可能です。
- SAC の実装を安定化するためにリプレイバッファの管理、正規化、学習率スケジュールのチューニングが有効です。
まとめ
Pure Pursuit と SAC のハイブリッドで効率良く学習しやすい経路追従を実現する、研究再現性の高いPython実装です。
リポジトリ情報:
- 名前: DRL-Autonomous-Path-Following
- 説明: Deep Reinforcement Learning (DRL) for autonomous mobile robot path following in a 100% Python environment. A hybrid controller combines Pure Pursuit for steering with a Soft Actor–Critic (SAC) policy for speed control, enabling the robot to follow predefined paths safely and efficiently in simulation.
- スター数: 3
- 言語: Python
- URL: https://github.com/cao-yu/DRL-Autonomous-Path-Following
- オーナー: cao-yu
- アバター: https://avatars.githubusercontent.com/u/165871300?v=4
READMEの抜粋:
DRL-Autonomous-Path-Following
This repository contains the source code for the paper “Path Following for Autonomous Mobile Robots with Deep Reinforcement Learning”.
🚀 Highlights
- Pure Pursuit + SAC: Pure Pursuit handles steering, while a SAC-based policy adaptively controls the linear velocity.
- Path-relative speed control: The policy uses the robot’s state relative to…