低雷诺数多连杆微泳机器人强化学习研究工程。
这个仓库已经从最初的单一 flagella_reorient 实验目录,演化成一个共享物理求解器 + 多个平行训练 primitive 的研究工作台。当前核心思路是:
- 把“推进”和“转向”拆成独立技能训练
- 让每个策略只解决一个明确问题
- 再在上层控制逻辑里组合这些 primitive
RL_Research/
calculate_v.py # 共享:正则化 Stokeslet + 运动学求解器
discretization.py # 共享:离散化预处理
*.pt # 共享:几何/映射预处理产物
swimmer.py # 历史保留环境
train.py # 历史保留训练入口
visualize_reorient.py # 历史保留可视化
Unbias_Propel/ # 当前:无偏直线推进策略
calculate_v.py
discretization.py
swimmer.py
train.py
visualize_reorient.py
requirements-mac-myenv-equivalent.txt
setup_mac_myenv_equivalent.sh
README.md
*.pt
Turn_Primitive/ # 当前:真正意义上的转向 primitive
calculate_v.py
discretization.py
swimmer.py
train.py
visualize_turn.py
README.md
*.pt
目标:训练机器人学会持续推进,并在窗口尺度上保持整体前进方向稳定。
它不是“强行要求每一步都朝同一方向”,而是允许鞭毛式周期摆动,同时压制长期偏航。
当前特点:
- reset-free 训练
pressure_reward维持推进能力- 用窗口级方向一致性惩罚抑制长期弯行
- 观测已与当前奖励核心量对齐
- 可视化支持:
- 全历史质心轨迹
- 近期渐隐质心轨迹
- 当前奖励分解和窗口方向信息
目标:训练机器人学会尽可能少平移地改变整体朝向。
当前特点:
- 非 reset-free,而是技能型 episode
- 用全身 10 根连杆平均角定义整体朝向
- 目标是相对转角,而不是固定世界角
- 奖励以:
- 误差减少
- 最终对齐
- 平移惩罚
- 过冲/角速度惩罚 为主
设计目标不是“朝某个方向前进”,而是:
先把身体转过去,再稳定下来。
仓库最核心的共享组件。
作用:
- 使用正则化 Stokeslet 方法求解低雷诺数流体中的机器人运动
- 输入:机器人形态 + 关节动作
- 输出:
- 平移速度
- 旋转角速度
- 压力信息
预处理脚本。
作用:
- 生成稀疏/稠密离散点映射
- 输出一组
.pt文件,供calculate_v.py使用
如果在新机器/新环境上部署,建议优先跑:
python discretization.pycd Unbias_Propel
python train.py --cpus 4 --threads 6cd Unbias_Propel
python visualize_reorient.py --checkpoint <checkpoint_dir_or_file> --cpus 2 --threads 4cd Turn_Primitive
python train.py --cpus 4 --threads 6cd Turn_Primitive
python visualize_turn.py --checkpoint <checkpoint_dir_or_file> --cpus 2 --threads 4参数说明:
--cpus:传给ray.init(...)的 CPU 资源数量--threads:传给物理求解器torch.set_num_threads(...)的 CPU 线程数
如果不传:
--cpus使用 Ray 默认--threads使用 PyTorch / 系统默认线程数
Unbias_Propel/ 目录下已经附带:
requirements-mac-myenv-equivalent.txtsetup_mac_myenv_equivalent.sh
用于在 Mac 上创建一个尽量贴近 Windows myenv 的虚拟环境。
运行方式:
cd Unbias_Propel
bash setup_mac_myenv_equivalent.sh这个仓库现在是一个研究工作台,不是单任务脚本目录。
它包含:
- 共享低雷诺数物理求解器
- 多个并行 RL primitive
- 环境、奖励、日志、可视化的持续迭代版本
后续继续扩展时,建议保持这种结构:
PropelTurn- 未来还可以有:
SteerTrack_PathPrimitive_Composer
这样整个工程会越来越清晰。