安装VLP16驱动(在师兄的基础上加了一点自己出现的错误)

五.配置velodyne16并安装其ros驱动包
网址1:https://www.cnblogs.com/Mrzhang95/p/9443808.html (用于velodyne连接配置,【注意】其后续安装驱动包命令错误)
1.首先将velodyne16通过网线连接到电脑上并连接其电源。单击电脑屏幕右上角的网络连接图标——编辑连接,弹出“网络连接”窗口,单击“增加”,选择连接类型“以太网”——新建,连接名称填写“velodyne”,单击选择IPv4设置,方法更改为“手动”,单击增加,地址处填写“192.168.1.200”,子网掩码填写“24”,网关填写“192.168.1.0”。最后保存。

2.配置完成后,打开浏览器,输入网址192.168.1.201,弹出界面【见网址1】。若能显示界面,则表示通信已经完成。建议将此网址保存,以便于验证连接。

如果配置完成后,无法打开网址192.168.1.201,看一下连接的以太网是否为velodyne,可以把其余的有线网络删除,只留下添加的velodyne.

3.开始安装VLP16驱动:新建ROS工程:mkdir -p catkin_velodyne/src
cd catkin_velodyne/src 【若已经建好了工程(工作空间),则可略去前两步】
git clone https://github.com/ros-drivers/velodyne.git(转换到自己的网络,克隆网址内容)
cd .. 【注意命令有两个点】
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y 【kinetic为ros版本】
catkin_make

source devel/setup.bash(此处最好用Tab键补出来,不然后续可能会出现找不到包的问题,如果后续出现了一下错误,可宠重新执行该命令,用Tab键!!!

安装VLP16驱动(在师兄的基础上加了一点自己出现的错误)

4.生成yaml文件:从附赠的U盘中复制出Velodyne的.xml文件转换成ROS节点的.yaml文件
cd到工作空间
rosrun velodyne_pointcloud gen_calibration.py XXX/VLP-16.xml 【输入命令时建议用Tab(Tab的用法在“鸟哥的Linux私房菜”中有讲到,是非常非常重要的工具)补全来保证命令或路径的正确,XXX为.xml文件的路径,此处要输入绝对路径,不清楚的可以在文件右键查看路径】
上述命令完成后会在.xml所在目录下生成对应的.yaml文件。
【避免你们找不到.xml文件或不会生成.yaml文件,我已经找好了百度云链接,vlp16.yaml 链接: https://pan.baidu.com/s/1c327b7IT3M5UTrF02Xua2g 提取码: m6yr】
【再次避免你们下载不了,直接把文件内容放在这,你们自己新建处这个文件,填好文件名VLP-16.yaml(名字可以随便填,但涉及到下方命令更改),把下面***中间的内容复制粘贴进去即可】
***********************************************************************************************
lasers:
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 0, rot_correction: 0.0,
vert_correction: -0.2617993877991494, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 1, rot_correction: 0.0,
vert_correction: 0.017453292519943295, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 2, rot_correction: 0.0,
vert_correction: -0.22689280275926285, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 3, rot_correction: 0.0,
vert_correction: 0.05235987755982989, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 4, rot_correction: 0.0,
vert_correction: -0.19198621771937624, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 5, rot_correction: 0.0,
vert_correction: 0.08726646259971647, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 6, rot_correction: 0.0,
vert_correction: -0.15707963267948966, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 7, rot_correction: 0.0,
vert_correction: 0.12217304763960307, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 8, rot_correction: 0.0,
vert_correction: -0.12217304763960307, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 9, rot_correction: 0.0,
vert_correction: 0.15707963267948966, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 10, rot_correction: 0.0,
vert_correction: -0.08726646259971647, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 11, rot_correction: 0.0,
vert_correction: 0.19198621771937624, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 12, rot_correction: 0.0,
vert_correction: -0.05235987755982989, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 13, rot_correction: 0.0,
vert_correction: 0.22689280275926285, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 14, rot_correction: 0.0,
vert_correction: -0.017453292519943295, vert_offset_correction: 0.0}
- {dist_correction: 0.0, dist_correction_x: 0.0, dist_correction_y: 0.0, focal_distance: 0.0,
focal_slope: 0.0, horiz_offset_correction: 0.0, laser_id: 15, rot_correction: 0.0,
vert_correction: 0.2617993877991494, vert_offset_correction: 0.0}
num_lasers: 16
distance_resolution: 0.002
***********************************************************************************************
5.运行launch文件
roslaunch velodyne_pointcloud VLP16_points.launch calibration:=XXX/VLP-16.yaml 【此处XXX为.yaml文件的绝对路径】
为避免上述命令的复杂,现按如下方法可一次性避免:
首先将.yaml文件放到ros包内部,避免不小心更改其路径或者将其删除,
例:放到/home/mxh(根据个人用户名)/catkin_ws(根据个人工作空间名)/src/velodyne/velodyne_pointcloud/params
修改catkin_ws(根据个人工作空间名)/src/velodyne/velodyne_pointcloud/launch/VLP16_points.launch文件
把arg name="calibration"的默认值修改为default="$(find velodyne_pointcloud)/params/VLP-16.yaml",即:
<arg name="calibration" default="$(find velodyne_pointcloud)/params/VLP-16.yaml"/>
最后保存。
上述完成后,以后每次只需要运行roslaunch velodyne_pointcloud VLP16_points.launch。
【第一次在catkin_ws/下执行上述roslaunch命令可能会报错提示说“velodyne_pointcloud或VL16_points.launch不是个包文件”,大概是这个意思,很多编译好的包都可能存在这种情况,有一种方法可以避免,就是直接cd到该launch文件所在的文件夹,然后执行roslaunch xxx.launch就可以执行了。这样执行一次之后,再在catkin_ws/下执行roslaunch命令:roslaunch 包名 launch文件名,就不会出问题了,再敲命令时,可以用Tab来补命令,包名称,文件名称和路径,来进行验证,若无法补出来,有大概率命令会出错】

如果最后出现了

安装VLP16驱动(在师兄的基础上加了一点自己出现的错误)

检查launch文件和放置文件路径都没问题的话,查看一下从百度云盘里下载的yaml文件是否正确,把上面写的内容替换从百度云盘里下载的内容,

 

6.启动rviz观察点云

rosrun rviz rviz -f velodyne
在rviz中点Add,topic中选择增加PointCloud2,再在PointCloud2下点topic输入/velodyne_points。

【其他操作可在网址中学习,或自行百度】