Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fetch 机器人强化学习项目

基于 Gymnasium + Stable-Baselines3 + MuJoCo 的 Fetch 机器人**抓取-放置(Pick and Place)**任务强化学习实验,用于算法工程方向实习作品展示。

项目概述

针对 Fetch 机械臂在稀疏奖励环境下难以收敛的问题,系统对比了主流离线策略(off-policy)连续控制算法与**HER(Hindsight Experience Replay)**的交互效果,验证 HER 在解决稀疏奖励冷启动中的作用,并对比不同目标采样策略(final / episodic / future)的影响。

环境

  • Fetch 机械臂仿真(MuJoCo):FetchPickAndPlaceDense-v4
  • 观察空间:dict — observation(机器人状态)、achieved_goaldesired_goalagent_position
  • 动作空间:7 维连续(6 DOF 关节 + 1 夹爪)
  • 奖励:稠密负距离奖励 reward = -||achieved_goal - desired_goal||

算法

算法 说明
SAC (Soft Actor-Critic) 最大熵 off-policy,连续控制 SOTA 基线
TD3 (Twin Delayed DDPG) 双 Q + 延迟更新的 off-policy 方法
HER (Hindsight Experience Replay) 通过"事后替换目标"将失败轨迹转为正样本,解决稀疏奖励冷启动

实验设计

脚本 算法 HER 目标采样策略
train_sac_her.py SAC episodic(默认基线)
train_sac_no_her.py SAC
train_td3_her.py TD3 episodic
train_sac_final_goal.py SAC final
train_sac_future_goal.py SAC future

项目结构

fetch_rl_project/
├── Gymnasium-Robotics/    # gymnasium-robotics 本地依赖(vendored)
├── scripts/
│   ├── train/
│   │   └── pick_place/     # 5 个训练脚本
│   └── eval/
│       ├── _recorder.py    # 评估用视频录制 wrapper
│       └── pick_place/     # 5 个评估脚本
├── models/                 # 训练好的模型(.zip)
├── logs/                   # TensorBoard 训练日志
├── outputs/
│   ├── plots/              # 训练曲线截图
│   └── videos/             # 评估录像 .mp4
├── requirements.txt
└── README.md

快速开始

1. 准备环境

conda create -n fetch_rl python=3.10 -y
conda activate fetch_rl
pip install -r requirements.txt
pip install -e Gymnasium-Robotics/

2. 训练(WSL / Linux)

cd fetch_rl_project
python scripts/train/pick_place/train_sac_her.py

3. 查看训练曲线

tensorboard --logdir logs/pick_place/

4. 评估

python scripts/eval/pick_place/eval_sac_her.py

主要结论

  1. HER 是稀疏奖励环境的关键:不加 HER 的 SAC 几乎无法收敛,成功率为 0。
  2. SAC + HER 优于 TD3 + HER:在相同时钟步数下,SAC 收敛更快、成功率更高,得益于最大熵探索。
  3. 目标采样策略影响收敛速度future 采样多样性最高、收敛最快;episodic 为平衡选择;final 仅复用最终状态,探索较弱。

依赖

  • gymnasium >= 1.3.0
  • stable-baselines3 >= 2.9.0
  • mujoco >= 3.10.0
  • tensorboard, imageio, matplotlib

环境说明

训练/评估代码需在 Linux(WSL) 环境下运行,Windows 原生不支持 MuJoCo 渲染。

⚠️ 训练需较长时间(约 100 万步),建议在非工作时间运行。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages