PromptCraft-Robotics
微软开源的 LLM 驱动机器人仿真框架,通过提示工程让 ChatGPT 直接生成无人机/机械臂控制代
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
微软开源的 LLM 驱动机器人仿真框架,通过提示工程让 ChatGPT 直接生成无人机/机械臂控制代
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有想过,能不能像和人说话一样,给 AI 下达指令,让它去操控一台真实的无人机?比如对它说「起飞,飞到高度 50 米,然后绕着风机转一圈」,它就能自动生成控制代码、执行任务?
这正是微软 PromptCraft-Robotics 项目想要解决的核心问题。
2023 年初,ChatGPT 发布不到两个月,微软研究院就推出了这个项目。它探索的不是训练新模型,而是如何用提示工程(Prompt Engineering)让已有的 LLM(主要是 ChatGPT)直接生成机器人的控制代码。
这个想法本身就很反直觉——机器人控制需要精确的坐标、时序和硬件指令,ChatGPT 作为一个纯语言模型,真的能胜任吗?
答案是:可以,但需要精心设计的 prompt 作为「翻译层」。
PromptCraft-Robotics 的核心思路是:
项目使用 Microsoft AirSim 作为仿真平台。AirSim 是微软早年开源的无人机/汽车模拟器,基于 Unreal Engine 开发,能在虚拟环境中精确还原物理世界。
开发者不需要购买真实无人机,在电脑上就能运行整个实验环境。AirSim 支持:
ChatGPT 与 AirSim 之间通过一个 Python 封装层(airsim_wrapper.py)连接,负责将生成的代码调用翻译为 AirSim 的异步 API。
项目代码结构非常精简,主要由以下文件组成:
| 文件 | 作用 |
|---|---|
chatgpt_airsim.py | 主程序:构建 ChatGPT 对话历史、发送用户指令、解析代码块、执行 |
airsim_wrapper.py | AirSim 封装:提供 takeoff()、fly_to()、get_position() 等高层接口 |
prompts/ | 自然语言指令示例(如「起飞」「飞到某坐标」) |
system_prompts/ | 系统提示词模板:告诉 ChatGPT 可用哪些函数、如何格式化输出 |
settings.json | AirSim 模拟器配置:摄像头参数、模拟模式 |
environment.yml | Conda 环境依赖:numpy、opencv、openai、airsim-python 等 |
特别值得注意的是 airsim_wrapper.py 中的对象映射字典:
objects_dict = {
"turbine1": "BP_Wind_Turbines_C_1",
"solarpanels": "StaticMeshActor_146",
"car": "StaticMeshActor_10",
}
这是因为 Unreal Engine 的内部对象名是程序生成的哈希字符串,wrapper 提供了人类可读的别名,方便在 prompt 中引用。
项目在 examples/ 下提供了六个机器人应用方向:
这意味着 PromptCraft-Robotics 的框架不是针对单一场景设计的,而是试图提供一个通用的 LLM 控制机器人的范式,只要替换相应的 wrapper 和 prompt,就能适配不同类型的机器人。
必须诚实地说,这个项目在 2023 年引起了关注,但后续的维护力度有限。它的局限也比较明显:
1. 严重依赖 OpenAI API:ChatGPT 调用需要 API Key,项目本质上是 OpenAI 的「付费用户」,无法离线部署。
2. AirSim 生态已经式微:微软在 2022 年底停止了 AirSim 的主动开发,项目本身也依赖较老的 Unreal Engine 4.27 版本,迁移成本高。
3. 可靠性问题:LLM 生成的代码可能包含错误(如参数顺序搞反),在没有充分测试的情况下直接控制真实机器人存在风险。
4. prompt 脆弱性:高度依赖 prompt 质量,不同任务需要精细调优,换个模型或版本可能效果大幅波动。
尽管有这些局限,PromptCraft-Robotics 的意义在于它开辟了一个新的研究方向:将 LLM 作为机器人技能库和任务规划器,而不仅仅是聊天工具。
后续很多研究都受到它的启发:
从技术演进看,PromptCraft-Robotics 的「prompt-as-translation-layer」思路,被后来更强大的视觉-语言模型(VLM)和端到端多模态模型逐步替代。但它在 2023 年初所做的探索,为这个领域奠定了重要的认知基础。