避坑指南:在Ubuntu 20.04上从零部署PointPillars ROS可视化(含OpenPCDet、SpConv2.x环境配置)

📅 2026/8/4 6:49:14 👁️ 阅读次数 📝 编程学习
避坑指南:在Ubuntu 20.04上从零部署PointPillars ROS可视化(含OpenPCDet、SpConv2.x环境配置)

避坑指南:在Ubuntu 20.04上从零部署PointPillars ROS可视化(含OpenPCDet、SpConv2.x环境配置)

当你在Ubuntu 20.04上尝试部署PointPillars ROS可视化时,可能会遇到各种环境配置和依赖问题。本文将带你一步步解决这些常见问题,确保你能顺利完成部署。

1. 环境准备

在开始之前,确保你的系统满足以下基本要求:

  • 操作系统:Ubuntu 20.04 LTS
  • Python版本:3.9
  • CUDA版本:11.7
  • cuDNN版本:8.5.0

1.1 安装Anaconda

首先,我们需要创建一个隔离的Python环境来管理依赖:

wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh bash Anaconda3-2023.03-Linux-x86_64.sh source ~/.bashrc

1.2 创建虚拟环境

创建一个名为pcdet的虚拟环境:

conda create -n pcdet python=3.9 conda activate pcdet

2. 安装核心依赖

2.1 安装PyTorch

安装与CUDA 11.7兼容的PyTorch版本:

conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.7 -c pytorch -c nvidia

验证安装:

import torch print(torch.__version__) print(torch.cuda.is_available())

2.2 安装SpConv 2.x

SpConv是PointPillars的关键依赖之一。安装时需要注意CUDA版本匹配:

pip install spconv-cu117

验证安装:

import spconv print(spconv.__version__)

2.3 安装OpenPCDet

克隆OpenPCDet仓库并安装:

git clone https://github.com/open-mmlab/OpenPCDet.git cd OpenPCDet pip install -r requirements.txt python setup.py develop

3. ROS环境配置

3.1 安装ROS Noetic

确保已安装ROS Noetic桌面完整版:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update sudo apt install ros-noetic-desktop-full source /opt/ros/noetic/setup.bash

3.2 安装ROS依赖

在conda环境中安装必要的ROS包:

conda install --user rospkg catkin_pkg conda install -c conda-forge quaternion sudo apt-get install ros-noetic-pcl-ros ros-noetic-jsk-recognition-msgs ros-noetic-jsk-rviz-plugins

4. PointPillars ROS部署

4.1 下载pointpillars_ros

创建工作空间并克隆仓库:

mkdir -p ~/pointpillars_ros/src cd ~/pointpillars_ros/src git clone https://github.com/BIT-DYN/pointpillars_ros

4.2 文件结构调整

将OpenPCDet中的必要文件复制到pointpillars_ros中:

cp -r OpenPCDet/tools/* ~/pointpillars_ros/src/pointpillars_ros/tools/ cp -r OpenPCDet/pcdet ~/pointpillars_ros/src/pointpillars_ros/tools/ mkdir -p ~/pointpillars_ros/src/pointpillars_ros/models

4.3 编译工作空间

指定Python解释器路径进行编译:

cd ~/pointpillars_ros catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

如果遇到缺失依赖的错误,例如av2,可以安装:

pip install av2

5. 常见问题解决

5.1 路径配置错误

最常见的错误是YAML文件中的路径配置不正确。修改kitti_models/pointpillars.yaml中的路径为绝对路径:

dataset: /home/username/pointpillars_ros/src/pointpillars_ros/configs/kitti_dataset.yaml

5.2 检测延迟问题

如果遇到检测框延迟严重的情况,可以尝试修改点云话题:

  1. 打开pointpillars.launch文件
  2. 将点云话题从原始值修改为modified

5.3 Python版本冲突

确保在运行ROS节点时使用正确的Python环境:

conda activate pcdet source ~/pointpillars_ros/devel/setup.bash roslaunch pointpillars_ros pointpillars.launch

6. 性能优化建议

  1. GPU利用率监控:使用nvidia-smi监控GPU使用情况
  2. 点云降采样:如果实时性要求高,可以考虑对输入点云进行降采样
  3. 模型量化:尝试使用PyTorch的量化功能减小模型大小
  4. ROS参数调整:适当调整ROS参数如队列大小和缓冲时间

7. 测试与验证

启动可视化界面:

roslaunch pointpillars_ros pointpillars.launch rviz -d ~/pointpillars_ros/src/pointpillars_ros/config/pointpillars.rviz

如果一切配置正确,你应该能在RViz中看到点云和检测框的可视化结果。