本文经自动驾驶之心公众号授权转载,转载请联系出处。
论文名称:LimSim++: A Closed-Loop Platform for Deploying Multimodal LLMs in Autonomous Driving
项目主页:https://pjlab-adg.github.io/limsim_plus/
仿真器简介
随着多模态大语言模型((M)LLM)在人工智能领域掀起研究热潮,其在自动驾驶技术中的应用逐渐成为关注的焦点。这些模型通过强大的广义理解和逻辑推理能力,为构建安全可靠的自动驾驶系统提供了有力支持。虽然已有闭环仿真平台如HighwayEnv、CARLA和NuPlan等,能够验证LLM在自动驾驶中的表现,但用户通常需要自行适配这些平台,这不仅提高了使用门槛,也限制了LLM能力的深入挖掘。
为了克服这一挑战,上海人工智能实验室的智能交通平台组推出了**LimSim++**,这是一款专为(M)LLM设计的自动驾驶闭环仿真平台。LimSim++的推出,旨在为自动驾驶领域的研究者提供一个更加适宜的环境,以全面探索LLM在自动驾驶技术中的潜力。该平台能够提取并处理来自SUMO和CARLA等仿真环境的场景信息,将其转化为LLM所需的多种输入形式,包括图像信息、场景认知和任务描述。此外,LimSim++还具备运动原语转换功能,能根据LLM的决策快速生成合适的行驶轨迹,实现闭环仿真。更重要的是,LimSim++为LLM创造了一个持续学习的环境,通过评估决策结果并提供反馈,帮助LLM不断优化驾驶策略,提高Driver Agent的驾驶性能。
仿真器特点
LimSim++在自动驾驶仿真领域具有显著特点,为(M)LLM驱动的Driver Agent提供了理想的闭环仿真和持续学习环境。
- LimSim++支持多种驾驶场景的模拟,如十字路口、匝道和环岛等,确保Driver Agent能够在各种复杂路况下接受挑战。这种多样化的场景设置有助于LLM获取更丰富的驾驶经验,提高其在真实环境中的适应能力。
- LimSim++支持多种模态输入的大语言模型。LimSim++不仅提供基于规则的场景信息生成,同时可以与CARLA联调,能够提供丰富的视觉输入,满足(M)LLM在自动驾驶中的视觉感知需求。
- LimSim++注重持续学习能力。LimSim++集成了评估、反思和记忆等模块,帮助(M)LLM在仿真过程中不断积累经验,优化决策策略。
创建属于自己的Driver Agent
LimSim++为用户提供了丰富的接口,可以满足Driver Agent的定制需求,提高了LimSim++开发的灵活性,并且降低了使用门槛。
- Prompt构建
- LimSim++支持用户自定义prompt,从而改变输入给(M)LLM的文本信息,包括角色设置、任务要求、场景描述等信息。
- LimSim++提供了基于json格式的场景描述模板,支持用户零代码进行prompt的修改,无需考虑信息提取的具体实现。
- 决策评估模块
- LimSim++提供了对(M)LLM决策结果进行评估的baseline,用户可以通过改变权重参数来调节评价偏好。
- 框架的灵活性
- LimSim++支持用户为(M)LLM添加自定义的工具库,例如感知工具、数值处理工具等等。
快速上手
- Step 0:安装SUMO(Version≥v1.15.0, ubuntu)
sudo add-apt-repository ppa:sumo/stable
sudo apt-get update
sudo apt-get install sumo sumo-tools sumo-doc
- Step 1:下载LimSim++源码压缩包,解压后切换到正确分支
git clone https://github.com/PJLab-ADG/LimSim.git
git checkout -b LimSim_plus
- Step 2:安装依赖 (要求装有conda)
cd LimSim
conda env create -f environment.yml
- Step 3: 运行仿真
- 单独运行仿真
python ExampleModel.py
- 使用LLM进行自动驾驶
export OPENAI_API_KEY='your openai key'
python ExampleLLMAgentCloseLoop.py
- 使用VLM进行自动驾驶
# Terminal 1
cd path-to-carla/
./CarlaUE4.sh
# Termnial 2
cd path-to-carla/
cd PythonAPI/util/
python3 config.py --map Town06
# Termnial 2
export OPENAI_API_KEY='your openai key'
cd path-to-LimSim++/
python ExampleVLMAgentCloseLoop.py
更多内容请查看LimSim++的github:https://github.com/PJLab-ADG/LimSim/tree/LimSim_plus,如有其他疑问请在GitHub的Issues中提出或直接邮件联系我们!
欢迎学术界和工业界小伙伴共同开发LimSim++,共建开源生态!