避坑指南:在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 ~/.bashrc1.2 创建虚拟环境
创建一个名为pcdet的虚拟环境:
conda create -n pcdet python=3.9 conda activate pcdet2. 安装核心依赖
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 develop3. 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.bash3.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-plugins4. PointPillars ROS部署
4.1 下载pointpillars_ros
创建工作空间并克隆仓库:
mkdir -p ~/pointpillars_ros/src cd ~/pointpillars_ros/src git clone https://github.com/BIT-DYN/pointpillars_ros4.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/models4.3 编译工作空间
指定Python解释器路径进行编译:
cd ~/pointpillars_ros catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3如果遇到缺失依赖的错误,例如av2,可以安装:
pip install av25. 常见问题解决
5.1 路径配置错误
最常见的错误是YAML文件中的路径配置不正确。修改kitti_models/pointpillars.yaml中的路径为绝对路径:
dataset: /home/username/pointpillars_ros/src/pointpillars_ros/configs/kitti_dataset.yaml5.2 检测延迟问题
如果遇到检测框延迟严重的情况,可以尝试修改点云话题:
- 打开
pointpillars.launch文件 - 将点云话题从原始值修改为
modified
5.3 Python版本冲突
确保在运行ROS节点时使用正确的Python环境:
conda activate pcdet source ~/pointpillars_ros/devel/setup.bash roslaunch pointpillars_ros pointpillars.launch6. 性能优化建议
- GPU利用率监控:使用
nvidia-smi监控GPU使用情况 - 点云降采样:如果实时性要求高,可以考虑对输入点云进行降采样
- 模型量化:尝试使用PyTorch的量化功能减小模型大小
- ROS参数调整:适当调整ROS参数如队列大小和缓冲时间
7. 测试与验证
启动可视化界面:
roslaunch pointpillars_ros pointpillars.launch rviz -d ~/pointpillars_ros/src/pointpillars_ros/config/pointpillars.rviz如果一切配置正确,你应该能在RViz中看到点云和检测框的可视化结果。
