欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu16.04运行velodyne雷达驱动

程序员文章站 2022-06-12 10:30:33
...

一、实验环境:

系统版本:Ubuntu16.04 ros-kinetic
激光雷达:Velodyne-16

二、实验操作:

  1. 安装ROS驱动:
sudo apt-get install ros-kinetic-velodyne
  1. 创建ROS工程:
mkdir -p velodyne_ws/src
cd velodyne_ws/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

!!!注意:编译过程中可能出现以下错误:/usr/include/yaml-cpp/node/detail/iterator.h:48:47: error: ‘next’ is not a member of ‘boost
实际上如果你安装了boost库的话,是有next的。在/usr/include/boost 下面,我的电脑上有next_prior.hpp的文件,这个实际上就是实现了boost::next 的功能,解决办法很简单: sudo vim /usr/include/yaml-cpp/node/detail/iterator.h,引入next_prior.hpp头文件就行了:#include <boost/next_prior.hpp>,也可参考:https://blog.csdn.net/xinwenfei/article/details/81232658
(这是我遇到的问题,所以说一下自己的解决办法,你们如果没遇到可以忽略)

  1. 把Velodyne XML文件转成ROS节点的YAML文件,安装U盘里有,转换后生成VLP-16.yaml文件:
rosrun velodyne_pointcloud gen_calibration.py ~/filepath/VLP-16.xml
  1. 连接设备:
    连接激光雷达,并在网络中添加雷达ip,具体操作为:将有线网络里面的ipv4改为手动, IP地址192.168.1.200(和雷达在同一网段即可),子网掩码255.255.255.0,连接此网络,打开浏览器输入:192.168.1.201即可看到激光雷达的配置文件:
    Ubuntu16.04运行velodyne雷达驱动
  2. 加载:
roslaunch velodyne_pointcloud VLP16_points.launch calibration:=~/filepath/VLP-16.yaml

!!!注意:运行launch文件前,需先修改接收数据的端口号。由上图配置文件可知端口为2369,或通过WireShark软件查看也可以:
Ubuntu16.04运行velodyne雷达驱动
launch文件修改结果如下图所示:
Ubuntu16.04运行velodyne雷达驱动
(若没有校准文件可以省略,直接运行:roslaunch velodyne_pointcloud VLP16_points.launch加载默认文件)

  1. 显示点云:
    新开一个终端,输入:
rosrun rviz rviz -f velodyne

或:

rosrun rviz rviz
#之后在手动设置Fixed Frame= velodyne

点击左下角Add,选择PointCloud2,Topic一栏填写/velodyne_points,出现点云图:
Ubuntu16.04运行velodyne雷达驱动

  1. 保存数据:
rosbag record -o saved_filename /velodyne_points

只保存/velodyne_points这个topic的数据(可以用rostopic list -v开看当前可用的topic),保存在当前目录的saved_filename.bag中。