激光雷达的地面-非地面分割和pcl_ros实践

原文链接:无人驾驶汽车系统入门(二十四)——激光雷达的地面-非地面分割和pcl_ros实践_地面分割:无人驾驶汽车系统入门(二十四)-优快云博客

区分一下ros和ros2

PCL基本入门

PCL是一个开源的点云处理库,是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,包含点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等大量开源代码。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位。ROS2 humble完整版中本身已经包含了pcl库,同时ROS自带的pcl_ros 包可以连接ROS和PCL库。我们从一个简单的Voxel Grid Filter的ROS节点实现来了解一下PCL在ROS中的基本用法,同时了解PCL中的一些基本数据结构:

在ROS项目中引入PCL库

cd ~
mkdir -p pcl_ws/src
cd pcl_ws
colcon build
source install/setup.bash

cd ~/pcl_ws/src

# 创建ROS2功能包,命名为pcl_test,C++实现
ros2 pkg create pcl_test --build-type ament_cmake --dependencies rclcpp sensor_msgs pcl_ros pcl_conversions

cd ~/pcl_ws
colcon build --symlink-install
source install/setup.bash

启动节点

ros2 launch pcl_test pcl_test.launch.py

新建终端,运行测试bag(原文采用的ros1包,需要先转换成ros2包)

安装rosbags包:

pip install --upgrade rosbags

运行命令:

rosbags-convert --src test.bag --dst test_db3 --dst-typestore ros2_humble
  • --src test.bag → 指定输入的 ROS1 .bag 文件
  • --dst test_db3 → 指定输出 .db3 文件的目录
  • --dst-typestore ros2_humble目标格式设定为 ROS2 Humblerosbag2

例如

rosbags-convert --src ~/pcl_ws/bags/test.bag --dst ~/pcl_ws/bags/test_db3 --dst-typestore ros2_humble

在rviz2中查看转换之后的点云包

首先播放rosbag包

ros2 bag play ~/pcl_ws/bags/test_db3 --clock

打开rviz2

rviz2

发布坐标

 ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 map velodyne

 打开rviz2 添加话题

 命令行:

ros2 launch pcl_test pcl_test.launch.py
ros2 launch euclidean_cluster euclidean_cluster.launch.py
ros2 bag play ~/pcl_ws/bags/test_db3 --clock --loop
ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 map velodyne
rviz2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值