https://blog.csdn.net/i_robots/article/details/109864454
Ubuntu激光雷达用以太网连接电脑
设置ipv4
IP地址 192.168.1.x(x可以为1到254除开201以外的所有值 因为201是激光雷达的IP) 我设的192.168.1.70
子网掩码 255.255.255.0
安装好ros melodic
新建ROS工程
mkdir -p catkin_velodyne/src
cd catkin_velodyne/src
git clone https://github.com/ros-drivers/velodyne.git
cd ..
catkin_make
source devel/setup.bash
浏览器输入 192.168.1.201进入激光雷达面板
终端输入 roslaunch velodyne_pointcloud VLP-32C_points.launch
终端输入 rosrun rviz rviz -f velodyne 进入rviz在线地观察点云 进去后点击Add 加入Topic下PointCloud2
在线获取点云数据在topic /velodyne_points中数据是以PointCloud2组织的 其中data存储这点云二进制流 需要对其解码才有意义。为了获取数据 需要新建一个功能包。用以订阅/velodyne_points话题 并获取其中的sensor_msgs 对其中的data进行解码即可
下面这个是ros 订阅者的回调函数 gen是一个生成器 内容可以根据实际需求更改 关键函数为point_cloud2.read_points()
from sensor_msgs.msg import PointCloud2 from sensor_msgs import point_cloud2 def callback_pointcloud(data): assert isinstance(data, PointCloud2) gen point_cloud2.read_points(data) print type(gen) for p in gen: print pros使用Python3
torch对py3支持更好 ubuntu /usr/bin/env 下其实是有python3的 只需要在ros功能包下scripts中第一行将 python 改为 python3即可。torch安装就直接在终端没有激活conda的情况下pip3 install torch torchvision torchaudio即可。
ROS创建一个node用于接收velodyne点云并处理 之后新发布一个topic创建工作空间
$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_workspace
编译工作空间
$ cd ~/catkin_ws/ $ catkin_make
设置环境变量
$ source devel/setup.bash
也可以打开 .bashrc 在末尾添加source bash文件路径 这样每次打开终端都会自动设置环境。
检查环境变量
$ echo $ROS_PACKAGE_PATH
创建功能包
$ cd ~/catkin_ws/src $ catkin_create_pkg test_pkg std_msgs rospy roscpp
编译功能包
$ cd ~/catkin_ws $ catkin_make $ source devel/setup.bash
src文件夹下添加脚本subscriber.py。
回到工程主目录 运行 rosrun test_pkg subscriber.py 回到Rviz 订阅subscriber publish的处理后点云的topic 显示即可。
编写launch文件为了方便之后的启动 将velodyne驱动节点和点云数据处理节点写在一个launch文件中
velodyne.launch文件
launch include file $(find velodyne_pointcloud)/launch/VLP-32C_points.launch / node pkg test_pkg type subscriber.py name subscriber / /launch
注意这里type和name需要同名 之后回到项目根目录catkin_make 重新打开终端即可roslaunch launch_node velodyne.launch一键启动。



