X-Driver:迈向可解释VLM自动驾驶(哈工大&百度)

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

>>点击进入→自动驾驶之心『多模态大模型』技术交流群

本文只做学术分享,如有侵权,联系删文

背景

传统模块化自动驾驶系统存在错误传播泛化能力不足的问题,而端到端方法虽简化了系统设计,但在闭环场景中成功率较低。现有基于多模态大语言模型(MLLMs)的框架在闭环评估中易出现幻觉(不合理决策)和鲁棒性不足。为此,X-Driver提出结合链式思维(CoT)推理和MLLMs,旨在提升决策的可解释性闭环性能

  • 论文链接:https://arxiv.org/abs/2505.05098

摘要

X-Driver通过以下核心设计实现目标:

  1. 多模态融合与CoT推理
    基于LLaVA模型,整合视觉(图像)与文本(导航指令)输入,利用CoT提示分解驾驶任务为多步推理(如目标检测、交通灯状态判断),生成结构化决策流程(参见Figure 3)。

  1. 连续图像编码
    采用ViT编码器替代VQ-VAE,保留远距离交通灯等关键场景信息,减少信息损失。

  2. 闭环框架设计
    在CARLA仿真环境中验证,通过实时传感器输入与动态调整实现闭环控制,显著提升驾驶评分(Driving Score)和成功率(Success Rate)。

方法

核心架构

  • 输入:图像(相机数据)与文本(导航指令)的多模态输入。

  • 推理流程

  1. 通过CoT提示将任务分解为子任务(目标检测、交通灯状态、车道信息等)。

  2. 模型整合历史token与当前输入,生成最终决策与轨迹预测(如Table 1所示场景指令)。

  1. 闭环控制:根据预测轨迹动态调整车辆动作(Figure 1)。

关键技术

  • CoT训练数据:通过高质量提示模板引导模型分步推理(如“先定位目标→分析运动→判断风险→更新决策”)。

  • 连续编码优势:ViT编码器在远距离目标检测中比VQ-VAE保留更多细节(如交通灯状态),提升感知精度(Table 2)。

实验与结果

闭环性能

  • 指标:Driving Score(综合路线跟随、速度控制、交规遵守)与Success Rate(任务完成率)。

  • 对比结果

    • 在Bench2Drive数据集上,X-Driver(带CoT)的Driving Score达51.7(vs. UniAD的45.9),Success Rate提升至18.1%(Table 4)。

    • CoT版本在行人避让等场景中显著优于无CoT模型(Figure 4)。

轨迹预测

  • 开环实验:未来3秒轨迹的平均位移误差(ADE)为1.488米,预测精度优于传统方法(Table 3)。

不足与未来展望

局限性

  • 场景泛化性:实验主要基于仿真环境(CARLA),未验证极端天气或高度复杂城市路况。

  • 实时性:MLLM的计算开销可能影响实时响应,需进一步优化推理速度。

未来方向

  1. 多模态扩展:融合激光雷达、雷达等传感器,增强环境感知鲁棒性。

  2. 轻量化部署:通过知识蒸馏或模型压缩技术适配边缘设备。

  3. 跨数据集验证:在真实道路数据(如nuScenes)中测试泛化能力。

前沿的更迭速度很快,有没有一个专业的技术社区一直follow学术界的前沿研究和工业界的量产落地?带着这个想法,我们打造了『自动驾驶之心知识星球』。我们为大家准备了大额优惠,欢迎加入~

4000人专业自动驾驶社区!欢迎扫码加入~

图片

自动驾驶之心

论文辅导来啦

知识星球交流社区

