[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-rail-berkeley--serl":3,"tool-rail-berkeley--serl":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",157379,2,"2026-04-15T23:32:42",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":84,"forks":85,"last_commit_at":86,"license":87,"difficulty_score":88,"env_os":89,"env_gpu":90,"env_ram":91,"env_deps":92,"category_tags":101,"github_topics":76,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":103,"updated_at":104,"faqs":105,"releases":143},7905,"rail-berkeley\u002Fserl","serl","SERL: A Software Suite for Sample-Efficient Robotic Reinforcement Learning","SERL 是一套专为机器人强化学习设计的开源软件套件，旨在解决机器人在执行抓取、操作等复杂任务时“样本效率低”的核心痛点。传统强化学习往往需要海量的试错数据才能收敛，而 SERL 通过集成先进的算法与工程优化，显著减少了训练所需的数据量和时间，让机器人能更快速地从少量经验中掌握技能。\n\n这套工具主要面向机器人领域的研究人员与开发者，特别是那些希望将强化学习算法部署到真实机械臂（如 Franka）上的团队。SERL 的独特之处在于其高效的系统架构：它采用“演员 - 学习者”（Actor-Learner）异步分离设计，利用 agentlace 进行网络通信，实现了训练与推理的并行化处理，既提升了灵活性又加速了迭代过程。此外，SERL 支持在线人工干预功能，允许用户在训练过程中通过空间鼠标等设备实时纠正机器人动作，结合离线演示数据，进一步大幅提升了训练速度和策略稳定性。\n\n值得注意的是，原 SERL 项目目前已逐步演进为新一代项目 HIL-SERL，建议新用户关注最新进展以获取更强大的人机协作强化学习能力。无论是用于仿真环境验证还是真机实操，SERL 都为高效机器人学习提供了坚实的技术底座。","# SERL: A Software Suite for Sample-Efficient Robotic Reinforcement Learning\n\n![](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fworkflows\u002Fpre-commit\u002Fbadge.svg)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProject-Page-a)](https:\u002F\u002Fserl-robot.github.io\u002F)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1302866684612444190?label=Join%20Us%20on%20Discord&logo=discord&color=7289da)](https:\u002F\u002Fdiscord.gg\u002FG4xPJEhwuC)\n\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frail-berkeley_serl_readme_d268a573f352.gif)\n\n**Webpage: [https:\u002F\u002Fserl-robot.github.io\u002F](https:\u002F\u002Fserl-robot.github.io\u002F)**\n\n\n**🔴 IMPORTANT 🔴: This repo is being deprecated. Please check out our new project HIL-SERL: [https:\u002F\u002Fhil-serl.github.io\u002F](https:\u002F\u002Fhil-serl.github.io\u002F)**\n\n\nSERL provides a set of libraries, env wrappers, and examples to train RL policies for robotic manipulation tasks. The following sections describe how to use SERL. We will illustrate the usage with examples.\n\n🎬: [SERL video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Um4CjBmHdcw), [additional video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=17NrtKHdPDw) on sample efficient RL.\n\n**Table of Contents**\n- [SERL: A Software Suite for Sample-Efficient Robotic Reinforcement Learning](#serl-a-software-suite-for-sample-efficient-robotic-reinforcement-learning)\n  - [Installation](#installation)\n  - [Overview and Code Structure](#overview-and-code-structure)\n  - [Quick Start with SERL in Sim](#quick-start-with-serl-in-sim)\n  - [Run with Franka Arm on Real Robot](#run-with-franka-arm-on-real-robot)\n  - [Contribution](#contribution)\n  - [Citation](#citation)\n\n## Major updates\n#### June 24, 2024\nFor people who use SERL for tasks involving controlling the gripper (e.g.,pick up objects), we strong recommend adding a small penalty to the gripper action change, as it will greatly improves the training speed.\nFor detail, please refer to: [PR #65](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fpull\u002F65).\n\n\nFurther, we also recommend  providing interventions online during training in addition to loading the offline demos. If you have a Franka robot and SpaceMouse, this can be as easy as just touching the SpaceMouse during training.\n\n#### April 25, 2024\nWe fixed a major issue in the intervention action frame. See release [v0.1.1](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Freleases\u002Ftag\u002Fv0.1.1) Please update your code with the main branch.\n\n## Installation\n1. **Setup Conda Environment:**\n    create an environment with\n    ```bash\n    conda create -n serl python=3.10\n    ```\n\n2. **Install Jax as follows:**\n    - For CPU (not recommended):\n        ```bash\n        pip install --upgrade \"jax[cpu]\"\n        ```\n\n    - For GPU:\n        ```bash\n        pip install --upgrade \"jax[cuda12_pip]==0.4.35\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Fjax_cuda_releases.html\n        ```\n\n    - For TPU\n        ```bash\n        pip install --upgrade \"jax[tpu]\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Flibtpu_releases.html\n        ```\n    - See the [Jax Github page](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fjax) for more details on installing Jax.\n\n3. **Install the serl_launcher**\n    ```bash\n    cd serl_launcher\n    pip install -e .\n    pip install -r requirements.txt\n    ```\n\n## Overview and Code Structure\n\nSERL provides a set of common libraries for users to train RL policies for robotic manipulation tasks. The main structure of running the RL experiments involves having an actor node and a learner node, both of which interact with the robot gym environment. Both nodes run asynchronously, with data being sent from the actor to the learner node via the network using [agentlace](https:\u002F\u002Fgithub.com\u002Fyouliangtan\u002Fagentlace). The learner will periodically synchronize the policy with the actor. This design provides flexibility for parallel training and inference.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frail-berkeley_serl_readme_9628216135c0.png\" width=\"80%\"\u002F>\n\u003C\u002Fp>\n\n**Table for code structure**\n\n| Code Directory | Description |\n| --- | --- |\n| [serl_launcher](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher) | Main code for SERL |\n| [serl_launcher.agents](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher\u002Fserl_launcher\u002Fagents\u002F) | Agent Policies (e.g. DRQ, SAC, BC) |\n| [serl_launcher.wrappers](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher\u002Fserl_launcher\u002Fwrappers) | Gym env wrappers |\n| [serl_launcher.data](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher\u002Fserl_launcher\u002Fdata) | Replay buffer and data store |\n| [serl_launcher.vision](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher\u002Fserl_launcher\u002Fvision) | Vision related models and utils |\n| [franka_sim](.\u002Ffranka_sim) | Franka mujoco simulation gym environment |\n| [serl_robot_infra](.\u002Fserl_robot_infra\u002F) | Robot infra for running with real robots |\n| [serl_robot_infra.robot_servers](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_robot_infra\u002Frobot_servers\u002F) | Flask server for sending commands to robot via ROS |\n| [serl_robot_infra.franka_env](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_robot_infra\u002Ffranka_env\u002F) | Gym env for real franka robot |\n\n## Quick Start with SERL in Sim\n\nWe provide a simulated environment for trying out SERL with a franka robot.\n\nCheck out the [Quick Start with SERL in Sim](\u002Fdocs\u002Fsim_quick_start.md)\n - [Training from state observation example](\u002Fdocs\u002Fsim_quick_start.md#1-training-from-state-observation-example)\n - [Training from image observation example](\u002Fdocs\u002Fsim_quick_start.md#2-training-from-image-observation-example)\n - [Training from image observation with 20 demo trajectories example](\u002Fdocs\u002Fsim_quick_start.md#3-training-from-image-observation-with-20-demo-trajectories-example)\n\n## Run with Franka Arm on Real Robot\n\nWe provide a step-by-step guide to run RL policies with SERL on the real Franka robot.\n\nCheck out the [Run with Franka Arm on Real Robot](\u002Fdocs\u002Freal_franka.md)\n - [Peg Insertion 📍](\u002Fdocs\u002Freal_franka.md#1-peg-insertion-📍)\n - [PCB Component Insertion 🖥️](\u002Fdocs\u002Freal_franka.md#2-pcb-component-insertion-🖥️)\n - [Cable Routing 🔌](\u002Fdocs\u002Freal_franka.md#3-cable-routing-🔌)\n - [Object Relocation 🗑️](\u002Fdocs\u002Freal_franka.md#4-object-relocation-🗑️)\n\n## Contribution\n\nWe welcome contributions to this repository! Fork and submit a PR if you have any improvements to the codebase. Before submitting a PR, please run `pre-commit run --all-files` to ensure that the codebase is formatted correctly.\n\n## Citation\n\nIf you use this code for your research, please cite our paper:\n\n```bibtex\n@misc{luo2024serl,\n      title={SERL: A Software Suite for Sample-Efficient Robotic Reinforcement Learning},\n      author={Jianlan Luo and Zheyuan Hu and Charles Xu and You Liang Tan and Jacob Berg and Archit Sharma and Stefan Schaal and Chelsea Finn and Abhishek Gupta and Sergey Levine},\n      year={2024},\n      eprint={2401.16013},\n      archivePrefix={arXiv},\n      primaryClass={cs.RO}\n}\n```\n","# SERL：用于样本高效机器人强化学习的软件套件\n\n![](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fworkflows\u002Fpre-commit\u002Fbadge.svg)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProject-Page-a)](https:\u002F\u002Fserl-robot.github.io\u002F)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1302866684612444190?label=Join%20Us%20on%20Discord&logo=discord&color=7289da)](https:\u002F\u002Fdiscord.gg\u002FG4xPJEhwuC)\n\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frail-berkeley_serl_readme_d268a573f352.gif)\n\n**网页：[https:\u002F\u002Fserl-robot.github.io\u002F](https:\u002F\u002Fserl-robot.github.io\u002F)**\n\n\n**🔴 重要提示 🔴：本仓库即将弃用。请查看我们的新项目 HIL-SERL：[https:\u002F\u002Fhil-serl.github.io\u002F](https:\u002F\u002Fhil-serl.github.io\u002F)**\n\n\nSERL 提供了一系列库、环境封装以及示例，用于训练机器人操作任务的强化学习策略。以下章节将介绍如何使用 SERL，并通过示例说明其用法。\n\n🎬：[SERL 视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Um4CjBmHdcw)，[附加视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=17NrtKHdPDw) 讨论样本高效的强化学习。\n\n**目录**\n- [SERL：用于样本高效机器人强化学习的软件套件](#serl-a-software-suite-for-sample-efficient-robotic-reinforcement-learning)\n  - [安装](#installation)\n  - [概述与代码结构](#overview-and-code-structure)\n  - [在仿真环境中快速入门 SERL](#quick-start-with-serl-in-sim)\n  - [在真实机器人上使用 Franka 机械臂运行](#run-with-franka-arm-on-real-robot)\n  - [贡献](#contribution)\n  - [引用](#citation)\n\n## 主要更新\n#### 2024年6月24日\n对于使用 SERL 进行抓取等涉及夹爪控制的任务的用户，我们强烈建议为夹爪动作的变化添加一个小惩罚项，这将显著提高训练速度。\n详情请参阅：[PR #65](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fpull\u002F65)。\n\n\n此外，我们还建议在训练过程中除了加载离线演示数据外，同时进行在线干预。如果您拥有 Franka 机器人和 SpaceMouse，只需在训练期间轻触 SpaceMouse 即可实现这一操作。\n\n#### 2024年4月25日\n我们修复了干预动作帧中的一个重大问题。请参阅发布版本 [v0.1.1](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Freleases\u002Ftag\u002Fv0.1.1)。请将您的代码更新至主分支。\n\n## 安装\n1. **设置 Conda 环境：**\n    创建一个环境：\n    ```bash\n    conda create -n serl python=3.10\n    ```\n\n2. **按照以下方式安装 Jax：**\n    - 对于 CPU（不推荐）：\n        ```bash\n        pip install --upgrade \"jax[cpu]\"\n        ```\n\n    - 对于 GPU：\n        ```bash\n        pip install --upgrade \"jax[cuda12_pip]==0.4.35\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Fjax_cuda_releases.html\n        ```\n\n    - 对于 TPU：\n        ```bash\n        pip install --upgrade \"jax[tpu]\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Flibtpu_releases.html\n        ```\n    - 更多关于 Jax 安装的详细信息，请参阅 [Jax GitHub 页面](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fjax)。\n\n3. **安装 serl_launcher**\n    ```bash\n    cd serl_launcher\n    pip install -e .\n    pip install -r requirements.txt\n    ```\n\n## 概述与代码结构\n\nSERL 为用户提供了一组通用库，用于训练机器人操作任务的强化学习策略。运行强化学习实验的主要架构包括一个执行者节点和一个学习者节点，两者都与机器人 Gym 环境交互。这两个节点异步运行，数据通过网络使用 [agentlace](https:\u002F\u002Fgithub.com\u002Fyouliangtan\u002Fagentlace) 从执行者发送到学习者。学习者会定期与执行者同步策略。这种设计为并行训练和推理提供了灵活性。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frail-berkeley_serl_readme_9628216135c0.png\" width=\"80%\"\u002F>\n\u003C\u002Fp>\n\n**代码结构表**\n\n| 代码目录 | 描述 |\n| --- | --- |\n| [serl_launcher](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher) | SERL 的主代码 |\n| [serl_launcher.agents](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher\u002Fserl_launcher\u002Fagents\u002F) | 智能体策略（例如 DRQ、SAC、BC） |\n| [serl_launcher.wrappers](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher\u002Fserl_launcher\u002Fwrappers) | Gym 环境封装 |\n| [serl_launcher.data](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher\u002Fserl_launcher\u002Fdata) | 回放缓冲区和数据存储 |\n| [serl_launcher.vision](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_launcher\u002Fserl_launcher\u002Fvision) | 视觉相关模型和工具 |\n| [franka_sim](.\u002Ffranka_sim) | Franka Mujoco 仿真 Gym 环境 |\n| [serl_robot_infra](.\u002Fserl_robot_infra\u002F) | 用于与真实机器人配合使用的机器人基础设施 |\n| [serl_robot_infra.robot_servers](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_robot_infra\u002Frobot_servers\u002F) | 用于通过 ROS 向机器人发送命令的 Flask 服务器 |\n| [serl_robot_infra.franka_env](https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fblob\u002Fmain\u002Fserl_robot_infra\u002Ffranka_env\u002F) | 用于真实 Franka 机器人的 Gym 环境 |\n\n## 在仿真环境中快速入门 SERL\n\n我们提供了一个仿真环境，用于尝试使用 Franka 机器人运行 SERL。\n\n请参阅 [在仿真环境中快速入门 SERL](\u002Fdocs\u002Fsim_quick_start.md)\n - [基于状态观测的训练示例](\u002Fdocs\u002Fsim_quick_start.md#1-training-from-state-observation-example)\n - [基于图像观测的训练示例](\u002Fdocs\u002Fsim_quick_start.md#2-training-from-image-observation-example)\n - [结合 20 条演示轨迹的图像观测训练示例](\u002Fdocs\u002Fsim_quick_start.md#3-training-from-image-observation-with-20-demo-trajectories-example)\n\n## 在真实机器人上使用 Franka 机械臂运行\n\n我们提供了一个逐步指南，用于在真实的 Franka 机器人上使用 SERL 训练强化学习策略。\n\n请参阅 [在真实机器人上使用 Franka 机械臂运行](\u002Fdocs\u002Freal_franka.md)\n - [插销插入 📍](\u002Fdocs\u002Freal_franka.md#1-peg-insertion-📍)\n - [PCB 元件插入 🖥️](\u002Fdocs\u002Freal_franka.md#2-pcb-component-insertion-🖥️)\n - [电缆布线 🔌](\u002Fdocs\u002Freal_franka.md#3-cable-routing-🔌)\n - [物体搬运 🗑️](\u002Fdocs\u002Freal_franka.md#4-object-relocation-🗑️)\n\n## 贡献\n我们欢迎对本仓库的贡献！如果您对代码库有任何改进，请 fork 并提交 PR。在提交 PR 之前，请运行 `pre-commit run --all-files`，以确保代码格式正确。\n\n## 引用\n如果您在研究中使用了此代码，请引用我们的论文：\n\n```bibtex\n@misc{luo2024serl,\n      title={SERL: A Software Suite for Sample-Efficient Robotic Reinforcement Learning},\n      author={Jianlan Luo and Zheyuan Hu and Charles Xu and You Liang Tan and Jacob Berg and Archit Sharma and Stefan Schaal and Chelsea Finn and Abhishek Gupta and Sergey Levine},\n      year={2024},\n      eprint={2401.16013},\n      archivePrefix={arXiv},\n      primaryClass={cs.RO}\n}\n```","# SERL 快速上手指南\n\n> **⚠️ 重要提示**：本仓库（SERL）目前已停止主要维护，官方推荐迁移至新项目 **HIL-SERL** ([https:\u002F\u002Fhil-serl.github.io\u002F](https:\u002F\u002Fhil-serl.github.io\u002F))。以下指南仅适用于需要继续使用原版 SERL 的场景。\n\nSERL 是一套用于高效机器人强化学习（RL）的软件套件，专为机械臂操作任务设计。它提供了常用的库、环境封装器及示例，支持基于状态或图像观测的策略训练。\n\n## 1. 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 20.04\u002F22.04)\n*   **Python 版本**: 3.10\n*   **硬件加速**:\n    *   **GPU**: 推荐 NVIDIA GPU (需安装对应 CUDA 驱动)，用于加速训练。\n    *   **TPU**: 可选，需特定环境配置。\n    *   **CPU**: 仅用于调试，不推荐用于实际训练。\n*   **依赖管理**: 已安装 `conda` (Miniconda 或 Anaconda)。\n\n## 2. 安装步骤\n\n### 第一步：创建 Conda 环境\n创建一个名为 `serl` 的独立环境，并指定 Python 版本为 3.10：\n\n```bash\nconda create -n serl python=3.10\nconda activate serl\n```\n\n### 第二步：安装 JAX\n根据您的硬件设备选择对应的安装命令。**国内用户若遇到连接超时，可尝试配置 pip 国内镜像源（如清华源）**。\n\n*   **GPU 版本 (推荐)**:\n    ```bash\n    pip install --upgrade \"jax[cuda12_pip]==0.4.35\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Fjax_cuda_releases.html\n    # 若使用国内镜像加速 pip 包下载，可添加 -i 参数，例如：\n    # pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple --upgrade \"jax[cuda12_pip]==0.4.35\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Fjax_cuda_releases.html\n    ```\n\n*   **TPU 版本**:\n    ```bash\n    pip install --upgrade \"jax[tpu]\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Flibtpu_releases.html\n    ```\n\n*   **CPU 版本 (仅调试用)**:\n    ```bash\n    pip install --upgrade \"jax[cpu]\"\n    ```\n\n### 第三步：安装 SERL 启动器\n进入 `serl_launcher` 目录并进行本地安装：\n\n```bash\ncd serl_launcher\npip install -e .\npip install -r requirements.txt\n```\n\n## 3. 基本使用\n\nSERL 采用异步架构，包含 **Actor** (执行交互) 和 **Learner** (策略学习) 两个节点，通过 `agentlace` 进行通信。\n\n### 快速体验：仿真环境 (Sim)\n如果您没有实体机器人，可以使用内置的 Franka Mujoco 仿真环境进行测试。\n\n1.  **查看仿真快速入门文档**：\n    详细教程请参考项目内的 `\u002Fdocs\u002Fsim_quick_start.md`。\n\n2.  **典型运行场景**：\n    *   **基于状态观测训练**：适合快速验证算法逻辑。\n    *   **基于图像观测训练**：模拟真实视觉输入。\n    *   **结合演示数据训练**：加载 20 条演示轨迹（Demo Trajectories）以加速收敛。\n\n    *示例命令结构（具体脚本路径请参考文档）：*\n    ```bash\n    # 运行仿真训练示例 (伪代码，具体文件名见 docs\u002Fsim_quick_start.md)\n    python examples\u002Ftrain_sim_state.py\n    ```\n\n### 进阶使用：实体机器人 (Real Robot)\n若需在真实的 Franka 机械臂上运行：\n\n1.  **硬件要求**：Franka Emika 机械臂、SpaceMouse (用于人工干预) 及相机设备。\n2.  **配置服务**：启动 `serl_robot_infra` 中的 ROS Flask 服务器以发送控制指令。\n3.  **参考文档**：详细步骤请查阅 `\u002Fdocs\u002Freal_franka.md`，涵盖 peg insertion ( peg 插入)、PCB 组件插入等经典任务。\n\n### 💡 训练优化建议 (2024 年 6 月更新)\n*   **夹爪动作惩罚**：对于涉及夹爪控制的任务（如抓取物体），建议在奖励函数中对夹爪动作的变化量添加微小的惩罚项，这可显著提升训练速度（详见 PR #65）。\n*   **在线干预**：除了加载离线演示数据外，强烈建议在训练过程中提供在线人工干预。如果您拥有 Franka 和 SpaceMouse，只需在训练期间操作 SpaceMouse 即可实时纠正机器人行为。\n\n---\n*注：本工具采用 MIT 许可证。如需引用，请参考原 README 中的 BibTeX 格式。*","某机器人实验室的研究团队正致力于让 Franka 机械臂在真实环境中快速学会“从杂乱桌面抓取特定零件”的技能。\n\n### 没有 serl 时\n- **样本效率极低**：传统强化学习算法需要数万次甚至数十万次的真实试错才能收敛，导致机械臂长时间无效运动，严重磨损硬件。\n- **训练周期漫长**：由于缺乏高效的并行架构，数据采集与模型更新串行进行，训练一个可用策略往往需要数天甚至数周。\n- **难以融合人工干预**：当机器人陷入死循环或危险动作时，研究人员无法实时介入纠正，只能等待训练失败后重新调整参数重启。\n- **仿真到现实迁移困难**：在模拟器中训练好的策略直接部署到真机时，因物理差异导致表现大幅下滑，需大量额外微调。\n\n### 使用 serl 后\n- **样本效率显著提升**：借助 serl 内置的样本高效算法，仅需几百次真实交互即可学会稳定抓取，大幅降低硬件损耗。\n- **异步并行加速训练**：利用 serl 独特的 Actor-Learner 异步架构，数据采集与模型训练同步进行，将原本数周的训练时间缩短至数小时。\n- **支持在线人工干预**：研究人员可通过 SpaceMouse 在训练过程中实时接管机械臂，提供正确示范数据，即时修正错误策略，避免无效探索。\n- **无缝衔接真机部署**：serl 提供标准化的环境封装与预训练组件，简化了从仿真到 Franka 真机的迁移流程，策略落地更稳健。\n\nserl 通过高效的样本利用率和灵活的人机协作机制，将机器人复杂操作技能的研发周期从“周级”压缩至“小时级”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frail-berkeley_serl_d268a573.gif","rail-berkeley","Robotic AI & Learning Lab Berkeley","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Frail-berkeley_b4841e30.jpg","",null,"http:\u002F\u002Frail.eecs.berkeley.edu\u002F","https:\u002F\u002Fgithub.com\u002Frail-berkeley",[80],{"name":81,"color":82,"percentage":83},"Python","#3572A5",100,806,108,"2026-04-14T14:58:48","Apache-2.0",4,"Linux","需要 NVIDIA GPU (推荐)，需安装对应 CUDA 版本的 JAX。README 明确给出了 CUDA 12 (jax[cuda12_pip]) 的安装指令，也支持 CPU (不推荐) 和 TPU。具体显存大小未说明，但运行视觉强化学习通常建议 8GB+。","未说明",{"notes":93,"python":94,"dependencies":95},"1. 该项目已弃用，作者推荐使用新项目 HIL-SERL。\n2. 核心架构采用异步 Actor-Learner 模式，通过 agentlace 进行网络通信。\n3. 真实机器人实验需要 Franka 机械臂、SpaceMouse 以及 ROS 环境支持。\n4. 仿真环境基于 MuJoCo (franka_sim)。\n5. 建议使用 Conda 管理环境，并需注意 JAX 版本与 CUDA 版本的严格匹配。","3.10",[96,97,98,99,100],"jax>=0.4.35","agentlace","gym","flask","ros",[14,102],"其他","2026-03-27T02:49:30.150509","2026-04-16T08:17:12.509096",[106,111,116,121,125,129,134,139],{"id":107,"question_zh":108,"answer_zh":109,"source_url":110},35408,"为什么项目中使用的是 gym 而不是已停止维护的 gymnasium？","主要原因是为了保持接口的稳定性以及与其他外部或遗留仓库（如 RAIL 项目中的 Octo gym wrappers）的一致性。虽然 Gym 已不再维护，但可以通过 `import gymnasium as gym` 轻松使用 gymnasium，目前项目选择保持统一。","https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fissues\u002F44",{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},35409,"Franka 机械臂在训练过程中出现关节奇异点（Singularity）导致卡住，如何解决？","这是 Franka 机械臂重复运动后的常见问题。解决方法包括：1. 运行前确保机器人处于中立位置，特别是第一个（底部）关节要居中；2. 在 `serl_franka_controllers` 配置中增加 `joint1_nullspace_stiffness` 参数；3. 每隔 N 个 episode 使用关节重置功能。此外，务必阅读论文并正确设置参考限制（reference limiting）以减少冲击力。","https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fissues\u002F66",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},35410,"DRQ 示例中演示数据和在线经验数据为何是 50\u002F50 采样，而不是使用共享的重放缓冲区？","虽然用户提出了关于为何不使用共享重放缓冲区的疑问，但维护者主要确认了贡献代码的欢迎态度。关于具体的采样策略设计初衷，现有评论未给出详细的理论解释，通常这种分离是为了平衡演示数据的引导作用和在线探索的多样性，具体实现可参考源码中的数据采样逻辑。","https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fissues\u002F51",{"id":122,"question_zh":123,"answer_zh":124,"source_url":120},35411,"在使用预训练的 ResNet 模型时，为何使用 `spatial_learned_embeddings` 池化方法而不是标准的平均池化？","该方法曾在 Google 的 Rainbow DQN 中出现。虽然维护者在评论中未详细阐述性能提升的具体数据，但这通常是為了保留更多的空间特征信息以提升视觉策略的学习效果。在实际代码中，若使用预训练 ResNet18 编码器，默认会采用此策略处理图像输入。",{"id":126,"question_zh":127,"answer_zh":128,"source_url":120},35412,"Soft Actor-Critic (SAC) 实现中的 `backup_entropy` 参数为何设置为 False？","在 SERL 的所有实验中，`backup_entropy` 参数均被设置为 `False`。这是因为在该特定实现和实验设置下，该参数（通常用于熵正则化的备份机制）并未被启用或不影响最终结果。原始 `jaxrl_m` 实现中虽有此步骤但未包含折扣因子，而在 SERL 中直接禁用了该功能。",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},35413,"项目发布的预训练 ResNet 参数与 torchvision 中的预训练参数有何不同？为何直接使用 torchvision 的模型效果不佳？","在演示中，项目使用的是预训练且冻结（frozen）的 ResNet 编码器。如果直接使用 torchvision 的模型效果不好，可能是因为权重初始化或预处理流程的差异。用户可以通过修改代码中的 `encoder_type` 参数来选择是否对预训练模型进行微调（finetune），以适应特定任务。","https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fissues\u002F68",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},35414,"论文中提到的“可变控制频率”（variable control frequency）在代码库中是否已实现？","该功能主要针对真实世界的 Franka 机器人实现。在 Mujoco 仿真环境中，由于不需要处理真实的物理延迟和控制回路差异，因此不需要也不包含可变控制频率的实现，仿真中的 `control_dt` 和 `physics_dt` 是固定的。","https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fissues\u002F74",{"id":140,"question_zh":141,"answer_zh":142,"source_url":138},35415,"参考限制（reference limiting）功能是否仅在真实机器人训练中可用，仿真中是否支持？","参考限制主要是为了在真实机器人上减少冲击力而设计的。在仿真环境（Mujoco）中通常不需要此功能。如果你想在其他机器人上迁移此技巧，可以参考 `franka_sim\u002Fcontrollers\u002Fopspace.py` 中的相关代码实现逻辑，但在纯仿真训练中并非必须。",[144,149,154],{"id":145,"version":146,"summary_zh":147,"released_at":148},280479,"v0.1.1","@charlesxu0124 在 https:\u002F\u002Fgithub.com\u002Frail-berkeley\u002Fserl\u002Fpull\u002F38 中修复了一个重大 bug：  \n- 之前，在 `relative_env.py` 包装器中，机器人根据空间鼠标干预动作执行的 `intervene_action` 被错误地进行了变换。正确的做法是将该动作从基座坐标系转换到末端执行器坐标系，因为策略应学习以末端执行器坐标系表示的动作，而空间鼠标提供的干预动作则是基于机器人基座坐标系的。然而，实际应用的变换却是从末端执行器坐标系到基座坐标系，这导致当末端执行器与机器人基座轴线不对齐时，实验无法正常运行。\n\n相关更改涉及以下文件：\n- `serl_robot_infra\u002Ffranka_env\u002Fenvs\u002Frelative_env.py`\n- `serl_robot_infra\u002Ffranka_env\u002Fenvs\u002Fwrappers.py`\n\n更新后的代码仅在提供了干预动作时，才会向 `info` 字典中添加 `\"intervene_action\"` 键值对；否则该键不会存在。此外，代码中其他部分也已相应更新，会在访问 `info` 中的 `\"intervene_action\"` 之前先检查其是否存在。","2024-04-25T22:55:15",{"id":150,"version":151,"summary_zh":152,"released_at":153},280480,"resnet10","该文件包含在 ImageNet-1k 数据集上预训练的 ResNet-10 模型的权重。在验证集上，其准确率为 64.36%。","2023-12-22T02:06:13",{"id":155,"version":156,"summary_zh":157,"released_at":158},280481,"franka_sim_lift_cube_demos","该文件包含20条成功的抓取并抬起方块的轨迹，每条轨迹有100个时间步。这些轨迹可用于DrQ + RLPD仿真示例中，以进行模型预热和加速训练。","2023-12-21T23:17:58"]