ROS2学习笔记18-velodyne 16雷达点云在ros2中可视化案例参考
Posted 鸿_H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS2学习笔记18-velodyne 16雷达点云在ros2中可视化案例参考相关的知识,希望对你有一定的参考价值。
环境:ubuntu20.04 ,ros-foxy,vscode,velodyne-16
背景:练习如何将velodyne-16雷达点云数据在ros2中读取并可视化.折腾了很久,并没有找到类似案例,所以自己总结一下.
1. 修改电脑ip
这里修改自己电脑ip,跟大多数网上关于ros1设置本地ip方法一样:
ifconfig
获取自己电脑ip
,修改了为手动,子掩码和网关参考图示即可.操作完成后,修改效果类似如图:
(这里的192.168.1.100
是个人电脑ip
,注意根据个人情况来实际填写)
2. 修改雷达ip
这里个重点关注的家伙.velodyne-16
官方默认的ip
是192.168.1.201
,但是实际使用时,我们一般采用自定义的来搞.
网线连上电脑,网页输入雷达的ip
地址192.168.1.201
(注意,如果已经修改过雷达ip
,那就输入雷达当前的ip
),记得雷达要接上电源.这时候,我想更改雷达的ip
为192.168.1.81
,基本效果如图:
注意:Host
处的ip
填写的是自己电脑ip
,也就是告诉雷达往哪个设备发送数据,记得端口data port
的参数一定要
记录下来,后面驱动文件里面要用到;Network
处的ip
也就是雷达ip
,自己随意更改,不过一定要
记下来,后面驱动参数填写要用到.两处ip填写完成后,记得点击依次set-save configuration
.这时候,配置参数并没有生效,还得进入system界面,依次点击update-reset system
这时候,我们设置的雷达参数即可生效.
3. 修改驱动yaml参数文件
安装驱动前,先把依赖安装一下:
sudo apt install ros-foxy-diagnostic-updater
sudo apt install libpcap0.8-dev
根据我个人使用的的ros2-foxy
版本,去g
站(https://github.com/ros-drivers/velodyne/tree/ros2
)把源码下载下来,放到新建的工作空间,使用colcon build
进行编译.这时候你认为万事大吉了,那就错了.这时候需要把驱动的参数文件配置一下,告诉驱动,我的雷达ip是啥这些.
好了,打开源文件,更改yaml文件参数,把之前记录的雷达ip以及端口port
,都填写上去.
运行时,一定要记得 . install/setup.bash
一下(这里耽误我很长时间,之前ros1喜欢直接把工作空间路径写到.bashrc
文件所带来的忽视,教训!!!!),再使用启动雷达驱动节点来读取雷达数据.这里要注意frame_id
参数,后面在rviz2里面会用到.
4. 运行效果
终端进入当前工作空间,输入:
. install/setup.bash
ros2 launch velodyne velodyne-all-nodes-VLP16-launch.py
注意看该截图上面部分,我们可以发现其,节点在监听那个ip信息,使用的端口号信息等等.
截图下半部分是使用ros2 topic echo /velodyne_points
获取当前的雷达点云数据.
新开终端,输入:
ros2 run rviz2 rviz2
依次选择add-by topic-/velodyne_points/pointcloud2
,这时候,我们发现rviz2上面还是啥都没有显示.回想起前面,在写驱动配置文件参数文件时候,有记录一个frame_id
这么一个参数,好了,我们应该将fixed frame的map,手动改写成velodyne.这时候,显示效果类似:
如果想更改显示的样式,这就跟ros1版本的rviz一样的,这里不再赘述了.
4.小结
(1)运行指令前,一定要source一下环境变量;
(2)注意雷达网页端口正确设置方式,以及ip和端口port的参数的记录;
(3)驱动的yaml文件,雷达ip,端口port一定要对应上网页端设置的;
(4)rviz2显示时,一定要注意fix frame参数根据驱动配置文件yaml里面进行手动填写.
#####################
不积硅步,无以至千里
好记性不如烂笔头
感觉有点收获的话,麻烦大大们点赞收藏哈
以上是关于ROS2学习笔记18-velodyne 16雷达点云在ros2中可视化案例参考的主要内容,如果未能解决你的问题,请参考以下文章