本人实验室所提供的激光雷达有:Velodyne-16、Velodyne HDL-32E、Velodyne HDL-64E,本篇博客只针对Velodyne-16进行配置。
1.环境配置
- 配置好本机有线连接的IP地址:
以太网 -> ipv4设置 -> 方法
为手动
- 更改配置为:
address: 192.168.1.77
netmask: 255.255.255.0
gateway: 192.168.1.1
- 地址只能是201以外的所有值,因为201是激光雷达的IP
2.安装驱动
- 按照说明书PDF上安装激光雷达的驱动:
sudo apt-get install ros-kinetic-velodyne
注:kinetic
、melodic
以及 noetic
2. 创建ROS工程包:
mkdir -p catkin_velodyne/src
cd catkin_velodyne/src
git clone https://github.com/ros-drivers/velodyne.git (拷贝项目仓库的地址(Git URL))
cd ..
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y
catkin_make
source devel/setup.bash
- 成功编译后准备启动。连接好设备,激光雷达正常供电,然后电脑和雷达之间通过网线连接。
- 可以查看雷达运行的参数,打开网页,网址处输入地址:
192.168.1.201
会弹出激光雷达的参数界面。
3.启动雷达
- 打开终端,进行launch启动命令(启动采集程序):
roslaunch velodyne_pointcloud VLP16_points.launch
- 可以查看节点运行情况:
rosnode list
- 然后打开rivz,查看3D数据:
rosrun rviz rviz -f velodyne
- 会显示一个可以旋转的界面出来,但是并没有数据。需要你
添加点进去。
点击 Add, 添加 -> PointsCloud2
最后实时的3D数据就显示出来了。
4.录制与播放点云数据
- 只保存点云topic的数据:
rosbag record /velodyne_points
- 保存当前所有topic的数据:
rosbag record -a
- 查看一下此时系统发布的所有的话题:
rostopic list -v
- 查看bag文件信息:
rosbag info 2020-07-04-11-01-11.bag
- 查看话题以及对应时间戳:
rqt_bag 2020-07-04-11-01-11.bag
- 解析 .bag 文件到 .pcd 点云数据文件:
rosrun pcl_ros bag_to_pcd 2020-09.bag /velodyne_points pcd
- 播放运行bag包数据:
rosbag play 2020-07-04-11-01-11.bag
也可以试一下二倍速:
rosbag play -r 2 2020-07-04-11-01-11.bag
5.技术参数
16线激光雷达VLP-16是Velodyne公司出品的小型的3维激光雷达,保留了电机转速可调节的功能。实时上传周围距离和反射率的测量值。16线激光雷达VLP-16具有100米的远量程测量距离。精巧的外观设计使得安装非常方便。重量轻,只有830g,非常适合安装在小型无人机和小型移动机器人上。
16线激光雷达VLP-16每秒高达30万个点数据输出。±15°的垂直视场,360°水平视场扫描。IP67的防护等级。
16线激光雷达VLP-16支持两次回波接收,可以测量次回波和后一次回波的距离值和反射强度值。
16线激光雷达VLP-16技术参数:
激光线数:16 线;
测量范围:高达 100m;
测量精度:±3cm;
支持两次回波;
垂直测量角度范围:30°(﹢15°到﹣15°);
垂直方向角度分辨率:2°;
水平方向测量角度范围:360°;
水平方向角度分辨率:0.1°到 0.4°;
测量频率:5 到 20Hz;
可以通过网络浏览器监测和改变电机的转速;
激光安全等级:1级(人眼安全);
激光波长:905nm;
传感器功率:8W(典型值);
工作电压:9-32V;
重量:830g;
外形尺寸:103mmX72mm;
振动测试:500m/sec² 振幅,持续时间 11msec;
振动:5Hzto2000Hz,3Grms;
防护等级:IP67;
工作温度:-10℃ 到﹢60℃;
储存温度:-40℃ 到﹢105℃;
输出:
每秒高达 30 万个测量点输出;
100M 快速以太网连接;
数据包包含:距离值、物体反射率、旋转角度、同步时间(μs分辨率);
支持外接GPS;
16线激光雷达VLP-16行业应用:汽车自动驾驶、建图测量、测绘、高精度地图、机器人导航避障、环境3维建模、自动化行业
32线激光雷达Velodyne HDL32E技术参数:
20Hz 捕获频率
32 个光束,每个环 1080 (+-10) 个点
32 个频道
360° 水平 FOV,+10° 至 -30° 垂直 FOV,统一方位角
80m-100m 范围,可用返回达 70 米,± 2 cm 精度
高达每秒约 139 万点
6.nuScenes 数据集
- nuScenes 收集驾驶数据后,以 2Hz 采样同步良好的关键帧(图像、激光雷达、雷达),并将它们发送给标注合作伙伴Scale进行标注。使用专家注释器和多个验证步骤,实现了高度准确的注释。nuScenes 数据集中的所有对象都带有语义类别,以及它们出现的每个帧的 3D 边界框和属性。与 2D 边界框相比,这使我们能够准确地推断对象在空间中的位置和方向。
标注之间的关系 - 在看代码的时候发现从nuscenes数据集中加载数据的时候因为太多信息了。我想带着这些关系去读会比较形象。
①scenes
:可以说是数据集的标注基础,所有的标注都是基于某个scene的,但是对于深度学习训练,这个东西用不到,不用特别在意。
②scene和sample
:sample是存在于scene里的,关系就是一个scene里有很多的samples。而sample其实就是某个时间点的scene。这么说吧,车会在一个scene中持续走一段时间然后获取数据,而在这一段时间内,会每隔0.5秒对此时的scene进行标注,此时的这个scene就叫sample。而深度学习训练就是用sample里面的数据。
③sample和sample_data以及sample_annotation
:从上我们已经知道sample其实就是某个时间点的scene,那么可以知道sample里面肯定包含很多目标,这些目标就是sample_annotation。车的传感器一直都是运作的,而这个时间点的传感器获取的数据就是sample_data。