本文主要是介绍基于VoxelNet的激光雷达点云车辆检测及ROS实现复现时遇到的问题及对应解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基于VoxelNet的激光雷达点云车辆检测及ROS实现复现时遇到的问题及对应解决方法
- 前言
- 问题1:提示未安装shapely、numba、easydict、jsk package等依赖项
- 问题2:Ubuntu18报错ValueError: list.remove(x): x not in list
- 问题3:报错ModuleNotFoundError: No module named 'utils.box_overlaps'
- 问题4:选择by display type添加BoundBoxArray之后没有3D框显示
前言
这里记录一下在阅读站内文章《无人驾驶汽车系统入门(二十八)——基于VoxelNet的激光雷达点云车辆检测及ROS实现》时遇到的问题及对应的解决方法。
值得一提的是,本文在复现过程中使用anaconda3预先安装python3.7.3、cuda10.0、cudnn7.5.4、TensorFlow1.8.0以及opencv3.如果不使用anaconda安装python3或者使用python2的话,本文记录的错误解决方案可能不适用。本文默认TensorFlow、OpenCV和ROS已安装好。
问题1:提示未安装shapely、numba、easydict、jsk package等依赖项
对于Ubuntu18版本,运行以下程序进行安装:
sudo pip install shapely
sudo pip install numba
sudo pip install easydict
sudo apt-get install ros-melodic-jsk-recognition-msgs
sudo apt-get install ros-melodic-jsk-rqt-plugins
sudo apt-get install ros-melodic-jsk-visualization
对于Ubuntu16版本,运行以下程序进行安装:
sudo pip install shapely
sudo pip install numba
sudo pip install easydict
sudo apt-get install ros-kinetic-jsk-recognition-msgs
sudo apt-get install ros-kinetic-jsk-rqt-plugins
sudo apt-get install ros-kinetic-jsk-visualization
问题2:Ubuntu18报错ValueError: list.remove(x): x not in list
错误代码为
Traceback (most recent call last):File "/home/voxelnet_ws/src/voxelnetros/script/voxelnet_ros.py", line 20, in <module>from model import RPN3DFile "/home/voxelnet_ws/src/voxelnetrosscript/../voxelnet/model/__init__.py", line 12, in <module>from model.model import *File "/home/voxelnet_ws/src/voxelnetros/script/../voxelnet/model/model.py", line 6, in <module>sys.path.remove('/opt/ros/knitic/lib/python2.7/dist-packages')
ValueError: list.remove(x): x not in list
问题主要出在上文代码倒数第二行
sys.path.remove('/opt/ros/knitic/lib/python2.7/dist-packages')
在使用Ubuntu18时,提到的路径应为
/opt/ros/melodic/lib/python2.7/dist-packages
原因在于ros目录里面Ubuntu16对应knitic,Ubuntu18对应melodic。Ubuntu20对应noetic可能也会存在类似问题,但本文没有验证。
修改方法为修改VoxelNetRos/voxelnet/model/model.py的代码,第8行
sys.path.remove('/opt/ros/knitic/lib/python2.7/dist-packages')
改为
sys.path.remove('/opt/ros/melodic/lib/python2.7/dist-packages')
问题3:报错ModuleNotFoundError: No module named ‘utils.box_overlaps’
错误代码为
Traceback (most recent call last):File "voxelnet_ros.py", line 19, in <module>from model import RPN3DFile "../voxelnet/model/__init__.py", line 12, in <module>from model.model import *File "../voxelnet/model/model.py", line 11, in <module>from utils import *File "../voxelnet/utils/__init__.py", line 10, in <module>from utils.box_overlaps import *
ModuleNotFoundError: No module named 'utils.box_overlaps'
问题出在程序无法导入pyc文件,解决方法为修改VoxelNetRos/script/voxelnet_ros.py的代码,在开头import部分加入两行代码
import pyximport
pyximport.install()
重新运行
python3 voxelnet_ros.py & python3 pub_kitti_point_cloud.py
问题解决。
问题4:选择by display type添加BoundBoxArray之后没有3D框显示
解决方法:在BoundBoxArray下拉菜单里,关联对应的topic名称
这篇关于基于VoxelNet的激光雷达点云车辆检测及ROS实现复现时遇到的问题及对应解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!