[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-nicrusso7--rex-gym":3,"similar-nicrusso7--rex-gym":104},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":19,"owner_email":20,"owner_twitter":18,"owner_website":18,"owner_url":21,"languages":22,"stars":31,"forks":32,"last_commit_at":33,"license":34,"difficulty_score":35,"env_os":36,"env_gpu":36,"env_ram":36,"env_deps":37,"category_tags":45,"github_topics":48,"view_count":35,"oss_zip_url":18,"oss_zip_packed_at":18,"status":69,"created_at":70,"updated_at":71,"faqs":72,"releases":103},8190,"nicrusso7\u002Frex-gym","rex-gym","OpenAI Gym environments for an open-source quadruped robot (SpotMicro)","rex-gym 是一套专为开源四足机器人 Rex（基于 SpotMicro 设计）打造的 OpenAI Gym 仿真环境工具包。它旨在解决强化学习算法从虚拟仿真到实体机器人部署的“鸿沟”难题，让用户能够在 PyBullet 物理引擎中训练机器人掌握行走、平衡等通用任务，并将学到的控制策略无缝迁移至真实的 3D 打印机器人上，无需繁琐的人工参数微调。\n\n该项目非常适合机器人开发者、强化学习研究人员以及高校师生使用。无论是希望验证新算法的科研人员，还是想动手打造智能机器狗的硬件爱好者，都能通过 rex-gym 快速搭建实验场景。其技术亮点在于提供了完整的闭环工作流：不仅包含高精度的 URDF 机器人模型（支持基础版及搭载机械臂的扩展版），还内置了基于 PPO 算法的智能体实现与命令行训练工具。用户可灵活切换开环控制与逆运动学模式，轻松执行批量训练或回放预训练策略，极大地降低了四足机器人研发的技术门槛与试错成本。","# Rex: an open-source quadruped robot\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_1daefc75c321.gif)\n\nThe goal of this project is to train an open-source 3D printed quadruped robot exploring \n`Reinforcement Learning` and `OpenAI Gym`. The aim is to let the robot learns domestic and generic tasks in the simulations and then \nsuccessfully transfer the knowledge (`Control Policies`) on the real robot without any other manual tuning.\n\nThis project is mostly inspired by the incredible works done by Boston Dynamics.\n\n## Related repositories\n[rexctl](https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frexctl) - A CLI application to bootstrap and control Rex robot running the trained `Control Policies`.\n\n[rex-models](https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frex-models) - A web URDF visualizer. Collection of Rex robot models. \n\n# Rex-gym: OpenAI Gym environments and tools\nThis repository contains a collection of `OpenAI Gym Environments` used to train Rex, the Rex URDF model, \nthe learning agent implementation (PPO) and some scripts to start the training session and visualise the learned `Control Polices`.\nThis CLI application allows batch training, policy reproduction and single training rendered sessions.\n\n# Installation\nCreate a `Python 3.7` virtual environment, e.g. using `Anaconda`\n```\nconda create -n rex python=3.7 anaconda\nconda activate rex\n```\n\n## PyPI package\nInstall the public `rex-gym` package:\n```\npip install rex_gym\n```\n\n## Install from source\nClone this repository and run from the root of the project:\n```\npip install .\n```\n\n# CLI usage\nRun ``` rex-gym --help ``` to display the available commands and ``` rex-gym COMMAND_NAME --help ``` to show the help \nmessage for a specific command.\n\nUse the `--arg` flag to eventually set the simulation arguments. For a full list check out the [environments parameters](#environments-parameters).\n\nTo switch between the `Open Loop` and the `Bezier controller (inverse kinematics)` modes, just append either the `--open-loop` or `--inverse-kinematics` flags.\n```\nrex-gym COMMAND_NAME -ik\nrex-gym COMMAND_NAME -ol\n```\nFor more info about the modes check out [the learning approach](#learning-approach).\n\n## Policy player: run a pre-trained agent\nTo start a pre-trained agent (play a learned `Control Policy`):\n```\nrex-gym policy --env ENV_NAME\n```\n\n## Train: Run a single training simulation\nTo start a single agent rendered session (`agents=1`, `render=True`):\n```\nrex-gym train --playground True --env ENV_NAME --log-dir LOG_DIR_PATH\n```\n\n## Train: Start a new batch training simulation\nTo start a new batch training session:\n```\nrex-gym train --env ENV_NAME --log-dir LOG_DIR_PATH\n```\n\n# Robot platform\n## Mark 1\nThe robot used for this first version is the [Spotmicro](https:\u002F\u002Fwww.thingiverse.com\u002Fthing:3445283) made by [Deok-yeon Kim](https:\u002F\u002Fwww.thingiverse.com\u002FKDY0523\u002Fabout).\n\nI've printed the components using a Creality Ender3 3D printer, with PLA and TPU+.\n\n![](https:\u002F\u002Fcamo.githubusercontent.com\u002Fcf4858999d5f9ffd1b4e9dfcf0cb43cc6505c890\u002F68747470733a2f2f692e696d6775722e636f6d2f446e43303548572e6a7067)\n\nThe hardware used is listed in this [wiki](https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frexctl\u002Fwiki\u002FMark-I).\n\nThe idea is to extend the robot adding components like a robotic arm on the top of the rack and a LiDAR sensor in the next versions alongside \nfixing some design issue to support a better (and easier) calibration and more reliable servo motors.\n\n# Simulation model\n\n## Base model\nRex is a 12 joints robot with 3 motors (`Shoulder`, `Leg` and `Foot`) for each leg. \n\nThe robot `base` model is imported in `pyBullet` using an [URDF file](rex_gym\u002Futil\u002Fpybullet_data\u002Fassets\u002Furdf\u002Frex.urdf). \n\nThe servo motors are modelled in the `model\u002Fmotor.py` class.\n\n![rex bullet](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_90e372cc4269.png)\n\n## Robotic arm\nThe `arm` model has the open source 6DOF robotic arm [Poppy Ergo Jr](https:\u002F\u002Fgithub.com\u002Fpoppy-project\u002Fpoppy-ergo-jr) equipped on the top of the\nrack.\n\n![rex arm](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_6c1d39de90d1.png)\n\nTo switch between `base` and `arm` models use the `--mark` flag.\n\n# Learning approach\nThis library uses the `Proximal Policy Optimization (PPO)` algorithm with a hybrid policy defined as: \n\n```a(t, o) = a(t) + π(o)```\n\nIt can be varied continuously from fully user-specified to entirely learned from scratch. \nIf we want to use a user-specified policy, we can set both the lower and the upper bounds of `π(o)` to be zero. \nIf we want a policy that is learned from scratch, we can set `a(t) = 0` and give the feedback component `π(o)` a wide output range.\n\nBy varying the open loop signal and the output bound of the feedback component, we can decide how much user control is applied to the system. \n\nA twofold approach is used to implement the Rex `Gym Environments`: `Bezier controller` and `Open Loop`.\n\nThe `Bezier controller` implements a fully user-specified policy. The controller uses the `Inverse Kinematics` model (see `model\u002Fkinematics.py`) \nto generate the gait.\n\nThe `Open Loop` mode consists, in some cases, in let the system lean from scratch (setting the open loop component `a(t) = 0`) while others \njust providing a simple trajectory reference (e.g. `a(t) = sin(t)`).\n\nThe purpose is to compare the learned policies and scores using those two different approach.\n\n# Tasks\nThis is the list of tasks this experiment want to cover:\n\n1. Basic controls:\n    1. **Static poses - Frame a point standing on the spot.**\n    - [x] Bezier controller\n    - [ ] Open Loop signal\n    2. **Gallop**\n        - forward\n        - [x] Bezier controller\n        - [x] Open Loop signal\n        - backward\n        - [ ] Bezier controller\n        - [ ] Open Loop signal\n    3. **Walk**\n        - forward\n        - [x] Bezier controller\n        - [x] Open Loop signal\n        - backward\n        - [x] Bezier controller\n        - [ ] Open Loop signal\n    4. **Turn - on the spot**\n     - [x] Bezier controller\n     - [x] Open Loop signal\n    5. **Stand up - from the floor**\n    - [ ] Bezier controller\n    - [x] Open Loop signal\n2. Navigate uneven terrains:\n    - [x] Random heightfield, hill, mount\n    - [ ] Maze\n    - [ ] Stairs\n3. **Open a door**\n4. **Grab an object**\n5. **Fall recovery**\n6. **Reach a specific point in a map**\n7. **Map an open space**\n\n# Terrains\nTo set a specific terrain, use the `--terrain` flag. The default terrain is the standard `plane`. This feature is quite useful to \ntest the policy robustness.\n\n## Random heightfield\nUse the `--terrain random` flag to generate a random heighfield pattern. This pattern is updated at every 'Reset' step.\n\n![hf](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_a5c13631e186.gif)\n\n## Hills\nUse the `--terrain hills` flag to generate an uneven terrain.\n\n![hills](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_0edf29167f27.gif)\n\n## Mounts\nUse the `--terrain mounts` flag to generate this scenario.\n\n![mounts](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_28c5a961f247.gif)\n\n## Maze\nUse the `--terrain maze` flag to generate this scenario.\n\n![maze](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_ee0602953be0.gif)\n\n# Environments\n## Basic Controls: Static poses\nGoal: Move Rex base to assume static poses standing on the spot.\n\n### Inverse kinematic\nThe gym environment is used to learn how to gracefully assume a pose avoiding too fast transactions.\nIt uses a one-dimensional `action space` with a feedback component `π(o)` with bounds `[-0.1, 0.1]`. \nThe feedback is applied to a sigmoid function to orchestrate the movement.\nWhen the `--playground` flag is used, it's possible to use the pyBullet UI to manually set a specific pose altering the robot base position \n(`x`,`y`,`z`) and orientation (`roll`, `pitch`, `jaw`).\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_2d6d965e962e.gif)\n\n## Basic Controls: Gallop\nGoal: Gallop straight on and stop at a desired position.\n\nIn order to make the learning more robust, the Rex target position is randomly chosen at every 'Reset' step.\n\n### Bezier controller\nThis gym environment is used to learn how to gracefully start the gait and then stop it after reaching the target position (on the `x` axis).\nIt uses two-dimensional `action space` with a feedback component `π(o)` with bounds `[-0.3, 0.3]`. The feedback component is applied to two ramp functions \nused to orchestrate the gait. A correct start contributes to void the drift effect generated by the gait in the resulted learned policy.   \n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_2d3d918196c2.gif)\n\n### Open Loop signal\nThis gym environment is used to let the system learn the gait from scratch. The `action space` has 4 dimensions, two for the front legs and feet \nand two for the rear legs and feet, with the feedback component output bounds `[−0.3, 0.3]`.\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_13b323b86d42.gif)\n\n## Basic Controls: Walk\nGoal: Walk straight on and stop at a desired position.\n\nIn order to make the learning more robust, the Rex target position is randomly chosen at every 'Reset' step.\n\n### Bezier controller\nThis gym environment is used to learn how to gracefully start the gait and then stop it after reaching the target position (on the `x` axis).\nIt uses two-dimensional `action space` with a feedback component `π(o)` with bounds `[-0.4, 0.4]`. The feedback component is applied to two ramp functions \nused to orchestrate the gait. A correct start contributes to void the drift effect generated by the gait in the resulted learned policy.\n\n#### Forward\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_31ae903147e2.gif)  \n\n#### Backwards\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_1dbd42e737e0.gif)\n\n### Open Loop signal\nThis gym environment uses a sinusoidal trajectory reference to alternate the Rex legs during the gait. \n\n```\nleg(t) = 0.1 cos(2π\u002FT*t)\nfoot(t) = 0.2 cos(2π\u002FT*t)\n```\nThe feedback component has very small bounds: `[-0.01, 0.01]`. A ramp function are used to start and stop the gait gracefully.\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_f5ae54941c87.gif)\n\n## Basic Controls: Turn on the spot\nGoal: Reach a target orientation turning on the spot.\n\nIn order to make the learning more robust, the Rex start orientation and target are randomly chosen at every 'Reset' step.\n\n### Bezier controller\nThis gym environment is used to optimise the `step_length` and `step_rotation` arguments used by the `GaitPlanner` to implement the 'steer' gait.\nIt uses a two-dimensional `action space` with a feedback component `π(o)` with bounds `[-0.05, 0.05]`.\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_05fcbfcca348.gif)\n\n### Open loop\nThis environment is used to learn a 'steer-on-the-spot' gait, allowing Rex to moving towards a specific orientation. \nIt uses a two-dimensional `action space` with a small feedback component `π(o)` with bounds `[-0.05, 0.05]` to optimise the `shoulder` and `foot` angles\nduring the gait. \n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_bf7ec6090109.gif)\n\n## Basic Controls: Stand up\nGoal: Stand up starting from the standby position\nThis environment introduces the `rest_postion`, ideally the position assumed when Rex is in standby. \n\n### Open loop\nThe `action space` is equals to 1 with a feedback component `π(o)` with bounds `[-0.1, 0.1]` used to optimise the signal timing. \nThe signal function applies a 'brake' forcing Rex to assume an halfway position before completing the movement.\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_7cc7af6d0d4a.gif)\n\n# Environments parameters\n| Environment | `env` flag | `arg` flag |\n| ----------- | ---------- | ---------- |\n| Galloping | gallop | `target_position` |\n| Walking | walk | `target_position` |\n| Turn | turn | `init_orient`, `target_orient` |\n| Stand up | standup | N.A |\n\n| `arg` | Description |\n| ----- | ----------- |\n| init_orient | The starting orientation in rad. |\n| target_orient | The target orientation in rad. |\n| target_position | The target position (`x` axis). |\n\n| Flags | Description |\n| ----- | ----------- |\n| log-dir | The path where the log directory will be created. (Required) |\n| playground | A boolean to start a single training rendered session |\n| agents-number | Set the number of parallel agents |\n\n## PPO Agent configuration\nYou may want to edit the PPO agent's default configuration, especially the number of parallel agents launched during \nthe simulation.  \n\nUse the `--agents-number` flag, e.g. `--agents-number 10`.\n\nThis configuration will launch 10 agents (threads) in parallel to train your model.\n\nThe default value is setup in the `agents\u002Fscripts\u002Fconfigs.py` script:\n\n```\ndef default():\n    \"\"\"Default configuration for PPO.\"\"\"\n    # General\n    ...\n    num_agents = 20\n```\n\n# Credits\n## Papers \n[Sim-to-Real: Learning Agile Locomotion For Quadruped Robots](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1804.10332.pdf) and all the related papers. Google Brain, Google X, Google DeepMind - Minitaur Ghost Robotics.\n\n[Inverse Kinematic Analysis Of A Quadruped Robot](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F320307716_Inverse_Kinematic_Analysis_Of_A_Quadruped_Robot)\n\n[Leg Trajectory Planning for Quadruped Robots with High-Speed Trot Gait](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F332374021_Leg_Trajectory_Planning_for_Quadruped_Robots_with_High-Speed_Trot_Gait)\n\n## Robot platform v1\n[Deok-yeon Kim](https:\u002F\u002Fwww.thingiverse.com\u002FKDY0523\u002Fabout) creator of SpotMini.\n\nThe awesome [Poppy Project](https:\u002F\u002Fgithub.com\u002Fpoppy-project).\n\nSpotMicro CAD files: [SpotMicroAI](https:\u002F\u002Fgithub.com\u002FFlorianWilk\u002FSpotMicroAI) community.\n\n## Inspiring projects\nThe kinematics model was inspired by the great work done by [Miguel Ayuso](https:\u002F\u002Fhackaday.io\u002Fproject\u002F171456-diy-hobby-servos-quadruped-robot).\n\n","# Rex：一款开源四足机器人\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_1daefc75c321.gif)\n\n本项目的目标是通过训练一款开源的3D打印四足机器人，探索强化学习和OpenAI Gym的应用。我们的愿景是让机器人在仿真环境中学习各种家庭及通用任务，并将所学的控制策略无缝迁移到真实机器人上，而无需任何额外的手动调优。\n\n该项目主要受到波士顿动力公司卓越工作的启发。\n\n## 相关仓库\n[rexctl](https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frexctl) - 一个命令行应用程序，用于启动并控制运行已训练控制策略的Rex机器人。\n\n[rex-models](https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frex-models) - 一个Web URDF可视化工具，包含多个Rex机器人的模型集。\n\n# Rex-gym：OpenAI Gym环境与工具\n该仓库包含用于训练Rex机器人的`OpenAI Gym环境`集合、Rex的URDF模型、学习智能体的实现（PPO算法），以及一些用于启动训练会话和可视化已学习控制策略的脚本。此命令行应用支持批量训练、策略复现和单次渲染训练。\n\n# 安装\n创建一个`Python 3.7`虚拟环境，例如使用`Anaconda`：\n```\nconda create -n rex python=3.7 anaconda\nconda activate rex\n```\n\n## PyPI包\n安装公开的`rex-gym`包：\n```\npip install rex_gym\n```\n\n## 从源码安装\n克隆本仓库并在项目根目录下运行：\n```\npip install .\n```\n\n# CLI使用\n运行``` rex-gym --help ```以显示可用命令，运行``` rex-gym COMMAND_NAME --help ```以查看特定命令的帮助信息。\n\n使用`--arg`标志可设置仿真参数。完整列表请参阅[环境参数](#environments-parameters)。\n\n要切换`开环`和`贝塞尔控制器（逆运动学）`模式，只需添加`--open-loop`或`--inverse-kinematics`标志。\n```\nrex-gym COMMAND_NAME -ik\nrex-gym COMMAND_NAME -ol\n```\n有关模式的更多信息，请参阅[学习方法](#learning-approach)。\n\n## 策略播放器：运行预训练智能体\n要启动一个预训练智能体（播放已学习的控制策略）：\n```\nrex-gym policy --env ENV_NAME\n```\n\n## 训练：运行单次训练仿真\n要启动一次单智能体渲染会话（`agents=1`, `render=True`）：\n```\nrex-gym train --playground True --env ENV_NAME --log-dir LOG_DIR_PATH\n```\n\n## 训练：开始新的批量训练仿真\n要开始一个新的批量训练会话：\n```\nrex-gym train --env ENV_NAME --log-dir LOG_DIR_PATH\n```\n\n# 机器人平台\n## Mark 1\n本版本使用的机器人是[Spotmicro](https:\u002F\u002Fwww.thingiverse.com\u002Fthing:3445283)，由[Deok-yeon Kim](https:\u002F\u002Fwww.thingiverse.com\u002FKDY0523\u002Fabout)设计制作。\n\n我使用Creality Ender3 3D打印机，分别用PLA和TPU+材料打印了各个部件。\n\n![](https:\u002F\u002Fcamo.githubusercontent.com\u002Fcf4858999d5f9ffd1b4e9dfcf0cb43cc6505c890\u002F68747470733a2f2f692e696d6775722e636f6d2f446e43303548572e6a7067)\n\n所使用的硬件列于本[wiki](https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frexctl\u002Fwiki\u002FMark-I)中。\n\n未来计划为机器人增加机械臂等组件，并在机架顶部安装激光雷达传感器；同时解决现有设计问题，以实现更简便可靠的校准和更稳定的伺服电机。\n\n# 仿真模型\n\n## 基础模型\nRex是一款12关节机器人，每条腿配备3个电机（肩部、腿部和足部）。\n\n机器人基础模型通过[URDF文件](rex_gym\u002Futil\u002Fpybullet_data\u002Fassets\u002Furdf\u002Frex.urdf)导入到`pyBullet`中。\n\n伺服电机在`model\u002Fmotor.py`类中建模。\n\n![rex bullet](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_90e372cc4269.png)\n\n## 机械臂\n机械臂模型采用了开源的6自由度机械臂[Poppy Ergo Jr](https:\u002F\u002Fgithub.com\u002Fpoppy-project\u002Fpoppy-ergo-jr)，安装在机架顶部。\n\n![rex arm](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_6c1d39de90d1.png)\n\n要切换基础模型和机械臂模型，使用`--mark`标志。\n\n# 学习方法\n本库采用`近端策略优化（PPO）`算法，其混合策略定义为：\n\n```a(t, o) = a(t) + π(o)```\n\n该策略可在完全由用户指定与完全从零开始学习之间连续调整。若希望使用用户指定策略，可将`π(o)`的上下限均设为零。若希望策略完全从零开始学习，则可将`a(t) = 0`，并为反馈组件`π(o)`设定较大的输出范围。\n\n通过调整开环信号和反馈组件的输出范围，可以决定系统中用户控制的程度。\n\nRex的`Gym环境`采用双重方法实现：`贝塞尔控制器`和`开环`。\n\n`贝塞尔控制器`实现了完全由用户指定的策略。该控制器利用`逆运动学`模型（见`model\u002Fkinematics.py`）生成步态。\n\n`开环`模式在某些情况下会让系统完全从零开始学习（即设置开环组件`a(t) = 0`），而在另一些情况下则仅提供简单的轨迹参考（如`a(t) = sin(t)`）。\n\n其目的是比较这两种不同方法下学习到的策略及其表现。\n\n# 任务\n本实验旨在覆盖以下任务：\n\n1. 基本控制：\n    1. **静态姿态 - 在原地保持固定姿势。**\n    - [x] 贝塞尔控制器\n    - [ ] 开环信号\n    2. **小跑**\n        - 前进\n        - [x] 贝塞尔控制器\n        - [x] 开环信号\n        - 后退\n        - [ ] 贝塞尔控制器\n        - [ ] 开环信号\n    3. **行走**\n        - 前进\n        - [x] 贝塞尔控制器\n        - [x] 开环信号\n        - 后退\n        - [x] 贝塞尔控制器\n        - [ ] 开环信号\n    4. **原地转向**\n     - [x] 贝塞尔控制器\n     - [x] 开环信号\n    5. **从地面站起**\n    - [ ] 贝塞尔控制器\n    - [x] 开环信号\n2. 在不平坦地形上导航：\n    - [x] 随机高度场、山丘、山脉\n    - [ ] 迷宫\n    - [ ] 楼梯\n3. **开门**\n4. **抓取物体**\n5. **跌倒恢复**\n6. **到达地图上的特定点**\n7. **绘制开放空间地图**\n\n# 地形\n要设置特定地形，使用`--terrain`标志。默认地形为标准平面。此功能有助于测试策略的鲁棒性。\n\n## 随机高度场\n使用`--terrain random`标志生成随机高度场图案。该图案会在每次“重置”时更新。\n\n![hf](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_a5c13631e186.gif)\n\n## 山丘\n使用`--terrain hills`标志生成不平坦地形。\n\n![hills](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_0edf29167f27.gif)\n\n## 山脉\n使用`--terrain mounts`标志生成此类场景。\n\n![mounts](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_28c5a961f247.gif)\n\n## 迷宫\n使用`--terrain maze`标志生成此类场景。\n\n![maze](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_ee0602953be0.gif)\n\n# 环境\n## 基本控制：静态姿态\n目标：使Rex机器人基础部分在原地保持静态姿态。\n\n### 逆运动学\n该 Gym 环境用于学习如何优雅地摆出姿势，同时避免动作过于迅速。它使用一维的动作空间，并包含一个反馈组件 π(o)，其取值范围为 [-0.1, 0.1]。反馈信号会应用到 Sigmoid 函数上，以协调机器人的运动。当使用 --playground 标志时，可以通过 pyBullet 的用户界面手动设置特定的机器人姿态，调整机器人基座的位置（x、y、z）和方向（roll、pitch、yaw）。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_2d6d965e962e.gif)\n\n## 基本控制：疾驰\n目标：直线疾驰并在指定位置停止。\n\n为了使学习过程更加稳健，在每次重置步骤中，Rex 的目标位置都会随机选择。\n\n### 贝塞尔控制器\n该 Gym 环境用于学习如何优雅地启动步态，并在到达目标位置（x 轴方向）后平稳停止。它采用二维动作空间，包含一个反馈组件 π(o)，其取值范围为 [-0.3, 0.3]。反馈组件会作用于两个斜坡函数，用于协调步态。正确的起始动作有助于消除由步态在最终学习策略中产生的漂移效应。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_2d3d918196c2.gif)\n\n### 开环信号\n该 Gym 环境用于让系统从零开始学习步态。动作空间有 4 个维度，其中两个分别控制前腿和脚部，另外两个控制后腿和脚部，反馈组件的输出范围为 [-0.3, 0.3]。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_13b323b86d42.gif)\n\n## 基本控制：行走\n目标：直线行走并在指定位置停止。\n\n为了使学习过程更加稳健，在每次重置步骤中，Rex 的目标位置都会随机选择。\n\n### 贝塞尔控制器\n该 Gym 环境用于学习如何优雅地启动步态，并在到达目标位置（x 轴方向）后平稳停止。它采用二维动作空间，包含一个反馈组件 π(o)，其取值范围为 [-0.4, 0.4]。反馈组件会作用于两个斜坡函数，用于协调步态。正确的起始动作有助于消除由步态在最终学习策略中产生的漂移效应。\n\n#### 前进\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_31ae903147e2.gif)  \n\n#### 后退\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_1dbd42e737e0.gif)\n\n### 开环信号\n该 Gym 环境使用正弦轨迹参考来交替控制 Rex 的腿部运动。\n\n```\nleg(t) = 0.1 cos(2π\u002FT*t)\nfoot(t) = 0.2 cos(2π\u002FT*t)\n```\n\n反馈组件的取值范围非常小：[-0.01, 0.01]。通过使用斜坡函数，可以实现步态的平滑启动和停止。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_f5ae54941c87.gif)\n\n## 基本控制：原地转向\n目标：在原地转向至目标方向。\n\n为了使学习过程更加稳健，在每次重置步骤中，Rex 的初始方向和目标方向都会随机选择。\n\n### 贝塞尔控制器\n该 Gym 环境用于优化 GaitPlanner 使用的 step_length 和 step_rotation 参数，以实现“转向”步态。它采用二维动作空间，包含一个反馈组件 π(o)，其取值范围为 [-0.05, 0.05]。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_05fcbfcca348.gif)\n\n### 开环\n该环境用于学习一种“原地转向”步态，使 Rex 能够朝向特定方向移动。它采用二维动作空间，包含一个小的反馈组件 π(o)，其取值范围为 [-0.05, 0.05]，用于优化步态中的肩部和脚部角度。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_bf7ec6090109.gif)\n\n## 基本控制：站立\n目标：从待机状态站立起来。\n该环境引入了 rest_position，即 Rex 处于待机状态时的理想姿势。\n\n### 开环\n动作空间为 1 维，包含一个反馈组件 π(o)，其取值范围为 [-0.1, 0.1]，用于优化信号的时间序列。信号函数会施加“制动”，迫使 Rex 在完成动作之前先停在中间位置。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_readme_7cc7af6d0d4a.gif)\n\n# 环境参数\n| 环境       | env 标志   | arg 标志     |\n| ---------- | ---------- | ------------ |\n| 疾驰       | gallop     | target_position |\n| 行走       | walk       | target_position |\n| 原地转向   | turn       | init_orient, target_orient |\n| 站立       | standup    | 无           |\n\n| arg        | 描述                     |\n| ---------- | ------------------------ |\n| init_orient | 初始方向（弧度）         |\n| target_orient | 目标方向（弧度）         |\n| target_position | 目标位置（x 轴）         |\n\n| 标志       | 描述                     |\n| ---------- | ------------------------ |\n| log-dir    | 日志目录将被创建的路径。（必填） |\n| playground | 是否启动单次渲染训练会话的布尔值 |\n| agents-number | 设置并行智能体的数量     |\n\n## PPO 智能体配置\n您可能需要修改 PPO 智能体的默认配置，尤其是模拟过程中启动的并行智能体数量。\n\n使用 --agents-number 标志，例如 --agents-number 10。\n\n此配置将并行启动 10 个智能体（线程）来训练您的模型。\n\n默认值已在 agents\u002Fscripts\u002Fconfigs.py 脚本中设定：\n\n```\ndef default():\n    \"\"\"PPO 的默认配置\"\"\"\n    # 通用\n    ...\n    num_agents = 20\n```\n\n# 致谢\n## 论文\n[Sim-to-Real: 四足机器人敏捷运动的学习](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1804.10332.pdf) 及相关论文。Google Brain、Google X、Google DeepMind - Minitaur Ghost Robotics。\n\n[四足机器人的逆运动学分析](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F320307716_Inverse_Kinematic_Analysis_Of_A_Quadruped_Robot)\n\n[高速小跑步态下四足机器人的腿部轨迹规划](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F332374021_Leg_Trajectory_Planning_for_Quadruped_Robots_with_High-Speed_Trot_Gait)\n\n## 机器人平台 v1\n[Deok-yeon Kim](https:\u002F\u002Fwww.thingiverse.com\u002FKDY0523\u002Fabout) 是 SpotMini 的创作者。\n\n出色的 [Poppy 项目](https:\u002F\u002Fgithub.com\u002Fpoppy-project)。\n\nSpotMicro CAD 文件：[SpotMicroAI](https:\u002F\u002Fgithub.com\u002FFlorianWilk\u002FSpotMicroAI) 社区。\n\n## 灵感来源\n该运动学模型受到 [Miguel Ayuso](https:\u002F\u002Fhackaday.io\u002Fproject\u002F171456-diy-hobby-servos-quadruped-robot) 的杰出工作的启发。","# Rex-Gym 快速上手指南\n\nRex-Gym 是一个基于 OpenAI Gym 和强化学习（PPO 算法）的四足机器人训练框架。它旨在通过仿真环境训练控制策略，并无缝迁移到真实的 3D 打印机器人上。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux 或 macOS (Windows 可能需要额外配置 pyBullet)\n*   **Python 版本**: Python 3.7 (强烈推荐)\n*   **依赖管理**: 推荐使用 `Anaconda` 或 `Miniconda` 管理虚拟环境\n*   **硬件加速**: 虽然 CPU 也可运行，但建议使用 NVIDIA GPU 以加快训练速度\n\n## 安装步骤\n\n### 1. 创建虚拟环境\n使用 Conda 创建并激活一个名为 `rex` 的 Python 3.7 环境：\n\n```bash\nconda create -n rex python=3.7 anaconda\nconda activate rex\n```\n\n### 2. 安装 Rex-Gym\n您可以选择从 PyPI 直接安装（推荐），或从源码安装。\n\n**方式一：从 PyPI 安装**\n```bash\npip install rex_gym\n```\n*(注：国内用户若下载缓慢，可添加清华源：`pip install rex_gym -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`)*\n\n**方式二：从源码安装**\n如果您需要修改代码或查看最新特性，可以克隆仓库后安装：\n```bash\ngit clone \u003Crepository_url>\ncd rex-gym\npip install .\n```\n\n## 基本使用\n\n安装完成后，您可以使用 `rex-gym` 命令行工具进行策略回放或开始训练。\n\n### 1. 查看帮助信息\n查看所有可用命令及参数说明：\n```bash\nrex-gym --help\n```\n\n### 2. 运行预训练策略 (Policy Player)\n加载并运行一个已经训练好的智能体，观察其在仿真中的表现。以下示例运行名为 `gallop` (疾跑) 的环境：\n\n```bash\nrex-gym policy --env gallop\n```\n\n*   **切换控制模式**：\n    *   使用逆运动学控制器 (Bezier): 添加 `-ik` 标志\n    *   使用开环控制 (Open Loop): 添加 `-ol` 标志\n    *   示例：`rex-gym policy --env walk -ol`\n\n### 3. 开始训练 (Train)\n\n**单智能体可视化训练**\n启动一个带有图形界面渲染的训练会话，适合调试和观察：\n```bash\nrex-gym train --playground True --env walk --log-dir .\u002Flogs\u002Fwalk_demo\n```\n\n**批量并行训练 (推荐)**\n启动无渲染的批量训练以加速收敛。默认配置为 20 个并行智能体，可通过 `--agents-number` 调整：\n```bash\nrex-gym train --env gallop --log-dir .\u002Flogs\u002Fgallop_batch --agents-number 10\n```\n\n### 4. 高级选项：地形与任务\n您可以通过参数指定不同的地形来测试策略的鲁棒性：\n\n*   **随机高度场**: `--terrain random`\n*   **丘陵地形**: `--terrain hills`\n*   **山地地形**: `--terrain mounts`\n*   **迷宫**: `--terrain maze`\n\n完整示例（在随机地形上训练行走策略）：\n```bash\nrex-gym train --env walk --terrain random --log-dir .\u002Flogs\u002Frough_walk\n```\n\n---\n**提示**：训练日志和模型权重将保存在您指定的 `--log-dir` 目录中。训练完成后，可使用 `policy` 命令加载该目录下的模型进行验证。","某高校机器人实验室的研究团队正致力于将强化学习算法从仿真环境迁移到自制的 3D 打印四足机器人（SpotMicro 架构）上，以实现复杂的步态控制。\n\n### 没有 rex-gym 时\n- **环境搭建繁琐**：研究人员需手动配置 PyBullet 物理引擎、编写 URDF 模型加载脚本并定义奖励函数，耗时数周且容易出错。\n- **虚实迁移困难**：在仿真中训练好的控制策略往往因物理参数差异无法直接在真机上运行，需要大量人工微调电机参数。\n- **缺乏标准化接口**：不同的实验尝试需要重复编写训练循环和数据记录代码，难以复用现有的 PPO 等主流强化学习算法。\n- **可视化调试缺失**：缺少内置的渲染工具，开发者难以直观观察机器人在训练过程中的姿态变化，排查问题效率极低。\n\n### 使用 rex-gym 后\n- **开箱即用环境**：rex-gym 直接提供了预置的 OpenAI Gym 环境和 SpotMicro URDF 模型，团队仅需一行命令即可启动仿真训练会话。\n- **无缝虚实迁移**：借助其内置的控制策略迁移机制，在仿真中学到的步态可直接部署到实体机器人，无需额外手动调参。\n- **集成化训练流程**：通过简单的 CLI 命令（如 `rex-gym train`）即可调用 PPO 算法进行批量训练，并自动管理日志与模型保存。\n- **直观策略验证**：利用 `policy` 命令可立即回放预训练代理的動作，或通过渲染模式实时观察单智能体训练效果，大幅加速迭代周期。\n\nrex-gym 通过标准化的仿真环境与工具链，彻底打通了从算法训练到真机部署的最后一步，让开源四足机器人的强化学习开发变得高效且可靠。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnicrusso7_rex-gym_90e372cc.png","nicrusso7","Nicola Russo","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fnicrusso7_4d84671a.jpg","Every problem has a solution.",null,"Milano, Italy","dott.nicolarusso@gmail.com","https:\u002F\u002Fgithub.com\u002Fnicrusso7",[23,27],{"name":24,"color":25,"percentage":26},"Python","#3572A5",99.9,{"name":28,"color":29,"percentage":30},"Makefile","#427819",0.1,1092,141,"2026-04-09T07:39:48","Apache-2.0",2,"未说明",{"notes":38,"python":39,"dependencies":40},"该项目主要用于四足机器人强化学习训练，建议使用 Anaconda 创建 Python 3.7 虚拟环境。支持通过 CLI 进行批量训练或单步渲染训练。仿真基于 pyBullet，未明确提及 GPU 加速需求，可能主要依赖 CPU 运行。硬件部分涉及 3D 打印组件和特定伺服电机，若需部署到实体机器人需参考相关硬件 wiki。","3.7",[41,42,43,44],"rex_gym","pyBullet","OpenAI Gym","Anaconda",[46,47],"开发框架","其他",[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68],"openai-gym","openai-gym-environments","robotics","tensorflow","python3","pybullet","reinforcement-learning","reinforcement-learning-algorithms","artificial-intelligence","gym-environment","robot","spotmicro","quadruped","openai","inverse-kinematics","quadruped-robot-gaits","quadruped-robot","legged-robots","machine-learning","robotic-arm","ready","2026-03-27T02:49:30.150509","2026-04-17T08:25:51.954214",[73,78,83,88,93,98],{"id":74,"question_zh":75,"answer_zh":76,"source_url":77},36635,"如何在无头模式（headless mode）下解决机器人向后行走或渲染帧率过低的问题？","在无头模式下，如果机器人动作异常或帧率过低，可以通过加载 EGL 渲染插件来提升性能。请在初始化 PyBullet 客户端时添加以下代码块：\n\n```python\nself._pybullet_client = bullet_client.BulletClient(connection_mode=pybullet.DIRECT)\nimport pkgutil\negl = pkgutil.get_loader('eglRenderer')\nif egl:\n    pluginId = pybullet.loadPlugin(egl.get_filename(), \"_eglRendererPlugin\")\nelse:\n    pluginId = pybullet.loadPlugin(\"eglRendererPlugin\")\nprint(\"pluginId=\", pluginId)\n```\n\n此外，也可以尝试调整环境元数据中的 `video.frames_per_second` 参数来优化视频录制效果。","https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frex-gym\u002Fissues\u002F21",{"id":79,"question_zh":80,"answer_zh":81,"source_url":82},36636,"运行策略时出现 OSError，提示日志目录中缺少配置文件怎么办？","该问题通常是由于 `site.getsitepackages()` 返回了多个路径，导致脚本选择了错误的安装路径。解决方法有两种：\n1. 修改 `playground` 文件夹下的 `policy_player.py` 脚本第 15 行，将索引从 `-1` 改为 `0`，以选择正确的路径（例如从 `dist-packages` 改为 `site-packages`）。\n2. 或者手动将 `rex_gym` 文件夹复制到正确的路径下（如 `\u002Fpath-to-env\u002Frex\u002Flib\u002Fpython3.7\u002Fdist-packages`），如果该目录不存在可以手动创建。\n注意：此问题在版本 0.2.7 中已修复，建议升级版本。","https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frex-gym\u002Fissues\u002F6",{"id":84,"question_zh":85,"answer_zh":86,"source_url":87},36637,"在无头模式（offscreen rendering）下渲染时地形消失不可见，如何解决？","要在无头模式下正确渲染地形，请执行以下步骤：\n1. 将 PyBullet 升级到最新版本。\n2. 在调用 `getCameraImage` 进行渲染时，将渲染器参数更改为 `ER_TINY_RENDERER`。\n这样可以确保在没有 GUI 的情况下也能正常显示地形信息。","https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frex-gym\u002Fissues\u002F19",{"id":89,"question_zh":90,"answer_zh":91,"source_url":92},36638,"使用 pip 安装 rex_gym 时出现 'IndexError: list index out of range' 错误怎么办？","这是一个旧版本的安装脚本兼容性错误（常见于 Windows 环境）。维护者已在后续版本中修复了 `setup.py` 中的路径处理逻辑。请直接尝试安装最新版本（例如 0.2.7 或更高），通常可以解决此问题：\n`pip install --upgrade rex-gym`","https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frex-gym\u002Fissues\u002F3",{"id":94,"question_zh":95,"answer_zh":96,"source_url":97},36639,"PPO 算法实现中存在性能瓶颈（重复计算 tf.stack 和 tf.gather），如何优化？","该性能问题源于 `rex_gym\u002Fagents\u002Fppo\u002Fmemory.py` 中的 `append` 函数，其中 `tf.stack` 和 `tf.gather` 在循环中被重复计算。优化方案是将这些操作移至循环外部预先创建。由于该代码最初分叉自 PyBullet 官方仓库，维护者欢迎用户提交 Pull Request (PR) 来合并此类性能改进代码。","https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frex-gym\u002Fissues\u002F25",{"id":99,"question_zh":100,"answer_zh":101,"source_url":102},36640,"运行命令时出现 TensorFlow 或 NumPy 的弃用警告（DeprecationWarning）是否正常？","这是正常的。警告信息（如 `the imp module is deprecated` 或 `np.object is deprecated`）通常来自底层依赖库（如 tensorflow_core 或 numpy）的版本差异，并不影响程序的正常运行。只要程序没有抛出致命错误（Error）并退出了，可以忽略这些警告信息继续运行。","https:\u002F\u002Fgithub.com\u002Fnicrusso7\u002Frex-gym\u002Fissues\u002F35",[],[105,117,125,134,142,151],{"id":106,"name":107,"github_repo":108,"description_zh":109,"stars":110,"difficulty_score":111,"last_commit_at":112,"category_tags":113,"status":69},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",[114,46,115,116],"Agent","图像","数据工具",{"id":118,"name":119,"github_repo":120,"description_zh":121,"stars":122,"difficulty_score":111,"last_commit_at":123,"category_tags":124,"status":69},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",[46,115,114],{"id":126,"name":127,"github_repo":128,"description_zh":129,"stars":130,"difficulty_score":35,"last_commit_at":131,"category_tags":132,"status":69},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 真正成长为懂上",158594,"2026-04-16T23:34:05",[46,114,133],"语言模型",{"id":135,"name":136,"github_repo":137,"description_zh":138,"stars":139,"difficulty_score":35,"last_commit_at":140,"category_tags":141,"status":69},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",[46,115,114],{"id":143,"name":144,"github_repo":145,"description_zh":146,"stars":147,"difficulty_score":35,"last_commit_at":148,"category_tags":149,"status":69},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",[150,114,115,46],"插件",{"id":152,"name":153,"github_repo":154,"description_zh":155,"stars":156,"difficulty_score":35,"last_commit_at":157,"category_tags":158,"status":69},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",[150,46]]