申明:本内容完全基于(https://blog.csdn.net/AdamShan/article/details/84837211 )《无人驾驶汽车系统入门(二十八)——基于VoxelNet的激光雷达点云车辆检测及ROS实现 》 博客后面提供的代码实现的。代码请前往上面博客地址自行下载!(下面执行步骤均为本人亲自走过的流程,如有疑问可以相互讨论,谢谢!至于坑就不说了,说多了都是泪,直接上成功的步骤,如有不妥,还望多担待!)


程序运行所需环境:

运行系统:Ubuntu1604

运行环境:ROS Kinetic中的rospy以及使用virtualenv创建的虚拟环境

程序语言:Ubuntu1604自带的Python3.5


一、安装ROS Kinetic环境

安装步骤详情见(https://blog.csdn.net/r1141207831/article/details/95337688)如果已经安装好了,请忽略!

使用以下命令安装rviz插件,因为程序中使用了(BoundingBox, BoundingBoxArray)这两个msgs

sudo apt-get install ros-kinetic-jsk-rviz-plugins

二、使用virtualenv创建虚拟环境(这里所用的虚拟环境为Python3.5,程序要求使用python3

注明:这里创建虚拟环境是为了防止安装一些库引起的实际环境被破坏的可能

创建虚拟环境详情请见(https://blog.csdn.net/r1141207831/article/details/95480766)如果已经创建好了,请忽略!

三、安装运行程序必要的库(以下安装库均使用清华源进行安装,逐步安装即可,当然如果你遇到还有缺失的库,如法炮制安装即可)

注明:请在激活的虚拟环境中进行安装

pip install Tensorflow==1.4  -i https://pypi.tuna.tsinghua.edu.cn/simple #此部分是安装的CPU版本的(二选一)
###pip install Tensorflow-gpu==1.4  -i https://pypi.tuna.tsinghua.edu.cn/simple #此部分是安装的gPU版本的(二选一)
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install rospkg -i https://pypi.tuna.tsinghua.edu.cn/simple  #在实际环境中安装这个库的时候破坏了我的ros环境,才被迫转为虚拟环境
pip install numba -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install easydict -i https://pypi.tuna.tsinghua.edu.cn/simple

四、执行程序部分请参考原来程序网址(切记,我的这一系列操作都是在我创建的虚拟环境中实现的,所以最后寻运行程序也是虚拟环境中运行`运行的!)源程序地址见以下链接——>

https://github.com/AbangLZU/VoxelNetRos

五、程序运行

1、首先将下载到的代码VoxelNetRos-master.zip压缩包进行解压放置在home目录下,然后进行重命名为VoxelNetRos(或者别的目录也可以)

2、在一个新的终端中使用roscore命令进入ros环境

3、通过cd命令进入VoxelNetRos/script目录下

4、在此目录下通过进入虚拟环境的命令进入创建的VoxelNet虚拟环境(不会进入虚拟环境的请查看前面的步骤)

5、再打开一个新的终端进入虚拟环境使用python3 pub_kitti_point_cloud.py & python3 voxelnet_ros.py开始执行Python脚本程序

6、再打一个新的终端输入rviz命令启动rviz插件

运行命令如下图

7、rviz插件启动之后将Global Options中的固定坐标(Fixed Frame)选项设置为velodyne

8、使用add添加类型为PointCloud2(下图对应为/velodyne_points_modified),话题(Topic)设置为(/velodyne_points_modified)如果选择Topic为velodyne_points则可以看到原始点云信息。

9、使用add添加类型为BoundingBox(下图对应为/voxelnet_bbox),话题(Topic)设置为(/voxelnet_bbox)

10、使用add添加类型为BoundingBoxArray(下图对应为/voxelnet_arr_bbox),话题(Topic)设置为(/voxelnet_arr_bbox)

执行结果如下图所示:

至此所有步骤已经完成了,后续有问题大家可以一起交流!感谢大家的浏览。