ROS采集激光雷达点云数据

入手VLP-16激光雷达,想用ROS采集雷达数据,按照现有教程总有些小问题,现在把自己成功采集到数据的经过分享一下,希望能对刚入坑的有所帮助。

        本人使用的Ubuntu16.04+kinetic系统

       1.安装驱动

            sudo apt-get install ros-kinetic-velodyne  
           
      2. 配置网络,连接到激光雷达,(不需要关闭无线):

        修改有线网络里面的ipv4:

        改为手动,

        IP地址192.168.1.77,子网掩码255.255.255.0,网关192.168.1.1。

         然后接入激光雷达,打开浏览器输入192.168.1.201可以看到激光雷达的配置文件。

         每次接入雷达后,输入下面两条指令:

         sudo ifconfig enp2s0 192.168.1.123

        sudo route add 192.168.1.201 enp2s0
  
   3. 新建一个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  
      catkin_make  #如果出现编译错误,请请参考上一篇博文
      source devel/setup.bash  


4. 把Velodyne XML文件转成ROS节点的YAML文件,VLP-16.xml据说赠送的U盘里面有,反正我是没有找到,

    就从网上下载了一 个。记得把下面的地址更改为自己的VLP-16.xml文件的地址。

     rosrun velodyne_pointcloud gen_calibration.py ~/VLP-16.xml  (更改为自己保存的目录)

5. 加载:
    roslaunch velodyne_pointcloud VLP16_points.launch calibration:=~/VLP-16.yaml  (更改为自己保存的目录)

6. 实时显示点云图:

    rosrun rviz rviz -f velodyne  

然后在rviz中点Add by topic,增加PointCloud2,在topic里面输入 /velodyne_points,  这样就可以实时显示获取的3D点云图。

7. 记录数据:

          我看到的教程都是使用  rosbag record -O out /velodyne_points这个命令获取 /velodyne_points这个topic的数据,但是我去解析保存下来的数据时发现里面的雷达数据是处理过后的,反正我是根本无法解读。本人是想获取雷达的原始UDP报文里面的信息生成距离和强度图像,所以我保存了 /velodyne_packets这个topic的数据,保存的数据是包含UDP的正文,每76个UDP报文(扫描一周360度)有一个时间戳,然后按照手册就可以从数据中获得距离和强度等信息。
         rosbag record -O filename /velodyne_packets
---------------------  
作者:moonshine1996  
来源:CSDN  
原文:https://blog.csdn.net/qq_32580733/article/details/79883729  
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(ROS)