robots
用自然语言直接控制 70+ 种机器人,支持 MuJoCo 仿真 + ROS 2 真机,Sim-first 安全设计
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用自然语言直接控制 70+ 种机器人,支持 MuJoCo 仿真 + ROS 2 真机,Sim-first 安全设计
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
深夜的实验室里,一位机器人研究员面对着一台从未接触过的机械臂。以往,光是搞懂 ROS 节点、URDF 模型、关节限位就需要花上好几天。但这一次,他在终端输入了一句话:
Robot("so100").say("你好世界")
机械臂便在仿真环境中动了起来。这是 Strands Robots 正在运行的演示——一个将大型语言模型(LLM)Agent 与物理机器人控制深度融合的开源框架。
Strands Robots 由 Strands Labs 开发,是 Strands Agents 生态系统的机器人控制子模块。它的核心设计理念是:自然语言应该能够直接驱动真实的物理硬件。
传统的机器人开发需要掌握 ROS 通信机制、URDF/XACRO 模型语法、MoveIt 运动规划等大量领域知识。Strands Robots 的出现,打破了这道门槛——开发者只需用 Python 描述想要的运动,框架自动完成底层转换。
项目的命名"Strands"(链)暗示了它的架构哲学:Agent(大语言模型推理链)、Policy(策略模型执行链)和 Robot(硬件控制链)三者环环相扣,构成完整的"想法→行动→反馈"闭环。
Strands Robots 默认在 MuJoCo 仿真环境中运行硬件逻辑,所有命令先用仿真验证,再通过 mode="real" 切换到真实硬件。这种设计从根本上避免了"真机调参一小时,仿真调参三分钟"的效率倒置问题——开发阶段完全不依赖硬件,降低了调试成本和硬件损坏风险。
项目内置了 67 种仿真工具,覆盖世界构建、物理交互、渲染和领域随机化(Domain Randomization),几乎涵盖了机器人研究日常所需的所有功能。
Strands Robots 原生支持超过 70 种商业和研究级机器人,涵盖:
用户也可以通过传入 urdf_path= 参数,引入完全自定义的机器人模型。
Strands Robots 并不是另一个端到端训练框架,而是一个策略无关的硬件抽象层。它支持接入多种主流策略模型:
| 模型 | 来源 | 特点 |
|---|---|---|
| NVIDIA GR00T | NVIDIA | VLA(视觉-语言-动作)世界基础模型 |
| LeRobot ACT/Pi0/SmolVLA | LeRobot | 多任务模仿学习 |
| Diffusion Policy | 学术 | 基于扩散的动作生成 |
| 自定义 Policy | 用户 | 任意 Python 可调用策略 |
这种设计意味着:同一个自然语言命令,可以在仿真中用 Pi0 验证策略可行性,在真机上无缝切换到 GR00T 执行——代码完全不变。
项目完整支持 ROS 2(机器人操作系统),可以:
use_ros):订阅任意 ROS 2 Topic 获取传感器数据对于已有 ROS 机器人的团队,Strands Robots 提供了零迁移成本的接入路径。
每个 Strands Robot 实例都是一个 Zenoh P2P 网络节点,具备自动发现和点对点通信能力。通过 tell() 方法,可以跨机器人发送指令,实现多机协同:
# 跨机器人通信示例
robot_a.tell("另一台机器人执行抓取")
Zenoh 的无中心设计使系统在部分节点故障时依然保持鲁棒,适合分布式实验室和生产环境。
安装 Strands Robots 非常简单,主流方式使用 uv 包管理器:
# 推荐方式(使用 uv)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv pip install strands-robots
# 标准 pip 同样支持
pip install strands-robots
# 仿真功能(内置 MuJoCo)
pip install strands-robots[sim-mujoco]
# 真机 + ROS 2 功能
pip install strands-robots[ros]
最低要求:Python 3.10+,无 GPU 可运行仿真。GPU 仅在推理大型 VLA 模型(如 GR00T)时需要。
代码上手极简:
from strands_robots import Robot
# 仿真模式(默认)
with Robot("so100") as bot:
bot.say("你好世界")
# 真机模式(需连接硬件)
with Robot("so100", mode="real") as bot:
bot.grasp(target="桌上的苹果")
项目提供了 15 个逐步进阶的示例,从 01_sim_hello_world.py 到 13_physics_introspection.py,覆盖了从入门到研究级场景的完整路径。
VLA 模型依赖:真正发挥"自然语言控制"潜力需要接入大型 VLA 模型(如 GR00T),这些模型本身需要大量算力,且商业部署存在许可证限制。
真机适配工作量:虽然框架抽象了接口,但不同型号机器人的 URDF 标定、关节限位、安全约束仍需人工配置,"零配置"仅适用于内置型号列表。
中文资料匮乏:目前文档和社区讨论以英文为主,对中文开发者存在一定门槛。
非 Web UI 工具:纯 Python CLI 工具,缺乏图形化界面,入门曲线对非程序员有一定挑战。
Strands Robots 代表了机器人控制领域的一个新兴方向——将 LLM Agent 的自然语言理解能力与传统机器人控制框架深度整合。随着 VLA(视觉-语言-动作)世界基础模型的快速发展,这类中间件的价值将进一步凸显:它让研究者在不改变策略模型的情况下,快速验证不同硬件平台上的表现差异。
截至目前,项目 star 增速平稳,GitHub 社区活跃度持续增长,是机器人 + AI Agent 交叉领域值得关注的前沿项目。