1. 系统环境
- Ubuntu16.04
- ROS-Kinetic
- Python 3.5
2. 安装
2.1 安装rviz插件
因为程序中使用了(BoundingBox,
BoundingBoxArray
)这两个msgs
,所以应使用以下命令安装rviz插件:
sudo apt-get install ros-kinetic-jsk-rviz-plugins
2.2 创建voxelnet虚拟环境
conda create -n voxelnet python=3.5
# 激活虚拟环境
source activate voxelnet
注意:下面的操作都在虚拟环境中执行
2.3 安装依赖
pip install Tensorflow==1.4
pip install OpenCV-python
pip install shapely
conda install numba
pip install easydict
pip install pyyaml
pip install rospkg
pip install matplotlib
2.4 下载VoxelNet
voxelnet源程序地址:https://github.com/qianguih/voxelnet
下载完毕后解压,并进入该目录:
cd voxelnet
2.5 编译Cython模块
python3 setup.py build_ext --inplace
编译完成后,会在./utils
目录下生成一个box_overlaps.cpython-35m-x86_64-linux-gnu.so
文件,后面运行VoxelNetRos程序时会用到该文件。
2.6 下载VoxelNetRos
VoxelNetRos源程序地址:https://github.com/AbangLZU/VoxelNetRos
下载完毕后解压,重命名为VoxelNetRos
。
使用上述编译生成的box_overlaps.cpython-35m-x86_64-linux-gnu.so
文件替换/VoxelNetRos/voxelnet/utils/
下相应的.so
文件。
2.7 准备数据
数据地址: https://pan.baidu.com/s/1kxZxrjGHDmTt-9QRMd_kOA
下载并解压,拷贝至/VoxelNetRos/data/
下,使得该路径下的文件结构为:
data
----lidar_2d
--------0000...1.npy
--------0000...2.npy
--------.......
2.8 运行程序
打开一个新终端输入:
roscore
创建工作空间:
mkdir -p VoxelNetRos_ws/src
将上述VoxelNetRos
包移动至VoxelNetRos_ws/src
目录下,编译运行:
cd VoxelNetRos_ws
catkin_make
source devel/setup.bash
roscd voxelnet_ros/script/
python3 voxelnet_ros.py & python3 pub_kitti_point_cloud.py
再打开一个新终端输入rviz
命令启动rviz插件,rviz插件启动后将Global Options
中的固定坐标(Fixed Frame)选项设置为velodyne
,使用add添加类型为PointCloud2
,话题(Topic)设置为(/velodyne_points_modified
),如果选择Topic为velodyne_points则可以看到原始点云信息。使用add添加类型为BoundingBox
,话题(Topic)设置为(/voxelnet_bbox
),使用add添加类型为BoundingBoxArray
,话题(Topic)设置为(/voxelnet_arr_bbox
)。
结果如下图所示:
参考:
- https://blog.csdn.net/r1141207831/article/details/102943740?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
- https://blog.csdn.net/r1141207831/article/details/96423897
- https://github.com/AbangLZU/VoxelNetRos/issues/1