velodyne激光雷达相关信息

  VLP-16激光雷达的默认IP地址是192.168.1.201。连接上电脑后,要改电脑的本地IP为同一网段下(例如192.168.1.123),DNS可不填。如果你的电脑还在使用WiFi,那么有可能WiFi也在这一网段内,这会导致电脑连不上雷达,这时可以断开WiFi试试。
  VLP-16雷达的默认数据传输端口为2368。
  先用官方软件VeloView检验连接的正确性,软件界面如下,可以看到点云,也可以将数据可以保存为csv文件。也可以在虚拟机Ubuntu系统中打开VeloView,注意此时虚拟机的网络配置,如下图右所示。
  VeloView下载:Ubuntu版本点击这里(提取码:nm77),Windows版本(提取码:r4ms)。

  转速越慢,频率越低,返回的点越多。转速最低300RPM,最高不超过1200RPM。300RPM就是5Hz,此时一帧返回点大概3万个,注意每次返回的个数不是严格的3万个,有时多有时少。

1 常犯的错误

  用真实的激光数据建图时,别忘了将launch文件中的<param name="/use_sim_time" value="true"/>值改为false,否则会报错。

2 Matlab读取数据

  Matlab中可以读取Velodyne激光雷达的数据,命令如下 [ 1 ] ^{[1]} 。如果雷达的参数都为默认值就不需要做其它设置,直接运行即可。

v=velodynelidar('VLP16');
pc=read(v);  %读取单帧数据
pcwrite(pc,'data','PLYFormat','binary'); %保存单帧数据为ply格式

3 录制点云包

  通过官方的VeloView软件可以方便地录制点云数据,点击Record(工具栏上的红色圆点)即可。这样录制的包的格式是pcap。然后再在ROS中运行以下指令即可播放这个包

rosrun velodyne_driver velodyne_node _model:=VLP16 _pcap:=/home/q/VLP16Data.pcap

  我们也可以把播放的数据再保存为rosbag包,指令如下:

rosrun rosbag record -O vlp_16.bag /velodyne_packets

  然后再播放

rosbag play -l vlp_16.bag

  注意这样录制的topic类型是/velodyne_packets,不是我们常用的PointCloud2类型,所以我们要将其转换为PointCloud2这一类型,指令如下

扫描二维码关注公众号,回复: 9079304 查看本文章
rosrun nodelet nodelet standalone velodyne_pointcloud/CloudNodelet

  这样就能在rviz中查看点云了

rosrun rviz rviz -f velodyne

  单帧点云保存为pcd文件:

rosrun pcl_ros pointcloud_to_pcd input:=/velodyne_points _prefix:=./pcd

  查看/velodyne_points中的子域,先看看都有哪些子域:

rosmsg info sensor_msgs/PointCloud2
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
uint32 height
uint32 width
sensor_msgs/PointField[] fields
  uint8 INT8=1
 ……
uint8[] data
bool is_dense

  可以再看具体某一项子域,例如header里面的frame_id(这里存储着雷达坐标系信息):

rostopic echo /velodyne_points/header

[1] Getting Started with Lidar Acquisition in MATLAB

发布了51 篇原创文章 · 获赞 367 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/robinvista/article/details/104093641
今日推荐