ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

机器人操纵框架上手指南:从零跑通 HIL-SERL 人机协作强化学习

机器人操纵框架上手指南:从零跑通 HIL-SERL 人机协作强化学习 机器人操纵框架上手指南从零跑通 HIL-SERL 人机协作强化学习【免费下载链接】hil-serl项目地址: https://gitcode.com/gh_mirrors/hi/hil-serlHIL-SERL 是一套人机协作强化学习的机器人操纵框架它用少量人类演示加间歇性人工纠正来加速强化学习收敛让 Franka 机械臂以接近 100% 的成功率完成插内存条这类精确操纵任务。如果你有 Franka 硬件本文带你从克隆仓库走到能出评估结果的一次完整训练。克隆后第一步30 秒看懂仓库四个角落先别读代码按你会在哪一步用到它来看。克隆仓库git clone https://gitcode.com/gh_mirrors/hi/hil-serl后你会依次碰到这四个角落examples/—— 所有命令的主战场。每个任务如ram_insertion自带一个文件夹里面是config.py、run_actor.sh、run_learner.sh顶层则放着收数据、记演示、训分类器三个入口脚本真正跑训练的是train_rlpd.py。serl_launcher/—— 被上面脚本调用的引擎室策略SAC、BC在agents/重放缓冲在data/视觉骨干网络在vision/。serl_robot_infra/—— 和真机械臂对话的部分robot_servers/里跑一个 Flask 服务器替训练代码通过 ROS 向机械臂发指令franka_env/是训练侧对接的 gym 环境训练代码与真实机器人之间的标准接口层。docs/—— 一份 Franka 全流程走查文档是全仓库最该通读的材料。机械臂不动时就按这条链路逐段排查控制器 → 服务器 → gym 环境 → 策略。环境搭建从 conda 到 Franka 服务器的三步建环境conda create -n hilserl python3.10再装 JAX强烈建议 GPU 版CPU 上训练不现实。装主框架进入 serl_launcher/ 目录执行pip install -e .并装好 requirements.txt 里的依赖。装机器人侧按 serl_robot_infra/ 的 README 装好 libfranka、franka_ros 与阻抗控制器。之后启动服务器在 robot_servers/ 下跑你左臂或右臂对应的 launch 脚本它会同时拉起 ROS 控制器和 HTTP 服务器。用 curl 查一下当前末端位姿能返回数字说明机械臂侧就绪。⚠️ 动手前两件小事先给末端负载标定腕上装相机后质量变了并在 Franka Desk 里解锁并开启 FCI。三个脚本各管什么收数据、记演示、训分类器执行顺序是固定的先有奖励数据再有演示最后才轮到训练。以ram_insertion为例收成功/失败数据—— 在examples/下运行python record_success_fail.py --exp_name ram_insertion --successes_needed 200。跑起来后按住空格键的那段时间会被标为正样本其余默认全负。建议负样本是正样本的 2~3 倍把所有失败模式都覆盖进去数据落在classifier_data/。训奖励分类器—— 到任务文件夹运行python ../../train_reward_classifier.py --exp_name ram_insertion模型存进classifier_ckpt/。它的职责是看相机画面回答成没成功。记演示—— 接上空间鼠标运行python ../../record_demos.py --exp_name ram_insertion --successes_needed 20。每个回合由奖励分类器自动判定成败凑齐 20 条成功演示即可。接着编辑run_actor.sh和run_learner.sh里的checkpoint_path与demo_path分别bash run_actor.sh、bash run_learner.sh起两个节点actor 在环境里跑策略采数据learner 负责更新策略两者经 agentlace 异步同步——这是整个框架的核心设计训练途中空间鼠标用来纠正策略先让它探索一段再把它往插口方向引导评估时给 run_actor.sh 加上--eval_checkpoint_step和--eval_n_trajs参数就能复测某个检查点。不改代码只调这几个参数任务参数都集中在该任务的 config.py 里分EnvConfig机器人与相机和TrainConfig训练侧两块。新手通常只动这些参数位置管什么SERVER_URLEnvConfig你的 franka_server 地址REALSENSE_CAMERAS/IMAGE_CROPEnvConfig相机序列号与裁切区域TARGET_POSE/GRASP_POSE/RESET_POSEEnvConfig关键位姿用 curl 的 getpos_euler 采集ABS_POSE_LIMIT_HIGH/LOWEnvConfig探索安全边界防止机械臂甩出工作区image_keys/classifier_keysTrainConfig策略和分类器分别看哪路相机流demo_path、checkpoint_pathrun_*.sh演示路径、检查点存放位置batch_size、max_steps、重放缓冲容量等训练超参在 experiments/config.py 里有默认值先不用碰。仓库里唯一的 YAML 是 egg_flip_controller/ 下的egg_flip_controller.yaml只服务翻蛋任务的力矩控制器普通任务不用碰。新手收束两条建议与下一步动作别嫌奖励分类器麻烦。演示阶段如果它把没插进去判成成功假阳性会直接毒化训练——看到误判就去补采对应失败模式的数据这比调判定阈值更有效。跟着走查文档练手。docs/franka_walkthrough.md 把插内存条和插 USB 两步流程写得很细双手传递和翻蛋的说明还在持续补充中。那么下一步就打开examples/experiments/ram_insertion/config.py把服务器地址和你的相机序列号填进去——环境装好之后这是你该做的第一件事。【免费下载链接】hil-serl项目地址: https://gitcode.com/gh_mirrors/hi/hil-serl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表