近4000人的交流社区,近300+自动驾驶公司与科研结构加入!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(大模型、端到端自动驾驶、世界模型、仿真闭环、3D检测、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎加入。

独家专业课程

端到端自动驾驶大模型、VLA、仿真测试、自动驾驶C++、BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、CUDA与TensorRT模型部署、大模型与自动驾驶、NeRF、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频

学习官网:www.zdjszx.com

<think>我们正在解决用户遇到的`rospack find abot_vlm`报错"package not found"的问题。这通常是由于以下原因之一: 1. 功能包`abot_vlm`未安装 2. 功能包路径未包含在ROS_PACKAGE_PATH中 3. 工作空间未正确构建或source 根据用户之前的问题,他们似乎在一个名为`5ABCD`的目录下操作,这可能是他们的工作空间。因此,我们将按照以下步骤排查: ### 步骤1:确认工作空间已构建且source ```bash # 进入工作空间目录(假设为~/5ABCD) cd ~/5ABCD # 检查是否已构建(存在devel和build目录) ls # 如果没有构建,则构建 catkin_make # 或 catkin build # 确保source了setup.bash source devel/setup.bash ``` ### 步骤2:检查ROS_PACKAGE_PATH ```bash echo $ROS_PACKAGE_PATH ``` 输出应包含`~/5ABCD/src`(或你的具体路径)。如果没有,请确保正确source了setup.bash。 ### 步骤3:搜索功能包 ```bash # 使用rospack全量搜索(较慢但全面) rospack list | grep abot_vlm # 或者使用find命令在src目录查找 find src -name abot_vlm ``` ### 步骤4:如果包存在但未找到,刷新ROS包索引 ```bash rospack profile ``` ### 步骤5:如果包不存在,考虑安装或克隆 - 如果`abot_vlm`是第三方包,尝试安装: ```bash sudo apt install ros-<distro>-abot-vlm # 替换<distro>为你的ROS版本(如noetic) ``` - 或者从源码克隆(假设你知道仓库地址): ```bash cd src git clone <abot_vlm的仓库地址> cd .. catkin_make source devel/setup.bash ``` ### 步骤6:检查功能包命名 确认功能包的`package.xml`中声明的名称确实是`abot_vlm`(大小写敏感)。 ### 常见问题解决 1. **多工作空间冲突**:如果存在多个工作空间,确保你source的是当前工作空间的setup.bash。 2. **功能包未编译**:在`src`中的功能包需要编译(`catkin_make`)后才能被rospack识别。 3. **环境变量未设置**:检查`~/.bashrc`中是否有source其他工作空间的setup.bash,可能覆盖了当前设置。 ### 验证 完成上述步骤后,再次尝试: ```bash rospack find abot_vlm ``` §§相关问题§§ 1. 如何正确配置ROS多工作空间环境? 2. `catkin_make`和`catkin build`有什么区别? 3. ROS功能包命名有哪些规范? 4. 如何将自定义功能包安装到系统路径?</think>### 解决 `rospack find abot_vlm` 报错 "package not found" 当出现 `rospack find abot_vlm` 报错时,通常是由于以下原因之一导致的功能包路径识别失败。请按顺序执行以下排查步骤: --- #### 1. **确认功能包是否存在** ```bash # 在ROS工作空间的src目录中搜索 find ~/5ABCD/src -type d -name "abot_vlm" # 检查所有ROS包路径 echo $ROS_PACKAGE_PATH | tr ':' '\n' | xargs -I{} find {} -maxdepth 1 -type d -name "abot_vlm" ``` - ✅ 如果找到目录:说明包存在,转到步骤2 - ❌ 如果无输出:说明包未安装或路径错误 --- #### 2. **检查ROS环境配置** ```bash # 验证当前工作空间是否激活 source ~/5ABCD/devel/setup.bash # 重新激活环境 # 检查环境变量 echo $ROS_PACKAGE_PATH # 应包含类似 /home/abot/5ABCD/src 的路径 # 刷新ROS包索引 rospack profile ``` --- #### 3. **常见修复方案** ##### 情况1:功能包未构建 ```bash cd ~/5ABCD catkin_make # 重新构建整个工作空间 source devel/setup.bash ``` ##### 情况2:功能包路径缺失 ```bash # 手动添加路径到环境变量 echo "export ROS_PACKAGE_PATH=\$ROS_PACKAGE_PATH:/home/abot/5ABCD/src" >> ~/.bashrc source ~/.bashrc ``` ##### 情况3:功能包未正确命名 检查包目录内的 `package.xml` 文件: ```bash # 在疑似目录中检查 cat ~/5ABCD/src/abot_vlm/package.xml | grep "<name>" ``` - 确认 `<name>` 标签内容是否为 **abot_vlm**(大小写敏感) --- #### 4. 高级排查 ```bash # 列出所有已识别包 rospack list-names | grep abot # 检查相似包名 # 查看详细搜索路径 rospack plugins --attrib=rosstack rospack # 检查插件路径 ``` --- ### 典型错误场景及修复 | 错误场景 | 修复命令 | 说明 | |---------|---------|------| | 工作空间未激活 | `source devel/setup.bash` | 必须每次打开终端执行 | | 多工作空间冲突 | `unset ROS_PACKAGE_PATH` | 清除冲突路径 | | 包名拼写错误 | `rospack find abot-vlm` | 尝试不同分隔符 | | 未安装依赖 | `rosdep install --from-paths src` | 安装缺失依赖 | > **重要提示**:在ROS Noetic中,包名必须完全匹配且符合[命名规范](^1),仅允许小写字母、数字和下划线。 --- ### 验证修复 ```bash # 最终检查 rospack find abot_vlm # 成功时应返回: /home/abot/5ABCD/src/abot_vlm ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值